/******************************************************************************** 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, };