sm64/data/Basic/tanidata.sou

995 lines
31 KiB
Plaintext

/********************************************************************************
Ultra 64 MARIO Brothers
Data files used for tanimoto routines.
Copyright 1995 Nintendo co., ltd. All rights reserved
This module was programmed by Y.Tanimoto
Feb 29, 1996.
*********************************************************************************/
#include "tanidata.h"
//---------------------------------------------------------------------------------------------
//
//
// I-matrix.
//
//
/* ========================================================================================
: Light.
=========================================================================================== */
static Lights1 Tani_light[]={
{ { 64, 64, 64, 0, 64, 64, 64, 0 },
{ 255, 255, 255, 0, 255, 255, 255, 0, LIGHT_X, LIGHT_Y, LIGHT_Z, 0 } }
};
/* ========================================================================================
: I-matrix.
=========================================================================================== */
extern Mtx Tani_I_matrix = {
0x00010000, 0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x00010000, 0x00000000, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000
};
/* ========================================================================================
: Ortho-matrix [ 0.0,320.0, 0.0,240.0, 0.0,2.0 ].
=========================================================================================== */
static Mtx Tani_O_matrix = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xFFFF0001,
0x01990000, 0x00000000, 0x00000222, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000
};
/* ========================================================================================
: Static DL of drawing one tile.
=========================================================================================== */
extern Gfx Tani_draw_1squr[] = {
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of drawing one tile.
=========================================================================================== */
extern Gfx Tani_draw_2squr[] = {
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'shade.c'.
//
//
/* ========================================================================================
: Static DL of shadow initialize.
=========================================================================================== */
static Gfx shade_gfx_init_common[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList()
};
extern Gfx shade_gfx_init_normal[] = {
gsSPDisplayList(shade_gfx_init_common),
gsDPLoadTextureBlock(shade_txtdat, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 16, 0,
G_TX_WRAP|G_TX_MIRROR, G_TX_WRAP|G_TX_MIRROR,
4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSPEndDisplayList()
};
extern Gfx shade_gfx_init_rect[] = {
gsSPDisplayList(shade_gfx_init_common),
gsDPLoadTextureBlock(shade_rect_txtdat, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 16, 0,
G_TX_WRAP|G_TX_MIRROR, G_TX_WRAP|G_TX_MIRROR,
4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of drawing shadow.
=========================================================================================== */
extern Gfx shade_gfx_Poly9[] = {
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(0, 4, 1, 0),
gsSP1Triangle(1, 4, 2, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSP1Triangle(3, 6, 4, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(4, 7, 8, 0),
gsSP1Triangle(4, 8, 5, 0),
gsSPEndDisplayList()
};
extern Gfx shade_gfx_Poly4[] = {
gsSP1Triangle(0, 2, 1, 0),
gsSP1Triangle(1, 2, 3, 0),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of shadow reset.
=========================================================================================== */
extern Gfx shade_gfx_clear[] = {
gsDPPipeSync(),
gsSPTexture(0xffff,0xffff, 0, G_TX_RENDERTILE, G_OFF),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK ),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'wipe2.c'.
//
//
/* ========================================================================================
: Static DL of wipe initialize.
=========================================================================================== */
extern Gfx wipe_gfx_init[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsSPMatrix(&Tani_I_matrix, G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH ),
gsSPMatrix(&Tani_O_matrix, G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH ),
gsSPMatrix(&Tani_I_matrix, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH ),
gsSPPerspNormalize(0xffff),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of wipe clear.
=========================================================================================== */
extern Gfx wipe_gfx_clear[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of drawing 8 triangles.
=========================================================================================== */
extern Gfx wipe_gfx_8tri[] = {
gsSP1Triangle(0, 4, 1, 0),
gsSP1Triangle(1, 4, 5, 0),
gsSP1Triangle(1, 5, 2, 0),
gsSP1Triangle(2, 5, 6, 0),
gsSP1Triangle(2, 6, 7, 0),
gsSP1Triangle(2, 7, 3, 0),
gsSP1Triangle(3, 4, 0, 0),
gsSP1Triangle(3, 7, 4, 0),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'bgdraw3.c'.
//
//
/* ========================================================================================
: Static DL of initialize projection.
=========================================================================================== */
extern Gfx BG_init_project[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPPerspNormalize(0xffff),
gsSPMatrix(&Tani_I_matrix, G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of initialize graphic.
=========================================================================================== */
extern Gfx BG_init_graphic[] = {
gsSPMatrix(&Tani_I_matrix, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH),
gsSPTexture(0xffff,0xffff, 0, 0, G_ON),
gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 0,
G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD,
G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of clear and reset.
=========================================================================================== */
extern Gfx BG_mode_restore[] = {
gsDPPipeSync(),
gsSPTexture(0xffff,0xffff, 0, 0, G_OFF),
gsSPSetGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'water.c'.
//
//
/* ========================================================================================
: Static DL of water initialize.
=========================================================================================== */
extern Gfx water_init[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPTexture(0xffff, 0xffff, 0, 0, G_ON),
gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 0,
G_TX_WRAP|G_TX_NOMIRROR, 5, G_TX_NOLOD,
G_TX_WRAP|G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of water initialize [ I/A texture, MODULATE mode ].
=========================================================================================== */
extern Gfx water_init_IA[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPTexture(0xffff, 0xffff, 0, 0, G_ON),
gs_Tani_SetUpTileDescrip(G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, 0,
G_TX_WRAP|G_TX_NOMIRROR, 5, G_TX_NOLOD,
G_TX_WRAP|G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of water reset.
=========================================================================================== */
extern Gfx water_reset[] = {
gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'areamap.c'.
//
//
/* ========================================================================================
: Texture data of the arrow.
=========================================================================================== */
static unsigned char areamap_arrow_txt[] = {
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xf0, 0xf0, 0xf0,
0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0,
0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xf0, 0xf0, 0xf0,
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xf0, 0xf0, 0xf0,
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xf0, 0xf0, 0xf0,
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xf0, 0xf0, 0xf0,
};
/* ========================================================================================
: Static DL of initialize projection.
=========================================================================================== */
extern Gfx areamap_init_project[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF),
gsSPPerspNormalize(0xffff),
gsSPMatrix(&Tani_I_matrix, G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH ),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of initialize graphic.
=========================================================================================== */
extern Gfx areamap_init_graphic1[] = {
gsSPMatrix(&Tani_I_matrix, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH ),
gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, 0,
G_TX_CLAMP|G_TX_NOMIRROR, 6, G_TX_NOLOD,
G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsSPTexture(0xffff, 0xffff, 0, 0, G_ON),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of initialize graphic.
=========================================================================================== */
extern Gfx areamap_init_graphic2[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
gs_Tani_SetUpTileDescrip(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0, 0,
G_TX_CLAMP|G_TX_NOMIRROR, 3, G_TX_NOLOD,
G_TX_CLAMP|G_TX_NOMIRROR, 3, G_TX_NOLOD ),
gs_Tani_LoadTextureImage(areamap_arrow_txt, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0, 7),
gsSPEndDisplayList()
};
/* ========================================================================================
: Static DL of initialize graphic.
=========================================================================================== */
extern Gfx areamap_mode_restore[] = {
gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
//---------------------------------------------------------------------------------------------
//
//
// Used in 'wave.c'.
//
//
/* ========================================================================================
: Light only for wave.
=========================================================================================== */
static Lights1 Tani_light_wave[]={
{ { WAVE_AMB_R, WAVE_AMB_G, WAVE_AMB_B, 0,
WAVE_AMB_R, WAVE_AMB_G, WAVE_AMB_B, 0 },
{ 255, 255, 255, 0, 255, 255, 255, 0,
WAVE_LIGHT_X, WAVE_LIGHT_Y, WAVE_LIGHT_Z, 0 } }
};
/* ========================================================================================
: Common static Gfx of moving status [ Fixed ].
=========================================================================================== */
extern Gfx wave_move_init[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_SHADING_SMOOTH | G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPLight((&Tani_light_wave[0].l[0]),1),
gsSPLight((&Tani_light_wave[0].a ),2),
gsSPTexture(0xffff, 0xffff, 0, 0, G_ON),
gsSPEndDisplayList()
};
extern Gfx wave_move_reset[] = {
gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
extern Gfx wave_move_init_env[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING | G_TEXTURE_GEN),
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
gsSPLight((&Tani_light_wave[0].l[0]),1),
gsSPLight((&Tani_light_wave[0].a ),2),
gsSPTexture(0x4000, 0x4000, 0, 0, G_ON),
gsSPEndDisplayList()
};
extern Gfx wave_move_reset_env[] = {
gsSPTexture(0x4000, 0x4000, 0, 0, G_OFF),
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList()
};
extern Gfx wave_5tris[] = {
gsSP1Triangle( 0, 1, 2, 0),
gsSP1Triangle( 3, 4, 5, 0),
gsSP1Triangle( 6, 7, 8, 0),
gsSP1Triangle( 9,10,11, 0),
gsSP1Triangle(12,13,14, 0),
gsSPEndDisplayList()
};
/* ============================================================================================
: Wave basic vertex and polygon data.
=============================================================================================== */
extern short wave_vp_all[] = {
157,
614, 583, 0,
614, 614, 0,
562, 614, 0,
562, 553, 1,
614, 522, 0,
511, 583, 1,
511, 614, 0,
307, 614, 0,
307, 583, 1,
358, 614, 0,
256, 614, 0,
256, 553, 1,
307, 522, 1,
358, 553, 1,
409, 583, 1,
460, 614, 0,
511, 522, 1,
460, 553, 1,
409, 522, 1,
562, 307, 1,
614, 338, 0,
562, 430, 1,
614, 399, 0,
562, 368, 1,
511, 338, 1,
460, 307, 1,
460, 430, 1,
511, 399, 1,
511, 460, 1,
409, 338, 1,
460, 368, 1,
358, 307, 1,
409, 460, 1,
358, 430, 1,
409, 399, 1,
358, 368, 1,
307, 338, 1,
256, 307, 1,
307, 399, 1,
256, 430, 1,
307, 460, 1,
614, 460, 0,
562, 491, 1,
460, 491, 1,
358, 491, 1,
256, 491, 1,
409, 276, 1,
511, 276, 1,
307, 276, 1,
614, 31, 0,
614, 0, 0,
562, 0, 0,
562, 123, 1,
614, 92, 0,
511, 31, 1,
562, 61, 1,
460, 0, 0,
511, 0, 0,
460, 123, 1,
511, 92, 1,
511, 153, 1,
409, 31, 1,
460, 61, 1,
358, 0, 0,
409, 0, 0,
409, 92, 1,
358, 123, 1,
409, 153, 1,
307, 31, 1,
358, 61, 1,
256, 0, 0,
307, 0, 0,
256, 123, 1,
307, 92, 1,
307, 153, 1,
614, 153, 0,
562, 246, 1,
614, 215, 0,
562, 184, 1,
460, 246, 1,
511, 215, 1,
460, 184, 1,
358, 246, 1,
409, 215, 1,
358, 184, 1,
256, 246, 1,
307, 215, 1,
205, 583, 1,
0, 614, 0,
0, 583, 0,
51, 614, 0,
51, 553, 1,
102, 583, 1,
205, 522, 1,
153, 553, 1,
153, 614, 0,
102, 522, 1,
256, 368, 1,
205, 338, 1,
153, 307, 1,
153, 430, 1,
205, 399, 1,
205, 460, 1,
153, 368, 1,
102, 338, 1,
51, 307, 1,
51, 430, 1,
102, 399, 1,
102, 460, 1,
51, 368, 1,
0, 338, 0,
0, 460, 0,
153, 491, 1,
51, 491, 1,
153, 246, 1,
102, 276, 1,
205, 276, 1,
0, 276, 0,
51, 246, 1,
205, 31, 1,
256, 61, 1,
205, 0, 0,
153, 0, 0,
205, 153, 1,
205, 92, 1,
153, 123, 1,
102, 31, 1,
153, 61, 1,
102, 0, 0,
51, 0, 0,
51, 123, 1,
102, 92, 1,
102, 153, 1,
0, 31, 0,
51, 61, 1,
0, 153, 0,
256, 184, 1,
205, 215, 1,
153, 184, 1,
102, 215, 1,
51, 184, 1,
409, 614, 0,
614, 307, 0,
614, 276, 0,
511, 307, 1,
409, 307, 1,
307, 307, 1,
205, 614, 0,
0, 522, 0,
102, 614, 0,
205, 307, 1,
102, 307, 1,
0, 399, 0,
0, 307, 0,
0, 215, 0,
0, 92, 0,
0, 0, 0,
264,
8, 12, 13,
0, 1, 2,
3, 0, 2,
4, 0, 3,
5, 2, 6,
2, 5, 3,
7, 8, 9,
8, 7, 10,
11, 8, 10,
12, 8, 11,
9, 8, 13,
13, 14, 9,
14, 141, 9,
5, 6, 15,
5, 16, 3,
16, 5, 17,
17, 5, 15,
14, 15, 141,
15, 14, 17,
18, 14, 13,
14, 18, 17,
19, 142, 20,
19, 20, 23,
28, 27, 21,
21, 23, 22,
22, 41, 21,
20, 22, 23,
23, 24, 19,
21, 27, 23,
24, 23, 27,
25, 144, 24,
19, 24, 144,
24, 27, 30,
25, 24, 30,
26, 30, 27,
27, 28, 26,
36, 38, 97,
26, 34, 30,
29, 30, 34,
30, 29, 25,
25, 29, 145,
31, 145, 29,
31, 29, 35,
29, 34, 35,
32, 34, 26,
33, 35, 34,
34, 32, 33,
33, 38, 35,
35, 36, 31,
36, 35, 38,
37, 36, 97,
37, 146, 36,
31, 36, 146,
28, 16, 43,
38, 40, 39,
39, 97, 38,
40, 38, 33,
21, 41, 42,
41, 4, 42,
3, 42, 4,
42, 28, 21,
28, 42, 16,
3, 16, 42,
26, 28, 43,
17, 43, 16,
43, 32, 26,
32, 43, 18,
17, 18, 43,
33, 32, 44,
32, 18, 44,
13, 44, 18,
44, 40, 33,
13, 12, 44,
40, 44, 12,
39, 40, 45,
40, 12, 45,
48, 31, 146,
11, 45, 12,
25, 47, 144,
46, 25, 145,
47, 19, 144,
19, 143, 142,
31, 46, 145,
60, 59, 52,
49, 53, 55,
50, 49, 51,
51, 49, 55,
52, 55, 53,
53, 75, 52,
54, 55, 59,
52, 59, 55,
55, 54, 51,
54, 59, 62,
56, 54, 62,
57, 54, 56,
54, 57, 51,
58, 62, 59,
59, 60, 58,
68, 71, 63,
61, 62, 65,
58, 65, 62,
62, 61, 56,
61, 65, 69,
63, 61, 69,
64, 61, 63,
61, 64, 56,
65, 67, 66,
66, 69, 65,
67, 65, 58,
68, 69, 73,
69, 68, 63,
66, 73, 69,
68, 73, 120,
70, 68, 120,
71, 68, 70,
72, 120, 73,
73, 74, 72,
74, 73, 66,
75, 77, 78,
52, 75, 78,
76, 78, 77,
77, 143, 76,
76, 80, 78,
60, 78, 80,
78, 60, 52,
46, 83, 79,
58, 60, 81,
60, 80, 81,
79, 81, 80,
80, 47, 79,
47, 80, 76,
81, 67, 58,
67, 81, 83,
79, 83, 81,
66, 67, 84,
67, 83, 84,
82, 84, 83,
83, 46, 82,
84, 74, 66,
82, 86, 84,
74, 84, 86,
74, 86, 136,
72, 74, 136,
85, 136, 86,
86, 48, 85,
48, 86, 82,
25, 46, 79,
79, 47, 25,
82, 46, 31,
19, 47, 76,
76, 143, 19,
31, 48, 82,
37, 48, 146,
85, 48, 37,
10, 87, 11,
87, 10, 147,
92, 95, 149,
88, 89, 90,
89, 148, 91,
90, 89, 91,
91, 92, 90,
92, 149, 90,
93, 87, 94,
87, 93, 11,
94, 87, 95,
87, 147, 95,
95, 92, 94,
96, 92, 91,
92, 96, 94,
39, 101, 97,
97, 98, 37,
98, 97, 101,
99, 98, 103,
99, 150, 98,
37, 98, 150,
98, 101, 103,
100, 103, 101,
101, 102, 100,
102, 101, 39,
100, 107, 103,
103, 104, 99,
104, 103, 107,
105, 104, 109,
105, 151, 104,
99, 104, 151,
104, 107, 109,
106, 109, 107,
107, 108, 106,
108, 107, 100,
109, 110, 105,
106, 152, 109,
110, 109, 152,
105, 110, 153,
111, 152, 106,
11, 93, 45,
102, 45, 93,
45, 102, 39,
102, 93, 112,
100, 102, 112,
94, 112, 93,
112, 108, 100,
108, 112, 96,
94, 96, 112,
106, 108, 113,
108, 96, 113,
91, 113, 96,
91, 148, 113,
113, 111, 106,
111, 113, 148,
114, 116, 99,
99, 115, 114,
115, 99, 151,
99, 116, 150,
72, 124, 120,
116, 37, 150,
37, 116, 85,
117, 105, 153,
105, 115, 151,
105, 117, 118,
118, 115, 105,
119, 120, 124,
120, 119, 70,
119, 124, 127,
119, 121, 70,
121, 119, 122,
122, 119, 127,
123, 124, 72,
124, 123, 125,
125, 127, 124,
126, 127, 131,
127, 126, 122,
125, 131, 127,
126, 131, 134,
128, 126, 129,
129, 126, 134,
126, 128, 122,
136, 123, 72,
130, 134, 131,
131, 132, 130,
132, 131, 125,
133, 134, 155,
134, 133, 129,
130, 155, 134,
133, 156, 129,
135, 155, 130,
123, 136, 137,
85, 137, 136,
139, 115, 118,
123, 137, 138,
125, 123, 138,
114, 138, 137,
137, 116, 114,
116, 137, 85,
114, 139, 138,
132, 138, 139,
138, 132, 125,
132, 139, 140,
130, 132, 140,
115, 139, 114,
118, 140, 139,
135, 140, 154,
118, 154, 140,
140, 135, 130,
117, 154, 118,
};
/* ============================================================================================
: Wave basic point-polygon chain data.
=============================================================================================== */
extern short wave_pp_all[] = {
3, 1, 2, 3,
1, 1,
4, 1, 2, 4, 5,
6, 2, 3, 5, 14, 59, 62,
3, 3, 58, 59,
6, 4, 5, 13, 14, 15, 16,
2, 4, 13,
2, 6, 7,
6, 0, 6, 7, 8, 9, 10,
4, 6, 10, 11, 12,
4, 7, 8, 154, 155,
6, 8, 9, 77, 154, 163, 194,
6, 0, 9, 72, 73, 75, 77,
6, 0, 10, 11, 19, 70, 72,
6, 11, 12, 17, 18, 19, 20,
4, 13, 16, 17, 18,
6, 14, 15, 53, 61, 62, 64,
6, 15, 16, 18, 20, 64, 67,
6, 19, 20, 66, 67, 69, 70,
8, 21, 22, 27, 31, 80, 81, 149, 150,
3, 21, 22, 26,
6, 23, 24, 25, 28, 57, 60,
3, 24, 25, 26,
6, 22, 24, 26, 27, 28, 29,
6, 27, 29, 30, 31, 32, 33,
8, 30, 33, 39, 40, 78, 79, 146, 147,
6, 34, 35, 37, 44, 63, 65,
6, 23, 28, 29, 32, 34, 35,
6, 23, 35, 53, 60, 61, 63,
6, 38, 39, 40, 41, 42, 43,
6, 32, 33, 34, 37, 38, 39,
8, 41, 42, 48, 52, 76, 82, 148, 151,
6, 44, 46, 65, 66, 68, 69,
6, 45, 46, 47, 56, 68, 71,
6, 37, 38, 43, 44, 45, 46,
6, 42, 43, 45, 47, 48, 49,
6, 36, 48, 49, 50, 51, 52,
8, 50, 51, 152, 153, 170, 174, 214, 215,
6, 36, 47, 49, 54, 55, 56,
6, 54, 55, 74, 169, 178, 196,
6, 54, 56, 71, 73, 74, 75,
3, 25, 57, 58,
6, 57, 58, 59, 60, 61, 62,
6, 53, 63, 64, 65, 66, 67,
6, 68, 69, 70, 71, 72, 73,
6, 74, 75, 77, 194, 195, 196,
6, 79, 82, 125, 137, 146, 148,
6, 78, 80, 129, 130, 147, 149,
6, 76, 144, 145, 151, 152, 153,
3, 84, 85, 86,
1, 85,
4, 85, 86, 91, 95,
6, 83, 87, 88, 90, 119, 124,
3, 84, 87, 88,
6, 89, 91, 92, 93, 94, 95,
6, 84, 86, 87, 89, 90, 91,
4, 93, 94, 101, 105,
2, 94, 95,
6, 96, 97, 100, 108, 126, 131,
6, 83, 89, 90, 92, 96, 97,
6, 83, 97, 123, 124, 126, 127,
6, 99, 101, 102, 103, 104, 105,
6, 92, 93, 96, 99, 100, 101,
4, 98, 103, 104, 110,
2, 104, 105,
6, 99, 100, 102, 106, 107, 108,
6, 106, 107, 111, 117, 134, 138,
6, 106, 108, 131, 132, 134, 135,
6, 98, 109, 110, 112, 113, 114,
6, 102, 103, 107, 109, 110, 111,
4, 113, 114, 221, 223,
2, 98, 114,
6, 115, 116, 142, 213, 226, 236,
6, 109, 111, 112, 115, 116, 117,
6, 116, 117, 138, 140, 141, 142,
3, 88, 118, 119,
6, 120, 121, 122, 130, 149, 150,
3, 118, 120, 121,
6, 118, 119, 120, 122, 123, 124,
6, 125, 128, 129, 133, 146, 147,
6, 122, 123, 127, 128, 129, 130,
6, 126, 127, 128, 131, 132, 133,
6, 136, 137, 139, 145, 148, 151,
6, 125, 132, 133, 135, 136, 137,
6, 134, 135, 136, 138, 139, 140,
6, 143, 144, 153, 215, 246, 252,
6, 139, 140, 141, 143, 144, 145,
6, 154, 155, 162, 163, 164, 165,
1, 157,
3, 157, 158, 159,
4, 157, 159, 160, 161,
6, 158, 159, 160, 167, 205, 206,
6, 156, 160, 161, 166, 167, 168,
6, 162, 163, 194, 195, 197, 199,
6, 162, 164, 166, 168, 199, 202,
4, 156, 164, 165, 166,
6, 167, 168, 201, 202, 204, 205,
6, 36, 50, 55, 169, 170, 171,
6, 170, 171, 172, 173, 174, 175,
8, 172, 173, 180, 184, 209, 210, 211, 212,
6, 176, 177, 179, 188, 198, 200,
6, 169, 171, 175, 176, 177, 178,
6, 177, 178, 195, 196, 197, 198,
6, 172, 175, 176, 179, 180, 181,
6, 180, 181, 182, 183, 184, 185,
8, 182, 183, 189, 192, 216, 217, 218, 219,
6, 186, 187, 190, 193, 203, 207,
6, 179, 181, 185, 186, 187, 188,
6, 187, 188, 200, 201, 203, 204,
6, 182, 185, 186, 189, 190, 191,
3, 189, 191, 192,
3, 193, 207, 208,
6, 197, 198, 199, 200, 201, 202,
6, 203, 204, 205, 206, 207, 208,
6, 209, 210, 250, 251, 253, 258,
6, 210, 211, 217, 219, 247, 258,
6, 209, 212, 214, 215, 251, 252,
3, 216, 218, 263,
6, 218, 219, 247, 259, 261, 263,
6, 220, 221, 222, 223, 224, 225,
6, 112, 113, 115, 213, 220, 221,
2, 223, 224,
4, 224, 225, 230, 235,
6, 226, 227, 236, 245, 248, 249,
6, 213, 220, 222, 226, 227, 228,
6, 227, 228, 231, 239, 249, 255,
6, 229, 230, 232, 233, 234, 235,
6, 222, 225, 228, 229, 230, 231,
2, 233, 235,
4, 233, 234, 241, 243,
6, 237, 238, 242, 244, 257, 262,
6, 229, 231, 232, 237, 238, 239,
6, 238, 239, 254, 255, 256, 257,
3, 240, 241, 243,
6, 232, 234, 237, 240, 241, 242,
3, 244, 260, 262,
6, 141, 142, 143, 236, 245, 246,
6, 245, 246, 248, 250, 251, 252,
6, 248, 249, 250, 253, 254, 255,
6, 247, 253, 254, 256, 258, 259,
6, 256, 257, 259, 260, 261, 262,
2, 12, 17,
2, 21, 81,
3, 81, 121, 150,
4, 30, 31, 78, 80,
4, 40, 41, 79, 82,
4, 51, 52, 76, 152,
2, 155, 165,
3, 158, 206, 208,
2, 156, 161,
4, 173, 174, 212, 214,
4, 183, 184, 211, 217,
3, 190, 191, 193,
2, 192, 216,
3, 260, 261, 263,
3, 240, 242, 244,
1, 243,
};