diff --git a/.gitignore b/.gitignore index 9b111cc6..bfcf9432 100644 --- a/.gitignore +++ b/.gitignore @@ -61,8 +61,38 @@ build/* !/levels/**/*custom*.png !/levels/**/*custom*/**/*.png !/actors/**/*custom*.png +!/actors/**/*rainbow*.png +!/actors/**/*stored*.png +!/actors/**/*mario*.png +!/levels/intro/header.h +!/levels/intro/leveldata.c +!/levels/intro/leveldata.c +!/levels/intro/script.c +!/levels/ending/*cake*.png +!/levels/menu/*01018*.png +!/actors/**/*wing*.png +!/actors/**/*cursya*.png +!/actors/**/*skipsqueak*.png +!/actors/**/*sonic*.png +!/actors/**/*metal*.png +!/actors/**/*super*.png +!/actors/**/*reticle*.png +!/sound/**/*sound*.png +!/textures/**/*10458*.png +!/textures/**/*05A00*.png !/actors/**/*custom*/**/*.png +!/actors/**/*emerald*.png +!/textures/**/*meta*.png +!/textures/**/*emerald*.png +!/sound/**/*drown*.m64 +!/sound/**/*super*.m64 +!/sound/**/*emerald*.m64 +!/textures/**/*mario*.png !/textures/**/*custom*.png +!/textures/**/*rainbow*.png +!/textures/**/*cursya*.png +!/textures/**/*skipsqueak*.png +!/textures/**/*curseya*.png !/textures/**/*custom*/**/*.png !/sound/**/*custom*.m64 !/sound/**/*custom*/**/*.m64 diff --git a/.gitignore.rej b/.gitignore.rej new file mode 100644 index 00000000..9f507953 --- /dev/null +++ b/.gitignore.rej @@ -0,0 +1,40 @@ +diff a/.gitignore b/.gitignore (rejected hunks) +@@ -61,8 +61,38 @@ build/* + !/levels/**/*custom*.png + !/levels/**/*custom*/**/*.png + !/actors/**/*custom*.png ++!/actors/**/*rainbow*.png ++!/actors/**/*stored*.png ++!/actors/**/*mario*.png ++!/levels/intro/header.h ++!/levels/intro/leveldata.c ++!/levels/intro/leveldata.c ++!/levels/intro/script.c ++!/levels/ending/*cake*.png ++!/actors/**/*wing*.png ++!/actors/**/*cursya*.png ++!/actors/**/*skipsqueak*.png ++!/actors/**/*sonic*.png ++!/actors/**/*metal*.png ++!/actors/**/*super*.png ++!/actors/**/*reticle*.png ++!/sound/**/*sound*.png ++ ++!/textures/**/segment2.10458.ia8.png ++!/textures/**/segment2.05A00.rgba16.png + !/actors/**/*custom*/**/*.png ++!/actors/**/*emerald*.png ++!/textures/**/*meta*.png ++!/textures/**/*emerald*.png ++!/sound/**/*drown*.m64 ++!/sound/**/*super*.m64 ++!/sound/**/*emerald*.m64 ++!/textures/**/*mario*.png + !/textures/**/*custom*.png ++!/textures/**/*rainbow*.png ++!/textures/**/*cursya*.png ++!/textures/**/*skipsqueak*.png ++!/textures/**/*curseya*.png + !/textures/**/*custom*/**/*.png + !/sound/**/*custom*.m64 + !/sound/**/*custom*/**/*.m64 diff --git a/.vs/snc/v16/.suo b/.vs/snc/v16/.suo new file mode 100644 index 00000000..7bbd41bf Binary files /dev/null and b/.vs/snc/v16/.suo differ diff --git a/Makefile.split b/Makefile.split index 05036119..9fcec9e4 100644 --- a/Makefile.split +++ b/Makefile.split @@ -66,7 +66,7 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho -COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree +COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap marios_metal_cap marios_wing_cap marios_winged_metal_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest KLEPTO_DIRS := klepto eyerok pokey tornado @@ -76,7 +76,7 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh LAKITU_DIRS := lakitu_cameraman toad mips boo_castle PEACH_DIRS := bird peach yoshi BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke -MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation +MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation super_sonic sonic_trail sonic_ball super_ball super_trail reticle emerald emerald_circle # Actor Textures AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png)) diff --git a/Makefile.split.rej b/Makefile.split.rej new file mode 100644 index 00000000..5e791577 --- /dev/null +++ b/Makefile.split.rej @@ -0,0 +1,19 @@ +diff a/Makefile.split b/Makefile.split (rejected hunks) +@@ -66,7 +66,7 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble + BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage + MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug + HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho +-COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree ++COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap marios_metal_cap marios_wing_cap marios_winged_metal_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree + BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny + SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest + KLEPTO_DIRS := klepto eyerok pokey tornado +@@ -76,7 +76,7 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh + LAKITU_DIRS := lakitu_cameraman toad mips boo_castle + PEACH_DIRS := bird peach yoshi + BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke +-MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation ++MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation super_sonic sonic_trail sonic_ball super_ball super_trail reticle emerald emerald_circle + + # Actor Textures + AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png)) diff --git a/actors/bowser_flame/model.inc.c b/actors/bowser_flame/model.inc.c index ae62573d..9cddd1e3 100644 --- a/actors/bowser_flame/model.inc.c +++ b/actors/bowser_flame/model.inc.c @@ -78,10 +78,10 @@ static const Vtx flame_seg6_vertex_0601C000[] = { {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 150, 300, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -150, 300, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ -150, 0, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ 150, 0, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ 150, 150, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ -150, 150, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -150, 0, 0}, 0, { 0, 2016}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 150, 0, 0}, 0, { 2016, 2016}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -150, 150, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x0601C080 - 0x0601C0B0 diff --git a/actors/bowser_flame/model.inc.c.rej b/actors/bowser_flame/model.inc.c.rej new file mode 100644 index 00000000..20ba74fc --- /dev/null +++ b/actors/bowser_flame/model.inc.c.rej @@ -0,0 +1,16 @@ +diff a/actors/bowser_flame/model.inc.c b/actors/bowser_flame/model.inc.c (rejected hunks) +@@ -78,10 +78,10 @@ static const Vtx flame_seg6_vertex_0601C000[] = { + {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 150, 300, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -150, 300, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ -150, 0, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 150, 0, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 150, 150, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ -150, 150, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ -150, 150, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, + }; + + // 0x0601C080 - 0x0601C0B0 diff --git a/actors/burn_smoke/model.inc.c b/actors/burn_smoke/model.inc.c index 36616b5e..775dd343 100644 --- a/actors/burn_smoke/model.inc.c +++ b/actors/burn_smoke/model.inc.c @@ -44,7 +44,11 @@ const Gfx burn_smoke_seg4_dl_04022048[] = { // 0x04022070 - 0x040220C8 const Gfx burn_smoke_seg4_dl_04022070[] = { gsSPDisplayList(burn_smoke_seg4_dl_04022000), + #ifdef TEXTURE_FIX + gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + #else gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + #endif gsSPDisplayList(burn_smoke_seg4_dl_04022028), gsSPDisplayList(burn_smoke_seg4_dl_04022048), gsSPEndDisplayList(), diff --git a/actors/burn_smoke/model.inc.c.rej b/actors/burn_smoke/model.inc.c.rej new file mode 100644 index 00000000..44b9430a --- /dev/null +++ b/actors/burn_smoke/model.inc.c.rej @@ -0,0 +1,13 @@ +diff a/actors/burn_smoke/model.inc.c b/actors/burn_smoke/model.inc.c (rejected hunks) +@@ -44,7 +44,11 @@ const Gfx burn_smoke_seg4_dl_04022048[] = { + // 0x04022070 - 0x040220C8 + const Gfx burn_smoke_seg4_dl_04022070[] = { + gsSPDisplayList(burn_smoke_seg4_dl_04022000), ++ #ifdef TEXTURE_FIX ++ gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), ++ #else + gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), ++ #endif + gsSPDisplayList(burn_smoke_seg4_dl_04022028), + gsSPDisplayList(burn_smoke_seg4_dl_04022048), + gsSPEndDisplayList(), diff --git a/actors/butterfly/butterfly_wing.rgba16.png b/actors/butterfly/butterfly_wing.rgba16.png new file mode 100644 index 00000000..90b812d6 Binary files /dev/null and b/actors/butterfly/butterfly_wing.rgba16.png differ diff --git a/actors/chuckya/model.inc.c b/actors/chuckya/model.inc.c index f083ce70..3cbc31b2 100644 --- a/actors/chuckya/model.inc.c +++ b/actors/chuckya/model.inc.c @@ -357,7 +357,7 @@ static const Vtx chuckya_seg8_vertex_0800A680[] = { const Gfx chuckya_seg8_dl_0800A700[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chuckya_seg8_texture_08006778), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPLight(&chuckya_seg8_lights_0800A668.l, 1), gsSPLight(&chuckya_seg8_lights_0800A668.a, 2), gsSPVertex(chuckya_seg8_vertex_0800A680, 8, 0), @@ -375,7 +375,7 @@ const Gfx chuckya_seg8_dl_0800A758[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), + gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPDisplayList(chuckya_seg8_dl_0800A700), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), diff --git a/actors/chuckya/model.inc.c.rej b/actors/chuckya/model.inc.c.rej new file mode 100644 index 00000000..00da1c01 --- /dev/null +++ b/actors/chuckya/model.inc.c.rej @@ -0,0 +1,19 @@ +diff a/actors/chuckya/model.inc.c b/actors/chuckya/model.inc.c (rejected hunks) +@@ -357,7 +357,7 @@ static const Vtx chuckya_seg8_vertex_0800A680[] = { + const Gfx chuckya_seg8_dl_0800A700[] = { + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chuckya_seg8_texture_08006778), + gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPLight(&chuckya_seg8_lights_0800A668.l, 1), + gsSPLight(&chuckya_seg8_lights_0800A668.a, 2), + gsSPVertex(chuckya_seg8_vertex_0800A680, 8, 0), +@@ -375,7 +375,7 @@ const Gfx chuckya_seg8_dl_0800A758[] = { + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPTileSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPDisplayList(chuckya_seg8_dl_0800A700), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), diff --git a/actors/common1.c b/actors/common1.c index 702fd215..e5307558 100644 --- a/actors/common1.c +++ b/actors/common1.c @@ -1,9 +1,8 @@ -#include -#include - -#include "macros.h" +#include +#include "sm64.h" #include "surface_terrains.h" -#include "types.h" +#include "geo_commands.h" + #include "make_const_nonconst.h" #include "mist/model.inc.c" @@ -84,3 +83,7 @@ UNUSED static const u64 binid_21 = 21; #include "tree/model.inc.c" UNUSED static const u64 binid_22 = 22; + +#include "marios_wing_cap/model.inc.c" +#include "marios_metal_cap/model.inc.c" +#include "marios_winged_metal_cap/model.inc.c" \ No newline at end of file diff --git a/actors/common1.c.rej b/actors/common1.c.rej new file mode 100644 index 00000000..6b4b9d70 --- /dev/null +++ b/actors/common1.c.rej @@ -0,0 +1,24 @@ +diff a/actors/common1.c b/actors/common1.c (rejected hunks) +@@ -1,9 +1,8 @@ +-#include +-#include +- +-#include "macros.h" ++#include ++#include "sm64.h" + #include "surface_terrains.h" +-#include "types.h" ++#include "geo_commands.h" ++ + #include "make_const_nonconst.h" + + #include "mist/model.inc.c" +@@ -84,3 +83,7 @@ UNUSED static const u64 binid_21 = 21; + + #include "tree/model.inc.c" + UNUSED static const u64 binid_22 = 22; ++ ++#include "marios_wing_cap/model.inc.c" ++#include "marios_metal_cap/model.inc.c" ++#include "marios_winged_metal_cap/model.inc.c" +\ No newline at end of file diff --git a/actors/common1.h b/actors/common1.h index 9a1b650e..6bcad3d4 100644 --- a/actors/common1.h +++ b/actors/common1.h @@ -250,4 +250,14 @@ extern const Gfx wooden_signpost_seg3_dl_0302DCD0[]; extern const Gfx wooden_signpost_seg3_dl_0302DD08[]; extern const Collision wooden_signpost_seg3_collision_0302DD80[]; +#include "marios_wing_cap/geo_header.h" + +#include "marios_metal_cap/geo_header.h" + + + +#include "marios_winged_metal_cap/geo_header.h" + +#include "mario_cap/geo_header.h" + #endif diff --git a/actors/common1.h.rej b/actors/common1.h.rej new file mode 100644 index 00000000..4780cce6 --- /dev/null +++ b/actors/common1.h.rej @@ -0,0 +1,16 @@ +diff a/actors/common1.h b/actors/common1.h (rejected hunks) +@@ -250,4 +250,14 @@ extern const Gfx wooden_signpost_seg3_dl_0302DCD0[]; + extern const Gfx wooden_signpost_seg3_dl_0302DD08[]; + extern const Collision wooden_signpost_seg3_collision_0302DD80[]; + ++#include "marios_wing_cap/geo_header.h" ++ ++#include "marios_metal_cap/geo_header.h" ++ ++ ++ ++#include "marios_winged_metal_cap/geo_header.h" ++ ++#include "mario_cap/geo_header.h" ++ + #endif diff --git a/actors/common1_geo.c b/actors/common1_geo.c index 7f75637a..a83e6086 100644 --- a/actors/common1_geo.c +++ b/actors/common1_geo.c @@ -25,3 +25,7 @@ #include "white_particle/geo.inc.c" #include "wooden_signpost/geo.inc.c" #include "tree/geo.inc.c" + +#include "marios_wing_cap/geo.inc.c" +#include "marios_metal_cap/geo.inc.c" +#include "marios_winged_metal_cap/geo.inc.c" \ No newline at end of file diff --git a/actors/common1_geo.c.rej b/actors/common1_geo.c.rej new file mode 100644 index 00000000..3fd24fb6 --- /dev/null +++ b/actors/common1_geo.c.rej @@ -0,0 +1,10 @@ +diff a/actors/common1_geo.c b/actors/common1_geo.c (rejected hunks) +@@ -25,3 +25,7 @@ + #include "white_particle/geo.inc.c" + #include "wooden_signpost/geo.inc.c" + #include "tree/geo.inc.c" ++ ++#include "marios_wing_cap/geo.inc.c" ++#include "marios_metal_cap/geo.inc.c" ++#include "marios_winged_metal_cap/geo.inc.c" +\ No newline at end of file diff --git a/actors/door/metal_door.rgba16.png b/actors/door/metal_door.rgba16.png new file mode 100644 index 00000000..ec53d0b4 Binary files /dev/null and b/actors/door/metal_door.rgba16.png differ diff --git a/actors/door/metal_door_overlay.rgba16.png b/actors/door/metal_door_overlay.rgba16.png new file mode 100644 index 00000000..adfedc03 Binary files /dev/null and b/actors/door/metal_door_overlay.rgba16.png differ diff --git a/actors/emerald/emerald_blue.rgba16.png b/actors/emerald/emerald_blue.rgba16.png new file mode 100644 index 00000000..545ac03a Binary files /dev/null and b/actors/emerald/emerald_blue.rgba16.png differ diff --git a/actors/emerald/emerald_cyan.rgba16.png b/actors/emerald/emerald_cyan.rgba16.png new file mode 100644 index 00000000..f7559455 Binary files /dev/null and b/actors/emerald/emerald_cyan.rgba16.png differ diff --git a/actors/emerald/emerald_gray.rgba16.png b/actors/emerald/emerald_gray.rgba16.png new file mode 100644 index 00000000..b0954e6e Binary files /dev/null and b/actors/emerald/emerald_gray.rgba16.png differ diff --git a/actors/emerald/emerald_green.rgba16.png b/actors/emerald/emerald_green.rgba16.png new file mode 100644 index 00000000..4cc20871 Binary files /dev/null and b/actors/emerald/emerald_green.rgba16.png differ diff --git a/actors/emerald/emerald_purple.rgba16.png b/actors/emerald/emerald_purple.rgba16.png new file mode 100644 index 00000000..ef65f668 Binary files /dev/null and b/actors/emerald/emerald_purple.rgba16.png differ diff --git a/actors/emerald/emerald_red.rgba16.png b/actors/emerald/emerald_red.rgba16.png new file mode 100644 index 00000000..fa42e74f Binary files /dev/null and b/actors/emerald/emerald_red.rgba16.png differ diff --git a/actors/emerald/emerald_surface.rgba16.png b/actors/emerald/emerald_surface.rgba16.png new file mode 100644 index 00000000..61b2d3bb Binary files /dev/null and b/actors/emerald/emerald_surface.rgba16.png differ diff --git a/actors/emerald/emerald_yellow.rgba16.png b/actors/emerald/emerald_yellow.rgba16.png new file mode 100644 index 00000000..f9699636 Binary files /dev/null and b/actors/emerald/emerald_yellow.rgba16.png differ diff --git a/actors/emerald/geo.inc.c b/actors/emerald/geo.inc.c new file mode 100644 index 00000000..bb69666e --- /dev/null +++ b/actors/emerald/geo.inc.c @@ -0,0 +1,70 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout emerald_000_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_yellow_001_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_000_switch_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_blue_001_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_000_switch_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_purple_001_2), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_000_switch_opt4[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_gray_001_3), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_000_switch_opt5[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_cyan_001_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_000_switch_opt6[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1_mat_override_emeral_red_001_5), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout emerald_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 155, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(7, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, emerald_000_switch_opt1), + GEO_BRANCH(1, emerald_000_switch_opt2), + GEO_BRANCH(1, emerald_000_switch_opt3), + GEO_BRANCH(1, emerald_000_switch_opt4), + GEO_BRANCH(1, emerald_000_switch_opt5), + GEO_BRANCH(1, emerald_000_switch_opt6), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/emerald/geo_header.h b/actors/emerald/geo_header.h new file mode 100644 index 00000000..7e97f1aa --- /dev/null +++ b/actors/emerald/geo_header.h @@ -0,0 +1,38 @@ +extern const GeoLayout emerald_000_switch_opt1[]; +extern const GeoLayout emerald_000_switch_opt2[]; +extern const GeoLayout emerald_000_switch_opt3[]; +extern const GeoLayout emerald_000_switch_opt4[]; +extern const GeoLayout emerald_000_switch_opt5[]; +extern const GeoLayout emerald_000_switch_opt6[]; +extern const GeoLayout emerald_geo[]; +extern u8 emerald_emerald_green_rgba16[]; +extern u8 emerald_emerald_yellow_rgba16[]; +extern u8 emerald_emerald_blue_rgba16[]; +extern u8 emerald_emerald_purple_rgba16[]; +extern u8 emerald_emerald_gray_rgba16[]; +extern u8 emerald_emerald_cyan_rgba16[]; +extern u8 emerald_emerald_red_rgba16[]; +extern Vtx emerald_000_displaylist_mesh_layer_1_vtx_0[50]; +extern Gfx emerald_000_displaylist_mesh_layer_1_tri_0[]; +extern Gfx mat_emerald_emeral_green_001[]; +extern Gfx mat_revert_emerald_emeral_green_001[]; +extern Gfx mat_emerald_emeral_yellow_001[]; +extern Gfx mat_revert_emerald_emeral_yellow_001[]; +extern Gfx mat_emerald_emeral_blue_001[]; +extern Gfx mat_revert_emerald_emeral_blue_001[]; +extern Gfx mat_emerald_emeral_purple_001[]; +extern Gfx mat_revert_emerald_emeral_purple_001[]; +extern Gfx mat_emerald_emeral_gray_001[]; +extern Gfx mat_revert_emerald_emeral_gray_001[]; +extern Gfx mat_emerald_emeral_cyan_001[]; +extern Gfx mat_revert_emerald_emeral_cyan_001[]; +extern Gfx mat_emerald_emeral_red_001[]; +extern Gfx mat_revert_emerald_emeral_red_001[]; +extern Gfx emerald_000_displaylist_mesh_layer_1[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_yellow_001_0[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_blue_001_1[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_purple_001_2[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_gray_001_3[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_cyan_001_4[]; +extern Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_red_001_5[]; +extern Gfx emerald_material_revert_render_settings[]; diff --git a/actors/emerald/model.inc.c b/actors/emerald/model.inc.c new file mode 100644 index 00000000..065dd98d --- /dev/null +++ b/actors/emerald/model.inc.c @@ -0,0 +1,333 @@ +Gfx emerald_emerald_green_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_green_rgba16[] = { + #include "actors/emerald/emerald_green.rgba16.inc.c" +}; + +Gfx emerald_emerald_yellow_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_yellow_rgba16[] = { + #include "actors/emerald/emerald_yellow.rgba16.inc.c" +}; + +Gfx emerald_emerald_blue_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_blue_rgba16[] = { + #include "actors/emerald/emerald_blue.rgba16.inc.c" +}; + +Gfx emerald_emerald_purple_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_purple_rgba16[] = { + #include "actors/emerald/emerald_purple.rgba16.inc.c" +}; + +Gfx emerald_emerald_gray_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_gray_rgba16[] = { + #include "actors/emerald/emerald_gray.rgba16.inc.c" +}; + +Gfx emerald_emerald_cyan_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_cyan_rgba16[] = { + #include "actors/emerald/emerald_cyan.rgba16.inc.c" +}; + +Gfx emerald_emerald_red_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_emerald_red_rgba16[] = { + #include "actors/emerald/emerald_red.rgba16.inc.c" +}; + +Vtx emerald_000_displaylist_mesh_layer_1_vtx_0[50] = { + {{{-150, 2, -86},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, 2, -173},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, 2, -173},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{150, 2, -86},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-150, 2, 86},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-150, 2, -86},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{0, 2, 173},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-150, 2, 86},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{150, 2, 86},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{0, 2, 173},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{150, 2, -86},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{150, 2, 86},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{0, -154, 0},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{0, 63, -113},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{98, 63, -57},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{150, 2, -86},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{0, 2, -173},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-98, 63, -57},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 63, -113},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 2, -173},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-150, 2, -86},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 63, -113},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 63, -57},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 63, 57},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 63, 57},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{0, 63, 113},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 63, 57},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 63, -57},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{0, 63, -113},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 63, 57},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-98, 63, -57},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-150, 2, -86},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-150, 2, 86},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{0, 63, 113},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-98, 63, 57},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-150, 2, 86},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{0, 2, 173},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{98, 63, 57},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{0, 63, 113},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{0, 2, 173},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{150, 2, 86},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{98, 63, -57},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{98, 63, 57},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{150, 2, 86},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{150, 2, -86},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(emerald_000_displaylist_mesh_layer_1_vtx_0 + 0, 15, 0), + 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), + gsSPVertex(emerald_000_displaylist_mesh_layer_1_vtx_0 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_000_displaylist_mesh_layer_1_vtx_0 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_000_displaylist_mesh_layer_1_vtx_0 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_emerald_emeral_green_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_green_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_green_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_yellow_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_yellow_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_yellow_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_blue_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_blue_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_blue_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_purple_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_purple_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_purple_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_gray_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_gray_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_gray_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_cyan_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_cyan_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_cyan_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_emeral_red_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_emerald_red_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_emeral_red_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_emerald_emeral_green_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_green_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_yellow_001_0[] = { + gsSPDisplayList(mat_emerald_emeral_yellow_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_yellow_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_blue_001_1[] = { + gsSPDisplayList(mat_emerald_emeral_blue_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_blue_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_purple_001_2[] = { + gsSPDisplayList(mat_emerald_emeral_purple_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_purple_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_gray_001_3[] = { + gsSPDisplayList(mat_emerald_emeral_gray_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_gray_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_cyan_001_4[] = { + gsSPDisplayList(mat_emerald_emeral_cyan_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_cyan_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_000_displaylist_mesh_layer_1_mat_override_emeral_red_001_5[] = { + gsSPDisplayList(mat_emerald_emeral_red_001), + gsSPDisplayList(emerald_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_emeral_red_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/emerald_circle/emerald_blue.rgba16.png b/actors/emerald_circle/emerald_blue.rgba16.png new file mode 100644 index 00000000..545ac03a Binary files /dev/null and b/actors/emerald_circle/emerald_blue.rgba16.png differ diff --git a/actors/emerald_circle/emerald_cyan.rgba16.png b/actors/emerald_circle/emerald_cyan.rgba16.png new file mode 100644 index 00000000..f7559455 Binary files /dev/null and b/actors/emerald_circle/emerald_cyan.rgba16.png differ diff --git a/actors/emerald_circle/emerald_gray.rgba16.png b/actors/emerald_circle/emerald_gray.rgba16.png new file mode 100644 index 00000000..b0954e6e Binary files /dev/null and b/actors/emerald_circle/emerald_gray.rgba16.png differ diff --git a/actors/emerald_circle/emerald_green.rgba16.png b/actors/emerald_circle/emerald_green.rgba16.png new file mode 100644 index 00000000..4cc20871 Binary files /dev/null and b/actors/emerald_circle/emerald_green.rgba16.png differ diff --git a/actors/emerald_circle/emerald_purple.rgba16.png b/actors/emerald_circle/emerald_purple.rgba16.png new file mode 100644 index 00000000..ef65f668 Binary files /dev/null and b/actors/emerald_circle/emerald_purple.rgba16.png differ diff --git a/actors/emerald_circle/emerald_red.rgba16.png b/actors/emerald_circle/emerald_red.rgba16.png new file mode 100644 index 00000000..fa42e74f Binary files /dev/null and b/actors/emerald_circle/emerald_red.rgba16.png differ diff --git a/actors/emerald_circle/emerald_yellow.rgba16.png b/actors/emerald_circle/emerald_yellow.rgba16.png new file mode 100644 index 00000000..f9699636 Binary files /dev/null and b/actors/emerald_circle/emerald_yellow.rgba16.png differ diff --git a/actors/emerald_circle/geo.inc.c b/actors/emerald_circle/geo.inc.c new file mode 100644 index 00000000..481b0ba0 --- /dev/null +++ b/actors/emerald_circle/geo.inc.c @@ -0,0 +1,16 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout emerald_circle_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 155, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_circle_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, emerald_circle_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/emerald_circle/geo_header.h b/actors/emerald_circle/geo_header.h new file mode 100644 index 00000000..d33b63ff --- /dev/null +++ b/actors/emerald_circle/geo_header.h @@ -0,0 +1,38 @@ +extern const GeoLayout emerald_circle_geo[]; +extern u8 emerald_circle_emerald_gray_rgba16[]; +extern u8 emerald_circle_emerald_purple_rgba16[]; +extern u8 emerald_circle_emerald_green_rgba16[]; +extern u8 emerald_circle_emerald_yellow_rgba16[]; +extern u8 emerald_circle_emerald_blue_rgba16[]; +extern u8 emerald_circle_emerald_red_rgba16[]; +extern u8 emerald_circle_emerald_cyan_rgba16[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_0[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_1[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_1[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_2[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_2[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_3[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_3[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_4[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_4[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_5[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_5[]; +extern Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_6[50]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_6[]; +extern Gfx mat_emerald_circle_emeral_gray_001[]; +extern Gfx mat_revert_emerald_circle_emeral_gray_001[]; +extern Gfx mat_emerald_circle_emeral_purple_001[]; +extern Gfx mat_revert_emerald_circle_emeral_purple_001[]; +extern Gfx mat_emerald_circle_emeral_green_001[]; +extern Gfx mat_revert_emerald_circle_emeral_green_001[]; +extern Gfx mat_emerald_circle_emeral_yellow_001[]; +extern Gfx mat_revert_emerald_circle_emeral_yellow_001[]; +extern Gfx mat_emerald_circle_emeral_blue_001[]; +extern Gfx mat_revert_emerald_circle_emeral_blue_001[]; +extern Gfx mat_emerald_circle_emeral_red_001[]; +extern Gfx mat_revert_emerald_circle_emeral_red_001[]; +extern Gfx mat_emerald_circle_emeral_cyan_001[]; +extern Gfx mat_revert_emerald_circle_emeral_cyan_001[]; +extern Gfx emerald_circle_000_displaylist_mesh_layer_1[]; +extern Gfx emerald_circle_material_revert_render_settings[]; diff --git a/actors/emerald_circle/model.inc.c b/actors/emerald_circle/model.inc.c new file mode 100644 index 00000000..3287efcf --- /dev/null +++ b/actors/emerald_circle/model.inc.c @@ -0,0 +1,807 @@ +Gfx emerald_circle_emerald_gray_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_gray_rgba16[] = { + #include "actors/emerald_circle/emerald_gray.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_purple_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_purple_rgba16[] = { + #include "actors/emerald_circle/emerald_purple.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_green_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_green_rgba16[] = { + #include "actors/emerald_circle/emerald_green.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_yellow_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_yellow_rgba16[] = { + #include "actors/emerald_circle/emerald_yellow.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_blue_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_blue_rgba16[] = { + #include "actors/emerald_circle/emerald_blue.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_red_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_red_rgba16[] = { + #include "actors/emerald_circle/emerald_red.rgba16.inc.c" +}; + +Gfx emerald_circle_emerald_cyan_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 emerald_circle_emerald_cyan_rgba16[] = { + #include "actors/emerald_circle/emerald_cyan.rgba16.inc.c" +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_0[50] = { + {{{505, 45, 63},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{655, 45, -23},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{655, 45, -23},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{805, 45, 63},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{505, 45, 236},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{505, 45, 63},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{655, 45, 322},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{505, 45, 236},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{805, 45, 236},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{655, 45, 322},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{805, 45, 63},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{805, 45, 236},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{655, -111, 149},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{655, 106, 36},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{753, 106, 93},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{805, 45, 63},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{655, 45, -23},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{557, 106, 93},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{655, 106, 36},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{655, 45, -23},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{505, 45, 63},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{655, 106, 36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{557, 106, 93},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{557, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{753, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{655, 106, 263},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{753, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{753, 106, 93},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{655, 106, 36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{557, 106, 206},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{557, 106, 93},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{505, 45, 63},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{505, 45, 236},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{655, 106, 263},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{557, 106, 206},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{505, 45, 236},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{655, 45, 322},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{753, 106, 206},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{655, 106, 263},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{655, 45, 322},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{805, 45, 236},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{753, 106, 93},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{753, 106, 206},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{805, 45, 236},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{805, 45, 63},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_0 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_0 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_0 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_0 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_1[50] = { + {{{376, 45, -505},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{525, 45, -592},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{525, 45, -592},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{675, 45, -505},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{376, 45, -332},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{376, 45, -505},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{525, 45, -246},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{376, 45, -332},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{675, 45, -332},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{525, 45, -246},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{675, 45, -505},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{675, 45, -332},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{525, -111, -419},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{525, 106, -532},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{624, 106, -476},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{675, 45, -505},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{525, 45, -592},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{427, 106, -476},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{525, 106, -532},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{525, 45, -592},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{376, 45, -505},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{525, 106, -532},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{427, 106, -476},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{427, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{624, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{525, 106, -305},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{624, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{624, 106, -476},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{525, 106, -532},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{427, 106, -362},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{427, 106, -476},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{376, 45, -505},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{376, 45, -332},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{525, 106, -305},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{427, 106, -362},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{376, 45, -332},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{525, 45, -246},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{624, 106, -362},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{525, 106, -305},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{525, 45, -246},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{675, 45, -332},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{624, 106, -476},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{624, 106, -362},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{675, 45, -332},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{675, 45, -505},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_1[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_1 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_1 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_1 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_1 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_2[50] = { + {{{-150, 45, -758},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, 45, -845},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{0, 45, -845},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{150, 45, -758},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-150, 45, -585},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-150, 45, -758},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{0, 45, -499},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-150, 45, -585},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{150, 45, -585},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{0, 45, -499},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{150, 45, -758},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{150, 45, -585},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{0, -111, -672},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{0, 106, -785},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{98, 106, -729},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{150, 45, -758},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{0, 45, -845},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-98, 106, -729},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 106, -785},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 45, -845},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-150, 45, -758},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{0, 106, -785},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 106, -729},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 106, -615},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 106, -615},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{0, 106, -558},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 106, -615},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{98, 106, -729},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{0, 106, -785},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-98, 106, -615},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-98, 106, -729},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-150, 45, -758},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-150, 45, -585},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{0, 106, -558},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-98, 106, -615},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-150, 45, -585},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{0, 45, -499},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{98, 106, -615},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{0, 106, -558},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{0, 45, -499},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{150, 45, -585},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{98, 106, -729},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{98, 106, -615},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{150, 45, -585},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{150, 45, -758},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_2[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_2 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_2 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_2 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_2 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_3[50] = { + {{{-675, 45, -505},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-525, 45, -592},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-525, 45, -592},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-376, 45, -505},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-675, 45, -332},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-675, 45, -505},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-525, 45, -246},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-675, 45, -332},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-376, 45, -332},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-525, 45, -246},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-376, 45, -505},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-376, 45, -332},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-525, -111, -419},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-525, 106, -532},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-427, 106, -476},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-376, 45, -505},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-525, 45, -592},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-624, 106, -476},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-525, 106, -532},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-525, 45, -592},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-675, 45, -505},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-525, 106, -532},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-624, 106, -476},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-624, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-427, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-525, 106, -305},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-427, 106, -362},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-427, 106, -476},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-525, 106, -532},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-624, 106, -362},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-624, 106, -476},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-675, 45, -505},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-675, 45, -332},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-525, 106, -305},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-624, 106, -362},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-675, 45, -332},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-525, 45, -246},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-427, 106, -362},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-525, 106, -305},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-525, 45, -246},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-376, 45, -332},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-427, 106, -476},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-427, 106, -362},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-376, 45, -332},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-376, 45, -505},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_3[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_3 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_3 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_3 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_3 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_4[50] = { + {{{-805, 45, 63},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-655, 45, -23},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-655, 45, -23},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-505, 45, 63},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-805, 45, 236},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-805, 45, 63},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-655, 45, 322},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-805, 45, 236},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-505, 45, 236},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-655, 45, 322},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-505, 45, 63},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-505, 45, 236},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-655, -111, 149},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-655, 106, 36},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-557, 106, 93},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-505, 45, 63},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-655, 45, -23},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-753, 106, 93},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-655, 106, 36},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-655, 45, -23},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-805, 45, 63},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-655, 106, 36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-753, 106, 93},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-753, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-557, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-655, 106, 263},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-557, 106, 206},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-557, 106, 93},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-655, 106, 36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-753, 106, 206},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-753, 106, 93},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-805, 45, 63},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-805, 45, 236},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-655, 106, 263},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-753, 106, 206},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-805, 45, 236},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-655, 45, 322},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-557, 106, 206},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-655, 106, 263},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-655, 45, 322},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-505, 45, 236},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-557, 106, 93},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-557, 106, 206},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-505, 45, 236},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-505, 45, 63},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_4[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_4 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_4 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_4 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_4 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_5[50] = { + {{{-435, 45, 519},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-285, 45, 432},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{-285, 45, 432},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-136, 45, 519},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{-435, 45, 692},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-435, 45, 519},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{-285, 45, 778},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-435, 45, 692},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{-136, 45, 692},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-285, 45, 778},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{-136, 45, 519},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-136, 45, 692},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-285, -111, 605},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{-285, 106, 492},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-187, 106, 549},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-136, 45, 519},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-285, 45, 432},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{-384, 106, 549},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-285, 106, 492},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-285, 45, 432},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-435, 45, 519},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{-285, 106, 492},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-384, 106, 549},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-384, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-187, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-285, 106, 719},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-187, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-187, 106, 549},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-285, 106, 492},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-384, 106, 662},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-384, 106, 549},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-435, 45, 519},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-435, 45, 692},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{-285, 106, 719},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-384, 106, 662},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-435, 45, 692},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-285, 45, 778},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{-187, 106, 662},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-285, 106, 719},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-285, 45, 778},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-136, 45, 692},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{-187, 106, 549},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-187, 106, 662},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-136, 45, 692},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{-136, 45, 519},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_5[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_5 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_5 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_5 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_5 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx emerald_circle_000_displaylist_mesh_layer_1_vtx_6[50] = { + {{{142, 45, 519},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{292, 45, 432},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0xD2, 0xA8, 0xB1, 0xFF}}}, + {{{292, 45, 432},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{441, 45, 519},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0x2E, 0xA8, 0xB1, 0xFF}}}, + {{{142, 45, 692},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{142, 45, 519},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0xA4, 0xA8, 0x0, 0xFF}}}, + {{{292, 45, 778},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{142, 45, 692},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0xD2, 0xA8, 0x4F, 0xFF}}}, + {{{441, 45, 692},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{292, 45, 778},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0x2E, 0xA8, 0x4F, 0xFF}}}, + {{{441, 45, 519},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{441, 45, 692},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{292, -111, 605},0, {-16, 1008},{0x5C, 0xA8, 0x0, 0xFF}}}, + {{{292, 106, 492},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{390, 106, 549},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{441, 45, 519},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{292, 45, 432},0, {-16, 1008},{0x30, 0x52, 0xAC, 0xFF}}}, + {{{193, 106, 549},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{292, 106, 492},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{292, 45, 432},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{142, 45, 519},0, {-16, 1008},{0xD0, 0x52, 0xAC, 0xFF}}}, + {{{292, 106, 492},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{193, 106, 549},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{193, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{390, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{292, 106, 719},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{390, 106, 662},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{390, 106, 549},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{292, 106, 492},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{193, 106, 662},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{193, 106, 549},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{142, 45, 519},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{142, 45, 692},0, {-16, 1008},{0x9F, 0x52, 0x0, 0xFF}}}, + {{{292, 106, 719},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{193, 106, 662},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{142, 45, 692},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{292, 45, 778},0, {-16, 1008},{0xD0, 0x52, 0x54, 0xFF}}}, + {{{390, 106, 662},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{292, 106, 719},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{292, 45, 778},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{441, 45, 692},0, {-16, 1008},{0x30, 0x52, 0x54, 0xFF}}}, + {{{390, 106, 549},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{390, 106, 662},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{441, 45, 692},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, + {{{441, 45, 519},0, {-16, 1008},{0x61, 0x52, 0x0, 0xFF}}}, +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1_tri_6[] = { + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_6 + 0, 15, 0), + 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), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_6 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_6 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(emerald_circle_000_displaylist_mesh_layer_1_vtx_6 + 46, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_emerald_circle_emeral_gray_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_gray_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_gray_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_purple_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_purple_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_purple_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_green_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_green_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_green_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_yellow_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_yellow_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_yellow_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_blue_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_blue_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_blue_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_red_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_red_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_red_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_emerald_circle_emeral_cyan_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, emerald_circle_emerald_cyan_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_emerald_circle_emeral_cyan_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx emerald_circle_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_emerald_circle_emeral_gray_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_emerald_circle_emeral_gray_001), + gsSPDisplayList(mat_emerald_circle_emeral_purple_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_emerald_circle_emeral_purple_001), + gsSPDisplayList(mat_emerald_circle_emeral_green_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_emerald_circle_emeral_green_001), + gsSPDisplayList(mat_emerald_circle_emeral_yellow_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_emerald_circle_emeral_yellow_001), + gsSPDisplayList(mat_emerald_circle_emeral_blue_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_emerald_circle_emeral_blue_001), + gsSPDisplayList(mat_emerald_circle_emeral_red_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_emerald_circle_emeral_red_001), + gsSPDisplayList(mat_emerald_circle_emeral_cyan_001), + gsSPDisplayList(emerald_circle_000_displaylist_mesh_layer_1_tri_6), + gsSPDisplayList(mat_revert_emerald_circle_emeral_cyan_001), + gsSPEndDisplayList(), +}; + +Gfx emerald_circle_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/exclamation_box/metal_cap_box_front.rgba16.png b/actors/exclamation_box/metal_cap_box_front.rgba16.png new file mode 100644 index 00000000..ae1ebb5a Binary files /dev/null and b/actors/exclamation_box/metal_cap_box_front.rgba16.png differ diff --git a/actors/exclamation_box/metal_cap_box_side.rgba16.png b/actors/exclamation_box/metal_cap_box_side.rgba16.png new file mode 100644 index 00000000..d8b12994 Binary files /dev/null and b/actors/exclamation_box/metal_cap_box_side.rgba16.png differ diff --git a/actors/exclamation_box/wing_cap_box_front.rgba16.png b/actors/exclamation_box/wing_cap_box_front.rgba16.png new file mode 100644 index 00000000..bb0d4447 Binary files /dev/null and b/actors/exclamation_box/wing_cap_box_front.rgba16.png differ diff --git a/actors/exclamation_box/wing_cap_box_side.rgba16.png b/actors/exclamation_box/wing_cap_box_side.rgba16.png new file mode 100644 index 00000000..c371e5e8 Binary files /dev/null and b/actors/exclamation_box/wing_cap_box_side.rgba16.png differ diff --git a/actors/group0.c b/actors/group0.c index f852e6c6..7e6a002c 100644 --- a/actors/group0.c +++ b/actors/group0.c @@ -25,3 +25,16 @@ #include "white_particle_small/model.inc.c" #include "sparkle_animation/model.inc.c" + +//sonic + +#include "sonic_ball/model.inc.c" + +#include "sonic_trail/model.inc.c" + +#include "super_sonic/model.inc.c" +#include "super_ball/model.inc.c" + +#include "reticle/model.inc.c" +#include "emerald/model.inc.c" +#include "emerald_circle/model.inc.c" \ No newline at end of file diff --git a/actors/group0.c.rej b/actors/group0.c.rej new file mode 100644 index 00000000..05391568 --- /dev/null +++ b/actors/group0.c.rej @@ -0,0 +1,19 @@ +diff a/actors/group0.c b/actors/group0.c (rejected hunks) +@@ -25,3 +25,16 @@ + #include "white_particle_small/model.inc.c" + + #include "sparkle_animation/model.inc.c" ++ ++ ++ ++#include "sonic_ball/model.inc.c" ++ ++#include "sonic_trail/model.inc.c" ++ ++#include "super_sonic/model.inc.c" ++#include "super_ball/model.inc.c" ++ ++#include "reticle/model.inc.c" ++#include "emerald/model.inc.c" ++#include "emerald_circle/model.inc.c" +\ No newline at end of file diff --git a/actors/group0.h b/actors/group0.h index 44f8b05d..d380d855 100644 --- a/actors/group0.h +++ b/actors/group0.h @@ -16,6 +16,34 @@ extern const Gfx burn_smoke_seg4_dl_04022028[]; extern const Gfx burn_smoke_seg4_dl_04022048[]; extern const Gfx burn_smoke_seg4_dl_04022070[]; +// sonic_trail +extern const GeoLayout sonic_trail_geo[]; +extern const GeoLayout super_trail_geo[]; +extern const Gfx sonic_trail_seg3_dl_0301B320[]; +extern const Gfx sonic_trail_seg3_dl_0301B3B0[]; +extern const Gfx sonic_trail_seg3_dl_0301B3C8[]; +extern const Gfx sonic_trail_seg3_dl_0301B3E0[]; +extern const Gfx sonic_trail_seg3_dl_0301B3F8[]; +extern const Gfx sonic_trail_seg3_dl_0301B410[]; +extern const Gfx sonic_trail_seg3_dl_0301B428[]; +extern const Gfx sonic_trail_seg3_dl_0301B440[]; +extern const Gfx sonic_trail_seg3_dl_0301B458[]; +extern const Gfx sonic_trail_seg3_dl_0301B470[]; +extern const Gfx sonic_trail_seg3_dl_0301B500[]; +extern const Gfx sonic_trail_seg3_dl_0301B518[]; +extern const Gfx sonic_trail_seg3_dl_0301B530[]; +extern const Gfx sonic_trail_seg3_dl_0301B548[]; +extern const Gfx sonic_trail_seg3_dl_0301B560[]; +extern const Gfx sonic_trail_seg3_dl_0301B578[]; +extern const Gfx sonic_trail_seg3_dl_0301B590[]; +extern const Gfx sonic_trail_seg3_dl_0301B5A8[]; + + + + + + + // mario extern const GeoLayout mario_geo_face_and_wings[]; extern const GeoLayout mario_geo_left_hand[]; @@ -342,4 +370,795 @@ extern const Gfx white_particle_small_dl_end[]; extern const Gfx white_particle_small_dl[]; extern const Gfx white_particle_small_unused_dl[]; + +// sonic_ball +extern const GeoLayout sonic_ball_geo[]; +extern const Gfx sonic_ball_seg5_dl_05010D30[]; +extern const Gfx sonic_ball_seg5_dl_05011000[]; + +// sonic_ball +extern const GeoLayout super_ball_geo[]; +extern const Gfx super_ball_seg5_dl_05010D30[]; +extern const Gfx super_ball_seg5_dl_05011000[]; + +// super_sonic +extern const GeoLayout super_sonic_geo[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_geo[]; +extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; +extern Gfx super_sonic_000_offset_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; +extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; +extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; +extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; +extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; +extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; +extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; +extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; +extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; +extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; +extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; +extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; +extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; +extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; +extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; +extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; +extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; +extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; +extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; +extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; +extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; +extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; +extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; +extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; +extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; +extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; +extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; +extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; +extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; +extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; +extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; +extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; + +extern Gfx super_sonic_000_offset_mesh[]; +extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_001_mesh[]; +extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_001_skinned[]; +extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_mesh[]; +extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +extern Gfx super_sonic_000_displaylist_001_mesh[]; +extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_002_mesh[]; +extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_003_mesh[]; +extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_004_mesh[]; +extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_004_skinned[]; +extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_003_mesh[]; +extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_006_mesh[]; +extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_007_mesh[]; +extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_007_skinned[]; +extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_004_mesh[]; +extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_009_mesh[]; +extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_009_skinned[]; +extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_010_mesh[]; +extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_010_skinned[]; +extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_011_mesh[]; +extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_012_mesh[]; +extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_012_skinned[]; +extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_013_mesh[]; +extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_013_skinned[]; +extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_005_mesh[]; +extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_material_revert_render_settings[]; + +extern const GeoLayout sonic_ball_001_switch_opt1[]; +extern const GeoLayout sonic_ball_001_switch_opt2[]; +extern const GeoLayout sonic_ball_001_switch_opt3[]; +extern const GeoLayout geo[]; +extern Vtx sonic_ball_000_offset_mesh_vtx_0[80]; +extern Gfx sonic_ball_000_offset_mesh_tri_0[]; + +extern Gfx sonic_ball_000_offset_mesh[]; +extern Gfx sonic_ball_000_offset_mesh_mat_override_metal_0[]; +extern Gfx sonic_ball_material_revert_render_settings[]; + + +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout mario_armature_002_switch_option_002[]; +extern const GeoLayout mario_right_hand_open_armature[]; +extern const GeoLayout mario_left_hand_open_armature[]; +extern const GeoLayout mario_left_hand_peace_armature[]; +extern const GeoLayout mario_left_hand_cap_armature[]; +extern const GeoLayout mario_left_hand_wing_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_armature_002_switch_option_002[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_wing_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_armature_002_switch_option_002[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_wing_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_armature_002_switch_option_002[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_wing_cap_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout mario_geo[]; +extern Vtx mario_000_offset_mesh_vtx_0[6]; +extern Gfx mario_000_offset_mesh_tri_0[]; +extern Vtx mario_000_offset_mesh_vtx_1[24]; +extern Gfx mario_000_offset_mesh_tri_1[]; +extern Vtx mario_000_offset_001_mesh_vtx_0[16]; +extern Gfx mario_000_offset_001_mesh_tri_0[]; +extern Vtx mario_000_offset_001_mesh_vtx_1[8]; +extern Gfx mario_000_offset_001_mesh_tri_1[]; +extern Vtx mario_000_offset_001_mesh_vtx_2[100]; +extern Gfx mario_000_offset_001_mesh_tri_2[]; +extern Vtx mario_000_offset_001_mesh_vtx_3[16]; +extern Gfx mario_000_offset_001_mesh_tri_3[]; +extern Vtx mario_000_offset_001_skinned_vtx_0[11]; +extern Gfx mario_000_offset_001_skinned_tri_0[]; +extern Vtx mario_000_offset_001_skinned_vtx_1[3]; +extern Gfx mario_000_offset_001_skinned_tri_1[]; +extern Vtx mario_000_displaylist_mesh_vtx_0[453]; +extern Gfx mario_000_displaylist_mesh_tri_0[]; +extern Vtx mario_000_displaylist_mesh_vtx_1[85]; +extern Gfx mario_000_displaylist_mesh_tri_1[]; +extern Vtx mario_000_displaylist_mesh_vtx_2[42]; +extern Gfx mario_000_displaylist_mesh_tri_2[]; +extern Vtx mario_000_displaylist_mesh_vtx_3[26]; +extern Gfx mario_000_displaylist_mesh_tri_3[]; +extern Vtx mario_000_displaylist_mesh_vtx_4[13]; +extern Gfx mario_000_displaylist_mesh_tri_4[]; +extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_0[103]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_0[]; +extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_1[30]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_1[]; +extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_2[12]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_2[]; +extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_3[92]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_3[]; +extern Vtx mario_000_displaylist_001_mesh_vtx_0[4]; +extern Gfx mario_000_displaylist_001_mesh_tri_0[]; +extern Vtx mario_000_displaylist_001_mesh_vtx_1[4]; +extern Gfx mario_000_displaylist_001_mesh_tri_1[]; +extern Vtx mario_000_displaylist_002_mesh_vtx_0[4]; +extern Gfx mario_000_displaylist_002_mesh_tri_0[]; +extern Vtx mario_000_displaylist_002_mesh_vtx_1[4]; +extern Gfx mario_000_displaylist_002_mesh_tri_1[]; +extern Vtx mario_000_offset_003_mesh_vtx_0[31]; +extern Gfx mario_000_offset_003_mesh_tri_0[]; +extern Vtx mario_000_offset_004_mesh_vtx_0[6]; +extern Gfx mario_000_offset_004_mesh_tri_0[]; +extern Vtx mario_000_offset_004_mesh_vtx_1[12]; +extern Gfx mario_000_offset_004_mesh_tri_1[]; +extern Vtx mario_000_offset_004_skinned_vtx_0[6]; +extern Gfx mario_000_offset_004_skinned_tri_0[]; +extern Vtx mario_000_displaylist_003_mesh_vtx_0[46]; +extern Gfx mario_000_displaylist_003_mesh_tri_0[]; +extern Vtx mario_002_switch_option_right_hand_open_mesh_vtx_0[58]; +extern Gfx mario_002_switch_option_right_hand_open_mesh_tri_0[]; +extern Vtx mario_000_offset_006_mesh_vtx_0[40]; +extern Gfx mario_000_offset_006_mesh_tri_0[]; +extern Vtx mario_000_offset_007_mesh_vtx_0[6]; +extern Gfx mario_000_offset_007_mesh_tri_0[]; +extern Vtx mario_000_offset_007_mesh_vtx_1[12]; +extern Gfx mario_000_offset_007_mesh_tri_1[]; +extern Vtx mario_000_offset_007_skinned_vtx_0[6]; +extern Gfx mario_000_offset_007_skinned_tri_0[]; +extern Vtx mario_000_displaylist_004_mesh_vtx_0[36]; +extern Gfx mario_000_displaylist_004_mesh_tri_0[]; +extern Vtx mario_002_switch_option_left_hand_open_mesh_vtx_0[57]; +extern Gfx mario_002_switch_option_left_hand_open_mesh_tri_0[]; +extern Vtx mario_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh_tri_0[]; +extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_0[]; +extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_1[]; +extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +extern Vtx mario_000_offset_009_mesh_vtx_0[8]; +extern Gfx mario_000_offset_009_mesh_tri_0[]; +extern Vtx mario_000_offset_009_mesh_vtx_1[13]; +extern Gfx mario_000_offset_009_mesh_tri_1[]; +extern Vtx mario_000_offset_009_skinned_vtx_0[11]; +extern Gfx mario_000_offset_009_skinned_tri_0[]; +extern Vtx mario_000_offset_010_mesh_vtx_0[6]; +extern Gfx mario_000_offset_010_mesh_tri_0[]; +extern Vtx mario_000_offset_010_mesh_vtx_1[9]; +extern Gfx mario_000_offset_010_mesh_tri_1[]; +extern Vtx mario_000_offset_010_mesh_vtx_2[41]; +extern Gfx mario_000_offset_010_mesh_tri_2[]; +extern Vtx mario_000_offset_010_mesh_vtx_3[16]; +extern Gfx mario_000_offset_010_mesh_tri_3[]; +extern Vtx mario_000_offset_010_skinned_vtx_0[6]; +extern Gfx mario_000_offset_010_skinned_tri_0[]; +extern Vtx mario_000_offset_011_mesh_vtx_0[58]; +extern Gfx mario_000_offset_011_mesh_tri_0[]; +extern Vtx mario_000_offset_011_mesh_vtx_1[16]; +extern Gfx mario_000_offset_011_mesh_tri_1[]; +extern Vtx mario_000_offset_011_mesh_vtx_2[46]; +extern Gfx mario_000_offset_011_mesh_tri_2[]; +extern Vtx mario_000_offset_011_mesh_vtx_3[12]; +extern Gfx mario_000_offset_011_mesh_tri_3[]; +extern Vtx mario_000_offset_012_mesh_vtx_0[8]; +extern Gfx mario_000_offset_012_mesh_tri_0[]; +extern Vtx mario_000_offset_012_mesh_vtx_1[13]; +extern Gfx mario_000_offset_012_mesh_tri_1[]; +extern Vtx mario_000_offset_012_skinned_vtx_0[11]; +extern Gfx mario_000_offset_012_skinned_tri_0[]; +extern Vtx mario_000_offset_013_mesh_vtx_0[6]; +extern Gfx mario_000_offset_013_mesh_tri_0[]; +extern Vtx mario_000_offset_013_mesh_vtx_1[9]; +extern Gfx mario_000_offset_013_mesh_tri_1[]; +extern Vtx mario_000_offset_013_mesh_vtx_2[41]; +extern Gfx mario_000_offset_013_mesh_tri_2[]; +extern Vtx mario_000_offset_013_mesh_vtx_3[16]; +extern Gfx mario_000_offset_013_mesh_tri_3[]; +extern Vtx mario_000_offset_013_skinned_vtx_0[6]; +extern Gfx mario_000_offset_013_skinned_tri_0[]; +extern Vtx mario_000_displaylist_005_mesh_vtx_0[55]; +extern Gfx mario_000_displaylist_005_mesh_tri_0[]; +extern Vtx mario_000_displaylist_005_mesh_vtx_1[46]; +extern Gfx mario_000_displaylist_005_mesh_tri_1[]; +extern Vtx mario_000_displaylist_005_mesh_vtx_2[12]; +extern Gfx mario_000_displaylist_005_mesh_tri_2[]; +extern Vtx mario_000_displaylist_005_mesh_vtx_3[16]; +extern Gfx mario_000_displaylist_005_mesh_tri_3[]; + +extern Gfx mario_000_offset_mesh[]; +extern Gfx mario_000_offset_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_001_mesh[]; +extern Gfx mario_000_offset_001_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_001_skinned[]; +extern Gfx mario_000_offset_001_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_mesh[]; +extern Gfx mario_000_displaylist_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +extern Gfx mario_002_switch_option_head__no_cap__mesh[]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +extern Gfx mario_000_displaylist_001_mesh[]; +extern Gfx mario_000_displaylist_001_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_002_mesh[]; +extern Gfx mario_000_displaylist_002_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_003_mesh[]; +extern Gfx mario_000_offset_003_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_004_mesh[]; +extern Gfx mario_000_offset_004_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_004_skinned[]; +extern Gfx mario_000_offset_004_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_003_mesh[]; +extern Gfx mario_000_displaylist_003_mesh_mat_override_metal_003_0[]; +extern Gfx mario_002_switch_option_right_hand_open_mesh[]; +extern Gfx mario_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_006_mesh[]; +extern Gfx mario_000_offset_006_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_007_mesh[]; +extern Gfx mario_000_offset_007_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_007_skinned[]; +extern Gfx mario_000_offset_007_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_004_mesh[]; +extern Gfx mario_000_displaylist_004_mesh_mat_override_metal_003_0[]; +extern Gfx mario_002_switch_option_left_hand_open_mesh[]; +extern Gfx mario_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh[]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +extern Gfx mario_005_switch_option_left_hand_cap_mesh[]; +extern Gfx mario_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh[]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh[]; +extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_009_mesh[]; +extern Gfx mario_000_offset_009_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_009_skinned[]; +extern Gfx mario_000_offset_009_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_010_mesh[]; +extern Gfx mario_000_offset_010_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_010_skinned[]; +extern Gfx mario_000_offset_010_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_011_mesh[]; +extern Gfx mario_000_offset_011_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_012_mesh[]; +extern Gfx mario_000_offset_012_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_012_skinned[]; +extern Gfx mario_000_offset_012_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_013_mesh[]; +extern Gfx mario_000_offset_013_mesh_mat_override_metal_003_0[]; +extern Gfx mario_000_offset_013_skinned[]; +extern Gfx mario_000_offset_013_skinned_mat_override_metal_003_0[]; +extern Gfx mario_000_displaylist_005_mesh[]; +extern Gfx mario_000_displaylist_005_mesh_mat_override_metal_003_0[]; +extern Gfx mario_material_revert_render_settings[]; + +extern const GeoLayout super_ball_001_switch_opt1[]; +extern const GeoLayout super_ball_001_switch_opt2[]; +extern const GeoLayout super_ball_001_switch_opt3[]; +extern const GeoLayout super_ball_geo[]; +extern Vtx super_ball_000_offset_mesh_vtx_0[80]; +extern Gfx super_ball_000_offset_mesh_tri_0[]; + +extern Gfx super_ball_000_offset_mesh[]; +extern Gfx super_ball_000_offset_mesh_mat_override_metal_0[]; +extern Gfx super_ball_material_revert_render_settings[]; + +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_geo[]; +extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; +extern Gfx super_sonic_000_offset_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; +extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; +extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; +extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; +extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; +extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; +extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; +extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; +extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; +extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; +extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; +extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; +extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; +extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; +extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; +extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; +extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; +extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; +extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; +extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; +extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; +extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; +extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; +extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; +extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; +extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; +extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; +extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; +extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; +extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; +extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; +extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; +extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; +extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; +extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; +extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; +extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; +extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; +extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; +extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; +extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; + +extern Gfx super_sonic_000_offset_mesh[]; +extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_001_mesh[]; +extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_001_skinned[]; +extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_mesh[]; +extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +extern Gfx super_sonic_000_displaylist_001_mesh[]; +extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_002_mesh[]; +extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_003_mesh[]; +extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_004_mesh[]; +extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_004_skinned[]; +extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_003_mesh[]; +extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_006_mesh[]; +extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_007_mesh[]; +extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_007_skinned[]; +extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_004_mesh[]; +extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; +extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; +extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_009_mesh[]; +extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_009_skinned[]; +extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_010_mesh[]; +extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_010_skinned[]; +extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_011_mesh[]; +extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_012_mesh[]; +extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_012_skinned[]; +extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_013_mesh[]; +extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_offset_013_skinned[]; +extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; +extern Gfx super_sonic_000_displaylist_005_mesh[]; +extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; +extern Gfx super_sonic_material_revert_render_settings[]; + + + + + + + +#include "reticle/geo_header.h" + +#include "mario/geo_header.h" + + + +#include "emerald/geo_header.h" + +#include "super_sonic/geo_header.h" + +#include "emerald_circle/geo_header.h" + +#include "sonic_ball/geo_header.h" + +#include "super_ball/geo_header.h" + #endif diff --git a/actors/group0.h.rej b/actors/group0.h.rej new file mode 100644 index 00000000..8e296785 --- /dev/null +++ b/actors/group0.h.rej @@ -0,0 +1,832 @@ +diff a/actors/group0.h b/actors/group0.h (rejected hunks) +@@ -16,6 +16,34 @@ extern const Gfx burn_smoke_seg4_dl_04022028[]; + extern const Gfx burn_smoke_seg4_dl_04022048[]; + extern const Gfx burn_smoke_seg4_dl_04022070[]; + ++// sonic_trail ++extern const GeoLayout sonic_trail_geo[]; ++extern const GeoLayout super_trail_geo[]; ++extern const Gfx sonic_trail_seg3_dl_0301B320[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3B0[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3C8[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3E0[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3F8[]; ++extern const Gfx sonic_trail_seg3_dl_0301B410[]; ++extern const Gfx sonic_trail_seg3_dl_0301B428[]; ++extern const Gfx sonic_trail_seg3_dl_0301B440[]; ++extern const Gfx sonic_trail_seg3_dl_0301B458[]; ++extern const Gfx sonic_trail_seg3_dl_0301B470[]; ++extern const Gfx sonic_trail_seg3_dl_0301B500[]; ++extern const Gfx sonic_trail_seg3_dl_0301B518[]; ++extern const Gfx sonic_trail_seg3_dl_0301B530[]; ++extern const Gfx sonic_trail_seg3_dl_0301B548[]; ++extern const Gfx sonic_trail_seg3_dl_0301B560[]; ++extern const Gfx sonic_trail_seg3_dl_0301B578[]; ++extern const Gfx sonic_trail_seg3_dl_0301B590[]; ++extern const Gfx sonic_trail_seg3_dl_0301B5A8[]; ++ ++ ++ ++ ++ ++ ++ + // mario + extern const GeoLayout mario_geo_face_and_wings[]; + extern const GeoLayout mario_geo_left_hand[]; +@@ -342,4 +370,795 @@ extern const Gfx white_particle_small_dl_end[]; + extern const Gfx white_particle_small_dl[]; + extern const Gfx white_particle_small_unused_dl[]; + ++ ++// sonic_ball ++extern const GeoLayout sonic_ball_geo[]; ++extern const Gfx sonic_ball_seg5_dl_05010D30[]; ++extern const Gfx sonic_ball_seg5_dl_05011000[]; ++ ++// sonic_ball ++extern const GeoLayout super_ball_geo[]; ++extern const Gfx super_ball_seg5_dl_05010D30[]; ++extern const Gfx super_ball_seg5_dl_05011000[]; ++ ++// super_sonic ++extern const GeoLayout super_sonic_geo[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_geo[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; ++extern Gfx super_sonic_000_offset_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; ++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; ++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; ++ ++extern Gfx super_sonic_000_offset_mesh[]; ++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_mesh[]; ++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_skinned[]; ++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_000_displaylist_001_mesh[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_002_mesh[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_003_mesh[]; ++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_mesh[]; ++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_skinned[]; ++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_003_mesh[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_006_mesh[]; ++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_mesh[]; ++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_skinned[]; ++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_004_mesh[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_mesh[]; ++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_skinned[]; ++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_mesh[]; ++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_skinned[]; ++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_011_mesh[]; ++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_mesh[]; ++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_skinned[]; ++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_mesh[]; ++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_skinned[]; ++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_005_mesh[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_material_revert_render_settings[]; ++ ++extern const GeoLayout sonic_ball_001_switch_opt1[]; ++extern const GeoLayout sonic_ball_001_switch_opt2[]; ++extern const GeoLayout sonic_ball_001_switch_opt3[]; ++extern const GeoLayout geo[]; ++extern Vtx sonic_ball_000_offset_mesh_vtx_0[80]; ++extern Gfx sonic_ball_000_offset_mesh_tri_0[]; ++ ++extern Gfx sonic_ball_000_offset_mesh[]; ++extern Gfx sonic_ball_000_offset_mesh_mat_override_metal_0[]; ++extern Gfx sonic_ball_material_revert_render_settings[]; ++ ++ ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_right_hand_open_armature[]; ++extern const GeoLayout mario_left_hand_open_armature[]; ++extern const GeoLayout mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout mario_geo[]; ++extern Vtx mario_000_offset_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_mesh_tri_0[]; ++extern Vtx mario_000_offset_mesh_vtx_1[24]; ++extern Gfx mario_000_offset_mesh_tri_1[]; ++extern Vtx mario_000_offset_001_mesh_vtx_0[16]; ++extern Gfx mario_000_offset_001_mesh_tri_0[]; ++extern Vtx mario_000_offset_001_mesh_vtx_1[8]; ++extern Gfx mario_000_offset_001_mesh_tri_1[]; ++extern Vtx mario_000_offset_001_mesh_vtx_2[100]; ++extern Gfx mario_000_offset_001_mesh_tri_2[]; ++extern Vtx mario_000_offset_001_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_001_mesh_tri_3[]; ++extern Vtx mario_000_offset_001_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_001_skinned_tri_0[]; ++extern Vtx mario_000_offset_001_skinned_vtx_1[3]; ++extern Gfx mario_000_offset_001_skinned_tri_1[]; ++extern Vtx mario_000_displaylist_mesh_vtx_0[453]; ++extern Gfx mario_000_displaylist_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_mesh_vtx_1[85]; ++extern Gfx mario_000_displaylist_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_mesh_vtx_2[42]; ++extern Gfx mario_000_displaylist_mesh_tri_2[]; ++extern Vtx mario_000_displaylist_mesh_vtx_3[26]; ++extern Gfx mario_000_displaylist_mesh_tri_3[]; ++extern Vtx mario_000_displaylist_mesh_vtx_4[13]; ++extern Gfx mario_000_displaylist_mesh_tri_4[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx mario_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx mario_000_displaylist_001_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx mario_000_displaylist_001_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx mario_000_displaylist_002_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx mario_000_displaylist_002_mesh_tri_1[]; ++extern Vtx mario_000_offset_003_mesh_vtx_0[31]; ++extern Gfx mario_000_offset_003_mesh_tri_0[]; ++extern Vtx mario_000_offset_004_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_004_mesh_tri_0[]; ++extern Vtx mario_000_offset_004_mesh_vtx_1[12]; ++extern Gfx mario_000_offset_004_mesh_tri_1[]; ++extern Vtx mario_000_offset_004_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_004_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx mario_000_displaylist_003_mesh_tri_0[]; ++extern Vtx mario_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx mario_000_offset_006_mesh_vtx_0[40]; ++extern Gfx mario_000_offset_006_mesh_tri_0[]; ++extern Vtx mario_000_offset_007_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_007_mesh_tri_0[]; ++extern Vtx mario_000_offset_007_mesh_vtx_1[12]; ++extern Gfx mario_000_offset_007_mesh_tri_1[]; ++extern Vtx mario_000_offset_007_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_007_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx mario_000_displaylist_004_mesh_tri_0[]; ++extern Vtx mario_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx mario_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx mario_000_offset_009_mesh_vtx_0[8]; ++extern Gfx mario_000_offset_009_mesh_tri_0[]; ++extern Vtx mario_000_offset_009_mesh_vtx_1[13]; ++extern Gfx mario_000_offset_009_mesh_tri_1[]; ++extern Vtx mario_000_offset_009_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_009_skinned_tri_0[]; ++extern Vtx mario_000_offset_010_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_010_mesh_tri_0[]; ++extern Vtx mario_000_offset_010_mesh_vtx_1[9]; ++extern Gfx mario_000_offset_010_mesh_tri_1[]; ++extern Vtx mario_000_offset_010_mesh_vtx_2[41]; ++extern Gfx mario_000_offset_010_mesh_tri_2[]; ++extern Vtx mario_000_offset_010_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_010_mesh_tri_3[]; ++extern Vtx mario_000_offset_010_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_010_skinned_tri_0[]; ++extern Vtx mario_000_offset_011_mesh_vtx_0[58]; ++extern Gfx mario_000_offset_011_mesh_tri_0[]; ++extern Vtx mario_000_offset_011_mesh_vtx_1[16]; ++extern Gfx mario_000_offset_011_mesh_tri_1[]; ++extern Vtx mario_000_offset_011_mesh_vtx_2[46]; ++extern Gfx mario_000_offset_011_mesh_tri_2[]; ++extern Vtx mario_000_offset_011_mesh_vtx_3[12]; ++extern Gfx mario_000_offset_011_mesh_tri_3[]; ++extern Vtx mario_000_offset_012_mesh_vtx_0[8]; ++extern Gfx mario_000_offset_012_mesh_tri_0[]; ++extern Vtx mario_000_offset_012_mesh_vtx_1[13]; ++extern Gfx mario_000_offset_012_mesh_tri_1[]; ++extern Vtx mario_000_offset_012_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_012_skinned_tri_0[]; ++extern Vtx mario_000_offset_013_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_013_mesh_tri_0[]; ++extern Vtx mario_000_offset_013_mesh_vtx_1[9]; ++extern Gfx mario_000_offset_013_mesh_tri_1[]; ++extern Vtx mario_000_offset_013_mesh_vtx_2[41]; ++extern Gfx mario_000_offset_013_mesh_tri_2[]; ++extern Vtx mario_000_offset_013_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_013_mesh_tri_3[]; ++extern Vtx mario_000_offset_013_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_013_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_0[55]; ++extern Gfx mario_000_displaylist_005_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_1[46]; ++extern Gfx mario_000_displaylist_005_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_2[12]; ++extern Gfx mario_000_displaylist_005_mesh_tri_2[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_3[16]; ++extern Gfx mario_000_displaylist_005_mesh_tri_3[]; ++ ++extern Gfx mario_000_offset_mesh[]; ++extern Gfx mario_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_001_mesh[]; ++extern Gfx mario_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_001_skinned[]; ++extern Gfx mario_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_mesh[]; ++extern Gfx mario_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx mario_000_displaylist_001_mesh[]; ++extern Gfx mario_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_002_mesh[]; ++extern Gfx mario_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_003_mesh[]; ++extern Gfx mario_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_004_mesh[]; ++extern Gfx mario_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_004_skinned[]; ++extern Gfx mario_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_003_mesh[]; ++extern Gfx mario_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh[]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_006_mesh[]; ++extern Gfx mario_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_007_mesh[]; ++extern Gfx mario_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_007_skinned[]; ++extern Gfx mario_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_004_mesh[]; ++extern Gfx mario_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh[]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_009_mesh[]; ++extern Gfx mario_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_009_skinned[]; ++extern Gfx mario_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_010_mesh[]; ++extern Gfx mario_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_010_skinned[]; ++extern Gfx mario_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_011_mesh[]; ++extern Gfx mario_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_012_mesh[]; ++extern Gfx mario_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_012_skinned[]; ++extern Gfx mario_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_013_mesh[]; ++extern Gfx mario_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_013_skinned[]; ++extern Gfx mario_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_005_mesh[]; ++extern Gfx mario_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_material_revert_render_settings[]; ++ ++extern const GeoLayout super_ball_001_switch_opt1[]; ++extern const GeoLayout super_ball_001_switch_opt2[]; ++extern const GeoLayout super_ball_001_switch_opt3[]; ++extern const GeoLayout super_ball_geo[]; ++extern Vtx super_ball_000_offset_mesh_vtx_0[80]; ++extern Gfx super_ball_000_offset_mesh_tri_0[]; ++ ++extern Gfx super_ball_000_offset_mesh[]; ++extern Gfx super_ball_000_offset_mesh_mat_override_metal_0[]; ++extern Gfx super_ball_material_revert_render_settings[]; ++ ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_geo[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; ++extern Gfx super_sonic_000_offset_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; ++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; ++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; ++ ++extern Gfx super_sonic_000_offset_mesh[]; ++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_mesh[]; ++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_skinned[]; ++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_000_displaylist_001_mesh[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_002_mesh[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_003_mesh[]; ++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_mesh[]; ++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_skinned[]; ++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_003_mesh[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_006_mesh[]; ++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_mesh[]; ++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_skinned[]; ++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_004_mesh[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_mesh[]; ++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_skinned[]; ++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_mesh[]; ++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_skinned[]; ++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_011_mesh[]; ++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_mesh[]; ++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_skinned[]; ++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_mesh[]; ++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_skinned[]; ++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_005_mesh[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_material_revert_render_settings[]; ++ ++ ++ ++ ++ ++ ++ ++#include "reticle/geo_header.h" ++ ++#include "mario/geo_header.h" ++ ++ ++ ++#include "emerald/geo_header.h" ++ ++#include "super_sonic/geo_header.h" ++ ++#include "emerald_circle/geo_header.h" ++ ++#include "sonic_ball/geo_header.h" ++ ++#include "super_ball/geo_header.h" ++ + #endif diff --git a/actors/group0_geo.c b/actors/group0_geo.c index bddefae9..31d8c5bf 100644 --- a/actors/group0_geo.c +++ b/actors/group0_geo.c @@ -13,6 +13,13 @@ #include "stomp_smoke/geo.inc.c" #include "water_wave/geo.inc.c" #include "sparkle/geo.inc.c" +#include "sonic_trail/geo.inc.c" #include "water_splash/geo.inc.c" #include "sparkle_animation/geo.inc.c" #include "mario/geo.inc.c" +#include "sonic_ball/geo.inc.c" +#include "super_sonic/geo.inc.c" +#include "super_ball/geo.inc.c" +#include "reticle/geo.inc.c" +#include "emerald/geo.inc.c" +#include "emerald_circle/geo.inc.c" \ No newline at end of file diff --git a/actors/group0_geo.c.rej b/actors/group0_geo.c.rej new file mode 100644 index 00000000..6d433670 --- /dev/null +++ b/actors/group0_geo.c.rej @@ -0,0 +1,16 @@ +diff a/actors/group0_geo.c b/actors/group0_geo.c (rejected hunks) +@@ -13,6 +13,13 @@ + #include "stomp_smoke/geo.inc.c" + #include "water_wave/geo.inc.c" + #include "sparkle/geo.inc.c" ++#include "sonic_trail/geo.inc.c" + #include "water_splash/geo.inc.c" + #include "sparkle_animation/geo.inc.c" + #include "mario/geo.inc.c" ++#include "sonic_ball/geo.inc.c" ++#include "super_sonic/geo.inc.c" ++#include "super_ball/geo.inc.c" ++#include "reticle/geo.inc.c" ++#include "emerald/geo.inc.c" ++#include "emerald_circle/geo.inc.c" +\ No newline at end of file diff --git a/actors/group3.h b/actors/group3.h index e6154e11..293fa547 100644 --- a/actors/group3.h +++ b/actors/group3.h @@ -38,4 +38,7 @@ extern const GeoLayout water_bomb_shadow_geo[]; extern const Gfx water_bubble_seg5_dl_05010D30[]; extern const Gfx water_bubble_seg5_dl_05011000[]; + + + #endif diff --git a/actors/group3.h.rej b/actors/group3.h.rej new file mode 100644 index 00000000..9b77f048 --- /dev/null +++ b/actors/group3.h.rej @@ -0,0 +1,9 @@ +diff a/actors/group3.h b/actors/group3.h (rejected hunks) +@@ -38,4 +38,7 @@ extern const GeoLayout water_bomb_shadow_geo[]; + extern const Gfx water_bubble_seg5_dl_05010D30[]; + extern const Gfx water_bubble_seg5_dl_05011000[]; + ++ ++ ++ + #endif diff --git a/actors/hoot/hoot_wing.rgba16.png b/actors/hoot/hoot_wing.rgba16.png new file mode 100644 index 00000000..1bbb093b Binary files /dev/null and b/actors/hoot/hoot_wing.rgba16.png differ diff --git a/actors/hoot/hoot_wing_tip.rgba16.png b/actors/hoot/hoot_wing_tip.rgba16.png new file mode 100644 index 00000000..952b2d1f Binary files /dev/null and b/actors/hoot/hoot_wing_tip.rgba16.png differ diff --git a/actors/impact_smoke/model.inc.c b/actors/impact_smoke/model.inc.c index cf44016d..09268905 100644 --- a/actors/impact_smoke/model.inc.c +++ b/actors/impact_smoke/model.inc.c @@ -28,10 +28,10 @@ static const Vtx impact_smoke_seg6_vertex_06062A28[] = { {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, {{{ 150, 300, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, {{{ -150, 300, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, - {{{ -150, 0, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, - {{{ 150, 0, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, - {{{ 150, 150, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, - {{{ -150, 150, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ -150, 0, 0}, 0, { 0, 2016}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ 150, 0, 0}, 0, { 2016, 2016}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ -150, 150, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, }; // 0x06062AA8 - 0x06062AD8 diff --git a/actors/impact_smoke/model.inc.c.rej b/actors/impact_smoke/model.inc.c.rej new file mode 100644 index 00000000..a3be54cd --- /dev/null +++ b/actors/impact_smoke/model.inc.c.rej @@ -0,0 +1,16 @@ +diff a/actors/impact_smoke/model.inc.c b/actors/impact_smoke/model.inc.c (rejected hunks) +@@ -28,10 +28,10 @@ static const Vtx impact_smoke_seg6_vertex_06062A28[] = { + {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ 150, 300, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ -150, 300, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ -150, 0, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ 150, 0, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ 150, 150, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ -150, 150, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ -150, 150, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, + }; + + // 0x06062AA8 - 0x06062AD8 diff --git a/actors/king_bobomb/model.inc.c b/actors/king_bobomb/model.inc.c index 3065684c..9b947c05 100644 --- a/actors/king_bobomb/model.inc.c +++ b/actors/king_bobomb/model.inc.c @@ -531,7 +531,7 @@ static const Vtx king_bobomb_seg5_vertex_0500B218[] = { const Gfx king_bobomb_seg5_dl_0500B278[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05004878), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPLight(&king_bobomb_seg5_lights_0500B200.l, 1), gsSPLight(&king_bobomb_seg5_lights_0500B200.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500B218, 6, 0), @@ -548,7 +548,7 @@ const Gfx king_bobomb_seg5_dl_0500B2D0[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), + gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPDisplayList(king_bobomb_seg5_dl_0500B278), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), diff --git a/actors/king_bobomb/model.inc.c.rej b/actors/king_bobomb/model.inc.c.rej new file mode 100644 index 00000000..aacbc276 --- /dev/null +++ b/actors/king_bobomb/model.inc.c.rej @@ -0,0 +1,19 @@ +diff a/actors/king_bobomb/model.inc.c b/actors/king_bobomb/model.inc.c (rejected hunks) +@@ -531,7 +531,7 @@ static const Vtx king_bobomb_seg5_vertex_0500B218[] = { + const Gfx king_bobomb_seg5_dl_0500B278[] = { + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05004878), + gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPLight(&king_bobomb_seg5_lights_0500B200.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500B200.a, 2), + gsSPVertex(king_bobomb_seg5_vertex_0500B218, 6, 0), +@@ -548,7 +548,7 @@ const Gfx king_bobomb_seg5_dl_0500B2D0[] = { + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPTileSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPDisplayList(king_bobomb_seg5_dl_0500B278), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), diff --git a/actors/klepto/geo.inc.c b/actors/klepto/geo.inc.c index 0d0bbe30..d9033f13 100644 --- a/actors/klepto/geo.inc.c +++ b/actors/klepto/geo.inc.c @@ -29,11 +29,10 @@ const GeoLayout klepto_geo[] = { GEO_NODE_START(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_offset_klepto_held_object), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, mario_cap_seg3_dl_03022F48), - GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 75, 75, 0, 180, 270, 0), + GEO_OPEN_NODE(), + GEO_BRANCH_AND_LINK(marios_cap_geo), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), diff --git a/actors/klepto/geo.inc.c.rej b/actors/klepto/geo.inc.c.rej new file mode 100644 index 00000000..bb2a16d8 --- /dev/null +++ b/actors/klepto/geo.inc.c.rej @@ -0,0 +1,17 @@ +diff a/actors/klepto/geo.inc.c b/actors/klepto/geo.inc.c (rejected hunks) +@@ -29,11 +29,10 @@ const GeoLayout klepto_geo[] = { + GEO_NODE_START(), + GEO_NODE_START(), + GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_offset_klepto_held_object), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, mario_cap_seg3_dl_03022F48), +- GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 75, 75, 0, 180, 270, 0), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), diff --git a/actors/klepto/klepto_wing.rgba16.png b/actors/klepto/klepto_wing.rgba16.png new file mode 100644 index 00000000..d17ed7ae Binary files /dev/null and b/actors/klepto/klepto_wing.rgba16.png differ diff --git a/actors/klepto/klepto_wing_flap.rgba16.png b/actors/klepto/klepto_wing_flap.rgba16.png new file mode 100644 index 00000000..a8df840f Binary files /dev/null and b/actors/klepto/klepto_wing_flap.rgba16.png differ diff --git a/actors/koopa/model.inc.c.rej b/actors/koopa/model.inc.c.rej new file mode 100644 index 00000000..d54ec993 --- /dev/null +++ b/actors/koopa/model.inc.c.rej @@ -0,0 +1,24 @@ +diff a/actors/koopa/model.inc.c b/actors/koopa/model.inc.c (rejected hunks) +@@ -54,6 +54,8 @@ static const Lights1 koopa_seg6_lights_06002630 = gdSPDefLights1( + // beneath its shell, despite the fact it was intended to be white like + // the rest of its body. This is evident because once the mistake is corrected + // it turns back to being white like the other polygons. ++// Due to debate in the PR surrounding the fix to this, said fix is on ++// a compile-time variable. Use TEXTURE_FIX=1 at compile time to fix this. + // 0x06002648 + ALIGNED8 static const u8 koopa_seg6_texture_06002648[] = { + #include "actors/koopa/koopa_shell_front.rgba16.inc.c" +@@ -2077,8 +2079,13 @@ const Gfx koopa_seg6_dl_0600C498[] = { + gsSPVertex(koopa_seg6_vertex_0600B560, 9, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), + gsSP1Triangle( 6, 7, 8, 0x0), ++ #ifdef TEXTURE_FIX ++ gsSPLight(&koopa_seg6_lights_06002630.l, 1), ++ gsSPLight(&koopa_seg6_lights_06002630.a, 2), ++ #else + gsSPLight(koopa_seg6_texture_06002648 + 0x20, 1), // this malformed light results in a + gsSPLight(koopa_seg6_texture_06002648 + 0x18, 2), // koopa appearing to wear pink shorts. ++ #endif + gsSPVertex(koopa_seg6_vertex_0600B5F0, 15, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), + gsSP2Triangles( 6, 7, 0, 0x0, 8, 5, 9, 0x0), diff --git a/actors/mario/geo.inc.c b/actors/mario/geo.inc.c index 736d31f0..d93a360d 100644 --- a/actors/mario/geo.inc.c +++ b/actors/mario/geo.inc.c @@ -1,1825 +1,825 @@ -// Normal Mario Geo +#include "src/game/envfx_snow.h" -// 0x170002E0 -const GeoLayout mario_geo_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_right_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x1700041C -const GeoLayout mario_geo_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_left_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000494 -const GeoLayout mario_geo_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_left_hand_peace_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// The body loads all the parts with some shared dls to apply the solid color of the dl that has it, the same rule applies to the medium and low poly geos - -// 0x1700053C -const GeoLayout mario_geo_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_butt), // starts sharing solid color with mario_torso (blue) - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_face_and_wings), // stops sharing because faces has its own dl - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_arm), // starts sharing solid color with mario_left_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_left_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_right_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_left_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x170006F8 -const GeoLayout mario_geo_medium_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000770 -const GeoLayout mario_geo_medium_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000818 -const GeoLayout mario_geo_medium_poly_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_butt), // starts sharing solid color with mario_torso (blue) - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_medium_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_face_and_wings), // stops sharing because faces has its own dl - medium poly mario uses high poly face - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_arm), // starts sharing solid color with mario_left_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_medium_poly_left_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_medium_poly_right_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_medium_poly_left_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x170009D4 -const GeoLayout mario_geo_low_poly_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000B10 -const GeoLayout mario_geo_low_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000B88 -const GeoLayout mario_geo_low_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000C30 -const GeoLayout mario_geo_low_poly_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_butt), // starts sharing solid color with mario_torso (blue) - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_low_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_low_poly_face_and_wings), // stops sharing because faces has its own dl - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_arm), // starts sharing solid color with mario_left_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_low_poly_left_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_low_poly_right_hand), // stops sharing because hand has its solid color (white) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_low_poly_left_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_foot), // stops sharing because foot has its solid color (brown) - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_001_skinned_mesh_layer_1), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_000_offset_001_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_003_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_004_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_004_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_003_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_006_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_007_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_007_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_004_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_009_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_009_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_010_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_010_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_011_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_002_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_012_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_012_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_013_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_013_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_005_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_001_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// Vanish Mario Geo - -// 0x17000DEC -const GeoLayout mario_vanish_geo_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000F28 -const GeoLayout mario_vanish_geo_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17000FA0 -const GeoLayout mario_vanish_geo_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// Same rule body as Normal Mario - -// 0x17001048 -const GeoLayout mario_vanish_geo_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_left_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17001204 -const GeoLayout mario_vanish_geo_medium_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x1700127C -const GeoLayout mario_vanish_geo_medium_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17001324 -const GeoLayout mario_vanish_geo_medium_poly_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_medium_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_medium_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_medium_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_medium_poly_left_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x170014E0 -const GeoLayout mario_vanish_geo_low_poly_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_right), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_left), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_up), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_down), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_right), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_left), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_up), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_down), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x1700161C -const GeoLayout mario_vanish_geo_low_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x17001694 -const GeoLayout mario_vanish_geo_low_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x1700173C -const GeoLayout mario_vanish_geo_low_poly_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_low_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_low_poly_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_low_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_arm), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_vanish_geo_low_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_low_poly_left_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// Metal Mario Geo - -// 0x170018F8 -const GeoLayout mario_metal_geo_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_cap_on_shared_dl), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_cap_off_shared_dl), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // left - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // right - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), +const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), }; - -// 0x170019A4 -const GeoLayout mario_metal_geo_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17001A1C -const GeoLayout mario_metal_geo_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// A difference from Normal Mario is that the dls after the butt and left thigh shares the metal texture of it, same rule applies to the medium and low poly geos - -// 0x17001AC4 -const GeoLayout mario_metal_geo_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_butt), // starts sharing metal texture with the dls below - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_torso_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_face_and_wings), // unlike normal mario geo, these dls still share the metal texture - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_right_hand), // stop sharing because the wing metal cap of it - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_left_thigh), // starts sharing metal texture with the dls below - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17001C80 -const GeoLayout mario_metal_geo_medium_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17001CF8 -const GeoLayout mario_metal_geo_medium_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17001DA0 -const GeoLayout mario_metal_geo_medium_poly_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_medium_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_medium_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_medium_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_medium_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_medium_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_medium_poly_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17001F5C -const GeoLayout mario_metal_geo_low_poly_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_cap_on), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_cap_off), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002008 -const GeoLayout mario_metal_geo_low_poly_left_hand[] = { - GEO_SWITCH_CASE(1, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002080 -const GeoLayout mario_metal_geo_low_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002128 -const GeoLayout mario_metal_geo_low_poly_body[] = { - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_low_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_low_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_low_poly_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_low_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_geo_low_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_low_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_low_poly_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// Metal Vanish Mario Geo - -// 0x170022E4 -const GeoLayout mario_metal_vanish_geo_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_on_shared_dl), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_off_shared_dl), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002390 -const GeoLayout mario_metal_vanish_geo_left_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002408 -const GeoLayout mario_metal_vanish_geo_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// Same rules as Metal Mario - -// 0x170024B0 -const GeoLayout mario_metal_vanish_geo_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_torso_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x1700266C -const GeoLayout mario_metal_vanish_geo_medium_poly_left_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x170026E4 -const GeoLayout mario_metal_vanish_geo_medium_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x1700278C -const GeoLayout mario_metal_vanish_geo_medium_poly_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_medium_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_medium_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_medium_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_medium_poly_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002958 -const GeoLayout mario_metal_vanish_geo_low_poly_face_and_wings[] = { - GEO_ASM(0, geo_mario_head_rotation), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_cap_on), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_cap_off), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_rotate_wing_cap_wings), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002A04 -const GeoLayout mario_metal_vanish_geo_low_poly_left_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002A7C -const GeoLayout mario_metal_vanish_geo_low_poly_right_hand[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_hand), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_hand_closed), - GEO_CLOSE_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), - GEO_OPEN_NODE(), - GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002B24 -const GeoLayout mario_metal_vanish_geo_low_poly_body[] = { - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_low_poly_butt), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_move_mario_part_from_parent), - GEO_ASM(0, geo_mario_tilt_torso), - GEO_ROTATION_NODE(0x00, 0, 0, 0), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_low_poly_torso), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_face_and_wings), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_left_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_arm_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_right_hand), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_low_poly_left_thigh), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_left_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_low_poly_left_foot_shared_dl), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_thigh_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_right_leg_shared_dl), - GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), - GEO_OPEN_NODE(), - GEO_ASM(2, geo_mario_hand_foot_scaler), - GEO_SCALE(0x00, 65536), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_foot), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// High Poly - -// 0x17002CE0 -const GeoLayout mario_geo_load_body[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_body), - GEO_BRANCH(1, mario_vanish_geo_body), - GEO_BRANCH(1, mario_metal_geo_body), - GEO_BRANCH(1, mario_metal_vanish_geo_body), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// Medium Poly - -// 0x17002D14 -const GeoLayout mario_geo_load_medium_poly_body[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_medium_poly_body), - GEO_BRANCH(1, mario_vanish_geo_medium_poly_body), - GEO_BRANCH(1, mario_metal_geo_medium_poly_body), - GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_body), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// Low Poly - -// 0x17002D48 -const GeoLayout mario_geo_load_low_poly_body[] = { - GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_low_poly_body), - GEO_BRANCH(1, mario_vanish_geo_low_poly_body), - GEO_BRANCH(1, mario_metal_geo_low_poly_body), - GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_body), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// 0x17002D7C -const GeoLayout mario_geo_render_body[] = { - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_RENDER_RANGE(-2048, 600), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_load_body), - GEO_CLOSE_NODE(), - GEO_RENDER_RANGE(600, 1600), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_load_medium_poly_body), - GEO_CLOSE_NODE(), - GEO_RENDER_RANGE(1600, 32767), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_load_low_poly_body), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_RETURN(), -}; - -// This last geo is used to load all of Mario Geo in the Level Scripts - -// 0x17002DD4 const GeoLayout mario_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100), - GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mirror_mario_backface_culling), - GEO_ASM(0, geo_mirror_mario_set_alpha), - GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), - GEO_OPEN_NODE(), - GEO_BRANCH(1, mario_geo_load_body), - GEO_BRANCH(1, mario_geo_render_body), - GEO_CLOSE_NODE(), - GEO_ASM(1, geo_mirror_mario_backface_culling), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_END(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(1, 180, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mirror_mario_backface_culling), + GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_001_skinned_mesh_layer_1), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_000_offset_001_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_003_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_004_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_004_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_003_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_right_hand_open_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_006_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_007_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_007_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_004_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_left_hand_open_armature), + GEO_BRANCH(1, mario_left_hand_peace_armature), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_009_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_009_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_010_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_010_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_011_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_002_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_012_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_012_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_013_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_013_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_005_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_001_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2), + GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ASM(1, geo_mirror_mario_backface_culling), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), }; diff --git a/actors/mario/geo.inc.c.rej b/actors/mario/geo.inc.c.rej new file mode 100644 index 00000000..ef482e68 --- /dev/null +++ b/actors/mario/geo.inc.c.rej @@ -0,0 +1,2649 @@ +diff a/actors/mario/geo.inc.c b/actors/mario/geo.inc.c (rejected hunks) +@@ -1,1825 +1,825 @@ +-// Normal Mario Geo +- +-// 0x170002E0 +-const GeoLayout mario_geo_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_front), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_on_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_front), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_off_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700041C +-const GeoLayout mario_geo_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000494 +-const GeoLayout mario_geo_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// The body loads all the parts with some shared dls to apply the solid color of the dl that has it, the same rule applies to the medium and low poly geos +- +-// 0x1700053C +-const GeoLayout mario_geo_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_butt), // starts sharing solid color with mario_torso (blue) +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_face_and_wings), // stops sharing because faces has its own dl +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_arm), // starts sharing solid color with mario_left_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_left_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_right_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_left_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x170006F8 +-const GeoLayout mario_geo_medium_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000770 +-const GeoLayout mario_geo_medium_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000818 +-const GeoLayout mario_geo_medium_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_butt), // starts sharing solid color with mario_torso (blue) +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_medium_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_face_and_wings), // stops sharing because faces has its own dl - medium poly mario uses high poly face +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_arm), // starts sharing solid color with mario_left_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_medium_poly_left_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_medium_poly_right_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_medium_poly_left_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x170009D4 +-const GeoLayout mario_geo_low_poly_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_front), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_on_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_front), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_cap_off_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000B10 +-const GeoLayout mario_geo_low_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000B88 +-const GeoLayout mario_geo_low_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000C30 +-const GeoLayout mario_geo_low_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_butt), // starts sharing solid color with mario_torso (blue) +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_low_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_low_poly_face_and_wings), // stops sharing because faces has its own dl +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_arm), // starts sharing solid color with mario_left_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_low_poly_left_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_arm), // starts sharing solid color of his dl with mario_right_forearm (red) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_low_poly_right_hand), // stops sharing because hand has its solid color (white) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_low_poly_left_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_thigh), // starts sharing solid color of his dl with mario_left_leg (blue) +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_foot), // stops sharing because foot has its solid color (brown) +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Vanish Mario Geo +- +-// 0x17000DEC +-const GeoLayout mario_vanish_geo_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_front), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_on_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_front), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_right), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_left), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_up), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_down), // unused +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_off_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17000F28 +-const GeoLayout mario_vanish_geo_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout mario_right_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_left_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_left_hand_peace_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_001_skinned_mesh_layer_1), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_000_offset_001_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_000_switch_opt1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_003_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_004_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_004_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_003_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_006_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_007_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_007_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_004_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_009_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_009_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_010_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_010_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_011_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_002_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_012_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_012_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_013_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_013_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_005_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_001_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), + }; +- +-// 0x17000FA0 +-const GeoLayout mario_vanish_geo_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Same rule body as Normal Mario +- +-// 0x17001048 +-const GeoLayout mario_vanish_geo_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_left_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001204 +-const GeoLayout mario_vanish_geo_medium_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700127C +-const GeoLayout mario_vanish_geo_medium_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001324 +-const GeoLayout mario_vanish_geo_medium_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_medium_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_medium_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_medium_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_medium_poly_left_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x170014E0 +-const GeoLayout mario_vanish_geo_low_poly_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_front), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_right), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_left), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_up), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_down), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_on_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_eyes), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_front), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_half_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_closed), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_right), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_left), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_up), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_down), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_cap_off_eyes_dead), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700161C +-const GeoLayout mario_vanish_geo_low_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001694 +-const GeoLayout mario_vanish_geo_low_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700173C +-const GeoLayout mario_vanish_geo_low_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_low_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_low_poly_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_low_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_arm), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_vanish_geo_low_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_low_poly_left_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Metal Mario Geo +- +-// 0x170018F8 +-const GeoLayout mario_metal_geo_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_cap_on_shared_dl), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_cap_off_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // left +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // right +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x170019A4 +-const GeoLayout mario_metal_geo_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001A1C +-const GeoLayout mario_metal_geo_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// A difference from Normal Mario is that the dls after the butt and left thigh shares the metal texture of it, same rule applies to the medium and low poly geos +- +-// 0x17001AC4 +-const GeoLayout mario_metal_geo_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_butt), // starts sharing metal texture with the dls below +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_torso_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_face_and_wings), // unlike normal mario geo, these dls still share the metal texture +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_right_hand), // stop sharing because the wing metal cap of it +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_left_thigh), // starts sharing metal texture with the dls below +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001C80 +-const GeoLayout mario_metal_geo_medium_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001CF8 +-const GeoLayout mario_metal_geo_medium_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001DA0 +-const GeoLayout mario_metal_geo_medium_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_medium_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_medium_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_medium_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_medium_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_medium_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_medium_poly_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17001F5C +-const GeoLayout mario_metal_geo_low_poly_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_cap_on), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_cap_off), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002008 +-const GeoLayout mario_metal_geo_low_poly_left_hand[] = { +- GEO_SWITCH_CASE(1, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002080 +-const GeoLayout mario_metal_geo_low_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002128 +-const GeoLayout mario_metal_geo_low_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_low_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_low_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_low_poly_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_low_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_geo_low_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_low_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, mario_low_poly_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_low_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Metal Vanish Mario Geo +- +-// 0x170022E4 +-const GeoLayout mario_metal_vanish_geo_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_on_shared_dl), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_off_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002390 +-const GeoLayout mario_metal_vanish_geo_left_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002408 +-const GeoLayout mario_metal_vanish_geo_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Same rules as Metal Mario +- +-// 0x170024B0 +-const GeoLayout mario_metal_vanish_geo_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_torso_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700266C +-const GeoLayout mario_metal_vanish_geo_medium_poly_left_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_medium_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x170026E4 +-const GeoLayout mario_metal_vanish_geo_medium_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x1700278C +-const GeoLayout mario_metal_vanish_geo_medium_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_medium_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_medium_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_medium_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_medium_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_medium_poly_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_medium_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002958 +-const GeoLayout mario_metal_vanish_geo_low_poly_face_and_wings[] = { +- GEO_ASM(0, geo_mario_head_rotation), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_cap_on), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_cap_off), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_rotate_wing_cap_wings), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002A04 +-const GeoLayout mario_metal_vanish_geo_low_poly_left_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_left_hand_open_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_low_poly_left_hand_closed_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002A7C +-const GeoLayout mario_metal_vanish_geo_low_poly_right_hand[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_hand), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_hand_closed), +- GEO_CLOSE_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_open), +- GEO_OPEN_NODE(), +- GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace_shared_dl), // here we go hand +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_metal_right_hand_cap_shared_dl), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_right_hand_cap_shared_dl_wings), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002B24 +-const GeoLayout mario_metal_vanish_geo_low_poly_body[] = { +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_low_poly_butt), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_move_mario_part_from_parent), +- GEO_ASM(0, geo_mario_tilt_torso), +- GEO_ROTATION_NODE(0x00, 0, 0, 0), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_low_poly_torso), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 87, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_face_and_wings), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, -10, 79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_left_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_left_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_left_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, -10, -79, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_arm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, mario_low_poly_right_forearm_shared_dl), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_right_hand), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, 42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_low_poly_left_thigh), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_left_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, mario_low_poly_left_foot_shared_dl), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 13, -8, -42, NULL), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_right_thigh_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, mario_low_poly_right_leg_shared_dl), +- GEO_OPEN_NODE(), +- GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL), +- GEO_OPEN_NODE(), +- GEO_ASM(2, geo_mario_hand_foot_scaler), +- GEO_SCALE(0x00, 65536), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_foot), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// High Poly +- +-// 0x17002CE0 +-const GeoLayout mario_geo_load_body[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_body), +- GEO_BRANCH(1, mario_vanish_geo_body), +- GEO_BRANCH(1, mario_metal_geo_body), +- GEO_BRANCH(1, mario_metal_vanish_geo_body), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Medium Poly +- +-// 0x17002D14 +-const GeoLayout mario_geo_load_medium_poly_body[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_medium_poly_body), +- GEO_BRANCH(1, mario_vanish_geo_medium_poly_body), +- GEO_BRANCH(1, mario_metal_geo_medium_poly_body), +- GEO_BRANCH(1, mario_metal_vanish_geo_medium_poly_body), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// Low Poly +- +-// 0x17002D48 +-const GeoLayout mario_geo_load_low_poly_body[] = { +- GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_low_poly_body), +- GEO_BRANCH(1, mario_vanish_geo_low_poly_body), +- GEO_BRANCH(1, mario_metal_geo_low_poly_body), +- GEO_BRANCH(1, mario_metal_vanish_geo_low_poly_body), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// 0x17002D7C +-const GeoLayout mario_geo_render_body[] = { +- GEO_NODE_START(), +- GEO_OPEN_NODE(), +- GEO_RENDER_RANGE(-2048, 600), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_load_body), +- GEO_CLOSE_NODE(), +- GEO_RENDER_RANGE(600, 1600), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_load_medium_poly_body), +- GEO_CLOSE_NODE(), +- GEO_RENDER_RANGE(1600, 32767), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_load_low_poly_body), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_RETURN(), +-}; +- +-// This last geo is used to load all of Mario Geo in the Level Scripts +- +-// 0x17002DD4 + const GeoLayout mario_geo[] = { +- GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100), +- GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_mirror_mario_backface_culling), +- GEO_ASM(0, geo_mirror_mario_set_alpha), +- GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), +- GEO_OPEN_NODE(), +- GEO_BRANCH(1, mario_geo_load_body), +- GEO_BRANCH(1, mario_geo_render_body), +- GEO_CLOSE_NODE(), +- GEO_ASM(1, geo_mirror_mario_backface_culling), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_END(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(1, 180, 100), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mirror_mario_backface_culling), ++ GEO_ASM(0, geo_mirror_mario_set_alpha), ++ GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_001_skinned_mesh_layer_1), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_000_offset_001_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt0_000_switch_opt1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_003_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_004_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_004_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_003_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_right_hand_open_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_006_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_007_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, mario_000_offset_007_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_004_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_left_hand_open_armature), ++ GEO_BRANCH(1, mario_left_hand_peace_armature), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_009_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_009_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_010_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_010_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_011_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_002_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_012_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_000_offset_012_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_offset_013_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, mario_000_offset_013_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_000_displaylist_005_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, mario_000_displaylist_001_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt1), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt2), ++ GEO_BRANCH(1, mario_002_switch_opt0_001_switch_opt3), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ASM(1, geo_mirror_mario_backface_culling), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, mario_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), + }; diff --git a/actors/mario/geo_header.h b/actors/mario/geo_header.h new file mode 100644 index 00000000..bc3a01be --- /dev/null +++ b/actors/mario/geo_header.h @@ -0,0 +1,236 @@ +extern const GeoLayout mario_right_hand_open_armature[]; +extern const GeoLayout mario_left_hand_open_armature[]; +extern const GeoLayout mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout mario_geo[]; +extern Lights1 mario_sonic_blue_v4_lights; +extern Lights1 mario_sonic_skin_v4_lights; +extern Lights1 mario_sonic_eye_texture_lights; +extern Lights1 mario_sonic_mouth_none_lights; +extern Lights1 mario_sonic_nose_v4_lights; +extern Lights1 mario_sonic_mouth_lights; +extern Lights1 mario_sonic_eye_half_lights; +extern Lights1 mario_sonic_eye_closed_lights; +extern Lights1 mario_sonic_eye_dead_lights; +extern Lights1 mario_gloves_001_v4_lights; +extern Lights1 mario_gloves_v4_lights; +extern Lights1 mario_sonic_texture_v4_lights; +extern Lights1 mario_sonic_white_v4_lights; +extern Lights1 mario_sonic_buckle_v4_lights; +extern Lights1 mario_sonic_shoe_v4_lights; +extern u8 mario_metal_rgba16[]; +extern u8 mario_soniceyenew_rgba16[]; +extern u8 mario_sonic_mouth_rgba16[]; +extern u8 mario_soniceyenew_half_rgba16[]; +extern u8 mario_soniceyenew_closed_rgba16[]; +extern u8 mario_soniceyenew_dead_rgba16[]; +extern u8 mario_sonic_new2_rgba16[]; +extern u8 mario_wing_2_rgba16[]; +extern u8 mario_wing1_rgba16[]; +extern Vtx mario_000_offset_mesh_layer_1_vtx_0[28]; +extern Gfx mario_000_offset_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_mesh_layer_1_vtx_1[5]; +extern Gfx mario_000_offset_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_0[11]; +extern Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_1[2]; +extern Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_001_mesh_layer_1_vtx_0[12]; +extern Gfx mario_000_offset_001_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_001_mesh_layer_1_vtx_1[3]; +extern Gfx mario_000_offset_001_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_001_mesh_layer_1_vtx_2[89]; +extern Gfx mario_000_offset_001_mesh_layer_1_tri_2[]; +extern Vtx mario_000_offset_001_mesh_layer_1_vtx_3[10]; +extern Gfx mario_000_offset_001_mesh_layer_1_tri_3[]; +extern Vtx mario_000_displaylist_mesh_layer_1_vtx_0[442]; +extern Gfx mario_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx mario_000_displaylist_mesh_layer_1_vtx_1[69]; +extern Gfx mario_000_displaylist_mesh_layer_1_tri_1[]; +extern Vtx mario_000_displaylist_mesh_layer_1_vtx_2[38]; +extern Gfx mario_000_displaylist_mesh_layer_1_tri_2[]; +extern Vtx mario_000_displaylist_mesh_layer_1_vtx_3[8]; +extern Gfx mario_000_displaylist_mesh_layer_1_tri_3[]; +extern Vtx mario_000_displaylist_mesh_layer_1_vtx_4[13]; +extern Gfx mario_000_displaylist_mesh_layer_1_tri_4[]; +extern Vtx mario_000_offset_003_mesh_layer_1_vtx_0[30]; +extern Gfx mario_000_offset_003_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_004_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_004_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_004_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_004_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_004_mesh_layer_1_vtx_1[12]; +extern Gfx mario_000_offset_004_mesh_layer_1_tri_1[]; +extern Vtx mario_000_displaylist_003_mesh_layer_1_vtx_0[46]; +extern Gfx mario_000_displaylist_003_mesh_layer_1_tri_0[]; +extern Vtx mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58]; +extern Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_006_mesh_layer_1_vtx_0[41]; +extern Gfx mario_000_offset_006_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_007_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_007_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_007_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_007_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_007_mesh_layer_1_vtx_1[12]; +extern Gfx mario_000_offset_007_mesh_layer_1_tri_1[]; +extern Vtx mario_000_displaylist_004_mesh_layer_1_vtx_0[36]; +extern Gfx mario_000_displaylist_004_mesh_layer_1_tri_0[]; +extern Vtx mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57]; +extern Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0[]; +extern Vtx mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_009_skinned_mesh_layer_1_vtx_0[9]; +extern Gfx mario_000_offset_009_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_009_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_009_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_009_mesh_layer_1_vtx_1[13]; +extern Gfx mario_000_offset_009_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_010_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_010_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_010_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_010_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_010_mesh_layer_1_vtx_1[9]; +extern Gfx mario_000_offset_010_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_010_mesh_layer_1_vtx_2[41]; +extern Gfx mario_000_offset_010_mesh_layer_1_tri_2[]; +extern Vtx mario_000_offset_010_mesh_layer_1_vtx_3[16]; +extern Gfx mario_000_offset_010_mesh_layer_1_tri_3[]; +extern Vtx mario_000_offset_011_mesh_layer_1_vtx_0[58]; +extern Gfx mario_000_offset_011_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_011_mesh_layer_1_vtx_1[16]; +extern Gfx mario_000_offset_011_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_011_mesh_layer_1_vtx_2[46]; +extern Gfx mario_000_offset_011_mesh_layer_1_tri_2[]; +extern Vtx mario_000_offset_011_mesh_layer_1_vtx_3[12]; +extern Gfx mario_000_offset_011_mesh_layer_1_tri_3[]; +extern Vtx mario_000_displaylist_002_mesh_layer_4_vtx_0[4]; +extern Gfx mario_000_displaylist_002_mesh_layer_4_tri_0[]; +extern Vtx mario_000_displaylist_002_mesh_layer_4_vtx_1[4]; +extern Gfx mario_000_displaylist_002_mesh_layer_4_tri_1[]; +extern Vtx mario_000_offset_012_skinned_mesh_layer_1_vtx_0[10]; +extern Gfx mario_000_offset_012_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_012_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_012_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_012_mesh_layer_1_vtx_1[13]; +extern Gfx mario_000_offset_012_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_013_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_013_skinned_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_013_mesh_layer_1_vtx_0[6]; +extern Gfx mario_000_offset_013_mesh_layer_1_tri_0[]; +extern Vtx mario_000_offset_013_mesh_layer_1_vtx_1[9]; +extern Gfx mario_000_offset_013_mesh_layer_1_tri_1[]; +extern Vtx mario_000_offset_013_mesh_layer_1_vtx_2[41]; +extern Gfx mario_000_offset_013_mesh_layer_1_tri_2[]; +extern Vtx mario_000_offset_013_mesh_layer_1_vtx_3[16]; +extern Gfx mario_000_offset_013_mesh_layer_1_tri_3[]; +extern Vtx mario_000_displaylist_005_mesh_layer_1_vtx_0[55]; +extern Gfx mario_000_displaylist_005_mesh_layer_1_tri_0[]; +extern Vtx mario_000_displaylist_005_mesh_layer_1_vtx_1[46]; +extern Gfx mario_000_displaylist_005_mesh_layer_1_tri_1[]; +extern Vtx mario_000_displaylist_005_mesh_layer_1_vtx_2[12]; +extern Gfx mario_000_displaylist_005_mesh_layer_1_tri_2[]; +extern Vtx mario_000_displaylist_005_mesh_layer_1_vtx_3[16]; +extern Gfx mario_000_displaylist_005_mesh_layer_1_tri_3[]; +extern Vtx mario_000_displaylist_001_mesh_layer_4_vtx_0[4]; +extern Gfx mario_000_displaylist_001_mesh_layer_4_tri_0[]; +extern Vtx mario_000_displaylist_001_mesh_layer_4_vtx_1[4]; +extern Gfx mario_000_displaylist_001_mesh_layer_4_tri_1[]; +extern Gfx mat_mario_sonic_blue_v4[]; +extern Gfx mat_mario_sonic_skin_v4[]; +extern Gfx mat_mario_metal_v4[]; +extern Gfx mat_revert_mario_metal_v4[]; +extern Gfx mat_mario_sonic_eye_texture[]; +extern Gfx mat_mario_sonic_mouth_none[]; +extern Gfx mat_mario_sonic_nose_v4[]; +extern Gfx mat_mario_sonic_mouth[]; +extern Gfx mat_mario_sonic_eye_half[]; +extern Gfx mat_mario_sonic_eye_closed[]; +extern Gfx mat_mario_sonic_eye_dead[]; +extern Gfx mat_mario_gloves_001_v4[]; +extern Gfx mat_mario_gloves_v4[]; +extern Gfx mat_mario_sonic_texture_v4[]; +extern Gfx mat_mario_sonic_white_v4[]; +extern Gfx mat_mario_sonic_buckle_v4[]; +extern Gfx mat_mario_sonic_shoe_v4[]; +extern Gfx mat_mario_wing_2_001_v4[]; +extern Gfx mat_revert_mario_wing_2_001_v4[]; +extern Gfx mat_mario_wing_1_001_v4[]; +extern Gfx mat_revert_mario_wing_1_001_v4[]; +extern Gfx mario_000_offset_mesh_layer_1[]; +extern Gfx mario_000_offset_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_001_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_001_mesh_layer_1[]; +extern Gfx mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_mesh_layer_1[]; +extern Gfx mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[]; +extern Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2[]; +extern Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[]; +extern Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4[]; +extern Gfx mario_000_offset_003_mesh_layer_1[]; +extern Gfx mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_004_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_004_mesh_layer_1[]; +extern Gfx mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_003_mesh_layer_1[]; +extern Gfx mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_002_switch_option_right_hand_open_mesh_layer_1[]; +extern Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_006_mesh_layer_1[]; +extern Gfx mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_007_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_007_mesh_layer_1[]; +extern Gfx mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_004_mesh_layer_1[]; +extern Gfx mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_002_switch_option_left_hand_open_mesh_layer_1[]; +extern Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1[]; +extern Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_009_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_009_mesh_layer_1[]; +extern Gfx mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_010_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_010_mesh_layer_1[]; +extern Gfx mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_011_mesh_layer_1[]; +extern Gfx mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_002_mesh_layer_4[]; +extern Gfx mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_012_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_012_mesh_layer_1[]; +extern Gfx mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_013_skinned_mesh_layer_1[]; +extern Gfx mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_offset_013_mesh_layer_1[]; +extern Gfx mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_005_mesh_layer_1[]; +extern Gfx mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx mario_000_displaylist_001_mesh_layer_4[]; +extern Gfx mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[]; +extern Gfx mario_material_revert_render_settings[]; diff --git a/actors/mario/mario_eyes_center.rgba16.png b/actors/mario/mario_eyes_center.rgba16.png new file mode 100644 index 00000000..4a612dc8 Binary files /dev/null and b/actors/mario/mario_eyes_center.rgba16.png differ diff --git a/actors/mario/mario_eyes_closed.rgba16.png b/actors/mario/mario_eyes_closed.rgba16.png new file mode 100644 index 00000000..94799490 Binary files /dev/null and b/actors/mario/mario_eyes_closed.rgba16.png differ diff --git a/actors/mario/mario_eyes_closed_unused_0.rgba16.png b/actors/mario/mario_eyes_closed_unused_0.rgba16.png new file mode 100644 index 00000000..94799490 Binary files /dev/null and b/actors/mario/mario_eyes_closed_unused_0.rgba16.png differ diff --git a/actors/mario/mario_eyes_closed_unused_1.rgba16.png b/actors/mario/mario_eyes_closed_unused_1.rgba16.png new file mode 100644 index 00000000..94799490 Binary files /dev/null and b/actors/mario/mario_eyes_closed_unused_1.rgba16.png differ diff --git a/actors/mario/mario_eyes_dead.rgba16.png b/actors/mario/mario_eyes_dead.rgba16.png new file mode 100644 index 00000000..8eaa8b3c Binary files /dev/null and b/actors/mario/mario_eyes_dead.rgba16.png differ diff --git a/actors/mario/mario_eyes_down_unused.rgba16.png b/actors/mario/mario_eyes_down_unused.rgba16.png new file mode 100644 index 00000000..850c293b Binary files /dev/null and b/actors/mario/mario_eyes_down_unused.rgba16.png differ diff --git a/actors/mario/mario_eyes_half_closed.rgba16.png b/actors/mario/mario_eyes_half_closed.rgba16.png new file mode 100644 index 00000000..911418d5 Binary files /dev/null and b/actors/mario/mario_eyes_half_closed.rgba16.png differ diff --git a/actors/mario/mario_eyes_left_unused.rgba16.png b/actors/mario/mario_eyes_left_unused.rgba16.png new file mode 100644 index 00000000..46152520 Binary files /dev/null and b/actors/mario/mario_eyes_left_unused.rgba16.png differ diff --git a/actors/mario/mario_eyes_right_unused.rgba16.png b/actors/mario/mario_eyes_right_unused.rgba16.png new file mode 100644 index 00000000..8e58001d Binary files /dev/null and b/actors/mario/mario_eyes_right_unused.rgba16.png differ diff --git a/actors/mario/mario_eyes_up_unused.rgba16.png b/actors/mario/mario_eyes_up_unused.rgba16.png new file mode 100644 index 00000000..01d1bbde Binary files /dev/null and b/actors/mario/mario_eyes_up_unused.rgba16.png differ diff --git a/actors/mario/mario_logo.rgba16.png b/actors/mario/mario_logo.rgba16.png new file mode 100644 index 00000000..af5a5e0e Binary files /dev/null and b/actors/mario/mario_logo.rgba16.png differ diff --git a/actors/mario/mario_metal.rgba16.png b/actors/mario/mario_metal.rgba16.png new file mode 100644 index 00000000..d17d38be Binary files /dev/null and b/actors/mario/mario_metal.rgba16.png differ diff --git a/actors/mario/mario_metal_wing_tip_unused.rgba16.png b/actors/mario/mario_metal_wing_tip_unused.rgba16.png new file mode 100644 index 00000000..8e70c227 Binary files /dev/null and b/actors/mario/mario_metal_wing_tip_unused.rgba16.png differ diff --git a/actors/mario/mario_metal_wing_unused.rgba16.png b/actors/mario/mario_metal_wing_unused.rgba16.png new file mode 100644 index 00000000..cfdd06a8 Binary files /dev/null and b/actors/mario/mario_metal_wing_unused.rgba16.png differ diff --git a/actors/mario/mario_mustache.rgba16.png b/actors/mario/mario_mustache.rgba16.png new file mode 100644 index 00000000..bb107d13 Binary files /dev/null and b/actors/mario/mario_mustache.rgba16.png differ diff --git a/actors/mario/mario_overalls_button.rgba16.png b/actors/mario/mario_overalls_button.rgba16.png new file mode 100644 index 00000000..c449d6f2 Binary files /dev/null and b/actors/mario/mario_overalls_button.rgba16.png differ diff --git a/actors/mario/mario_sideburn.rgba16.png b/actors/mario/mario_sideburn.rgba16.png new file mode 100644 index 00000000..c5c3da5f Binary files /dev/null and b/actors/mario/mario_sideburn.rgba16.png differ diff --git a/actors/mario/mario_wing.rgba16.png b/actors/mario/mario_wing.rgba16.png new file mode 100644 index 00000000..ff7d11bf Binary files /dev/null and b/actors/mario/mario_wing.rgba16.png differ diff --git a/actors/mario/mario_wing_tip.rgba16.png b/actors/mario/mario_wing_tip.rgba16.png new file mode 100644 index 00000000..7da437f9 Binary files /dev/null and b/actors/mario/mario_wing_tip.rgba16.png differ diff --git a/actors/mario/metal.rgba16.png b/actors/mario/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/mario/metal.rgba16.png differ diff --git a/actors/mario/model.inc.c b/actors/mario/model.inc.c index 191d5332..4da900bb 100644 --- a/actors/mario/model.inc.c +++ b/actors/mario/model.inc.c @@ -1,6825 +1,4506 @@ -// Mario +Lights1 mario_sonic_blue_v4_lights = gdSPDefLights1( + 0x7, 0x0, 0x7F, + 0xF, 0x0, 0xFE, 0x28, 0x28, 0x28); -// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types -static const Lights1 mario_blue_lights_group = gdSPDefLights1( - 0x00, 0x00, 0x7f, - 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_skin_v4_lights = gdSPDefLights1( + 0x73, 0x5D, 0x36, + 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); -// 0x04000018 # solid color red - left & right arm, torso (tshirt part), caps - all poly types -static const Lights1 mario_red_lights_group = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_eye_texture_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); -// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types -static const Lights1 mario_white_lights_group = gdSPDefLights1( - 0x7f, 0x7f, 0x7f, - 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_mouth_none_lights = gdSPDefLights1( + 0x73, 0x5D, 0x36, + 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); -// 0x04000048 # solid color brown 1 - foot - all poly types -static const Lights1 mario_brown1_lights_group = gdSPDefLights1( - 0x39, 0x0e, 0x07, - 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_nose_v4_lights = gdSPDefLights1( + 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); -// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types -static const Lights1 mario_beige_lights_group = gdSPDefLights1( - 0x7f, 0x60, 0x3c, - 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_mouth_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); -// 0x04000078 # solid color brown 2 - hair - all poly types -static const Lights1 mario_brown2_lights_group = gdSPDefLights1( - 0x39, 0x03, 0x00, - 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 -); +Lights1 mario_sonic_eye_half_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); -// 0x04000090 -ALIGNED8 static const Texture mario_texture_metal[] = { -#include "actors/mario/mario_metal.rgba16.inc.c" +Lights1 mario_sonic_eye_closed_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 mario_sonic_eye_dead_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 mario_gloves_001_v4_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 mario_gloves_v4_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 mario_sonic_texture_v4_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 mario_sonic_white_v4_lights = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); + +Lights1 mario_sonic_buckle_v4_lights = gdSPDefLights1( + 0x7F, 0x79, 0x0, + 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); + +Lights1 mario_sonic_shoe_v4_lights = gdSPDefLights1( + 0x7F, 0x0, 0x1, + 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); + +Gfx mario_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_metal_rgba16[] = { + #include "actors/mario/metal.rgba16.inc.c" +}; + +Gfx mario_soniceyenew_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_soniceyenew_rgba16[] = { + #include "actors/mario/soniceyenew.rgba16.inc.c" +}; + +Gfx mario_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_sonic_mouth_rgba16[] = { + #include "actors/mario/sonic_mouth.rgba16.inc.c" +}; + +Gfx mario_soniceyenew_half_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_soniceyenew_half_rgba16[] = { + #include "actors/mario/soniceyenew_half.rgba16.inc.c" +}; + +Gfx mario_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_soniceyenew_closed_rgba16[] = { + #include "actors/mario/soniceyenew_closed.rgba16.inc.c" +}; + +Gfx mario_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_soniceyenew_dead_rgba16[] = { + #include "actors/mario/soniceyenew_dead.rgba16.inc.c" +}; + +Gfx mario_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_sonic_new2_rgba16[] = { + #include "actors/mario/sonic_new2.rgba16.inc.c" +}; + +Gfx mario_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_wing_2_rgba16[] = { + #include "actors/mario/wing_2.rgba16.inc.c" +}; + +Gfx mario_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_wing1_rgba16[] = { + #include "actors/mario/wing1.rgba16.inc.c" +}; + +Vtx mario_000_offset_mesh_layer_1_vtx_0[28] = { + {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, + {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, + {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, + {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, + {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, + {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, + {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, + {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, + {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, + {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, + {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, + {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, + {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, + {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, + {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, + {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, + {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, + {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, + {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, + {{{11, -76, -4},0, {510, 718},{0x9D, 0xDE, 0xB8, 0xFF}}}, + {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, + {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, + {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, + {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, + {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{19, -108, 0},0, {491, 792},{0x9, 0x81, 0x0, 0xFF}}}, + {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, +}; + +Gfx mario_000_offset_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 16, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(4, 5, 10, 0), + gsSP1Triangle(11, 10, 5, 0), + gsSP1Triangle(1, 10, 11, 0), + gsSP1Triangle(1, 4, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_mesh_layer_1_vtx_1[5] = { + {{{43, 27, 0},0, {-16, -16},{0xB6, 0x67, 0x0, 0xFF}}}, + {{{45, 28, 13},0, {-16, -16},{0xB4, 0x66, 0x5, 0xFF}}}, + {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, + {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, + {{{45, 28, -13},0, {-16, -16},{0xB4, 0x66, 0xFB, 0xFF}}}, +}; + +Gfx mario_000_offset_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_mesh_layer_1_vtx_1 + 0, 5, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { + {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, + {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, + {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, + {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, + {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, + {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, + {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, + {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, + {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, +}; + +Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_1[2] = { + {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, + {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, +}; + +Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 2, 11), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_mesh_layer_1_vtx_0[12] = { + {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, + {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, + {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, + {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, + {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, + {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, + {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, + {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, + {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, + {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, +}; + +Gfx mario_000_offset_001_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 0, 3, 13), + gsSP1Triangle(3, 1, 13, 0), + gsSP1Triangle(1, 14, 13, 0), + gsSP1Triangle(14, 1, 0, 0), + gsSP1Triangle(0, 15, 14, 0), + gsSP1Triangle(15, 0, 2, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 3, 3, 13), + gsSP1Triangle(13, 14, 2, 0), + gsSP1Triangle(4, 13, 2, 0), + gsSP1Triangle(4, 15, 13, 0), + gsSP1Triangle(15, 4, 5, 0), + gsSP1Triangle(15, 5, 6, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 6, 3, 13), + gsSP1Triangle(6, 13, 14, 0), + gsSP1Triangle(6, 7, 13, 0), + gsSP1Triangle(13, 7, 15, 0), + gsSP1Triangle(15, 7, 10, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 9, 3, 13), + gsSP1Triangle(10, 13, 14, 0), + gsSP1Triangle(13, 10, 9, 0), + gsSP1Triangle(9, 15, 13, 0), + gsSP1Triangle(8, 15, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_mesh_layer_1_vtx_1[3] = { + {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, + {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, + {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, +}; + +Gfx mario_000_offset_001_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_1 + 0, 3, 13), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_mesh_layer_1_vtx_2[89] = { + {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, + {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, + {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, + {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, + {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, + {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, + {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, + {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, + {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, + {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, + {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, + {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, + {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, + {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, + {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, + {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, + {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, + {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, + {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, + {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, + {{{43, 37, -48},0, {674, 458},{0x2, 0x62, 0xAF, 0xFF}}}, + {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, + {{{64, 35, -43},0, {654, 465},{0x35, 0x62, 0xC3, 0xFF}}}, + {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, + {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, + {{{83, 29, -18},0, {558, 479},{0x59, 0x59, 0xEE, 0xFF}}}, + {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, + {{{86, 27, 0},0, {491, 481},{0x5C, 0x58, 0x0, 0xFF}}}, + {{{83, 29, 18},0, {426, 479},{0x59, 0x59, 0x12, 0xFF}}}, + {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, + {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, + {{{74, -5, 65},0, {247, 555},{0x3E, 0x20, 0x6A, 0xFF}}}, + {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, + {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, + {{{73, -32, 68},0, {238, 618},{0x50, 0xEB, 0x61, 0xFF}}}, + {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, + {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, + {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, + {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, + {{{1, -117, 65},0, {247, 813},{0x2B, 0x89, 0xB, 0xFF}}}, + {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, + {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, + {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, + {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, + {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, + {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, + {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, + {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, + {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, + {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, + {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, + {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, + {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, + {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, + {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, + {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, + {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, + {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, + {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, + {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, + {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, + {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, + {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, + {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, + {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, + {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, + {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, + {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, + {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, + {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, + {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, + {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, + {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, + {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, + {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, + {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, + {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, + {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, + {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, + {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, + {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, + {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, +}; + +Gfx mario_000_offset_001_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 4, 5, 0), + gsSP1Triangle(4, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 2, 3, 0), + gsSP1Triangle(5, 0, 2, 0), + gsSP1Triangle(6, 0, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 8, 5, 0), + gsSP1Triangle(9, 5, 3, 0), + gsSP1Triangle(10, 7, 8, 0), + gsSP1Triangle(10, 11, 7, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(10, 8, 13, 0), + gsSP1Triangle(13, 8, 14, 0), + gsSP1Triangle(15, 14, 8, 0), + gsSP1Triangle(15, 11, 14, 0), + gsSP1Triangle(7, 11, 15, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 7, 0), + gsSP1Triangle(12, 14, 7, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(7, 8, 10, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 13, 12, 0), + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 80, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_001_mesh_layer_1_vtx_3[10] = { + {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, + {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, + {{{43, 37, 48},0, {-16, -16},{0x2, 0x62, 0x51, 0xFF}}}, + {{{64, 35, 43},0, {-16, -16},{0x35, 0x62, 0x3D, 0xFF}}}, + {{{64, 35, -43},0, {-16, -16},{0x35, 0x62, 0xC3, 0xFF}}}, + {{{86, 27, 0},0, {-16, -16},{0x5C, 0x58, 0x0, 0xFF}}}, + {{{83, 29, 18},0, {-16, -16},{0x59, 0x59, 0x12, 0xFF}}}, + {{{83, 29, -18},0, {-16, -16},{0x59, 0x59, 0xEE, 0xFF}}}, + {{{43, 37, -48},0, {-16, -16},{0x2, 0x62, 0xAF, 0xFF}}}, + {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, +}; + +Gfx mario_000_offset_001_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_3 + 0, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(5, 7, 4, 0), + gsSP1Triangle(0, 4, 8, 0), + gsSP1Triangle(8, 9, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_mesh_layer_1_vtx_0[442] = { + {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, + {{{52, 53, 63},0, {382, 130},{0x1F, 0x58, 0x56, 0xFF}}}, + {{{55, 44, 71},0, {368, 140},{0xF9, 0x51, 0x62, 0xFF}}}, + {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, + {{{44, 22, 78},0, {356, 163},{0xC7, 0x28, 0x6A, 0xFF}}}, + {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, + {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, + {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, + {{{19, 6, 56},0, {393, 179},{0x98, 0x25, 0x3F, 0xFF}}}, + {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, + {{{6, 6, 29},0, {442, 179},{0x84, 0xE, 0x18, 0xFF}}}, + {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, + {{{4, 7, 0},0, {496, 177},{0x81, 0x3, 0x0, 0xFF}}}, + {{{6, 6, -29},0, {549, 179},{0x84, 0xE, 0xE8, 0xFF}}}, + {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, + {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, + {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, + {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, + {{{44, 22, -78},0, {635, 163},{0xBF, 0x2B, 0x9C, 0xFF}}}, + {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, + {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, + {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, + {{{76, 38, -85},0, {649, 144},{0xE6, 0x5D, 0xAE, 0xFF}}}, + {{{55, 44, -71},0, {623, 140},{0xF9, 0x51, 0x9E, 0xFF}}}, + {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, + {{{52, 53, -63},0, {609, 130},{0x1F, 0x58, 0xAA, 0xFF}}}, + {{{106, 36, -95},0, {668, 146},{0xE5, 0x54, 0xA5, 0xFF}}}, + {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, + {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, + {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, + {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, + {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, + {{{67, 90, -14},0, {519, 91},{0xA8, 0x1F, 0xAA, 0xFF}}}, + {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, + {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, + {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, + {{{63, 91, -5},0, {505, 91},{0x99, 0x4A, 0x0, 0xFF}}}, + {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, + {{{64, 90, 0},0, {496, 91},{0x9E, 0x51, 0x0, 0xFF}}}, + {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, + {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, + {{{63, 91, 5},0, {486, 91},{0x99, 0x4A, 0x0, 0xFF}}}, + {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, + {{{67, 90, 13},0, {470, 91},{0xA8, 0x1F, 0x56, 0xFF}}}, + {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, + {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, + {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, + {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, + {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, + {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, + {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, + {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, + {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, + {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, + {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, + {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, + {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, + {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, + {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, + {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, + {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, + {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, + {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, + {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, + {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, + {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, + {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, + {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, + {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, + {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, + {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, + {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, + {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, + {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, + {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, + {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, + {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, + {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, + {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, + {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, + {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, + {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, + {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, + {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, + {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, + {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, + {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, + {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, + {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, + {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, + {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, + {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, + {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, + {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, + {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, + {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, + {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, + {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, + {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, + {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, + {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, + {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, + {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, + {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, + {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, + {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, + {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, + {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, + {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, + {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, + {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, + {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, + {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, + {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, + {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, + {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, + {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, + {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, + {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, + {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, + {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, + {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, + {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, + {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, + {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, + {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, + {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, + {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, + {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, + {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, + {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, + {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, + {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, + {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, + {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, + {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, + {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, + {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, + {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, + {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, + {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, + {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, + {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, + {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, + {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, + {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, + {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, + {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, + {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, + {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, + {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, + {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, + {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, + {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, + {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, + {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, + {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, + {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, + {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, + {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, + {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, + {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, + {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, + {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, + {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, + {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, + {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, + {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, + {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, + {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, + {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, + {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, + {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, + {{{200, 24, -100},0, {677, 160},{0xD1, 0x76, 0x9, 0xFF}}}, + {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, + {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, + {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, + {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, + {{{213, 41, -72},0, {626, 142},{0xB0, 0x55, 0xCD, 0xFF}}}, + {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, + {{{195, 42, -46},0, {577, 142},{0xF6, 0x54, 0xA1, 0xFF}}}, + {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, + {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, + {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, + {{{180, 20, -67},0, {616, 163},{0xC, 0x64, 0xB2, 0xFF}}}, + {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, + {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, + {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, + {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, + {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, + {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, + {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, + {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, + {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, + {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, + {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, + {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, + {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, + {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, + {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, + {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, + {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, + {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, + {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, + {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, + {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, + {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, + {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, + {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, + {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, + {{{195, 42, 45},0, {414, 142},{0xF6, 0x54, 0x5F, 0xFF}}}, + {{{180, 20, 67},0, {375, 163},{0xC, 0x64, 0x4E, 0xFF}}}, + {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, + {{{195, 50, 38},0, {426, 133},{0x5B, 0x53, 0x21, 0xFF}}}, + {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, + {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, + {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, + {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, + {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, + {{{213, 41, 71},0, {366, 142},{0xB0, 0x55, 0x33, 0xFF}}}, + {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, + {{{232, 39, 104},0, {307, 144},{0xA4, 0x58, 0xFF, 0xFF}}}, + {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, + {{{200, 24, 100},0, {314, 160},{0xD1, 0x76, 0xF7, 0xFF}}}, + {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, + {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, + {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, + {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, + {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, + {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, + {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, + {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, + {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, + {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, + {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, + {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, + {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, + {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, + {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, + {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, + {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, + {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, + {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, + {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, + {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, + {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, + {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, + {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, + {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, + {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, + {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, + {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, + {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, + {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, + {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, + {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, + {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, + {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, + {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, + {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, + {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, + {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, + {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, + {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, + {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, + {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, + {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, + {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, + {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, + {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, + {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, + {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, + {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, + {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, + {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, + {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, + {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, + {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, + {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, + {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, + {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, + {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, + {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, + {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, + {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, + {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, + {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, + {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, + {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, + {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, + {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, + {{{128, -283, 131},0, {259, 476},{0x48, 0x9A, 0x1A, 0xFF}}}, + {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, + {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{84, -309, 138},0, {245, 502},{0xBC, 0x98, 0x1B, 0xFF}}}, + {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, + {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, + {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, + {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, + {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, + {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, + {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, + {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, + {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, + {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, + {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, + {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, + {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, + {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, + {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, + {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, + {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, + {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, + {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, + {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, + {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, + {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, + {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, + {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, + {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, + {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, + {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, + {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, + {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, + {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, + {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, + {{{32, -281, 0},0, {496, 474},{0x47, 0x96, 0x0, 0xFF}}}, + {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, + {{{30, -278, 18},0, {463, 472},{0x2C, 0xA6, 0x4F, 0xFF}}}, + {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, + {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, + {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, + {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, + {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, + {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, + {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, + {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, + {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, + {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, + {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, + {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, + {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, + {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, + {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, + {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, + {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, + {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, + {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, + {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, + {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, + {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, + {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, + {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, + {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, + {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, + {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, + {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, + {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, + {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, + {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, + {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, + {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, + {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, + {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, + {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, + {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, + {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, + {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, + {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, + {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, + {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, + {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, + {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, + {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, + {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, + {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, + {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, + {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, + {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, + {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, + {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, + {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, + {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, + {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, + {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, + {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, + {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, + {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, + {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, + {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, + {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, + {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, + {{{256, -276, 0},0, {496, 469},{0x76, 0xD1, 0x0, 0xFF}}}, + {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, + {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, + {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, + {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, + {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, + {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, + {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, + {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, + {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, + {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, + {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, + {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, + {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, + {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, + {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, + {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, + {{{110, -275, -104},0, {684, 467},{0xE3, 0xB8, 0x65, 0xFF}}}, + {{{92, -256, -124},0, {721, 448},{0x81, 0x7, 0x5, 0xFF}}}, + {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, + {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, + {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, + {{{84, -309, -138},0, {744, 502},{0xBC, 0x98, 0xE5, 0xFF}}}, + {{{128, -283, -131},0, {733, 476},{0x48, 0x9A, 0xE6, 0xFF}}}, + {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, + {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, + {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, + {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, + {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, + {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, + {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, + {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, + {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, + {{{-40, -195, 113},0, {291, 386},{0x3, 0x87, 0x28, 0xFF}}}, + {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, + {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, + {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, + {{{-8, -181, 72},0, {366, 372},{0x7, 0xA2, 0xAB, 0xFF}}}, + {{{-48, -190, 87},0, {335, 379},{0xD5, 0xAB, 0xAC, 0xFF}}}, + {{{-90, -187, 110},0, {296, 376},{0x85, 0xE4, 0xD, 0xFF}}}, + {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, + {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, + {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, +}; + +Gfx mario_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(6, 5, 2, 0), + gsSP1Triangle(6, 2, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 6, 8, 0), + gsSP1Triangle(5, 6, 10, 0), + gsSP1Triangle(5, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 10, 8, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSP1Triangle(14, 13, 8, 0), + gsSP1Triangle(15, 14, 8, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 5, 0, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(10, 6, 11, 0), + gsSP1Triangle(12, 11, 6, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(5, 1, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(5, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 4, 0), + gsSP1Triangle(4, 13, 3, 0), + gsSP1Triangle(3, 13, 14, 0), + gsSP1Triangle(15, 3, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(5, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 11, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(6, 7, 10, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(12, 6, 10, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 192, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 5, 0, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 208, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 0, 2, 0), + gsSP1Triangle(6, 0, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(9, 5, 10, 0), + gsSP1Triangle(5, 2, 10, 0), + gsSP1Triangle(10, 2, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSP1Triangle(4, 14, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 224, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(9, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 240, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(4, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(11, 8, 12, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSP1Triangle(13, 8, 14, 0), + gsSP1Triangle(8, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 256, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(10, 7, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 272, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 288, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 5, 0), + gsSP1Triangle(10, 4, 5, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 12, 11, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 304, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(6, 0, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 320, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(5, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(10, 5, 8, 0), + gsSP1Triangle(10, 11, 5, 0), + gsSP1Triangle(0, 11, 10, 0), + gsSP1Triangle(0, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(10, 8, 13, 0), + gsSP1Triangle(1, 12, 13, 0), + gsSP1Triangle(0, 12, 1, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 334, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 350, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 366, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(0, 2, 4, 0), + gsSP1Triangle(5, 4, 2, 0), + gsSP1Triangle(6, 5, 2, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 382, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 6, 0, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 0, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 398, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(1, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(10, 5, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 414, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 0, 0), + gsSP1Triangle(2, 8, 0, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(7, 2, 3, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 428, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(4, 8, 7, 0), + gsSP1Triangle(4, 9, 8, 0), + gsSP1Triangle(10, 9, 4, 0), + gsSP1Triangle(10, 4, 6, 0), + gsSP1Triangle(11, 10, 6, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(9, 12, 8, 0), + gsSP1Triangle(8, 12, 13, 0), + gsSP1Triangle(13, 7, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_mesh_layer_1_vtx_1[69] = { + {{{160, 11, 90},0, {-16, -16},{0xE, 0x62, 0x50, 0xFF}}}, + {{{200, 24, 100},0, {-16, -16},{0xD1, 0x76, 0xF7, 0xFF}}}, + {{{180, 20, 67},0, {-16, -16},{0xC, 0x64, 0x4E, 0xFF}}}, + {{{232, 39, 104},0, {-16, -16},{0xA4, 0x58, 0xFF, 0xFF}}}, + {{{213, 41, 71},0, {-16, -16},{0xB0, 0x55, 0x33, 0xFF}}}, + {{{195, 42, 45},0, {-16, -16},{0xF6, 0x54, 0x5F, 0xFF}}}, + {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, + {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, + {{{6, 6, -29},0, {-16, -16},{0x84, 0xE, 0xE8, 0xFF}}}, + {{{4, 7, 0},0, {-16, -16},{0x81, 0x3, 0x0, 0xFF}}}, + {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, + {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, + {{{6, 6, 29},0, {-16, -16},{0x84, 0xE, 0x18, 0xFF}}}, + {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, + {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, + {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, + {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, + {{{44, 22, 78},0, {-16, -16},{0xC7, 0x28, 0x6A, 0xFF}}}, + {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, + {{{55, 44, 71},0, {-16, -16},{0xF9, 0x51, 0x62, 0xFF}}}, + {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, + {{{52, 53, 63},0, {-16, -16},{0x1F, 0x58, 0x56, 0xFF}}}, + {{{45, 67, 34},0, {-16, -16},{0x71, 0x2B, 0x28, 0xFF}}}, + {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, + {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, + {{{53, 87, 8},0, {-16, -16},{0x68, 0x41, 0x21, 0xFF}}}, + {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, + {{{55, 87, 0},0, {-16, -16},{0x60, 0x54, 0x0, 0xFF}}}, + {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, + {{{53, 87, -9},0, {-16, -16},{0x68, 0x41, 0xDF, 0xFF}}}, + {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, + {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, + {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, + {{{40, 74, -42},0, {-16, -16},{0x15, 0x5E, 0xAD, 0xFF}}}, + {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, + {{{44, 62, -57},0, {-16, -16},{0x4, 0x67, 0xB5, 0xFF}}}, + {{{52, 53, -63},0, {-16, -16},{0x1F, 0x58, 0xAA, 0xFF}}}, + {{{55, 44, -71},0, {-16, -16},{0xF9, 0x51, 0x9E, 0xFF}}}, + {{{39, 41, -71},0, {-16, -16},{0xCB, 0x2E, 0x96, 0xFF}}}, + {{{44, 22, -78},0, {-16, -16},{0xBF, 0x2B, 0x9C, 0xFF}}}, + {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, + {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, + {{{24, 77, -21},0, {-16, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, + {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, + {{{14, 61, -15},0, {-16, -16},{0x91, 0x39, 0xEA, 0xFF}}}, + {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, + {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, + {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, + {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, + {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, + {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, + {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, + {{{24, 77, 20},0, {-16, -16},{0xA0, 0x4C, 0x22, 0xFF}}}, + {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, + {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, + {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, + {{{42, 89, 22},0, {-16, -16},{0xEA, 0x71, 0x35, 0xFF}}}, + {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, + {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, + {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, + {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, + {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, + {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, + {{{195, 42, -46},0, {-16, -16},{0xF6, 0x54, 0xA1, 0xFF}}}, + {{{213, 41, -72},0, {-16, -16},{0xB0, 0x55, 0xCD, 0xFF}}}, + {{{180, 20, -67},0, {-16, -16},{0xC, 0x64, 0xB2, 0xFF}}}, + {{{232, 39, -105},0, {-16, -16},{0xA4, 0x58, 0x1, 0xFF}}}, + {{{200, 24, -100},0, {-16, -16},{0xD1, 0x76, 0x9, 0xFF}}}, + {{{160, 11, -90},0, {-16, -16},{0xE, 0x62, 0xB0, 0xFF}}}, +}; + +Gfx mario_000_displaylist_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(1, 9, 2, 0), + gsSP1Triangle(1, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 15, 11, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 48, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(6, 3, 7, 0), + gsSP1Triangle(5, 8, 4, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(4, 8, 11, 0), + gsSP1Triangle(2, 4, 11, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 63, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_mesh_layer_1_vtx_2[38] = { + {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, + {{{127, 40, 91},0, {266, 995},{0xEB, 0x49, 0x66, 0xFF}}}, + {{{139, 73, 70},0, {88, 691},{0xE9, 0x58, 0x58, 0xFF}}}, + {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, + {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, + {{{134, 93, 44},0, {85, 403},{0xEA, 0x64, 0x4C, 0xFF}}}, + {{{101, 105, 0},0, {320, -12},{0xE5, 0x7C, 0x0, 0xFF}}}, + {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, + {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, + {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, + {{{134, 93, -44},0, {85, 403},{0xEA, 0x64, 0xB4, 0xFF}}}, + {{{139, 73, -70},0, {88, 691},{0xE9, 0x58, 0xA8, 0xFF}}}, + {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, + {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, + {{{127, 40, -91},0, {266, 995},{0xEB, 0x49, 0x9A, 0xFF}}}, + {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, + {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, + {{{59, 36, -75},0, {833, 806},{0xE1, 0x40, 0x97, 0xFF}}}, + {{{52, 53, -63},0, {840, 622},{0xDF, 0x45, 0x9B, 0xFF}}}, + {{{39, 61, -49},0, {929, 468},{0xD1, 0x58, 0xB1, 0xFF}}}, + {{{42, 82, -25},0, {862, 204},{0xDC, 0x6F, 0xCE, 0xFF}}}, + {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, + {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, + {{{44, 86, 0},0, {829, -12},{0xD0, 0x76, 0x0, 0xFF}}}, + {{{42, 82, 25},0, {862, 204},{0xDC, 0x6F, 0x32, 0xFF}}}, + {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, + {{{39, 61, 49},0, {929, 468},{0xD1, 0x58, 0x4F, 0xFF}}}, + {{{52, 53, 63},0, {840, 622},{0xDF, 0x45, 0x65, 0xFF}}}, + {{{59, 36, 75},0, {833, 806},{0xE1, 0x40, 0x69, 0xFF}}}, + {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, + {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, + {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, + {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, + {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, + {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, +}; + +Gfx mario_000_displaylist_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(6, 11, 10, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 0, 4, 0), + gsSP1Triangle(6, 0, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(11, 14, 15, 0), + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 32, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_mesh_layer_1_vtx_3[8] = { + {{{21, 44, -53},0, {530, 626},{0x9F, 0x29, 0xB9, 0xFF}}}, + {{{19, 6, -57},0, {896, 1008},{0x96, 0x25, 0xC4, 0xFF}}}, + {{{8, 34, -28},0, {896, 421},{0x87, 0x19, 0xE1, 0xFF}}}, + {{{39, 41, -71},0, {305, 884},{0xCB, 0x2E, 0x96, 0xFF}}}, + {{{44, 62, -57},0, {133, 569},{0x4, 0x67, 0xB5, 0xFF}}}, + {{{40, 74, -42},0, {134, 282},{0x15, 0x5E, 0xAD, 0xFF}}}, + {{{24, 77, -21},0, {380, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, + {{{14, 61, -15},0, {669, 41},{0x91, 0x39, 0xEA, 0xFF}}}, +}; + +Gfx mario_000_displaylist_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_3 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(6, 5, 0, 0), + gsSP1Triangle(7, 6, 0, 0), + gsSP1Triangle(2, 7, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_mesh_layer_1_vtx_4[13] = { + {{{55, 137, 6},0, {-16, -16},{0x12, 0x3F, 0x6D, 0xFF}}}, + {{{42, 129, 0},0, {-16, -16},{0x8A, 0x2F, 0x0, 0xFF}}}, + {{{51, 122, 9},0, {-16, -16},{0x9, 0xFB, 0x7F, 0xFF}}}, + {{{50, 138, 0},0, {-16, -16},{0xAF, 0x61, 0x0, 0xFF}}}, + {{{57, 141, 0},0, {-16, -16},{0x1C, 0x7C, 0x0, 0xFF}}}, + {{{61, 137, 0},0, {-16, -16},{0x79, 0x27, 0x0, 0xFF}}}, + {{{60, 127, 0},0, {-16, -16},{0x7D, 0xEA, 0x0, 0xFF}}}, + {{{56, 115, 0},0, {-16, -16},{0x7C, 0xE5, 0x0, 0xFF}}}, + {{{52, 89, 0},0, {-16, -16},{0x39, 0x8E, 0x0, 0xFF}}}, + {{{43, 90, 0},0, {-16, -16},{0xB2, 0x9C, 0x0, 0xFF}}}, + {{{40, 117, 0},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, + {{{51, 122, -9},0, {-16, -16},{0x9, 0xFB, 0x81, 0xFF}}}, + {{{55, 137, -6},0, {-16, -16},{0x12, 0x3F, 0x93, 0xFF}}}, +}; + +Gfx mario_000_displaylist_mesh_layer_1_tri_4[] = { + gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_4 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(0, 2, 6, 0), + gsSP1Triangle(7, 6, 2, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(2, 9, 8, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(1, 10, 2, 0), + gsSP1Triangle(1, 11, 10, 0), + gsSP1Triangle(12, 11, 1, 0), + gsSP1Triangle(1, 3, 12, 0), + gsSP1Triangle(12, 3, 4, 0), + gsSP1Triangle(4, 5, 12, 0), + gsSP1Triangle(5, 6, 12, 0), + gsSP1Triangle(12, 6, 11, 0), + gsSP1Triangle(7, 11, 6, 0), + gsSP1Triangle(8, 11, 7, 0), + gsSP1Triangle(11, 8, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_003_mesh_layer_1_vtx_0[30] = { + {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, + {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, + {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, + {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, + {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, + {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, + {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, + {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{-21, 0, 4},0, {-16, -16},{0xD0, 0x0, 0x76, 0xFF}}}, + {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, + {{{2, 9, 3},0, {-16, -16},{0xFA, 0x66, 0x4C, 0xFF}}}, + {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, + {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, + {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{-21, -6, -6},0, {-16, -16},{0xD7, 0x9A, 0xC0, 0xFF}}}, + {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, + {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, + {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, +}; + +Gfx mario_000_offset_003_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 11, 9, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(1, 12, 11, 0), + gsSP1Triangle(13, 12, 1, 0), + gsSP1Triangle(3, 13, 1, 0), + gsSP1Triangle(14, 13, 3, 0), + gsSP1Triangle(5, 14, 3, 0), + gsSP1Triangle(15, 14, 5, 0), + gsSP1Triangle(7, 15, 5, 0), + gsSP1Triangle(10, 15, 7, 0), + gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 16, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(2, 9, 10, 0), + gsSP1Triangle(11, 9, 2, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(1, 12, 11, 0), + gsSP1Triangle(1, 13, 12, 0), + gsSP1Triangle(13, 1, 3, 0), + gsSP1Triangle(3, 6, 13, 0), + gsSP1Triangle(6, 12, 13, 0), + gsSP1Triangle(7, 12, 6, 0), + gsSP1Triangle(7, 9, 12, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, + {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, + {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, + {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, +}; + +Gfx mario_000_offset_004_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_004_mesh_layer_1_vtx_0[6] = { + {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, + {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, + {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx mario_000_offset_004_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(6, 1, 0, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(7, 8, 1, 0), + gsSP1Triangle(8, 4, 1, 0), + gsSP1Triangle(9, 4, 8, 0), + gsSP1Triangle(9, 5, 4, 0), + gsSP1Triangle(9, 3, 5, 0), + gsSP1Triangle(10, 3, 9, 0), + gsSP1Triangle(2, 3, 10, 0), + gsSP1Triangle(11, 2, 10, 0), + gsSP1Triangle(11, 0, 2, 0), + gsSP1Triangle(6, 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_004_mesh_layer_1_vtx_1[12] = { + {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, + {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, + {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, + {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, + {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, + {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, + {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, + {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx mario_000_offset_004_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 2, 11, 0), + gsSP1Triangle(0, 2, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_003_mesh_layer_1_vtx_0[46] = { + {{{17, -38, -39},0, {-16, -16},{0x9E, 0xB8, 0xDB, 0xFF}}}, + {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, + {{{-10, 26, -38},0, {-16, -16},{0x88, 0xEC, 0xDA, 0xFF}}}, + {{{27, -58, 6},0, {-16, -16},{0xA2, 0xAC, 0xE, 0xFF}}}, + {{{5, -6, 36},0, {-16, -16},{0x99, 0xD2, 0x3A, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0x82, 0xF5, 0xE, 0xFF}}}, + {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, + {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, + {{{-10, 26, -38},0, {-16, -16},{0x33, 0x54, 0xAF, 0xFF}}}, + {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, + {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, + {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, + {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, + {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, + {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, + {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, + {{{5, -6, 36},0, {-16, -16},{0x43, 0x1C, 0x68, 0xFF}}}, + {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, + {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, + {{{27, -58, 6},0, {-16, -16},{0x75, 0xD4, 0x17, 0xFF}}}, + {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, + {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, + {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, + {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, + {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, + {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, + {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, + {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, + {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, + {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, + {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, + {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, + {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, + {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, + {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, + {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, + {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, + {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, + {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, + {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, + {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, + {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, + {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, + {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, +}; + +Gfx mario_000_displaylist_003_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(2, 1, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(7, 6, 9, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(6, 11, 10, 0), + gsSP1Triangle(6, 12, 11, 0), + gsSP1Triangle(6, 13, 12, 0), + gsSP1Triangle(8, 13, 6, 0), + gsSP1Triangle(14, 13, 8, 0), + gsSP1Triangle(8, 15, 14, 0), + gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 3, 4, 0), + gsSP1Triangle(0, 3, 7, 0), + gsSP1Triangle(0, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(12, 11, 7, 0), + gsSP1Triangle(4, 12, 7, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 5, 7, 0), + gsSP1Triangle(7, 8, 3, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(1, 13, 12, 0), + gsSP1Triangle(8, 13, 1, 0), + gsSP1Triangle(1, 3, 8, 0), + gsSP1Triangle(13, 8, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { + {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, + {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, + {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, + {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, + {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, + {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, + {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, + {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, + {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, + {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, + {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, + {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, + {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, + {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, + {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, + {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, + {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, + {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, + {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, + {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, + {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, + {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, + {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, + {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, + {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, + {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, + {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, + {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, + {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, + {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, + {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, + {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, + {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, + {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, + {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, + {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, + {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, + {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, + {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, + {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, + {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, + {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, + {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, + {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, + {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, + {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, + {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, + {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, + {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, + {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, + {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, + {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, + {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, + {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, + {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, +}; + +Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(0, 9, 7, 0), + gsSP1Triangle(2, 9, 0, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(2, 11, 10, 0), + gsSP1Triangle(2, 12, 11, 0), + gsSP1Triangle(2, 4, 12, 0), + gsSP1Triangle(4, 13, 12, 0), + gsSP1Triangle(4, 6, 13, 0), + gsSP1Triangle(6, 14, 13, 0), + gsSP1Triangle(14, 6, 7, 0), + gsSP1Triangle(7, 15, 14, 0), + gsSP1Triangle(7, 10, 15, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 10, 11, 0), + gsSP1Triangle(10, 2, 1, 0), + gsSP1Triangle(1, 12, 10, 0), + gsSP1Triangle(13, 12, 1, 0), + gsSP1Triangle(1, 14, 13, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(15, 14, 3, 0), + gsSP1Triangle(4, 15, 3, 0), + gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 3, 0), + gsSP1Triangle(8, 0, 3, 0), + gsSP1Triangle(8, 9, 0, 0), + gsSP1Triangle(9, 1, 0, 0), + gsSP1Triangle(10, 1, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSP1Triangle(15, 14, 11, 0), + gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(9, 4, 5, 0), + gsSP1Triangle(9, 1, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_006_mesh_layer_1_vtx_0[41] = { + {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{2, 9, 8},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, + {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, + {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, + {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, + {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, + {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, + {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, + {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, + {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, + {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, + {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, + {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{3, -8, 8},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, + {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, + {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, + {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, + {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, + {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, + {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, + {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, + {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, + {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, + {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, + {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, + {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, + {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, + {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, +}; + +Gfx mario_000_offset_006_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(6, 0, 7, 0), + gsSP1Triangle(0, 2, 7, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(2, 9, 8, 0), + gsSP1Triangle(2, 10, 9, 0), + gsSP1Triangle(1, 10, 2, 0), + gsSP1Triangle(3, 10, 1, 0), + gsSP1Triangle(3, 11, 10, 0), + gsSP1Triangle(3, 12, 11, 0), + gsSP1Triangle(13, 12, 3, 0), + gsSP1Triangle(4, 13, 3, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(3, 7, 9, 0), + gsSP1Triangle(3, 9, 10, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 32, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 8, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, + {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, + {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, + {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, + {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +}; + +Gfx mario_000_offset_007_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_007_mesh_layer_1_vtx_0[6] = { + {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, + {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, + {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, + {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +}; + +Gfx mario_000_offset_007_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(6, 0, 1, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(7, 4, 0, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(9, 5, 4, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSP1Triangle(10, 3, 5, 0), + gsSP1Triangle(10, 11, 3, 0), + gsSP1Triangle(3, 11, 2, 0), + gsSP1Triangle(11, 6, 2, 0), + gsSP1Triangle(6, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_007_mesh_layer_1_vtx_1[12] = { + {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, + {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, + {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, + {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, + {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, + {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, + {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, + {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, +}; + +Gfx mario_000_offset_007_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(9, 11, 2, 0), + gsSP1Triangle(11, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_004_mesh_layer_1_vtx_0[36] = { + {{{-14, 26, 41},0, {-16, -16},{0x2D, 0x50, 0x58, 0xFF}}}, + {{{13, -38, 41},0, {-16, -16},{0x58, 0xE6, 0x58, 0xFF}}}, + {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, + {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, + {{{24, -57, -4},0, {-16, -16},{0x75, 0xD3, 0xED, 0xFF}}}, + {{{4, -3, -33},0, {-16, -16},{0x4C, 0x21, 0x9F, 0xFF}}}, + {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, + {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, + {{{-19, 47, -4},0, {-16, -16},{0x2D, 0x75, 0xEC, 0xFF}}}, + {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, + {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, + {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, + {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, + {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, + {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, + {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, + {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, + {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, + {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, + {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, + {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, + {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, + {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, + {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, + {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, + {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, + {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, + {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, + {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, + {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, + {{{4, -3, -33},0, {-16, -16},{0x99, 0xD6, 0xC2, 0xFF}}}, + {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, + {{{-19, 47, -4},0, {-16, -16},{0x83, 0xF7, 0xEC, 0xFF}}}, + {{{24, -57, -4},0, {-16, -16},{0xA0, 0xAF, 0xED, 0xFF}}}, + {{{13, -38, 41},0, {-16, -16},{0x9B, 0xB9, 0x1E, 0xFF}}}, + {{{-14, 26, 41},0, {-16, -16},{0x86, 0xEB, 0x1E, 0xFF}}}, +}; + +Gfx mario_000_displaylist_004_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(0, 9, 7, 0), + gsSP1Triangle(2, 9, 0, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(11, 10, 2, 0), + gsSP1Triangle(12, 11, 2, 0), + gsSP1Triangle(2, 3, 12, 0), + gsSP1Triangle(13, 12, 3, 0), + gsSP1Triangle(3, 6, 13, 0), + gsSP1Triangle(13, 6, 7, 0), + gsSP1Triangle(14, 13, 7, 0), + gsSP1Triangle(14, 7, 9, 0), + gsSP1Triangle(15, 14, 9, 0), + gsSP1Triangle(9, 10, 15, 0), + gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(9, 10, 0, 0), + gsSP1Triangle(0, 11, 9, 0), + gsSP1Triangle(11, 0, 2, 0), + gsSP1Triangle(12, 11, 2, 0), + gsSP1Triangle(4, 12, 2, 0), + gsSP1Triangle(4, 13, 12, 0), + gsSP1Triangle(5, 13, 4, 0), + gsSP1Triangle(8, 13, 5, 0), + gsSP1Triangle(9, 13, 8, 0), + gsSP1Triangle(11, 13, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 30, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(2, 1, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { + {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, + {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, + {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, + {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, + {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, + {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, + {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, + {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, + {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, + {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, + {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, + {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, + {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, + {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, + {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, + {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, + {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, + {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, + {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, + {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, + {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, + {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, + {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, + {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, + {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, + {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, + {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, + {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, + {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, + {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, + {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, + {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, + {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, + {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, + {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, + {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, + {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, + {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, + {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, + {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, + {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, + {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, + {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, + {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, + {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, + {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, + {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, + {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, + {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, + {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, + {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, + {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, +}; + +Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(0, 9, 7, 0), + gsSP1Triangle(2, 9, 0, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(11, 10, 2, 0), + gsSP1Triangle(12, 11, 2, 0), + gsSP1Triangle(2, 4, 12, 0), + gsSP1Triangle(13, 12, 4, 0), + gsSP1Triangle(13, 4, 5, 0), + gsSP1Triangle(14, 13, 5, 0), + gsSP1Triangle(14, 5, 7, 0), + gsSP1Triangle(15, 14, 7, 0), + gsSP1Triangle(10, 15, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 2, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(1, 12, 11, 0), + gsSP1Triangle(1, 13, 12, 0), + gsSP1Triangle(1, 14, 13, 0), + gsSP1Triangle(3, 14, 1, 0), + gsSP1Triangle(3, 15, 14, 0), + gsSP1Triangle(3, 4, 15, 0), + gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(7, 9, 3, 0), + gsSP1Triangle(9, 0, 3, 0), + gsSP1Triangle(9, 10, 0, 0), + gsSP1Triangle(0, 10, 1, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 12, 11, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 8, 1, 0), + gsSP1Triangle(1, 3, 7, 0), + gsSP1Triangle(3, 4, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { + {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, + {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, + {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, + {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, + {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, + {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, + {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, + {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, + {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, + {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, + {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, + {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, + {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, + {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, + {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, + {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, + {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, + {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, + {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, + {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, + {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, + {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, + {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, + {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, + {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, + {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, + {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, + {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, + {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, + {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, + {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, + {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, + {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, + {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, + {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, + {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, + {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, + {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, + {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, + {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, + {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, + {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, + {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, + {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, + {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, + {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, +}; + +Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(14, 11, 15, 0), + gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(9, 4, 1, 0), + gsSP1Triangle(1, 10, 9, 0), + gsSP1Triangle(10, 1, 11, 0), + gsSP1Triangle(8, 9, 12, 0), + gsSP1Triangle(8, 12, 7, 0), + gsSP1Triangle(7, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 4, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSP1Triangle(14, 5, 7, 0), + gsSP1Triangle(7, 15, 14, 0), + gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(10, 11, 1, 0), + gsSP1Triangle(1, 11, 12, 0), + gsSP1Triangle(10, 1, 0, 0), + gsSP1Triangle(0, 13, 10, 0), + gsSP1Triangle(0, 14, 13, 0), + gsSP1Triangle(3, 14, 0, 0), + gsSP1Triangle(3, 6, 14, 0), + gsSP1Triangle(14, 6, 7, 0), + gsSP1Triangle(13, 14, 7, 0), + gsSP1Triangle(7, 9, 13, 0), + gsSP1Triangle(10, 13, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_009_skinned_mesh_layer_1_vtx_0[9] = { + {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, + {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, + {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, + {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, + {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, + {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, + {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, + {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, +}; + +Gfx mario_000_offset_009_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_009_mesh_layer_1_vtx_0[6] = { + {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, + {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, + {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, + {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, + {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, + {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, +}; + +Gfx mario_000_offset_009_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_0 + 0, 6, 9), + gsSP1Triangle(9, 0, 1, 0), + gsSP1Triangle(10, 0, 9, 0), + gsSP1Triangle(10, 2, 0, 0), + gsSP1Triangle(2, 10, 3, 0), + gsSP1Triangle(10, 4, 3, 0), + gsSP1Triangle(4, 10, 11, 0), + gsSP1Triangle(11, 7, 4, 0), + gsSP1Triangle(11, 8, 7, 0), + gsSP1Triangle(5, 8, 11, 0), + gsSP1Triangle(11, 12, 5, 0), + gsSP1Triangle(13, 5, 12, 0), + gsSP1Triangle(5, 13, 6, 0), + gsSP1Triangle(1, 6, 13, 0), + gsSP1Triangle(13, 14, 1, 0), + gsSP1Triangle(9, 1, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_009_mesh_layer_1_vtx_1[13] = { + {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, + {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, + {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, + {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, + {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, + {{{14, -5, -25},0, {428, 551},{0x21, 0xFE, 0x85, 0xFF}}}, + {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, + {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, + {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, + {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, + {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, + {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, + {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, +}; + +Gfx mario_000_offset_009_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 11, 9, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSP1Triangle(5, 12, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { + {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, + {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, + {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, + {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, + {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, + {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, +}; + +Gfx mario_000_offset_010_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_010_mesh_layer_1_vtx_0[6] = { + {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, + {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, + {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, + {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, + {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, + {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, +}; + +Gfx mario_000_offset_010_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(1, 6, 2, 0), + gsSP1Triangle(1, 7, 6, 0), + gsSP1Triangle(7, 1, 8, 0), + gsSP1Triangle(4, 8, 1, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(5, 9, 4, 0), + gsSP1Triangle(3, 9, 5, 0), + gsSP1Triangle(3, 10, 9, 0), + gsSP1Triangle(0, 10, 3, 0), + gsSP1Triangle(11, 10, 0, 0), + gsSP1Triangle(6, 11, 0, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_010_mesh_layer_1_vtx_1[9] = { + {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, + {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, + {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, + {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, + {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, + {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, + {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, + {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, + {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, +}; + +Gfx mario_000_offset_010_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_010_mesh_layer_1_vtx_2[41] = { + {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, + {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, + {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, + {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, + {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, + {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, + {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, + {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, + {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, + {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, + {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, + {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, + {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, + {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, + {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, + {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, + {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, + {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, + {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, + {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, + {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, + {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, + {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, + {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, + {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, + {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, + {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, + {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, + {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, + {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, + {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, + {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, + {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, + {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, + {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, + {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, + {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, + {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, + {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, + {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, + {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, +}; + +Gfx mario_000_offset_010_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSP1Triangle(14, 0, 15, 0), + gsSP1Triangle(15, 0, 2, 0), + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSP1Triangle(15, 14, 1, 0), + gsSP1Triangle(0, 15, 1, 0), + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_010_mesh_layer_1_vtx_3[16] = { + {{{2, -3, 16},0, {205, 551},{0xE6, 0xF6, 0x7C, 0xFF}}}, + {{{43, -12, 22},0, {124, 530},{0xEF, 0xD0, 0x74, 0xFF}}}, + {{{43, -1, 22},0, {124, 572},{0xF7, 0x2C, 0x77, 0xFF}}}, + {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, + {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, + {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, + {{{42, 7, 13},0, {180, 602},{0x7, 0x75, 0x31, 0xFF}}}, + {{{42, 7, 1},0, {256, 602},{0x11, 0x77, 0xD6, 0xFF}}}, + {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, + {{{42, -1, -7},0, {312, 572},{0x17, 0x31, 0x8D, 0xFF}}}, + {{{6, -3, -13},0, {361, 551},{0x11, 0x9, 0x82, 0xFF}}}, + {{{42, -12, -7},0, {312, 530},{0x13, 0xCC, 0x8E, 0xFF}}}, + {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, + {{{42, -20, 1},0, {256, 502},{0x2, 0x87, 0xD9, 0xFF}}}, + {{{42, -20, 13},0, {180, 502},{0xF5, 0x8B, 0x31, 0xFF}}}, + {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, +}; + +Gfx mario_000_offset_010_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(0, 2, 5, 0), + gsSP1Triangle(5, 2, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 3, 0), + gsSP1Triangle(14, 3, 13, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(15, 10, 12, 0), + gsSP1Triangle(8, 10, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_011_mesh_layer_1_vtx_0[58] = { + {{{-28, 59, 39},0, {1000, -7},{0xDF, 0x69, 0x40, 0xFF}}}, + {{{-32, 39, 45},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{2, 52, 51},0, {1000, 32},{0xD, 0x5F, 0x54, 0xFF}}}, + {{{-4, 37, 52},0, {864, 32},{0xF0, 0xA, 0x7E, 0xFF}}}, + {{{44, 26, 53},0, {896, 192},{0x2, 0x2, 0x7F, 0xFF}}}, + {{{48, 35, 52},0, {1000, 192},{0x1F, 0x58, 0x56, 0xFF}}}, + {{{87, 10, 51},0, {896, 258},{0xA, 0xF9, 0x7E, 0xFF}}}, + {{{91, 19, 50},0, {1000, 258},{0x29, 0x55, 0x55, 0xFF}}}, + {{{112, 0, 47},0, {898, 323},{0x20, 0xE8, 0x79, 0xFF}}}, + {{{116, 9, 47},0, {1001, 323},{0x3E, 0x49, 0x54, 0xFF}}}, + {{{143, -6, 31},0, {1001, 395},{0x5E, 0x32, 0x45, 0xFF}}}, + {{{140, -14, 31},0, {907, 395},{0x3F, 0xC9, 0x60, 0xFF}}}, + {{{157, -20, 10},0, {1001, 436},{0x7F, 0xF6, 0xFD, 0xFF}}}, + {{{153, -25, 10},0, {915, 431},{0x54, 0xA1, 0x1, 0xFF}}}, + {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, + {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, + {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, + {{{112, -2, -23},0, {898, 323},{0x1C, 0xE2, 0x88, 0xFF}}}, + {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, + {{{115, 7, -23},0, {1001, 323},{0x3C, 0x45, 0xA9, 0xFF}}}, + {{{87, 8, -29},0, {896, 258},{0xC, 0xE9, 0x84, 0xFF}}}, + {{{90, 17, -29},0, {1000, 258},{0x2B, 0x4C, 0xA4, 0xFF}}}, + {{{43, 23, -33},0, {896, 192},{0x1, 0xEF, 0x82, 0xFF}}}, + {{{47, 33, -34},0, {1000, 192},{0x21, 0x4E, 0xA2, 0xFF}}}, + {{{1, 50, -34},0, {1000, 32},{0xE, 0x55, 0xA3, 0xFF}}}, + {{{-5, 35, -33},0, {864, 32},{0xEF, 0xF7, 0x82, 0xFF}}}, + {{{-28, 57, -26},0, {1000, -7},{0xDC, 0x5D, 0xB1, 0xFF}}}, + {{{-33, 37, -27},0, {832, -7},{0xB5, 0x8, 0x9A, 0xFF}}}, + {{{-28, 59, 39},0, {1000, 1070},{0xDF, 0x69, 0x40, 0xFF}}}, + {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, + {{{-32, 39, 45},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, + {{{-41, 57, -9},0, {1000, 722},{0xA6, 0x54, 0xE3, 0xFF}}}, + {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, + {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, + {{{-44, 27, -5},0, {663, 734},{0x84, 0x9, 0xE7, 0xFF}}}, + {{{-33, 37, -27},0, {805, 291},{0xB5, 0x8, 0x9A, 0xFF}}}, + {{{-28, 57, -26},0, {1000, 434},{0xDC, 0x5D, 0xB1, 0xFF}}}, + {{{-41, 57, -9},0, {418, 1519},{0xA6, 0x54, 0xE3, 0xFF}}}, + {{{-40, 58, 25},0, {467, 1519},{0xA6, 0x55, 0x1A, 0xFF}}}, + {{{-28, 59, 39},0, {489, 1413},{0xDF, 0x69, 0x40, 0xFF}}}, + {{{-28, 57, -26},0, {395, 1413},{0xDC, 0x5D, 0xB1, 0xFF}}}, + {{{1, 50, -34},0, {384, 1139},{0xE, 0x55, 0xA3, 0xFF}}}, + {{{2, 52, 51},0, {506, 1139},{0xD, 0x5F, 0x54, 0xFF}}}, + {{{47, 33, -34},0, {384, 690},{0x21, 0x4E, 0xA2, 0xFF}}}, + {{{48, 35, 52},0, {509, 690},{0x1F, 0x58, 0x56, 0xFF}}}, + {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, + {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, + {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, + {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, + {{{115, 7, -23},0, {399, 23},{0x3C, 0x45, 0xA9, 0xFF}}}, + {{{116, 9, 47},0, {500, 23},{0x3E, 0x49, 0x54, 0xFF}}}, + {{{143, -6, 31},0, {477, -261},{0x5E, 0x32, 0x45, 0xFF}}}, + {{{143, -7, -11},0, {415, -261},{0x58, 0x2C, 0xB0, 0xFF}}}, + {{{157, -20, 10},0, {444, -427},{0x7F, 0xF6, 0xFD, 0xFF}}}, + {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, + {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, + {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, +}; + +Gfx mario_000_offset_011_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 48, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_011_mesh_layer_1_vtx_1[16] = { + {{{44, 26, 53},0, {321, 28},{0xF0, 0x6C, 0x42, 0xFF}}}, + {{{45, 22, 59},0, {322, 24},{0xEC, 0x2D, 0x75, 0xFF}}}, + {{{87, 10, 51},0, {338, 29},{0x54, 0x3D, 0x49, 0xFF}}}, + {{{40, 24, 52},0, {320, 26},{0xA5, 0x36, 0x47, 0xFF}}}, + {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, + {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, + {{{43, 3, 52},0, {324, 8},{0x39, 0x4, 0x71, 0xFF}}}, + {{{74, -8, 49},0, {335, 8},{0xF5, 0x8, 0x7E, 0xFF}}}, + {{{76, -15, 50},0, {337, 2},{0x16, 0xBD, 0x69, 0xFF}}}, + {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, + {{{76, -20, 42},0, {338, -1},{0x4, 0x98, 0x48, 0xFF}}}, + {{{81, -18, 43},0, {339, 2},{0x41, 0xAF, 0x49, 0xFF}}}, + {{{85, 8, 56},0, {337, 25},{0x30, 0xA, 0x75, 0xFF}}}, + {{{90, 6, 50},0, {339, 26},{0x64, 0xE3, 0x49, 0xFF}}}, + {{{78, 4, 51},0, {335, 20},{0xCA, 0xD4, 0x6A, 0xFF}}}, + {{{48, 15, 53},0, {323, 20},{0x22, 0xBA, 0x64, 0xFF}}}, +}; + +Gfx mario_000_offset_011_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(5, 6, 1, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 2, 0), + gsSP1Triangle(1, 12, 2, 0), + gsSP1Triangle(12, 1, 14, 0), + gsSP1Triangle(14, 1, 15, 0), + gsSP1Triangle(6, 15, 1, 0), + gsSP1Triangle(12, 14, 8, 0), + gsSP1Triangle(8, 14, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_011_mesh_layer_1_vtx_2[46] = { + {{{44, 26, 53},0, {0, 981},{0x2, 0x2, 0x7F, 0xFF}}}, + {{{-4, 37, 52},0, {0, 988},{0xF0, 0xA, 0x7E, 0xFF}}}, + {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, + {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, + {{{-32, 39, 45},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, + {{{-44, 28, 19},0, {6, 994},{0x83, 0xA, 0x16, 0xFF}}}, + {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, + {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, + {{{-44, 27, -5},0, {10, 994},{0x84, 0x9, 0xE7, 0xFF}}}, + {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, + {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, + {{{-33, 37, -27},0, {14, 992},{0xB5, 0x8, 0x9A, 0xFF}}}, + {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, + {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, + {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, + {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, + {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, + {{{43, 23, -33},0, {15, 981},{0x1, 0xEF, 0x82, 0xFF}}}, + {{{-16, -30, 7},0, {10, 987},{0xD5, 0x88, 0xFE, 0xFF}}}, + {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, + {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, + {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, + {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, + {{{-21, -12, 37},0, {4, 988},{0xE0, 0xB2, 0x5F, 0xFF}}}, + {{{26, -23, 42},0, {3, 981},{0xF2, 0xA8, 0x5B, 0xFF}}}, + {{{23, -33, 8},0, {9, 981},{0xF5, 0x82, 0x2, 0xFF}}}, + {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, + {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, + {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, + {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, + {{{82, -4, 49},0, {1, 974},{0x6, 0xE1, 0x7B, 0xFF}}}, + {{{112, 0, 47},0, {1, 970},{0x20, 0xE8, 0x79, 0xFF}}}, + {{{87, 10, 51},0, {0, 974},{0xA, 0xF9, 0x7E, 0xFF}}}, + {{{101, -30, 37},0, {3, 970},{0x13, 0xA3, 0x55, 0xFF}}}, + {{{73, -29, 42},0, {3, 974},{0x0, 0xA6, 0x5A, 0xFF}}}, + {{{98, -38, 10},0, {8, 970},{0x4, 0x81, 0x2, 0xFF}}}, + {{{70, -38, 10},0, {9, 974},{0xF9, 0x81, 0x2, 0xFF}}}, + {{{73, -30, -18},0, {13, 974},{0x2, 0xA4, 0xA8, 0xFF}}}, + {{{101, -32, -14},0, {12, 970},{0x12, 0xA3, 0xAB, 0xFF}}}, + {{{87, 8, -29},0, {14, 974},{0xC, 0xE9, 0x84, 0xFF}}}, + {{{112, -2, -23},0, {13, 970},{0x1C, 0xE2, 0x88, 0xFF}}}, + {{{140, -15, -10},0, {11, 966},{0x38, 0xC5, 0x9E, 0xFF}}}, + {{{136, -35, 10},0, {8, 965},{0x32, 0x8B, 0x0, 0xFF}}}, + {{{153, -25, 10},0, {7, 963},{0x54, 0xA1, 0x1, 0xFF}}}, + {{{140, -14, 31},0, {3, 966},{0x3F, 0xC9, 0x60, 0xFF}}}, +}; + +Gfx mario_000_offset_011_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(9, 8, 3, 0), + gsSP1Triangle(9, 3, 10, 0), + gsSP1Triangle(10, 3, 0, 0), + gsSP1Triangle(8, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 13, 8, 0), + gsSP1Triangle(8, 13, 7, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(5, 12, 3, 0), + gsSP1Triangle(5, 8, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_011_mesh_layer_1_vtx_3[12] = { + {{{87, 10, 51},0, {-16, -16},{0xA, 0xF9, 0x7E, 0xFF}}}, + {{{44, 26, 53},0, {-16, -16},{0x2, 0x2, 0x7F, 0xFF}}}, + {{{82, -4, 49},0, {-16, -16},{0x6, 0xE1, 0x7B, 0xFF}}}, + {{{38, 9, 52},0, {-16, -16},{0xFF, 0xEC, 0x7D, 0xFF}}}, + {{{73, -29, 42},0, {-16, -16},{0x0, 0xA6, 0x5A, 0xFF}}}, + {{{26, -23, 42},0, {-16, -16},{0xF2, 0xA8, 0x5B, 0xFF}}}, + {{{70, -38, 10},0, {-16, -16},{0xF9, 0x81, 0x2, 0xFF}}}, + {{{23, -33, 8},0, {-16, -16},{0xF5, 0x82, 0x2, 0xFF}}}, + {{{26, -25, -22},0, {-16, -16},{0xF7, 0xAA, 0xA3, 0xFF}}}, + {{{73, -30, -18},0, {-16, -16},{0x2, 0xA4, 0xA8, 0xFF}}}, + {{{43, 23, -33},0, {-16, -16},{0x1, 0xEF, 0x82, 0xFF}}}, + {{{87, 8, -29},0, {-16, -16},{0xC, 0xE9, 0x84, 0xFF}}}, +}; + +Gfx mario_000_offset_011_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_002_mesh_layer_4_vtx_0[4] = { + {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, + {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx mario_000_displaylist_002_mesh_layer_4_tri_0[] = { + gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_002_mesh_layer_4_vtx_1[4] = { + {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx mario_000_displaylist_002_mesh_layer_4_tri_1[] = { + gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_012_skinned_mesh_layer_1_vtx_0[10] = { + {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, + {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, + {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, + {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, + {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, + {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, + {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, + {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, + {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, +}; + +Gfx mario_000_offset_012_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_012_mesh_layer_1_vtx_0[6] = { + {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, + {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, + {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, + {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, + {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, + {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, +}; + +Gfx mario_000_offset_012_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_0 + 0, 6, 10), + gsSP1Triangle(2, 0, 10, 0), + gsSP1Triangle(11, 10, 0, 0), + gsSP1Triangle(0, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(12, 9, 8, 0), + gsSP1Triangle(13, 12, 8, 0), + gsSP1Triangle(13, 8, 7, 0), + gsSP1Triangle(7, 6, 13, 0), + gsSP1Triangle(13, 6, 5, 0), + gsSP1Triangle(5, 14, 13, 0), + gsSP1Triangle(14, 5, 4, 0), + gsSP1Triangle(14, 4, 3, 0), + gsSP1Triangle(1, 14, 3, 0), + gsSP1Triangle(14, 1, 15, 0), + gsSP1Triangle(10, 15, 1, 0), + gsSP1Triangle(2, 10, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_012_mesh_layer_1_vtx_1[13] = { + {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, + {{{14, -5, 25},0, {556, 551},{0x21, 0xFE, 0x7B, 0xFF}}}, + {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, + {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, + {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, + {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, + {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, + {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, + {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, + {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, + {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, + {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, + {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, +}; + +Gfx mario_000_offset_012_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(11, 1, 10, 0), + gsSP1Triangle(11, 2, 1, 0), + gsSP1Triangle(12, 10, 1, 0), + gsSP1Triangle(1, 3, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, + {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, + {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, + {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, + {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, + {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, +}; + +Gfx mario_000_offset_013_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_013_mesh_layer_1_vtx_0[6] = { + {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, + {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, + {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, + {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, + {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, + {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, +}; + +Gfx mario_000_offset_013_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(0, 1, 6, 0), + gsSP1Triangle(1, 2, 6, 0), + gsSP1Triangle(6, 2, 7, 0), + gsSP1Triangle(2, 3, 7, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(3, 9, 8, 0), + gsSP1Triangle(3, 5, 9, 0), + gsSP1Triangle(5, 4, 9, 0), + gsSP1Triangle(9, 4, 10, 0), + gsSP1Triangle(10, 4, 11, 0), + gsSP1Triangle(4, 0, 11, 0), + gsSP1Triangle(0, 6, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_013_mesh_layer_1_vtx_1[9] = { + {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, + {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, + {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, + {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, + {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, + {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, + {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, + {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, +}; + +Gfx mario_000_offset_013_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(5, 6, 2, 0), + gsSP1Triangle(6, 7, 2, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(8, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_013_mesh_layer_1_vtx_2[41] = { + {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, + {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, + {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, + {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, + {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, + {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, + {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, + {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, + {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, + {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, + {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, + {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, + {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, + {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, + {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, + {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, + {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, + {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, + {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, + {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, + {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, + {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, + {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, + {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, + {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, + {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, + {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, + {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, + {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, + {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, + {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, + {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, + {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, + {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, + {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, + {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, + {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, + {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, + {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, + {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, +}; + +Gfx mario_000_offset_013_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 2, 13, 0), + gsSP1Triangle(15, 13, 2, 0), + gsSP1Triangle(1, 15, 2, 0), + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSP1Triangle(14, 15, 0, 0), + gsSP1Triangle(0, 15, 1, 0), + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(5, 6, 2, 0), + gsSP1Triangle(6, 7, 2, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(8, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_offset_013_mesh_layer_1_vtx_3[16] = { + {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, + {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, + {{{6, -3, 13},0, {623, 551},{0x11, 0x9, 0x7E, 0xFF}}}, + {{{42, -12, 7},0, {672, 530},{0x13, 0xCC, 0x72, 0xFF}}}, + {{{42, -20, -1},0, {728, 502},{0x2, 0x87, 0x27, 0xFF}}}, + {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, + {{{42, -20, -13},0, {805, 502},{0xF5, 0x8B, 0xCF, 0xFF}}}, + {{{43, -12, -22},0, {860, 530},{0xEF, 0xD0, 0x8C, 0xFF}}}, + {{{2, -3, -16},0, {779, 551},{0xE6, 0xF6, 0x84, 0xFF}}}, + {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, + {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, + {{{43, -1, -22},0, {860, 572},{0xF7, 0x2C, 0x89, 0xFF}}}, + {{{42, 7, -13},0, {805, 602},{0x7, 0x75, 0xCF, 0xFF}}}, + {{{42, 7, -1},0, {728, 602},{0x11, 0x77, 0x2A, 0xFF}}}, + {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, + {{{42, -1, 7},0, {672, 572},{0x17, 0x31, 0x73, 0xFF}}}, +}; + +Gfx mario_000_offset_013_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSP1Triangle(2, 15, 14, 0), + gsSP1Triangle(14, 0, 2, 0), + gsSP1Triangle(2, 3, 15, 0), + gsSP1Triangle(8, 11, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_005_mesh_layer_1_vtx_0[55] = { + {{{-5, 35, 27},0, {864, 32},{0xFD, 0xF9, 0x7F, 0xFF}}}, + {{{-28, 57, 26},0, {1000, -7},{0xE3, 0x59, 0x56, 0xFF}}}, + {{{-33, 37, 27},0, {832, -7},{0xC1, 0x5, 0x6E, 0xFF}}}, + {{{1, 50, 27},0, {1000, 32},{0x17, 0x55, 0x5C, 0xFF}}}, + {{{43, 23, 27},0, {896, 192},{0xFC, 0xF6, 0x7F, 0xFF}}}, + {{{47, 33, 27},0, {1000, 192},{0x1B, 0x53, 0x5D, 0xFF}}}, + {{{90, 17, 29},0, {1000, 258},{0x25, 0x4D, 0x5E, 0xFF}}}, + {{{87, 8, 29},0, {896, 258},{0x3, 0xEC, 0x7D, 0xFF}}}, + {{{115, 7, 23},0, {1001, 323},{0x3C, 0x45, 0x58, 0xFF}}}, + {{{112, -2, 23},0, {898, 323},{0x1D, 0xE2, 0x78, 0xFF}}}, + {{{143, -7, 11},0, {1001, 395},{0x58, 0x2C, 0x50, 0xFF}}}, + {{{140, -15, 10},0, {907, 395},{0x38, 0xC5, 0x62, 0xFF}}}, + {{{157, -20, -10},0, {1001, 436},{0x7F, 0xF6, 0x3, 0xFF}}}, + {{{153, -25, -10},0, {915, 431},{0x54, 0xA1, 0xFF, 0xFF}}}, + {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, + {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, + {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, + {{{112, 0, -47},0, {898, 323},{0x20, 0xE8, 0x88, 0xFF}}}, + {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, + {{{116, 9, -46},0, {1001, 323},{0x3E, 0x49, 0xAC, 0xFF}}}, + {{{91, 19, -50},0, {1000, 258},{0x29, 0x55, 0xAB, 0xFF}}}, + {{{87, 10, -51},0, {896, 258},{0xA, 0xF9, 0x82, 0xFF}}}, + {{{48, 35, -52},0, {1000, 192},{0x20, 0x58, 0xAA, 0xFF}}}, + {{{44, 26, -53},0, {896, 192},{0x2, 0x2, 0x81, 0xFF}}}, + {{{2, 52, -51},0, {1000, 32},{0xD, 0x5F, 0xAC, 0xFF}}}, + {{{-4, 37, -52},0, {864, 32},{0xF0, 0xA, 0x82, 0xFF}}}, + {{{-32, 39, -45},0, {832, -7},{0xB3, 0x13, 0x9D, 0xFF}}}, + {{{-28, 59, -39},0, {1000, -7},{0xDF, 0x69, 0xC0, 0xFF}}}, + {{{-33, 37, 27},0, {805, 291},{0xC1, 0x5, 0x6E, 0xFF}}}, + {{{-28, 57, 26},0, {1000, 434},{0xE3, 0x59, 0x56, 0xFF}}}, + {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, + {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, + {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, + {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, + {{{-44, 28, -19},0, {663, 770},{0x83, 0xA, 0xEA, 0xFF}}}, + {{{-40, 58, -25},0, {1000, 782},{0xA6, 0x56, 0xE6, 0xFF}}}, + {{{-32, 39, -45},0, {805, 1213},{0xB3, 0x13, 0x9D, 0xFF}}}, + {{{-28, 59, -39},0, {1000, 1070},{0xDF, 0x69, 0xC0, 0xFF}}}, + {{{-41, 57, 9},0, {420, 1519},{0xA6, 0x54, 0x1D, 0xFF}}}, + {{{-28, 59, -39},0, {491, 1413},{0xDF, 0x69, 0xC0, 0xFF}}}, + {{{-40, 58, -25},0, {469, 1519},{0xA6, 0x56, 0xE6, 0xFF}}}, + {{{-28, 57, 26},0, {397, 1413},{0xE3, 0x59, 0x56, 0xFF}}}, + {{{1, 50, 27},0, {386, 1139},{0x17, 0x55, 0x5C, 0xFF}}}, + {{{2, 52, -51},0, {508, 1139},{0xD, 0x5F, 0xAC, 0xFF}}}, + {{{47, 33, 27},0, {386, 690},{0x1B, 0x53, 0x5D, 0xFF}}}, + {{{48, 35, -52},0, {511, 690},{0x20, 0x58, 0xAA, 0xFF}}}, + {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, + {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, + {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, + {{{115, 7, 23},0, {401, 23},{0x3C, 0x45, 0x58, 0xFF}}}, + {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, + {{{116, 9, -46},0, {502, 23},{0x3E, 0x49, 0xAC, 0xFF}}}, + {{{143, -6, -31},0, {479, -261},{0x5E, 0x32, 0xBB, 0xFF}}}, + {{{143, -7, 11},0, {417, -261},{0x58, 0x2C, 0x50, 0xFF}}}, + {{{157, -20, -10},0, {446, -427},{0x7F, 0xF6, 0x3, 0xFF}}}, +}; + +Gfx mario_000_displaylist_005_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 7, 6, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(11, 7, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_005_mesh_layer_1_vtx_1[46] = { + {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, + {{{43, 23, 27},0, {20, 981},{0xFC, 0xF6, 0x7F, 0xFF}}}, + {{{-5, 35, 27},0, {20, 988},{0xFD, 0xF9, 0x7F, 0xFF}}}, + {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, + {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, + {{{-33, 37, 27},0, {21, 992},{0xC1, 0x5, 0x6E, 0xFF}}}, + {{{-44, 27, 5},0, {24, 994},{0x84, 0x9, 0x19, 0xFF}}}, + {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, + {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, + {{{-44, 28, -19},0, {28, 994},{0x83, 0xA, 0xEA, 0xFF}}}, + {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, + {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, + {{{-32, 39, -45},0, {33, 992},{0xB3, 0x13, 0x9D, 0xFF}}}, + {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, + {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, + {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, + {{{44, 26, -53},0, {35, 981},{0x2, 0x2, 0x81, 0xFF}}}, + {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, + {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, + {{{26, -23, -42},0, {32, 981},{0xF2, 0xA8, 0xA5, 0xFF}}}, + {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, + {{{-21, -12, -37},0, {30, 988},{0xDF, 0xB2, 0xA1, 0xFF}}}, + {{{-16, -30, -7},0, {25, 987},{0xD5, 0x88, 0x2, 0xFF}}}, + {{{23, -33, -8},0, {25, 981},{0xF5, 0x82, 0xFE, 0xFF}}}, + {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, + {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, + {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, + {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, + {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, + {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, + {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, + {{{82, -4, -49},0, {34, 974},{0x6, 0xE1, 0x85, 0xFF}}}, + {{{87, 10, -51},0, {35, 974},{0xA, 0xF9, 0x82, 0xFF}}}, + {{{112, 0, -47},0, {34, 970},{0x20, 0xE8, 0x88, 0xFF}}}, + {{{101, -30, -37},0, {31, 970},{0x13, 0xA3, 0xAB, 0xFF}}}, + {{{140, -14, -31},0, {31, 966},{0x3F, 0xC9, 0xA0, 0xFF}}}, + {{{136, -35, -10},0, {27, 965},{0x32, 0x8B, 0x0, 0xFF}}}, + {{{153, -25, -10},0, {27, 963},{0x54, 0xA1, 0xFF, 0xFF}}}, + {{{140, -15, 10},0, {24, 966},{0x38, 0xC5, 0x62, 0xFF}}}, + {{{101, -32, 14},0, {22, 970},{0x11, 0xA3, 0x55, 0xFF}}}, + {{{112, -2, 23},0, {22, 970},{0x1D, 0xE2, 0x78, 0xFF}}}, + {{{87, 8, 29},0, {21, 974},{0x3, 0xEC, 0x7D, 0xFF}}}, + {{{73, -30, 18},0, {21, 974},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{98, -38, -10},0, {26, 970},{0x4, 0x81, 0xFE, 0xFF}}}, + {{{70, -38, -10},0, {26, 974},{0xF9, 0x81, 0xFE, 0xFF}}}, + {{{73, -29, -42},0, {32, 974},{0x0, 0xA6, 0xA6, 0xFF}}}, +}; + +Gfx mario_000_displaylist_005_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(6, 10, 12, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(5, 6, 13, 0), + gsSP1Triangle(5, 13, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_005_mesh_layer_1_vtx_2[12] = { + {{{73, -30, 18},0, {-16, -16},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{87, 8, 29},0, {-16, -16},{0x3, 0xEC, 0x7D, 0xFF}}}, + {{{43, 23, 27},0, {-16, -16},{0xFC, 0xF6, 0x7F, 0xFF}}}, + {{{26, -25, 22},0, {-16, -16},{0xF9, 0xB0, 0x62, 0xFF}}}, + {{{70, -38, -10},0, {-16, -16},{0xF9, 0x81, 0xFE, 0xFF}}}, + {{{23, -33, -8},0, {-16, -16},{0xF5, 0x82, 0xFE, 0xFF}}}, + {{{26, -23, -42},0, {-16, -16},{0xF2, 0xA8, 0xA5, 0xFF}}}, + {{{73, -29, -42},0, {-16, -16},{0x0, 0xA6, 0xA6, 0xFF}}}, + {{{38, 9, -52},0, {-16, -16},{0xFE, 0xEC, 0x83, 0xFF}}}, + {{{82, -4, -49},0, {-16, -16},{0x6, 0xE1, 0x85, 0xFF}}}, + {{{44, 26, -53},0, {-16, -16},{0x2, 0x2, 0x81, 0xFF}}}, + {{{87, 10, -51},0, {-16, -16},{0xA, 0xF9, 0x82, 0xFF}}}, +}; + +Gfx mario_000_displaylist_005_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_005_mesh_layer_1_vtx_3[16] = { + {{{85, 8, -56},0, {337, 25},{0x30, 0xA, 0x8B, 0xFF}}}, + {{{87, 10, -51},0, {338, 29},{0x55, 0x3D, 0xB7, 0xFF}}}, + {{{90, 6, -49},0, {339, 26},{0x64, 0xE4, 0xB7, 0xFF}}}, + {{{45, 22, -59},0, {322, 24},{0xEC, 0x2D, 0x8B, 0xFF}}}, + {{{78, 4, -51},0, {335, 20},{0xCB, 0xD4, 0x95, 0xFF}}}, + {{{76, -15, -50},0, {337, 2},{0x17, 0xBD, 0x97, 0xFF}}}, + {{{81, -18, -43},0, {339, 2},{0x40, 0xAF, 0xB6, 0xFF}}}, + {{{76, -20, -42},0, {338, -1},{0x4, 0x98, 0xB8, 0xFF}}}, + {{{33, -5, -48},0, {321, -2},{0xC4, 0xAC, 0xB6, 0xFF}}}, + {{{36, -1, -55},0, {322, 1},{0xD3, 0xDD, 0x8E, 0xFF}}}, + {{{31, 0, -49},0, {320, 1},{0x9A, 0xF3, 0xB5, 0xFF}}}, + {{{40, 24, -52},0, {320, 26},{0xA5, 0x36, 0xB9, 0xFF}}}, + {{{44, 26, -53},0, {321, 28},{0xF0, 0x6C, 0xBE, 0xFF}}}, + {{{43, 3, -52},0, {324, 8},{0x39, 0x4, 0x8E, 0xFF}}}, + {{{48, 15, -52},0, {323, 20},{0x22, 0xBA, 0x9C, 0xFF}}}, + {{{74, -8, -49},0, {335, 8},{0xF5, 0x8, 0x82, 0xFF}}}, +}; + +Gfx mario_000_displaylist_005_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_001_mesh_layer_4_vtx_0[4] = { + {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, + {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx mario_000_displaylist_001_mesh_layer_4_tri_0[] = { + gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx mario_000_displaylist_001_mesh_layer_4_vtx_1[4] = { + {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx mario_000_displaylist_001_mesh_layer_4_tri_1[] = { + gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_mario_sonic_blue_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_blue_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_skin_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_skin_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_metal_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_mario_metal_v4[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_eye_texture[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_eye_texture_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_mouth_none[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_mouth_none_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_nose_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_nose_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_mouth[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_mouth_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_mouth_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_eye_half[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_half_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_eye_half_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_eye_closed[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_closed_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_eye_closed_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_eye_dead[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_dead_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_eye_dead_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_gloves_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_gloves_001_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_gloves_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_gloves_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_texture_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_new2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_sonic_texture_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_white_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_white_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_buckle_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_buckle_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_sonic_shoe_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_sonic_shoe_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_wing_2_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing_2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_mario_wing_2_001_v4[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx mat_mario_wing_1_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_mario_wing_1_001_v4[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_001_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_001_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_eye_texture), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_mouth_none), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_mario_sonic_nose_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_eye_texture), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_mouth), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_mario_sonic_nose_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_eye_half), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_mouth_none), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_mario_sonic_nose_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_eye_closed), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_mouth_none), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_mario_sonic_nose_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_eye_dead), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_mouth_none), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_mario_sonic_nose_v4), + gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_003_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_004_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_004_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), + gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), + gsSPEndDisplayList(), }; -// 0x04001090 -ALIGNED8 static const Texture mario_texture_yellow_button[] = { -#include "actors/mario/mario_overalls_button.rgba16.inc.c" +Gfx mario_000_displaylist_003_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_gloves_001_v4), + gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// 0x04001890 -ALIGNED8 static const Texture mario_texture_m_logo[] = { -#include "actors/mario/mario_logo.rgba16.inc.c" +Gfx mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// 0x04002090 -ALIGNED8 static const Texture mario_texture_hair_sideburn[] = { -#include "actors/mario/mario_sideburn.rgba16.inc.c" +Gfx mario_002_switch_option_right_hand_open_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_gloves_v4), + gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// 0x04002890 -ALIGNED8 static const Texture mario_texture_mustache[] = { -#include "actors/mario/mario_mustache.rgba16.inc.c" +Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// 0x04003090 -ALIGNED8 static const Texture mario_texture_eyes_front[] = { -#include "actors/mario/mario_eyes_center.rgba16.inc.c" +Gfx mario_000_offset_006_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// 0x04003890 -ALIGNED8 static const Texture mario_texture_eyes_half_closed[] = { -#include "actors/mario/mario_eyes_half_closed.rgba16.inc.c" +Gfx mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// 0x04004090 -ALIGNED8 static const Texture mario_texture_eyes_closed[] = { -#include "actors/mario/mario_eyes_closed.rgba16.inc.c" +Gfx mario_000_offset_007_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// Unreferenced -// 0x04004890 -ALIGNED8 static const Texture mario_texture_eyes_closed_unused1[] = { -#include "actors/mario/mario_eyes_closed_unused_0.rgba16.inc.c" +Gfx mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// Unreferenced -// 0x04005090 -ALIGNED8 static const Texture mario_texture_eyes_closed_unused2[] = { -#include "actors/mario/mario_eyes_closed_unused_1.rgba16.inc.c" +Gfx mario_000_offset_007_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_skin_v4), + gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), + gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), + gsSPEndDisplayList(), }; -// 0x04005890 -ALIGNED8 static const Texture mario_texture_eyes_right[] = { -#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c" +Gfx mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), + gsSPEndDisplayList(), }; -// 0x04006090 -ALIGNED8 static const Texture mario_texture_eyes_left[] = { -#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c" +Gfx mario_000_displaylist_004_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_gloves_001_v4), + gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// 0x04006890 -ALIGNED8 static const Texture mario_texture_eyes_up[] = { -#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c" +Gfx mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// 0x04007090 -ALIGNED8 static const Texture mario_texture_eyes_down[] = { -#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c" -}; +Gfx mario_002_switch_option_left_hand_open_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_gloves_v4), + gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; -// 0x04007890 -ALIGNED8 static const Texture mario_texture_eyes_dead[] = { -#include "actors/mario/mario_eyes_dead.rgba16.inc.c" +Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), }; -// 0x04008090 -ALIGNED8 static const Texture mario_texture_wings_half_1[] = { -#include "actors/mario/mario_wing.rgba16.inc.c" +Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_gloves_v4), + gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; -// 0x04009090 -ALIGNED8 static const Texture mario_texture_wings_half_2[] = { -#include "actors/mario/mario_wing_tip.rgba16.inc.c" -}; - -// 0x0400A090 -ALIGNED8 static const Texture mario_texture_metal_wings_half_1[] = { -#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c" -}; +Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; -// 0x0400B090 -ALIGNED8 static const Texture mario_texture_metal_wings_half_2[] = { -#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c" -}; - -// 0x0400C090 -static const Vtx mario_butt_dl_vertex_group1[] = { - {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, - {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, - {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, - {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, - {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, - {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, - {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, - {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, - {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, - {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, - {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, - {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, - {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, -}; - -// 0x0400C180 -static const Vtx mario_butt_dl_vertex_group2[] = { - {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, - {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, - {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, - {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, - {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, - {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, - {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, - {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, - {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, - {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, - {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, - {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, -}; - -// 0x0400C260 -static const Vtx mario_butt_dl_vertex_group3[] = { - {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, - {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, - {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, - {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, - {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, - {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, - {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, - {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, - {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, - {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, - {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, - {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, - {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, - {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, -}; - -// 0x0400C360 -static const Vtx mario_butt_dl_vertex_group4[] = { - {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, - {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, - {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, - {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, - {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, - {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, - {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, - {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, - {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, - {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, - {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, - {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, -}; - -// 0x0400C450 -static const Vtx mario_butt_dl_vertex_group5[] = { - {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, - {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, - {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, - {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, - {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, - {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, - {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, - {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, - {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, - {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, - {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, - {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, -}; - -// 0x0400C540 -static const Vtx mario_butt_dl_vertex_group6[] = { - {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, - {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, - {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, - {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, - {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, - {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, - {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, - {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, - {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, - {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, - {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, - {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, -}; - -// 0x0400C630 -static const Vtx mario_butt_dl_vertex_group7[] = { - {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, - {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, - {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, - {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, - {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, - {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, - {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, - {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, - {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, - {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, -}; - -// 0x0400C720 -static const Vtx mario_butt_dl_vertex_group8[] = { - {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, - {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, - {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, - {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, - {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, - {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, - {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, - {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, - {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, - {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, - {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, - {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, -}; - -// 0x0400C820 -static const Vtx mario_butt_dl_vertex_group9[] = { - {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, - {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, - {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, - {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, - {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, - {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, - {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, - {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, - {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, - {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, - {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, - {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, - {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, - {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, - {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, - {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, -}; - -// 0x0400C920 -static const Vtx mario_butt_dl_vertex_group10[] = { - {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, - {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, - {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, - {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, - {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, - {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, - {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, - {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, - {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, - {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, - {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, - {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, - {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, - {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, -}; - -// 0x0400CA00 - 0x0400CC98 -const Gfx mario_butt_dl[] = { - gsSPVertex(mario_butt_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 5, 10, 0x0), - gsSP2Triangles( 4, 11, 10, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_butt_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 3, 13, 0x0, 6, 8, 12, 0x0), - gsSPVertex(mario_butt_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 1, 7, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles(11, 9, 12, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_butt_dl_vertex_group4, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 2, 0x0), - gsSP2Triangles( 9, 7, 10, 0x0, 11, 12, 7, 0x0), - gsSP1Triangle(13, 11, 14, 0x0), - gsSPVertex(mario_butt_dl_vertex_group5, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 2, 7, 8, 0x0), - gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_butt_dl_vertex_group6, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles(11, 10, 9, 0x0, 12, 13, 14, 0x0), - gsSP1Triangle( 0, 13, 12, 0x0), - gsSPVertex(mario_butt_dl_vertex_group7, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 2, 3, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 9, 8, 11, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 1, 0x0), - gsSPVertex(mario_butt_dl_vertex_group8, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 5, 0x0), - gsSP2Triangles( 4, 11, 12, 0x0, 6, 11, 13, 0x0), - gsSP2Triangles(13, 3, 14, 0x0, 15, 2, 1, 0x0), - gsSPVertex(mario_butt_dl_vertex_group9, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 1, 0, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 0, 13, 14, 0x0), - gsSP1Triangle(15, 0, 14, 0x0), - gsSPVertex(mario_butt_dl_vertex_group10, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 0, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSP2Triangles( 9, 1, 11, 0x0, 11, 12, 10, 0x0), - gsSP1Triangle(10, 13, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400CC98 - 0x0400CCC8 -const Gfx mario_butt[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x0400CCC8 - 0x0400CD40 -const Gfx mario_metal_butt[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x0400CD40 -static const Vtx mario_left_arm_shared_dl_vertex_group1[] = { - {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, - {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, - {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, - {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, - {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, - {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, - {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, - {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, - {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, - {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, - {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, - {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, - {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, - {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, - {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, -}; - -// 0x0400CE30 -static const Vtx mario_left_arm_shared_dl_vertex_group2[] = { - {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, - {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, - {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, - {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, - {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, - {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, - {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, - {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, - {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, - {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, - {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, - {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, - {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, - {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, - {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, -}; - -// 0x0400CF20 -static const Vtx mario_left_arm_shared_dl_vertex_group3[] = { - {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, - {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, - {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, - {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, - {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, - {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, - {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, - {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, - {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, - {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, - {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, - {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, - {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, - {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, -}; - -// 0x0400D000 -static const Vtx mario_left_arm_shared_dl_vertex_group4[] = { - {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, - {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, - {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, - {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, - {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, - {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, - {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, - {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, - {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, -}; - -// 0x0400D090 - 0x0400D1D8 -const Gfx mario_left_arm_shared_dl[] = { - gsSPVertex(mario_left_arm_shared_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), - gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), - gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), - gsSPVertex(mario_left_arm_shared_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), - gsSP2Triangles( 1, 7, 6, 0x0, 2, 1, 6, 0x0), - gsSP2Triangles( 6, 5, 8, 0x0, 8, 5, 3, 0x0), - gsSP2Triangles( 3, 0, 9, 0x0, 9, 0, 2, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_left_arm_shared_dl_vertex_group3, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 2, 4, 7, 0x0), - gsSP2Triangles( 0, 2, 8, 0x0, 9, 0, 10, 0x0), - gsSP2Triangles( 6, 9, 11, 0x0, 4, 6, 12, 0x0), - gsSP1Triangle(13, 5, 3, 0x0), - gsSPVertex(mario_left_arm_shared_dl_vertex_group4, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), - gsSP1Triangle( 6, 8, 7, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400D1D8 - 0x0400D1F8 -const Gfx mario_left_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_left_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0400D1F8 -static const Vtx mario_left_forearm_shared_dl_vertex[] = { - {{{ -2, 19, 16}, 0, { 0, 0}, {0xdb, 0x61, 0x48, 0x00}}}, - {{{ 47, 14, 13}, 0, { 0, 0}, {0x44, 0x44, 0x51, 0x00}}}, - {{{ 47, 16, -19}, 0, { 0, 0}, {0x45, 0x61, 0xd6, 0x00}}}, - {{{ -3, -17, 26}, 0, { 0, 0}, {0xd7, 0xdb, 0x71, 0x00}}}, - {{{ 46, -17, 22}, 0, { 0, 0}, {0x41, 0xc7, 0x5c, 0x00}}}, - {{{ -3, -38, -4}, 0, { 0, 0}, {0xd4, 0x89, 0xfe, 0x00}}}, - {{{ 45, -34, -4}, 0, { 0, 0}, {0x3f, 0x95, 0xe8, 0x00}}}, - {{{ -3, -14, -34}, 0, { 0, 0}, {0xd7, 0xde, 0x8e, 0x00}}}, - {{{ 46, -14, -30}, 0, { 0, 0}, {0x42, 0xf4, 0x95, 0x00}}}, - {{{ -2, 21, -21}, 0, { 0, 0}, {0xdb, 0x63, 0xbb, 0x00}}}, - {{{ -14, 13, -15}, 0, { 0, 0}, {0x93, 0x2c, 0xd3, 0x00}}}, - {{{ -14, 11, 10}, 0, { 0, 0}, {0x93, 0x3b, 0x19, 0x00}}}, - {{{ -15, -11, -24}, 0, { 0, 0}, {0x9a, 0xde, 0xbe, 0x00}}}, - {{{ -15, -27, -4}, 0, { 0, 0}, {0x8b, 0xd2, 0x0a, 0x00}}}, - {{{ -15, -13, 17}, 0, { 0, 0}, {0x9b, 0xfb, 0x4c, 0x00}}}, - {{{ 58, -7, -3}, 0, { 0, 0}, {0x7e, 0xfc, 0x00, 0x00}}}, -}; - -// 0x0400D2F8 - 0x0400D3E8 -const Gfx mario_left_forearm_shared_dl[] = { - gsSPVertex(mario_left_forearm_shared_dl_vertex, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), - gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), - gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), - gsSP2Triangles( 8, 15, 6, 0x0, 6, 15, 4, 0x0), - gsSP2Triangles( 4, 15, 1, 0x0, 1, 15, 2, 0x0), - gsSP2Triangles( 2, 15, 8, 0x0, 0, 14, 3, 0x0), - gsSP2Triangles( 3, 13, 5, 0x0, 5, 12, 7, 0x0), - gsSP2Triangles( 7, 10, 9, 0x0, 9, 11, 0, 0x0), - gsSP2Triangles( 7, 9, 8, 0x0, 5, 7, 6, 0x0), - gsSP2Triangles( 3, 5, 4, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 9, 0, 2, 0x0, 12, 13, 10, 0x0), - gsSP2Triangles(13, 11, 10, 0x0, 13, 14, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400D3E8 -static const Vtx mario_left_hand_closed_shared_dl_vertex_group1[] = { - {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, - {{{ 17, -1, 27}, 0, { 0, 0}, {0x00, 0xfd, 0x7f, 0x00}}}, - {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, - {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, - {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, - {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, - {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, - {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, - {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, - {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, - {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, - {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, - {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, - {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, - {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, - {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, -}; - -// 0x0400D4E8 -static const Vtx mario_left_hand_closed_shared_dl_vertex_group2[] = { - {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, - {{{ 57, 55, -37}, 0, { 0, 0}, {0x22, 0x54, 0xa9, 0x00}}}, - {{{ 99, 40, -16}, 0, { 0, 0}, {0x6c, 0x3c, 0xe5, 0x00}}}, - {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, - {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, - {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, - {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, - {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, - {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, - {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, - {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, - {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, - {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, - {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, -}; - -// 0x0400D5C8 -static const Vtx mario_left_hand_closed_shared_dl_vertex_group3[] = { - {{{ 27, -58, 6}, 0, { 0, 0}, {0xa3, 0xad, 0x12, 0x00}}}, - {{{ -14, -14, -4}, 0, { 0, 0}, {0x8c, 0xcd, 0x02, 0x00}}}, - {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, - {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, - {{{ -18, 45, 8}, 0, { 0, 0}, {0x84, 0xf3, 0x13, 0x00}}}, - {{{ 5, -6, 36}, 0, { 0, 0}, {0x99, 0xd2, 0x38, 0x00}}}, - {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, - {{{ 27, -58, 6}, 0, { 0, 0}, {0x73, 0xd5, 0x1d, 0x00}}}, - {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, - {{{ -18, 45, 8}, 0, { 0, 0}, {0x2d, 0x71, 0x21, 0x00}}}, - {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, - {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, - {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, - {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, - {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, -}; - -// 0x0400D6B8 -static const Vtx mario_left_hand_closed_shared_dl_vertex_group4[] = { - {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, - {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, - {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, - {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, - {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, - {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, - {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, - {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, - {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, - {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, -}; - -// 0x0400D758 - 0x0400D8F0 -const Gfx mario_left_hand_closed_shared_dl[] = { - gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 1, 0, 0x0, 2, 1, 7, 0x0), - gsSP2Triangles( 7, 1, 6, 0x0, 6, 4, 8, 0x0), - gsSP2Triangles( 8, 4, 3, 0x0, 9, 3, 2, 0x0), - gsSP2Triangles( 0, 10, 11, 0x0, 12, 10, 0, 0x0), - gsSP1Triangle(13, 14, 15, 0x0), - gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 5, 1, 3, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 10, 3, 0x0, 1, 0, 9, 0x0), - gsSP2Triangles( 9, 3, 1, 0x0, 5, 2, 1, 0x0), - gsSP2Triangles( 0, 2, 7, 0x0, 7, 2, 8, 0x0), - gsSP2Triangles( 8, 2, 11, 0x0, 11, 2, 5, 0x0), - gsSP2Triangles( 9, 7, 6, 0x0, 6, 8, 12, 0x0), - gsSP2Triangles(12, 8, 13, 0x0, 13, 5, 4, 0x0), - gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), - gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 2, 0x0), - gsSP2Triangles( 8, 2, 3, 0x0, 3, 9, 10, 0x0), - gsSP2Triangles(10, 9, 11, 0x0, 11, 7, 6, 0x0), - gsSP2Triangles(10, 12, 13, 0x0, 6, 14, 12, 0x0), - gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group4, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 1, 5, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), - gsSP1Triangle( 7, 1, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400D8F0 - 0x0400D910 -const Gfx mario_left_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_left_hand_closed_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0400D910 -static const Vtx mario_right_arm_shared_dl_vertex_group1[] = { - {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, - {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, - {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, - {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, - {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, - {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, - {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, - {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, - {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, - {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, - {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, - {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, - {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, - {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, - {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, - {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, -}; - -// 0x0400DA10 -static const Vtx mario_right_arm_shared_dl_vertex_group2[] = { - {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, - {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, - {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, - {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, - {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, - {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, - {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, - {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, - {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, - {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, - {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, - {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, - {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, - {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, - {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, - {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, -}; - -// 0x0400DB10 -static const Vtx mario_right_arm_shared_dl_vertex_group3[] = { - {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, - {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, - {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, - {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, - {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, - {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, - {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, - {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, - {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, - {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, - {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, - {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, - {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, - {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, - {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, - {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, -}; - -// 0x0400DC10 -static const Vtx mario_right_arm_shared_dl_vertex_group4[] = { - {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, - {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, - {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, - {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, - {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, - {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, - {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, - {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, - {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, -}; - -// 0x0400DCA0 - 0x0400DDE8 -const Gfx mario_right_arm_shared_dl[] = { - gsSPVertex(mario_right_arm_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), - gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), - gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), - gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), - gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), - gsSPVertex(mario_right_arm_shared_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 3, 6, 4, 0x0), - gsSP2Triangles( 1, 6, 3, 0x0, 0, 7, 1, 0x0), - gsSP2Triangles( 8, 7, 0, 0x0, 5, 4, 8, 0x0), - gsSP2Triangles( 9, 10, 11, 0x0, 12, 9, 13, 0x0), - gsSP1Triangle(14, 12, 15, 0x0), - gsSPVertex(mario_right_arm_shared_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 7, 5, 2, 0x0), - gsSP2Triangles( 8, 7, 9, 0x0, 10, 8, 11, 0x0), - gsSP2Triangles( 6, 10, 12, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_right_arm_shared_dl_vertex_group4, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), - gsSP1Triangle( 5, 8, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400DDE8 - 0x0400DE08 -const Gfx mario_right_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_right_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0400DE08 -static const Vtx mario_right_forearm_shared_dl_vertex[] = { - {{{ 47, -15, -19}, 0, { 0, 0}, {0x41, 0xcf, 0x9f, 0x00}}}, - {{{ -3, -39, 6}, 0, { 0, 0}, {0xd4, 0x8a, 0xf8, 0x00}}}, - {{{ -2, -15, -23}, 0, { 0, 0}, {0xd7, 0xe5, 0x8c, 0x00}}}, - {{{ 46, -36, 6}, 0, { 0, 0}, {0x3f, 0x94, 0x0f, 0x00}}}, - {{{ -2, -18, 38}, 0, { 0, 0}, {0xd6, 0xd5, 0x6f, 0x00}}}, - {{{ 47, -17, 34}, 0, { 0, 0}, {0x42, 0xec, 0x6a, 0x00}}}, - {{{ -1, 18, 28}, 0, { 0, 0}, {0xdb, 0x5d, 0x4d, 0x00}}}, - {{{ 48, 13, 25}, 0, { 0, 0}, {0x45, 0x5d, 0x32, 0x00}}}, - {{{ -1, 20, -9}, 0, { 0, 0}, {0xdb, 0x67, 0xc1, 0x00}}}, - {{{ 48, 15, -7}, 0, { 0, 0}, {0x45, 0x4c, 0xb6, 0x00}}}, - {{{ -14, -28, 6}, 0, { 0, 0}, {0x90, 0xc9, 0xef, 0x00}}}, - {{{ -14, -12, -13}, 0, { 0, 0}, {0x91, 0x01, 0xc3, 0x00}}}, - {{{ -13, 12, -4}, 0, { 0, 0}, {0x9e, 0x4b, 0xe7, 0x00}}}, - {{{ -13, 10, 21}, 0, { 0, 0}, {0x8d, 0x22, 0x28, 0x00}}}, - {{{ -14, -14, 28}, 0, { 0, 0}, {0x9a, 0xd8, 0x3f, 0x00}}}, - {{{ 59, -8, 7}, 0, { 0, 0}, {0x7f, 0xfd, 0x00, 0x00}}}, -}; - -// 0x0400DF08 - 0x0400DFF8 -const Gfx mario_right_forearm_shared_dl[] = { - gsSPVertex(mario_right_forearm_shared_dl_vertex, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), - gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), - gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), - gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), - gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), - gsSP2Triangles( 3, 15, 5, 0x0, 5, 15, 7, 0x0), - gsSP2Triangles( 7, 15, 9, 0x0, 14, 10, 1, 0x0), - gsSP2Triangles(13, 14, 4, 0x0, 12, 13, 6, 0x0), - gsSP2Triangles(11, 12, 8, 0x0, 10, 11, 2, 0x0), - gsSP2Triangles( 9, 0, 2, 0x0, 7, 9, 8, 0x0), - gsSP2Triangles( 5, 7, 6, 0x0, 3, 5, 4, 0x0), - gsSP2Triangles( 0, 3, 1, 0x0, 11, 13, 12, 0x0), - gsSP2Triangles(11, 10, 13, 0x0, 10, 14, 13, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400DFF8 -static const Vtx mario_right_hand_closed_dl_vertex_group1[] = { - {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, - {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, - {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, - {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, - {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, - {{{ 24, -57, -4}, 0, { 0, 0}, {0x73, 0xd4, 0xe6, 0x00}}}, - {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, - {{{ -19, 47, -4}, 0, { 0, 0}, {0x30, 0x72, 0xe5, 0x00}}}, - {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, - {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, - {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, - {{{ 24, -57, -4}, 0, { 0, 0}, {0xa2, 0xaf, 0xe7, 0x00}}}, - {{{ -16, -12, 6}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0x00}}}, - {{{ 4, -3, -33}, 0, { 0, 0}, {0x9b, 0xd5, 0xc2, 0x00}}}, - {{{ -19, 47, -4}, 0, { 0, 0}, {0x85, 0xf5, 0xe7, 0x00}}}, - {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, -}; - -// 0x0400E0F8 -static const Vtx mario_right_hand_closed_dl_vertex_group2[] = { - {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, - {{{ 104, -26, 1}, 0, { 0, 0}, {0x68, 0xc5, 0xd7, 0x00}}}, - {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, - {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, - {{{ 96, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x51, 0x00}}}, - {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, - {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, - {{{ 97, 39, 24}, 0, { 0, 0}, {0x6b, 0x3a, 0x21, 0x00}}}, - {{{ 86, 30, -33}, 0, { 0, 0}, {0x4f, 0x22, 0xa4, 0x00}}}, - {{{ 86, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x61, 0x00}}}, - {{{ 54, 54, 44}, 0, { 0, 0}, {0x20, 0x51, 0x5c, 0x00}}}, - {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, - {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, - {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, -}; - -// 0x0400E1D8 -static const Vtx mario_right_hand_closed_dl_vertex_group3[] = { - {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, - {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, - {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, - {{{ 1, 24, 35}, 0, { 0, 0}, {0xd2, 0x3c, 0x65, 0x00}}}, - {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, - {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, - {{{ 15, 0, -23}, 0, { 0, 0}, {0x04, 0x01, 0x82, 0x00}}}, - {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, - {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, - {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, - {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, - {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, - {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, - {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, - {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, -}; - -// 0x0400E2C8 - 0x0400E458 -const Gfx mario_right_hand_closed_dl[] = { - gsSPVertex(mario_right_hand_closed_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 2, 5, 6, 0x0, 6, 7, 4, 0x0), - gsSP2Triangles( 4, 7, 8, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles( 9, 5, 2, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(13, 12, 14, 0x0, 14, 12, 8, 0x0), - gsSP2Triangles( 8, 12, 9, 0x0, 9, 12, 11, 0x0), - gsSP1Triangle( 3, 15, 0, 0x0), - gsSPVertex(mario_right_hand_closed_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 8, 7, 1, 0x0, 1, 7, 4, 0x0), - gsSP2Triangles( 4, 7, 9, 0x0, 10, 7, 6, 0x0), - gsSP2Triangles( 9, 10, 5, 0x0, 10, 11, 5, 0x0), - gsSP2Triangles(11, 12, 5, 0x0, 1, 4, 3, 0x0), - gsSP2Triangles(11, 10, 6, 0x0, 6, 13, 11, 0x0), - gsSP2Triangles( 7, 10, 9, 0x0, 4, 9, 5, 0x0), - gsSP2Triangles( 0, 8, 1, 0x0, 6, 8, 0, 0x0), - gsSPVertex(mario_right_hand_closed_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 7, 6, 0, 0x0, 8, 6, 5, 0x0), - gsSP2Triangles( 9, 3, 1, 0x0, 0, 6, 8, 0x0), - gsSP2Triangles(10, 11, 1, 0x0, 11, 9, 1, 0x0), - gsSP2Triangles(11, 12, 9, 0x0, 1, 0, 10, 0x0), - gsSP2Triangles(13, 5, 3, 0x0, 3, 9, 14, 0x0), - gsSP1Triangle(14, 13, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400E458 - 0x0400E478 -const Gfx mario_right_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_right_hand_closed_dl), - gsSPEndDisplayList(), -}; - -// 0x0400E478 - 0x0400E4A8 -const Gfx mario_metal_right_hand_closed[] = { - gsSPDisplayList(mario_right_hand_closed_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x0400E4A8 -static const Vtx mario_left_thigh_dl_vertex_group1[] = { - {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, - {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, - {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, - {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, - {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, - {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, - {{{ 116, 10, 8}, 0, { 0, 0}, {0x7e, 0x09, 0x01, 0x00}}}, - {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, - {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, - {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, - {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, - {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, - {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, - {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, - {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, -}; - -// 0x0400E5A8 -static const Vtx mario_left_thigh_dl_vertex_group2[] = { - {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, - {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, - {{{ 21, -54, 8}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0x00}}}, - {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, - {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, - {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, - {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, - {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, - {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, - {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, - {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, - {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, - {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, - {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, - {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, -}; - -// 0x0400E6A8 - 0x0400E7B0 -const Gfx mario_left_thigh_dl[] = { - gsSPVertex(mario_left_thigh_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0), - gsSP2Triangles( 9, 7, 10, 0x0, 10, 7, 11, 0x0), - gsSP2Triangles(11, 7, 6, 0x0, 12, 3, 13, 0x0), - gsSP2Triangles(13, 4, 14, 0x0, 14, 4, 15, 0x0), - gsSPVertex(mario_left_thigh_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 4, 5, 1, 0x0, 0, 2, 6, 0x0), - gsSP2Triangles( 7, 0, 8, 0x0, 9, 7, 10, 0x0), - gsSP2Triangles( 3, 9, 10, 0x0, 2, 3, 6, 0x0), - gsSP2Triangles( 3, 11, 6, 0x0, 10, 11, 3, 0x0), - gsSP2Triangles( 7, 8, 10, 0x0, 0, 12, 8, 0x0), - gsSP2Triangles( 6, 12, 0, 0x0, 1, 13, 3, 0x0), - gsSP2Triangles( 0, 4, 1, 0x0, 14, 4, 0, 0x0), - gsSP2Triangles( 9, 15, 14, 0x0, 3, 13, 15, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400E7B0 - 0x0400E7E0 -const Gfx mario_left_thigh[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x0400E7E0 - 0x0400E858 -const Gfx mario_metal_left_thigh[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x0400E858 -static const Vtx mario_left_leg_shared_dl_vertex[] = { - {{{ 4, -37, 9}, 0, { 0, 0}, {0xc1, 0x93, 0x00, 0x00}}}, - {{{ 64, -46, 9}, 0, { 0, 0}, {0x4b, 0x9a, 0x01, 0x00}}}, - {{{ 65, -11, 54}, 0, { 0, 0}, {0x2d, 0xdb, 0x70, 0x00}}}, - {{{ 8, 44, 33}, 0, { 0, 0}, {0xcc, 0x5e, 0x43, 0x00}}}, - {{{ 68, 45, 37}, 0, { 0, 0}, {0x52, 0x4b, 0x3c, 0x00}}}, - {{{ 69, 45, -18}, 0, { 0, 0}, {0x42, 0x61, 0xd1, 0x00}}}, - {{{ 9, 44, -16}, 0, { 0, 0}, {0xc4, 0x4d, 0xaf, 0x00}}}, - {{{ 66, -11, -36}, 0, { 0, 0}, {0x2e, 0xda, 0x91, 0x00}}}, - {{{ 6, -6, -31}, 0, { 0, 0}, {0xb4, 0xe5, 0x9f, 0x00}}}, - {{{ 6, -6, 49}, 0, { 0, 0}, {0xb3, 0xe7, 0x60, 0x00}}}, - {{{ -14, 8, 8}, 0, { 0, 0}, {0x82, 0x06, 0xff, 0x00}}}, - {{{ 81, 3, 9}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, -}; - -// 0x0400E918 - 0x0400E9C8 -const Gfx mario_left_leg_shared_dl[] = { - gsSPVertex(mario_left_leg_shared_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), - gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), - gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), - gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), - gsSP2Triangles( 3, 10, 9, 0x0, 5, 11, 7, 0x0), - gsSP2Triangles( 7, 11, 1, 0x0, 1, 11, 2, 0x0), - gsSP2Triangles( 2, 11, 4, 0x0, 4, 11, 5, 0x0), - gsSP2Triangles( 9, 10, 0, 0x0, 0, 10, 8, 0x0), - gsSP2Triangles( 8, 10, 6, 0x0, 6, 10, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400E9C8 -static const Vtx mario_left_foot_shared_dl_vertex_group1[] = { - {{{ 110, 9, 35}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 110, 8, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 76, 20, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 78, 21, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -12, 53, -32}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -11, 54, 53}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -39, 64, -8}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -41, 65, 26}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, - {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, - {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, - {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, - {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, - {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, - {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, - {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, -}; - -// 0x0400EAC8 -static const Vtx mario_left_foot_shared_dl_vertex_group2[] = { - {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, - {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, - {{{ 110, 8, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, - {{{ 80, -31, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, - {{{ 110, 9, 35}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, - {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, - {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, - {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, - {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, - {{{ -41, 65, 26}, 0, { 0, 0}, {0x90, 0x17, 0x35, 0x00}}}, - {{{ -39, 64, -8}, 0, { 0, 0}, {0x93, 0x16, 0xc4, 0x00}}}, - {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, - {{{ -54, 15, 8}, 0, { 0, 0}, {0x88, 0xd8, 0xfd, 0x00}}}, - {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, - {{{ 27, -35, 11}, 0, { 0, 0}, {0xdb, 0x87, 0xfc, 0x00}}}, -}; - -// 0x0400EBB8 - 0x0400ECA0 -const Gfx mario_left_foot_shared_dl[] = { - gsSPVertex(mario_left_foot_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), - gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(14, 8, 10, 0x0, 11, 13, 15, 0x0), - gsSPVertex(mario_left_foot_shared_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), - gsSP2Triangles( 2, 3, 0, 0x0, 4, 5, 6, 0x0), - gsSP2Triangles( 6, 3, 4, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSP2Triangles(12, 9, 10, 0x0, 9, 12, 7, 0x0), - gsSP2Triangles(14, 0, 3, 0x0, 11, 0, 14, 0x0), - gsSP2Triangles( 3, 6, 14, 0x0, 14, 6, 7, 0x0), - gsSP2Triangles(14, 7, 12, 0x0, 12, 11, 14, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400ECA0 - 0x0400ECC0 -const Gfx mario_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_left_foot_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0400ECC0 -static const Vtx mario_right_thigh_shared_dl_vertex_group1[] = { - {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, - {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, - {{{ 22, -54, -9}, 0, { 0, 0}, {0xf2, 0x82, 0xfd, 0x00}}}, - {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, - {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, - {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, - {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, - {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, - {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, - {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, - {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, - {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, - {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, - {{{ 116, 11, -9}, 0, { 0, 0}, {0x7e, 0x0b, 0xfe, 0x00}}}, - {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, -}; - -// 0x0400EDC0 -static const Vtx mario_right_thigh_shared_dl_vertex_group2[] = { - {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, - {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 0, -14, 31}, 0, { 0, 0}, {0xa0, 0xdf, 0x4b, 0x00}}}, - {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, - {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, - {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, - {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, - {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, - {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, - {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, - {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, - {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, - {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, - {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, - {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, -}; - -// 0x0400EEB0 - 0x0400EFB8 -const Gfx mario_right_thigh_shared_dl[] = { - gsSPVertex(mario_right_thigh_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 3, 5, 4, 0x0, 6, 7, 5, 0x0), - gsSP2Triangles( 0, 2, 7, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles( 1, 8, 2, 0x0, 2, 8, 7, 0x0), - gsSP2Triangles( 7, 11, 5, 0x0, 5, 11, 4, 0x0), - gsSP2Triangles( 4, 12, 1, 0x0, 13, 14, 0, 0x0), - gsSP2Triangles( 0, 14, 15, 0x0, 15, 14, 3, 0x0), - gsSP2Triangles( 3, 14, 6, 0x0, 6, 14, 13, 0x0), - gsSP2Triangles(10, 9, 11, 0x0, 11, 9, 12, 0x0), - gsSPVertex(mario_right_thigh_shared_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 6, 0x0), - gsSP2Triangles( 7, 8, 5, 0x0, 3, 8, 7, 0x0), - gsSP2Triangles( 4, 2, 3, 0x0, 7, 9, 10, 0x0), - gsSP2Triangles(11, 9, 7, 0x0, 12, 11, 13, 0x0), - gsSP2Triangles( 4, 14, 12, 0x0, 10, 14, 4, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400EFB8 - 0x0400EFD8 -const Gfx mario_right_thigh[] = { - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_right_thigh_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0400EFD8 -static const Vtx mario_right_leg_shared_dl_vertex_group1[] = { - {{{ 63, -45, -12}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, - {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, - {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, - {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, - {{{ 69, 45, 18}, 0, { 0, 0}, {0xfc, 0x22, 0x7a, 0x00}}}, - {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, - {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, - {{{ 69, 46, -37}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, - {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, - {{{ 69, 46, -37}, 0, { 0, 0}, {0xf7, 0x27, 0x88, 0x00}}}, - {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, - {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, - {{{ 63, -45, -12}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, - {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, - {{{ -13, 10, -9}, 0, { 0, 0}, {0x82, 0x08, 0x02, 0x00}}}, - {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, -}; - -// 0x0400F0D8 -static const Vtx mario_right_leg_shared_dl_vertex_group2[] = { - {{{ 65, -9, -56}, 0, { 0, 0}, {0x75, 0xee, 0xd5, 0x00}}}, - {{{ 83, 4, -10}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 63, -45, -12}, 0, { 0, 0}, {0x75, 0xd1, 0xfd, 0x00}}}, - {{{ 66, -11, 34}, 0, { 0, 0}, {0x77, 0xec, 0x26, 0x00}}}, - {{{ 69, 45, 18}, 0, { 0, 0}, {0x7a, 0x18, 0x17, 0x00}}}, - {{{ 69, 46, -37}, 0, { 0, 0}, {0x79, 0x19, 0xe6, 0x00}}}, - {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, - {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, - {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, - {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, - {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, - {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, - {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, - {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, - {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, - {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, -}; - -// 0x0400F1D8 - 0x0400F290 -const Gfx mario_right_leg_shared_dl[] = { - gsSPVertex(mario_right_leg_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 8, 0x0), - gsSP2Triangles(11, 12, 2, 0x0, 13, 14, 2, 0x0), - gsSP2Triangles( 2, 14, 15, 0x0, 15, 14, 8, 0x0), - gsSP2Triangles( 8, 14, 5, 0x0, 5, 14, 13, 0x0), - gsSPVertex(mario_right_leg_shared_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), - gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 7, 10, 0x0, 10, 11, 12, 0x0), - gsSP2Triangles(11, 13, 14, 0x0, 15, 13, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400F290 -static const Vtx mario_right_foot_dl_vertex_group1[] = { - {{{ 27, -35, -11}, 0, { 0, 0}, {0xdc, 0x87, 0x06, 0x00}}}, - {{{ -36, 11, 19}, 0, { 0, 0}, {0xb5, 0xd3, 0x5b, 0x00}}}, - {{{ -54, 14, -10}, 0, { 0, 0}, {0x89, 0xd6, 0x03, 0x00}}}, - {{{ -34, 11, -46}, 0, { 0, 0}, {0xb4, 0xd0, 0xa8, 0x00}}}, - {{{ 43, -18, -55}, 0, { 0, 0}, {0x0a, 0xb2, 0x9d, 0x00}}}, - {{{ 80, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, - {{{ 44, -11, 32}, 0, { 0, 0}, {0x01, 0xb8, 0x68, 0x00}}}, - {{{ -42, 64, -29}, 0, { 0, 0}, {0x90, 0x14, 0xc9, 0x00}}}, - {{{ -40, 63, 5}, 0, { 0, 0}, {0x92, 0x15, 0x3b, 0x00}}}, - {{{ -14, 54, 29}, 0, { 0, 0}, {0xd5, 0xfe, 0x77, 0x00}}}, - {{{ -11, 53, -56}, 0, { 0, 0}, {0xda, 0xfe, 0x87, 0x00}}}, - {{{ 110, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, - {{{ 78, 22, -61}, 0, { 0, 0}, {0x17, 0xd9, 0x8a, 0x00}}}, - {{{ 109, 11, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, - {{{ 75, 23, 40}, 0, { 0, 0}, {0x0b, 0xda, 0x78, 0x00}}}, -}; - -// 0x0400F380 -static const Vtx mario_right_foot_dl_vertex_group2[] = { - {{{ -42, 64, -29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -40, 63, 5}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -11, 53, -56}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -14, 54, 29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 78, 22, -61}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 75, 23, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 110, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 109, 11, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, -}; - -// 0x0400F400 - 0x0400F4E8 -const Gfx mario_right_foot_dl[] = { - gsSPVertex(mario_right_foot_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), - gsSP2Triangles( 0, 6, 1, 0x0, 5, 6, 0, 0x0), - gsSP2Triangles( 3, 2, 7, 0x0, 8, 7, 2, 0x0), - gsSP2Triangles( 1, 9, 8, 0x0, 2, 1, 8, 0x0), - gsSP2Triangles( 7, 10, 3, 0x0, 11, 5, 4, 0x0), - gsSP2Triangles( 4, 12, 11, 0x0, 6, 5, 13, 0x0), - gsSP2Triangles(11, 13, 5, 0x0, 13, 14, 6, 0x0), - gsSP2Triangles(14, 9, 6, 0x0, 10, 4, 3, 0x0), - gsSP2Triangles( 9, 1, 6, 0x0, 10, 12, 4, 0x0), - gsSPVertex(mario_right_foot_dl_vertex_group2, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 3, 4, 2, 0x0, 3, 5, 4, 0x0), - gsSP2Triangles( 5, 6, 4, 0x0, 5, 7, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400F4E8 - 0x0400F528 -const Gfx mario_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_right_foot_dl), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x0400F528 - 0x0400F568 -const Gfx mario_metal_right_foot[] = { - gsSPDisplayList(mario_right_foot_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x0400F568 -static const Vtx mario_yellow_button_dl_vertex[] = { - {{{ 9, 89, 41}, 0, { 180, 962}, {0x14, 0x78, 0x23, 0xff}}}, - {{{ 3, 77, 62}, 0, { 682, 966}, {0x04, 0x6a, 0x44, 0xff}}}, - {{{ 47, 75, 35}, 0, { 34, 106}, {0x39, 0x6a, 0x26, 0xff}}}, - {{{ 28, 85, 30}, 0, { -60, 572}, {0x2c, 0x76, 0x08, 0xff}}}, - {{{ 17, 66, 76}, 0, { 966, 590}, {0x19, 0x58, 0x57, 0xff}}}, - {{{ 32, 62, 74}, 0, { 902, 252}, {0x29, 0x53, 0x56, 0xff}}}, - {{{ 48, 64, 59}, 0, { 548, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, - {{{ 9, 89, -40}, 0, { 776, 920}, {0x10, 0x7b, 0xe7, 0xff}}}, - {{{ 28, 85, -29}, 0, { 990, 512}, {0x2d, 0x75, 0xf2, 0xff}}}, - {{{ 47, 75, -34}, 0, { 850, 72}, {0x3e, 0x6a, 0xe2, 0xff}}}, - {{{ 3, 77, -61}, 0, { 264, 972}, {0x03, 0x6a, 0xbb, 0xff}}}, - {{{ 48, 64, -58}, 0, { 312, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, - {{{ 32, 62, -73}, 0, { -24, 310}, {0x29, 0x52, 0xa9, 0xff}}}, - {{{ 17, 66, -75}, 0, { -58, 642}, {0x17, 0x58, 0xa8, 0xff}}}, -}; - -// 0x0400F648 -static const Vtx mario_tshirt_shared_dl_vertex_group1[] = { - {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, - {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, - {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, - {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, - {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, - {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, - {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, - {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, - {{{ 46, -34, -83}, 0, { 0, 0}, {0x24, 0xc8, 0x95, 0xff}}}, - {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, - {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, - {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, - {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, - {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, - {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, - {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, -}; - -// 0x0400F748 -static const Vtx mario_tshirt_shared_dl_vertex_group2[] = { - {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, - {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, - {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, - {{{ 47, 3, 89}, 0, { 0, 0}, {0x30, 0x08, 0x75, 0xff}}}, - {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, - {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, - {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, - {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, - {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, - {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, - {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, - {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, - {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, - {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, -}; - -// 0x0400F828 -static const Vtx mario_tshirt_shared_dl_vertex_group3[] = { - {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, - {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, - {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, - {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, - {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, -}; - -// 0x0400F878 -static const Vtx mario_pants_overalls_shared_dl_vertex_group1[] = { - {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, - {{{ 28, 85, 30}, 0, { 0, 0}, {0x2c, 0x76, 0x08, 0xff}}}, - {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, - {{{ 28, 85, -29}, 0, { 0, 0}, {0x2d, 0x75, 0xf2, 0xff}}}, - {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, - {{{ 9, 89, -40}, 0, { 0, 0}, {0x10, 0x7b, 0xe7, 0xff}}}, - {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, - {{{ -15, 87, -35}, 0, { 0, 0}, {0xea, 0x76, 0xda, 0xff}}}, - {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, - {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, - {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, - {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, - {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, - {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, - {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, -}; - -// 0x0400F968 -static const Vtx mario_pants_overalls_shared_dl_vertex_group2[] = { - {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, - {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, - {{{ 48, 64, -58}, 0, { 0, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, - {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, - {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, - {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, - {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, - {{{ 48, 64, 59}, 0, { 0, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, - {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, - {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, - {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, - {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, - {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, - {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, - {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, - {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, -}; - -// 0x0400FA68 -static const Vtx mario_pants_overalls_shared_dl_vertex_group3[] = { - {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, - {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, - {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, - {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, - {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, - {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, - {{{ -27, -25, -86}, 0, { 0, 0}, {0xcb, 0xd5, 0x96, 0xff}}}, - {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, - {{{ -29, -58, -59}, 0, { 0, 0}, {0xc9, 0x9a, 0xcf, 0xff}}}, - {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, - {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, - {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, - {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, - {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, - {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, - {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, -}; - -// 0x0400FB68 -static const Vtx mario_pants_overalls_shared_dl_vertex_group4[] = { - {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, - {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, - {{{ -29, -58, 59}, 0, { 0, 0}, {0xc8, 0x99, 0x30, 0xff}}}, - {{{ -27, -25, 87}, 0, { 0, 0}, {0xcb, 0xd3, 0x69, 0xff}}}, - {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, - {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, - {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, - {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, - {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, - {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, - {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, - {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, - {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, - {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, - {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, - {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, -}; - -// 0x0400FC68 -static const Vtx mario_pants_overalls_shared_dl_vertex_group5[] = { - {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, - {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, - {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, - {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, - {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, - {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, - {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, - {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, - {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, - {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, - {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, - {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, - {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, - {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, -}; - -// 0x0400FD48 -static const Vtx mario_pants_overalls_shared_dl_vertex_group6[] = { - {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, - {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, - {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, - {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, - {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, - {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, - {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, - {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, - {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, - {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, - {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, - {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, - {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, - {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, - {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, -}; - -// 0x0400FE38 -static const Vtx mario_pants_overalls_shared_dl_vertex_group7[] = { - {{{ 17, 66, -75}, 0, { 0, 0}, {0x17, 0x58, 0xa8, 0xff}}}, - {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, - {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, - {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, - {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, - {{{ 17, 66, 76}, 0, { 0, 0}, {0x19, 0x58, 0x57, 0xff}}}, - {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, - {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, - {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, - {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, - {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, - {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, - {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, - {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, - {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, -}; - -// 0x0400FF28 - 0x0400FF88 -const Gfx mario_yellow_button_dl[] = { - gsSPVertex(mario_yellow_button_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 1, 4, 2, 0x0, 5, 6, 2, 0x0), - gsSP2Triangles( 4, 5, 2, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 7, 9, 0x0, 9, 11, 12, 0x0), - gsSP2Triangles(12, 13, 9, 0x0, 13, 10, 9, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0400FF88 - 0x04010260 -const Gfx mario_pants_overalls_shared_dl[] = { - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 1, 5, 0x0, 1, 3, 5, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSP2Triangles( 7, 5, 8, 0x0, 9, 6, 7, 0x0), - gsSP2Triangles( 7, 8, 10, 0x0, 10, 11, 7, 0x0), - gsSP2Triangles( 9, 7, 11, 0x0, 12, 6, 13, 0x0), - gsSP2Triangles( 9, 13, 6, 0x0, 6, 12, 14, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles( 7, 10, 11, 0x0, 11, 8, 7, 0x0), - gsSP2Triangles(12, 8, 11, 0x0, 13, 0, 2, 0x0), - gsSP2Triangles( 2, 1, 14, 0x0, 2, 15, 13, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 3, 6, 7, 0x0, 3, 8, 6, 0x0), - gsSP2Triangles( 5, 9, 3, 0x0, 8, 3, 9, 0x0), - gsSP2Triangles( 6, 8, 10, 0x0, 11, 10, 8, 0x0), - gsSP2Triangles( 9, 11, 8, 0x0, 6, 12, 7, 0x0), - gsSP2Triangles(12, 6, 10, 0x0, 7, 12, 13, 0x0), - gsSP2Triangles(14, 5, 15, 0x0, 14, 9, 5, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 1, 4, 3, 0x0, 5, 4, 6, 0x0), - gsSP2Triangles( 4, 5, 3, 0x0, 2, 3, 7, 0x0), - gsSP2Triangles( 7, 3, 5, 0x0, 8, 2, 7, 0x0), - gsSP2Triangles( 2, 8, 0, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 11, 10, 0x0, 11, 7, 13, 0x0), - gsSP1Triangle(14, 15, 11, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group5, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), - gsSP2Triangles( 2, 5, 0, 0x0, 6, 0, 7, 0x0), - gsSP2Triangles( 4, 3, 8, 0x0, 9, 7, 4, 0x0), - gsSP2Triangles( 7, 10, 11, 0x0, 11, 6, 7, 0x0), - gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), - gsSP1Triangle( 7, 9, 10, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group6, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0), - gsSP2Triangles(14, 12, 13, 0x0, 11, 10, 9, 0x0), - gsSPVertex(mario_pants_overalls_shared_dl_vertex_group7, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 7, 9, 0x0, 9, 8, 5, 0x0), - gsSP2Triangles( 5, 8, 6, 0x0, 11, 1, 0, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 6, 14, 4, 0x0), - gsSP1Triangle(11, 0, 12, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04010260 - 0x04010348 -const Gfx mario_tshirt_shared_dl[] = { - gsSPVertex(mario_tshirt_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), - gsSP2Triangles( 6, 8, 10, 0x0, 11, 8, 12, 0x0), - gsSP2Triangles(12, 8, 7, 0x0, 8, 11, 10, 0x0), - gsSP1Triangle(13, 14, 15, 0x0), - gsSPVertex(mario_tshirt_shared_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), - gsSP2Triangles( 6, 2, 3, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 7, 9, 10, 0x0, 11, 10, 9, 0x0), - gsSP2Triangles(12, 3, 4, 0x0, 13, 3, 12, 0x0), - gsSP1Triangle( 6, 3, 13, 0x0), - gsSPVertex(mario_tshirt_shared_dl_vertex_group3, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP1Triangle( 1, 4, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04010348 - 0x04010370 -const Gfx mario_torso_dl[] = { - gsSPDisplayList(mario_pants_overalls_shared_dl), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04010370 - 0x040103F0 -const Gfx mario_torso[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_yellow_button_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_torso_dl), - gsSPEndDisplayList(), -}; - -// 0x040103F0 - 0x04010410 -const Gfx mario_metal_torso_shared_dl[] = { - gsSPDisplayList(mario_yellow_button_dl), - gsSPDisplayList(mario_pants_overalls_shared_dl), - gsSPDisplayList(mario_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04010410 -static const Vtx mario_m_logo_dl_vertex[] = { - {{{ 195, 93, 32}, 0, { 744, 732}, {0x51, 0x54, 0x30, 0xff}}}, - {{{ 153, 33, 95}, 0, { 1250, 1066}, {0x04, 0x46, 0x69, 0xff}}}, - {{{ 252, 62, 70}, 0, { 1032, 152}, {0x39, 0x4a, 0x55, 0xff}}}, - {{{ 272, 85, 0}, 0, { 472, -16}, {0x5f, 0x54, 0x00, 0xff}}}, - {{{ 252, 62, -69}, 0, { -78, 158}, {0x39, 0x4a, 0xab, 0xff}}}, - {{{ 195, 93, -31}, 0, { 232, 736}, {0x51, 0x54, 0xcf, 0xff}}}, - {{{ 153, 33, -94}, 0, { -258, 1076}, {0x03, 0x46, 0x97, 0xff}}}, -}; - -// 0x04010480 -static const Vtx mario_eyes_cap_on_dl_vertex[] = { - {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, - {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, - {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 175, 91, -38}, 0, { 106, 130}, {0xc6, 0x6d, 0xe7, 0xff}}}, - {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, - {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, - {{{ 175, 91, 39}, 0, { 842, 112}, {0xc6, 0x6d, 0x19, 0xff}}}, - {{{ 153, 33, -94}, 0, { -404, 342}, {0x03, 0x46, 0x97, 0xff}}}, - {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, - {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, - {{{ 153, 33, 95}, 0, { 1362, 296}, {0x04, 0x46, 0x69, 0xff}}}, -}; - -// 0x04010540 -static const Vtx mario_hair_sideburn_cap_on_dl_vertex[] = { - {{{ 120, -12, -109}, 0, { 916, 184}, {0xed, 0x24, 0x88, 0xff}}}, - {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, - {{{ 153, 33, -94}, 0, { 90, -58}, {0x03, 0x46, 0x97, 0xff}}}, - {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, - {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, - {{{ 120, -11, 111}, 0, { 922, 122}, {0xed, 0x24, 0x78, 0xff}}}, - {{{ 153, 33, 95}, 0, { 22, -68}, {0x04, 0x46, 0x69, 0xff}}}, -}; - -// 0x04010600 -static const Vtx mario_mustache_cap_on_dl_vertex_group1[] = { - {{{ 77, 108, 34}, 0, { 342, 368}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 92, 88, 84}, 0, { 898, -18}, {0x23, 0x59, 0x53, 0xff}}}, - {{{ 97, 103, 25}, 0, { 224, 146}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 48, 94, 76}, 0, { 888, 564}, {0xd7, 0x60, 0x47, 0xff}}}, - {{{ 52, 111, 31}, 0, { 354, 690}, {0xa8, 0x33, 0x4b, 0xff}}}, - {{{ 27, 100, 30}, 0, { 442, 982}, {0xb1, 0x60, 0x16, 0xff}}}, - {{{ 41, 109, 0}, 0, { 70, 924}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 44, 44, 97}, 0, { 1296, 438}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 3, 54, 52}, 0, { 892, 1090}, {0x95, 0x1d, 0x3c, 0xff}}}, - {{{ 52, 111, -30}, 0, { 340, 684}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, - {{{ 27, 100, -29}, 0, { 394, 998}, {0xb1, 0x60, 0xea, 0xff}}}, - {{{ 3, 54, -51}, 0, { 806, 1162}, {0x95, 0x1d, 0xc4, 0xff}}}, - {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 41, 109, 0}, 0, { 50, 900}, {0x95, 0x44, 0x00, 0xff}}}, -}; - -// 0x04010700 -static const Vtx mario_mustache_cap_on_dl_vertex_group2[] = { - {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, - {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 92, 88, -83}, 0, { 922, -4}, {0x23, 0x59, 0xad, 0xff}}}, - {{{ 97, 103, -24}, 0, { 274, 100}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, -}; - -// 0x04010750 -static const Vtx mario_face_cap_dl_vertex_group1[] = { - {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, - {{{ 122, -139, -48}, 0, { 0, 0}, {0x28, 0x94, 0xcd, 0xff}}}, - {{{ 131, -56, -123}, 0, { 0, 0}, {0xde, 0xd4, 0x8f, 0xff}}}, - {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, - {{{ 77, -138, -50}, 0, { 0, 0}, {0xbc, 0x9e, 0xd8, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, - {{{ 122, -139, 49}, 0, { 0, 0}, {0x2d, 0x8f, 0x22, 0xff}}}, - {{{ 77, -138, 51}, 0, { 0, 0}, {0xc1, 0xa4, 0x3c, 0xff}}}, - {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, - {{{ 131, -56, 124}, 0, { 0, 0}, {0xdf, 0xd3, 0x71, 0xff}}}, - {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, - {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, -}; - -// 0x04010850 -static const Vtx mario_face_cap_dl_vertex_group2[] = { - {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, - {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, - {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, - {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, - {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, - {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, - {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, - {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, - {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, - {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, - {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, - {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, - {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, -}; - -// 0x04010940 -static const Vtx mario_face_cap_dl_vertex_group3[] = { - {{{ 195, 93, 32}, 0, { 0, 0}, {0x51, 0x54, 0x30, 0xff}}}, - {{{ 173, 132, 66}, 0, { 0, 0}, {0xda, 0x5a, 0x50, 0xff}}}, - {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, - {{{ 175, 91, 39}, 0, { 0, 0}, {0xc6, 0x6d, 0x19, 0xff}}}, - {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, - {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, - {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, - {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, - {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, - {{{ 272, 85, 0}, 0, { 0, 0}, {0x5f, 0x54, 0x00, 0xff}}}, - {{{ 182, 155, 0}, 0, { 0, 0}, {0xed, 0x7d, 0x00, 0xff}}}, - {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, - {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, - {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, - {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, -}; - -// 0x04010A30 -static const Vtx mario_face_part_cap_on_dl_vertex_group1[] = { - {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, - {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, - {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, - {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, - {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, - {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, -}; - -// 0x04010B20 -static const Vtx mario_face_part_cap_on_dl_vertex_group2[] = { - {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, - {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, - {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, - {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, - {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, - {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, -}; - -// 0x04010C20 -static const Vtx mario_face_part_cap_on_dl_vertex_group3[] = { - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, - {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, - {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, - {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, -}; - -// 0x04010D10 -static const Vtx mario_face_part_cap_on_dl_vertex_group4[] = { - {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, - {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, - {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, - {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, - {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, - {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, - {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, - {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, - {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, - {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, - {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, - {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, -}; - -// 0x04010E10 -static const Vtx mario_face_part_cap_on_dl_vertex_group5[] = { - {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, - {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, - {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, - {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, - {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, - {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, - {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, - {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, - {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, -}; - -// 0x04010F00 -static const Vtx mario_face_part_cap_on_dl_vertex_group6[] = { - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, - {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, - {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, - {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, - {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, - {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, - {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, - {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, - {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, -}; - -// 0x04011000 -static const Vtx mario_face_part_cap_on_dl_vertex_group7[] = { - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, - {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, - {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, - {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, - {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, - {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, -}; - -// 0x040110D0 -static const Vtx mario_face_back_hair_cap_on_dl_vertex_group1[] = { - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, - {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, - {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, - {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, - {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, - {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, - {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, -}; - -// 0x040111D0 -static const Vtx mario_face_back_hair_cap_on_dl_vertex_group2[] = { - {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, - {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, - {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, - {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, - {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, - {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, -}; - -// 0x040112B0 - 0x040112E8 -const Gfx mario_m_logo_dl[] = { - gsSPVertex(mario_m_logo_dl_vertex, 7, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 2, 3, 0, 0x0, 3, 5, 0, 0x0), - gsSP1Triangle( 4, 6, 5, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040112E8 - 0x04011350 -const Gfx mario_eyes_cap_on_dl[] = { - gsSPVertex(mario_eyes_cap_on_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 3, 0, 4, 0x0, 6, 3, 5, 0x0), - gsSP2Triangles( 3, 1, 0, 0x0, 4, 0, 7, 0x0), - gsSP2Triangles( 5, 4, 8, 0x0, 2, 9, 10, 0x0), - gsSP2Triangles(10, 7, 2, 0x0, 11, 7, 10, 0x0), - gsSP1Triangle( 7, 0, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04011350 - 0x040113A0 -const Gfx mario_hair_sideburn_cap_on_dl[] = { - gsSPVertex(mario_hair_sideburn_cap_on_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 4, 5, 1, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), - gsSP2Triangles( 9, 10, 6, 0x0, 11, 6, 10, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040113A0 - 0x04011438 -const Gfx mario_mustache_cap_on_dl[] = { - gsSPVertex(mario_mustache_cap_on_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), - gsSP2Triangles( 0, 4, 3, 0x0, 5, 3, 4, 0x0), - gsSP2Triangles( 5, 4, 6, 0x0, 7, 3, 8, 0x0), - gsSP2Triangles( 8, 3, 5, 0x0, 3, 7, 1, 0x0), - gsSP2Triangles( 9, 10, 11, 0x0, 12, 10, 13, 0x0), - gsSP2Triangles(11, 10, 12, 0x0, 10, 9, 14, 0x0), - gsSP1Triangle(15, 9, 11, 0x0), - gsSPVertex(mario_mustache_cap_on_dl_vertex_group2, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP1Triangle( 2, 4, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04011438 - 0x040116F8 -const Gfx mario_face_part_cap_on_dl[] = { - gsSPVertex(mario_face_part_cap_on_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 4, 2, 0x0, 1, 5, 3, 0x0), - gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), - gsSP2Triangles( 6, 3, 5, 0x0, 4, 7, 8, 0x0), - gsSP2Triangles( 9, 4, 8, 0x0, 10, 6, 5, 0x0), - gsSP2Triangles(10, 5, 11, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 5, 6, 8, 0x0), - gsSP2Triangles( 3, 8, 7, 0x0, 9, 3, 7, 0x0), - gsSP2Triangles( 3, 9, 4, 0x0, 10, 11, 12, 0x0), - gsSP2Triangles( 0, 10, 1, 0x0, 10, 0, 11, 0x0), - gsSP2Triangles(11, 0, 2, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 3, 0, 7, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 11, 9, 8, 0x0), - gsSP2Triangles(12, 13, 8, 0x0, 8, 13, 11, 0x0), - gsSP1Triangle( 9, 11, 14, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), - gsSP2Triangles( 5, 2, 4, 0x0, 2, 6, 3, 0x0), - gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 3, 0x0), - gsSP2Triangles( 9, 4, 3, 0x0, 7, 10, 3, 0x0), - gsSP2Triangles( 3, 10, 8, 0x0, 11, 4, 9, 0x0), - gsSP2Triangles(12, 11, 9, 0x0, 13, 9, 8, 0x0), - gsSP2Triangles( 9, 13, 12, 0x0, 4, 11, 5, 0x0), - gsSP1Triangle(14, 15, 11, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group5, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 1, 5, 6, 0x0, 1, 3, 5, 0x0), - gsSP2Triangles( 2, 1, 6, 0x0, 2, 6, 7, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 6, 5, 11, 0x0), - gsSP2Triangles(12, 13, 8, 0x0, 10, 12, 8, 0x0), - gsSP1Triangle(14, 8, 13, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group6, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 6, 5, 8, 0x0), - gsSP2Triangles( 5, 7, 3, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 6, 12, 7, 0x0, 13, 10, 9, 0x0), - gsSP2Triangles(14, 13, 9, 0x0, 15, 10, 13, 0x0), - gsSPVertex(mario_face_part_cap_on_dl_vertex_group7, 13, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 1, 5, 3, 0x0, 2, 1, 4, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), - gsSP2Triangles( 7, 9, 3, 0x0, 5, 7, 3, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 12, 6, 10, 0x0), - gsSP1Triangle(12, 8, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040116F8 - 0x04011870 -const Gfx mario_face_cap_dl[] = { - gsSPVertex(mario_face_cap_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), - gsSP2Triangles( 4, 2, 5, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 2, 1, 6, 0x0, 6, 7, 2, 0x0), - gsSP2Triangles( 5, 2, 7, 0x0, 6, 1, 8, 0x0), - gsSP2Triangles( 8, 1, 0, 0x0, 6, 8, 9, 0x0), - gsSP2Triangles(10, 7, 6, 0x0, 9, 10, 6, 0x0), - gsSP2Triangles(11, 10, 9, 0x0, 9, 8, 11, 0x0), - gsSP2Triangles(11, 8, 12, 0x0, 0, 12, 8, 0x0), - gsSP2Triangles(13, 10, 11, 0x0, 11, 12, 14, 0x0), - gsSP2Triangles(15, 11, 14, 0x0, 13, 11, 15, 0x0), - gsSPVertex(mario_face_cap_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 4, 5, 0, 0x0, 0, 6, 1, 0x0), - gsSP2Triangles( 7, 1, 8, 0x0, 8, 1, 6, 0x0), - gsSP2Triangles( 9, 10, 11, 0x0, 9, 12, 10, 0x0), - gsSP2Triangles(12, 9, 13, 0x0, 13, 9, 14, 0x0), - gsSPVertex(mario_face_cap_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSP2Triangles( 8, 9, 5, 0x0, 0, 10, 1, 0x0), - gsSP2Triangles( 1, 10, 3, 0x0, 11, 10, 0, 0x0), - gsSP2Triangles(12, 3, 10, 0x0, 12, 10, 13, 0x0), - gsSP2Triangles(13, 10, 11, 0x0, 5, 9, 7, 0x0), - gsSP1Triangle( 7, 9, 14, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04011870 - 0x04011960 -const Gfx mario_face_back_hair_cap_on_dl[] = { - gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 5, 8, 6, 0x0), - gsSP2Triangles( 5, 4, 8, 0x0, 7, 3, 5, 0x0), - gsSP2Triangles( 0, 2, 6, 0x0, 6, 9, 7, 0x0), - gsSP2Triangles( 0, 6, 8, 0x0, 3, 7, 10, 0x0), - gsSP2Triangles( 1, 11, 12, 0x0, 12, 13, 14, 0x0), - gsSP2Triangles(11, 13, 12, 0x0, 1, 12, 2, 0x0), - gsSP2Triangles(14, 2, 12, 0x0, 15, 14, 13, 0x0), - gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 2, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles( 2, 1, 11, 0x0, 2, 11, 7, 0x0), - gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), - gsSP1Triangle( 8, 12, 9, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04011960 - 0x040119A0 -const Gfx mario_face_cap_on_dl[] = { - gsSPDisplayList(mario_face_part_cap_on_dl), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_face_cap_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_face_back_hair_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x040119A0 - 0x04011A90 -const Gfx mario_cap_on_eyes_front[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011A90 - 0x04011B80 -const Gfx mario_cap_on_eyes_half_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011B80 - 0x04011C70 -const Gfx mario_cap_on_eyes_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011C70 - 0x04011D60 -const Gfx mario_cap_on_eyes_right[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011D60 - 0x04011E50 -const Gfx mario_cap_on_eyes_left[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011E50 - 0x04011F40 -const Gfx mario_cap_on_eyes_up[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04011F40 - 0x04012030 -const Gfx mario_cap_on_eyes_down[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04012030 - 0x04012120 -const Gfx mario_cap_on_eyes_dead[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04012120 - 0x04012160 -const Gfx mario_metal_cap_on_shared_dl[] = { - gsSPDisplayList(mario_m_logo_dl), - gsSPDisplayList(mario_eyes_cap_on_dl), - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), - gsSPDisplayList(mario_mustache_cap_on_dl), - gsSPDisplayList(mario_face_part_cap_on_dl), - gsSPDisplayList(mario_face_cap_dl), - gsSPDisplayList(mario_face_back_hair_cap_on_dl), - gsSPEndDisplayList(), -}; - -// Unreferenced light group -UNUSED static const Lights1 mario_lights_unused1 = gdSPDefLights1( - 0x3f, 0x30, 0x1e, - 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 -); - -// Unreferenced light group -UNUSED static const Lights1 mario_lights_unused2 = gdSPDefLights1( - 0x1c, 0x01, 0x00, - 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 -); - -// 0x04012190 -static const Vtx mario_eyes_cap_off_dl_vertex[] = { - {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, - {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, - {{{ 153, 33, 95}, 0, { 1362, 296}, {0x05, 0x38, 0x71, 0xff}}}, - {{{ 175, 91, 39}, 0, { 842, 112}, {0x01, 0x75, 0x2f, 0xff}}}, - {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, - {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, - {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 175, 91, -38}, 0, { 106, 130}, {0xf5, 0x73, 0xcc, 0xff}}}, - {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, - {{{ 153, 33, -94}, 0, { -404, 342}, {0xfe, 0x36, 0x8e, 0xff}}}, - {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, -}; - -// 0x04012250 -static const Vtx mario_hair_sideburn_cap_off_dl_vertex[] = { - {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, - {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 153, 33, 95}, 0, { 22, -68}, {0x05, 0x38, 0x71, 0xff}}}, - {{{ 120, -11, 111}, 0, { 922, 122}, {0xff, 0x13, 0x7d, 0xff}}}, - {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, - {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, - {{{ 120, -12, -109}, 0, { 916, 184}, {0xff, 0x13, 0x83, 0xff}}}, - {{{ 153, 33, -94}, 0, { 90, -58}, {0xfe, 0x36, 0x8e, 0xff}}}, -}; - -// 0x04012310 -static const Vtx mario_mustache_cap_off_dl_vertex_group1[] = { - {{{ 92, 88, -83}, 0, { 992, -10}, {0x23, 0x59, 0xad, 0xff}}}, - {{{ 77, 108, -33}, 0, { 360, 296}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 97, 103, -24}, 0, { 298, 20}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, - {{{ 44, 44, -96}, 0, { 1272, 592}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 92, 88, 84}, 0, { 948, -8}, {0x23, 0x59, 0x53, 0xff}}}, - {{{ 77, 108, 34}, 0, { 330, 316}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 48, 94, 76}, 0, { 848, 630}, {0xd7, 0x60, 0x47, 0xff}}}, - {{{ 97, 103, 25}, 0, { 248, 50}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 52, 111, 31}, 0, { 292, 670}, {0xa8, 0x33, 0x4b, 0xff}}}, - {{{ 44, 44, 97}, 0, { 1276, 566}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 3, 54, 52}, 0, { 768, 1210}, {0x95, 0x1d, 0x3c, 0xff}}}, - {{{ 27, 100, 30}, 0, { 336, 1006}, {0xb1, 0x60, 0x16, 0xff}}}, - {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, - {{{ 41, 109, 0}, 0, { -30, 876}, {0x95, 0x44, 0x00, 0xff}}}, -}; - -// 0x04012410 -static const Vtx mario_mustache_cap_off_dl_vertex_group2[] = { - {{{ 41, 109, 0}, 0, { -38, 852}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 27, 100, -29}, 0, { 310, 1002}, {0xb1, 0x60, 0xea, 0xff}}}, - {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, - {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, -}; - -// 0x04012460 -static const Vtx mario_face_part_cap_off_dl_vertex_group1[] = { - {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, - {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, - {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, - {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, - {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, - {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, - {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, - {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, - {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, - {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, -}; - -// 0x04012550 -static const Vtx mario_face_part_cap_off_dl_vertex_group2[] = { - {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, - {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, - {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, - {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, - {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, - {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, - {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, - {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, -}; - -// 0x04012650 -static const Vtx mario_face_part_cap_off_dl_vertex_group3[] = { - {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, - {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, - {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, - {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, - {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, - {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, - {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, -}; - -// 0x04012740 -static const Vtx mario_face_part_cap_off_dl_vertex_group4[] = { - {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, - {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, - {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, - {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, - {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, - {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, - {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, - {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, - {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, - {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, -}; - -// 0x04012830 -static const Vtx mario_face_part_cap_off_dl_vertex_group5[] = { - {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, - {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, - {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, - {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, - {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, -}; - -// 0x04012930 -static const Vtx mario_face_part_cap_off_dl_vertex_group6[] = { - {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, - {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, - {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, - {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, - {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, - {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, - {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, - {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, - {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, - {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, - {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, -}; - -// 0x04012A30 -static const Vtx mario_face_part_cap_off_dl_vertex_group7[] = { - {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, - {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, - {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, - {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, - {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, - {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, - {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, - {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, - {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, -}; - -// 0x04012B30 -static const Vtx mario_face_part_cap_off_dl_vertex_group8[] = { - {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, - {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, - {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, - {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, - {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, - {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, - {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, - {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, - {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, -}; - -// 0x04012BC0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group1[] = { - {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, - {{{ 200, 70, -97}, 0, { 0, 0}, {0x07, 0x48, 0x99, 0xff}}}, - {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, - {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, - {{{ 200, 75, 84}, 0, { 0, 0}, {0x10, 0x52, 0x5f, 0xff}}}, - {{{ 151, 72, 70}, 0, { 0, 0}, {0xe4, 0x5c, 0x51, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, - {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, - {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, - {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, - {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, - {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, - {{{ 151, 72, -68}, 0, { 0, 0}, {0xd6, 0x5b, 0xb3, 0xff}}}, - {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, - {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, - {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, -}; - -// 0x04012CC0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group2[] = { - {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, - {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, - {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, - {{{ 227, -14, 59}, 0, { 0, 0}, {0x72, 0xec, 0x32, 0xff}}}, - {{{ 241, -34, 0}, 0, { 0, 0}, {0x7a, 0xe0, 0x00, 0xff}}}, - {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, - {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, - {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, - {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, - {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, - {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, - {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, - {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, - {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, - {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, -}; - -// 0x04012DB0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group3[] = { - {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, - {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, - {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, - {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, - {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, - {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, - {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, - {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, - {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, - {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, - {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, - {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, - {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, - {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, - {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, - {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, -}; - -// 0x04012EB0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group4[] = { - {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, - {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, - {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, - {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, - {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, - {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, - {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, - {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, - {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, - {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, - {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, - {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, - {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, - {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, - {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, -}; - -// 0x04012FB0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group5[] = { - {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, - {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, - {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, - {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, - {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, - {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, - {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, - {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, - {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, - {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, - {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, -}; - -// 0x040130B0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group6[] = { - {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, - {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, - {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, - {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, - {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, - {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, - {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, - {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, - {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, -}; - -// 0x040131B0 -static const Vtx mario_face_hair_cap_off_dl_vertex_group7[] = { - {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, - {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, - {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, - {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, - {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, - {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, - {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, - {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, - {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, - {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, - {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, - {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, - {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, -}; - -// 0x04013280 -static const Vtx mario_face_part_cap_off_dl_vertex_group9[] = { - {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, - {{{ 48, 94, 76}, 0, { 0, 0}, {0xd7, 0x60, 0x47, 0xff}}}, - {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, -}; - -// 0x040132B0 - 0x04013318 -const Gfx mario_eyes_cap_off_dl[] = { - gsSPVertex(mario_eyes_cap_off_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 6, 7, 0x0, 8, 6, 4, 0x0), - gsSP2Triangles( 5, 4, 7, 0x0, 7, 9, 5, 0x0), - gsSP2Triangles( 2, 8, 10, 0x0, 1, 6, 8, 0x0), - gsSP2Triangles( 1, 8, 2, 0x0, 6, 11, 7, 0x0), - gsSP1Triangle( 1, 11, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04013318 - 0x040133A8 -const Gfx mario_mustache_cap_off_dl[] = { - gsSPVertex(mario_mustache_cap_off_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 0, 4, 3, 0x0, 3, 5, 1, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 7, 6, 9, 0x0), - gsSP2Triangles( 7, 10, 8, 0x0, 8, 11, 6, 0x0), - gsSP2Triangles(12, 8, 13, 0x0, 13, 8, 10, 0x0), - gsSP2Triangles(14, 3, 4, 0x0, 13, 10, 15, 0x0), - gsSPVertex(mario_mustache_cap_off_dl_vertex_group2, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP1Triangle( 2, 3, 4, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040133A8 - 0x040133F8 -const Gfx mario_hair_sideburn_cap_off_dl[] = { - gsSPVertex(mario_hair_sideburn_cap_off_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 4, 2, 5, 0x0, 1, 5, 2, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), - gsSP2Triangles( 9, 8, 10, 0x0, 10, 8, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040133F8 - 0x040136D0 -const Gfx mario_face_part_cap_off_dl[] = { - gsSPVertex(mario_face_part_cap_off_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 3, 5, 0x0, 3, 6, 7, 0x0), - gsSP2Triangles( 4, 8, 2, 0x0, 8, 4, 9, 0x0), - gsSP2Triangles( 2, 1, 4, 0x0, 6, 5, 10, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 14, 13, 12, 0x0), - gsSP1Triangle(13, 14, 0, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), - gsSP2Triangles(10, 1, 11, 0x0, 1, 12, 11, 0x0), - gsSP2Triangles(12, 1, 0, 0x0, 13, 11, 14, 0x0), - gsSP2Triangles(12, 14, 11, 0x0, 11, 13, 15, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), - gsSP2Triangles( 8, 7, 5, 0x0, 4, 8, 5, 0x0), - gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group4, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 4, 1, 0, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 8, 3, 9, 0x0, 10, 11, 12, 0x0), - gsSP2Triangles(13, 11, 10, 0x0, 11, 13, 14, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group5, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 5, 0x0, 8, 7, 6, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 8, 6, 9, 0x0), - gsSP2Triangles( 9, 11, 10, 0x0, 9, 12, 11, 0x0), - gsSP2Triangles( 0, 13, 1, 0x0, 13, 14, 1, 0x0), - gsSP1Triangle( 1, 14, 15, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group6, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), - gsSP2Triangles( 2, 4, 0, 0x0, 1, 0, 5, 0x0), - gsSP2Triangles( 1, 6, 7, 0x0, 1, 5, 6, 0x0), - gsSP2Triangles( 7, 8, 1, 0x0, 3, 9, 4, 0x0), - gsSP2Triangles( 9, 3, 10, 0x0, 4, 11, 0, 0x0), - gsSP2Triangles(11, 4, 12, 0x0, 4, 9, 12, 0x0), - gsSP2Triangles(10, 13, 14, 0x0, 0, 11, 15, 0x0), - gsSP2Triangles( 5, 0, 15, 0x0, 14, 9, 10, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group7, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), - gsSP2Triangles( 8, 5, 4, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 2, 12, 0, 0x0, 13, 4, 6, 0x0), - gsSP2Triangles( 6, 14, 15, 0x0, 6, 7, 14, 0x0), - gsSP1Triangle(13, 6, 15, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group8, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 6, 5, 0x0), - gsSP1Triangle( 8, 5, 4, 0x0), - gsSPVertex(mario_face_part_cap_off_dl_vertex_group9, 3, 0), - gsSP1Triangle( 0, 1, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040136D0 - 0x040139C0 -const Gfx mario_face_hair_cap_off_dl[] = { - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0), - gsSP2Triangles( 8, 4, 9, 0x0, 7, 10, 4, 0x0), - gsSP2Triangles( 4, 10, 9, 0x0, 8, 5, 4, 0x0), - gsSP2Triangles(11, 1, 12, 0x0, 1, 0, 12, 0x0), - gsSP2Triangles( 1, 13, 2, 0x0, 1, 11, 14, 0x0), - gsSP2Triangles(13, 1, 14, 0x0, 15, 2, 13, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 3, 7, 6, 0x0), - gsSP2Triangles( 8, 7, 3, 0x0, 5, 8, 3, 0x0), - gsSP2Triangles( 9, 10, 4, 0x0, 11, 4, 6, 0x0), - gsSP2Triangles(11, 9, 4, 0x0, 10, 5, 4, 0x0), - gsSP2Triangles(10, 12, 5, 0x0, 5, 13, 14, 0x0), - gsSP2Triangles( 8, 5, 14, 0x0, 9, 2, 10, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 1, 4, 5, 0x0, 4, 6, 5, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 10, 7, 9, 0x0), - gsSP2Triangles( 8, 7, 11, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(14, 11, 13, 0x0, 14, 8, 11, 0x0), - gsSP1Triangle(15, 13, 12, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 5, 0x0), - gsSP2Triangles( 8, 3, 5, 0x0, 9, 7, 5, 0x0), - gsSP2Triangles(10, 6, 4, 0x0, 4, 3, 11, 0x0), - gsSP2Triangles( 3, 12, 11, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group5, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 4, 3, 0x0, 7, 6, 8, 0x0), - gsSP2Triangles( 9, 6, 3, 0x0, 6, 9, 8, 0x0), - gsSP2Triangles(10, 11, 0, 0x0, 12, 0, 2, 0x0), - gsSP2Triangles(10, 0, 12, 0x0, 10, 5, 11, 0x0), - gsSP2Triangles(13, 14, 15, 0x0, 13, 3, 10, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group6, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 5, 0, 2, 0x0, 5, 4, 0, 0x0), - gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 7, 0x0), - gsSP2Triangles( 6, 10, 7, 0x0, 8, 7, 10, 0x0), - gsSP2Triangles( 3, 11, 12, 0x0, 13, 14, 3, 0x0), - gsSP2Triangles(12, 6, 3, 0x0, 6, 15, 10, 0x0), - gsSP1Triangle(12, 15, 6, 0x0), - gsSPVertex(mario_face_hair_cap_off_dl_vertex_group7, 13, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), - gsSP2Triangles( 6, 5, 8, 0x0, 9, 8, 5, 0x0), - gsSP2Triangles( 5, 7, 9, 0x0, 10, 11, 12, 0x0), - gsSP2Triangles(11, 10, 3, 0x0, 12, 2, 10, 0x0), - gsSP2Triangles( 2, 1, 10, 0x0, 10, 1, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040139C0 - 0x040139E8 -const Gfx mario_face_cap_off_dl[] = { - gsSPDisplayList(mario_face_part_cap_off_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_face_hair_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x040139E8 - 0x04013AB8 -const Gfx mario_cap_off_eyes_front[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013AB8 - 0x04013B88 -const Gfx mario_cap_off_eyes_half_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013B88 - 0x04013C58 -const Gfx mario_cap_off_eyes_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013C58 - 0x04013D28 -const Gfx mario_cap_off_eyes_right[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013D28 - 0x04013DF8 -const Gfx mario_cap_off_eyes_left[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013DF8 - 0x04013EC8 -const Gfx mario_cap_off_eyes_up[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013EC8 - 0x04013F98 -const Gfx mario_cap_off_eyes_down[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04013F98 - 0x04014068 -const Gfx mario_cap_off_eyes_dead[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04014068 - 0x04014098 -const Gfx mario_metal_cap_off_shared_dl[] = { - gsSPDisplayList(mario_eyes_cap_off_dl), - gsSPDisplayList(mario_mustache_cap_off_dl), - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), - gsSPDisplayList(mario_face_part_cap_off_dl), - gsSPDisplayList(mario_face_hair_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04014098 -static const Vtx mario_medium_poly_butt_dl_vertex_group1[] = { - {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, - {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, - {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, - {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, - {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, - {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, - {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, - {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, - {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, - {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, - {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, - {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, - {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, - {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, - {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, - {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, -}; - -// 0x04014198 -static const Vtx mario_medium_poly_butt_dl_vertex_group2[] = { - {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, - {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, - {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, - {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, - {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, - {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, - {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, - {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, - {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, - {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, - {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, - {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, - {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, - {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, - {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, - {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, -}; - -// 0x04014298 -static const Vtx mario_medium_poly_butt_dl_vertex_group3[] = { - {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, - {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, - {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, - {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, - {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, - {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, - {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, - {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, - {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, - {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, - {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, - {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, - {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, - {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, - {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, - {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, -}; - -// 0x04014398 -static const Vtx mario_medium_poly_butt_dl_vertex_group4[] = { - {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, - {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, - {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, - {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, - {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, - {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, - {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, - {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, - {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, - {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, - {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, - {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, - {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, - {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, - {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, - {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, -}; - -// 0x04014498 -static const Vtx mario_medium_poly_butt_dl_vertex_group5[] = { - {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, - {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, - {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, - {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, -}; - -// 0x040144D8 - 0x04014638 -const Gfx mario_medium_poly_butt_dl[] = { - gsSPVertex(mario_medium_poly_butt_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 6, 0x0), - gsSP1Triangle( 3, 10, 7, 0x0), - gsSPVertex(mario_medium_poly_butt_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 0, 2, 6, 0x0, 7, 5, 4, 0x0), - gsSP2Triangles( 7, 8, 6, 0x0, 9, 10, 8, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 2, 1, 5, 0x0), - gsSP1Triangle(14, 15, 0, 0x0), - gsSPVertex(mario_medium_poly_butt_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 3, 7, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(11, 10, 14, 0x0, 0, 12, 15, 0x0), - gsSP2Triangles(14, 9, 6, 0x0, 2, 13, 12, 0x0), - gsSPVertex(mario_medium_poly_butt_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 9, 12, 13, 0x0, 13, 12, 14, 0x0), - gsSP2Triangles(14, 12, 8, 0x0, 8, 12, 15, 0x0), - gsSP2Triangles(15, 12, 1, 0x0, 1, 12, 2, 0x0), - gsSPVertex(mario_medium_poly_butt_dl_vertex_group5, 4, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04014638 - 0x04014668 -const Gfx mario_medium_poly_butt[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x04014668 - 0x040146E0 -const Gfx mario_metal_medium_poly_butt[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x040146E0 -static const Vtx mario_medium_poly_left_arm_shared_dl_vertex[] = { - {{{ -6, -32, -22}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, - {{{ 60, -27, -18}, 0, { 0, 0}, {0x3d, 0xc5, 0xa3, 0x00}}}, - {{{ 60, -18, 26}, 0, { 0, 0}, {0x5c, 0xbe, 0x36, 0x00}}}, - {{{ -6, -32, -22}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, - {{{ -7, 21, -27}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, - {{{ 59, 16, -22}, 0, { 0, 0}, {0x5b, 0x4f, 0xda, 0x00}}}, - {{{ -7, 20, 18}, 0, { 0, 0}, {0x0c, 0x73, 0x32, 0x00}}}, - {{{ 59, 14, 14}, 0, { 0, 0}, {0x38, 0x4b, 0x55, 0x00}}}, - {{{ -6, -21, 33}, 0, { 0, 0}, {0x0b, 0x2a, 0x77, 0x00}}}, - {{{ -7, 21, -27}, 0, { 0, 0}, {0x0a, 0x7e, 0x04, 0x00}}}, - {{{ -6, -21, 33}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, - {{{ -7, 21, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -6, -32, -22}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -6, -21, 33}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -7, 20, 18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, -}; - -// 0x040147D0 - 0x04014840 -const Gfx mario_medium_poly_left_arm_shared_dl[] = { - gsSPVertex(mario_medium_poly_left_arm_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), - gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), - gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), - gsSP2Triangles( 5, 2, 1, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(13, 14, 11, 0x0, 5, 7, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04014840 - 0x04014860 -const Gfx mario_medium_poly_left_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04014860 -static const Vtx mario_medium_poly_left_forearm_shared_dl_vertex[] = { - {{{ -9, -29, -18}, 0, { 0, 0}, {0x05, 0x84, 0x19, 0x00}}}, - {{{ 53, -26, -17}, 0, { 0, 0}, {0x59, 0xd0, 0xb5, 0x00}}}, - {{{ 53, -17, 24}, 0, { 0, 0}, {0x3d, 0xab, 0x47, 0x00}}}, - {{{ -9, -29, -18}, 0, { 0, 0}, {0x04, 0xf3, 0x82, 0x00}}}, - {{{ -9, 16, -24}, 0, { 0, 0}, {0x04, 0xf4, 0x82, 0x00}}}, - {{{ 53, 13, -21}, 0, { 0, 0}, {0x3b, 0x64, 0xce, 0x00}}}, - {{{ -9, 15, 15}, 0, { 0, 0}, {0x07, 0x75, 0x30, 0x00}}}, - {{{ 53, 13, 12}, 0, { 0, 0}, {0x52, 0x41, 0x47, 0x00}}}, - {{{ -9, -19, 28}, 0, { 0, 0}, {0x07, 0x2c, 0x76, 0x00}}}, - {{{ -9, 16, -24}, 0, { 0, 0}, {0x06, 0x7e, 0x02, 0x00}}}, - {{{ -9, -19, 28}, 0, { 0, 0}, {0x05, 0x84, 0x1a, 0x00}}}, - {{{ -9, 16, -24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -9, -29, -18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -9, -19, 28}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -9, 15, 15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, -}; - -// 0x04014950 - 0x040149C0 -const Gfx mario_medium_poly_left_forearm_shared_dl[] = { - gsSPVertex(mario_medium_poly_left_forearm_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), - gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), - gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), - gsSP2Triangles( 1, 7, 2, 0x0, 1, 5, 7, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040149C0 -static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group1[] = { - {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, - {{{ 12, 1, 26}, 0, { 0, 0}, {0xf1, 0xf7, 0x7d, 0x00}}}, - {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, - {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, - {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, - {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, - {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, - {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, - {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, - {{{ 81, 32, 40}, 0, { 0, 0}, {0x48, 0x1f, 0x63, 0x00}}}, - {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, - {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, - {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, - {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, - {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, - {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, -}; - -// 0x04014AC0 -static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group2[] = { - {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, - {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, - {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, - {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, - {{{ 14, -51, -2}, 0, { 0, 0}, {0x37, 0xd5, 0x97, 0x00}}}, - {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, - {{{ -26, 40, -1}, 0, { 0, 0}, {0x05, 0x48, 0x98, 0x00}}}, - {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, - {{{ -26, 40, -1}, 0, { 0, 0}, {0x11, 0x50, 0x60, 0x00}}}, - {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, - {{{ 14, -51, -2}, 0, { 0, 0}, {0x49, 0xd5, 0x5e, 0x00}}}, - {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, - {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, - {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, - {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, -}; - -// 0x04014BB0 -static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group3[] = { - {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, - {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, - {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, - {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, - {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, - {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, - {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, - {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, - {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, - {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, - {{{ -5, -5, 34}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, - {{{ -6, -5, -32}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, - {{{ 14, -51, -2}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, - {{{ -26, 40, -1}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, -}; - -// 0x04014C90 - 0x04014DC0 -const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { - gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSP2Triangles( 5, 3, 6, 0x0, 6, 1, 0, 0x0), - gsSP2Triangles( 2, 1, 7, 0x0, 7, 1, 6, 0x0), - gsSP2Triangles( 6, 3, 8, 0x0, 3, 2, 8, 0x0), - gsSP2Triangles( 0, 9, 10, 0x0, 11, 9, 0, 0x0), - gsSP2Triangles(10, 12, 13, 0x0, 14, 12, 11, 0x0), - gsSP2Triangles(11, 12, 9, 0x0, 9, 12, 10, 0x0), - gsSP1Triangle(15, 11, 0, 0x0), - gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 9, 10, 3, 0x0, 7, 0, 2, 0x0), - gsSP2Triangles( 7, 2, 11, 0x0, 3, 12, 13, 0x0), - gsSP2Triangles( 3, 13, 0, 0x0, 11, 2, 14, 0x0), - gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group3, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 5, 2, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 7, 2, 8, 0x0, 7, 0, 2, 0x0), - gsSP2Triangles( 5, 8, 2, 0x0, 10, 11, 12, 0x0), - gsSP1Triangle(10, 13, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04014DC0 - 0x04014DE0 -const Gfx mario_medium_poly_left_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04014DE0 -static const Vtx mario_medium_poly_right_arm_shared_dl_vertex[] = { - {{{ 60, -28, 22}, 0, { 0, 0}, {0x3b, 0xc7, 0x60, 0x00}}}, - {{{ 60, -19, -19}, 0, { 0, 0}, {0x5a, 0xbc, 0xc7, 0x00}}}, - {{{ 60, 14, 24}, 0, { 0, 0}, {0x5b, 0x4f, 0x26, 0x00}}}, - {{{ -7, -31, 24}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, - {{{ -7, -20, -27}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, - {{{ -8, 21, -15}, 0, { 0, 0}, {0x11, 0x73, 0xce, 0x00}}}, - {{{ -8, 22, 27}, 0, { 0, 0}, {0x0e, 0x7e, 0xfd, 0x00}}}, - {{{ 60, 13, -9}, 0, { 0, 0}, {0x3c, 0x46, 0xaa, 0x00}}}, - {{{ -7, -20, -27}, 0, { 0, 0}, {0x0e, 0x23, 0x88, 0x00}}}, - {{{ -8, 22, 27}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, - {{{ -7, -31, 24}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, - {{{ -7, -20, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -7, -31, 24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -8, 22, 27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -8, 21, -15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, -}; - -// 0x04014ED0 - 0x04014F40 -const Gfx mario_medium_poly_right_arm_shared_dl[] = { - gsSPVertex(mario_medium_poly_right_arm_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 2, 5, 6, 0x0, 7, 8, 5, 0x0), - gsSP2Triangles( 7, 1, 8, 0x0, 2, 7, 5, 0x0), - gsSP2Triangles( 0, 2, 9, 0x0, 0, 9, 10, 0x0), - gsSP2Triangles( 1, 0, 3, 0x0, 11, 12, 13, 0x0), - gsSP2Triangles(13, 14, 11, 0x0, 1, 7, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04014F40 - 0x04014F60 -const Gfx mario_medium_poly_right_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04014F60 -static const Vtx mario_medium_poly_right_forearm_shared_dl_vertex[] = { - {{{ -5, -18, -24}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, - {{{ -3, -29, 21}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, - {{{ -4, 17, 26}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, - {{{ 52, 13, -10}, 0, { 0, 0}, {0x51, 0x40, 0xb7, 0x00}}}, - {{{ 53, 13, 22}, 0, { 0, 0}, {0x3d, 0x63, 0x31, 0x00}}}, - {{{ 53, -26, 19}, 0, { 0, 0}, {0x5b, 0xd0, 0x49, 0x00}}}, - {{{ 52, -17, -21}, 0, { 0, 0}, {0x3a, 0xac, 0xb6, 0x00}}}, - {{{ -3, -29, 21}, 0, { 0, 0}, {0x04, 0x85, 0xe4, 0x00}}}, - {{{ -5, -18, -24}, 0, { 0, 0}, {0x03, 0x85, 0xe3, 0x00}}}, - {{{ -5, 17, -12}, 0, { 0, 0}, {0x09, 0x75, 0xd1, 0x00}}}, - {{{ -4, 17, 26}, 0, { 0, 0}, {0x08, 0x7e, 0x00, 0x00}}}, - {{{ -5, -18, -24}, 0, { 0, 0}, {0x06, 0x2a, 0x89, 0x00}}}, - {{{ -4, 17, 26}, 0, { 0, 0}, {0x06, 0xf5, 0x7e, 0x00}}}, - {{{ -3, -29, 21}, 0, { 0, 0}, {0x06, 0xf4, 0x7e, 0x00}}}, - {{{ -5, 17, -12}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, -}; - -// 0x04015050 - 0x040150C0 -const Gfx mario_medium_poly_right_forearm_shared_dl[] = { - gsSPVertex(mario_medium_poly_right_forearm_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 3, 5, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 4, 9, 10, 0x0, 3, 11, 9, 0x0), - gsSP2Triangles( 3, 6, 11, 0x0, 4, 3, 9, 0x0), - gsSP2Triangles( 5, 4, 12, 0x0, 5, 12, 13, 0x0), - gsSP2Triangles( 6, 5, 7, 0x0, 2, 14, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040150C0 -static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group1[] = { - {{{ -7, -4, 36}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, - {{{ -26, 40, 0}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, - {{{ -4, -7, -34}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, - {{{ 14, -51, 7}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, - {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, - {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, - {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, - {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, - {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, - {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, - {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, - {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, - {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, - {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, - {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, - {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, -}; - -// 0x040151C0 -static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group2[] = { - {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, - {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, - {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, - {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, - {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, - {{{ 14, -51, 7}, 0, { 0, 0}, {0x4f, 0xd0, 0xaa, 0x00}}}, - {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, - {{{ -26, 40, 0}, 0, { 0, 0}, {0x15, 0x51, 0xa1, 0x00}}}, - {{{ -26, 40, 0}, 0, { 0, 0}, {0x02, 0x4f, 0x62, 0x00}}}, - {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, - {{{ 14, -51, 7}, 0, { 0, 0}, {0x36, 0xd7, 0x6b, 0x00}}}, - {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, - {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, - {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, - {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, - {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, -}; - -// 0x040152C0 -static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group3[] = { - {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, - {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, - {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, - {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, - {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, - {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, - {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, - {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, - {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, - {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, - {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, - {{{ 13, 0, -26}, 0, { 0, 0}, {0xf5, 0xf2, 0x83, 0x00}}}, - {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, - {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, - {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, -}; - -// 0x040153B0 - 0x040154E0 -const Gfx mario_medium_poly_right_hand_closed_dl[] = { - gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), - gsSP2Triangles( 5, 4, 8, 0x0, 9, 5, 8, 0x0), - gsSP2Triangles(10, 4, 6, 0x0, 7, 11, 12, 0x0), - gsSP2Triangles( 4, 13, 7, 0x0, 7, 12, 8, 0x0), - gsSP2Triangles(14, 6, 15, 0x0, 6, 5, 15, 0x0), - gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 2, 0x0), - gsSP2Triangles( 2, 8, 9, 0x0, 9, 10, 4, 0x0), - gsSP2Triangles( 1, 11, 3, 0x0, 3, 12, 13, 0x0), - gsSP2Triangles(11, 14, 15, 0x0, 15, 14, 12, 0x0), - gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), - gsSP2Triangles( 5, 6, 0, 0x0, 4, 6, 5, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 7, 9, 10, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 8, 0x0), - gsSP2Triangles( 5, 11, 10, 0x0, 10, 9, 13, 0x0), - gsSP2Triangles(14, 9, 8, 0x0, 8, 11, 5, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040154E0 - 0x04015500 -const Gfx mario_medium_poly_right_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), - gsSPEndDisplayList(), -}; - -// 0x04015500 - 0x04015530 -const Gfx mario_metal_medium_poly_right_hand_closed[] = { - gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x04015530 -static const Vtx mario_medium_poly_left_thigh_dl_vertex[] = { - {{{ 18, -12, 58}, 0, { 0, 0}, {0x13, 0xdd, 0x78, 0x00}}}, - {{{ 22, -52, 8}, 0, { 0, 0}, {0x1c, 0x85, 0x01, 0x00}}}, - {{{ 99, -35, 8}, 0, { 0, 0}, {0x3e, 0x92, 0x01, 0x00}}}, - {{{ 14, 51, 38}, 0, { 0, 0}, {0x08, 0x75, 0x30, 0x00}}}, - {{{ 92, 47, 33}, 0, { 0, 0}, {0x36, 0x4b, 0x56, 0x00}}}, - {{{ 14, 50, -23}, 0, { 0, 0}, {0x0a, 0x65, 0xb5, 0x00}}}, - {{{ 92, 47, -16}, 0, { 0, 0}, {0x47, 0x55, 0xc5, 0x00}}}, - {{{ 19, -13, -42}, 0, { 0, 0}, {0x15, 0xdb, 0x89, 0x00}}}, - {{{ 96, -3, -31}, 0, { 0, 0}, {0x68, 0xf1, 0xba, 0x00}}}, - {{{ 96, -3, 48}, 0, { 0, 0}, {0x71, 0xf8, 0x38, 0x00}}}, - {{{ 19, -13, -42}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 22, -52, 8}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 18, -12, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 14, 51, 38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 14, 50, -23}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, -}; - -// 0x04015620 - 0x040156B0 -const Gfx mario_medium_poly_left_thigh_dl[] = { - gsSPVertex(mario_medium_poly_left_thigh_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 5, 3, 6, 0x0, 7, 5, 6, 0x0), - gsSP2Triangles( 1, 7, 2, 0x0, 7, 8, 2, 0x0), - gsSP2Triangles( 6, 8, 7, 0x0, 3, 4, 6, 0x0), - gsSP2Triangles( 0, 9, 4, 0x0, 2, 9, 0, 0x0), - gsSP2Triangles( 9, 2, 8, 0x0, 10, 11, 12, 0x0), - gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), - gsSP2Triangles( 8, 6, 9, 0x0, 6, 4, 9, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040156B0 - 0x040156E0 -const Gfx mario_medium_poly_left_thigh[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x040156E0 - 0x04015758 -const Gfx mario_metal_medium_poly_left_thigh[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x04015758 -static const Vtx mario_medium_poly_left_leg_shared_dl_vertex[] = { - {{{ 5, -35, 9}, 0, { 0, 0}, {0xca, 0x8e, 0x00, 0x00}}}, - {{{ 65, -44, 10}, 0, { 0, 0}, {0xee, 0x83, 0x01, 0x00}}}, - {{{ 66, -9, 54}, 0, { 0, 0}, {0xf2, 0xdc, 0x78, 0x00}}}, - {{{ 9, 46, 33}, 0, { 0, 0}, {0xd5, 0x61, 0x45, 0x00}}}, - {{{ 69, 47, 37}, 0, { 0, 0}, {0xf9, 0x66, 0x4b, 0x00}}}, - {{{ 70, 47, -18}, 0, { 0, 0}, {0xfb, 0x74, 0xcf, 0x00}}}, - {{{ 10, 46, -16}, 0, { 0, 0}, {0xaf, 0x40, 0xb7, 0x00}}}, - {{{ 67, -9, -36}, 0, { 0, 0}, {0xf4, 0xda, 0x88, 0x00}}}, - {{{ 7, -4, -31}, 0, { 0, 0}, {0x9b, 0xee, 0xb6, 0x00}}}, - {{{ 7, -4, 49}, 0, { 0, 0}, {0x8f, 0xf5, 0x37, 0x00}}}, - {{{ 66, -9, 54}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 65, -44, 10}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 67, -9, -36}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 70, 47, -18}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 69, 47, 37}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, -}; - -// 0x04015848 - 0x040158D8 -const Gfx mario_medium_poly_left_leg_shared_dl[] = { - gsSPVertex(mario_medium_poly_left_leg_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), - gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), - gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), - gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 8, 0, 9, 0x0), - gsSP2Triangles( 9, 6, 8, 0x0, 9, 3, 6, 0x0), - gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040158D8 -static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group1[] = { - {{{ 108, 10, 36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 108, 9, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 75, 21, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 76, 22, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -14, 55, -27}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -13, 55, 49}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -41, 65, 9}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, - {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, - {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, - {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, - {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, - {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, - {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, - {{{ 75, 21, -41}, 0, { 0, 0}, {0x09, 0xda, 0x88, 0x00}}}, - {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, -}; - -// 0x040159D8 -static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group2[] = { - {{{ 78, -30, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, - {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, - {{{ 108, 10, 36}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, - {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, - {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, - {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, - {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, - {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, - {{{ -41, 65, 9}, 0, { 0, 0}, {0x83, 0x15, 0x00, 0x00}}}, - {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, - {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, - {{{ 25, -34, 11}, 0, { 0, 0}, {0xdd, 0x87, 0xfb, 0x00}}}, -}; - -// 0x04015A98 - 0x04015B60 -const Gfx mario_medium_poly_left_foot_shared_dl[] = { - gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), - gsSP2Triangles( 6, 5, 4, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 13, 7, 9, 0x0), - gsSP2Triangles(10, 12, 14, 0x0, 10, 14, 15, 0x0), - gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group2, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), - gsSP2Triangles( 2, 4, 5, 0x0, 5, 0, 2, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles(11, 3, 0, 0x0, 10, 3, 11, 0x0), - gsSP2Triangles( 0, 5, 11, 0x0, 11, 5, 6, 0x0), - gsSP2Triangles(11, 6, 10, 0x0, 6, 8, 10, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04015B60 - 0x04015B80 -const Gfx mario_medium_poly_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04015B80 -static const Vtx mario_medium_poly_right_thigh_shared_dl_vertex[] = { - {{{ 18, -11, -58}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 23, -52, -9}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 20, -14, 41}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 97, -3, 30}, 0, { 0, 0}, {0x69, 0xf1, 0x45, 0x00}}}, - {{{ 99, -33, -10}, 0, { 0, 0}, {0x40, 0x93, 0xfc, 0x00}}}, - {{{ 95, -1, -49}, 0, { 0, 0}, {0x71, 0xfb, 0xc7, 0x00}}}, - {{{ 18, -11, -58}, 0, { 0, 0}, {0x12, 0xe0, 0x87, 0x00}}}, - {{{ 91, 49, -33}, 0, { 0, 0}, {0x34, 0x4e, 0xab, 0x00}}}, - {{{ 92, 48, 16}, 0, { 0, 0}, {0x47, 0x55, 0x3d, 0x00}}}, - {{{ 13, 52, -37}, 0, { 0, 0}, {0x06, 0x76, 0xd3, 0x00}}}, - {{{ 20, -14, 41}, 0, { 0, 0}, {0x16, 0xd9, 0x76, 0x00}}}, - {{{ 23, -52, -9}, 0, { 0, 0}, {0x1d, 0x85, 0xfd, 0x00}}}, - {{{ 14, 50, 24}, 0, { 0, 0}, {0x0a, 0x63, 0x4d, 0x00}}}, - {{{ 13, 52, -37}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 14, 50, 24}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, -}; - -// 0x04015C70 - 0x04015D00 -const Gfx mario_medium_poly_right_thigh_shared_dl[] = { - gsSPVertex(mario_medium_poly_right_thigh_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 5, 4, 0x0, 7, 5, 6, 0x0), - gsSP2Triangles( 8, 7, 9, 0x0, 10, 3, 8, 0x0), - gsSP2Triangles( 4, 3, 10, 0x0, 4, 10, 11, 0x0), - gsSP2Triangles( 8, 12, 10, 0x0, 8, 9, 12, 0x0), - gsSP2Triangles( 7, 6, 9, 0x0, 4, 11, 6, 0x0), - gsSP2Triangles( 5, 8, 3, 0x0, 5, 7, 8, 0x0), - gsSP2Triangles( 2, 13, 0, 0x0, 2, 14, 13, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04015D00 - 0x04015D20 -const Gfx mario_medium_poly_right_thigh[] = { - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04015D20 -static const Vtx mario_medium_poly_right_leg_shared_dl_vertex[] = { - {{{ 6, -1, -50}, 0, { 0, 0}, {0x8e, 0xf7, 0xca, 0x00}}}, - {{{ 5, -34, -11}, 0, { 0, 0}, {0xc9, 0x8e, 0xfe, 0x00}}}, - {{{ 7, -4, 30}, 0, { 0, 0}, {0x9b, 0xed, 0x4a, 0x00}}}, - {{{ 67, -9, 34}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 64, -43, -12}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 66, -7, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 66, -7, -56}, 0, { 0, 0}, {0xf1, 0xde, 0x87, 0x00}}}, - {{{ 10, 48, -33}, 0, { 0, 0}, {0xd6, 0x63, 0xbe, 0x00}}}, - {{{ 10, 46, 16}, 0, { 0, 0}, {0xb1, 0x3f, 0x4b, 0x00}}}, - {{{ 71, 47, 18}, 0, { 0, 0}, {0xfd, 0x73, 0x33, 0x00}}}, - {{{ 67, -9, 34}, 0, { 0, 0}, {0xf4, 0xd8, 0x77, 0x00}}}, - {{{ 64, -43, -12}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, - {{{ 70, 49, -37}, 0, { 0, 0}, {0xfa, 0x67, 0xb8, 0x00}}}, - {{{ 71, 47, 18}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 70, 49, -37}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, -}; - -// 0x04015E10 - 0x04015EA0 -const Gfx mario_medium_poly_right_leg_shared_dl[] = { - gsSPVertex(mario_medium_poly_right_leg_shared_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 1, 0, 6, 0x0, 6, 0, 7, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 8, 2, 10, 0x0), - gsSP2Triangles(10, 2, 1, 0x0, 11, 10, 1, 0x0), - gsSP2Triangles(10, 9, 8, 0x0, 9, 12, 7, 0x0), - gsSP2Triangles(12, 6, 7, 0x0, 6, 11, 1, 0x0), - gsSP2Triangles( 5, 13, 3, 0x0, 5, 14, 13, 0x0), - gsSP2Triangles( 2, 8, 0, 0x0, 8, 7, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04015EA0 -static const Vtx mario_medium_poly_right_foot_dl_vertex_group1[] = { - {{{ -38, 12, 14}, 0, { 0, 0}, {0xa1, 0xcf, 0x43, 0x00}}}, - {{{ -43, 65, -12}, 0, { 0, 0}, {0x83, 0x13, 0xff, 0x00}}}, - {{{ -36, 12, -41}, 0, { 0, 0}, {0xa1, 0xce, 0xbe, 0x00}}}, - {{{ 25, -34, -11}, 0, { 0, 0}, {0xdf, 0x86, 0x07, 0x00}}}, - {{{ 41, -18, -55}, 0, { 0, 0}, {0x07, 0xb3, 0x9c, 0x00}}}, - {{{ 79, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, - {{{ 42, -10, 32}, 0, { 0, 0}, {0xff, 0xba, 0x69, 0x00}}}, - {{{ -15, 55, 24}, 0, { 0, 0}, {0xcb, 0x04, 0x73, 0x00}}}, - {{{ -14, 54, -51}, 0, { 0, 0}, {0xcf, 0x04, 0x8c, 0x00}}}, - {{{ 108, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, - {{{ 76, 23, -62}, 0, { 0, 0}, {0x14, 0xdb, 0x89, 0x00}}}, - {{{ 107, 12, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, - {{{ 74, 24, 40}, 0, { 0, 0}, {0x08, 0xdc, 0x79, 0x00}}}, - {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -43, 65, -12}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, -}; - -// 0x04015FA0 -static const Vtx mario_medium_poly_right_foot_dl_vertex_group2[] = { - {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 76, 23, -62}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 74, 24, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 108, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 107, 12, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, -}; - -// 0x04016000 - 0x040160C8 -const Gfx mario_medium_poly_right_foot_dl[] = { - gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 3, 6, 0, 0x0, 5, 6, 3, 0x0), - gsSP2Triangles( 0, 7, 1, 0x0, 1, 8, 2, 0x0), - gsSP2Triangles( 9, 5, 4, 0x0, 4, 10, 9, 0x0), - gsSP2Triangles( 6, 5, 11, 0x0, 9, 11, 5, 0x0), - gsSP2Triangles(11, 12, 6, 0x0, 12, 7, 6, 0x0), - gsSP2Triangles( 8, 4, 2, 0x0, 7, 0, 6, 0x0), - gsSP2Triangles( 8, 10, 4, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group2, 6, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040160C8 - 0x04016108 -const Gfx mario_medium_poly_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_right_foot_dl), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x04016108 - 0x04016148 -const Gfx mario_metal_medium_poly_right_foot[] = { - gsSPDisplayList(mario_medium_poly_right_foot_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x04016148 -static const Vtx mario_seg4_vertex_04016148[] = { - {{{ 75, 24, -60}, 0, { -74, -930}, {0x60, 0x27, 0xb8, 0xff}}}, - {{{ 36, 47, -76}, 0, { -174, 168}, {0x2e, 0x36, 0x98, 0xff}}}, - {{{ 44, 78, -35}, 0, { 988, 92}, {0x45, 0x65, 0xe2, 0xff}}}, - {{{ -26, 49, -87}, 0, { -538, 1590}, {0xc4, 0x29, 0x99, 0xff}}}, - {{{ 1, 87, -53}, 0, { 638, 1164}, {0x0e, 0x74, 0xd1, 0xff}}}, - {{{ 1, 87, 54}, 0, { 2522, 702}, {0x11, 0x74, 0x2f, 0xff}}}, - {{{ 1, 87, 54}, 0, { 272, 1122}, {0x11, 0x74, 0x2f, 0xff}}}, - {{{ 44, 78, 37}, 0, { -92, 108}, {0x47, 0x5f, 0x2a, 0xff}}}, - {{{ 44, 78, -35}, 0, { -1398, -128}, {0x45, 0x65, 0xe2, 0xff}}}, - {{{ -26, 49, 88}, 0, { 1514, 1490}, {0xc4, 0x29, 0x67, 0xff}}}, - {{{ 36, 47, 77}, 0, { 1110, 130}, {0x2f, 0x37, 0x68, 0xff}}}, - {{{ 75, 24, 60}, 0, { 968, -926}, {0x62, 0x27, 0x46, 0xff}}}, -}; - -// 0x04016208 -static const Vtx mario_seg4_vertex_04016208[] = { - {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, - {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, - {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, - {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, - {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, - {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, - {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, - {{{ 56, -4, 79}, 0, { 0, 0}, {0x39, 0x04, 0x71, 0xff}}}, - {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, - {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, - {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, - {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, - {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, - {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, - {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, - {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, -}; - -// 0x04016308 -static const Vtx mario_seg4_vertex_04016308[] = { - {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, - {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, - {{{ 56, -4, -77}, 0, { 0, 0}, {0x38, 0x04, 0x8f, 0xff}}}, - {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, - {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, - {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, - {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, - {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, - {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, -}; - -// 0x04016398 -static const Vtx mario_seg4_vertex_04016398[] = { - {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, - {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, - {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, - {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, - {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, - {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, - {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, - {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, - {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, - {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, - {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, - {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, - {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, - {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, - {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, - {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, -}; - -// 0x04016498 -static const Vtx mario_seg4_vertex_04016498[] = { - {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, - {{{ -30, 88, -41}, 0, { 0, 0}, {0xc7, 0x6a, 0xda, 0xff}}}, - {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, - {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, - {{{ -71, 56, 0}, 0, { 0, 0}, {0x89, 0x2b, 0x00, 0xff}}}, - {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, - {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, - {{{ -59, -44, 0}, 0, { 0, 0}, {0x88, 0xd8, 0x00, 0xff}}}, - {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, - {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, - {{{ -26, -41, 85}, 0, { 0, 0}, {0xcc, 0xc2, 0x61, 0xff}}}, - {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, - {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, - {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, - {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, - {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, -}; - -// 0x04016598 -static const Vtx mario_seg4_vertex_04016598[] = { - {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, - {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, - {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, - {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, - {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, - {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, - {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, - {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, - {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, - {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, - {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, - {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, - {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, -}; - -// 0x04016668 - 0x040166B8 -const Gfx mario_medium_poly_yellow_button_dl[] = { - gsSPVertex(mario_seg4_vertex_04016148, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), - gsSP2Triangles( 6, 10, 7, 0x0, 7, 10, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040166B8 - 0x04016800 -const Gfx mario_medium_poly_pants_overalls_shared_dl[] = { - gsSPVertex(mario_seg4_vertex_04016398, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), - gsSP2Triangles( 3, 4, 1, 0x0, 2, 5, 0, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 7, 10, 11, 0x0, 8, 7, 11, 0x0), - gsSP2Triangles(11, 10, 2, 0x0, 10, 12, 2, 0x0), - gsSP1Triangle(13, 14, 15, 0x0), - gsSPVertex(mario_seg4_vertex_04016498, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 2, 1, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 5, 2, 4, 0x0, 6, 2, 5, 0x0), - gsSP2Triangles( 4, 3, 7, 0x0, 8, 9, 7, 0x0), - gsSP2Triangles( 5, 4, 7, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles(11, 8, 7, 0x0, 3, 11, 7, 0x0), - gsSP2Triangles( 7, 10, 5, 0x0, 10, 9, 12, 0x0), - gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), - gsSP2Triangles( 5, 10, 14, 0x0, 9, 8, 15, 0x0), - gsSPVertex(mario_seg4_vertex_04016598, 13, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 4, 3, 0x0, 6, 3, 7, 0x0), - gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 8, 10, 0x0, 11, 10, 12, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016800 - 0x040168A0 -const Gfx mario_medium_poly_tshirt_shared_dl[] = { - gsSPVertex(mario_seg4_vertex_04016208, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 1, 0, 4, 0x0, 0, 5, 4, 0x0), - gsSP2Triangles( 6, 4, 5, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 9, 10, 7, 0x0, 7, 10, 11, 0x0), - gsSP2Triangles( 7, 12, 8, 0x0, 11, 12, 7, 0x0), - gsSP1Triangle(13, 14, 15, 0x0), - gsSPVertex(mario_seg4_vertex_04016308, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), - gsSP2Triangles( 5, 3, 2, 0x0, 6, 7, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040168A0 - 0x040168C8 -const Gfx mario_medium_poly_torso_dl[] = { - gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x040168C8 - 0x04016948 -const Gfx mario_medium_poly_torso[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_medium_poly_yellow_button_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_medium_poly_torso_dl), - gsSPEndDisplayList(), -}; - -// 0x04016948 - 0x04016968 -const Gfx mario_metal_medium_poly_torso[] = { - gsSPDisplayList(mario_medium_poly_yellow_button_dl), - gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), - gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04016968 -static const Vtx mario_low_poly_butt_dl_vertex[] = { - {{{ -37, -37, 0}, 0, { 0, 0}, {0x82, 0xf5, 0x00, 0x00}}}, - {{{ -2, 52, 92}, 0, { 0, 0}, {0xb1, 0x3c, 0x4e, 0x00}}}, - {{{ -35, 55, 0}, 0, { 0, 0}, {0x97, 0x45, 0x00, 0x00}}}, - {{{ -7, -86, 85}, 0, { 0, 0}, {0xbf, 0xc4, 0x5a, 0x00}}}, - {{{ 49, 46, 96}, 0, { 0, 0}, {0x4b, 0x1d, 0x61, 0x00}}}, - {{{ -7, -86, -85}, 0, { 0, 0}, {0xcf, 0xaa, 0xb2, 0x00}}}, - {{{ -2, 52, -92}, 0, { 0, 0}, {0xb0, 0x3b, 0xb2, 0x00}}}, - {{{ 48, 44, -98}, 0, { 0, 0}, {0x29, 0x22, 0x8e, 0x00}}}, - {{{ 46, -71, -89}, 0, { 0, 0}, {0x73, 0xd9, 0xdd, 0x00}}}, - {{{ 46, -71, 89}, 0, { 0, 0}, {0x44, 0xa1, 0x2f, 0x00}}}, - {{{ 49, 96, 0}, 0, { 0, 0}, {0x2b, 0x77, 0x00, 0x00}}}, -}; - -// 0x04016A18 - 0x04016AB8 -const Gfx mario_low_poly_butt_dl[] = { - gsSPVertex(mario_low_poly_butt_dl_vertex, 11, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 6, 0x0), - gsSP2Triangles( 6, 5, 0, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 7, 8, 5, 0x0, 3, 9, 4, 0x0), - gsSP2Triangles( 8, 7, 10, 0x0, 4, 9, 8, 0x0), - gsSP2Triangles( 5, 9, 3, 0x0, 3, 0, 5, 0x0), - gsSP2Triangles( 5, 8, 9, 0x0, 10, 7, 6, 0x0), - gsSP2Triangles(10, 4, 8, 0x0, 2, 1, 10, 0x0), - gsSP2Triangles( 6, 2, 10, 0x0, 1, 4, 10, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016AB8 - 0x04016AE8 -const Gfx mario_low_poly_butt[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x04016AE8 - 0x04016B60 -const Gfx mario_metal_low_poly_butt[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_butt_dl), - gsSPEndDisplayList(), -}; - -// 0x04016B60 -static const Vtx mario_low_poly_left_arm_shared_dl_vertex[] = { - {{{ -6, 28, 10}, 0, { 0, 0}, {0x09, 0x65, 0xb5, 0x00}}}, - {{{ 72, 21, 8}, 0, { 0, 0}, {0x44, 0x4d, 0x48, 0x00}}}, - {{{ 71, -11, -34}, 0, { 0, 0}, {0x3f, 0x57, 0xbe, 0x00}}}, - {{{ -8, -30, 31}, 0, { 0, 0}, {0x09, 0x26, 0x78, 0x00}}}, - {{{ 71, -30, 23}, 0, { 0, 0}, {0x5e, 0x15, 0x51, 0x00}}}, - {{{ -6, 28, 10}, 0, { 0, 0}, {0x07, 0x29, 0x77, 0x00}}}, - {{{ -8, -7, -41}, 0, { 0, 0}, {0x0b, 0x67, 0xb8, 0x00}}}, - {{{ -8, -30, 31}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, - {{{ -6, 28, 10}, 0, { 0, 0}, {0x81, 0x02, 0x00, 0x00}}}, - {{{ -8, -7, -41}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, - {{{ 71, -11, -34}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, - {{{ 71, -30, 23}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, -}; - -// 0x04016C20 - 0x04016C70 -const Gfx mario_low_poly_left_arm_shared_dl[] = { - gsSPVertex(mario_low_poly_left_arm_shared_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), - gsSP2Triangles( 7, 9, 10, 0x0, 7, 10, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016C70 - 0x04016C90 -const Gfx mario_low_poly_left_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_left_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04016C90 -static const Vtx mario_low_poly_left_forearm_shared_dl_vertex[] = { - {{{ -5, 20, 6}, 0, { 0, 0}, {0x05, 0x62, 0xb0, 0x00}}}, - {{{ 67, 16, 5}, 0, { 0, 0}, {0x43, 0x4b, 0x4c, 0x00}}}, - {{{ 67, -14, -31}, 0, { 0, 0}, {0x3c, 0x55, 0xba, 0x00}}}, - {{{ -5, -30, 21}, 0, { 0, 0}, {0x05, 0x20, 0x7a, 0x00}}}, - {{{ 67, -30, 17}, 0, { 0, 0}, {0x5c, 0x14, 0x54, 0x00}}}, - {{{ -5, 20, 6}, 0, { 0, 0}, {0x04, 0x22, 0x7a, 0x00}}}, - {{{ -5, -12, -35}, 0, { 0, 0}, {0x07, 0x63, 0xb2, 0x00}}}, - {{{ -5, -30, 21}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, - {{{ -5, 20, 6}, 0, { 0, 0}, {0x81, 0x01, 0x00, 0x00}}}, - {{{ -5, -12, -35}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, - {{{ 67, -30, 17}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, - {{{ 67, -14, -31}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, -}; - -// 0x04016D50 - 0x04016DA0 -const Gfx mario_low_poly_left_forearm_shared_dl[] = { - gsSPVertex(mario_low_poly_left_forearm_shared_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), - gsSP2Triangles(10, 7, 9, 0x0, 10, 9, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016DA0 -static const Vtx mario_low_poly_left_hand_closed_shared_dl_vertex[] = { - {{{ -6, 34, -25}, 0, { 0, 0}, {0xa0, 0x13, 0xb0, 0x00}}}, - {{{ -9, 39, 24}, 0, { 0, 0}, {0xb3, 0x43, 0x4a, 0x00}}}, - {{{ 91, 80, -34}, 0, { 0, 0}, {0x13, 0x7c, 0xee, 0x00}}}, - {{{ 90, 35, 33}, 0, { 0, 0}, {0x41, 0x14, 0x6b, 0x00}}}, - {{{ 20, -34, 21}, 0, { 0, 0}, {0xd4, 0x9a, 0x3c, 0x00}}}, - {{{ 122, 4, -45}, 0, { 0, 0}, {0x63, 0xbb, 0x25, 0x00}}}, - {{{ 122, 4, -45}, 0, { 0, 0}, {0xf2, 0x15, 0x84, 0x00}}}, - {{{ 20, -31, -44}, 0, { 0, 0}, {0xcb, 0xae, 0xb1, 0x00}}}, -}; - -// 0x04016E20 - 0x04016E80 -const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { - gsSPVertex(mario_low_poly_left_hand_closed_shared_dl_vertex, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 4, 5, 3, 0x0, 0, 6, 7, 0x0), - gsSP2Triangles( 0, 2, 6, 0x0, 4, 7, 5, 0x0), - gsSP2Triangles( 3, 1, 4, 0x0, 2, 3, 5, 0x0), - gsSP2Triangles( 0, 7, 4, 0x0, 4, 1, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016E80 - 0x04016EA0 -const Gfx mario_low_poly_left_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04016EA0 -static const Vtx mario_low_poly_right_arm_shared_dl_vertex[] = { - {{{ 65, 30, 23}, 0, { 0, 0}, {0x5e, 0xeb, 0x51, 0x00}}}, - {{{ 66, -21, 8}, 0, { 0, 0}, {0x45, 0xb3, 0x49, 0x00}}}, - {{{ 65, 11, -34}, 0, { 0, 0}, {0x40, 0xa9, 0xbf, 0x00}}}, - {{{ -10, 7, -41}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, - {{{ -9, -28, 10}, 0, { 0, 0}, {0x81, 0xfe, 0x00, 0x00}}}, - {{{ -10, 30, 30}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, - {{{ -9, -28, 10}, 0, { 0, 0}, {0x09, 0x9a, 0xb6, 0x00}}}, - {{{ -10, 7, -41}, 0, { 0, 0}, {0x0c, 0x99, 0xb8, 0x00}}}, - {{{ -10, 30, 30}, 0, { 0, 0}, {0x0a, 0xdb, 0x78, 0x00}}}, - {{{ -9, -28, 10}, 0, { 0, 0}, {0x07, 0xd8, 0x78, 0x00}}}, - {{{ 65, 30, 23}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, - {{{ 65, 11, -34}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, -}; - -// 0x04016F60 - 0x04016FB0 -const Gfx mario_low_poly_right_arm_shared_dl[] = { - gsSPVertex(mario_low_poly_right_arm_shared_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 2, 6, 7, 0x0, 1, 8, 9, 0x0), - gsSP2Triangles( 1, 0, 8, 0x0, 2, 1, 6, 0x0), - gsSP2Triangles( 5, 10, 11, 0x0, 5, 11, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04016FB0 - 0x04016FD0 -const Gfx mario_low_poly_right_arm[] = { - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_right_arm_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04016FD0 -static const Vtx mario_low_poly_right_forearm_shared_dl_vertex[] = { - {{{ -13, 12, -35}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, - {{{ -13, -20, 6}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, - {{{ -13, 30, 21}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, - {{{ 54, 14, -31}, 0, { 0, 0}, {0x3d, 0xaa, 0xba, 0x00}}}, - {{{ -13, -20, 6}, 0, { 0, 0}, {0x05, 0x9e, 0xb1, 0x00}}}, - {{{ -13, 12, -35}, 0, { 0, 0}, {0x07, 0x9c, 0xb3, 0x00}}}, - {{{ 55, -16, 5}, 0, { 0, 0}, {0x43, 0xb5, 0x4c, 0x00}}}, - {{{ -13, 30, 21}, 0, { 0, 0}, {0x05, 0xe0, 0x7a, 0x00}}}, - {{{ -13, -20, 6}, 0, { 0, 0}, {0x04, 0xde, 0x7a, 0x00}}}, - {{{ 54, 30, 17}, 0, { 0, 0}, {0x5c, 0xed, 0x54, 0x00}}}, - {{{ 54, 30, 17}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, - {{{ 54, 14, -31}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, -}; - -// 0x04017090 - 0x040170E0 -const Gfx mario_low_poly_right_forearm_shared_dl[] = { - gsSPVertex(mario_low_poly_right_forearm_shared_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), - gsSP2Triangles( 3, 6, 4, 0x0, 2, 10, 11, 0x0), - gsSP2Triangles( 2, 11, 0, 0x0, 9, 6, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040170E0 -static const Vtx mario_low_poly_right_hand_closed_dl_vertex[] = { - {{{ 85, -38, -32}, 0, { 0, 0}, {0x3d, 0xe3, 0x96, 0x00}}}, - {{{ -15, -35, -22}, 0, { 0, 0}, {0x99, 0xdc, 0xc1, 0x00}}}, - {{{ 17, 37, -22}, 0, { 0, 0}, {0xfe, 0x69, 0xb9, 0x00}}}, - {{{ 116, -10, 36}, 0, { 0, 0}, {0x66, 0x47, 0x16, 0x00}}}, - {{{ 82, -85, 44}, 0, { 0, 0}, {0x13, 0x8a, 0xd8, 0x00}}}, - {{{ -15, -35, 43}, 0, { 0, 0}, {0x9d, 0xec, 0x4c, 0x00}}}, - {{{ 82, -85, 44}, 0, { 0, 0}, {0x02, 0x15, 0x7d, 0x00}}}, - {{{ 14, 30, 26}, 0, { 0, 0}, {0xca, 0x50, 0x51, 0x00}}}, -}; - -// 0x04017160 - 0x040171C0 -const Gfx mario_low_poly_right_hand_closed_dl[] = { - gsSPVertex(mario_low_poly_right_hand_closed_dl_vertex, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 0, 3, 0x0, 4, 5, 1, 0x0), - gsSP2Triangles( 6, 3, 7, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 0, 4, 1, 0x0, 3, 2, 7, 0x0), - gsSP2Triangles( 1, 5, 7, 0x0, 7, 2, 1, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040171C0 - 0x040171E0 -const Gfx mario_low_poly_right_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_right_hand_closed_dl), - gsSPEndDisplayList(), -}; - -// 0x040171E0 - 0x04017210 -const Gfx mario_metal_low_poly_right_hand_closed[] = { - gsSPDisplayList(mario_low_poly_right_hand_closed_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x04017210 -static const Vtx mario_low_poly_left_thigh_dl_vertex[] = { - {{{ 10, 51, 45}, 0, { 0, 0}, {0x08, 0x73, 0x34, 0x00}}}, - {{{ 17, -44, 58}, 0, { 0, 0}, {0x0a, 0x11, 0x7d, 0x00}}}, - {{{ 94, 48, 38}, 0, { 0, 0}, {0x38, 0x40, 0x5d, 0x00}}}, - {{{ 11, 51, -27}, 0, { 0, 0}, {0x0b, 0x5e, 0xad, 0x00}}}, - {{{ 95, 48, -19}, 0, { 0, 0}, {0x4a, 0x4f, 0xbf, 0x00}}}, - {{{ 18, -45, -38}, 0, { 0, 0}, {0x0c, 0x0f, 0x83, 0x00}}}, - {{{ 101, -28, -28}, 0, { 0, 0}, {0x5b, 0xca, 0xbc, 0x00}}}, - {{{ 100, -28, 48}, 0, { 0, 0}, {0x63, 0xbd, 0x29, 0x00}}}, - {{{ 17, -44, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 10, 51, 45}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 18, -45, -38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 11, 51, -27}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, - {{{ 18, -45, -38}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, - {{{ 17, -44, 58}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, -}; - -// 0x040172F0 - 0x04017360 -const Gfx mario_low_poly_left_thigh_dl[] = { - gsSPVertex(mario_low_poly_left_thigh_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 5, 3, 4, 0x0, 4, 6, 5, 0x0), - gsSP2Triangles( 0, 2, 4, 0x0, 1, 7, 2, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSP2Triangles( 6, 4, 7, 0x0, 4, 2, 7, 0x0), - gsSP2Triangles(12, 7, 13, 0x0, 12, 6, 7, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017360 - 0x04017390 -const Gfx mario_low_poly_left_thigh[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x04017390 - 0x04017408 -const Gfx mario_metal_low_poly_left_thigh[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_left_thigh_dl), - gsSPEndDisplayList(), -}; - -// 0x04017408 -static const Vtx mario_low_poly_left_leg_shared_dl_vertex[] = { - {{{ 7, 47, 38}, 0, { 0, 0}, {0xcf, 0x59, 0x4b, 0x00}}}, - {{{ 70, -39, 53}, 0, { 0, 0}, {0xf8, 0x10, 0x7d, 0x00}}}, - {{{ 75, 52, 42}, 0, { 0, 0}, {0xf4, 0x5e, 0x53, 0x00}}}, - {{{ 75, 52, -23}, 0, { 0, 0}, {0xf5, 0x72, 0xca, 0x00}}}, - {{{ 7, 47, -20}, 0, { 0, 0}, {0xab, 0x34, 0xb2, 0x00}}}, - {{{ 71, -39, -34}, 0, { 0, 0}, {0xfa, 0x0f, 0x83, 0x00}}}, - {{{ 3, -29, -29}, 0, { 0, 0}, {0xbb, 0xa4, 0xcd, 0x00}}}, - {{{ 2, -29, 48}, 0, { 0, 0}, {0x92, 0xdb, 0x31, 0x00}}}, - {{{ 71, -39, -34}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 75, 52, -23}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 70, -39, 53}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 75, 52, 42}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, - {{{ 71, -39, -34}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, - {{{ 70, -39, 53}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, -}; - -// 0x040174E8 - 0x04017558 -const Gfx mario_low_poly_left_leg_shared_dl[] = { - gsSPVertex(mario_low_poly_left_leg_shared_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), - gsSP2Triangles( 3, 4, 0, 0x0, 0, 7, 1, 0x0), - gsSP2Triangles( 7, 4, 6, 0x0, 7, 0, 4, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSP2Triangles( 6, 12, 13, 0x0, 13, 7, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017558 -static const Vtx mario_low_poly_left_foot_shared_dl_vertex[] = { - {{{ 110, 11, 56}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 109, 10, -33}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -50, 69, -36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ -49, 70, 63}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, - {{{ 74, -39, 51}, 0, { 0, 0}, {0x13, 0xb0, 0x60, 0x00}}}, - {{{ 110, 11, 56}, 0, { 0, 0}, {0x5b, 0xbb, 0x36, 0x00}}}, - {{{ -49, 70, 63}, 0, { 0, 0}, {0x00, 0xf4, 0x7e, 0x00}}}, - {{{ 73, -40, -25}, 0, { 0, 0}, {0x18, 0x96, 0xc0, 0x00}}}, - {{{ -56, 20, -30}, 0, { 0, 0}, {0xa4, 0xc5, 0xc2, 0x00}}}, - {{{ -50, 69, -36}, 0, { 0, 0}, {0xfe, 0xf0, 0x83, 0x00}}}, - {{{ -54, 20, 58}, 0, { 0, 0}, {0x99, 0xc2, 0x26, 0x00}}}, - {{{ 109, 10, -33}, 0, { 0, 0}, {0x44, 0xc2, 0xaa, 0x00}}}, - {{{ -50, 69, -36}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, - {{{ -49, 70, 63}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, -}; - -// 0x04017638 - 0x040176A8 -const Gfx mario_low_poly_left_foot_shared_dl[] = { - gsSPVertex(mario_low_poly_left_foot_shared_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles(10, 4, 6, 0x0, 7, 9, 11, 0x0), - gsSP2Triangles(12, 10, 13, 0x0, 7, 10, 8, 0x0), - gsSP2Triangles( 7, 11, 5, 0x0, 5, 4, 7, 0x0), - gsSP2Triangles( 7, 4, 10, 0x0, 12, 8, 10, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040176A8 - 0x040176C8 -const Gfx mario_low_poly_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_left_foot_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x040176C8 -static const Vtx mario_low_poly_right_thigh_shared_dl_vertex[] = { - {{{ 102, -25, -48}, 0, { 0, 0}, {0x64, 0xbf, 0xd5, 0x00}}}, - {{{ 103, -27, 25}, 0, { 0, 0}, {0x5c, 0xc9, 0x42, 0x00}}}, - {{{ 25, -45, 35}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, - {{{ 24, -42, -56}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, - {{{ 95, 50, -36}, 0, { 0, 0}, {0x37, 0x42, 0xa3, 0x00}}}, - {{{ 96, 49, 18}, 0, { 0, 0}, {0x4a, 0x4e, 0x41, 0x00}}}, - {{{ 25, -45, 35}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 17, 51, 27}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 15, 53, -42}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 24, -42, -56}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, - {{{ 24, -42, -56}, 0, { 0, 0}, {0x09, 0x13, 0x83, 0x00}}}, - {{{ 15, 53, -42}, 0, { 0, 0}, {0x07, 0x74, 0xce, 0x00}}}, - {{{ 25, -45, 35}, 0, { 0, 0}, {0x0d, 0x0c, 0x7d, 0x00}}}, - {{{ 17, 51, 27}, 0, { 0, 0}, {0x0b, 0x5c, 0x55, 0x00}}}, -}; - -// 0x040177A8 - 0x04017818 -const Gfx mario_low_poly_right_thigh_shared_dl[] = { - gsSPVertex(mario_low_poly_right_thigh_shared_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 0, 4, 5, 0x0, 0, 5, 1, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), - gsSP2Triangles( 4, 0, 10, 0x0, 5, 4, 11, 0x0), - gsSP2Triangles(12, 1, 5, 0x0, 5, 13, 12, 0x0), - gsSP2Triangles( 5, 11, 13, 0x0, 4, 10, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017818 - 0x04017838 -const Gfx mario_low_poly_right_thigh[] = { - gsSPLight(&mario_blue_lights_group.l, 1), - gsSPLight(&mario_blue_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04017838 -static const Vtx mario_low_poly_right_leg_shared_dl_vertex[] = { - {{{ 2, -29, 27}, 0, { 0, 0}, {0xba, 0xa3, 0x31, 0x00}}}, - {{{ 1, -26, -50}, 0, { 0, 0}, {0x91, 0xdd, 0xcf, 0x00}}}, - {{{ 68, -37, -56}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, - {{{ 70, -40, 30}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, - {{{ 68, -37, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 74, 54, -43}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 75, 52, 21}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 70, -40, 30}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, - {{{ 6, 47, 19}, 0, { 0, 0}, {0xad, 0x33, 0x50, 0x00}}}, - {{{ 6, 49, -38}, 0, { 0, 0}, {0xcf, 0x5b, 0xb7, 0x00}}}, - {{{ 68, -37, -56}, 0, { 0, 0}, {0xf8, 0x13, 0x83, 0x00}}}, - {{{ 75, 52, 21}, 0, { 0, 0}, {0xf7, 0x71, 0x38, 0x00}}}, - {{{ 70, -40, 30}, 0, { 0, 0}, {0xfb, 0x0c, 0x7e, 0x00}}}, - {{{ 74, 54, -43}, 0, { 0, 0}, {0xf4, 0x60, 0xaf, 0x00}}}, -}; - -// 0x04017918 - 0x04017988 -const Gfx mario_low_poly_right_leg_shared_dl[] = { - gsSPVertex(mario_low_poly_right_leg_shared_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSP2Triangles( 8, 9, 1, 0x0, 0, 8, 1, 0x0), - gsSP2Triangles(10, 1, 9, 0x0, 9, 8, 11, 0x0), - gsSP2Triangles( 8, 0, 12, 0x0, 12, 11, 8, 0x0), - gsSP2Triangles(11, 13, 9, 0x0, 13, 10, 9, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017988 -static const Vtx mario_low_poly_right_foot_dl_vertex[] = { - {{{ -55, 19, -59}, 0, { 0, 0}, {0x9a, 0xc0, 0xda, 0x00}}}, - {{{ -57, 20, 28}, 0, { 0, 0}, {0xa4, 0xc5, 0x3e, 0x00}}}, - {{{ -52, 69, 34}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, - {{{ 73, -38, -50}, 0, { 0, 0}, {0x15, 0xae, 0xa2, 0x00}}}, - {{{ 71, -37, 25}, 0, { 0, 0}, {0x19, 0x98, 0x42, 0x00}}}, - {{{ 108, 12, -55}, 0, { 0, 0}, {0x5c, 0xbc, 0xcc, 0x00}}}, - {{{ 106, 13, 33}, 0, { 0, 0}, {0x44, 0xc5, 0x58, 0x00}}}, - {{{ -50, 68, -65}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, - {{{ -52, 69, 34}, 0, { 0, 0}, {0xfd, 0xf2, 0x7e, 0x00}}}, - {{{ -50, 68, -65}, 0, { 0, 0}, {0x02, 0xf2, 0x82, 0x00}}}, - {{{ -52, 69, 34}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 108, 12, -55}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ -50, 68, -65}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, - {{{ 106, 13, 33}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, -}; - -// 0x04017A68 - 0x04017AD8 -const Gfx mario_low_poly_right_foot_dl[] = { - gsSPVertex(mario_low_poly_right_foot_dl_vertex, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), - gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), - gsSP2Triangles( 1, 0, 4, 0x0, 7, 0, 2, 0x0), - gsSP2Triangles( 6, 8, 4, 0x0, 9, 3, 0, 0x0), - gsSP2Triangles( 8, 1, 4, 0x0, 9, 5, 3, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017AD8 - 0x04017B18 -const Gfx mario_low_poly_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_right_foot_dl), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x04017B18 - 0x04017B58 -const Gfx mario_metal_low_poly_right_foot[] = { - gsSPDisplayList(mario_low_poly_right_foot_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), -}; - -// 0x04017B58 -static const Vtx mario_seg4_vertex_04017B58[] = { - {{{ -28, 41, -88}, 0, { -396, 1646}, {0xb7, 0x31, 0xa5, 0xff}}}, - {{{ 0, 98, 0}, 0, { 1968, 722}, {0xf0, 0x7d, 0x00, 0xff}}}, - {{{ 35, 64, -82}, 0, { -390, 132}, {0x29, 0x4b, 0xa3, 0xff}}}, - {{{ 39, 90, 0}, 0, { 1698, -280}, {0x4a, 0x67, 0x00, 0xff}}}, - {{{ -28, 41, 89}, 0, { 1610, 1512}, {0xd1, 0x37, 0x67, 0xff}}}, - {{{ 35, 64, 83}, 0, { 1070, -68}, {0x29, 0x4b, 0x5d, 0xff}}}, - {{{ 0, 98, 0}, 0, { -1064, 968}, {0xf0, 0x7d, 0x00, 0xff}}}, - {{{ 39, 90, 0}, 0, { -1146, -124}, {0x4a, 0x67, 0x00, 0xff}}}, -}; - -// 0x04017BD8 -static const Vtx mario_seg4_vertex_04017BD8[] = { - {{{ -28, -71, 81}, 0, { 0, 0}, {0x9a, 0xbd, 0x20, 0xff}}}, - {{{ -28, 41, -88}, 0, { 0, 0}, {0xb7, 0x31, 0xa5, 0xff}}}, - {{{ -28, -71, -80}, 0, { 0, 0}, {0xb7, 0xb5, 0xba, 0xff}}}, - {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, - {{{ -28, 41, 89}, 0, { 0, 0}, {0xd1, 0x37, 0x67, 0xff}}}, - {{{ -28, 89, 0}, 0, { 0, 0}, {0x97, 0x46, 0x00, 0xff}}}, - {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, - {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, - {{{ 0, 98, 0}, 0, { 0, 0}, {0xf0, 0x7d, 0x00, 0xff}}}, - {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, - {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, - {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, - {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, - {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, - {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, -}; - -// 0x04017CC8 -static const Vtx mario_seg4_vertex_04017CC8[] = { - {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, - {{{ 87, 42, 0}, 0, { 0, 0}, {0x76, 0x2d, 0x00, 0xff}}}, - {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, - {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, - {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, - {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, - {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, - {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, - {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, - {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, -}; - -// 0x04017D68 - 0x04017D98 -const Gfx mario_low_poly_yellow_button_dl[] = { - gsSPVertex(mario_seg4_vertex_04017B58, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017D98 - 0x04017E20 -const Gfx mario_low_poly_pants_overalls_shared_dl[] = { - gsSPVertex(mario_seg4_vertex_04017BD8, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 0, 4, 5, 0x0, 3, 6, 0, 0x0), - gsSP2Triangles( 4, 0, 6, 0x0, 0, 5, 1, 0x0), - gsSP2Triangles( 7, 4, 6, 0x0, 5, 4, 8, 0x0), - gsSP2Triangles( 8, 1, 5, 0x0, 3, 1, 9, 0x0), - gsSP2Triangles( 3, 2, 1, 0x0, 6, 3, 10, 0x0), - gsSP2Triangles(10, 11, 6, 0x0, 12, 9, 13, 0x0), - gsSP1Triangle(13, 7, 14, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017E20 - 0x04017E78 -const Gfx mario_low_poly_tshirt_shared_dl[] = { - gsSPVertex(mario_seg4_vertex_04017CC8, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 5, 6, 3, 0x0, 2, 1, 5, 0x0), - gsSP2Triangles( 6, 5, 1, 0x0, 7, 8, 0, 0x0), - gsSP2Triangles( 7, 0, 9, 0x0, 8, 6, 1, 0x0), - gsSP1Triangle( 1, 0, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04017E78 - 0x04017EA0 -const Gfx mario_low_poly_torso_dl[] = { - gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04017EA0 - 0x04017F20 -const Gfx mario_low_poly_torso[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_yellow_button_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_torso_dl), - gsSPEndDisplayList(), -}; - -// 0x04017F20 - 0x04017F40 -const Gfx mario_metal_low_poly_torso[] = { - gsSPDisplayList(mario_low_poly_yellow_button_dl), - gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), - gsSPDisplayList(mario_low_poly_tshirt_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04017F40 -static const Vtx mario_low_poly_mario_m_logo_dl_vertex[] = { - {{{ 272, 48, 53}, 0, { 904, 0}, {0x42, 0x51, 0x47, 0xff}}}, - {{{ 174, 79, -9}, 0, { 452, 816}, {0x51, 0x61, 0xfa, 0xff}}}, - {{{ 146, 27, 92}, 0, { 1238, 962}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ 272, 48, -52}, 0, { -2, 0}, {0x62, 0x27, 0xba, 0xff}}}, - {{{ 146, 27, -91}, 0, { -334, 962}, {0x03, 0x39, 0x8f, 0xff}}}, -}; - -// 0x04017F90 -static const Vtx mario_low_poly_eyes_cap_on_dl_vertex[] = { - {{{ 146, 27, 92}, 0, { 1316, 212}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ 168, 79, 0}, 0, { 458, 68}, {0xd9, 0x78, 0x00, 0xff}}}, - {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ 146, 27, -91}, 0, { -398, 212}, {0x03, 0x39, 0x8f, 0xff}}}, -}; - -// 0x04017FE0 -static const Vtx mario_low_poly_mustache_cap_on_dl_vertex[] = { - {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ 146, 27, -91}, 0, { 1408, -550}, {0x03, 0x39, 0x8f, 0xff}}}, - {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, - {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, - {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, - {{{ 146, 27, 92}, 0, { 1132, -556}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, -}; - -// 0x04018080 -static const Vtx mario_low_poly_face_cap_dl_vertex[] = { - {{{ 272, 48, -52}, 0, { 0, 0}, {0x62, 0x27, 0xba, 0xff}}}, - {{{ 272, 48, 53}, 0, { 0, 0}, {0x42, 0x51, 0x47, 0xff}}}, - {{{ 149, -87, 138}, 0, { 0, 0}, {0x43, 0xb6, 0x4d, 0xff}}}, - {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, - {{{ 149, -87, -137}, 0, { 0, 0}, {0x33, 0xc2, 0x9f, 0xff}}}, - {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, - {{{ 98, -165, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, - {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, - {{{ 168, 79, 0}, 0, { 0, 0}, {0xd9, 0x78, 0x00, 0xff}}}, - {{{ 175, 154, 0}, 0, { 0, 0}, {0xe1, 0x6c, 0xc6, 0xff}}}, - {{{ 174, 79, -9}, 0, { 0, 0}, {0x51, 0x61, 0xfa, 0xff}}}, -}; - -// 0x04018140 -static const Vtx mario_low_poly_face_part_cap_on_dl_vertex[] = { - {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, - {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, - {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, - {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, - {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, - {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, - {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, - {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, - {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, -}; - -// 0x04018210 -static const Vtx mario_low_poly_face_back_hair_cap_on_dl_vertex[] = { - {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, - {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, - {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, - {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, - {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, - {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, -}; - -// 0x04018270 - 0x04018298 -const Gfx mario_low_poly_mario_m_logo_dl[] = { - gsSPVertex(mario_low_poly_mario_m_logo_dl_vertex, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP1Triangle( 3, 1, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018298 - 0x040182C0 -const Gfx mario_low_poly_eyes_cap_on_dl[] = { - gsSPVertex(mario_low_poly_eyes_cap_on_dl_vertex, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), - gsSP1Triangle( 3, 2, 1, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040182C0 - 0x04018300 -const Gfx mario_low_poly_mustache_cap_on_dl[] = { - gsSPVertex(mario_low_poly_mustache_cap_on_dl_vertex, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 7, 8, 5, 0x0, 6, 9, 7, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018300 - 0x04018370 -const Gfx mario_low_poly_face_part_cap_on_dl[] = { - gsSPVertex(mario_low_poly_face_part_cap_on_dl_vertex, 13, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 5, 0x0), - gsSP2Triangles( 4, 1, 0, 0x0, 4, 0, 3, 0x0), - gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 6, 8, 0x0, 8, 7, 10, 0x0), - gsSP2Triangles(10, 7, 11, 0x0, 10, 11, 12, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018370 - 0x040183F0 -const Gfx mario_low_poly_face_cap_dl[] = { - gsSPVertex(mario_low_poly_face_cap_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0), - gsSP2Triangles( 6, 2, 5, 0x0, 6, 7, 2, 0x0), - gsSP2Triangles( 7, 4, 2, 0x0, 3, 4, 8, 0x0), - gsSP2Triangles( 4, 7, 8, 0x0, 9, 10, 3, 0x0), - gsSP2Triangles(10, 11, 3, 0x0, 8, 7, 6, 0x0), - gsSP2Triangles(10, 5, 11, 0x0, 10, 9, 5, 0x0), - gsSPEndDisplayList(), -}; - -// 0x040183F0 - 0x04018420 -const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { - gsSPVertex(mario_low_poly_face_back_hair_cap_on_dl_vertex, 6, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 1, 0, 0x0, 3, 2, 5, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018420 - 0x04018460 -const Gfx mario_low_poly_face_cap_on_dl[] = { - gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_face_cap_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018460 - 0x04018530 -const Gfx mario_low_poly_cap_on_eyes_front[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018530 - 0x04018600 -const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018600 - 0x040186D0 -const Gfx mario_low_poly_cap_on_eyes_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x040186D0 - 0x040187A0 -const Gfx mario_low_poly_cap_on_eyes_right[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x040187A0 - 0x04018870 -const Gfx mario_low_poly_cap_on_eyes_left[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018870 - 0x04018940 -const Gfx mario_low_poly_cap_on_eyes_up[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018940 - 0x04018A10 -const Gfx mario_low_poly_cap_on_eyes_down[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018A10 - 0x04018AE0 -const Gfx mario_low_poly_cap_on_eyes_dead[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018AE0 - 0x04018B18 -const Gfx mario_metal_low_poly_cap_on[] = { - gsSPDisplayList(mario_low_poly_mario_m_logo_dl), - gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), - gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), - gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), - gsSPDisplayList(mario_low_poly_face_cap_dl), - gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), - gsSPEndDisplayList(), -}; - -// 0x04018B18 -static const Vtx mario_low_poly_mario_eyes_cap_off_dl_vertex[] = { - {{{ 146, 27, 92}, 0, { 1316, 212}, {0x16, 0x25, 0x77, 0xff}}}, - {{{ 168, 79, 0}, 0, { 458, 68}, {0x27, 0x78, 0x00, 0xff}}}, - {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ 146, 27, -91}, 0, { -398, 212}, {0x14, 0x26, 0x89, 0xff}}}, -}; - -// 0x04018B68 -static const Vtx mario_low_poly_mustache_cap_off_dl_vertex[] = { - {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, - {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, - {{{ 146, 27, -91}, 0, { 1408, -550}, {0x14, 0x26, 0x89, 0xff}}}, - {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, - {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, - {{{ 146, 27, 92}, 0, { 1132, -556}, {0x16, 0x25, 0x77, 0xff}}}, -}; - -// 0x04018C08 -static const Vtx mario_low_poly_face_part_cap_off_dl_vertex[] = { - {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, - {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, - {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, - {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, - {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, - {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, - {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, - {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, - {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, - {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, - {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, - {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, - {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, -}; - -// 0x04018CD8 -static const Vtx mario_low_poly_face_hair_cap_off_dl_vertex[] = { - {{{ 58, -114, 81}, 0, { 0, 0}, {0xd3, 0x9b, 0x3d, 0xff}}}, - {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, - {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, - {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, - {{{ 167, -121, 77}, 0, { 0, 0}, {0x3c, 0xad, 0x4a, 0xff}}}, - {{{ 58, -114, -80}, 0, { 0, 0}, {0xd8, 0xa3, 0xb5, 0xff}}}, - {{{ 90, -136, 0}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0xff}}}, - {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, - {{{ 167, -121, -81}, 0, { 0, 0}, {0x3a, 0xad, 0xb5, 0xff}}}, - {{{ 218, 48, -52}, 0, { 0, 0}, {0x5f, 0x3b, 0xc6, 0xff}}}, - {{{ 168, 79, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, - {{{ 192, -28, -80}, 0, { 0, 0}, {0x55, 0xf7, 0xa3, 0xff}}}, - {{{ 223, -38, -1}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}}, - {{{ 218, 48, 53}, 0, { 0, 0}, {0x60, 0x39, 0x3a, 0xff}}}, - {{{ 192, -28, 78}, 0, { 0, 0}, {0x56, 0xf4, 0x5c, 0xff}}}, -}; - -// 0x04018DC8 - 0x04018DF0 -const Gfx mario_low_poly_mario_eyes_cap_off_dl[] = { - gsSPVertex(mario_low_poly_mario_eyes_cap_off_dl_vertex, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), - gsSP1Triangle( 3, 2, 1, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018DF0 - 0x04018E30 -const Gfx mario_low_poly_mustache_cap_off_dl[] = { - gsSPVertex(mario_low_poly_mustache_cap_off_dl_vertex, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 2, 4, 0, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 6, 8, 7, 0x0, 7, 9, 5, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018E30 - 0x04018EA0 -const Gfx mario_low_poly_face_part_cap_off_dl[] = { - gsSPVertex(mario_low_poly_face_part_cap_off_dl_vertex, 13, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 5, 0, 0x0, 5, 3, 0, 0x0), - gsSP2Triangles( 1, 3, 5, 0x0, 2, 1, 4, 0x0), - gsSP2Triangles( 1, 5, 4, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 7, 9, 8, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles(10, 9, 11, 0x0, 10, 11, 12, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018EA0 - 0x04018F68 -const Gfx mario_low_poly_face_hair_cap_off_dl[] = { - gsSPVertex(mario_low_poly_face_hair_cap_off_dl_vertex, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), - gsSP2Triangles( 5, 6, 0, 0x0, 0, 6, 4, 0x0), - gsSP2Triangles( 5, 2, 7, 0x0, 7, 8, 5, 0x0), - gsSP2Triangles( 8, 6, 5, 0x0, 9, 7, 10, 0x0), - gsSP2Triangles( 7, 9, 11, 0x0, 7, 11, 8, 0x0), - gsSP2Triangles( 6, 8, 4, 0x0, 8, 11, 12, 0x0), - gsSP2Triangles( 4, 8, 12, 0x0, 11, 9, 12, 0x0), - gsSP2Triangles(13, 14, 12, 0x0, 14, 4, 12, 0x0), - gsSP2Triangles( 4, 14, 3, 0x0, 13, 10, 3, 0x0), - gsSP2Triangles(14, 13, 3, 0x0, 9, 10, 13, 0x0), - gsSP1Triangle( 9, 13, 12, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04018F68 - 0x04018F90 -const Gfx mario_low_poly_face_cap_off_dl[] = { - gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04018F90 - 0x04019040 -const Gfx mario_low_poly_cap_off_eyes_front[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019040 - 0x040190F0 -const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x040190F0 - 0x040191A0 -const Gfx mario_low_poly_cap_off_eyes_closed[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x040191A0 - 0x04019250 -const Gfx mario_low_poly_cap_off_eyes_right[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019250 - 0x04019300 -const Gfx mario_low_poly_cap_off_eyes_left[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019300 - 0x040193B0 -const Gfx mario_low_poly_cap_off_eyes_up[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x040193B0 - 0x04019460 -const Gfx mario_low_poly_cap_off_eyes_down[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019460 - 0x04019510 -const Gfx mario_low_poly_cap_off_eyes_dead[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_low_poly_face_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019510 - 0x04019538 -const Gfx mario_metal_low_poly_cap_off[] = { - gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), - gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), - gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), - gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), - gsSPEndDisplayList(), -}; - -// 0x04019538 -static const Vtx mario_left_hand_open_shared_dl_vertex_group1[] = { - {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, - {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, - {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, - {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, - {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, - {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, - {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, - {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, - {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, - {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, - {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, - {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, - {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, -}; - -// 0x04019618 -static const Vtx mario_left_hand_open_shared_dl_vertex_group2[] = { - {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, - {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, - {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, - {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, - {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, - {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, - {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, - {{{ 20, -46, 12}, 0, { 0, 0}, {0x26, 0x9e, 0x45, 0x00}}}, - {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, - {{{ -17, 40, -8}, 0, { 0, 0}, {0xbc, 0x68, 0x16, 0x00}}}, - {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, - {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, - {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, - {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, - {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, -}; - -// 0x04019718 -static const Vtx mario_left_hand_open_shared_dl_vertex_group3[] = { - {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, - {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, - {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, - {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, - {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, - {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, - {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, - {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, - {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, - {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, - {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, - {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, - {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, - {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, - {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, -}; - -// 0x04019818 -static const Vtx mario_left_hand_open_shared_dl_vertex_group4[] = { - {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, - {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, - {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, - {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, - {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, - {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, - {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, - {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, - {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, - {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, - {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, - {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, - {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, - {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, - {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, -}; - -// 0x04019918 -static const Vtx mario_left_hand_open_shared_dl_vertex_group5[] = { - {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, - {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, - {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, - {{{ -15, 4, -32}, 0, { 0, 0}, {0x89, 0xdd, 0xe7, 0x00}}}, - {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, - {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, - {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, - {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, - {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, - {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, - {{{ 1, 15, -37}, 0, { 0, 0}, {0xd2, 0x09, 0x8b, 0x00}}}, - {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, - {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, - {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, - {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, -}; - -// 0x04019A18 -static const Vtx mario_left_hand_open_shared_dl_vertex_group6[] = { - {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, - {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, - {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, - {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, - {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, -}; - -// 0x04019A68 - 0x04019CA0 -const Gfx mario_left_hand_open_shared_dl[] = { - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group1, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 6, 3, 7, 0x0), - gsSP2Triangles( 1, 0, 5, 0x0, 5, 4, 1, 0x0), - gsSP2Triangles( 5, 3, 6, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles( 8, 11, 9, 0x0, 12, 13, 11, 0x0), - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 0, 10, 7, 0x0, 11, 10, 0, 0x0), - gsSP2Triangles(12, 13, 11, 0x0, 9, 8, 13, 0x0), - gsSP2Triangles( 7, 5, 8, 0x0, 10, 14, 7, 0x0), - gsSP2Triangles(11, 14, 10, 0x0, 13, 4, 11, 0x0), - gsSP2Triangles( 8, 5, 13, 0x0, 3, 15, 1, 0x0), - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 1, 9, 10, 0x0, 5, 11, 1, 0x0), - gsSP2Triangles(12, 13, 5, 0x0, 14, 9, 15, 0x0), - gsSP1Triangle( 4, 7, 12, 0x0), - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 7, 0, 2, 0x0), - gsSP2Triangles( 8, 6, 5, 0x0, 5, 9, 10, 0x0), - gsSP2Triangles(11, 3, 2, 0x0, 2, 12, 11, 0x0), - gsSP2Triangles( 3, 13, 9, 0x0, 6, 0, 7, 0x0), - gsSP2Triangles( 7, 4, 9, 0x0, 10, 14, 15, 0x0), - gsSP1Triangle(15, 14, 11, 0x0), - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group5, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 7, 6, 0, 0x0, 2, 8, 9, 0x0), - gsSP2Triangles( 4, 10, 8, 0x0, 11, 10, 4, 0x0), - gsSP2Triangles( 7, 12, 11, 0x0, 9, 12, 7, 0x0), - gsSP2Triangles( 6, 3, 1, 0x0, 6, 5, 3, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 14, 10, 11, 0x0), - gsSP2Triangles( 8, 10, 15, 0x0, 10, 14, 15, 0x0), - gsSPVertex(mario_left_hand_open_shared_dl_vertex_group6, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x04019CA0 - 0x04019CC0 -const Gfx mario_left_hand_open[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_left_hand_open_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x04019CC0 -static const Vtx mario_right_hand_open_dl_vertex_group1[] = { - {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, - {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, - {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, - {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, - {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, - {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, - {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, - {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, - {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, - {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, - {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, - {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, - {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, -}; - -// 0x04019DA0 -static const Vtx mario_right_hand_open_dl_vertex_group2[] = { - {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, - {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, - {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, - {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, - {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, - {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, - {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, - {{{ 25, -46, -9}, 0, { 0, 0}, {0x21, 0x97, 0xc1, 0x00}}}, - {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, - {{{ -9, 41, 5}, 0, { 0, 0}, {0xbc, 0x66, 0xe5, 0x00}}}, - {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, - {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, - {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, - {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, - {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, -}; - -// 0x04019EA0 -static const Vtx mario_right_hand_open_dl_vertex_group3[] = { - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, - {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, - {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, - {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, - {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, - {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, - {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, - {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, - {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, - {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, - {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, - {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, - {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, - {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, - {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, - {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, -}; - -// 0x04019FA0 -static const Vtx mario_right_hand_open_dl_vertex_group4[] = { - {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, - {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, - {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, - {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, - {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, - {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, - {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, - {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, - {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, - {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, - {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, - {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, - {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, - {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, - {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, -}; - -// 0x0401A0A0 -static const Vtx mario_right_hand_open_dl_vertex_group5[] = { - {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, - {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, - {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, - {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, - {{{ -7, 7, 32}, 0, { 0, 0}, {0x8a, 0xe2, 0x20, 0x00}}}, - {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, - {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, - {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, - {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, - {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, - {{{ 9, 18, 35}, 0, { 0, 0}, {0xd8, 0x13, 0x76, 0x00}}}, - {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, - {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, - {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, - {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, -}; - -// 0x0401A1A0 -static const Vtx mario_right_hand_open_dl_vertex_group6[] = { - {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, - {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, - {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, - {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, - {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, -}; - -// 0x0401A1F0 - 0x0401A428 -const Gfx mario_right_hand_open_dl[] = { - gsSPVertex(mario_right_hand_open_dl_vertex_group1, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 4, 0x0), - gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0), - gsSP2Triangles( 4, 3, 5, 0x0, 8, 9, 10, 0x0), - gsSP2Triangles( 9, 11, 10, 0x0, 11, 12, 13, 0x0), - gsSPVertex(mario_right_hand_open_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 9, 10, 2, 0x0, 2, 10, 11, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 12, 8, 7, 0x0), - gsSP2Triangles( 8, 5, 9, 0x0, 9, 14, 10, 0x0), - gsSP2Triangles(10, 14, 11, 0x0, 11, 6, 12, 0x0), - gsSP2Triangles(12, 5, 8, 0x0, 1, 15, 3, 0x0), - gsSPVertex(mario_right_hand_open_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 10, 1, 0x0, 1, 11, 4, 0x0), - gsSP2Triangles( 4, 12, 13, 0x0, 14, 10, 15, 0x0), - gsSP1Triangle(13, 7, 5, 0x0), - gsSPVertex(mario_right_hand_open_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 5, 0x0), - gsSP2Triangles( 7, 6, 8, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles( 0, 4, 11, 0x0, 11, 12, 0, 0x0), - gsSP2Triangles(10, 13, 4, 0x0, 5, 2, 6, 0x0), - gsSP2Triangles(10, 3, 5, 0x0, 14, 15, 9, 0x0), - gsSP1Triangle(11, 15, 14, 0x0), - gsSPVertex(mario_right_hand_open_dl_vertex_group5, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), - gsSP2Triangles( 2, 7, 6, 0x0, 8, 9, 0, 0x0), - gsSP2Triangles( 9, 10, 3, 0x0, 3, 10, 11, 0x0), - gsSP2Triangles(11, 12, 6, 0x0, 6, 12, 8, 0x0), - gsSP2Triangles( 1, 4, 7, 0x0, 4, 5, 7, 0x0), - gsSP2Triangles(13, 12, 11, 0x0, 11, 10, 14, 0x0), - gsSP2Triangles(15, 10, 9, 0x0, 15, 14, 10, 0x0), - gsSPVertex(mario_right_hand_open_dl_vertex_group6, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401A428 - 0x0401A448 -const Gfx mario_right_hand_open[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_right_hand_open_dl), - gsSPEndDisplayList(), -}; - -// 0x0401A448 - 0x0401A478 -const Gfx mario_metal_right_hand_open[] = { - gsSPDisplayList(mario_right_hand_open_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x0401A478 -static const Vtx mario_right_hand_cap_m_logo_dl_vertex[] = { - {{{ 131, 47, -1}, 0, { 1104, 228}, {0xd7, 0x60, 0xb8, 0xff}}}, - {{{ 107, -19, -33}, 0, { 474, 32}, {0xd1, 0x0e, 0x8c, 0xff}}}, - {{{ 78, 11, 40}, 0, { 772, 818}, {0xd0, 0x3e, 0x9d, 0xff}}}, - {{{ 70, -52, 35}, 0, { 196, 800}, {0xc5, 0xde, 0x96, 0xff}}}, - {{{ 114, -92, -11}, 0, { -148, 188}, {0xc4, 0xb8, 0xac, 0xff}}}, -}; - -// 0x0401A4C8 -static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group1[] = { - {{{ 1, 24, 35}, 0, { 0, 0}, {0xd4, 0x3c, 0x66, 0xff}}}, - {{{ 29, 7, 48}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0xff}}}, - {{{ 29, 62, 34}, 0, { 0, 0}, {0xcd, 0x4c, 0x57, 0xff}}}, - {{{ 11, 60, -3}, 0, { 0, 0}, {0xab, 0x59, 0xe6, 0xff}}}, - {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, - {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, - {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, - {{{ -2, 41, 0}, 0, { 0, 0}, {0xee, 0x71, 0xca, 0xff}}}, - {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, - {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, - {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, - {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, - {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, - {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, - {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, -}; - -// 0x0401A5B8 -static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group2[] = { - {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, - {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, - {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, - {{{ 31, -39, 0}, 0, { 0, 0}, {0x42, 0xa3, 0xca, 0xff}}}, - {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, - {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, - {{{ 55, -43, -3}, 0, { 0, 0}, {0x00, 0x86, 0xe0, 0xff}}}, - {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, - {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, - {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, - {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, - {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, - {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, - {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, - {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, - {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, -}; - -// 0x0401A6B8 -static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group3[] = { - {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, - {{{ 85, 30, -32}, 0, { 0, 0}, {0x4f, 0x21, 0xa3, 0xff}}}, - {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, - {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, - {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, - {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, - {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, - {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, - {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, - {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, - {{{ 96, 39, 24}, 0, { 0, 0}, {0x6b, 0x39, 0x21, 0xff}}}, - {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, - {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, - {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, -}; - -// 0x0401A798 -static const Vtx mario_right_hand_cap_top_dl_vertex_group1[] = { - {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, - {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, - {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, - {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, - {{{ 151, -168, 67}, 0, { 0, 0}, {0xf4, 0x87, 0xdc, 0xff}}}, - {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, - {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, - {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, - {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, - {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, - {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, - {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, - {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, - {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, - {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, -}; - -// 0x0401A888 -static const Vtx mario_right_hand_cap_top_dl_vertex_group2[] = { - {{{ 78, 11, 40}, 0, { 0, 0}, {0xd0, 0x3e, 0x9d, 0xff}}}, - {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, - {{{ 131, 47, -1}, 0, { 0, 0}, {0xd7, 0x60, 0xb8, 0xff}}}, - {{{ 45, 49, 53}, 0, { 0, 0}, {0xa8, 0x5a, 0x0a, 0xff}}}, - {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, - {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, - {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, - {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, - {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, - {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, - {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, - {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, - {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, - {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, - {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, - {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, -}; - -// 0x0401A988 -static const Vtx mario_right_hand_cap_top_dl_vertex_group3[] = { - {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, - {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, - {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, - {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, - {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, - {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, - {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, - {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, - {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, - {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, - {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, - {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, - {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, - {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, - {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, - {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, -}; - -// 0x0401AA88 -static const Vtx mario_right_hand_cap_top_dl_vertex_group4[] = { - {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, - {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, - {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, - {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, - {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, - {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, - {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, - {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, -}; - -// 0x0401AB08 -static const Vtx mario_right_hand_cap_bottom_dl_vertex[] = { - {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, - {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, - {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, - {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, - {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, - {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, - {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, - {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, - {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, - {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, -}; - -// 0x0401ABA8 - 0x0401ABD0 -const Gfx mario_right_hand_cap_m_logo_dl[] = { - gsSPVertex(mario_right_hand_cap_m_logo_dl_vertex, 5, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSP1Triangle( 1, 4, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401ABD0 - 0x0401AD40 -const Gfx mario_right_hand_cap_top_dl[] = { - gsSPVertex(mario_right_hand_cap_top_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 2, 4, 5, 0x0, 6, 2, 1, 0x0), - gsSP2Triangles( 2, 6, 4, 0x0, 7, 4, 8, 0x0), - gsSP2Triangles( 8, 4, 6, 0x0, 4, 9, 5, 0x0), - gsSP2Triangles( 4, 7, 9, 0x0, 5, 9, 10, 0x0), - gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), - gsSPVertex(mario_right_hand_cap_top_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 0, 3, 1, 0x0, 5, 2, 1, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 0, 9, 3, 0x0), - gsSP2Triangles(10, 9, 0, 0x0, 11, 12, 2, 0x0), - gsSP2Triangles( 2, 5, 11, 0x0, 3, 9, 4, 0x0), - gsSP2Triangles(13, 14, 15, 0x0, 11, 5, 14, 0x0), - gsSP1Triangle( 7, 14, 5, 0x0), - gsSPVertex(mario_right_hand_cap_top_dl_vertex_group3, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 7, 8, 9, 0x0, 7, 6, 8, 0x0), - gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 9, 0x0), - gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), - gsSP1Triangle(13, 12, 15, 0x0), - gsSPVertex(mario_right_hand_cap_top_dl_vertex_group4, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), - gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 6, 0x0), - gsSP1Triangle( 7, 0, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401AD40 - 0x0401AED0 -const Gfx mario_right_hand_cap_hand_position_dl[] = { - gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group1, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 6, 0x0), - gsSP2Triangles( 6, 3, 2, 0x0, 5, 2, 4, 0x0), - gsSP2Triangles( 3, 7, 0, 0x0, 3, 6, 8, 0x0), - gsSP2Triangles( 3, 8, 7, 0x0, 9, 0, 7, 0x0), - gsSP2Triangles(10, 0, 9, 0x0, 1, 0, 10, 0x0), - gsSP2Triangles(11, 1, 10, 0x0, 11, 4, 1, 0x0), - gsSP2Triangles( 7, 12, 13, 0x0, 8, 12, 7, 0x0), - gsSP2Triangles(13, 14, 7, 0x0, 7, 14, 9, 0x0), - gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group2, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 6, 2, 4, 0x0), - gsSP2Triangles( 7, 5, 4, 0x0, 8, 9, 3, 0x0), - gsSP2Triangles( 3, 9, 10, 0x0, 10, 6, 3, 0x0), - gsSP2Triangles( 5, 11, 3, 0x0, 3, 11, 8, 0x0), - gsSP2Triangles(10, 0, 6, 0x0, 6, 0, 2, 0x0), - gsSP2Triangles( 2, 1, 12, 0x0, 5, 13, 11, 0x0), - gsSP2Triangles( 1, 14, 12, 0x0, 14, 15, 12, 0x0), - gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group3, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), - gsSP2Triangles( 7, 5, 8, 0x0, 8, 5, 9, 0x0), - gsSP2Triangles( 3, 10, 1, 0x0, 11, 10, 3, 0x0), - gsSP2Triangles( 1, 10, 2, 0x0, 2, 10, 12, 0x0), - gsSP2Triangles(12, 10, 13, 0x0, 10, 11, 13, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401AED0 - 0x0401AF20 -const Gfx mario_right_hand_cap_bottom_dl[] = { - gsSPVertex(mario_right_hand_cap_bottom_dl_vertex, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), - gsSP2Triangles( 6, 5, 2, 0x0, 6, 2, 7, 0x0), - gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401AF20 - 0x0401AF60 -const Gfx mario_right_hand_cap_dl[] = { - gsSPDisplayList(mario_right_hand_cap_top_dl), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_right_hand_cap_hand_position_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_right_hand_cap_bottom_dl), - gsSPEndDisplayList(), -}; - -// 0x0401AF60 -static const Vtx mario_right_hand_cap_wings_half_1_dl_vertex[] = { - {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 212, 96, 143}, 0, { 990, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 322, 87, -67}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 178, -177, 128}, 0, { 990, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 149, -100, 60}, 0, { 0, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 319, -248, -14}, 0, { 990, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 290, -171, -81}, 0, { 0, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, -}; - -// 0x0401B000 -static const Vtx mario_right_hand_cap_wings_half_2_dl_vertex[] = { - {{{ 414, 206, 82}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 212, 96, 143}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 258, 156, 218}, 0, { 990, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 368, 146, 7}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 178, -177, 128}, 0, { 0, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 319, -248, -14}, 0, { 0, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 349, -325, 53}, 0, { 990, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 207, -253, 195}, 0, { 990, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, -}; - -// 0x0401B080 - 0x0401B0B0 -const Gfx mario_right_hand_cap_wings_half_1_dl[] = { - gsSPVertex(mario_right_hand_cap_wings_half_1_dl_vertex, 10, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401B0B0 - 0x0401B0E0 -const Gfx mario_right_hand_cap_wings_half_2_dl[] = { - gsSPVertex(mario_right_hand_cap_wings_half_2_dl_vertex, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401B0E0 - 0x0401B138 -const Gfx mario_right_hand_cap_wings_intial_dl[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPEndDisplayList(), -}; - -// 0x0401B138 - 0x0401B158 -const Gfx mario_right_hand_cap_wings_end_dl[] = { - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - -// 0x0401B158 - 0x0401B1D8 -const Gfx mario_right_hand_cap[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_right_hand_cap_m_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_right_hand_cap_dl), - gsSPEndDisplayList(), -}; - -// 0x0401B1D8 - 0x0401B230 -const Gfx mario_right_hand_cap_wings[] = { - gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), - gsSPDisplayList(mario_right_hand_cap_wings_end_dl), - gsSPEndDisplayList(), -}; - -// 0x0401B230 - 0x0401B278 -const Gfx mario_metal_right_hand_cap_shared_dl[] = { - gsSPDisplayList(mario_right_hand_cap_m_logo_dl), - gsSPDisplayList(mario_right_hand_cap_top_dl), - gsSPDisplayList(mario_right_hand_cap_hand_position_dl), - gsSPDisplayList(mario_right_hand_cap_bottom_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x0401B278 - 0x0401B2D0 -const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = { - gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), - gsSPDisplayList(mario_right_hand_cap_wings_end_dl), - gsSPEndDisplayList(), -}; - -// 0x0401B2D0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group1[] = { - {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0x00}}}, - {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0x00}}}, - {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0x00}}}, - {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, - {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, - {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, - {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, - {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, - {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, - {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, - {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, - {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, - {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0xff}}}, - {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, - {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, - {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, -}; - -// 0x0401B3D0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group2[] = { - {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, - {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0x00}}}, - {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, - {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, - {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, - {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, - {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, - {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, - {{{ 24, -59, -3}, 0, { 0, 0}, {0xc4, 0xb9, 0xab, 0xff}}}, - {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, - {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, - {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, -}; - -// 0x0401B4B0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group3[] = { - {{{ -22, 43, -3}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0xff}}}, - {{{ -4, 38, 0}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0x00}}}, - {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, - {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, - {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, - {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, - {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0xff}}}, - {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, - {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, - {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, - {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, - {{{ 24, -59, -3}, 0, { 0, 0}, {0xce, 0x92, 0x24, 0xff}}}, - {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, - {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, - {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, -}; - -// 0x0401B5A0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group4[] = { - {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, - {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0x00}}}, - {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, - {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, - {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, - {{{ 98, 10, 29}, 0, { 0, 0}, {0x0a, 0x7a, 0x21, 0xff}}}, - {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, - {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, - {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, - {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, - {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, - {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, - {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, - {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, -}; - -// 0x0401B6A0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group5[] = { - {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, - {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0x00}}}, - {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0x00}}}, - {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, - {{{ 23, -29, 36}, 0, { 0, 0}, {0xe3, 0x8b, 0x25, 0xff}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0xff}}}, - {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, - {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, - {{{ 166, -13, -17}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, - {{{ 162, 14, -11}, 0, { 0, 0}, {0x79, 0x01, 0x25, 0xff}}}, - {{{ 153, 7, 24}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, - {{{ 155, -15, 21}, 0, { 0, 0}, {0x79, 0x06, 0x23, 0xff}}}, - {{{ 84, 60, -7}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, - {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, - {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, -}; - -// 0x0401B7A0 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group6[] = { - {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, - {{{ 126, 84, -3}, 0, { 0, 0}, {0x5f, 0x47, 0x2a, 0x00}}}, - {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0x00}}}, - {{{ 126, 84, -3}, 0, { 0, 0}, {0xfd, 0x37, 0x8e, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, - {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, - {{{ 146, 59, -8}, 0, { 0, 0}, {0x15, 0x2a, 0x8b, 0xff}}}, - {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x06, 0x7e, 0xff, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, - {{{ 162, 14, -11}, 0, { 0, 0}, {0x26, 0x1e, 0x8b, 0xff}}}, - {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, - {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, - {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, - {{{ 84, 60, -7}, 0, { 0, 0}, {0x4d, 0x5d, 0x24, 0xff}}}, -}; - -// 0x0401B890 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group7[] = { - {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0x00}}}, - {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0x00}}}, - {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, - {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, - {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, - {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, - {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, - {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0xff}}}, - {{{ 155, -15, 21}, 0, { 0, 0}, {0x19, 0x85, 0xf1, 0xff}}}, - {{{ 166, -13, -17}, 0, { 0, 0}, {0x10, 0x83, 0x00, 0xff}}}, - {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, - {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, - {{{ 98, 10, 29}, 0, { 0, 0}, {0x07, 0xd6, 0x77, 0xff}}}, -}; - -// 0x0401B980 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group8[] = { - {{{ 139, 53, 25}, 0, { 0, 0}, {0xfc, 0x13, 0x7d, 0xff}}}, - {{{ 123, 72, 21}, 0, { 0, 0}, {0xfc, 0x15, 0x7d, 0x00}}}, - {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0x00}}}, - {{{ 98, 10, 29}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, - {{{ 155, -15, 21}, 0, { 0, 0}, {0xf5, 0xef, 0x7d, 0xff}}}, - {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, - {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, - {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, - {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x51, 0xa6, 0xdd, 0xff}}}, - {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, - {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, - {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, -}; - -// 0x0401BA70 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group9[] = { - {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, - {{{ 123, 72, 21}, 0, { 0, 0}, {0xc3, 0x66, 0x29, 0x00}}}, - {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0x00}}}, - {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, - {{{ 98, 10, 29}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, - {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, - {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, - {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, - {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, - {{{ 139, 53, 25}, 0, { 0, 0}, {0x5a, 0x52, 0x21, 0xff}}}, - {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, - {{{ 24, -59, -3}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, - {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, - {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, -}; - -// 0x0401BB70 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group10[] = { - {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, - {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, - {{{ 32, -43, 0}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0x00}}}, - {{{ 24, -59, -3}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0xff}}}, - {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, - {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, - {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, - {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, - {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, - {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, - {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, - {{{ -22, 43, -3}, 0, { 0, 0}, {0x1a, 0x72, 0x2f, 0xff}}}, - {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, - {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, -}; - -// 0x0401BC50 -static const Vtx mario_right_hand_peace_shared_dl_vertex_group11[] = { - {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, - {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, - {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0x00}}}, -}; - -// 0x0401BC80 - 0x0401BF30 -const Gfx mario_right_hand_peace_shared_dl[] = { - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), - gsSP2Triangles( 8, 7, 9, 0x0, 7, 6, 10, 0x0), - gsSP2Triangles( 7, 10, 9, 0x0, 11, 8, 9, 0x0), - gsSP2Triangles( 7, 12, 5, 0x0, 10, 13, 14, 0x0), - gsSP2Triangles( 6, 15, 10, 0x0, 10, 14, 9, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group2, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 5, 6, 7, 0x0, 8, 0, 9, 0x0), - gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 9, 8, 10, 0x0, 9, 10, 11, 0x0), - gsSP1Triangle(12, 13, 14, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group4, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 2, 12, 13, 0x0, 3, 5, 12, 0x0), - gsSP1Triangle(12, 14, 15, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group5, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group6, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), - gsSP2Triangles( 4, 10, 11, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group7, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), - gsSP2Triangles(10, 9, 11, 0x0, 12, 13, 14, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group8, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 3, 2, 7, 0x0), - gsSP2Triangles( 8, 3, 7, 0x0, 9, 10, 11, 0x0), - gsSP1Triangle(12, 13, 14, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group9, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group10, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSP2Triangles(12, 13, 9, 0x0, 12, 9, 8, 0x0), - gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group11, 3, 0), - gsSP1Triangle( 0, 1, 2, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401BF30 - 0x0401BF50 -const Gfx mario_right_hand_peace[] = { - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_right_hand_peace_shared_dl), - gsSPEndDisplayList(), -}; - -// 0x0401BF50 -static const Vtx mario_cap_unused_m_logo_dl_vertex[] = { - {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, - {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, - {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, -}; - -// 0x0401BFC0 -static const Vtx mario_cap_unused_base_top_dl_vertex_group1[] = { - {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, - {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, - {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, - {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, - {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, - {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, - {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, - {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, - {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, -}; - -// 0x0401C0C0 -static const Vtx mario_cap_unused_base_top_dl_vertex_group2[] = { - {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, - {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, - {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, - {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, - {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, - {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, - {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, -}; - -// 0x0401C1B0 -static const Vtx mario_cap_unused_base_top_dl_vertex_group3[] = { - {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, - {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, - {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, - {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, - {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, - {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, - {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, - {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, - {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, - {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, -}; - -// 0x0401C2A0 -static const Vtx mario_cap_unused_base_bottom_dl_vertex[] = { - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, - {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, - {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, -}; - -// 0x0401C330 - 0x0401C368 -const Gfx mario_cap_unused_m_logo_dl[] = { - gsSPVertex(mario_cap_unused_m_logo_dl_vertex, 7, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), - gsSP1Triangle( 5, 6, 4, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C368 - 0x0401C4C8 -const Gfx mario_cap_unused_base_top_dl[] = { - gsSPVertex(mario_cap_unused_base_top_dl_vertex_group1, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), - gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), - gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), - gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), - gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), - gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_cap_unused_base_top_dl_vertex_group2, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), - gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), - gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), - gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), - gsSPVertex(mario_cap_unused_base_top_dl_vertex_group3, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), - gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), - gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), - gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C4C8 - 0x0401C510 -const Gfx mario_cap_unused_base_bottom_dl[] = { - gsSPVertex(mario_cap_unused_base_bottom_dl_vertex, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), - gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), - gsSP1Triangle( 2, 8, 0, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C510 - 0x0401C538 -const Gfx mario_cap_unused_base_dl[] = { - gsSPDisplayList(mario_cap_unused_base_top_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), - gsSPDisplayList(mario_cap_unused_base_bottom_dl), - gsSPEndDisplayList(), -}; - -// 0x0401C538 -static const Vtx mario_wings_half_1_unused_dl_vertex[] = { - {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, -}; - -// 0x0401C5F8 -static const Vtx mario_wings_half_2_unused_dl_vertex[] = { - {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, -}; - -// 0x0401C678 - 0x0401C6A8 -const Gfx mario_wings_half_1_unused_dl[] = { - gsSPVertex(mario_wings_half_1_unused_dl_vertex, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C6A8 - 0x0401C6D8 -const Gfx mario_wings_half_2_unused_dl[] = { - gsSPVertex(mario_wings_half_2_unused_dl_vertex, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C6D8 - 0x0401C730 -const Gfx mario_cap_wings_unused_intial_dl[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPEndDisplayList(), -}; - -// 0x0401C730 - 0x0401C758 -const Gfx mario_cap_wings_unused_end_dl[] = { - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - -// 0x0401C758 - 0x0401C7E8 # Unreferenced, possibly a early duplicate of the cap object used in segment 03 -const Gfx mario_cap_unused_dl[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_red_lights_group.l, 1), - gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_cap_unused_m_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPDisplayList(mario_cap_unused_base_dl), - gsSPEndDisplayList(), -}; - -// 0x0401C7E8 - 0x0401C890 # Unreferenced, possibly an early duplicate of the cap object used in segment 03 -const Gfx mario_metal_cap_unused_dl[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsSPDisplayList(mario_cap_unused_m_logo_dl), - gsSPDisplayList(mario_cap_unused_base_top_dl), - gsSPDisplayList(mario_cap_unused_base_bottom_dl), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsSPEndDisplayList(), -}; - -// 0x0401C890 - 0x0401C8E8 # Unreferenced, unused like the duplicated cap, same case -const Gfx mario_cap_wings_unused[] = { - gsSPDisplayList(mario_cap_wings_unused_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_unused_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_unused_dl), - gsSPDisplayList(mario_cap_wings_unused_end_dl), - gsSPEndDisplayList(), -}; - -// 0x0401C8E8 - 0x0401C940 # Unreferenced, unused like the duplicated cap, same case -const Gfx mario_metal_cap_wings_unused[] = { - gsSPDisplayList(mario_cap_wings_unused_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_unused_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_unused_dl), - gsSPDisplayList(mario_cap_wings_unused_end_dl), - gsSPEndDisplayList(), -}; - -// 0x0401C940 -static const Vtx mario_wings_half_1_dl_vertex[] = { - {{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, -}; - -// 0x0401C980 -static const Vtx mario_wings_half_2_dl_vertex[] = { - {{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, -}; - -// 0x0401C9C0 - 0x0401C9E0 -const Gfx mario_wings_half_1_dl[] = { - gsSPVertex(mario_wings_half_1_dl_vertex, 4, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401C9E0 - 0x0401CA00 -const Gfx mario_wings_half_2_dl[] = { - gsSPVertex(mario_wings_half_2_dl_vertex, 4, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPEndDisplayList(), -}; - -// 0x0401CA00 - 0x0401CAB8 -const Gfx mario_cap_wings[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - -// 0x0401CAB8 - 0x0401CB70 -const Gfx mario_cap_wings_transparent[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - -// 0x0401CB70 - 0x0401CC28 -const Gfx mario_metal_cap_wings[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_white_lights_group.l, 1), - gsSPLight(&mario_white_lights_group.a, 2), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - -// 0x0401CC28 - 0x0401CD20 -const Gfx mario_metal_cap_wings_transparent[] = { - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_wings_half_2_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPEndDisplayList(), +Gfx mario_000_offset_009_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), }; + +Gfx mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_009_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), + gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_010_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_010_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_texture_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_white_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_011_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_texture_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_buckle_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_shoe_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_white_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_002_mesh_layer_4[] = { + gsSPDisplayList(mat_mario_wing_2_001_v4), + gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_mario_wing_2_001_v4), + gsSPDisplayList(mat_mario_wing_1_001_v4), + gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_mario_wing_1_001_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_wing_2_001_v4), + gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_mario_wing_2_001_v4), + gsSPDisplayList(mat_mario_wing_1_001_v4), + gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_mario_wing_1_001_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_012_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_012_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), + gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_013_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_013_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_texture_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_white_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_blue_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_005_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_sonic_texture_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_sonic_shoe_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_sonic_white_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_sonic_buckle_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPDisplayList(mat_mario_metal_v4), + gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_mario_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_001_mesh_layer_4[] = { + gsSPDisplayList(mat_mario_wing_2_001_v4), + gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_mario_wing_2_001_v4), + gsSPDisplayList(mat_mario_wing_1_001_v4), + gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_mario_wing_1_001_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_mario_wing_2_001_v4), + gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_mario_wing_2_001_v4), + gsSPDisplayList(mat_mario_wing_1_001_v4), + gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_mario_wing_1_001_v4), + gsSPEndDisplayList(), +}; + +Gfx mario_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/mario/model.inc.c.rej b/actors/mario/model.inc.c.rej new file mode 100644 index 00000000..8d7b3ba2 --- /dev/null +++ b/actors/mario/model.inc.c.rej @@ -0,0 +1,11293 @@ +diff a/actors/mario/model.inc.c b/actors/mario/model.inc.c (rejected hunks) +@@ -1,6825 +1,4506 @@ +-// Mario ++Lights1 mario_sonic_blue_v4_lights = gdSPDefLights1( ++ 0x7, 0x0, 0x7F, ++ 0xF, 0x0, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types +-static const Lights1 mario_blue_lights_group = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_skin_v4_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +-// 0x04000018 # solid color red - left & right arm, torso (tshirt part), caps - all poly types +-static const Lights1 mario_red_lights_group = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_eye_texture_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types +-static const Lights1 mario_white_lights_group = gdSPDefLights1( +- 0x7f, 0x7f, 0x7f, +- 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_mouth_none_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +-// 0x04000048 # solid color brown 1 - foot - all poly types +-static const Lights1 mario_brown1_lights_group = gdSPDefLights1( +- 0x39, 0x0e, 0x07, +- 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_nose_v4_lights = gdSPDefLights1( ++ 0x0, 0x0, 0x0, ++ 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); + +-// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types +-static const Lights1 mario_beige_lights_group = gdSPDefLights1( +- 0x7f, 0x60, 0x3c, +- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_mouth_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000078 # solid color brown 2 - hair - all poly types +-static const Lights1 mario_brown2_lights_group = gdSPDefLights1( +- 0x39, 0x03, 0x00, +- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_eye_half_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000090 +-ALIGNED8 static const Texture mario_texture_metal[] = { +-#include "actors/mario/mario_metal.rgba16.inc.c" ++Lights1 mario_sonic_eye_closed_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_eye_dead_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_gloves_001_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_gloves_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_texture_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_white_v4_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_buckle_v4_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x0, ++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_shoe_v4_lights = gdSPDefLights1( ++ 0x7F, 0x0, 0x1, ++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); ++ ++Gfx mario_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_metal_rgba16[] = { ++ #include "actors/mario/metal.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_rgba16[] = { ++ #include "actors/mario/soniceyenew.rgba16.inc.c" ++}; ++ ++Gfx mario_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_sonic_mouth_rgba16[] = { ++ #include "actors/mario/sonic_mouth.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_half_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_half_rgba16[] = { ++ #include "actors/mario/soniceyenew_half.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_closed_rgba16[] = { ++ #include "actors/mario/soniceyenew_closed.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_dead_rgba16[] = { ++ #include "actors/mario/soniceyenew_dead.rgba16.inc.c" ++}; ++ ++Gfx mario_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_sonic_new2_rgba16[] = { ++ #include "actors/mario/sonic_new2.rgba16.inc.c" ++}; ++ ++Gfx mario_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_wing_2_rgba16[] = { ++ #include "actors/mario/wing_2.rgba16.inc.c" ++}; ++ ++Gfx mario_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_wing1_rgba16[] = { ++ #include "actors/mario/wing1.rgba16.inc.c" ++}; ++ ++Vtx mario_000_offset_mesh_layer_1_vtx_0[28] = { ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, ++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, ++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, ++ {{{11, -76, -4},0, {510, 718},{0x9D, 0xDE, 0xB8, 0xFF}}}, ++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, ++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{19, -108, 0},0, {491, 792},{0x9, 0x81, 0x0, 0xFF}}}, ++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 16, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(4, 5, 10, 0), ++ gsSP1Triangle(11, 10, 5, 0), ++ gsSP1Triangle(1, 10, 11, 0), ++ gsSP1Triangle(1, 4, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_mesh_layer_1_vtx_1[5] = { ++ {{{43, 27, 0},0, {-16, -16},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {-16, -16},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{45, 28, -13},0, {-16, -16},{0xB4, 0x66, 0xFB, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_1 + 0, 5, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { ++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_1[2] = { ++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 2, 11), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_0[12] = { ++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 0, 3, 13), ++ gsSP1Triangle(3, 1, 13, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(14, 1, 0, 0), ++ gsSP1Triangle(0, 15, 14, 0), ++ gsSP1Triangle(15, 0, 2, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 3, 3, 13), ++ gsSP1Triangle(13, 14, 2, 0), ++ gsSP1Triangle(4, 13, 2, 0), ++ gsSP1Triangle(4, 15, 13, 0), ++ gsSP1Triangle(15, 4, 5, 0), ++ gsSP1Triangle(15, 5, 6, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 6, 3, 13), ++ gsSP1Triangle(6, 13, 14, 0), ++ gsSP1Triangle(6, 7, 13, 0), ++ gsSP1Triangle(13, 7, 15, 0), ++ gsSP1Triangle(15, 7, 10, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 9, 3, 13), ++ gsSP1Triangle(10, 13, 14, 0), ++ gsSP1Triangle(13, 10, 9, 0), ++ gsSP1Triangle(9, 15, 13, 0), ++ gsSP1Triangle(8, 15, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_1[3] = { ++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_1 + 0, 3, 13), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_2[89] = { ++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, ++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, ++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, ++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{43, 37, -48},0, {674, 458},{0x2, 0x62, 0xAF, 0xFF}}}, ++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, ++ {{{64, 35, -43},0, {654, 465},{0x35, 0x62, 0xC3, 0xFF}}}, ++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{83, 29, -18},0, {558, 479},{0x59, 0x59, 0xEE, 0xFF}}}, ++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{86, 27, 0},0, {491, 481},{0x5C, 0x58, 0x0, 0xFF}}}, ++ {{{83, 29, 18},0, {426, 479},{0x59, 0x59, 0x12, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{74, -5, 65},0, {247, 555},{0x3E, 0x20, 0x6A, 0xFF}}}, ++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{73, -32, 68},0, {238, 618},{0x50, 0xEB, 0x61, 0xFF}}}, ++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, ++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{1, -117, 65},0, {247, 813},{0x2B, 0x89, 0xB, 0xFF}}}, ++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, ++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, ++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, ++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, ++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, ++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, ++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, ++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(9, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 4, 5, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 2, 3, 0), ++ gsSP1Triangle(5, 0, 2, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 8, 5, 0), ++ gsSP1Triangle(9, 5, 3, 0), ++ gsSP1Triangle(10, 7, 8, 0), ++ gsSP1Triangle(10, 11, 7, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 8, 13, 0), ++ gsSP1Triangle(13, 8, 14, 0), ++ gsSP1Triangle(15, 14, 8, 0), ++ gsSP1Triangle(15, 11, 14, 0), ++ gsSP1Triangle(7, 11, 15, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 7, 0), ++ gsSP1Triangle(12, 14, 7, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(7, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 80, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_3[10] = { ++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, ++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{43, 37, 48},0, {-16, -16},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{64, 35, 43},0, {-16, -16},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{64, 35, -43},0, {-16, -16},{0x35, 0x62, 0xC3, 0xFF}}}, ++ {{{86, 27, 0},0, {-16, -16},{0x5C, 0x58, 0x0, 0xFF}}}, ++ {{{83, 29, 18},0, {-16, -16},{0x59, 0x59, 0x12, 0xFF}}}, ++ {{{83, 29, -18},0, {-16, -16},{0x59, 0x59, 0xEE, 0xFF}}}, ++ {{{43, 37, -48},0, {-16, -16},{0x2, 0x62, 0xAF, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_3 + 0, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(5, 7, 4, 0), ++ gsSP1Triangle(0, 4, 8, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_0[442] = { ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{52, 53, 63},0, {382, 130},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{55, 44, 71},0, {368, 140},{0xF9, 0x51, 0x62, 0xFF}}}, ++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, ++ {{{44, 22, 78},0, {356, 163},{0xC7, 0x28, 0x6A, 0xFF}}}, ++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, ++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, ++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, ++ {{{19, 6, 56},0, {393, 179},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{6, 6, 29},0, {442, 179},{0x84, 0xE, 0x18, 0xFF}}}, ++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, ++ {{{4, 7, 0},0, {496, 177},{0x81, 0x3, 0x0, 0xFF}}}, ++ {{{6, 6, -29},0, {549, 179},{0x84, 0xE, 0xE8, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{44, 22, -78},0, {635, 163},{0xBF, 0x2B, 0x9C, 0xFF}}}, ++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, ++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, ++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, ++ {{{76, 38, -85},0, {649, 144},{0xE6, 0x5D, 0xAE, 0xFF}}}, ++ {{{55, 44, -71},0, {623, 140},{0xF9, 0x51, 0x9E, 0xFF}}}, ++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, ++ {{{52, 53, -63},0, {609, 130},{0x1F, 0x58, 0xAA, 0xFF}}}, ++ {{{106, 36, -95},0, {668, 146},{0xE5, 0x54, 0xA5, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, ++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, ++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{67, 90, -14},0, {519, 91},{0xA8, 0x1F, 0xAA, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, ++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, ++ {{{63, 91, -5},0, {505, 91},{0x99, 0x4A, 0x0, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{64, 90, 0},0, {496, 91},{0x9E, 0x51, 0x0, 0xFF}}}, ++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, ++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, ++ {{{63, 91, 5},0, {486, 91},{0x99, 0x4A, 0x0, 0xFF}}}, ++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, ++ {{{67, 90, 13},0, {470, 91},{0xA8, 0x1F, 0x56, 0xFF}}}, ++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, ++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, ++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, ++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, ++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, ++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, ++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, ++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, ++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, ++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, ++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, ++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, ++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, ++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, ++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, ++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, ++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, ++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, ++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, ++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, ++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, ++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, ++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, ++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, ++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, ++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, ++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, ++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, ++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, ++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, ++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, ++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, ++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, ++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, ++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, ++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, ++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, ++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, ++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, ++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, ++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, ++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, ++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, ++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, ++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, ++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, ++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, ++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, ++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{200, 24, -100},0, {677, 160},{0xD1, 0x76, 0x9, 0xFF}}}, ++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{213, 41, -72},0, {626, 142},{0xB0, 0x55, 0xCD, 0xFF}}}, ++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, ++ {{{195, 42, -46},0, {577, 142},{0xF6, 0x54, 0xA1, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, ++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, ++ {{{180, 20, -67},0, {616, 163},{0xC, 0x64, 0xB2, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, ++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, ++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, ++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, ++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, ++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, ++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, ++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, ++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{195, 42, 45},0, {414, 142},{0xF6, 0x54, 0x5F, 0xFF}}}, ++ {{{180, 20, 67},0, {375, 163},{0xC, 0x64, 0x4E, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{195, 50, 38},0, {426, 133},{0x5B, 0x53, 0x21, 0xFF}}}, ++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, ++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, ++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, ++ {{{213, 41, 71},0, {366, 142},{0xB0, 0x55, 0x33, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{232, 39, 104},0, {307, 144},{0xA4, 0x58, 0xFF, 0xFF}}}, ++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, ++ {{{200, 24, 100},0, {314, 160},{0xD1, 0x76, 0xF7, 0xFF}}}, ++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, ++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, ++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, ++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, ++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, ++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, ++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, ++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, ++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, ++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, ++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, ++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, ++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, ++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, ++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, ++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, ++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, ++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, ++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, ++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, ++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, ++ {{{128, -283, 131},0, {259, 476},{0x48, 0x9A, 0x1A, 0xFF}}}, ++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{84, -309, 138},0, {245, 502},{0xBC, 0x98, 0x1B, 0xFF}}}, ++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, ++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, ++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, ++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, ++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, ++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, ++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, ++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, ++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, ++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, ++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, ++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, ++ {{{32, -281, 0},0, {496, 474},{0x47, 0x96, 0x0, 0xFF}}}, ++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, ++ {{{30, -278, 18},0, {463, 472},{0x2C, 0xA6, 0x4F, 0xFF}}}, ++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, ++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, ++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, ++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, ++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, ++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, ++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, ++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, ++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, ++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, ++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, ++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, ++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, ++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, ++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, ++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, ++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, ++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{256, -276, 0},0, {496, 469},{0x76, 0xD1, 0x0, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, ++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, ++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, ++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, ++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, ++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{110, -275, -104},0, {684, 467},{0xE3, 0xB8, 0x65, 0xFF}}}, ++ {{{92, -256, -124},0, {721, 448},{0x81, 0x7, 0x5, 0xFF}}}, ++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, ++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, ++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, ++ {{{84, -309, -138},0, {744, 502},{0xBC, 0x98, 0xE5, 0xFF}}}, ++ {{{128, -283, -131},0, {733, 476},{0x48, 0x9A, 0xE6, 0xFF}}}, ++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, ++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, ++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, ++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, ++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, ++ {{{-40, -195, 113},0, {291, 386},{0x3, 0x87, 0x28, 0xFF}}}, ++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, ++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, ++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, ++ {{{-8, -181, 72},0, {366, 372},{0x7, 0xA2, 0xAB, 0xFF}}}, ++ {{{-48, -190, 87},0, {335, 379},{0xD5, 0xAB, 0xAC, 0xFF}}}, ++ {{{-90, -187, 110},0, {296, 376},{0x85, 0xE4, 0xD, 0xFF}}}, ++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, ++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, ++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 6, 8, 0), ++ gsSP1Triangle(5, 6, 10, 0), ++ gsSP1Triangle(5, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 8, 0), ++ gsSP1Triangle(12, 8, 13, 0), ++ gsSP1Triangle(14, 13, 8, 0), ++ gsSP1Triangle(15, 14, 8, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 5, 0, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 6, 11, 0), ++ gsSP1Triangle(12, 11, 6, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 1, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(5, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 4, 0), ++ gsSP1Triangle(4, 13, 3, 0), ++ gsSP1Triangle(3, 13, 14, 0), ++ gsSP1Triangle(15, 3, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(5, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(15, 11, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(6, 7, 10, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(12, 6, 10, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 192, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 5, 0, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 208, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 0, 2, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(9, 5, 10, 0), ++ gsSP1Triangle(5, 2, 10, 0), ++ gsSP1Triangle(10, 2, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 224, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(9, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 240, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(4, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(11, 8, 12, 0), ++ gsSP1Triangle(12, 8, 13, 0), ++ gsSP1Triangle(13, 8, 14, 0), ++ gsSP1Triangle(8, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 256, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 7, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 272, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(0, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 288, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 5, 0), ++ gsSP1Triangle(10, 4, 5, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 304, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(6, 0, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 320, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(10, 5, 8, 0), ++ gsSP1Triangle(10, 11, 5, 0), ++ gsSP1Triangle(0, 11, 10, 0), ++ gsSP1Triangle(0, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 8, 13, 0), ++ gsSP1Triangle(1, 12, 13, 0), ++ gsSP1Triangle(0, 12, 1, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 334, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 350, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 366, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(0, 2, 4, 0), ++ gsSP1Triangle(5, 4, 2, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 382, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 6, 0, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 0, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 398, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(10, 5, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 414, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(7, 3, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 0, 0), ++ gsSP1Triangle(2, 8, 0, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(7, 2, 3, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 428, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(4, 8, 7, 0), ++ gsSP1Triangle(4, 9, 8, 0), ++ gsSP1Triangle(10, 9, 4, 0), ++ gsSP1Triangle(10, 4, 6, 0), ++ gsSP1Triangle(11, 10, 6, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(9, 12, 8, 0), ++ gsSP1Triangle(8, 12, 13, 0), ++ gsSP1Triangle(13, 7, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_1[69] = { ++ {{{160, 11, 90},0, {-16, -16},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{200, 24, 100},0, {-16, -16},{0xD1, 0x76, 0xF7, 0xFF}}}, ++ {{{180, 20, 67},0, {-16, -16},{0xC, 0x64, 0x4E, 0xFF}}}, ++ {{{232, 39, 104},0, {-16, -16},{0xA4, 0x58, 0xFF, 0xFF}}}, ++ {{{213, 41, 71},0, {-16, -16},{0xB0, 0x55, 0x33, 0xFF}}}, ++ {{{195, 42, 45},0, {-16, -16},{0xF6, 0x54, 0x5F, 0xFF}}}, ++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{6, 6, -29},0, {-16, -16},{0x84, 0xE, 0xE8, 0xFF}}}, ++ {{{4, 7, 0},0, {-16, -16},{0x81, 0x3, 0x0, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, ++ {{{6, 6, 29},0, {-16, -16},{0x84, 0xE, 0x18, 0xFF}}}, ++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{44, 22, 78},0, {-16, -16},{0xC7, 0x28, 0x6A, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{55, 44, 71},0, {-16, -16},{0xF9, 0x51, 0x62, 0xFF}}}, ++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, ++ {{{52, 53, 63},0, {-16, -16},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{45, 67, 34},0, {-16, -16},{0x71, 0x2B, 0x28, 0xFF}}}, ++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, ++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, ++ {{{53, 87, 8},0, {-16, -16},{0x68, 0x41, 0x21, 0xFF}}}, ++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, ++ {{{55, 87, 0},0, {-16, -16},{0x60, 0x54, 0x0, 0xFF}}}, ++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, ++ {{{53, 87, -9},0, {-16, -16},{0x68, 0x41, 0xDF, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, ++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, ++ {{{40, 74, -42},0, {-16, -16},{0x15, 0x5E, 0xAD, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{44, 62, -57},0, {-16, -16},{0x4, 0x67, 0xB5, 0xFF}}}, ++ {{{52, 53, -63},0, {-16, -16},{0x1F, 0x58, 0xAA, 0xFF}}}, ++ {{{55, 44, -71},0, {-16, -16},{0xF9, 0x51, 0x9E, 0xFF}}}, ++ {{{39, 41, -71},0, {-16, -16},{0xCB, 0x2E, 0x96, 0xFF}}}, ++ {{{44, 22, -78},0, {-16, -16},{0xBF, 0x2B, 0x9C, 0xFF}}}, ++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, ++ {{{24, 77, -21},0, {-16, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, ++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, ++ {{{14, 61, -15},0, {-16, -16},{0x91, 0x39, 0xEA, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, ++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, ++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, ++ {{{24, 77, 20},0, {-16, -16},{0xA0, 0x4C, 0x22, 0xFF}}}, ++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, ++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{42, 89, 22},0, {-16, -16},{0xEA, 0x71, 0x35, 0xFF}}}, ++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, ++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, ++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, ++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, ++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{195, 42, -46},0, {-16, -16},{0xF6, 0x54, 0xA1, 0xFF}}}, ++ {{{213, 41, -72},0, {-16, -16},{0xB0, 0x55, 0xCD, 0xFF}}}, ++ {{{180, 20, -67},0, {-16, -16},{0xC, 0x64, 0xB2, 0xFF}}}, ++ {{{232, 39, -105},0, {-16, -16},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{200, 24, -100},0, {-16, -16},{0xD1, 0x76, 0x9, 0xFF}}}, ++ {{{160, 11, -90},0, {-16, -16},{0xE, 0x62, 0xB0, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(1, 9, 2, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 15, 11, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 48, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(6, 3, 7, 0), ++ gsSP1Triangle(5, 8, 4, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(4, 8, 11, 0), ++ gsSP1Triangle(2, 4, 11, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 63, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_2[38] = { ++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, ++ {{{127, 40, 91},0, {266, 995},{0xEB, 0x49, 0x66, 0xFF}}}, ++ {{{139, 73, 70},0, {88, 691},{0xE9, 0x58, 0x58, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, ++ {{{134, 93, 44},0, {85, 403},{0xEA, 0x64, 0x4C, 0xFF}}}, ++ {{{101, 105, 0},0, {320, -12},{0xE5, 0x7C, 0x0, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, ++ {{{134, 93, -44},0, {85, 403},{0xEA, 0x64, 0xB4, 0xFF}}}, ++ {{{139, 73, -70},0, {88, 691},{0xE9, 0x58, 0xA8, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, ++ {{{127, 40, -91},0, {266, 995},{0xEB, 0x49, 0x9A, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, ++ {{{59, 36, -75},0, {833, 806},{0xE1, 0x40, 0x97, 0xFF}}}, ++ {{{52, 53, -63},0, {840, 622},{0xDF, 0x45, 0x9B, 0xFF}}}, ++ {{{39, 61, -49},0, {929, 468},{0xD1, 0x58, 0xB1, 0xFF}}}, ++ {{{42, 82, -25},0, {862, 204},{0xDC, 0x6F, 0xCE, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, ++ {{{44, 86, 0},0, {829, -12},{0xD0, 0x76, 0x0, 0xFF}}}, ++ {{{42, 82, 25},0, {862, 204},{0xDC, 0x6F, 0x32, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{39, 61, 49},0, {929, 468},{0xD1, 0x58, 0x4F, 0xFF}}}, ++ {{{52, 53, 63},0, {840, 622},{0xDF, 0x45, 0x65, 0xFF}}}, ++ {{{59, 36, 75},0, {833, 806},{0xE1, 0x40, 0x69, 0xFF}}}, ++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, ++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(6, 11, 10, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 0, 4, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 32, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_3[8] = { ++ {{{21, 44, -53},0, {530, 626},{0x9F, 0x29, 0xB9, 0xFF}}}, ++ {{{19, 6, -57},0, {896, 1008},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{8, 34, -28},0, {896, 421},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{39, 41, -71},0, {305, 884},{0xCB, 0x2E, 0x96, 0xFF}}}, ++ {{{44, 62, -57},0, {133, 569},{0x4, 0x67, 0xB5, 0xFF}}}, ++ {{{40, 74, -42},0, {134, 282},{0x15, 0x5E, 0xAD, 0xFF}}}, ++ {{{24, 77, -21},0, {380, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, ++ {{{14, 61, -15},0, {669, 41},{0x91, 0x39, 0xEA, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_3 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 5, 0, 0), ++ gsSP1Triangle(7, 6, 0, 0), ++ gsSP1Triangle(2, 7, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_4[13] = { ++ {{{55, 137, 6},0, {-16, -16},{0x12, 0x3F, 0x6D, 0xFF}}}, ++ {{{42, 129, 0},0, {-16, -16},{0x8A, 0x2F, 0x0, 0xFF}}}, ++ {{{51, 122, 9},0, {-16, -16},{0x9, 0xFB, 0x7F, 0xFF}}}, ++ {{{50, 138, 0},0, {-16, -16},{0xAF, 0x61, 0x0, 0xFF}}}, ++ {{{57, 141, 0},0, {-16, -16},{0x1C, 0x7C, 0x0, 0xFF}}}, ++ {{{61, 137, 0},0, {-16, -16},{0x79, 0x27, 0x0, 0xFF}}}, ++ {{{60, 127, 0},0, {-16, -16},{0x7D, 0xEA, 0x0, 0xFF}}}, ++ {{{56, 115, 0},0, {-16, -16},{0x7C, 0xE5, 0x0, 0xFF}}}, ++ {{{52, 89, 0},0, {-16, -16},{0x39, 0x8E, 0x0, 0xFF}}}, ++ {{{43, 90, 0},0, {-16, -16},{0xB2, 0x9C, 0x0, 0xFF}}}, ++ {{{40, 117, 0},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{51, 122, -9},0, {-16, -16},{0x9, 0xFB, 0x81, 0xFF}}}, ++ {{{55, 137, -6},0, {-16, -16},{0x12, 0x3F, 0x93, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_4[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_4 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(0, 2, 6, 0), ++ gsSP1Triangle(7, 6, 2, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(2, 9, 8, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(1, 11, 10, 0), ++ gsSP1Triangle(12, 11, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSP1Triangle(12, 3, 4, 0), ++ gsSP1Triangle(4, 5, 12, 0), ++ gsSP1Triangle(5, 6, 12, 0), ++ gsSP1Triangle(12, 6, 11, 0), ++ gsSP1Triangle(7, 11, 6, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSP1Triangle(11, 8, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_003_mesh_layer_1_vtx_0[30] = { ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, 0, 4},0, {-16, -16},{0xD0, 0x0, 0x76, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, ++ {{{2, 9, 3},0, {-16, -16},{0xFA, 0x66, 0x4C, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, ++ {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{-21, -6, -6},0, {-16, -16},{0xD7, 0x9A, 0xC0, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, ++ {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, ++ {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(13, 12, 1, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSP1Triangle(14, 13, 3, 0), ++ gsSP1Triangle(5, 14, 3, 0), ++ gsSP1Triangle(15, 14, 5, 0), ++ gsSP1Triangle(7, 15, 5, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(2, 9, 10, 0), ++ gsSP1Triangle(11, 9, 2, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(13, 1, 3, 0), ++ gsSP1Triangle(3, 6, 13, 0), ++ gsSP1Triangle(6, 12, 13, 0), ++ gsSP1Triangle(7, 12, 6, 0), ++ gsSP1Triangle(7, 9, 12, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_mesh_layer_1_vtx_0[6] = { ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 1, 0, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(8, 4, 1, 0), ++ gsSP1Triangle(9, 4, 8, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 3, 5, 0), ++ gsSP1Triangle(10, 3, 9, 0), ++ gsSP1Triangle(2, 3, 10, 0), ++ gsSP1Triangle(11, 2, 10, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSP1Triangle(6, 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_mesh_layer_1_vtx_1[12] = { ++ {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, ++ {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(10, 2, 11, 0), ++ gsSP1Triangle(0, 2, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_003_mesh_layer_1_vtx_0[46] = { ++ {{{17, -38, -39},0, {-16, -16},{0x9E, 0xB8, 0xDB, 0xFF}}}, ++ {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, ++ {{{-10, 26, -38},0, {-16, -16},{0x88, 0xEC, 0xDA, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0xA2, 0xAC, 0xE, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0x99, 0xD2, 0x3A, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x82, 0xF5, 0xE, 0xFF}}}, ++ {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, ++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, ++ {{{-10, 26, -38},0, {-16, -16},{0x33, 0x54, 0xAF, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, ++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0x43, 0x1C, 0x68, 0xFF}}}, ++ {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0x75, 0xD4, 0x17, 0xFF}}}, ++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, ++ {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, ++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, ++ {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, ++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(2, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 6, 9, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(6, 11, 10, 0), ++ gsSP1Triangle(6, 12, 11, 0), ++ gsSP1Triangle(6, 13, 12, 0), ++ gsSP1Triangle(8, 13, 6, 0), ++ gsSP1Triangle(14, 13, 8, 0), ++ gsSP1Triangle(8, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 3, 4, 0), ++ gsSP1Triangle(0, 3, 7, 0), ++ gsSP1Triangle(0, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 11, 7, 0), ++ gsSP1Triangle(4, 12, 7, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(13, 9, 12, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(8, 13, 1, 0), ++ gsSP1Triangle(1, 3, 8, 0), ++ gsSP1Triangle(13, 8, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { ++ {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, ++ {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, ++ {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, ++ {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, ++ {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, ++ {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, ++ {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, ++ {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++}; ++ ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(2, 11, 10, 0), ++ gsSP1Triangle(2, 12, 11, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(4, 13, 12, 0), ++ gsSP1Triangle(4, 6, 13, 0), ++ gsSP1Triangle(6, 14, 13, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSP1Triangle(7, 10, 15, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(10, 2, 1, 0), ++ gsSP1Triangle(1, 12, 10, 0), ++ gsSP1Triangle(13, 12, 1, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 14, 3, 0), ++ gsSP1Triangle(4, 15, 3, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 3, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSP1Triangle(9, 1, 0, 0), ++ gsSP1Triangle(10, 1, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(9, 4, 5, 0), ++ gsSP1Triangle(9, 1, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_006_mesh_layer_1_vtx_0[41] = { ++ {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, 8},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, ++ {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, ++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{3, -8, 8},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_006_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(6, 0, 7, 0), ++ gsSP1Triangle(0, 2, 7, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(2, 9, 8, 0), ++ gsSP1Triangle(2, 10, 9, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(3, 10, 1, 0), ++ gsSP1Triangle(3, 11, 10, 0), ++ gsSP1Triangle(3, 12, 11, 0), ++ gsSP1Triangle(13, 12, 3, 0), ++ gsSP1Triangle(4, 13, 3, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(3, 7, 9, 0), ++ gsSP1Triangle(3, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 8, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_mesh_layer_1_vtx_0[6] = { ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 0, 1, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(7, 4, 0, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 10, 5, 0), ++ gsSP1Triangle(10, 3, 5, 0), ++ gsSP1Triangle(10, 11, 3, 0), ++ gsSP1Triangle(3, 11, 2, 0), ++ gsSP1Triangle(11, 6, 2, 0), ++ gsSP1Triangle(6, 1, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_mesh_layer_1_vtx_1[12] = { ++ {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, ++ {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(9, 11, 2, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_004_mesh_layer_1_vtx_0[36] = { ++ {{{-14, 26, 41},0, {-16, -16},{0x2D, 0x50, 0x58, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0x58, 0xE6, 0x58, 0xFF}}}, ++ {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, ++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, ++ {{{24, -57, -4},0, {-16, -16},{0x75, 0xD3, 0xED, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0x4C, 0x21, 0x9F, 0xFF}}}, ++ {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, ++ {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, ++ {{{-19, 47, -4},0, {-16, -16},{0x2D, 0x75, 0xEC, 0xFF}}}, ++ {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, ++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, ++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, ++ {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, ++ {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, ++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, ++ {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, ++ {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, ++ {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0x99, 0xD6, 0xC2, 0xFF}}}, ++ {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, ++ {{{-19, 47, -4},0, {-16, -16},{0x83, 0xF7, 0xEC, 0xFF}}}, ++ {{{24, -57, -4},0, {-16, -16},{0xA0, 0xAF, 0xED, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0x9B, 0xB9, 0x1E, 0xFF}}}, ++ {{{-14, 26, 41},0, {-16, -16},{0x86, 0xEB, 0x1E, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(2, 3, 12, 0), ++ gsSP1Triangle(13, 12, 3, 0), ++ gsSP1Triangle(3, 6, 13, 0), ++ gsSP1Triangle(13, 6, 7, 0), ++ gsSP1Triangle(14, 13, 7, 0), ++ gsSP1Triangle(14, 7, 9, 0), ++ gsSP1Triangle(15, 14, 9, 0), ++ gsSP1Triangle(9, 10, 15, 0), ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(0, 11, 9, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(4, 12, 2, 0), ++ gsSP1Triangle(4, 13, 12, 0), ++ gsSP1Triangle(5, 13, 4, 0), ++ gsSP1Triangle(8, 13, 5, 0), ++ gsSP1Triangle(9, 13, 8, 0), ++ gsSP1Triangle(11, 13, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 30, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(2, 1, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { ++ {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, ++ {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, ++ {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, ++ {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, ++ {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, ++ {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, ++ {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++}; ++ ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(13, 12, 4, 0), ++ gsSP1Triangle(13, 4, 5, 0), ++ gsSP1Triangle(14, 13, 5, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(15, 14, 7, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(3, 14, 1, 0), ++ gsSP1Triangle(3, 15, 14, 0), ++ gsSP1Triangle(3, 4, 15, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 9, 3, 0), ++ gsSP1Triangle(9, 0, 3, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(0, 10, 1, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(1, 3, 7, 0), ++ gsSP1Triangle(3, 4, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { ++ {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, ++ {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, ++ {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, ++ {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, ++ {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, ++}; ++ ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(14, 11, 15, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 4, 1, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(10, 1, 11, 0), ++ gsSP1Triangle(8, 9, 12, 0), ++ gsSP1Triangle(8, 12, 7, 0), ++ gsSP1Triangle(7, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 4, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(10, 11, 1, 0), ++ gsSP1Triangle(1, 11, 12, 0), ++ gsSP1Triangle(10, 1, 0, 0), ++ gsSP1Triangle(0, 13, 10, 0), ++ gsSP1Triangle(0, 14, 13, 0), ++ gsSP1Triangle(3, 14, 0, 0), ++ gsSP1Triangle(3, 6, 14, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(13, 14, 7, 0), ++ gsSP1Triangle(7, 9, 13, 0), ++ gsSP1Triangle(10, 13, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_skinned_mesh_layer_1_vtx_0[9] = { ++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_mesh_layer_1_vtx_0[6] = { ++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, ++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, ++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_0 + 0, 6, 9), ++ gsSP1Triangle(9, 0, 1, 0), ++ gsSP1Triangle(10, 0, 9, 0), ++ gsSP1Triangle(10, 2, 0, 0), ++ gsSP1Triangle(2, 10, 3, 0), ++ gsSP1Triangle(10, 4, 3, 0), ++ gsSP1Triangle(4, 10, 11, 0), ++ gsSP1Triangle(11, 7, 4, 0), ++ gsSP1Triangle(11, 8, 7, 0), ++ gsSP1Triangle(5, 8, 11, 0), ++ gsSP1Triangle(11, 12, 5, 0), ++ gsSP1Triangle(13, 5, 12, 0), ++ gsSP1Triangle(5, 13, 6, 0), ++ gsSP1Triangle(1, 6, 13, 0), ++ gsSP1Triangle(13, 14, 1, 0), ++ gsSP1Triangle(9, 1, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_mesh_layer_1_vtx_1[13] = { ++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, ++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, ++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, ++ {{{14, -5, -25},0, {428, 551},{0x21, 0xFE, 0x85, 0xFF}}}, ++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, ++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSP1Triangle(5, 12, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, ++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_0[6] = { ++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, ++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(1, 6, 2, 0), ++ gsSP1Triangle(1, 7, 6, 0), ++ gsSP1Triangle(7, 1, 8, 0), ++ gsSP1Triangle(4, 8, 1, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(5, 9, 4, 0), ++ gsSP1Triangle(3, 9, 5, 0), ++ gsSP1Triangle(3, 10, 9, 0), ++ gsSP1Triangle(0, 10, 3, 0), ++ gsSP1Triangle(11, 10, 0, 0), ++ gsSP1Triangle(6, 11, 0, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_1[9] = { ++ {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, ++ {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_2[41] = { ++ {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSP1Triangle(14, 0, 15, 0), ++ gsSP1Triangle(15, 0, 2, 0), ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSP1Triangle(15, 14, 1, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_3[16] = { ++ {{{2, -3, 16},0, {205, 551},{0xE6, 0xF6, 0x7C, 0xFF}}}, ++ {{{43, -12, 22},0, {124, 530},{0xEF, 0xD0, 0x74, 0xFF}}}, ++ {{{43, -1, 22},0, {124, 572},{0xF7, 0x2C, 0x77, 0xFF}}}, ++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, ++ {{{42, 7, 13},0, {180, 602},{0x7, 0x75, 0x31, 0xFF}}}, ++ {{{42, 7, 1},0, {256, 602},{0x11, 0x77, 0xD6, 0xFF}}}, ++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{42, -1, -7},0, {312, 572},{0x17, 0x31, 0x8D, 0xFF}}}, ++ {{{6, -3, -13},0, {361, 551},{0x11, 0x9, 0x82, 0xFF}}}, ++ {{{42, -12, -7},0, {312, 530},{0x13, 0xCC, 0x8E, 0xFF}}}, ++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{42, -20, 1},0, {256, 502},{0x2, 0x87, 0xD9, 0xFF}}}, ++ {{{42, -20, 13},0, {180, 502},{0xF5, 0x8B, 0x31, 0xFF}}}, ++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(0, 2, 5, 0), ++ gsSP1Triangle(5, 2, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 3, 0), ++ gsSP1Triangle(14, 3, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 10, 12, 0), ++ gsSP1Triangle(8, 10, 15, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_0[58] = { ++ {{{-28, 59, 39},0, {1000, -7},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-32, 39, 45},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{2, 52, 51},0, {1000, 32},{0xD, 0x5F, 0x54, 0xFF}}}, ++ {{{-4, 37, 52},0, {864, 32},{0xF0, 0xA, 0x7E, 0xFF}}}, ++ {{{44, 26, 53},0, {896, 192},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{48, 35, 52},0, {1000, 192},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{87, 10, 51},0, {896, 258},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{91, 19, 50},0, {1000, 258},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{112, 0, 47},0, {898, 323},{0x20, 0xE8, 0x79, 0xFF}}}, ++ {{{116, 9, 47},0, {1001, 323},{0x3E, 0x49, 0x54, 0xFF}}}, ++ {{{143, -6, 31},0, {1001, 395},{0x5E, 0x32, 0x45, 0xFF}}}, ++ {{{140, -14, 31},0, {907, 395},{0x3F, 0xC9, 0x60, 0xFF}}}, ++ {{{157, -20, 10},0, {1001, 436},{0x7F, 0xF6, 0xFD, 0xFF}}}, ++ {{{153, -25, 10},0, {915, 431},{0x54, 0xA1, 0x1, 0xFF}}}, ++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{112, -2, -23},0, {898, 323},{0x1C, 0xE2, 0x88, 0xFF}}}, ++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{115, 7, -23},0, {1001, 323},{0x3C, 0x45, 0xA9, 0xFF}}}, ++ {{{87, 8, -29},0, {896, 258},{0xC, 0xE9, 0x84, 0xFF}}}, ++ {{{90, 17, -29},0, {1000, 258},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{43, 23, -33},0, {896, 192},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{47, 33, -34},0, {1000, 192},{0x21, 0x4E, 0xA2, 0xFF}}}, ++ {{{1, 50, -34},0, {1000, 32},{0xE, 0x55, 0xA3, 0xFF}}}, ++ {{{-5, 35, -33},0, {864, 32},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{-28, 57, -26},0, {1000, -7},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{-33, 37, -27},0, {832, -7},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-28, 59, 39},0, {1000, 1070},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-32, 39, 45},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-41, 57, -9},0, {1000, 722},{0xA6, 0x54, 0xE3, 0xFF}}}, ++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-44, 27, -5},0, {663, 734},{0x84, 0x9, 0xE7, 0xFF}}}, ++ {{{-33, 37, -27},0, {805, 291},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-28, 57, -26},0, {1000, 434},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{-41, 57, -9},0, {418, 1519},{0xA6, 0x54, 0xE3, 0xFF}}}, ++ {{{-40, 58, 25},0, {467, 1519},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-28, 59, 39},0, {489, 1413},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-28, 57, -26},0, {395, 1413},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{1, 50, -34},0, {384, 1139},{0xE, 0x55, 0xA3, 0xFF}}}, ++ {{{2, 52, 51},0, {506, 1139},{0xD, 0x5F, 0x54, 0xFF}}}, ++ {{{47, 33, -34},0, {384, 690},{0x21, 0x4E, 0xA2, 0xFF}}}, ++ {{{48, 35, 52},0, {509, 690},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{115, 7, -23},0, {399, 23},{0x3C, 0x45, 0xA9, 0xFF}}}, ++ {{{116, 9, 47},0, {500, 23},{0x3E, 0x49, 0x54, 0xFF}}}, ++ {{{143, -6, 31},0, {477, -261},{0x5E, 0x32, 0x45, 0xFF}}}, ++ {{{143, -7, -11},0, {415, -261},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{157, -20, 10},0, {444, -427},{0x7F, 0xF6, 0xFD, 0xFF}}}, ++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, ++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, ++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 48, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_1[16] = { ++ {{{44, 26, 53},0, {321, 28},{0xF0, 0x6C, 0x42, 0xFF}}}, ++ {{{45, 22, 59},0, {322, 24},{0xEC, 0x2D, 0x75, 0xFF}}}, ++ {{{87, 10, 51},0, {338, 29},{0x54, 0x3D, 0x49, 0xFF}}}, ++ {{{40, 24, 52},0, {320, 26},{0xA5, 0x36, 0x47, 0xFF}}}, ++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, ++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, ++ {{{43, 3, 52},0, {324, 8},{0x39, 0x4, 0x71, 0xFF}}}, ++ {{{74, -8, 49},0, {335, 8},{0xF5, 0x8, 0x7E, 0xFF}}}, ++ {{{76, -15, 50},0, {337, 2},{0x16, 0xBD, 0x69, 0xFF}}}, ++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, ++ {{{76, -20, 42},0, {338, -1},{0x4, 0x98, 0x48, 0xFF}}}, ++ {{{81, -18, 43},0, {339, 2},{0x41, 0xAF, 0x49, 0xFF}}}, ++ {{{85, 8, 56},0, {337, 25},{0x30, 0xA, 0x75, 0xFF}}}, ++ {{{90, 6, 50},0, {339, 26},{0x64, 0xE3, 0x49, 0xFF}}}, ++ {{{78, 4, 51},0, {335, 20},{0xCA, 0xD4, 0x6A, 0xFF}}}, ++ {{{48, 15, 53},0, {323, 20},{0x22, 0xBA, 0x64, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 6, 1, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 2, 0), ++ gsSP1Triangle(1, 12, 2, 0), ++ gsSP1Triangle(12, 1, 14, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(6, 15, 1, 0), ++ gsSP1Triangle(12, 14, 8, 0), ++ gsSP1Triangle(8, 14, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_2[46] = { ++ {{{44, 26, 53},0, {0, 981},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{-4, 37, 52},0, {0, 988},{0xF0, 0xA, 0x7E, 0xFF}}}, ++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, ++ {{{-32, 39, 45},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-44, 28, 19},0, {6, 994},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, ++ {{{-44, 27, -5},0, {10, 994},{0x84, 0x9, 0xE7, 0xFF}}}, ++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, ++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, ++ {{{-33, 37, -27},0, {14, 992},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, ++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{43, 23, -33},0, {15, 981},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{-16, -30, 7},0, {10, 987},{0xD5, 0x88, 0xFE, 0xFF}}}, ++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, ++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, ++ {{{-21, -12, 37},0, {4, 988},{0xE0, 0xB2, 0x5F, 0xFF}}}, ++ {{{26, -23, 42},0, {3, 981},{0xF2, 0xA8, 0x5B, 0xFF}}}, ++ {{{23, -33, 8},0, {9, 981},{0xF5, 0x82, 0x2, 0xFF}}}, ++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, ++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, ++ {{{82, -4, 49},0, {1, 974},{0x6, 0xE1, 0x7B, 0xFF}}}, ++ {{{112, 0, 47},0, {1, 970},{0x20, 0xE8, 0x79, 0xFF}}}, ++ {{{87, 10, 51},0, {0, 974},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{101, -30, 37},0, {3, 970},{0x13, 0xA3, 0x55, 0xFF}}}, ++ {{{73, -29, 42},0, {3, 974},{0x0, 0xA6, 0x5A, 0xFF}}}, ++ {{{98, -38, 10},0, {8, 970},{0x4, 0x81, 0x2, 0xFF}}}, ++ {{{70, -38, 10},0, {9, 974},{0xF9, 0x81, 0x2, 0xFF}}}, ++ {{{73, -30, -18},0, {13, 974},{0x2, 0xA4, 0xA8, 0xFF}}}, ++ {{{101, -32, -14},0, {12, 970},{0x12, 0xA3, 0xAB, 0xFF}}}, ++ {{{87, 8, -29},0, {14, 974},{0xC, 0xE9, 0x84, 0xFF}}}, ++ {{{112, -2, -23},0, {13, 970},{0x1C, 0xE2, 0x88, 0xFF}}}, ++ {{{140, -15, -10},0, {11, 966},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{136, -35, 10},0, {8, 965},{0x32, 0x8B, 0x0, 0xFF}}}, ++ {{{153, -25, 10},0, {7, 963},{0x54, 0xA1, 0x1, 0xFF}}}, ++ {{{140, -14, 31},0, {3, 966},{0x3F, 0xC9, 0x60, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(9, 8, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(10, 3, 0, 0), ++ gsSP1Triangle(8, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 13, 8, 0), ++ gsSP1Triangle(8, 13, 7, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(5, 12, 3, 0), ++ gsSP1Triangle(5, 8, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_3[12] = { ++ {{{87, 10, 51},0, {-16, -16},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{44, 26, 53},0, {-16, -16},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{82, -4, 49},0, {-16, -16},{0x6, 0xE1, 0x7B, 0xFF}}}, ++ {{{38, 9, 52},0, {-16, -16},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{73, -29, 42},0, {-16, -16},{0x0, 0xA6, 0x5A, 0xFF}}}, ++ {{{26, -23, 42},0, {-16, -16},{0xF2, 0xA8, 0x5B, 0xFF}}}, ++ {{{70, -38, 10},0, {-16, -16},{0xF9, 0x81, 0x2, 0xFF}}}, ++ {{{23, -33, 8},0, {-16, -16},{0xF5, 0x82, 0x2, 0xFF}}}, ++ {{{26, -25, -22},0, {-16, -16},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{73, -30, -18},0, {-16, -16},{0x2, 0xA4, 0xA8, 0xFF}}}, ++ {{{43, 23, -33},0, {-16, -16},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{87, 8, -29},0, {-16, -16},{0xC, 0xE9, 0x84, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_skinned_mesh_layer_1_vtx_0[10] = { ++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, ++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_mesh_layer_1_vtx_0[6] = { ++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, ++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, ++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, ++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_0 + 0, 6, 10), ++ gsSP1Triangle(2, 0, 10, 0), ++ gsSP1Triangle(11, 10, 0, 0), ++ gsSP1Triangle(0, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 9, 8, 0), ++ gsSP1Triangle(13, 12, 8, 0), ++ gsSP1Triangle(13, 8, 7, 0), ++ gsSP1Triangle(7, 6, 13, 0), ++ gsSP1Triangle(13, 6, 5, 0), ++ gsSP1Triangle(5, 14, 13, 0), ++ gsSP1Triangle(14, 5, 4, 0), ++ gsSP1Triangle(14, 4, 3, 0), ++ gsSP1Triangle(1, 14, 3, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(10, 15, 1, 0), ++ gsSP1Triangle(2, 10, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_mesh_layer_1_vtx_1[13] = { ++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, ++ {{{14, -5, 25},0, {556, 551},{0x21, 0xFE, 0x7B, 0xFF}}}, ++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, ++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, ++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, ++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, ++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, ++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(11, 1, 10, 0), ++ gsSP1Triangle(11, 2, 1, 0), ++ gsSP1Triangle(12, 10, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, ++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, ++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_0[6] = { ++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(0, 1, 6, 0), ++ gsSP1Triangle(1, 2, 6, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSP1Triangle(2, 3, 7, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(3, 9, 8, 0), ++ gsSP1Triangle(3, 5, 9, 0), ++ gsSP1Triangle(5, 4, 9, 0), ++ gsSP1Triangle(9, 4, 10, 0), ++ gsSP1Triangle(10, 4, 11, 0), ++ gsSP1Triangle(4, 0, 11, 0), ++ gsSP1Triangle(0, 6, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_1[9] = { ++ {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, ++ {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_2[41] = { ++ {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 2, 13, 0), ++ gsSP1Triangle(15, 13, 2, 0), ++ gsSP1Triangle(1, 15, 2, 0), ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(14, 15, 0, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_3[16] = { ++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{6, -3, 13},0, {623, 551},{0x11, 0x9, 0x7E, 0xFF}}}, ++ {{{42, -12, 7},0, {672, 530},{0x13, 0xCC, 0x72, 0xFF}}}, ++ {{{42, -20, -1},0, {728, 502},{0x2, 0x87, 0x27, 0xFF}}}, ++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{42, -20, -13},0, {805, 502},{0xF5, 0x8B, 0xCF, 0xFF}}}, ++ {{{43, -12, -22},0, {860, 530},{0xEF, 0xD0, 0x8C, 0xFF}}}, ++ {{{2, -3, -16},0, {779, 551},{0xE6, 0xF6, 0x84, 0xFF}}}, ++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{43, -1, -22},0, {860, 572},{0xF7, 0x2C, 0x89, 0xFF}}}, ++ {{{42, 7, -13},0, {805, 602},{0x7, 0x75, 0xCF, 0xFF}}}, ++ {{{42, 7, -1},0, {728, 602},{0x11, 0x77, 0x2A, 0xFF}}}, ++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, ++ {{{42, -1, 7},0, {672, 572},{0x17, 0x31, 0x73, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSP1Triangle(2, 15, 14, 0), ++ gsSP1Triangle(14, 0, 2, 0), ++ gsSP1Triangle(2, 3, 15, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_0[55] = { ++ {{{-5, 35, 27},0, {864, 32},{0xFD, 0xF9, 0x7F, 0xFF}}}, ++ {{{-28, 57, 26},0, {1000, -7},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{-33, 37, 27},0, {832, -7},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{1, 50, 27},0, {1000, 32},{0x17, 0x55, 0x5C, 0xFF}}}, ++ {{{43, 23, 27},0, {896, 192},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{47, 33, 27},0, {1000, 192},{0x1B, 0x53, 0x5D, 0xFF}}}, ++ {{{90, 17, 29},0, {1000, 258},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{87, 8, 29},0, {896, 258},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{115, 7, 23},0, {1001, 323},{0x3C, 0x45, 0x58, 0xFF}}}, ++ {{{112, -2, 23},0, {898, 323},{0x1D, 0xE2, 0x78, 0xFF}}}, ++ {{{143, -7, 11},0, {1001, 395},{0x58, 0x2C, 0x50, 0xFF}}}, ++ {{{140, -15, 10},0, {907, 395},{0x38, 0xC5, 0x62, 0xFF}}}, ++ {{{157, -20, -10},0, {1001, 436},{0x7F, 0xF6, 0x3, 0xFF}}}, ++ {{{153, -25, -10},0, {915, 431},{0x54, 0xA1, 0xFF, 0xFF}}}, ++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{112, 0, -47},0, {898, 323},{0x20, 0xE8, 0x88, 0xFF}}}, ++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{116, 9, -46},0, {1001, 323},{0x3E, 0x49, 0xAC, 0xFF}}}, ++ {{{91, 19, -50},0, {1000, 258},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{87, 10, -51},0, {896, 258},{0xA, 0xF9, 0x82, 0xFF}}}, ++ {{{48, 35, -52},0, {1000, 192},{0x20, 0x58, 0xAA, 0xFF}}}, ++ {{{44, 26, -53},0, {896, 192},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{2, 52, -51},0, {1000, 32},{0xD, 0x5F, 0xAC, 0xFF}}}, ++ {{{-4, 37, -52},0, {864, 32},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{-32, 39, -45},0, {832, -7},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-28, 59, -39},0, {1000, -7},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-33, 37, 27},0, {805, 291},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{-28, 57, 26},0, {1000, 434},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-44, 28, -19},0, {663, 770},{0x83, 0xA, 0xEA, 0xFF}}}, ++ {{{-40, 58, -25},0, {1000, 782},{0xA6, 0x56, 0xE6, 0xFF}}}, ++ {{{-32, 39, -45},0, {805, 1213},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-28, 59, -39},0, {1000, 1070},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-41, 57, 9},0, {420, 1519},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-28, 59, -39},0, {491, 1413},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-40, 58, -25},0, {469, 1519},{0xA6, 0x56, 0xE6, 0xFF}}}, ++ {{{-28, 57, 26},0, {397, 1413},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{1, 50, 27},0, {386, 1139},{0x17, 0x55, 0x5C, 0xFF}}}, ++ {{{2, 52, -51},0, {508, 1139},{0xD, 0x5F, 0xAC, 0xFF}}}, ++ {{{47, 33, 27},0, {386, 690},{0x1B, 0x53, 0x5D, 0xFF}}}, ++ {{{48, 35, -52},0, {511, 690},{0x20, 0x58, 0xAA, 0xFF}}}, ++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{115, 7, 23},0, {401, 23},{0x3C, 0x45, 0x58, 0xFF}}}, ++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{116, 9, -46},0, {502, 23},{0x3E, 0x49, 0xAC, 0xFF}}}, ++ {{{143, -6, -31},0, {479, -261},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{143, -7, 11},0, {417, -261},{0x58, 0x2C, 0x50, 0xFF}}}, ++ {{{157, -20, -10},0, {446, -427},{0x7F, 0xF6, 0x3, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 7, 6, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(11, 7, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_1[46] = { ++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{43, 23, 27},0, {20, 981},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{-5, 35, 27},0, {20, 988},{0xFD, 0xF9, 0x7F, 0xFF}}}, ++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, ++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, ++ {{{-33, 37, 27},0, {21, 992},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{-44, 27, 5},0, {24, 994},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, ++ {{{-44, 28, -19},0, {28, 994},{0x83, 0xA, 0xEA, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, ++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{-32, 39, -45},0, {33, 992},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, ++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{44, 26, -53},0, {35, 981},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{26, -23, -42},0, {32, 981},{0xF2, 0xA8, 0xA5, 0xFF}}}, ++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, ++ {{{-21, -12, -37},0, {30, 988},{0xDF, 0xB2, 0xA1, 0xFF}}}, ++ {{{-16, -30, -7},0, {25, 987},{0xD5, 0x88, 0x2, 0xFF}}}, ++ {{{23, -33, -8},0, {25, 981},{0xF5, 0x82, 0xFE, 0xFF}}}, ++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, ++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, ++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, ++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{82, -4, -49},0, {34, 974},{0x6, 0xE1, 0x85, 0xFF}}}, ++ {{{87, 10, -51},0, {35, 974},{0xA, 0xF9, 0x82, 0xFF}}}, ++ {{{112, 0, -47},0, {34, 970},{0x20, 0xE8, 0x88, 0xFF}}}, ++ {{{101, -30, -37},0, {31, 970},{0x13, 0xA3, 0xAB, 0xFF}}}, ++ {{{140, -14, -31},0, {31, 966},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{136, -35, -10},0, {27, 965},{0x32, 0x8B, 0x0, 0xFF}}}, ++ {{{153, -25, -10},0, {27, 963},{0x54, 0xA1, 0xFF, 0xFF}}}, ++ {{{140, -15, 10},0, {24, 966},{0x38, 0xC5, 0x62, 0xFF}}}, ++ {{{101, -32, 14},0, {22, 970},{0x11, 0xA3, 0x55, 0xFF}}}, ++ {{{112, -2, 23},0, {22, 970},{0x1D, 0xE2, 0x78, 0xFF}}}, ++ {{{87, 8, 29},0, {21, 974},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{73, -30, 18},0, {21, 974},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{98, -38, -10},0, {26, 970},{0x4, 0x81, 0xFE, 0xFF}}}, ++ {{{70, -38, -10},0, {26, 974},{0xF9, 0x81, 0xFE, 0xFF}}}, ++ {{{73, -29, -42},0, {32, 974},{0x0, 0xA6, 0xA6, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(3, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(6, 10, 12, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(5, 6, 13, 0), ++ gsSP1Triangle(5, 13, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_2[12] = { ++ {{{73, -30, 18},0, {-16, -16},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{87, 8, 29},0, {-16, -16},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{43, 23, 27},0, {-16, -16},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{26, -25, 22},0, {-16, -16},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{70, -38, -10},0, {-16, -16},{0xF9, 0x81, 0xFE, 0xFF}}}, ++ {{{23, -33, -8},0, {-16, -16},{0xF5, 0x82, 0xFE, 0xFF}}}, ++ {{{26, -23, -42},0, {-16, -16},{0xF2, 0xA8, 0xA5, 0xFF}}}, ++ {{{73, -29, -42},0, {-16, -16},{0x0, 0xA6, 0xA6, 0xFF}}}, ++ {{{38, 9, -52},0, {-16, -16},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{82, -4, -49},0, {-16, -16},{0x6, 0xE1, 0x85, 0xFF}}}, ++ {{{44, 26, -53},0, {-16, -16},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{87, 10, -51},0, {-16, -16},{0xA, 0xF9, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_3[16] = { ++ {{{85, 8, -56},0, {337, 25},{0x30, 0xA, 0x8B, 0xFF}}}, ++ {{{87, 10, -51},0, {338, 29},{0x55, 0x3D, 0xB7, 0xFF}}}, ++ {{{90, 6, -49},0, {339, 26},{0x64, 0xE4, 0xB7, 0xFF}}}, ++ {{{45, 22, -59},0, {322, 24},{0xEC, 0x2D, 0x8B, 0xFF}}}, ++ {{{78, 4, -51},0, {335, 20},{0xCB, 0xD4, 0x95, 0xFF}}}, ++ {{{76, -15, -50},0, {337, 2},{0x17, 0xBD, 0x97, 0xFF}}}, ++ {{{81, -18, -43},0, {339, 2},{0x40, 0xAF, 0xB6, 0xFF}}}, ++ {{{76, -20, -42},0, {338, -1},{0x4, 0x98, 0xB8, 0xFF}}}, ++ {{{33, -5, -48},0, {321, -2},{0xC4, 0xAC, 0xB6, 0xFF}}}, ++ {{{36, -1, -55},0, {322, 1},{0xD3, 0xDD, 0x8E, 0xFF}}}, ++ {{{31, 0, -49},0, {320, 1},{0x9A, 0xF3, 0xB5, 0xFF}}}, ++ {{{40, 24, -52},0, {320, 26},{0xA5, 0x36, 0xB9, 0xFF}}}, ++ {{{44, 26, -53},0, {321, 28},{0xF0, 0x6C, 0xBE, 0xFF}}}, ++ {{{43, 3, -52},0, {324, 8},{0x39, 0x4, 0x8E, 0xFF}}}, ++ {{{48, 15, -52},0, {323, 20},{0x22, 0xBA, 0x9C, 0xFF}}}, ++ {{{74, -8, -49},0, {335, 8},{0xF5, 0x8, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_mario_sonic_blue_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_blue_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_skin_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_skin_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_metal_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_metal_v4[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_texture[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_texture_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_mouth_none[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_mouth_none_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_nose_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_nose_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_mouth[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_mouth_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_mouth_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_half[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_half_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_half_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_closed[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_closed_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_closed_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_dead[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_dead_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_dead_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_gloves_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_gloves_001_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_gloves_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_gloves_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_texture_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_new2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_texture_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_white_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_white_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_buckle_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_buckle_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_shoe_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_shoe_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing_2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing1_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_texture), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_texture), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_half), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_closed), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_dead), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04001090 +-ALIGNED8 static const Texture mario_texture_yellow_button[] = { +-#include "actors/mario/mario_overalls_button.rgba16.inc.c" ++Gfx mario_000_displaylist_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_001_v4), ++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04001890 +-ALIGNED8 static const Texture mario_texture_m_logo[] = { +-#include "actors/mario/mario_logo.rgba16.inc.c" ++Gfx mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04002090 +-ALIGNED8 static const Texture mario_texture_hair_sideburn[] = { +-#include "actors/mario/mario_sideburn.rgba16.inc.c" ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04002890 +-ALIGNED8 static const Texture mario_texture_mustache[] = { +-#include "actors/mario/mario_mustache.rgba16.inc.c" ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04003090 +-ALIGNED8 static const Texture mario_texture_eyes_front[] = { +-#include "actors/mario/mario_eyes_center.rgba16.inc.c" ++Gfx mario_000_offset_006_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04003890 +-ALIGNED8 static const Texture mario_texture_eyes_half_closed[] = { +-#include "actors/mario/mario_eyes_half_closed.rgba16.inc.c" ++Gfx mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04004090 +-ALIGNED8 static const Texture mario_texture_eyes_closed[] = { +-#include "actors/mario/mario_eyes_closed.rgba16.inc.c" ++Gfx mario_000_offset_007_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// Unreferenced +-// 0x04004890 +-ALIGNED8 static const Texture mario_texture_eyes_closed_unused1[] = { +-#include "actors/mario/mario_eyes_closed_unused_0.rgba16.inc.c" ++Gfx mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// Unreferenced +-// 0x04005090 +-ALIGNED8 static const Texture mario_texture_eyes_closed_unused2[] = { +-#include "actors/mario/mario_eyes_closed_unused_1.rgba16.inc.c" ++Gfx mario_000_offset_007_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04005890 +-ALIGNED8 static const Texture mario_texture_eyes_right[] = { +-#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c" ++Gfx mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04006090 +-ALIGNED8 static const Texture mario_texture_eyes_left[] = { +-#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c" ++Gfx mario_000_displaylist_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_001_v4), ++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04006890 +-ALIGNED8 static const Texture mario_texture_eyes_up[] = { +-#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c" ++Gfx mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04007090 +-ALIGNED8 static const Texture mario_texture_eyes_down[] = { +-#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c" +-}; ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; + +-// 0x04007890 +-ALIGNED8 static const Texture mario_texture_eyes_dead[] = { +-#include "actors/mario/mario_eyes_dead.rgba16.inc.c" ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04008090 +-ALIGNED8 static const Texture mario_texture_wings_half_1[] = { +-#include "actors/mario/mario_wing.rgba16.inc.c" ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04009090 +-ALIGNED8 static const Texture mario_texture_wings_half_2[] = { +-#include "actors/mario/mario_wing_tip.rgba16.inc.c" +-}; +- +-// 0x0400A090 +-ALIGNED8 static const Texture mario_texture_metal_wings_half_1[] = { +-#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c" +-}; ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; + +-// 0x0400B090 +-ALIGNED8 static const Texture mario_texture_metal_wings_half_2[] = { +-#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c" +-}; +- +-// 0x0400C090 +-static const Vtx mario_butt_dl_vertex_group1[] = { +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +-}; +- +-// 0x0400C180 +-static const Vtx mario_butt_dl_vertex_group2[] = { +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +-}; +- +-// 0x0400C260 +-static const Vtx mario_butt_dl_vertex_group3[] = { +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +-}; +- +-// 0x0400C360 +-static const Vtx mario_butt_dl_vertex_group4[] = { +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +-}; +- +-// 0x0400C450 +-static const Vtx mario_butt_dl_vertex_group5[] = { +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +-}; +- +-// 0x0400C540 +-static const Vtx mario_butt_dl_vertex_group6[] = { +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +-}; +- +-// 0x0400C630 +-static const Vtx mario_butt_dl_vertex_group7[] = { +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +-}; +- +-// 0x0400C720 +-static const Vtx mario_butt_dl_vertex_group8[] = { +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +-}; +- +-// 0x0400C820 +-static const Vtx mario_butt_dl_vertex_group9[] = { +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +-}; +- +-// 0x0400C920 +-static const Vtx mario_butt_dl_vertex_group10[] = { +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +-}; +- +-// 0x0400CA00 - 0x0400CC98 +-const Gfx mario_butt_dl[] = { +- gsSPVertex(mario_butt_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 5, 10, 0x0), +- gsSP2Triangles( 4, 11, 10, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 3, 13, 0x0, 6, 8, 12, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 1, 7, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(11, 9, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group4, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 2, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 11, 12, 7, 0x0), +- gsSP1Triangle(13, 11, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group5, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 2, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(11, 10, 9, 0x0, 12, 13, 14, 0x0), +- gsSP1Triangle( 0, 13, 12, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 2, 3, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 1, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group8, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 5, 0x0), +- gsSP2Triangles( 4, 11, 12, 0x0, 6, 11, 13, 0x0), +- gsSP2Triangles(13, 3, 14, 0x0, 15, 2, 1, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group9, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 1, 0, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 0, 13, 14, 0x0), +- gsSP1Triangle(15, 0, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group10, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 0, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 9, 1, 11, 0x0, 11, 12, 10, 0x0), +- gsSP1Triangle(10, 13, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CC98 - 0x0400CCC8 +-const Gfx mario_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CCC8 - 0x0400CD40 +-const Gfx mario_metal_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CD40 +-static const Vtx mario_left_arm_shared_dl_vertex_group1[] = { +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +-}; +- +-// 0x0400CE30 +-static const Vtx mario_left_arm_shared_dl_vertex_group2[] = { +- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, +- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, +- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +-}; +- +-// 0x0400CF20 +-static const Vtx mario_left_arm_shared_dl_vertex_group3[] = { +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, +- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +-}; +- +-// 0x0400D000 +-static const Vtx mario_left_arm_shared_dl_vertex_group4[] = { +- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, +- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, +- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, +- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +-}; +- +-// 0x0400D090 - 0x0400D1D8 +-const Gfx mario_left_arm_shared_dl[] = { +- gsSPVertex(mario_left_arm_shared_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 1, 7, 6, 0x0, 2, 1, 6, 0x0), +- gsSP2Triangles( 6, 5, 8, 0x0, 8, 5, 3, 0x0), +- gsSP2Triangles( 3, 0, 9, 0x0, 9, 0, 2, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 2, 4, 7, 0x0), +- gsSP2Triangles( 0, 2, 8, 0x0, 9, 0, 10, 0x0), +- gsSP2Triangles( 6, 9, 11, 0x0, 4, 6, 12, 0x0), +- gsSP1Triangle(13, 5, 3, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group4, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), +- gsSP1Triangle( 6, 8, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D1D8 - 0x0400D1F8 +-const Gfx mario_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D1F8 +-static const Vtx mario_left_forearm_shared_dl_vertex[] = { +- {{{ -2, 19, 16}, 0, { 0, 0}, {0xdb, 0x61, 0x48, 0x00}}}, +- {{{ 47, 14, 13}, 0, { 0, 0}, {0x44, 0x44, 0x51, 0x00}}}, +- {{{ 47, 16, -19}, 0, { 0, 0}, {0x45, 0x61, 0xd6, 0x00}}}, +- {{{ -3, -17, 26}, 0, { 0, 0}, {0xd7, 0xdb, 0x71, 0x00}}}, +- {{{ 46, -17, 22}, 0, { 0, 0}, {0x41, 0xc7, 0x5c, 0x00}}}, +- {{{ -3, -38, -4}, 0, { 0, 0}, {0xd4, 0x89, 0xfe, 0x00}}}, +- {{{ 45, -34, -4}, 0, { 0, 0}, {0x3f, 0x95, 0xe8, 0x00}}}, +- {{{ -3, -14, -34}, 0, { 0, 0}, {0xd7, 0xde, 0x8e, 0x00}}}, +- {{{ 46, -14, -30}, 0, { 0, 0}, {0x42, 0xf4, 0x95, 0x00}}}, +- {{{ -2, 21, -21}, 0, { 0, 0}, {0xdb, 0x63, 0xbb, 0x00}}}, +- {{{ -14, 13, -15}, 0, { 0, 0}, {0x93, 0x2c, 0xd3, 0x00}}}, +- {{{ -14, 11, 10}, 0, { 0, 0}, {0x93, 0x3b, 0x19, 0x00}}}, +- {{{ -15, -11, -24}, 0, { 0, 0}, {0x9a, 0xde, 0xbe, 0x00}}}, +- {{{ -15, -27, -4}, 0, { 0, 0}, {0x8b, 0xd2, 0x0a, 0x00}}}, +- {{{ -15, -13, 17}, 0, { 0, 0}, {0x9b, 0xfb, 0x4c, 0x00}}}, +- {{{ 58, -7, -3}, 0, { 0, 0}, {0x7e, 0xfc, 0x00, 0x00}}}, +-}; +- +-// 0x0400D2F8 - 0x0400D3E8 +-const Gfx mario_left_forearm_shared_dl[] = { +- gsSPVertex(mario_left_forearm_shared_dl_vertex, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), +- gsSP2Triangles( 8, 15, 6, 0x0, 6, 15, 4, 0x0), +- gsSP2Triangles( 4, 15, 1, 0x0, 1, 15, 2, 0x0), +- gsSP2Triangles( 2, 15, 8, 0x0, 0, 14, 3, 0x0), +- gsSP2Triangles( 3, 13, 5, 0x0, 5, 12, 7, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 9, 11, 0, 0x0), +- gsSP2Triangles( 7, 9, 8, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 9, 0, 2, 0x0, 12, 13, 10, 0x0), +- gsSP2Triangles(13, 11, 10, 0x0, 13, 14, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D3E8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group1[] = { +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +- {{{ 17, -1, 27}, 0, { 0, 0}, {0x00, 0xfd, 0x7f, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, +- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, +- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, +- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, +- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, +- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, +- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, +-}; +- +-// 0x0400D4E8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group2[] = { +- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, +- {{{ 57, 55, -37}, 0, { 0, 0}, {0x22, 0x54, 0xa9, 0x00}}}, +- {{{ 99, 40, -16}, 0, { 0, 0}, {0x6c, 0x3c, 0xe5, 0x00}}}, +- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, +- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, +- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, +- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +-}; +- +-// 0x0400D5C8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group3[] = { +- {{{ 27, -58, 6}, 0, { 0, 0}, {0xa3, 0xad, 0x12, 0x00}}}, +- {{{ -14, -14, -4}, 0, { 0, 0}, {0x8c, 0xcd, 0x02, 0x00}}}, +- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, +- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, +- {{{ -18, 45, 8}, 0, { 0, 0}, {0x84, 0xf3, 0x13, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x99, 0xd2, 0x38, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 27, -58, 6}, 0, { 0, 0}, {0x73, 0xd5, 0x1d, 0x00}}}, +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ -18, 45, 8}, 0, { 0, 0}, {0x2d, 0x71, 0x21, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +-}; +- +-// 0x0400D6B8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group4[] = { +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, +- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +-}; +- +-// 0x0400D758 - 0x0400D8F0 +-const Gfx mario_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 1, 0, 0x0, 2, 1, 7, 0x0), +- gsSP2Triangles( 7, 1, 6, 0x0, 6, 4, 8, 0x0), +- gsSP2Triangles( 8, 4, 3, 0x0, 9, 3, 2, 0x0), +- gsSP2Triangles( 0, 10, 11, 0x0, 12, 10, 0, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 1, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 1, 0, 9, 0x0), +- gsSP2Triangles( 9, 3, 1, 0x0, 5, 2, 1, 0x0), +- gsSP2Triangles( 0, 2, 7, 0x0, 7, 2, 8, 0x0), +- gsSP2Triangles( 8, 2, 11, 0x0, 11, 2, 5, 0x0), +- gsSP2Triangles( 9, 7, 6, 0x0, 6, 8, 12, 0x0), +- gsSP2Triangles(12, 8, 13, 0x0, 13, 5, 4, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 8, 2, 3, 0x0, 3, 9, 10, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 11, 7, 6, 0x0), +- gsSP2Triangles(10, 12, 13, 0x0, 6, 14, 12, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group4, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 1, 5, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP1Triangle( 7, 1, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D8F0 - 0x0400D910 +-const Gfx mario_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D910 +-static const Vtx mario_right_arm_shared_dl_vertex_group1[] = { +- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +-}; +- +-// 0x0400DA10 +-static const Vtx mario_right_arm_shared_dl_vertex_group2[] = { +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +-}; +- +-// 0x0400DB10 +-static const Vtx mario_right_arm_shared_dl_vertex_group3[] = { +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +-}; +- +-// 0x0400DC10 +-static const Vtx mario_right_arm_shared_dl_vertex_group4[] = { +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, +-}; +- +-// 0x0400DCA0 - 0x0400DDE8 +-const Gfx mario_right_arm_shared_dl[] = { +- gsSPVertex(mario_right_arm_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), +- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), +- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), +- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 3, 6, 4, 0x0), +- gsSP2Triangles( 1, 6, 3, 0x0, 0, 7, 1, 0x0), +- gsSP2Triangles( 8, 7, 0, 0x0, 5, 4, 8, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 9, 13, 0x0), +- gsSP1Triangle(14, 12, 15, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 5, 2, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 10, 8, 11, 0x0), +- gsSP2Triangles( 6, 10, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group4, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP1Triangle( 5, 8, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DDE8 - 0x0400DE08 +-const Gfx mario_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DE08 +-static const Vtx mario_right_forearm_shared_dl_vertex[] = { +- {{{ 47, -15, -19}, 0, { 0, 0}, {0x41, 0xcf, 0x9f, 0x00}}}, +- {{{ -3, -39, 6}, 0, { 0, 0}, {0xd4, 0x8a, 0xf8, 0x00}}}, +- {{{ -2, -15, -23}, 0, { 0, 0}, {0xd7, 0xe5, 0x8c, 0x00}}}, +- {{{ 46, -36, 6}, 0, { 0, 0}, {0x3f, 0x94, 0x0f, 0x00}}}, +- {{{ -2, -18, 38}, 0, { 0, 0}, {0xd6, 0xd5, 0x6f, 0x00}}}, +- {{{ 47, -17, 34}, 0, { 0, 0}, {0x42, 0xec, 0x6a, 0x00}}}, +- {{{ -1, 18, 28}, 0, { 0, 0}, {0xdb, 0x5d, 0x4d, 0x00}}}, +- {{{ 48, 13, 25}, 0, { 0, 0}, {0x45, 0x5d, 0x32, 0x00}}}, +- {{{ -1, 20, -9}, 0, { 0, 0}, {0xdb, 0x67, 0xc1, 0x00}}}, +- {{{ 48, 15, -7}, 0, { 0, 0}, {0x45, 0x4c, 0xb6, 0x00}}}, +- {{{ -14, -28, 6}, 0, { 0, 0}, {0x90, 0xc9, 0xef, 0x00}}}, +- {{{ -14, -12, -13}, 0, { 0, 0}, {0x91, 0x01, 0xc3, 0x00}}}, +- {{{ -13, 12, -4}, 0, { 0, 0}, {0x9e, 0x4b, 0xe7, 0x00}}}, +- {{{ -13, 10, 21}, 0, { 0, 0}, {0x8d, 0x22, 0x28, 0x00}}}, +- {{{ -14, -14, 28}, 0, { 0, 0}, {0x9a, 0xd8, 0x3f, 0x00}}}, +- {{{ 59, -8, 7}, 0, { 0, 0}, {0x7f, 0xfd, 0x00, 0x00}}}, +-}; +- +-// 0x0400DF08 - 0x0400DFF8 +-const Gfx mario_right_forearm_shared_dl[] = { +- gsSPVertex(mario_right_forearm_shared_dl_vertex, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), +- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), +- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), +- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), +- gsSP2Triangles( 3, 15, 5, 0x0, 5, 15, 7, 0x0), +- gsSP2Triangles( 7, 15, 9, 0x0, 14, 10, 1, 0x0), +- gsSP2Triangles(13, 14, 4, 0x0, 12, 13, 6, 0x0), +- gsSP2Triangles(11, 12, 8, 0x0, 10, 11, 2, 0x0), +- gsSP2Triangles( 9, 0, 2, 0x0, 7, 9, 8, 0x0), +- gsSP2Triangles( 5, 7, 6, 0x0, 3, 5, 4, 0x0), +- gsSP2Triangles( 0, 3, 1, 0x0, 11, 13, 12, 0x0), +- gsSP2Triangles(11, 10, 13, 0x0, 10, 14, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DFF8 +-static const Vtx mario_right_hand_closed_dl_vertex_group1[] = { +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, +- {{{ 24, -57, -4}, 0, { 0, 0}, {0x73, 0xd4, 0xe6, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0x30, 0x72, 0xe5, 0x00}}}, +- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, +- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, +- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, +- {{{ 24, -57, -4}, 0, { 0, 0}, {0xa2, 0xaf, 0xe7, 0x00}}}, +- {{{ -16, -12, 6}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x9b, 0xd5, 0xc2, 0x00}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0x85, 0xf5, 0xe7, 0x00}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, +-}; +- +-// 0x0400E0F8 +-static const Vtx mario_right_hand_closed_dl_vertex_group2[] = { +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 104, -26, 1}, 0, { 0, 0}, {0x68, 0xc5, 0xd7, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, +- {{{ 96, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x51, 0x00}}}, +- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, +- {{{ 97, 39, 24}, 0, { 0, 0}, {0x6b, 0x3a, 0x21, 0x00}}}, +- {{{ 86, 30, -33}, 0, { 0, 0}, {0x4f, 0x22, 0xa4, 0x00}}}, +- {{{ 86, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x61, 0x00}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x20, 0x51, 0x5c, 0x00}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, +- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +-}; +- +-// 0x0400E1D8 +-static const Vtx mario_right_hand_closed_dl_vertex_group3[] = { +- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, +- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, +- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, +- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd2, 0x3c, 0x65, 0x00}}}, +- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, +- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, +- {{{ 15, 0, -23}, 0, { 0, 0}, {0x04, 0x01, 0x82, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, +- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, +-}; +- +-// 0x0400E2C8 - 0x0400E458 +-const Gfx mario_right_hand_closed_dl[] = { +- gsSPVertex(mario_right_hand_closed_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 2, 5, 6, 0x0, 6, 7, 4, 0x0), +- gsSP2Triangles( 4, 7, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 9, 5, 2, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 12, 14, 0x0, 14, 12, 8, 0x0), +- gsSP2Triangles( 8, 12, 9, 0x0, 9, 12, 11, 0x0), +- gsSP1Triangle( 3, 15, 0, 0x0), +- gsSPVertex(mario_right_hand_closed_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 8, 7, 1, 0x0, 1, 7, 4, 0x0), +- gsSP2Triangles( 4, 7, 9, 0x0, 10, 7, 6, 0x0), +- gsSP2Triangles( 9, 10, 5, 0x0, 10, 11, 5, 0x0), +- gsSP2Triangles(11, 12, 5, 0x0, 1, 4, 3, 0x0), +- gsSP2Triangles(11, 10, 6, 0x0, 6, 13, 11, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 4, 9, 5, 0x0), +- gsSP2Triangles( 0, 8, 1, 0x0, 6, 8, 0, 0x0), +- gsSPVertex(mario_right_hand_closed_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 0, 0x0, 8, 6, 5, 0x0), +- gsSP2Triangles( 9, 3, 1, 0x0, 0, 6, 8, 0x0), +- gsSP2Triangles(10, 11, 1, 0x0, 11, 9, 1, 0x0), +- gsSP2Triangles(11, 12, 9, 0x0, 1, 0, 10, 0x0), +- gsSP2Triangles(13, 5, 3, 0x0, 3, 9, 14, 0x0), +- gsSP1Triangle(14, 13, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E458 - 0x0400E478 +-const Gfx mario_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E478 - 0x0400E4A8 +-const Gfx mario_metal_right_hand_closed[] = { +- gsSPDisplayList(mario_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E4A8 +-static const Vtx mario_left_thigh_dl_vertex_group1[] = { +- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, +- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, +- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, +- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, +- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, +- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, +- {{{ 116, 10, 8}, 0, { 0, 0}, {0x7e, 0x09, 0x01, 0x00}}}, +- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, +- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, +- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, +- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, +- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, +- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, +- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, +- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, +-}; +- +-// 0x0400E5A8 +-static const Vtx mario_left_thigh_dl_vertex_group2[] = { +- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, +- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, +- {{{ 21, -54, 8}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0x00}}}, +- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, +- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, +- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, +- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, +- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, +- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, +- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, +- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, +- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, +- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, +- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, +- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, +-}; +- +-// 0x0400E6A8 - 0x0400E7B0 +-const Gfx mario_left_thigh_dl[] = { +- gsSPVertex(mario_left_thigh_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 10, 7, 11, 0x0), +- gsSP2Triangles(11, 7, 6, 0x0, 12, 3, 13, 0x0), +- gsSP2Triangles(13, 4, 14, 0x0, 14, 4, 15, 0x0), +- gsSPVertex(mario_left_thigh_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 0, 2, 6, 0x0), +- gsSP2Triangles( 7, 0, 8, 0x0, 9, 7, 10, 0x0), +- gsSP2Triangles( 3, 9, 10, 0x0, 2, 3, 6, 0x0), +- gsSP2Triangles( 3, 11, 6, 0x0, 10, 11, 3, 0x0), +- gsSP2Triangles( 7, 8, 10, 0x0, 0, 12, 8, 0x0), +- gsSP2Triangles( 6, 12, 0, 0x0, 1, 13, 3, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 14, 4, 0, 0x0), +- gsSP2Triangles( 9, 15, 14, 0x0, 3, 13, 15, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E7B0 - 0x0400E7E0 +-const Gfx mario_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E7E0 - 0x0400E858 +-const Gfx mario_metal_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E858 +-static const Vtx mario_left_leg_shared_dl_vertex[] = { +- {{{ 4, -37, 9}, 0, { 0, 0}, {0xc1, 0x93, 0x00, 0x00}}}, +- {{{ 64, -46, 9}, 0, { 0, 0}, {0x4b, 0x9a, 0x01, 0x00}}}, +- {{{ 65, -11, 54}, 0, { 0, 0}, {0x2d, 0xdb, 0x70, 0x00}}}, +- {{{ 8, 44, 33}, 0, { 0, 0}, {0xcc, 0x5e, 0x43, 0x00}}}, +- {{{ 68, 45, 37}, 0, { 0, 0}, {0x52, 0x4b, 0x3c, 0x00}}}, +- {{{ 69, 45, -18}, 0, { 0, 0}, {0x42, 0x61, 0xd1, 0x00}}}, +- {{{ 9, 44, -16}, 0, { 0, 0}, {0xc4, 0x4d, 0xaf, 0x00}}}, +- {{{ 66, -11, -36}, 0, { 0, 0}, {0x2e, 0xda, 0x91, 0x00}}}, +- {{{ 6, -6, -31}, 0, { 0, 0}, {0xb4, 0xe5, 0x9f, 0x00}}}, +- {{{ 6, -6, 49}, 0, { 0, 0}, {0xb3, 0xe7, 0x60, 0x00}}}, +- {{{ -14, 8, 8}, 0, { 0, 0}, {0x82, 0x06, 0xff, 0x00}}}, +- {{{ 81, 3, 9}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +-}; +- +-// 0x0400E918 - 0x0400E9C8 +-const Gfx mario_left_leg_shared_dl[] = { +- gsSPVertex(mario_left_leg_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles( 3, 10, 9, 0x0, 5, 11, 7, 0x0), +- gsSP2Triangles( 7, 11, 1, 0x0, 1, 11, 2, 0x0), +- gsSP2Triangles( 2, 11, 4, 0x0, 4, 11, 5, 0x0), +- gsSP2Triangles( 9, 10, 0, 0x0, 0, 10, 8, 0x0), +- gsSP2Triangles( 8, 10, 6, 0x0, 6, 10, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E9C8 +-static const Vtx mario_left_foot_shared_dl_vertex_group1[] = { +- {{{ 110, 9, 35}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 110, 8, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -39, 64, -8}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -41, 65, 26}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, +- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, +- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, +- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, +-}; +- +-// 0x0400EAC8 +-static const Vtx mario_left_foot_shared_dl_vertex_group2[] = { +- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, +- {{{ 110, 8, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +- {{{ 80, -31, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, +- {{{ 110, 9, 35}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, +- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, +- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, +- {{{ -41, 65, 26}, 0, { 0, 0}, {0x90, 0x17, 0x35, 0x00}}}, +- {{{ -39, 64, -8}, 0, { 0, 0}, {0x93, 0x16, 0xc4, 0x00}}}, +- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, +- {{{ -54, 15, 8}, 0, { 0, 0}, {0x88, 0xd8, 0xfd, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, +- {{{ 27, -35, 11}, 0, { 0, 0}, {0xdb, 0x87, 0xfc, 0x00}}}, +-}; +- +-// 0x0400EBB8 - 0x0400ECA0 +-const Gfx mario_left_foot_shared_dl[] = { +- gsSPVertex(mario_left_foot_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(14, 8, 10, 0x0, 11, 13, 15, 0x0), +- gsSPVertex(mario_left_foot_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 2, 3, 0, 0x0, 4, 5, 6, 0x0), +- gsSP2Triangles( 6, 3, 4, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), +- gsSP2Triangles(12, 9, 10, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles(14, 0, 3, 0x0, 11, 0, 14, 0x0), +- gsSP2Triangles( 3, 6, 14, 0x0, 14, 6, 7, 0x0), +- gsSP2Triangles(14, 7, 12, 0x0, 12, 11, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400ECA0 - 0x0400ECC0 +-const Gfx mario_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400ECC0 +-static const Vtx mario_right_thigh_shared_dl_vertex_group1[] = { +- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, +- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, +- {{{ 22, -54, -9}, 0, { 0, 0}, {0xf2, 0x82, 0xfd, 0x00}}}, +- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, +- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, +- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, +- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, +- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, +- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, +- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, +- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, +- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, +- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, +- {{{ 116, 11, -9}, 0, { 0, 0}, {0x7e, 0x0b, 0xfe, 0x00}}}, +- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, +-}; +- +-// 0x0400EDC0 +-static const Vtx mario_right_thigh_shared_dl_vertex_group2[] = { +- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, +- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 0, -14, 31}, 0, { 0, 0}, {0xa0, 0xdf, 0x4b, 0x00}}}, +- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, +- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, +- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, +- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, +- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, +- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, +- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, +- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, +- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, +- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, +- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, +- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, +-}; +- +-// 0x0400EEB0 - 0x0400EFB8 +-const Gfx mario_right_thigh_shared_dl[] = { +- gsSPVertex(mario_right_thigh_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 0, 2, 7, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 1, 8, 2, 0x0, 2, 8, 7, 0x0), +- gsSP2Triangles( 7, 11, 5, 0x0, 5, 11, 4, 0x0), +- gsSP2Triangles( 4, 12, 1, 0x0, 13, 14, 0, 0x0), +- gsSP2Triangles( 0, 14, 15, 0x0, 15, 14, 3, 0x0), +- gsSP2Triangles( 3, 14, 6, 0x0, 6, 14, 13, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 11, 9, 12, 0x0), +- gsSPVertex(mario_right_thigh_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 6, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 3, 8, 7, 0x0), +- gsSP2Triangles( 4, 2, 3, 0x0, 7, 9, 10, 0x0), +- gsSP2Triangles(11, 9, 7, 0x0, 12, 11, 13, 0x0), +- gsSP2Triangles( 4, 14, 12, 0x0, 10, 14, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400EFB8 - 0x0400EFD8 +-const Gfx mario_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400EFD8 +-static const Vtx mario_right_leg_shared_dl_vertex_group1[] = { +- {{{ 63, -45, -12}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xfc, 0x22, 0x7a, 0x00}}}, +- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0xf7, 0x27, 0x88, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 63, -45, -12}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, +- {{{ -13, 10, -9}, 0, { 0, 0}, {0x82, 0x08, 0x02, 0x00}}}, +- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, +-}; +- +-// 0x0400F0D8 +-static const Vtx mario_right_leg_shared_dl_vertex_group2[] = { +- {{{ 65, -9, -56}, 0, { 0, 0}, {0x75, 0xee, 0xd5, 0x00}}}, +- {{{ 83, 4, -10}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 63, -45, -12}, 0, { 0, 0}, {0x75, 0xd1, 0xfd, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0x77, 0xec, 0x26, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0x7a, 0x18, 0x17, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0x79, 0x19, 0xe6, 0x00}}}, +- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, +- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, +- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, +- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +-}; +- +-// 0x0400F1D8 - 0x0400F290 +-const Gfx mario_right_leg_shared_dl[] = { +- gsSPVertex(mario_right_leg_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 8, 0x0), +- gsSP2Triangles(11, 12, 2, 0x0, 13, 14, 2, 0x0), +- gsSP2Triangles( 2, 14, 15, 0x0, 15, 14, 8, 0x0), +- gsSP2Triangles( 8, 14, 5, 0x0, 5, 14, 13, 0x0), +- gsSPVertex(mario_right_leg_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(11, 13, 14, 0x0, 15, 13, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F290 +-static const Vtx mario_right_foot_dl_vertex_group1[] = { +- {{{ 27, -35, -11}, 0, { 0, 0}, {0xdc, 0x87, 0x06, 0x00}}}, +- {{{ -36, 11, 19}, 0, { 0, 0}, {0xb5, 0xd3, 0x5b, 0x00}}}, +- {{{ -54, 14, -10}, 0, { 0, 0}, {0x89, 0xd6, 0x03, 0x00}}}, +- {{{ -34, 11, -46}, 0, { 0, 0}, {0xb4, 0xd0, 0xa8, 0x00}}}, +- {{{ 43, -18, -55}, 0, { 0, 0}, {0x0a, 0xb2, 0x9d, 0x00}}}, +- {{{ 80, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, +- {{{ 44, -11, 32}, 0, { 0, 0}, {0x01, 0xb8, 0x68, 0x00}}}, +- {{{ -42, 64, -29}, 0, { 0, 0}, {0x90, 0x14, 0xc9, 0x00}}}, +- {{{ -40, 63, 5}, 0, { 0, 0}, {0x92, 0x15, 0x3b, 0x00}}}, +- {{{ -14, 54, 29}, 0, { 0, 0}, {0xd5, 0xfe, 0x77, 0x00}}}, +- {{{ -11, 53, -56}, 0, { 0, 0}, {0xda, 0xfe, 0x87, 0x00}}}, +- {{{ 110, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, +- {{{ 78, 22, -61}, 0, { 0, 0}, {0x17, 0xd9, 0x8a, 0x00}}}, +- {{{ 109, 11, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, +- {{{ 75, 23, 40}, 0, { 0, 0}, {0x0b, 0xda, 0x78, 0x00}}}, +-}; +- +-// 0x0400F380 +-static const Vtx mario_right_foot_dl_vertex_group2[] = { +- {{{ -42, 64, -29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -40, 63, 5}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -11, 53, -56}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, 29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 78, 22, -61}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 75, 23, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 110, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 109, 11, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x0400F400 - 0x0400F4E8 +-const Gfx mario_right_foot_dl[] = { +- gsSPVertex(mario_right_foot_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), +- gsSP2Triangles( 0, 6, 1, 0x0, 5, 6, 0, 0x0), +- gsSP2Triangles( 3, 2, 7, 0x0, 8, 7, 2, 0x0), +- gsSP2Triangles( 1, 9, 8, 0x0, 2, 1, 8, 0x0), +- gsSP2Triangles( 7, 10, 3, 0x0, 11, 5, 4, 0x0), +- gsSP2Triangles( 4, 12, 11, 0x0, 6, 5, 13, 0x0), +- gsSP2Triangles(11, 13, 5, 0x0, 13, 14, 6, 0x0), +- gsSP2Triangles(14, 9, 6, 0x0, 10, 4, 3, 0x0), +- gsSP2Triangles( 9, 1, 6, 0x0, 10, 12, 4, 0x0), +- gsSPVertex(mario_right_foot_dl_vertex_group2, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 3, 4, 2, 0x0, 3, 5, 4, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 5, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F4E8 - 0x0400F528 +-const Gfx mario_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F528 - 0x0400F568 +-const Gfx mario_metal_right_foot[] = { +- gsSPDisplayList(mario_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F568 +-static const Vtx mario_yellow_button_dl_vertex[] = { +- {{{ 9, 89, 41}, 0, { 180, 962}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 682, 966}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 34, 106}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 28, 85, 30}, 0, { -60, 572}, {0x2c, 0x76, 0x08, 0xff}}}, +- {{{ 17, 66, 76}, 0, { 966, 590}, {0x19, 0x58, 0x57, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 902, 252}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 48, 64, 59}, 0, { 548, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, +- {{{ 9, 89, -40}, 0, { 776, 920}, {0x10, 0x7b, 0xe7, 0xff}}}, +- {{{ 28, 85, -29}, 0, { 990, 512}, {0x2d, 0x75, 0xf2, 0xff}}}, +- {{{ 47, 75, -34}, 0, { 850, 72}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 264, 972}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ 48, 64, -58}, 0, { 312, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, +- {{{ 32, 62, -73}, 0, { -24, 310}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 17, 66, -75}, 0, { -58, 642}, {0x17, 0x58, 0xa8, 0xff}}}, +-}; +- +-// 0x0400F648 +-static const Vtx mario_tshirt_shared_dl_vertex_group1[] = { +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, +- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, +- {{{ 46, -34, -83}, 0, { 0, 0}, {0x24, 0xc8, 0x95, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, +-}; +- +-// 0x0400F748 +-static const Vtx mario_tshirt_shared_dl_vertex_group2[] = { +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, +- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, +- {{{ 47, 3, 89}, 0, { 0, 0}, {0x30, 0x08, 0x75, 0xff}}}, +- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, +- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +-}; +- +-// 0x0400F828 +-static const Vtx mario_tshirt_shared_dl_vertex_group3[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +-}; +- +-// 0x0400F878 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group1[] = { +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 28, 85, 30}, 0, { 0, 0}, {0x2c, 0x76, 0x08, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 28, 85, -29}, 0, { 0, 0}, {0x2d, 0x75, 0xf2, 0xff}}}, +- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ 9, 89, -40}, 0, { 0, 0}, {0x10, 0x7b, 0xe7, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ -15, 87, -35}, 0, { 0, 0}, {0xea, 0x76, 0xda, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, +- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +-}; +- +-// 0x0400F968 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group2[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 48, 64, -58}, 0, { 0, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 48, 64, 59}, 0, { 0, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, +- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +-}; +- +-// 0x0400FA68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group3[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ -27, -25, -86}, 0, { 0, 0}, {0xcb, 0xd5, 0x96, 0xff}}}, +- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, +- {{{ -29, -58, -59}, 0, { 0, 0}, {0xc9, 0x9a, 0xcf, 0xff}}}, +- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +-}; +- +-// 0x0400FB68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group4[] = { +- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ -29, -58, 59}, 0, { 0, 0}, {0xc8, 0x99, 0x30, 0xff}}}, +- {{{ -27, -25, 87}, 0, { 0, 0}, {0xcb, 0xd3, 0x69, 0xff}}}, +- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, +- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +-}; +- +-// 0x0400FC68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group5[] = { +- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, +-}; +- +-// 0x0400FD48 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group6[] = { +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, +- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +-}; +- +-// 0x0400FE38 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group7[] = { +- {{{ 17, 66, -75}, 0, { 0, 0}, {0x17, 0x58, 0xa8, 0xff}}}, +- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 17, 66, 76}, 0, { 0, 0}, {0x19, 0x58, 0x57, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +-}; +- +-// 0x0400FF28 - 0x0400FF88 +-const Gfx mario_yellow_button_dl[] = { +- gsSPVertex(mario_yellow_button_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 4, 2, 0x0, 5, 6, 2, 0x0), +- gsSP2Triangles( 4, 5, 2, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 9, 11, 12, 0x0), +- gsSP2Triangles(12, 13, 9, 0x0, 13, 10, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400FF88 - 0x04010260 +-const Gfx mario_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 1, 5, 0x0, 1, 3, 5, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 9, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 10, 0x0, 10, 11, 7, 0x0), +- gsSP2Triangles( 9, 7, 11, 0x0, 12, 6, 13, 0x0), +- gsSP2Triangles( 9, 13, 6, 0x0, 6, 12, 14, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 11, 8, 7, 0x0), +- gsSP2Triangles(12, 8, 11, 0x0, 13, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 14, 0x0, 2, 15, 13, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 3, 8, 6, 0x0), +- gsSP2Triangles( 5, 9, 3, 0x0, 8, 3, 9, 0x0), +- gsSP2Triangles( 6, 8, 10, 0x0, 11, 10, 8, 0x0), +- gsSP2Triangles( 9, 11, 8, 0x0, 6, 12, 7, 0x0), +- gsSP2Triangles(12, 6, 10, 0x0, 7, 12, 13, 0x0), +- gsSP2Triangles(14, 5, 15, 0x0, 14, 9, 5, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 1, 4, 3, 0x0, 5, 4, 6, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 2, 3, 7, 0x0), +- gsSP2Triangles( 7, 3, 5, 0x0, 8, 2, 7, 0x0), +- gsSP2Triangles( 2, 8, 0, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 11, 10, 0x0, 11, 7, 13, 0x0), +- gsSP1Triangle(14, 15, 11, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group5, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), +- gsSP2Triangles( 2, 5, 0, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 4, 3, 8, 0x0, 9, 7, 4, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 11, 6, 7, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), +- gsSP1Triangle( 7, 9, 10, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0), +- gsSP2Triangles(14, 12, 13, 0x0, 11, 10, 9, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 9, 8, 5, 0x0), +- gsSP2Triangles( 5, 8, 6, 0x0, 11, 1, 0, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 6, 14, 4, 0x0), +- gsSP1Triangle(11, 0, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010260 - 0x04010348 +-const Gfx mario_tshirt_shared_dl[] = { +- gsSPVertex(mario_tshirt_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 6, 8, 10, 0x0, 11, 8, 12, 0x0), +- gsSP2Triangles(12, 8, 7, 0x0, 8, 11, 10, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_tshirt_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 6, 2, 3, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 9, 10, 0x0, 11, 10, 9, 0x0), +- gsSP2Triangles(12, 3, 4, 0x0, 13, 3, 12, 0x0), +- gsSP1Triangle( 6, 3, 13, 0x0), +- gsSPVertex(mario_tshirt_shared_dl_vertex_group3, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP1Triangle( 1, 4, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010348 - 0x04010370 +-const Gfx mario_torso_dl[] = { +- gsSPDisplayList(mario_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010370 - 0x040103F0 +-const Gfx mario_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040103F0 - 0x04010410 +-const Gfx mario_metal_torso_shared_dl[] = { +- gsSPDisplayList(mario_yellow_button_dl), +- gsSPDisplayList(mario_pants_overalls_shared_dl), +- gsSPDisplayList(mario_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010410 +-static const Vtx mario_m_logo_dl_vertex[] = { +- {{{ 195, 93, 32}, 0, { 744, 732}, {0x51, 0x54, 0x30, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1250, 1066}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 1032, 152}, {0x39, 0x4a, 0x55, 0xff}}}, +- {{{ 272, 85, 0}, 0, { 472, -16}, {0x5f, 0x54, 0x00, 0xff}}}, +- {{{ 252, 62, -69}, 0, { -78, 158}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 232, 736}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -258, 1076}, {0x03, 0x46, 0x97, 0xff}}}, +-}; +- +-// 0x04010480 +-static const Vtx mario_eyes_cap_on_dl_vertex[] = { +- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 106, 130}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 842, 112}, {0xc6, 0x6d, 0x19, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -404, 342}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x04, 0x46, 0x69, 0xff}}}, +-}; +- +-// 0x04010540 +-static const Vtx mario_hair_sideburn_cap_on_dl_vertex[] = { +- {{{ 120, -12, -109}, 0, { 916, 184}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 90, -58}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 922, 122}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 22, -68}, {0x04, 0x46, 0x69, 0xff}}}, +-}; +- +-// 0x04010600 +-static const Vtx mario_mustache_cap_on_dl_vertex_group1[] = { +- {{{ 77, 108, 34}, 0, { 342, 368}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 898, -18}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 224, 146}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 888, 564}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 354, 690}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 442, 982}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 70, 924}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 1296, 438}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 892, 1090}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 340, 684}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 394, 998}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 806, 1162}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 50, 900}, {0x95, 0x44, 0x00, 0xff}}}, +-}; +- +-// 0x04010700 +-static const Vtx mario_mustache_cap_on_dl_vertex_group2[] = { +- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 922, -4}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 274, 100}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, +-}; +- +-// 0x04010750 +-static const Vtx mario_face_cap_dl_vertex_group1[] = { +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 122, -139, -48}, 0, { 0, 0}, {0x28, 0x94, 0xcd, 0xff}}}, +- {{{ 131, -56, -123}, 0, { 0, 0}, {0xde, 0xd4, 0x8f, 0xff}}}, +- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 77, -138, -50}, 0, { 0, 0}, {0xbc, 0x9e, 0xd8, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 122, -139, 49}, 0, { 0, 0}, {0x2d, 0x8f, 0x22, 0xff}}}, +- {{{ 77, -138, 51}, 0, { 0, 0}, {0xc1, 0xa4, 0x3c, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, +- {{{ 131, -56, 124}, 0, { 0, 0}, {0xdf, 0xd3, 0x71, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +-}; +- +-// 0x04010850 +-static const Vtx mario_face_cap_dl_vertex_group2[] = { +- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, +- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, +- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +-}; +- +-// 0x04010940 +-static const Vtx mario_face_cap_dl_vertex_group3[] = { +- {{{ 195, 93, 32}, 0, { 0, 0}, {0x51, 0x54, 0x30, 0xff}}}, +- {{{ 173, 132, 66}, 0, { 0, 0}, {0xda, 0x5a, 0x50, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0xc6, 0x6d, 0x19, 0xff}}}, +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, +- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 272, 85, 0}, 0, { 0, 0}, {0x5f, 0x54, 0x00, 0xff}}}, +- {{{ 182, 155, 0}, 0, { 0, 0}, {0xed, 0x7d, 0x00, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, +-}; +- +-// 0x04010A30 +-static const Vtx mario_face_part_cap_on_dl_vertex_group1[] = { +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +-}; +- +-// 0x04010B20 +-static const Vtx mario_face_part_cap_on_dl_vertex_group2[] = { +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +-}; +- +-// 0x04010C20 +-static const Vtx mario_face_part_cap_on_dl_vertex_group3[] = { +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +-}; +- +-// 0x04010D10 +-static const Vtx mario_face_part_cap_on_dl_vertex_group4[] = { +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +-}; +- +-// 0x04010E10 +-static const Vtx mario_face_part_cap_on_dl_vertex_group5[] = { +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +-}; +- +-// 0x04010F00 +-static const Vtx mario_face_part_cap_on_dl_vertex_group6[] = { +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +-}; +- +-// 0x04011000 +-static const Vtx mario_face_part_cap_on_dl_vertex_group7[] = { +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +-}; +- +-// 0x040110D0 +-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group1[] = { +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +-}; +- +-// 0x040111D0 +-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group2[] = { +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +-}; +- +-// 0x040112B0 - 0x040112E8 +-const Gfx mario_m_logo_dl[] = { +- gsSPVertex(mario_m_logo_dl_vertex, 7, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 2, 3, 0, 0x0, 3, 5, 0, 0x0), +- gsSP1Triangle( 4, 6, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040112E8 - 0x04011350 +-const Gfx mario_eyes_cap_on_dl[] = { +- gsSPVertex(mario_eyes_cap_on_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 0, 4, 0x0, 6, 3, 5, 0x0), +- gsSP2Triangles( 3, 1, 0, 0x0, 4, 0, 7, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 2, 9, 10, 0x0), +- gsSP2Triangles(10, 7, 2, 0x0, 11, 7, 10, 0x0), +- gsSP1Triangle( 7, 0, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011350 - 0x040113A0 +-const Gfx mario_hair_sideburn_cap_on_dl[] = { +- gsSPVertex(mario_hair_sideburn_cap_on_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles( 9, 10, 6, 0x0, 11, 6, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040113A0 - 0x04011438 +-const Gfx mario_mustache_cap_on_dl[] = { +- gsSPVertex(mario_mustache_cap_on_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 5, 4, 6, 0x0, 7, 3, 8, 0x0), +- gsSP2Triangles( 8, 3, 5, 0x0, 3, 7, 1, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 10, 13, 0x0), +- gsSP2Triangles(11, 10, 12, 0x0, 10, 9, 14, 0x0), +- gsSP1Triangle(15, 9, 11, 0x0), +- gsSPVertex(mario_mustache_cap_on_dl_vertex_group2, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP1Triangle( 2, 4, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011438 - 0x040116F8 +-const Gfx mario_face_part_cap_on_dl[] = { +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 2, 0x0, 1, 5, 3, 0x0), +- gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 4, 7, 8, 0x0), +- gsSP2Triangles( 9, 4, 8, 0x0, 10, 6, 5, 0x0), +- gsSP2Triangles(10, 5, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 5, 6, 8, 0x0), +- gsSP2Triangles( 3, 8, 7, 0x0, 9, 3, 7, 0x0), +- gsSP2Triangles( 3, 9, 4, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles( 0, 10, 1, 0x0, 10, 0, 11, 0x0), +- gsSP2Triangles(11, 0, 2, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 3, 0, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 9, 8, 0x0), +- gsSP2Triangles(12, 13, 8, 0x0, 8, 13, 11, 0x0), +- gsSP1Triangle( 9, 11, 14, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), +- gsSP2Triangles( 5, 2, 4, 0x0, 2, 6, 3, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 3, 0x0), +- gsSP2Triangles( 9, 4, 3, 0x0, 7, 10, 3, 0x0), +- gsSP2Triangles( 3, 10, 8, 0x0, 11, 4, 9, 0x0), +- gsSP2Triangles(12, 11, 9, 0x0, 13, 9, 8, 0x0), +- gsSP2Triangles( 9, 13, 12, 0x0, 4, 11, 5, 0x0), +- gsSP1Triangle(14, 15, 11, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group5, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 1, 5, 6, 0x0, 1, 3, 5, 0x0), +- gsSP2Triangles( 2, 1, 6, 0x0, 2, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 6, 5, 11, 0x0), +- gsSP2Triangles(12, 13, 8, 0x0, 10, 12, 8, 0x0), +- gsSP1Triangle(14, 8, 13, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 6, 5, 8, 0x0), +- gsSP2Triangles( 5, 7, 3, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 6, 12, 7, 0x0, 13, 10, 9, 0x0), +- gsSP2Triangles(14, 13, 9, 0x0, 15, 10, 13, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group7, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 1, 5, 3, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles( 7, 9, 3, 0x0, 5, 7, 3, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 6, 10, 0x0), +- gsSP1Triangle(12, 8, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040116F8 - 0x04011870 +-const Gfx mario_face_cap_dl[] = { +- gsSPVertex(mario_face_cap_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 4, 2, 5, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 6, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 5, 2, 7, 0x0, 6, 1, 8, 0x0), +- gsSP2Triangles( 8, 1, 0, 0x0, 6, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 6, 0x0, 9, 10, 6, 0x0), +- gsSP2Triangles(11, 10, 9, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles(11, 8, 12, 0x0, 0, 12, 8, 0x0), +- gsSP2Triangles(13, 10, 11, 0x0, 11, 12, 14, 0x0), +- gsSP2Triangles(15, 11, 14, 0x0, 13, 11, 15, 0x0), +- gsSPVertex(mario_face_cap_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 4, 5, 0, 0x0, 0, 6, 1, 0x0), +- gsSP2Triangles( 7, 1, 8, 0x0, 8, 1, 6, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 9, 12, 10, 0x0), +- gsSP2Triangles(12, 9, 13, 0x0, 13, 9, 14, 0x0), +- gsSPVertex(mario_face_cap_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 8, 9, 5, 0x0, 0, 10, 1, 0x0), +- gsSP2Triangles( 1, 10, 3, 0x0, 11, 10, 0, 0x0), +- gsSP2Triangles(12, 3, 10, 0x0, 12, 10, 13, 0x0), +- gsSP2Triangles(13, 10, 11, 0x0, 5, 9, 7, 0x0), +- gsSP1Triangle( 7, 9, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011870 - 0x04011960 +-const Gfx mario_face_back_hair_cap_on_dl[] = { +- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 5, 8, 6, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 7, 3, 5, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 0, 6, 8, 0x0, 3, 7, 10, 0x0), +- gsSP2Triangles( 1, 11, 12, 0x0, 12, 13, 14, 0x0), +- gsSP2Triangles(11, 13, 12, 0x0, 1, 12, 2, 0x0), +- gsSP2Triangles(14, 2, 12, 0x0, 15, 14, 13, 0x0), +- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 2, 1, 11, 0x0, 2, 11, 7, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), +- gsSP1Triangle( 8, 12, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011960 - 0x040119A0 +-const Gfx mario_face_cap_on_dl[] = { +- gsSPDisplayList(mario_face_part_cap_on_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_face_cap_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040119A0 - 0x04011A90 +-const Gfx mario_cap_on_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011A90 - 0x04011B80 +-const Gfx mario_cap_on_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011B80 - 0x04011C70 +-const Gfx mario_cap_on_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011C70 - 0x04011D60 +-const Gfx mario_cap_on_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011D60 - 0x04011E50 +-const Gfx mario_cap_on_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011E50 - 0x04011F40 +-const Gfx mario_cap_on_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011F40 - 0x04012030 +-const Gfx mario_cap_on_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04012030 - 0x04012120 +-const Gfx mario_cap_on_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04012120 - 0x04012160 +-const Gfx mario_metal_cap_on_shared_dl[] = { +- gsSPDisplayList(mario_m_logo_dl), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPDisplayList(mario_face_part_cap_on_dl), +- gsSPDisplayList(mario_face_cap_dl), +- gsSPDisplayList(mario_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// Unreferenced light group +-UNUSED static const Lights1 mario_lights_unused1 = gdSPDefLights1( +- 0x3f, 0x30, 0x1e, +- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +-); +- +-// Unreferenced light group +-UNUSED static const Lights1 mario_lights_unused2 = gdSPDefLights1( +- 0x1c, 0x01, 0x00, +- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +-); +- +-// 0x04012190 +-static const Vtx mario_eyes_cap_off_dl_vertex[] = { +- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 842, 112}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 106, 130}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -404, 342}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, +-}; +- +-// 0x04012250 +-static const Vtx mario_hair_sideburn_cap_off_dl_vertex[] = { +- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 22, -68}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 922, 122}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 916, 184}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 90, -58}, {0xfe, 0x36, 0x8e, 0xff}}}, +-}; +- +-// 0x04012310 +-static const Vtx mario_mustache_cap_off_dl_vertex_group1[] = { +- {{{ 92, 88, -83}, 0, { 992, -10}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 360, 296}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 298, 20}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1272, 592}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 948, -8}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 330, 316}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 848, 630}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 248, 50}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 292, 670}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 1276, 566}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 768, 1210}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 336, 1006}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 41, 109, 0}, 0, { -30, 876}, {0x95, 0x44, 0x00, 0xff}}}, +-}; +- +-// 0x04012410 +-static const Vtx mario_mustache_cap_off_dl_vertex_group2[] = { +- {{{ 41, 109, 0}, 0, { -38, 852}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 310, 1002}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, +-}; +- +-// 0x04012460 +-static const Vtx mario_face_part_cap_off_dl_vertex_group1[] = { +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +-}; +- +-// 0x04012550 +-static const Vtx mario_face_part_cap_off_dl_vertex_group2[] = { +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +-}; +- +-// 0x04012650 +-static const Vtx mario_face_part_cap_off_dl_vertex_group3[] = { +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +-}; +- +-// 0x04012740 +-static const Vtx mario_face_part_cap_off_dl_vertex_group4[] = { +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +-}; +- +-// 0x04012830 +-static const Vtx mario_face_part_cap_off_dl_vertex_group5[] = { +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +-}; +- +-// 0x04012930 +-static const Vtx mario_face_part_cap_off_dl_vertex_group6[] = { +- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +-}; +- +-// 0x04012A30 +-static const Vtx mario_face_part_cap_off_dl_vertex_group7[] = { +- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +-}; +- +-// 0x04012B30 +-static const Vtx mario_face_part_cap_off_dl_vertex_group8[] = { +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +-}; +- +-// 0x04012BC0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group1[] = { +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 200, 70, -97}, 0, { 0, 0}, {0x07, 0x48, 0x99, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 200, 75, 84}, 0, { 0, 0}, {0x10, 0x52, 0x5f, 0xff}}}, +- {{{ 151, 72, 70}, 0, { 0, 0}, {0xe4, 0x5c, 0x51, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 151, 72, -68}, 0, { 0, 0}, {0xd6, 0x5b, 0xb3, 0xff}}}, +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, +-}; +- +-// 0x04012CC0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group2[] = { +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 227, -14, 59}, 0, { 0, 0}, {0x72, 0xec, 0x32, 0xff}}}, +- {{{ 241, -34, 0}, 0, { 0, 0}, {0x7a, 0xe0, 0x00, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, +- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, +- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, +- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, +-}; +- +-// 0x04012DB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group3[] = { +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, +- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, +- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, +- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, +- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +-}; +- +-// 0x04012EB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group4[] = { +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, +- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, +- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, +- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, +- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +-}; +- +-// 0x04012FB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group5[] = { +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +-}; +- +-// 0x040130B0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group6[] = { +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +-}; +- +-// 0x040131B0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group7[] = { +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +-}; +- +-// 0x04013280 +-static const Vtx mario_face_part_cap_off_dl_vertex_group9[] = { +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 0, 0}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +-}; +- +-// 0x040132B0 - 0x04013318 +-const Gfx mario_eyes_cap_off_dl[] = { +- gsSPVertex(mario_eyes_cap_off_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 7, 0x0, 8, 6, 4, 0x0), +- gsSP2Triangles( 5, 4, 7, 0x0, 7, 9, 5, 0x0), +- gsSP2Triangles( 2, 8, 10, 0x0, 1, 6, 8, 0x0), +- gsSP2Triangles( 1, 8, 2, 0x0, 6, 11, 7, 0x0), +- gsSP1Triangle( 1, 11, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013318 - 0x040133A8 +-const Gfx mario_mustache_cap_off_dl[] = { +- gsSPVertex(mario_mustache_cap_off_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 3, 5, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 7, 6, 9, 0x0), +- gsSP2Triangles( 7, 10, 8, 0x0, 8, 11, 6, 0x0), +- gsSP2Triangles(12, 8, 13, 0x0, 13, 8, 10, 0x0), +- gsSP2Triangles(14, 3, 4, 0x0, 13, 10, 15, 0x0), +- gsSPVertex(mario_mustache_cap_off_dl_vertex_group2, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP1Triangle( 2, 3, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040133A8 - 0x040133F8 +-const Gfx mario_hair_sideburn_cap_off_dl[] = { +- gsSPVertex(mario_hair_sideburn_cap_off_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 2, 5, 0x0, 1, 5, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 10, 8, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040133F8 - 0x040136D0 +-const Gfx mario_face_part_cap_off_dl[] = { +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 3, 6, 7, 0x0), +- gsSP2Triangles( 4, 8, 2, 0x0, 8, 4, 9, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 6, 5, 10, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 14, 13, 12, 0x0), +- gsSP1Triangle(13, 14, 0, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), +- gsSP2Triangles(10, 1, 11, 0x0, 1, 12, 11, 0x0), +- gsSP2Triangles(12, 1, 0, 0x0, 13, 11, 14, 0x0), +- gsSP2Triangles(12, 14, 11, 0x0, 11, 13, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), +- gsSP2Triangles( 8, 7, 5, 0x0, 4, 8, 5, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group4, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 3, 9, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(13, 11, 10, 0x0, 11, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 5, 0x0, 8, 7, 6, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 8, 6, 9, 0x0), +- gsSP2Triangles( 9, 11, 10, 0x0, 9, 12, 11, 0x0), +- gsSP2Triangles( 0, 13, 1, 0x0, 13, 14, 1, 0x0), +- gsSP1Triangle( 1, 14, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), +- gsSP2Triangles( 2, 4, 0, 0x0, 1, 0, 5, 0x0), +- gsSP2Triangles( 1, 6, 7, 0x0, 1, 5, 6, 0x0), +- gsSP2Triangles( 7, 8, 1, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles( 9, 3, 10, 0x0, 4, 11, 0, 0x0), +- gsSP2Triangles(11, 4, 12, 0x0, 4, 9, 12, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 0, 11, 15, 0x0), +- gsSP2Triangles( 5, 0, 15, 0x0, 14, 9, 10, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group7, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 8, 5, 4, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 2, 12, 0, 0x0, 13, 4, 6, 0x0), +- gsSP2Triangles( 6, 14, 15, 0x0, 6, 7, 14, 0x0), +- gsSP1Triangle(13, 6, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group8, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 6, 5, 0x0), +- gsSP1Triangle( 8, 5, 4, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group9, 3, 0), +- gsSP1Triangle( 0, 1, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040136D0 - 0x040139C0 +-const Gfx mario_face_hair_cap_off_dl[] = { +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0), +- gsSP2Triangles( 8, 4, 9, 0x0, 7, 10, 4, 0x0), +- gsSP2Triangles( 4, 10, 9, 0x0, 8, 5, 4, 0x0), +- gsSP2Triangles(11, 1, 12, 0x0, 1, 0, 12, 0x0), +- gsSP2Triangles( 1, 13, 2, 0x0, 1, 11, 14, 0x0), +- gsSP2Triangles(13, 1, 14, 0x0, 15, 2, 13, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 3, 7, 6, 0x0), +- gsSP2Triangles( 8, 7, 3, 0x0, 5, 8, 3, 0x0), +- gsSP2Triangles( 9, 10, 4, 0x0, 11, 4, 6, 0x0), +- gsSP2Triangles(11, 9, 4, 0x0, 10, 5, 4, 0x0), +- gsSP2Triangles(10, 12, 5, 0x0, 5, 13, 14, 0x0), +- gsSP2Triangles( 8, 5, 14, 0x0, 9, 2, 10, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 1, 4, 5, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 10, 7, 9, 0x0), +- gsSP2Triangles( 8, 7, 11, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(14, 11, 13, 0x0, 14, 8, 11, 0x0), +- gsSP1Triangle(15, 13, 12, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 8, 3, 5, 0x0, 9, 7, 5, 0x0), +- gsSP2Triangles(10, 6, 4, 0x0, 4, 3, 11, 0x0), +- gsSP2Triangles( 3, 12, 11, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 4, 3, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles( 9, 6, 3, 0x0, 6, 9, 8, 0x0), +- gsSP2Triangles(10, 11, 0, 0x0, 12, 0, 2, 0x0), +- gsSP2Triangles(10, 0, 12, 0x0, 10, 5, 11, 0x0), +- gsSP2Triangles(13, 14, 15, 0x0, 13, 3, 10, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 0, 2, 0x0, 5, 4, 0, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 7, 0x0), +- gsSP2Triangles( 6, 10, 7, 0x0, 8, 7, 10, 0x0), +- gsSP2Triangles( 3, 11, 12, 0x0, 13, 14, 3, 0x0), +- gsSP2Triangles(12, 6, 3, 0x0, 6, 15, 10, 0x0), +- gsSP1Triangle(12, 15, 6, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group7, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), +- gsSP2Triangles( 6, 5, 8, 0x0, 9, 8, 5, 0x0), +- gsSP2Triangles( 5, 7, 9, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(11, 10, 3, 0x0, 12, 2, 10, 0x0), +- gsSP2Triangles( 2, 1, 10, 0x0, 10, 1, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040139C0 - 0x040139E8 +-const Gfx mario_face_cap_off_dl[] = { +- gsSPDisplayList(mario_face_part_cap_off_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040139E8 - 0x04013AB8 +-const Gfx mario_cap_off_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013AB8 - 0x04013B88 +-const Gfx mario_cap_off_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013B88 - 0x04013C58 +-const Gfx mario_cap_off_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013C58 - 0x04013D28 +-const Gfx mario_cap_off_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013D28 - 0x04013DF8 +-const Gfx mario_cap_off_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013DF8 - 0x04013EC8 +-const Gfx mario_cap_off_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013EC8 - 0x04013F98 +-const Gfx mario_cap_off_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013F98 - 0x04014068 +-const Gfx mario_cap_off_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014068 - 0x04014098 +-const Gfx mario_metal_cap_off_shared_dl[] = { +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPDisplayList(mario_face_part_cap_off_dl), +- gsSPDisplayList(mario_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014098 +-static const Vtx mario_medium_poly_butt_dl_vertex_group1[] = { +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +-}; +- +-// 0x04014198 +-static const Vtx mario_medium_poly_butt_dl_vertex_group2[] = { +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +-}; +- +-// 0x04014298 +-static const Vtx mario_medium_poly_butt_dl_vertex_group3[] = { +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +-}; +- +-// 0x04014398 +-static const Vtx mario_medium_poly_butt_dl_vertex_group4[] = { +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +-}; +- +-// 0x04014498 +-static const Vtx mario_medium_poly_butt_dl_vertex_group5[] = { +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +-}; +- +-// 0x040144D8 - 0x04014638 +-const Gfx mario_medium_poly_butt_dl[] = { +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 6, 0x0), +- gsSP1Triangle( 3, 10, 7, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 7, 5, 4, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 9, 10, 8, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 2, 1, 5, 0x0), +- gsSP1Triangle(14, 15, 0, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 3, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(11, 10, 14, 0x0, 0, 12, 15, 0x0), +- gsSP2Triangles(14, 9, 6, 0x0, 2, 13, 12, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 13, 12, 14, 0x0), +- gsSP2Triangles(14, 12, 8, 0x0, 8, 12, 15, 0x0), +- gsSP2Triangles(15, 12, 1, 0x0, 1, 12, 2, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group5, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014638 - 0x04014668 +-const Gfx mario_medium_poly_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014668 - 0x040146E0 +-const Gfx mario_metal_medium_poly_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040146E0 +-static const Vtx mario_medium_poly_left_arm_shared_dl_vertex[] = { +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, +- {{{ 60, -27, -18}, 0, { 0, 0}, {0x3d, 0xc5, 0xa3, 0x00}}}, +- {{{ 60, -18, 26}, 0, { 0, 0}, {0x5c, 0xbe, 0x36, 0x00}}}, +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, +- {{{ 59, 16, -22}, 0, { 0, 0}, {0x5b, 0x4f, 0xda, 0x00}}}, +- {{{ -7, 20, 18}, 0, { 0, 0}, {0x0c, 0x73, 0x32, 0x00}}}, +- {{{ 59, 14, 14}, 0, { 0, 0}, {0x38, 0x4b, 0x55, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x0b, 0x2a, 0x77, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x0a, 0x7e, 0x04, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -7, 20, 18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x040147D0 - 0x04014840 +-const Gfx mario_medium_poly_left_arm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_arm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), +- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), +- gsSP2Triangles( 5, 2, 1, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 14, 11, 0x0, 5, 7, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014840 - 0x04014860 +-const Gfx mario_medium_poly_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014860 +-static const Vtx mario_medium_poly_left_forearm_shared_dl_vertex[] = { +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x05, 0x84, 0x19, 0x00}}}, +- {{{ 53, -26, -17}, 0, { 0, 0}, {0x59, 0xd0, 0xb5, 0x00}}}, +- {{{ 53, -17, 24}, 0, { 0, 0}, {0x3d, 0xab, 0x47, 0x00}}}, +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x04, 0xf3, 0x82, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x04, 0xf4, 0x82, 0x00}}}, +- {{{ 53, 13, -21}, 0, { 0, 0}, {0x3b, 0x64, 0xce, 0x00}}}, +- {{{ -9, 15, 15}, 0, { 0, 0}, {0x07, 0x75, 0x30, 0x00}}}, +- {{{ 53, 13, 12}, 0, { 0, 0}, {0x52, 0x41, 0x47, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x07, 0x2c, 0x76, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x06, 0x7e, 0x02, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x05, 0x84, 0x1a, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, 15, 15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x04014950 - 0x040149C0 +-const Gfx mario_medium_poly_left_forearm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_forearm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), +- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), +- gsSP2Triangles( 1, 7, 2, 0x0, 1, 5, 7, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040149C0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group1[] = { +- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, +- {{{ 12, 1, 26}, 0, { 0, 0}, {0xf1, 0xf7, 0x7d, 0x00}}}, +- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, +- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, +- {{{ 81, 32, 40}, 0, { 0, 0}, {0x48, 0x1f, 0x63, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, +- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +-}; +- +-// 0x04014AC0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group2[] = { +- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, +- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x37, 0xd5, 0x97, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x05, 0x48, 0x98, 0x00}}}, +- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x11, 0x50, 0x60, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x49, 0xd5, 0x5e, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +-}; +- +-// 0x04014BB0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group3[] = { +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, +- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, +- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +-}; +- +-// 0x04014C90 - 0x04014DC0 +-const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 6, 1, 0, 0x0), +- gsSP2Triangles( 2, 1, 7, 0x0, 7, 1, 6, 0x0), +- gsSP2Triangles( 6, 3, 8, 0x0, 3, 2, 8, 0x0), +- gsSP2Triangles( 0, 9, 10, 0x0, 11, 9, 0, 0x0), +- gsSP2Triangles(10, 12, 13, 0x0, 14, 12, 11, 0x0), +- gsSP2Triangles(11, 12, 9, 0x0, 9, 12, 10, 0x0), +- gsSP1Triangle(15, 11, 0, 0x0), +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 7, 2, 11, 0x0, 3, 12, 13, 0x0), +- gsSP2Triangles( 3, 13, 0, 0x0, 11, 2, 14, 0x0), +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 2, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 2, 8, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 5, 8, 2, 0x0, 10, 11, 12, 0x0), +- gsSP1Triangle(10, 13, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014DC0 - 0x04014DE0 +-const Gfx mario_medium_poly_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014DE0 +-static const Vtx mario_medium_poly_right_arm_shared_dl_vertex[] = { +- {{{ 60, -28, 22}, 0, { 0, 0}, {0x3b, 0xc7, 0x60, 0x00}}}, +- {{{ 60, -19, -19}, 0, { 0, 0}, {0x5a, 0xbc, 0xc7, 0x00}}}, +- {{{ 60, 14, 24}, 0, { 0, 0}, {0x5b, 0x4f, 0x26, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, +- {{{ -8, 21, -15}, 0, { 0, 0}, {0x11, 0x73, 0xce, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x0e, 0x7e, 0xfd, 0x00}}}, +- {{{ 60, 13, -9}, 0, { 0, 0}, {0x3c, 0x46, 0xaa, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x0e, 0x23, 0x88, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -8, 21, -15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x04014ED0 - 0x04014F40 +-const Gfx mario_medium_poly_right_arm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_arm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 2, 5, 6, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 7, 1, 8, 0x0, 2, 7, 5, 0x0), +- gsSP2Triangles( 0, 2, 9, 0x0, 0, 9, 10, 0x0), +- gsSP2Triangles( 1, 0, 3, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 14, 11, 0x0, 1, 7, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014F40 - 0x04014F60 +-const Gfx mario_medium_poly_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014F60 +-static const Vtx mario_medium_poly_right_forearm_shared_dl_vertex[] = { +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ 52, 13, -10}, 0, { 0, 0}, {0x51, 0x40, 0xb7, 0x00}}}, +- {{{ 53, 13, 22}, 0, { 0, 0}, {0x3d, 0x63, 0x31, 0x00}}}, +- {{{ 53, -26, 19}, 0, { 0, 0}, {0x5b, 0xd0, 0x49, 0x00}}}, +- {{{ 52, -17, -21}, 0, { 0, 0}, {0x3a, 0xac, 0xb6, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x04, 0x85, 0xe4, 0x00}}}, +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x03, 0x85, 0xe3, 0x00}}}, +- {{{ -5, 17, -12}, 0, { 0, 0}, {0x09, 0x75, 0xd1, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x08, 0x7e, 0x00, 0x00}}}, +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x06, 0x2a, 0x89, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x06, 0xf5, 0x7e, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x06, 0xf4, 0x7e, 0x00}}}, +- {{{ -5, 17, -12}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +-}; +- +-// 0x04015050 - 0x040150C0 +-const Gfx mario_medium_poly_right_forearm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_forearm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 4, 9, 10, 0x0, 3, 11, 9, 0x0), +- gsSP2Triangles( 3, 6, 11, 0x0, 4, 3, 9, 0x0), +- gsSP2Triangles( 5, 4, 12, 0x0, 5, 12, 13, 0x0), +- gsSP2Triangles( 6, 5, 7, 0x0, 2, 14, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040150C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group1[] = { +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, +- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, +- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, +- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +-}; +- +-// 0x040151C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group2[] = { +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, +- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x4f, 0xd0, 0xaa, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x15, 0x51, 0xa1, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x02, 0x4f, 0x62, 0x00}}}, +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x36, 0xd7, 0x6b, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, +-}; +- +-// 0x040152C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group3[] = { +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, +- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, +- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, +- {{{ 13, 0, -26}, 0, { 0, 0}, {0xf5, 0xf2, 0x83, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, +-}; +- +-// 0x040153B0 - 0x040154E0 +-const Gfx mario_medium_poly_right_hand_closed_dl[] = { +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 9, 5, 8, 0x0), +- gsSP2Triangles(10, 4, 6, 0x0, 7, 11, 12, 0x0), +- gsSP2Triangles( 4, 13, 7, 0x0, 7, 12, 8, 0x0), +- gsSP2Triangles(14, 6, 15, 0x0, 6, 5, 15, 0x0), +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 2, 8, 9, 0x0, 9, 10, 4, 0x0), +- gsSP2Triangles( 1, 11, 3, 0x0, 3, 12, 13, 0x0), +- gsSP2Triangles(11, 14, 15, 0x0, 15, 14, 12, 0x0), +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP2Triangles( 5, 6, 0, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 7, 9, 10, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 8, 0x0), +- gsSP2Triangles( 5, 11, 10, 0x0, 10, 9, 13, 0x0), +- gsSP2Triangles(14, 9, 8, 0x0, 8, 11, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040154E0 - 0x04015500 +-const Gfx mario_medium_poly_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015500 - 0x04015530 +-const Gfx mario_metal_medium_poly_right_hand_closed[] = { +- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015530 +-static const Vtx mario_medium_poly_left_thigh_dl_vertex[] = { +- {{{ 18, -12, 58}, 0, { 0, 0}, {0x13, 0xdd, 0x78, 0x00}}}, +- {{{ 22, -52, 8}, 0, { 0, 0}, {0x1c, 0x85, 0x01, 0x00}}}, +- {{{ 99, -35, 8}, 0, { 0, 0}, {0x3e, 0x92, 0x01, 0x00}}}, +- {{{ 14, 51, 38}, 0, { 0, 0}, {0x08, 0x75, 0x30, 0x00}}}, +- {{{ 92, 47, 33}, 0, { 0, 0}, {0x36, 0x4b, 0x56, 0x00}}}, +- {{{ 14, 50, -23}, 0, { 0, 0}, {0x0a, 0x65, 0xb5, 0x00}}}, +- {{{ 92, 47, -16}, 0, { 0, 0}, {0x47, 0x55, 0xc5, 0x00}}}, +- {{{ 19, -13, -42}, 0, { 0, 0}, {0x15, 0xdb, 0x89, 0x00}}}, +- {{{ 96, -3, -31}, 0, { 0, 0}, {0x68, 0xf1, 0xba, 0x00}}}, +- {{{ 96, -3, 48}, 0, { 0, 0}, {0x71, 0xf8, 0x38, 0x00}}}, +- {{{ 19, -13, -42}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 22, -52, 8}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -12, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 14, 51, 38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 14, 50, -23}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +-}; +- +-// 0x04015620 - 0x040156B0 +-const Gfx mario_medium_poly_left_thigh_dl[] = { +- gsSPVertex(mario_medium_poly_left_thigh_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 7, 5, 6, 0x0), +- gsSP2Triangles( 1, 7, 2, 0x0, 7, 8, 2, 0x0), +- gsSP2Triangles( 6, 8, 7, 0x0, 3, 4, 6, 0x0), +- gsSP2Triangles( 0, 9, 4, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), +- gsSP2Triangles( 8, 6, 9, 0x0, 6, 4, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040156B0 - 0x040156E0 +-const Gfx mario_medium_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040156E0 - 0x04015758 +-const Gfx mario_metal_medium_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015758 +-static const Vtx mario_medium_poly_left_leg_shared_dl_vertex[] = { +- {{{ 5, -35, 9}, 0, { 0, 0}, {0xca, 0x8e, 0x00, 0x00}}}, +- {{{ 65, -44, 10}, 0, { 0, 0}, {0xee, 0x83, 0x01, 0x00}}}, +- {{{ 66, -9, 54}, 0, { 0, 0}, {0xf2, 0xdc, 0x78, 0x00}}}, +- {{{ 9, 46, 33}, 0, { 0, 0}, {0xd5, 0x61, 0x45, 0x00}}}, +- {{{ 69, 47, 37}, 0, { 0, 0}, {0xf9, 0x66, 0x4b, 0x00}}}, +- {{{ 70, 47, -18}, 0, { 0, 0}, {0xfb, 0x74, 0xcf, 0x00}}}, +- {{{ 10, 46, -16}, 0, { 0, 0}, {0xaf, 0x40, 0xb7, 0x00}}}, +- {{{ 67, -9, -36}, 0, { 0, 0}, {0xf4, 0xda, 0x88, 0x00}}}, +- {{{ 7, -4, -31}, 0, { 0, 0}, {0x9b, 0xee, 0xb6, 0x00}}}, +- {{{ 7, -4, 49}, 0, { 0, 0}, {0x8f, 0xf5, 0x37, 0x00}}}, +- {{{ 66, -9, 54}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 65, -44, 10}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 67, -9, -36}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 70, 47, -18}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 69, 47, 37}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +-}; +- +-// 0x04015848 - 0x040158D8 +-const Gfx mario_medium_poly_left_leg_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_leg_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 8, 0, 9, 0x0), +- gsSP2Triangles( 9, 6, 8, 0x0, 9, 3, 6, 0x0), +- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040158D8 +-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group1[] = { +- {{{ 108, 10, 36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 75, 21, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -41, 65, 9}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, +- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, +- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, +- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, +- {{{ 75, 21, -41}, 0, { 0, 0}, {0x09, 0xda, 0x88, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +-}; +- +-// 0x040159D8 +-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group2[] = { +- {{{ 78, -30, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +- {{{ 108, 10, 36}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, +- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, +- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, +- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, +- {{{ -41, 65, 9}, 0, { 0, 0}, {0x83, 0x15, 0x00, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, +- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, +- {{{ 25, -34, 11}, 0, { 0, 0}, {0xdd, 0x87, 0xfb, 0x00}}}, +-}; +- +-// 0x04015A98 - 0x04015B60 +-const Gfx mario_medium_poly_left_foot_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 6, 5, 4, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 13, 7, 9, 0x0), +- gsSP2Triangles(10, 12, 14, 0x0, 10, 14, 15, 0x0), +- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group2, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 2, 4, 5, 0x0, 5, 0, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(11, 3, 0, 0x0, 10, 3, 11, 0x0), +- gsSP2Triangles( 0, 5, 11, 0x0, 11, 5, 6, 0x0), +- gsSP2Triangles(11, 6, 10, 0x0, 6, 8, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015B60 - 0x04015B80 +-const Gfx mario_medium_poly_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015B80 +-static const Vtx mario_medium_poly_right_thigh_shared_dl_vertex[] = { +- {{{ 18, -11, -58}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 23, -52, -9}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 20, -14, 41}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 97, -3, 30}, 0, { 0, 0}, {0x69, 0xf1, 0x45, 0x00}}}, +- {{{ 99, -33, -10}, 0, { 0, 0}, {0x40, 0x93, 0xfc, 0x00}}}, +- {{{ 95, -1, -49}, 0, { 0, 0}, {0x71, 0xfb, 0xc7, 0x00}}}, +- {{{ 18, -11, -58}, 0, { 0, 0}, {0x12, 0xe0, 0x87, 0x00}}}, +- {{{ 91, 49, -33}, 0, { 0, 0}, {0x34, 0x4e, 0xab, 0x00}}}, +- {{{ 92, 48, 16}, 0, { 0, 0}, {0x47, 0x55, 0x3d, 0x00}}}, +- {{{ 13, 52, -37}, 0, { 0, 0}, {0x06, 0x76, 0xd3, 0x00}}}, +- {{{ 20, -14, 41}, 0, { 0, 0}, {0x16, 0xd9, 0x76, 0x00}}}, +- {{{ 23, -52, -9}, 0, { 0, 0}, {0x1d, 0x85, 0xfd, 0x00}}}, +- {{{ 14, 50, 24}, 0, { 0, 0}, {0x0a, 0x63, 0x4d, 0x00}}}, +- {{{ 13, 52, -37}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 14, 50, 24}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +-}; +- +-// 0x04015C70 - 0x04015D00 +-const Gfx mario_medium_poly_right_thigh_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_thigh_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 5, 4, 0x0, 7, 5, 6, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 10, 3, 8, 0x0), +- gsSP2Triangles( 4, 3, 10, 0x0, 4, 10, 11, 0x0), +- gsSP2Triangles( 8, 12, 10, 0x0, 8, 9, 12, 0x0), +- gsSP2Triangles( 7, 6, 9, 0x0, 4, 11, 6, 0x0), +- gsSP2Triangles( 5, 8, 3, 0x0, 5, 7, 8, 0x0), +- gsSP2Triangles( 2, 13, 0, 0x0, 2, 14, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015D00 - 0x04015D20 +-const Gfx mario_medium_poly_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015D20 +-static const Vtx mario_medium_poly_right_leg_shared_dl_vertex[] = { +- {{{ 6, -1, -50}, 0, { 0, 0}, {0x8e, 0xf7, 0xca, 0x00}}}, +- {{{ 5, -34, -11}, 0, { 0, 0}, {0xc9, 0x8e, 0xfe, 0x00}}}, +- {{{ 7, -4, 30}, 0, { 0, 0}, {0x9b, 0xed, 0x4a, 0x00}}}, +- {{{ 67, -9, 34}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 64, -43, -12}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 66, -7, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 66, -7, -56}, 0, { 0, 0}, {0xf1, 0xde, 0x87, 0x00}}}, +- {{{ 10, 48, -33}, 0, { 0, 0}, {0xd6, 0x63, 0xbe, 0x00}}}, +- {{{ 10, 46, 16}, 0, { 0, 0}, {0xb1, 0x3f, 0x4b, 0x00}}}, +- {{{ 71, 47, 18}, 0, { 0, 0}, {0xfd, 0x73, 0x33, 0x00}}}, +- {{{ 67, -9, 34}, 0, { 0, 0}, {0xf4, 0xd8, 0x77, 0x00}}}, +- {{{ 64, -43, -12}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 70, 49, -37}, 0, { 0, 0}, {0xfa, 0x67, 0xb8, 0x00}}}, +- {{{ 71, 47, 18}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 70, 49, -37}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +-}; +- +-// 0x04015E10 - 0x04015EA0 +-const Gfx mario_medium_poly_right_leg_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_leg_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 1, 0, 6, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 8, 2, 10, 0x0), +- gsSP2Triangles(10, 2, 1, 0x0, 11, 10, 1, 0x0), +- gsSP2Triangles(10, 9, 8, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles(12, 6, 7, 0x0, 6, 11, 1, 0x0), +- gsSP2Triangles( 5, 13, 3, 0x0, 5, 14, 13, 0x0), +- gsSP2Triangles( 2, 8, 0, 0x0, 8, 7, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015EA0 +-static const Vtx mario_medium_poly_right_foot_dl_vertex_group1[] = { +- {{{ -38, 12, 14}, 0, { 0, 0}, {0xa1, 0xcf, 0x43, 0x00}}}, +- {{{ -43, 65, -12}, 0, { 0, 0}, {0x83, 0x13, 0xff, 0x00}}}, +- {{{ -36, 12, -41}, 0, { 0, 0}, {0xa1, 0xce, 0xbe, 0x00}}}, +- {{{ 25, -34, -11}, 0, { 0, 0}, {0xdf, 0x86, 0x07, 0x00}}}, +- {{{ 41, -18, -55}, 0, { 0, 0}, {0x07, 0xb3, 0x9c, 0x00}}}, +- {{{ 79, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, +- {{{ 42, -10, 32}, 0, { 0, 0}, {0xff, 0xba, 0x69, 0x00}}}, +- {{{ -15, 55, 24}, 0, { 0, 0}, {0xcb, 0x04, 0x73, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0xcf, 0x04, 0x8c, 0x00}}}, +- {{{ 108, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, +- {{{ 76, 23, -62}, 0, { 0, 0}, {0x14, 0xdb, 0x89, 0x00}}}, +- {{{ 107, 12, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, +- {{{ 74, 24, 40}, 0, { 0, 0}, {0x08, 0xdc, 0x79, 0x00}}}, +- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -43, 65, -12}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04015FA0 +-static const Vtx mario_medium_poly_right_foot_dl_vertex_group2[] = { +- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 76, 23, -62}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 74, 24, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 108, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 107, 12, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04016000 - 0x040160C8 +-const Gfx mario_medium_poly_right_foot_dl[] = { +- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 0, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 1, 8, 2, 0x0), +- gsSP2Triangles( 9, 5, 4, 0x0, 4, 10, 9, 0x0), +- gsSP2Triangles( 6, 5, 11, 0x0, 9, 11, 5, 0x0), +- gsSP2Triangles(11, 12, 6, 0x0, 12, 7, 6, 0x0), +- gsSP2Triangles( 8, 4, 2, 0x0, 7, 0, 6, 0x0), +- gsSP2Triangles( 8, 10, 4, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group2, 6, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040160C8 - 0x04016108 +-const Gfx mario_medium_poly_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016108 - 0x04016148 +-const Gfx mario_metal_medium_poly_right_foot[] = { +- gsSPDisplayList(mario_medium_poly_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016148 +-static const Vtx mario_seg4_vertex_04016148[] = { +- {{{ 75, 24, -60}, 0, { -74, -930}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 36, 47, -76}, 0, { -174, 168}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 988, 92}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ -26, 49, -87}, 0, { -538, 1590}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ 1, 87, -53}, 0, { 638, 1164}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 2522, 702}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 272, 1122}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ 44, 78, 37}, 0, { -92, 108}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 44, 78, -35}, 0, { -1398, -128}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ -26, 49, 88}, 0, { 1514, 1490}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 1110, 130}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 968, -926}, {0x62, 0x27, 0x46, 0xff}}}, +-}; +- +-// 0x04016208 +-static const Vtx mario_seg4_vertex_04016208[] = { +- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, +- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, +- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ 56, -4, 79}, 0, { 0, 0}, {0x39, 0x04, 0x71, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +-}; +- +-// 0x04016308 +-static const Vtx mario_seg4_vertex_04016308[] = { +- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 56, -4, -77}, 0, { 0, 0}, {0x38, 0x04, 0x8f, 0xff}}}, +- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +-}; +- +-// 0x04016398 +-static const Vtx mario_seg4_vertex_04016398[] = { +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, +- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, +- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, +-}; +- +-// 0x04016498 +-static const Vtx mario_seg4_vertex_04016498[] = { +- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ -30, 88, -41}, 0, { 0, 0}, {0xc7, 0x6a, 0xda, 0xff}}}, +- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, +- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ -71, 56, 0}, 0, { 0, 0}, {0x89, 0x2b, 0x00, 0xff}}}, +- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ -59, -44, 0}, 0, { 0, 0}, {0x88, 0xd8, 0x00, 0xff}}}, +- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, +- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, +- {{{ -26, -41, 85}, 0, { 0, 0}, {0xcc, 0xc2, 0x61, 0xff}}}, +- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +-}; +- +-// 0x04016598 +-static const Vtx mario_seg4_vertex_04016598[] = { +- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, +- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +-}; +- +-// 0x04016668 - 0x040166B8 +-const Gfx mario_medium_poly_yellow_button_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016148, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), +- gsSP2Triangles( 6, 10, 7, 0x0, 7, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040166B8 - 0x04016800 +-const Gfx mario_medium_poly_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016398, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 2, 5, 0, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 8, 7, 11, 0x0), +- gsSP2Triangles(11, 10, 2, 0x0, 10, 12, 2, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016498, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 2, 1, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 2, 4, 0x0, 6, 2, 5, 0x0), +- gsSP2Triangles( 4, 3, 7, 0x0, 8, 9, 7, 0x0), +- gsSP2Triangles( 5, 4, 7, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(11, 8, 7, 0x0, 3, 11, 7, 0x0), +- gsSP2Triangles( 7, 10, 5, 0x0, 10, 9, 12, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), +- gsSP2Triangles( 5, 10, 14, 0x0, 9, 8, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016598, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 4, 3, 0x0, 6, 3, 7, 0x0), +- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 11, 10, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016800 - 0x040168A0 +-const Gfx mario_medium_poly_tshirt_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016208, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 0, 4, 0x0, 0, 5, 4, 0x0), +- gsSP2Triangles( 6, 4, 5, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 7, 0x0, 7, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 8, 0x0, 11, 12, 7, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016308, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), +- gsSP2Triangles( 5, 3, 2, 0x0, 6, 7, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040168A0 - 0x040168C8 +-const Gfx mario_medium_poly_torso_dl[] = { +- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040168C8 - 0x04016948 +-const Gfx mario_medium_poly_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_medium_poly_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_medium_poly_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016948 - 0x04016968 +-const Gfx mario_metal_medium_poly_torso[] = { +- gsSPDisplayList(mario_medium_poly_yellow_button_dl), +- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), +- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016968 +-static const Vtx mario_low_poly_butt_dl_vertex[] = { +- {{{ -37, -37, 0}, 0, { 0, 0}, {0x82, 0xf5, 0x00, 0x00}}}, +- {{{ -2, 52, 92}, 0, { 0, 0}, {0xb1, 0x3c, 0x4e, 0x00}}}, +- {{{ -35, 55, 0}, 0, { 0, 0}, {0x97, 0x45, 0x00, 0x00}}}, +- {{{ -7, -86, 85}, 0, { 0, 0}, {0xbf, 0xc4, 0x5a, 0x00}}}, +- {{{ 49, 46, 96}, 0, { 0, 0}, {0x4b, 0x1d, 0x61, 0x00}}}, +- {{{ -7, -86, -85}, 0, { 0, 0}, {0xcf, 0xaa, 0xb2, 0x00}}}, +- {{{ -2, 52, -92}, 0, { 0, 0}, {0xb0, 0x3b, 0xb2, 0x00}}}, +- {{{ 48, 44, -98}, 0, { 0, 0}, {0x29, 0x22, 0x8e, 0x00}}}, +- {{{ 46, -71, -89}, 0, { 0, 0}, {0x73, 0xd9, 0xdd, 0x00}}}, +- {{{ 46, -71, 89}, 0, { 0, 0}, {0x44, 0xa1, 0x2f, 0x00}}}, +- {{{ 49, 96, 0}, 0, { 0, 0}, {0x2b, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04016A18 - 0x04016AB8 +-const Gfx mario_low_poly_butt_dl[] = { +- gsSPVertex(mario_low_poly_butt_dl_vertex, 11, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 6, 0x0), +- gsSP2Triangles( 6, 5, 0, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles( 8, 7, 10, 0x0, 4, 9, 8, 0x0), +- gsSP2Triangles( 5, 9, 3, 0x0, 3, 0, 5, 0x0), +- gsSP2Triangles( 5, 8, 9, 0x0, 10, 7, 6, 0x0), +- gsSP2Triangles(10, 4, 8, 0x0, 2, 1, 10, 0x0), +- gsSP2Triangles( 6, 2, 10, 0x0, 1, 4, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016AB8 - 0x04016AE8 +-const Gfx mario_low_poly_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016AE8 - 0x04016B60 +-const Gfx mario_metal_low_poly_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016B60 +-static const Vtx mario_low_poly_left_arm_shared_dl_vertex[] = { +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x09, 0x65, 0xb5, 0x00}}}, +- {{{ 72, 21, 8}, 0, { 0, 0}, {0x44, 0x4d, 0x48, 0x00}}}, +- {{{ 71, -11, -34}, 0, { 0, 0}, {0x3f, 0x57, 0xbe, 0x00}}}, +- {{{ -8, -30, 31}, 0, { 0, 0}, {0x09, 0x26, 0x78, 0x00}}}, +- {{{ 71, -30, 23}, 0, { 0, 0}, {0x5e, 0x15, 0x51, 0x00}}}, +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x07, 0x29, 0x77, 0x00}}}, +- {{{ -8, -7, -41}, 0, { 0, 0}, {0x0b, 0x67, 0xb8, 0x00}}}, +- {{{ -8, -30, 31}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x81, 0x02, 0x00, 0x00}}}, +- {{{ -8, -7, -41}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, +- {{{ 71, -11, -34}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, +- {{{ 71, -30, 23}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, +-}; +- +-// 0x04016C20 - 0x04016C70 +-const Gfx mario_low_poly_left_arm_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_arm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 7, 9, 10, 0x0, 7, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016C70 - 0x04016C90 +-const Gfx mario_low_poly_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016C90 +-static const Vtx mario_low_poly_left_forearm_shared_dl_vertex[] = { +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x05, 0x62, 0xb0, 0x00}}}, +- {{{ 67, 16, 5}, 0, { 0, 0}, {0x43, 0x4b, 0x4c, 0x00}}}, +- {{{ 67, -14, -31}, 0, { 0, 0}, {0x3c, 0x55, 0xba, 0x00}}}, +- {{{ -5, -30, 21}, 0, { 0, 0}, {0x05, 0x20, 0x7a, 0x00}}}, +- {{{ 67, -30, 17}, 0, { 0, 0}, {0x5c, 0x14, 0x54, 0x00}}}, +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x04, 0x22, 0x7a, 0x00}}}, +- {{{ -5, -12, -35}, 0, { 0, 0}, {0x07, 0x63, 0xb2, 0x00}}}, +- {{{ -5, -30, 21}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x81, 0x01, 0x00, 0x00}}}, +- {{{ -5, -12, -35}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, +- {{{ 67, -30, 17}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, +- {{{ 67, -14, -31}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, +-}; +- +-// 0x04016D50 - 0x04016DA0 +-const Gfx mario_low_poly_left_forearm_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_forearm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 10, 9, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016DA0 +-static const Vtx mario_low_poly_left_hand_closed_shared_dl_vertex[] = { +- {{{ -6, 34, -25}, 0, { 0, 0}, {0xa0, 0x13, 0xb0, 0x00}}}, +- {{{ -9, 39, 24}, 0, { 0, 0}, {0xb3, 0x43, 0x4a, 0x00}}}, +- {{{ 91, 80, -34}, 0, { 0, 0}, {0x13, 0x7c, 0xee, 0x00}}}, +- {{{ 90, 35, 33}, 0, { 0, 0}, {0x41, 0x14, 0x6b, 0x00}}}, +- {{{ 20, -34, 21}, 0, { 0, 0}, {0xd4, 0x9a, 0x3c, 0x00}}}, +- {{{ 122, 4, -45}, 0, { 0, 0}, {0x63, 0xbb, 0x25, 0x00}}}, +- {{{ 122, 4, -45}, 0, { 0, 0}, {0xf2, 0x15, 0x84, 0x00}}}, +- {{{ 20, -31, -44}, 0, { 0, 0}, {0xcb, 0xae, 0xb1, 0x00}}}, +-}; +- +-// 0x04016E20 - 0x04016E80 +-const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_hand_closed_shared_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 0, 6, 7, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 4, 7, 5, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 2, 3, 5, 0x0), +- gsSP2Triangles( 0, 7, 4, 0x0, 4, 1, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016E80 - 0x04016EA0 +-const Gfx mario_low_poly_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016EA0 +-static const Vtx mario_low_poly_right_arm_shared_dl_vertex[] = { +- {{{ 65, 30, 23}, 0, { 0, 0}, {0x5e, 0xeb, 0x51, 0x00}}}, +- {{{ 66, -21, 8}, 0, { 0, 0}, {0x45, 0xb3, 0x49, 0x00}}}, +- {{{ 65, 11, -34}, 0, { 0, 0}, {0x40, 0xa9, 0xbf, 0x00}}}, +- {{{ -10, 7, -41}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x81, 0xfe, 0x00, 0x00}}}, +- {{{ -10, 30, 30}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x09, 0x9a, 0xb6, 0x00}}}, +- {{{ -10, 7, -41}, 0, { 0, 0}, {0x0c, 0x99, 0xb8, 0x00}}}, +- {{{ -10, 30, 30}, 0, { 0, 0}, {0x0a, 0xdb, 0x78, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x07, 0xd8, 0x78, 0x00}}}, +- {{{ 65, 30, 23}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, +- {{{ 65, 11, -34}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, +-}; +- +-// 0x04016F60 - 0x04016FB0 +-const Gfx mario_low_poly_right_arm_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_arm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 2, 6, 7, 0x0, 1, 8, 9, 0x0), +- gsSP2Triangles( 1, 0, 8, 0x0, 2, 1, 6, 0x0), +- gsSP2Triangles( 5, 10, 11, 0x0, 5, 11, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016FB0 - 0x04016FD0 +-const Gfx mario_low_poly_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016FD0 +-static const Vtx mario_low_poly_right_forearm_shared_dl_vertex[] = { +- {{{ -13, 12, -35}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -13, 30, 21}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, +- {{{ 54, 14, -31}, 0, { 0, 0}, {0x3d, 0xaa, 0xba, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x05, 0x9e, 0xb1, 0x00}}}, +- {{{ -13, 12, -35}, 0, { 0, 0}, {0x07, 0x9c, 0xb3, 0x00}}}, +- {{{ 55, -16, 5}, 0, { 0, 0}, {0x43, 0xb5, 0x4c, 0x00}}}, +- {{{ -13, 30, 21}, 0, { 0, 0}, {0x05, 0xe0, 0x7a, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x04, 0xde, 0x7a, 0x00}}}, +- {{{ 54, 30, 17}, 0, { 0, 0}, {0x5c, 0xed, 0x54, 0x00}}}, +- {{{ 54, 30, 17}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, +- {{{ 54, 14, -31}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, +-}; +- +-// 0x04017090 - 0x040170E0 +-const Gfx mario_low_poly_right_forearm_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_forearm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 3, 6, 4, 0x0, 2, 10, 11, 0x0), +- gsSP2Triangles( 2, 11, 0, 0x0, 9, 6, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040170E0 +-static const Vtx mario_low_poly_right_hand_closed_dl_vertex[] = { +- {{{ 85, -38, -32}, 0, { 0, 0}, {0x3d, 0xe3, 0x96, 0x00}}}, +- {{{ -15, -35, -22}, 0, { 0, 0}, {0x99, 0xdc, 0xc1, 0x00}}}, +- {{{ 17, 37, -22}, 0, { 0, 0}, {0xfe, 0x69, 0xb9, 0x00}}}, +- {{{ 116, -10, 36}, 0, { 0, 0}, {0x66, 0x47, 0x16, 0x00}}}, +- {{{ 82, -85, 44}, 0, { 0, 0}, {0x13, 0x8a, 0xd8, 0x00}}}, +- {{{ -15, -35, 43}, 0, { 0, 0}, {0x9d, 0xec, 0x4c, 0x00}}}, +- {{{ 82, -85, 44}, 0, { 0, 0}, {0x02, 0x15, 0x7d, 0x00}}}, +- {{{ 14, 30, 26}, 0, { 0, 0}, {0xca, 0x50, 0x51, 0x00}}}, +-}; +- +-// 0x04017160 - 0x040171C0 +-const Gfx mario_low_poly_right_hand_closed_dl[] = { +- gsSPVertex(mario_low_poly_right_hand_closed_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 0, 3, 0x0, 4, 5, 1, 0x0), +- gsSP2Triangles( 6, 3, 7, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 3, 2, 7, 0x0), +- gsSP2Triangles( 1, 5, 7, 0x0, 7, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040171C0 - 0x040171E0 +-const Gfx mario_low_poly_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040171E0 - 0x04017210 +-const Gfx mario_metal_low_poly_right_hand_closed[] = { +- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017210 +-static const Vtx mario_low_poly_left_thigh_dl_vertex[] = { +- {{{ 10, 51, 45}, 0, { 0, 0}, {0x08, 0x73, 0x34, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x0a, 0x11, 0x7d, 0x00}}}, +- {{{ 94, 48, 38}, 0, { 0, 0}, {0x38, 0x40, 0x5d, 0x00}}}, +- {{{ 11, 51, -27}, 0, { 0, 0}, {0x0b, 0x5e, 0xad, 0x00}}}, +- {{{ 95, 48, -19}, 0, { 0, 0}, {0x4a, 0x4f, 0xbf, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x0c, 0x0f, 0x83, 0x00}}}, +- {{{ 101, -28, -28}, 0, { 0, 0}, {0x5b, 0xca, 0xbc, 0x00}}}, +- {{{ 100, -28, 48}, 0, { 0, 0}, {0x63, 0xbd, 0x29, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 10, 51, 45}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 11, 51, -27}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, +-}; +- +-// 0x040172F0 - 0x04017360 +-const Gfx mario_low_poly_left_thigh_dl[] = { +- gsSPVertex(mario_low_poly_left_thigh_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 3, 4, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 0, 2, 4, 0x0, 1, 7, 2, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 6, 4, 7, 0x0, 4, 2, 7, 0x0), +- gsSP2Triangles(12, 7, 13, 0x0, 12, 6, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017360 - 0x04017390 +-const Gfx mario_low_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017390 - 0x04017408 +-const Gfx mario_metal_low_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017408 +-static const Vtx mario_low_poly_left_leg_shared_dl_vertex[] = { +- {{{ 7, 47, 38}, 0, { 0, 0}, {0xcf, 0x59, 0x4b, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0xf8, 0x10, 0x7d, 0x00}}}, +- {{{ 75, 52, 42}, 0, { 0, 0}, {0xf4, 0x5e, 0x53, 0x00}}}, +- {{{ 75, 52, -23}, 0, { 0, 0}, {0xf5, 0x72, 0xca, 0x00}}}, +- {{{ 7, 47, -20}, 0, { 0, 0}, {0xab, 0x34, 0xb2, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0xfa, 0x0f, 0x83, 0x00}}}, +- {{{ 3, -29, -29}, 0, { 0, 0}, {0xbb, 0xa4, 0xcd, 0x00}}}, +- {{{ 2, -29, 48}, 0, { 0, 0}, {0x92, 0xdb, 0x31, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 75, 52, -23}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 75, 52, 42}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, +-}; +- +-// 0x040174E8 - 0x04017558 +-const Gfx mario_low_poly_left_leg_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_leg_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 7, 1, 0x0), +- gsSP2Triangles( 7, 4, 6, 0x0, 7, 0, 4, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 6, 12, 13, 0x0, 13, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017558 +-static const Vtx mario_low_poly_left_foot_shared_dl_vertex[] = { +- {{{ 110, 11, 56}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 109, 10, -33}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 74, -39, 51}, 0, { 0, 0}, {0x13, 0xb0, 0x60, 0x00}}}, +- {{{ 110, 11, 56}, 0, { 0, 0}, {0x5b, 0xbb, 0x36, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x00, 0xf4, 0x7e, 0x00}}}, +- {{{ 73, -40, -25}, 0, { 0, 0}, {0x18, 0x96, 0xc0, 0x00}}}, +- {{{ -56, 20, -30}, 0, { 0, 0}, {0xa4, 0xc5, 0xc2, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0xfe, 0xf0, 0x83, 0x00}}}, +- {{{ -54, 20, 58}, 0, { 0, 0}, {0x99, 0xc2, 0x26, 0x00}}}, +- {{{ 109, 10, -33}, 0, { 0, 0}, {0x44, 0xc2, 0xaa, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, +-}; +- +-// 0x04017638 - 0x040176A8 +-const Gfx mario_low_poly_left_foot_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_foot_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 4, 6, 0x0, 7, 9, 11, 0x0), +- gsSP2Triangles(12, 10, 13, 0x0, 7, 10, 8, 0x0), +- gsSP2Triangles( 7, 11, 5, 0x0, 5, 4, 7, 0x0), +- gsSP2Triangles( 7, 4, 10, 0x0, 12, 8, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040176A8 - 0x040176C8 +-const Gfx mario_low_poly_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040176C8 +-static const Vtx mario_low_poly_right_thigh_shared_dl_vertex[] = { +- {{{ 102, -25, -48}, 0, { 0, 0}, {0x64, 0xbf, 0xd5, 0x00}}}, +- {{{ 103, -27, 25}, 0, { 0, 0}, {0x5c, 0xc9, 0x42, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, +- {{{ 95, 50, -36}, 0, { 0, 0}, {0x37, 0x42, 0xa3, 0x00}}}, +- {{{ 96, 49, 18}, 0, { 0, 0}, {0x4a, 0x4e, 0x41, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 17, 51, 27}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 15, 53, -42}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x09, 0x13, 0x83, 0x00}}}, +- {{{ 15, 53, -42}, 0, { 0, 0}, {0x07, 0x74, 0xce, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x0d, 0x0c, 0x7d, 0x00}}}, +- {{{ 17, 51, 27}, 0, { 0, 0}, {0x0b, 0x5c, 0x55, 0x00}}}, +-}; +- +-// 0x040177A8 - 0x04017818 +-const Gfx mario_low_poly_right_thigh_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_thigh_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 0, 4, 5, 0x0, 0, 5, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), +- gsSP2Triangles( 4, 0, 10, 0x0, 5, 4, 11, 0x0), +- gsSP2Triangles(12, 1, 5, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 5, 11, 13, 0x0, 4, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017818 - 0x04017838 +-const Gfx mario_low_poly_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017838 +-static const Vtx mario_low_poly_right_leg_shared_dl_vertex[] = { +- {{{ 2, -29, 27}, 0, { 0, 0}, {0xba, 0xa3, 0x31, 0x00}}}, +- {{{ 1, -26, -50}, 0, { 0, 0}, {0x91, 0xdd, 0xcf, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 74, 54, -43}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 75, 52, 21}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 6, 47, 19}, 0, { 0, 0}, {0xad, 0x33, 0x50, 0x00}}}, +- {{{ 6, 49, -38}, 0, { 0, 0}, {0xcf, 0x5b, 0xb7, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0xf8, 0x13, 0x83, 0x00}}}, +- {{{ 75, 52, 21}, 0, { 0, 0}, {0xf7, 0x71, 0x38, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0xfb, 0x0c, 0x7e, 0x00}}}, +- {{{ 74, 54, -43}, 0, { 0, 0}, {0xf4, 0x60, 0xaf, 0x00}}}, +-}; +- +-// 0x04017918 - 0x04017988 +-const Gfx mario_low_poly_right_leg_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_leg_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 1, 0x0, 0, 8, 1, 0x0), +- gsSP2Triangles(10, 1, 9, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles( 8, 0, 12, 0x0, 12, 11, 8, 0x0), +- gsSP2Triangles(11, 13, 9, 0x0, 13, 10, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017988 +-static const Vtx mario_low_poly_right_foot_dl_vertex[] = { +- {{{ -55, 19, -59}, 0, { 0, 0}, {0x9a, 0xc0, 0xda, 0x00}}}, +- {{{ -57, 20, 28}, 0, { 0, 0}, {0xa4, 0xc5, 0x3e, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, +- {{{ 73, -38, -50}, 0, { 0, 0}, {0x15, 0xae, 0xa2, 0x00}}}, +- {{{ 71, -37, 25}, 0, { 0, 0}, {0x19, 0x98, 0x42, 0x00}}}, +- {{{ 108, 12, -55}, 0, { 0, 0}, {0x5c, 0xbc, 0xcc, 0x00}}}, +- {{{ 106, 13, 33}, 0, { 0, 0}, {0x44, 0xc5, 0x58, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0xfd, 0xf2, 0x7e, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x02, 0xf2, 0x82, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 108, 12, -55}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 106, 13, 33}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04017A68 - 0x04017AD8 +-const Gfx mario_low_poly_right_foot_dl[] = { +- gsSPVertex(mario_low_poly_right_foot_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), +- gsSP2Triangles( 1, 0, 4, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 6, 8, 4, 0x0, 9, 3, 0, 0x0), +- gsSP2Triangles( 8, 1, 4, 0x0, 9, 5, 3, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017AD8 - 0x04017B18 +-const Gfx mario_low_poly_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017B18 - 0x04017B58 +-const Gfx mario_metal_low_poly_right_foot[] = { +- gsSPDisplayList(mario_low_poly_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017B58 +-static const Vtx mario_seg4_vertex_04017B58[] = { +- {{{ -28, 41, -88}, 0, { -396, 1646}, {0xb7, 0x31, 0xa5, 0xff}}}, +- {{{ 0, 98, 0}, 0, { 1968, 722}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 35, 64, -82}, 0, { -390, 132}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 1698, -280}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ -28, 41, 89}, 0, { 1610, 1512}, {0xd1, 0x37, 0x67, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 1070, -68}, {0x29, 0x4b, 0x5d, 0xff}}}, +- {{{ 0, 98, 0}, 0, { -1064, 968}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 39, 90, 0}, 0, { -1146, -124}, {0x4a, 0x67, 0x00, 0xff}}}, +-}; +- +-// 0x04017BD8 +-static const Vtx mario_seg4_vertex_04017BD8[] = { +- {{{ -28, -71, 81}, 0, { 0, 0}, {0x9a, 0xbd, 0x20, 0xff}}}, +- {{{ -28, 41, -88}, 0, { 0, 0}, {0xb7, 0x31, 0xa5, 0xff}}}, +- {{{ -28, -71, -80}, 0, { 0, 0}, {0xb7, 0xb5, 0xba, 0xff}}}, +- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, +- {{{ -28, 41, 89}, 0, { 0, 0}, {0xd1, 0x37, 0x67, 0xff}}}, +- {{{ -28, 89, 0}, 0, { 0, 0}, {0x97, 0x46, 0x00, 0xff}}}, +- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, +- {{{ 0, 98, 0}, 0, { 0, 0}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, +- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, +- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, +-}; +- +-// 0x04017CC8 +-static const Vtx mario_seg4_vertex_04017CC8[] = { +- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, +- {{{ 87, 42, 0}, 0, { 0, 0}, {0x76, 0x2d, 0x00, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, +- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, +- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, +- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, +- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, +-}; +- +-// 0x04017D68 - 0x04017D98 +-const Gfx mario_low_poly_yellow_button_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017B58, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017D98 - 0x04017E20 +-const Gfx mario_low_poly_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017BD8, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 0, 4, 5, 0x0, 3, 6, 0, 0x0), +- gsSP2Triangles( 4, 0, 6, 0x0, 0, 5, 1, 0x0), +- gsSP2Triangles( 7, 4, 6, 0x0, 5, 4, 8, 0x0), +- gsSP2Triangles( 8, 1, 5, 0x0, 3, 1, 9, 0x0), +- gsSP2Triangles( 3, 2, 1, 0x0, 6, 3, 10, 0x0), +- gsSP2Triangles(10, 11, 6, 0x0, 12, 9, 13, 0x0), +- gsSP1Triangle(13, 7, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017E20 - 0x04017E78 +-const Gfx mario_low_poly_tshirt_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017CC8, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 3, 0x0, 2, 1, 5, 0x0), +- gsSP2Triangles( 6, 5, 1, 0x0, 7, 8, 0, 0x0), +- gsSP2Triangles( 7, 0, 9, 0x0, 8, 6, 1, 0x0), +- gsSP1Triangle( 1, 0, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017E78 - 0x04017EA0 +-const Gfx mario_low_poly_torso_dl[] = { +- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017EA0 - 0x04017F20 +-const Gfx mario_low_poly_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017F20 - 0x04017F40 +-const Gfx mario_metal_low_poly_torso[] = { +- gsSPDisplayList(mario_low_poly_yellow_button_dl), +- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), +- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017F40 +-static const Vtx mario_low_poly_mario_m_logo_dl_vertex[] = { +- {{{ 272, 48, 53}, 0, { 904, 0}, {0x42, 0x51, 0x47, 0xff}}}, +- {{{ 174, 79, -9}, 0, { 452, 816}, {0x51, 0x61, 0xfa, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1238, 962}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 272, 48, -52}, 0, { -2, 0}, {0x62, 0x27, 0xba, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -334, 962}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04017F90 +-static const Vtx mario_low_poly_eyes_cap_on_dl_vertex[] = { +- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 458, 68}, {0xd9, 0x78, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -398, 212}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04017FE0 +-static const Vtx mario_low_poly_mustache_cap_on_dl_vertex[] = { +- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x03, 0x39, 0x8f, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, +-}; +- +-// 0x04018080 +-static const Vtx mario_low_poly_face_cap_dl_vertex[] = { +- {{{ 272, 48, -52}, 0, { 0, 0}, {0x62, 0x27, 0xba, 0xff}}}, +- {{{ 272, 48, 53}, 0, { 0, 0}, {0x42, 0x51, 0x47, 0xff}}}, +- {{{ 149, -87, 138}, 0, { 0, 0}, {0x43, 0xb6, 0x4d, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +- {{{ 149, -87, -137}, 0, { 0, 0}, {0x33, 0xc2, 0x9f, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, +- {{{ 98, -165, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 0, 0}, {0xd9, 0x78, 0x00, 0xff}}}, +- {{{ 175, 154, 0}, 0, { 0, 0}, {0xe1, 0x6c, 0xc6, 0xff}}}, +- {{{ 174, 79, -9}, 0, { 0, 0}, {0x51, 0x61, 0xfa, 0xff}}}, +-}; +- +-// 0x04018140 +-static const Vtx mario_low_poly_face_part_cap_on_dl_vertex[] = { +- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, +- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04018210 +-static const Vtx mario_low_poly_face_back_hair_cap_on_dl_vertex[] = { +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04018270 - 0x04018298 +-const Gfx mario_low_poly_mario_m_logo_dl[] = { +- gsSPVertex(mario_low_poly_mario_m_logo_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP1Triangle( 3, 1, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018298 - 0x040182C0 +-const Gfx mario_low_poly_eyes_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_eyes_cap_on_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP1Triangle( 3, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040182C0 - 0x04018300 +-const Gfx mario_low_poly_mustache_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_mustache_cap_on_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 6, 9, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018300 - 0x04018370 +-const Gfx mario_low_poly_face_part_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_face_part_cap_on_dl_vertex, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 5, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 4, 0, 3, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 6, 8, 0x0, 8, 7, 10, 0x0), +- gsSP2Triangles(10, 7, 11, 0x0, 10, 11, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018370 - 0x040183F0 +-const Gfx mario_low_poly_face_cap_dl[] = { +- gsSPVertex(mario_low_poly_face_cap_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0), +- gsSP2Triangles( 6, 2, 5, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 7, 4, 2, 0x0, 3, 4, 8, 0x0), +- gsSP2Triangles( 4, 7, 8, 0x0, 9, 10, 3, 0x0), +- gsSP2Triangles(10, 11, 3, 0x0, 8, 7, 6, 0x0), +- gsSP2Triangles(10, 5, 11, 0x0, 10, 9, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040183F0 - 0x04018420 +-const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_face_back_hair_cap_on_dl_vertex, 6, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 3, 2, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018420 - 0x04018460 +-const Gfx mario_low_poly_face_cap_on_dl[] = { +- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_cap_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018460 - 0x04018530 +-const Gfx mario_low_poly_cap_on_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018530 - 0x04018600 +-const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018600 - 0x040186D0 +-const Gfx mario_low_poly_cap_on_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040186D0 - 0x040187A0 +-const Gfx mario_low_poly_cap_on_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040187A0 - 0x04018870 +-const Gfx mario_low_poly_cap_on_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018870 - 0x04018940 +-const Gfx mario_low_poly_cap_on_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018940 - 0x04018A10 +-const Gfx mario_low_poly_cap_on_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018A10 - 0x04018AE0 +-const Gfx mario_low_poly_cap_on_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018AE0 - 0x04018B18 +-const Gfx mario_metal_low_poly_cap_on[] = { +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), +- gsSPDisplayList(mario_low_poly_face_cap_dl), +- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018B18 +-static const Vtx mario_low_poly_mario_eyes_cap_off_dl_vertex[] = { +- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 458, 68}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -398, 212}, {0x14, 0x26, 0x89, 0xff}}}, +-}; +- +-// 0x04018B68 +-static const Vtx mario_low_poly_mustache_cap_off_dl_vertex[] = { +- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x14, 0x26, 0x89, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x16, 0x25, 0x77, 0xff}}}, +-}; +- +-// 0x04018C08 +-static const Vtx mario_low_poly_face_part_cap_off_dl_vertex[] = { +- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, +-}; +- +-// 0x04018CD8 +-static const Vtx mario_low_poly_face_hair_cap_off_dl_vertex[] = { +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xd3, 0x9b, 0x3d, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 167, -121, 77}, 0, { 0, 0}, {0x3c, 0xad, 0x4a, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xd8, 0xa3, 0xb5, 0xff}}}, +- {{{ 90, -136, 0}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, +- {{{ 167, -121, -81}, 0, { 0, 0}, {0x3a, 0xad, 0xb5, 0xff}}}, +- {{{ 218, 48, -52}, 0, { 0, 0}, {0x5f, 0x3b, 0xc6, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 192, -28, -80}, 0, { 0, 0}, {0x55, 0xf7, 0xa3, 0xff}}}, +- {{{ 223, -38, -1}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}}, +- {{{ 218, 48, 53}, 0, { 0, 0}, {0x60, 0x39, 0x3a, 0xff}}}, +- {{{ 192, -28, 78}, 0, { 0, 0}, {0x56, 0xf4, 0x5c, 0xff}}}, +-}; +- +-// 0x04018DC8 - 0x04018DF0 +-const Gfx mario_low_poly_mario_eyes_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_mario_eyes_cap_off_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP1Triangle( 3, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018DF0 - 0x04018E30 +-const Gfx mario_low_poly_mustache_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_mustache_cap_off_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 2, 4, 0, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 6, 8, 7, 0x0, 7, 9, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018E30 - 0x04018EA0 +-const Gfx mario_low_poly_face_part_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_face_part_cap_off_dl_vertex, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 0, 0x0, 5, 3, 0, 0x0), +- gsSP2Triangles( 1, 3, 5, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 1, 5, 4, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 7, 9, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 10, 11, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018EA0 - 0x04018F68 +-const Gfx mario_low_poly_face_hair_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_face_hair_cap_off_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 5, 6, 0, 0x0, 0, 6, 4, 0x0), +- gsSP2Triangles( 5, 2, 7, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 8, 6, 5, 0x0, 9, 7, 10, 0x0), +- gsSP2Triangles( 7, 9, 11, 0x0, 7, 11, 8, 0x0), +- gsSP2Triangles( 6, 8, 4, 0x0, 8, 11, 12, 0x0), +- gsSP2Triangles( 4, 8, 12, 0x0, 11, 9, 12, 0x0), +- gsSP2Triangles(13, 14, 12, 0x0, 14, 4, 12, 0x0), +- gsSP2Triangles( 4, 14, 3, 0x0, 13, 10, 3, 0x0), +- gsSP2Triangles(14, 13, 3, 0x0, 9, 10, 13, 0x0), +- gsSP1Triangle( 9, 13, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018F68 - 0x04018F90 +-const Gfx mario_low_poly_face_cap_off_dl[] = { +- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018F90 - 0x04019040 +-const Gfx mario_low_poly_cap_off_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019040 - 0x040190F0 +-const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040190F0 - 0x040191A0 +-const Gfx mario_low_poly_cap_off_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040191A0 - 0x04019250 +-const Gfx mario_low_poly_cap_off_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019250 - 0x04019300 +-const Gfx mario_low_poly_cap_off_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019300 - 0x040193B0 +-const Gfx mario_low_poly_cap_off_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040193B0 - 0x04019460 +-const Gfx mario_low_poly_cap_off_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019460 - 0x04019510 +-const Gfx mario_low_poly_cap_off_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019510 - 0x04019538 +-const Gfx mario_metal_low_poly_cap_off[] = { +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), +- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019538 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group1[] = { +- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +-}; +- +-// 0x04019618 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group2[] = { +- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, +- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, +- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, +- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, +- {{{ 20, -46, 12}, 0, { 0, 0}, {0x26, 0x9e, 0x45, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ -17, 40, -8}, 0, { 0, 0}, {0xbc, 0x68, 0x16, 0x00}}}, +- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, +- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +-}; +- +-// 0x04019718 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group3[] = { +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, +- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, +- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, +- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, +-}; +- +-// 0x04019818 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group4[] = { +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, +- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +-}; +- +-// 0x04019918 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group5[] = { +- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, +- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, +- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, +- {{{ -15, 4, -32}, 0, { 0, 0}, {0x89, 0xdd, 0xe7, 0x00}}}, +- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, +- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, +- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, +- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 1, 15, -37}, 0, { 0, 0}, {0xd2, 0x09, 0x8b, 0x00}}}, +- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, +- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +-}; +- +-// 0x04019A18 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group6[] = { +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, +-}; +- +-// 0x04019A68 - 0x04019CA0 +-const Gfx mario_left_hand_open_shared_dl[] = { +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group1, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 3, 7, 0x0), +- gsSP2Triangles( 1, 0, 5, 0x0, 5, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 8, 11, 9, 0x0, 12, 13, 11, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 0, 10, 7, 0x0, 11, 10, 0, 0x0), +- gsSP2Triangles(12, 13, 11, 0x0, 9, 8, 13, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 10, 14, 7, 0x0), +- gsSP2Triangles(11, 14, 10, 0x0, 13, 4, 11, 0x0), +- gsSP2Triangles( 8, 5, 13, 0x0, 3, 15, 1, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 1, 9, 10, 0x0, 5, 11, 1, 0x0), +- gsSP2Triangles(12, 13, 5, 0x0, 14, 9, 15, 0x0), +- gsSP1Triangle( 4, 7, 12, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 8, 6, 5, 0x0, 5, 9, 10, 0x0), +- gsSP2Triangles(11, 3, 2, 0x0, 2, 12, 11, 0x0), +- gsSP2Triangles( 3, 13, 9, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 7, 4, 9, 0x0, 10, 14, 15, 0x0), +- gsSP1Triangle(15, 14, 11, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 0, 0x0, 2, 8, 9, 0x0), +- gsSP2Triangles( 4, 10, 8, 0x0, 11, 10, 4, 0x0), +- gsSP2Triangles( 7, 12, 11, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles( 6, 3, 1, 0x0, 6, 5, 3, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 14, 10, 11, 0x0), +- gsSP2Triangles( 8, 10, 15, 0x0, 10, 14, 15, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group6, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019CA0 - 0x04019CC0 +-const Gfx mario_left_hand_open[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_hand_open_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019CC0 +-static const Vtx mario_right_hand_open_dl_vertex_group1[] = { +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, +- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +-}; +- +-// 0x04019DA0 +-static const Vtx mario_right_hand_open_dl_vertex_group2[] = { +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, +- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, +- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 25, -46, -9}, 0, { 0, 0}, {0x21, 0x97, 0xc1, 0x00}}}, +- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, +- {{{ -9, 41, 5}, 0, { 0, 0}, {0xbc, 0x66, 0xe5, 0x00}}}, +- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, +- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +-}; +- +-// 0x04019EA0 +-static const Vtx mario_right_hand_open_dl_vertex_group3[] = { +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, +- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, +- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, +- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, +- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, +-}; +- +-// 0x04019FA0 +-static const Vtx mario_right_hand_open_dl_vertex_group4[] = { +- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +-}; +- +-// 0x0401A0A0 +-static const Vtx mario_right_hand_open_dl_vertex_group5[] = { +- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, +- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, +- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, +- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, +- {{{ -7, 7, 32}, 0, { 0, 0}, {0x8a, 0xe2, 0x20, 0x00}}}, +- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, +- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, +- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ 9, 18, 35}, 0, { 0, 0}, {0xd8, 0x13, 0x76, 0x00}}}, +- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, +- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +-}; +- +-// 0x0401A1A0 +-static const Vtx mario_right_hand_open_dl_vertex_group6[] = { +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +-}; +- +-// 0x0401A1F0 - 0x0401A428 +-const Gfx mario_right_hand_open_dl[] = { +- gsSPVertex(mario_right_hand_open_dl_vertex_group1, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 4, 0x0), +- gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 9, 11, 10, 0x0, 11, 12, 13, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 2, 0x0, 2, 10, 11, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 12, 8, 7, 0x0), +- gsSP2Triangles( 8, 5, 9, 0x0, 9, 14, 10, 0x0), +- gsSP2Triangles(10, 14, 11, 0x0, 11, 6, 12, 0x0), +- gsSP2Triangles(12, 5, 8, 0x0, 1, 15, 3, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 1, 0x0, 1, 11, 4, 0x0), +- gsSP2Triangles( 4, 12, 13, 0x0, 14, 10, 15, 0x0), +- gsSP1Triangle(13, 7, 5, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 7, 6, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 0, 4, 11, 0x0, 11, 12, 0, 0x0), +- gsSP2Triangles(10, 13, 4, 0x0, 5, 2, 6, 0x0), +- gsSP2Triangles(10, 3, 5, 0x0, 14, 15, 9, 0x0), +- gsSP1Triangle(11, 15, 14, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 2, 7, 6, 0x0, 8, 9, 0, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 3, 10, 11, 0x0), +- gsSP2Triangles(11, 12, 6, 0x0, 6, 12, 8, 0x0), +- gsSP2Triangles( 1, 4, 7, 0x0, 4, 5, 7, 0x0), +- gsSP2Triangles(13, 12, 11, 0x0, 11, 10, 14, 0x0), +- gsSP2Triangles(15, 10, 9, 0x0, 15, 14, 10, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group6, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A428 - 0x0401A448 +-const Gfx mario_right_hand_open[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_open_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A448 - 0x0401A478 +-const Gfx mario_metal_right_hand_open[] = { +- gsSPDisplayList(mario_right_hand_open_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A478 +-static const Vtx mario_right_hand_cap_m_logo_dl_vertex[] = { +- {{{ 131, 47, -1}, 0, { 1104, 228}, {0xd7, 0x60, 0xb8, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 474, 32}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 78, 11, 40}, 0, { 772, 818}, {0xd0, 0x3e, 0x9d, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 196, 800}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 114, -92, -11}, 0, { -148, 188}, {0xc4, 0xb8, 0xac, 0xff}}}, +-}; +- +-// 0x0401A4C8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group1[] = { +- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd4, 0x3c, 0x66, 0xff}}}, +- {{{ 29, 7, 48}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0xff}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xcd, 0x4c, 0x57, 0xff}}}, +- {{{ 11, 60, -3}, 0, { 0, 0}, {0xab, 0x59, 0xe6, 0xff}}}, +- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, +- {{{ -2, 41, 0}, 0, { 0, 0}, {0xee, 0x71, 0xca, 0xff}}}, +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, +- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, +- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, +-}; +- +-// 0x0401A5B8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group2[] = { +- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, +- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, +- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, +- {{{ 31, -39, 0}, 0, { 0, 0}, {0x42, 0xa3, 0xca, 0xff}}}, +- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, +- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, +- {{{ 55, -43, -3}, 0, { 0, 0}, {0x00, 0x86, 0xe0, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, +- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, +- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, +- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +-}; +- +-// 0x0401A6B8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group3[] = { +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ 85, 30, -32}, 0, { 0, 0}, {0x4f, 0x21, 0xa3, 0xff}}}, +- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, +- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, +- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, +- {{{ 96, 39, 24}, 0, { 0, 0}, {0x6b, 0x39, 0x21, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, +- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, +-}; +- +-// 0x0401A798 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group1[] = { +- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 151, -168, 67}, 0, { 0, 0}, {0xf4, 0x87, 0xdc, 0xff}}}, +- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, +- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +-}; +- +-// 0x0401A888 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group2[] = { +- {{{ 78, 11, 40}, 0, { 0, 0}, {0xd0, 0x3e, 0x9d, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +- {{{ 131, 47, -1}, 0, { 0, 0}, {0xd7, 0x60, 0xb8, 0xff}}}, +- {{{ 45, 49, 53}, 0, { 0, 0}, {0xa8, 0x5a, 0x0a, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +-}; +- +-// 0x0401A988 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group3[] = { +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, +- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, +- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, +- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +-}; +- +-// 0x0401AA88 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group4[] = { +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, +- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +-}; +- +-// 0x0401AB08 +-static const Vtx mario_right_hand_cap_bottom_dl_vertex[] = { +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, +- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +-}; +- +-// 0x0401ABA8 - 0x0401ABD0 +-const Gfx mario_right_hand_cap_m_logo_dl[] = { +- gsSPVertex(mario_right_hand_cap_m_logo_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP1Triangle( 1, 4, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401ABD0 - 0x0401AD40 +-const Gfx mario_right_hand_cap_top_dl[] = { +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 4, 5, 0x0, 6, 2, 1, 0x0), +- gsSP2Triangles( 2, 6, 4, 0x0, 7, 4, 8, 0x0), +- gsSP2Triangles( 8, 4, 6, 0x0, 4, 9, 5, 0x0), +- gsSP2Triangles( 4, 7, 9, 0x0, 5, 9, 10, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 0, 3, 1, 0x0, 5, 2, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 0, 9, 3, 0x0), +- gsSP2Triangles(10, 9, 0, 0x0, 11, 12, 2, 0x0), +- gsSP2Triangles( 2, 5, 11, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles(13, 14, 15, 0x0, 11, 5, 14, 0x0), +- gsSP1Triangle( 7, 14, 5, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 9, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), +- gsSP1Triangle(13, 12, 15, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group4, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 6, 0x0), +- gsSP1Triangle( 7, 0, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AD40 - 0x0401AED0 +-const Gfx mario_right_hand_cap_hand_position_dl[] = { +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 6, 0x0), +- gsSP2Triangles( 6, 3, 2, 0x0, 5, 2, 4, 0x0), +- gsSP2Triangles( 3, 7, 0, 0x0, 3, 6, 8, 0x0), +- gsSP2Triangles( 3, 8, 7, 0x0, 9, 0, 7, 0x0), +- gsSP2Triangles(10, 0, 9, 0x0, 1, 0, 10, 0x0), +- gsSP2Triangles(11, 1, 10, 0x0, 11, 4, 1, 0x0), +- gsSP2Triangles( 7, 12, 13, 0x0, 8, 12, 7, 0x0), +- gsSP2Triangles(13, 14, 7, 0x0, 7, 14, 9, 0x0), +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 6, 2, 4, 0x0), +- gsSP2Triangles( 7, 5, 4, 0x0, 8, 9, 3, 0x0), +- gsSP2Triangles( 3, 9, 10, 0x0, 10, 6, 3, 0x0), +- gsSP2Triangles( 5, 11, 3, 0x0, 3, 11, 8, 0x0), +- gsSP2Triangles(10, 0, 6, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 12, 0x0, 5, 13, 11, 0x0), +- gsSP2Triangles( 1, 14, 12, 0x0, 14, 15, 12, 0x0), +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 8, 5, 9, 0x0), +- gsSP2Triangles( 3, 10, 1, 0x0, 11, 10, 3, 0x0), +- gsSP2Triangles( 1, 10, 2, 0x0, 2, 10, 12, 0x0), +- gsSP2Triangles(12, 10, 13, 0x0, 10, 11, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AED0 - 0x0401AF20 +-const Gfx mario_right_hand_cap_bottom_dl[] = { +- gsSPVertex(mario_right_hand_cap_bottom_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), +- gsSP2Triangles( 6, 5, 2, 0x0, 6, 2, 7, 0x0), +- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AF20 - 0x0401AF60 +-const Gfx mario_right_hand_cap_dl[] = { +- gsSPDisplayList(mario_right_hand_cap_top_dl), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_cap_bottom_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AF60 +-static const Vtx mario_right_hand_cap_wings_half_1_dl_vertex[] = { +- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 212, 96, 143}, 0, { 990, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 322, 87, -67}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 178, -177, 128}, 0, { 990, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 149, -100, 60}, 0, { 0, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 319, -248, -14}, 0, { 990, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 290, -171, -81}, 0, { 0, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, +-}; +- +-// 0x0401B000 +-static const Vtx mario_right_hand_cap_wings_half_2_dl_vertex[] = { +- {{{ 414, 206, 82}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 212, 96, 143}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 258, 156, 218}, 0, { 990, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 368, 146, 7}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 178, -177, 128}, 0, { 0, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 319, -248, -14}, 0, { 0, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 349, -325, 53}, 0, { 990, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 207, -253, 195}, 0, { 990, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, +-}; +- +-// 0x0401B080 - 0x0401B0B0 +-const Gfx mario_right_hand_cap_wings_half_1_dl[] = { +- gsSPVertex(mario_right_hand_cap_wings_half_1_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B0B0 - 0x0401B0E0 +-const Gfx mario_right_hand_cap_wings_half_2_dl[] = { +- gsSPVertex(mario_right_hand_cap_wings_half_2_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B0E0 - 0x0401B138 +-const Gfx mario_right_hand_cap_wings_intial_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B138 - 0x0401B158 +-const Gfx mario_right_hand_cap_wings_end_dl[] = { +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B158 - 0x0401B1D8 +-const Gfx mario_right_hand_cap[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_right_hand_cap_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B1D8 - 0x0401B230 +-const Gfx mario_right_hand_cap_wings[] = { +- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), +- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B230 - 0x0401B278 +-const Gfx mario_metal_right_hand_cap_shared_dl[] = { +- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), +- gsSPDisplayList(mario_right_hand_cap_top_dl), +- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), +- gsSPDisplayList(mario_right_hand_cap_bottom_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B278 - 0x0401B2D0 +-const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = { +- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), +- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B2D0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group1[] = { +- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0x00}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0x00}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0x00}}}, +- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, +- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +-}; +- +-// 0x0401B3D0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group2[] = { +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0x00}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0xc4, 0xb9, 0xab, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, +-}; +- +-// 0x0401B4B0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group3[] = { +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0x00}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, +- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0xff}}}, +- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, +- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0xce, 0x92, 0x24, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +-}; +- +-// 0x0401B5A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group4[] = { +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0x00}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x0a, 0x7a, 0x21, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, +- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, +-}; +- +-// 0x0401B6A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group5[] = { +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0x00}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0x00}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0xe3, 0x8b, 0x25, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x79, 0x01, 0x25, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0x79, 0x06, 0x23, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +-}; +- +-// 0x0401B7A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group6[] = { +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0x5f, 0x47, 0x2a, 0x00}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0x00}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xfd, 0x37, 0x8e, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x15, 0x2a, 0x8b, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x06, 0x7e, 0xff, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x26, 0x1e, 0x8b, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0x4d, 0x5d, 0x24, 0xff}}}, +-}; +- +-// 0x0401B890 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group7[] = { +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0x00}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0x00}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0x19, 0x85, 0xf1, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x10, 0x83, 0x00, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x07, 0xd6, 0x77, 0xff}}}, +-}; +- +-// 0x0401B980 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group8[] = { +- {{{ 139, 53, 25}, 0, { 0, 0}, {0xfc, 0x13, 0x7d, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0xfc, 0x15, 0x7d, 0x00}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0x00}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0xf5, 0xef, 0x7d, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x51, 0xa6, 0xdd, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +-}; +- +-// 0x0401BA70 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group9[] = { +- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0xc3, 0x66, 0x29, 0x00}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0x00}}}, +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5a, 0x52, 0x21, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +-}; +- +-// 0x0401BB70 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group10[] = { +- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0x00}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0xff}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, +- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x1a, 0x72, 0x2f, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +-}; +- +-// 0x0401BC50 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group11[] = { +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0x00}}}, +-}; +- +-// 0x0401BC80 - 0x0401BF30 +-const Gfx mario_right_hand_peace_shared_dl[] = { +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 7, 6, 10, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 11, 8, 9, 0x0), +- gsSP2Triangles( 7, 12, 5, 0x0, 10, 13, 14, 0x0), +- gsSP2Triangles( 6, 15, 10, 0x0, 10, 14, 9, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 8, 0, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 9, 10, 11, 0x0), +- gsSP1Triangle(12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 2, 12, 13, 0x0, 3, 5, 12, 0x0), +- gsSP1Triangle(12, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 4, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group8, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 3, 2, 7, 0x0), +- gsSP2Triangles( 8, 3, 7, 0x0, 9, 10, 11, 0x0), +- gsSP1Triangle(12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group9, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group10, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 9, 0x0, 12, 9, 8, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group11, 3, 0), +- gsSP1Triangle( 0, 1, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401BF30 - 0x0401BF50 +-const Gfx mario_right_hand_peace[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_peace_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401BF50 +-static const Vtx mario_cap_unused_m_logo_dl_vertex[] = { +- {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, +-}; +- +-// 0x0401BFC0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group1[] = { +- {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +-}; +- +-// 0x0401C0C0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group2[] = { +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +-}; +- +-// 0x0401C1B0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group3[] = { +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +-}; +- +-// 0x0401C2A0 +-static const Vtx mario_cap_unused_base_bottom_dl_vertex[] = { +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +-}; +- +-// 0x0401C330 - 0x0401C368 +-const Gfx mario_cap_unused_m_logo_dl[] = { +- gsSPVertex(mario_cap_unused_m_logo_dl_vertex, 7, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), +- gsSP1Triangle( 5, 6, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C368 - 0x0401C4C8 +-const Gfx mario_cap_unused_base_top_dl[] = { +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), +- gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), +- gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), +- gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), +- gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), +- gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), +- gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), +- gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), +- gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), +- gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C4C8 - 0x0401C510 +-const Gfx mario_cap_unused_base_bottom_dl[] = { +- gsSPVertex(mario_cap_unused_base_bottom_dl_vertex, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), +- gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), +- gsSP1Triangle( 2, 8, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C510 - 0x0401C538 +-const Gfx mario_cap_unused_base_dl[] = { +- gsSPDisplayList(mario_cap_unused_base_top_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_base_bottom_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C538 +-static const Vtx mario_wings_half_1_unused_dl_vertex[] = { +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, +-}; +- +-// 0x0401C5F8 +-static const Vtx mario_wings_half_2_unused_dl_vertex[] = { +- {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, +-}; +- +-// 0x0401C678 - 0x0401C6A8 +-const Gfx mario_wings_half_1_unused_dl[] = { +- gsSPVertex(mario_wings_half_1_unused_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C6A8 - 0x0401C6D8 +-const Gfx mario_wings_half_2_unused_dl[] = { +- gsSPVertex(mario_wings_half_2_unused_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C6D8 - 0x0401C730 +-const Gfx mario_cap_wings_unused_intial_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C730 - 0x0401C758 +-const Gfx mario_cap_wings_unused_end_dl[] = { +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C758 - 0x0401C7E8 # Unreferenced, possibly a early duplicate of the cap object used in segment 03 +-const Gfx mario_cap_unused_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_m_logo_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPDisplayList(mario_cap_unused_base_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C7E8 - 0x0401C890 # Unreferenced, possibly an early duplicate of the cap object used in segment 03 +-const Gfx mario_metal_cap_unused_dl[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_m_logo_dl), +- gsSPDisplayList(mario_cap_unused_base_top_dl), +- gsSPDisplayList(mario_cap_unused_base_bottom_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C890 - 0x0401C8E8 # Unreferenced, unused like the duplicated cap, same case +-const Gfx mario_cap_wings_unused[] = { +- gsSPDisplayList(mario_cap_wings_unused_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_unused_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_unused_dl), +- gsSPDisplayList(mario_cap_wings_unused_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C8E8 - 0x0401C940 # Unreferenced, unused like the duplicated cap, same case +-const Gfx mario_metal_cap_wings_unused[] = { +- gsSPDisplayList(mario_cap_wings_unused_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_unused_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_unused_dl), +- gsSPDisplayList(mario_cap_wings_unused_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C940 +-static const Vtx mario_wings_half_1_dl_vertex[] = { +- {{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +-}; +- +-// 0x0401C980 +-static const Vtx mario_wings_half_2_dl_vertex[] = { +- {{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +-}; +- +-// 0x0401C9C0 - 0x0401C9E0 +-const Gfx mario_wings_half_1_dl[] = { +- gsSPVertex(mario_wings_half_1_dl_vertex, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C9E0 - 0x0401CA00 +-const Gfx mario_wings_half_2_dl[] = { +- gsSPVertex(mario_wings_half_2_dl_vertex, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CA00 - 0x0401CAB8 +-const Gfx mario_cap_wings[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CAB8 - 0x0401CB70 +-const Gfx mario_cap_wings_transparent[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CB70 - 0x0401CC28 +-const Gfx mario_metal_cap_wings[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CC28 - 0x0401CD20 +-const Gfx mario_metal_cap_wings_transparent[] = { +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPEndDisplayList(), ++Gfx mario_000_offset_009_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; ++ ++Gfx mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_buckle_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_shoe_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_shoe_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_buckle_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ diff --git a/actors/mario/sonic_mouth.rgba16.png b/actors/mario/sonic_mouth.rgba16.png new file mode 100644 index 00000000..c728d40b Binary files /dev/null and b/actors/mario/sonic_mouth.rgba16.png differ diff --git a/actors/mario/sonic_new2.rgba16.png b/actors/mario/sonic_new2.rgba16.png new file mode 100644 index 00000000..b1a02ad9 Binary files /dev/null and b/actors/mario/sonic_new2.rgba16.png differ diff --git a/actors/mario/sonic_trail_circle_0.ia16.png b/actors/mario/sonic_trail_circle_0.ia16.png new file mode 100644 index 00000000..4a5db979 Binary files /dev/null and b/actors/mario/sonic_trail_circle_0.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_1.ia16.png b/actors/mario/sonic_trail_circle_1.ia16.png new file mode 100644 index 00000000..469150d9 Binary files /dev/null and b/actors/mario/sonic_trail_circle_1.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_2.ia16.png b/actors/mario/sonic_trail_circle_2.ia16.png new file mode 100644 index 00000000..64819826 Binary files /dev/null and b/actors/mario/sonic_trail_circle_2.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_3.ia16.png b/actors/mario/sonic_trail_circle_3.ia16.png new file mode 100644 index 00000000..d69c0499 Binary files /dev/null and b/actors/mario/sonic_trail_circle_3.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_4.ia16.png b/actors/mario/sonic_trail_circle_4.ia16.png new file mode 100644 index 00000000..76601b9d Binary files /dev/null and b/actors/mario/sonic_trail_circle_4.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_5.ia16.png b/actors/mario/sonic_trail_circle_5.ia16.png new file mode 100644 index 00000000..912c67d1 Binary files /dev/null and b/actors/mario/sonic_trail_circle_5.ia16.png differ diff --git a/actors/mario/sonic_trail_circle_6.ia16.png b/actors/mario/sonic_trail_circle_6.ia16.png new file mode 100644 index 00000000..d4584dac Binary files /dev/null and b/actors/mario/sonic_trail_circle_6.ia16.png differ diff --git a/actors/mario/sonicballside.rgba16.png b/actors/mario/sonicballside.rgba16.png new file mode 100644 index 00000000..f09f0179 Binary files /dev/null and b/actors/mario/sonicballside.rgba16.png differ diff --git a/actors/mario/soniceyenew.rgba16.png b/actors/mario/soniceyenew.rgba16.png new file mode 100644 index 00000000..5c7e6102 Binary files /dev/null and b/actors/mario/soniceyenew.rgba16.png differ diff --git a/actors/mario/soniceyenew_closed.rgba16.png b/actors/mario/soniceyenew_closed.rgba16.png new file mode 100644 index 00000000..219a12e9 Binary files /dev/null and b/actors/mario/soniceyenew_closed.rgba16.png differ diff --git a/actors/mario/soniceyenew_dead.rgba16.png b/actors/mario/soniceyenew_dead.rgba16.png new file mode 100644 index 00000000..73b833d3 Binary files /dev/null and b/actors/mario/soniceyenew_dead.rgba16.png differ diff --git a/actors/mario/soniceyenew_half.rgba16.png b/actors/mario/soniceyenew_half.rgba16.png new file mode 100644 index 00000000..57298ef0 Binary files /dev/null and b/actors/mario/soniceyenew_half.rgba16.png differ diff --git a/actors/mario/wing1.rgba16.png b/actors/mario/wing1.rgba16.png new file mode 100644 index 00000000..394cbd58 Binary files /dev/null and b/actors/mario/wing1.rgba16.png differ diff --git a/actors/mario/wing_2.rgba16.png b/actors/mario/wing_2.rgba16.png new file mode 100644 index 00000000..7be615e0 Binary files /dev/null and b/actors/mario/wing_2.rgba16.png differ diff --git a/actors/mario_cap/geo.inc.c b/actors/mario_cap/geo.inc.c index 5e59c311..cde2d75c 100644 --- a/actors/mario_cap/geo.inc.c +++ b/actors/mario_cap/geo.inc.c @@ -1,81 +1,38 @@ -// 0x16000CA4 +#include "src/game/envfx_snow.h" + +const GeoLayout mario_cap_001_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; const GeoLayout marios_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), - GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022F48), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_END(), -}; - -// 0x16000CF0 -const GeoLayout marios_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), - GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022FF8), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_END(), -}; - -// 0x16000D3C -const GeoLayout marios_wing_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), - GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), - GEO_OPEN_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_030230B0), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03023160), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_END(), -}; - -// 0x16000DA8 -const GeoLayout marios_winged_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), - GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), - GEO_OPEN_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_03023108), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03023298), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_END(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 180, 75), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, mario_cap_001_switch_opt1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), }; diff --git a/actors/mario_cap/geo.inc.c.rej b/actors/mario_cap/geo.inc.c.rej new file mode 100644 index 00000000..d6498e49 --- /dev/null +++ b/actors/mario_cap/geo.inc.c.rej @@ -0,0 +1,118 @@ +diff a/actors/mario_cap/geo.inc.c b/actors/mario_cap/geo.inc.c (rejected hunks) +@@ -1,81 +1,38 @@ +-// 0x16000CA4 +-const GeoLayout marios_cap_geo[] = { +- GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), +- GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(10, geo_update_layer_transparency), +- GEO_SWITCH_CASE(2, geo_switch_anim_state), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022F48), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_END(), +-}; +- +-// 0x16000CF0 +-const GeoLayout marios_metal_cap_geo[] = { +- GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), +- GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(10, geo_update_layer_transparency), +- GEO_SWITCH_CASE(2, geo_switch_anim_state), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022FF8), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_END(), +-}; ++#include "src/game/envfx_snow.h" + +-// 0x16000D3C +-const GeoLayout marios_wing_cap_geo[] = { +- GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), +- GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(10, geo_update_layer_transparency), +- GEO_SWITCH_CASE(2, geo_switch_anim_state), +- GEO_OPEN_NODE(), +- GEO_NODE_START(), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_030230B0), +- GEO_CLOSE_NODE(), +- GEO_NODE_START(), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03023160), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_END(), ++const GeoLayout mario_cap_001_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), + }; +- +-// 0x16000DA8 +-const GeoLayout marios_winged_metal_cap_geo[] = { +- GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), +- GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(10, geo_update_layer_transparency), +- GEO_SWITCH_CASE(2, geo_switch_anim_state), +- GEO_OPEN_NODE(), +- GEO_NODE_START(), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), +- GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_03023108), +- GEO_CLOSE_NODE(), +- GEO_NODE_START(), +- GEO_OPEN_NODE(), +- GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03023298), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_CLOSE_NODE(), +- GEO_END(), ++const GeoLayout marios_cap_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(0, 180, 75), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(10, geo_update_layer_transparency), ++ GEO_SWITCH_CASE(2, geo_switch_anim_state), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, mario_cap_001_switch_opt1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), + }; diff --git a/actors/mario_cap/geo_header.h b/actors/mario_cap/geo_header.h new file mode 100644 index 00000000..e2a64397 --- /dev/null +++ b/actors/mario_cap/geo_header.h @@ -0,0 +1,21 @@ +extern const GeoLayout mario_cap_001_switch_opt1[]; +extern const GeoLayout marios_cap_geo[]; +extern Lights1 mario_cap_sonic_texture_v4_002_lights; +extern Lights1 mario_cap_sonic_buckle_v4_002_lights; +extern Lights1 mario_cap_sonic_shoe_v4_002_lights; +extern Lights1 mario_cap_sonic_white_v4_002_lights; +extern u8 mario_cap_sonic_new2_rgba16[]; +extern Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_0[134]; +extern Gfx mario_cap_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_1[32]; +extern Gfx mario_cap_000_displaylist_mesh_layer_1_tri_1[]; +extern Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_2[92]; +extern Gfx mario_cap_000_displaylist_mesh_layer_1_tri_2[]; +extern Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_3[112]; +extern Gfx mario_cap_000_displaylist_mesh_layer_1_tri_3[]; +extern Gfx mat_mario_cap_sonic_texture_v4_002[]; +extern Gfx mat_mario_cap_sonic_buckle_v4_002[]; +extern Gfx mat_mario_cap_sonic_shoe_v4_002[]; +extern Gfx mat_mario_cap_sonic_white_v4_002[]; +extern Gfx mario_cap_000_displaylist_mesh_layer_1[]; +extern Gfx mario_cap_material_revert_render_settings[]; diff --git a/actors/mario_cap/mario_cap_logo.rgba16.png b/actors/mario_cap/mario_cap_logo.rgba16.png new file mode 100644 index 00000000..af5a5e0e Binary files /dev/null and b/actors/mario_cap/mario_cap_logo.rgba16.png differ diff --git a/actors/mario_cap/mario_cap_metal.rgba16.png b/actors/mario_cap/mario_cap_metal.rgba16.png new file mode 100644 index 00000000..d17d38be Binary files /dev/null and b/actors/mario_cap/mario_cap_metal.rgba16.png differ diff --git a/actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png b/actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png new file mode 100644 index 00000000..8e70c227 Binary files /dev/null and b/actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png differ diff --git a/actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png b/actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png new file mode 100644 index 00000000..cfdd06a8 Binary files /dev/null and b/actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png differ diff --git a/actors/mario_cap/mario_cap_wing.rgba16.png b/actors/mario_cap/mario_cap_wing.rgba16.png new file mode 100644 index 00000000..ff7d11bf Binary files /dev/null and b/actors/mario_cap/mario_cap_wing.rgba16.png differ diff --git a/actors/mario_cap/mario_cap_wing_tip.rgba16.png b/actors/mario_cap/mario_cap_wing_tip.rgba16.png new file mode 100644 index 00000000..7da437f9 Binary files /dev/null and b/actors/mario_cap/mario_cap_wing_tip.rgba16.png differ diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index f4d05126..d7583e25 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -1,416 +1,839 @@ -// Mario Cap (Normal Cap, Metal, Winged, etc) +Lights1 mario_cap_sonic_texture_v4_002_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); -// 0x0301CF08 -static const Lights1 mario_cap_seg3_lights_0301CF08 = gdSPDefLights1( - 0x39, 0x03, 0x00, - 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 -); +Lights1 mario_cap_sonic_buckle_v4_002_lights = gdSPDefLights1( + 0x7F, 0x79, 0x0, + 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); -// 0x0301CF20 -static const Lights1 mario_cap_seg3_lights_0301CF20 = gdSPDefLights1( - 0x7f, 0x7f, 0x7f, - 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 -); +Lights1 mario_cap_sonic_shoe_v4_002_lights = gdSPDefLights1( + 0x7F, 0x0, 0x1, + 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); -// 0x0301CF38 -static const Lights1 mario_cap_seg3_lights_0301CF38 = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 -); +Lights1 mario_cap_sonic_white_v4_002_lights = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); -// 0x0301CF50 -ALIGNED8 static const Texture mario_cap_seg3_texture_0301CF50[] = { -#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c" +Gfx mario_cap_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 mario_cap_sonic_new2_rgba16[] = { + #include "actors/mario_cap/sonic_new2.rgba16.inc.c" }; -// 0x0301DF50 -ALIGNED8 static const Texture mario_cap_seg3_texture_0301DF50[] = { -#include "actors/mario_cap/mario_cap_logo.rgba16.inc.c" +Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_0[134] = { + {{{104, 6, -74},0, {1000, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{111, 34, -71},0, {832, -7},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 2, -33},0, {1000, 32},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{122, 24, -33},0, {864, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{123, 16, 35},0, {896, 192},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 2, 35},0, {1000, 192},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{120, 16, 98},0, {896, 258},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{119, 2, 99},0, {1000, 258},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{114, 17, 136},0, {898, 323},{0x78, 0xE, 0x27, 0xFF}}}, + {{{113, 3, 136},0, {1001, 323},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {1001, 395},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{91, 22, 178},0, {907, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{62, 20, 203},0, {1001, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{62, 30, 200},0, {915, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{16, 18, 135},0, {898, 323},{0x87, 0x10, 0x24, 0xFF}}}, + {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{16, 4, 135},0, {1001, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{8, 17, 98},0, {896, 258},{0x83, 0xF, 0x12, 0xFF}}}, + {{{8, 3, 98},0, {1000, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {896, 192},{0x82, 0xE, 0x6, 0xFF}}}, + {{{3, 3, 34},0, {1000, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{3, 3, -34},0, {1000, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{3, 25, -34},0, {864, 32},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{14, 7, -75},0, {1000, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{12, 35, -71},0, {832, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{104, 6, -74},0, {1000, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{111, 34, -71},0, {805, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{37, 14, -91},0, {1000, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{42, 54, -82},0, {663, 734},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{12, 35, -71},0, {805, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{14, 7, -75},0, {1000, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{37, 14, -91},0, {418, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{84, 13, -91},0, {467, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{104, 6, -74},0, {489, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{14, 7, -75},0, {395, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{3, 3, -34},0, {384, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{120, 2, -33},0, {506, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{3, 3, 34},0, {384, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{122, 2, 35},0, {509, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{16, 4, 135},0, {399, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{113, 3, 136},0, {500, 23},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {477, -261},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{33, 11, 178},0, {415, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{62, 20, 203},0, {444, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{-12, 25, -34},0, {864, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-14, 7, -75},0, {1000, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 35, -71},0, {832, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-12, 3, -34},0, {1000, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-12, 18, 34},0, {896, 192},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-11, 3, 34},0, {1000, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-8, 3, 98},0, {1000, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-16, 18, 135},0, {898, 323},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-33, 11, 178},0, {1001, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-34, 22, 178},0, {907, 395},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-61, 20, 203},0, {1001, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-61, 30, 200},0, {915, 431},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-91, 22, 178},0, {907, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-91, 10, 178},0, {1001, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-113, 17, 136},0, {898, 323},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-113, 3, 136},0, {1001, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-118, 2, 99},0, {1000, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-119, 16, 99},0, {896, 258},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-122, 2, 35},0, {1000, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 24, -33},0, {864, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-111, 34, -70},0, {832, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {1000, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-12, 35, -71},0, {805, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-14, 7, -75},0, {1000, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-37, 14, -91},0, {1000, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-42, 54, -82},0, {663, 734},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-75, 53, -82},0, {663, 770},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-84, 13, -90},0, {1000, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-111, 34, -70},0, {805, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {1000, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-84, 13, -90},0, {469, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-14, 7, -75},0, {397, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-12, 3, -34},0, {386, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-120, 2, -33},0, {508, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-11, 3, 34},0, {386, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-122, 2, 35},0, {511, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-8, 3, 98},0, {392, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-118, 2, 99},0, {508, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-16, 4, 135},0, {401, 23},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-113, 3, 136},0, {502, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-91, 10, 178},0, {479, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-33, 11, 178},0, {417, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-61, 20, 203},0, {446, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{108, 143, -24},0, {575, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{58, 102, -4},0, {594, 64},{0x6, 0x7F, 0x5, 0xFF}}}, + {{{108, 143, 13},0, {610, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{79, 146, -48},0, {552, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{40, 148, -46},0, {554, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{14, 148, -18},0, {580, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{16, 146, 20},0, {617, 576},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{45, 145, 44},0, {640, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{83, 143, 42},0, {638, 576},{0x26, 0x62, 0x47, 0xFF}}}, + {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-14, 148, -18},0, {580, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-40, 148, -46},0, {554, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-79, 146, -48},0, {552, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-108, 143, -24},0, {575, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-83, 143, 42},0, {638, 576},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-45, 145, 44},0, {640, 576},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, }; -// 0x0301E750 -ALIGNED8 static const Texture mario_cap_seg3_texture_0301E750[] = { -#include "actors/mario_cap/mario_cap_wing.rgba16.inc.c" +Gfx mario_cap_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 8, 7, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 110, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 126, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSPEndDisplayList(), }; -// 0x0301F750 -ALIGNED8 static const Texture mario_cap_seg3_texture_0301F750[] = { -#include "actors/mario_cap/mario_cap_wing_tip.rgba16.inc.c" +Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_1[32] = { + {{{123, 16, 35},0, {321, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, + {{{130, 20, 37},0, {322, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, + {{{120, 16, 98},0, {338, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, + {{{121, 20, 30},0, {320, 26},{0x48, 0xEE, 0x99, 0xFF}}}, + {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{120, 45, 44},0, {324, 8},{0x72, 0xEB, 0x34, 0xFF}}}, + {{{116, 45, 89},0, {335, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, + {{{117, 54, 96},0, {337, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, + {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, + {{{106, 61, 98},0, {338, -1},{0x46, 0x62, 0x28, 0xFF}}}, + {{{107, 56, 103},0, {339, 2},{0x48, 0x38, 0x59, 0xFF}}}, + {{{127, 20, 96},0, {337, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, + {{{117, 20, 103},0, {339, 26},{0x49, 0xFB, 0x68, 0xFF}}}, + {{{119, 28, 89},0, {335, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, + {{{121, 28, 44},0, {323, 20},{0x63, 0x38, 0x39, 0xFF}}}, + {{{-126, 20, 96},0, {337, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, + {{{-119, 16, 99},0, {338, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, + {{{-117, 20, 103},0, {339, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, + {{{-130, 20, 37},0, {322, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, + {{{-119, 28, 89},0, {335, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, + {{{-116, 54, 96},0, {337, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, + {{{-107, 56, 103},0, {339, 2},{0xB8, 0x37, 0x59, 0xFF}}}, + {{{-106, 61, 98},0, {338, -1},{0xBA, 0x62, 0x28, 0xFF}}}, + {{{-114, 60, 35},0, {321, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, + {{{-124, 54, 37},0, {322, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, + {{{-115, 55, 30},0, {320, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, + {{{-120, 20, 31},0, {320, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, + {{{-122, 16, 35},0, {321, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, + {{{-120, 45, 44},0, {324, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, + {{{-121, 28, 44},0, {323, 20},{0x9D, 0x38, 0x39, 0xFF}}}, + {{{-116, 45, 89},0, {335, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, }; -// 0x03020750 -ALIGNED8 static const Texture mario_cap_seg3_texture_03020750[] = { -#include "actors/mario_cap/mario_cap_metal_wing_unused.rgba16.inc.c" +Gfx mario_cap_000_displaylist_mesh_layer_1_tri_1[] = { + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(5, 6, 1, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 2, 0), + gsSP1Triangle(1, 12, 2, 0), + gsSP1Triangle(12, 1, 14, 0), + gsSP1Triangle(14, 1, 15, 0), + gsSP1Triangle(6, 15, 1, 0), + gsSP1Triangle(12, 14, 8, 0), + gsSP1Triangle(8, 14, 7, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), }; -// 0x03021750 -ALIGNED8 static const Texture mario_cap_seg3_texture_03021750[] = { -#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c" +Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_2[92] = { + {{{123, 16, 35},0, {0, 981},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 24, -33},0, {0, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{111, 34, -71},0, {1, 992},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{75, 53, -82},0, {6, 994},{0x16, 0x21, 0x87, 0xFF}}}, + {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{42, 54, -82},0, {10, 994},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{12, 35, -71},0, {14, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{3, 17, 34},0, {15, 981},{0x82, 0xE, 0x6, 0xFF}}}, + {{{57, 99, -18},0, {10, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{99, 95, -33},0, {4, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, + {{{106, 88, 35},0, {3, 981},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{59, 102, 34},0, {9, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{116, 37, 98},0, {1, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{114, 17, 136},0, {1, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{120, 16, 98},0, {0, 974},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{99, 61, 135},0, {3, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{105, 73, 98},0, {3, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{61, 72, 135},0, {8, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{61, 85, 98},0, {9, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{23, 74, 98},0, {13, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{28, 62, 135},0, {12, 970},{0xA9, 0x50, 0x30, 0xFF}}}, + {{{8, 17, 98},0, {14, 974},{0x83, 0xF, 0x12, 0xFF}}}, + {{{16, 18, 135},0, {13, 970},{0x87, 0x10, 0x24, 0xFF}}}, + {{{35, 22, 178},0, {11, 966},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{62, 51, 183},0, {8, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, + {{{62, 30, 200},0, {7, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{91, 22, 178},0, {3, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-12, 18, 34},0, {20, 981},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-12, 25, -34},0, {20, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-12, 35, -71},0, {21, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-42, 54, -82},0, {24, 994},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {28, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-111, 34, -70},0, {33, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 16, 35},0, {35, 981},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-106, 88, 35},0, {32, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-99, 95, -33},0, {30, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-57, 99, -18},0, {25, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-59, 102, 34},0, {25, 981},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-116, 37, 98},0, {34, 974},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-119, 16, 99},0, {35, 974},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-113, 17, 136},0, {34, 970},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-99, 61, 135},0, {31, 970},{0xAD, 0x52, 0x32, 0xFF}}}, + {{{-91, 22, 178},0, {31, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-61, 51, 183},0, {27, 965},{0x2, 0x5D, 0x57, 0xFF}}}, + {{{-61, 30, 200},0, {27, 963},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-34, 22, 178},0, {24, 966},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-28, 62, 135},0, {22, 970},{0x57, 0x50, 0x2F, 0xFF}}}, + {{{-16, 18, 135},0, {22, 970},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-8, 17, 98},0, {21, 974},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-22, 74, 98},0, {21, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-61, 72, 135},0, {26, 970},{0x1, 0x76, 0x2F, 0xFF}}}, + {{{-61, 85, 98},0, {26, 974},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-105, 73, 98},0, {32, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, }; -// 0x03022750 -static const Vtx mario_cap_seg3_vertex_03022750[] = { - {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, - {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, - {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, +Gfx mario_cap_000_displaylist_mesh_layer_1_tri_2[] = { + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(9, 8, 3, 0), + gsSP1Triangle(9, 3, 10, 0), + gsSP1Triangle(10, 3, 0, 0), + gsSP1Triangle(8, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 13, 8, 0), + gsSP1Triangle(8, 13, 7, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(5, 12, 3, 0), + gsSP1Triangle(5, 8, 12, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 46, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 62, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(6, 10, 12, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(5, 6, 13, 0), + gsSP1Triangle(5, 13, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 77, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPEndDisplayList(), }; -// 0x030227C0 -static const Vtx mario_cap_seg3_vertex_030227C0[] = { - {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, - {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, - {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, - {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, - {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, - {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, - {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, - {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, - {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_3[112] = { + {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, + {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, + {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, }; -// 0x030228C0 -static const Vtx mario_cap_seg3_vertex_030228C0[] = { - {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, - {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, - {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, - {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, - {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, - {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, - {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +Gfx mario_cap_000_displaylist_mesh_layer_1_tri_3[] = { + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(5, 0, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(15, 14, 11, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(11, 13, 15, 0), + gsSP1Triangle(13, 1, 15, 0), + gsSP1Triangle(1, 0, 15, 0), + gsSP1Triangle(0, 4, 15, 0), + gsSP1Triangle(4, 5, 15, 0), + gsSP1Triangle(5, 8, 15, 0), + gsSP1Triangle(8, 9, 15, 0), + gsSP1Triangle(9, 11, 15, 0), + gsSPEndDisplayList(), }; -// 0x030229B0 -static const Vtx mario_cap_seg3_vertex_030229B0[] = { - {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, - {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, - {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, - {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, - {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, - {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, - {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, - {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, - {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, - {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, - {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, - {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, + +Gfx mat_mario_cap_sonic_texture_v4_002[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, mario_cap_sonic_new2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadTile(7, 0, 0, 124, 124), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(mario_cap_sonic_texture_v4_002_lights), + gsSPEndDisplayList(), }; -// 0x03022AA0 -static const Vtx mario_cap_seg3_vertex_03022AA0[] = { - {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, - {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, - {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, - {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, - {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, - {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, - {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, - {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, - {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +Gfx mat_mario_cap_sonic_buckle_v4_002[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_cap_sonic_buckle_v4_002_lights), + gsSPEndDisplayList(), }; -// 0x03022B30 - 0x03022B68 -const Gfx mario_cap_seg3_dl_03022B30[] = { - gsSPVertex(mario_cap_seg3_vertex_03022750, 7, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), - gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), - gsSP1Triangle( 5, 6, 4, 0x0), - gsSPEndDisplayList(), +Gfx mat_mario_cap_sonic_shoe_v4_002[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_cap_sonic_shoe_v4_002_lights), + gsSPEndDisplayList(), }; -// 0x03022B68 - 0x03022CC8 -const Gfx mario_cap_seg3_dl_03022B68[] = { - gsSPVertex(mario_cap_seg3_vertex_030227C0, 16, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), - gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), - gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), - gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), - gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), - gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), - gsSPVertex(mario_cap_seg3_vertex_030228C0, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), - gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), - gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), - gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), - gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), - gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), - gsSPVertex(mario_cap_seg3_vertex_030229B0, 15, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), - gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), - gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), - gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), - gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), - gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), - gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), - gsSPEndDisplayList(), +Gfx mat_mario_cap_sonic_white_v4_002[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(mario_cap_sonic_white_v4_002_lights), + gsSPEndDisplayList(), }; -// 0x03022CC8 - 0x03022D10 -const Gfx mario_cap_seg3_dl_03022CC8[] = { - gsSPVertex(mario_cap_seg3_vertex_03022AA0, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), - gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), - gsSP1Triangle( 2, 8, 0, 0x0), - gsSPEndDisplayList(), +Gfx mario_cap_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_mario_cap_sonic_texture_v4_002), + gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_mario_cap_sonic_buckle_v4_002), + gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_mario_cap_sonic_shoe_v4_002), + gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_mario_cap_sonic_white_v4_002), + gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_3), + gsSPEndDisplayList(), }; -// 0x03022D10 - 0x03022D38 -const Gfx mario_cap_seg3_dl_03022D10[] = { - gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPLight(&mario_cap_seg3_lights_0301CF08.l, 1), - gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022CC8), - gsSPEndDisplayList(), +Gfx mario_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), }; -// 0x03022D38 -static const Vtx mario_cap_seg3_vertex_03022D38[] = { - {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, -}; - -// 0x03022DF8 -static const Vtx mario_cap_seg3_vertex_03022DF8[] = { - {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, -}; - -// 0x03022E78 - 0x03022EA8 -const Gfx mario_cap_seg3_dl_03022E78[] = { - gsSPVertex(mario_cap_seg3_vertex_03022D38, 12, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPEndDisplayList(), -}; - -// 0x03022EA8 - 0x03022ED8 -const Gfx mario_cap_seg3_dl_03022EA8[] = { - gsSPVertex(mario_cap_seg3_vertex_03022DF8, 8, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPEndDisplayList(), -}; - -// 0x03022ED8 - 0x03022F20 -const Gfx mario_cap_seg3_dl_03022ED8[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPEndDisplayList(), -}; - -// 0x03022F20 - 0x03022F48 -const Gfx mario_cap_seg3_dl_03022F20[] = { - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), - gsSPEndDisplayList(), -}; - -// 0x03022F48 - 0x03022FF8 -const Gfx mario_cap_seg3_dl_03022F48[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), - gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_cap_seg3_dl_03022D10), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPSetEnvColor(255, 255, 255, 255), - gsSPEndDisplayList(), -}; - -// 0x03022FF8 - 0x030230B0 -const Gfx mario_cap_seg3_dl_03022FF8[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE), - gsDPLoadTextureBlock(mario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), - gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), - gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPDisplayList(mario_cap_seg3_dl_03022CC8), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPSetEnvColor(255, 255, 255, 255), - gsSPEndDisplayList(), -}; - -// 0x030230B0 - 0x03023108 -const Gfx mario_cap_seg3_dl_030230B0[] = { - gsSPDisplayList(mario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022EA8), - gsSPDisplayList(mario_cap_seg3_dl_03022F20), - gsSPEndDisplayList(), -}; - -// 0x03023108 - 0x03023160 -const Gfx mario_cap_seg3_dl_03023108[] = { - gsSPDisplayList(mario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022EA8), - gsSPDisplayList(mario_cap_seg3_dl_03022F20), - gsSPEndDisplayList(), -}; - -// 0x03023160 - 0x03023298 -const Gfx mario_cap_seg3_dl_03023160[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), - gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPDisplayList(mario_cap_seg3_dl_03022D10), - gsDPPipeSync(), - gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), - gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022EA8), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPSetEnvColor(255, 255, 255, 255), - gsSPEndDisplayList(), -}; - -// 0x03023298 - 0x030233D0 -const Gfx mario_cap_seg3_dl_03023298[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301CF50), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsDPPipeSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), - gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), - gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPDisplayList(mario_cap_seg3_dl_03022CC8), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN | G_LIGHTING | G_CULL_BACK), - gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(mario_cap_seg3_dl_03022EA8), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPSetEnvColor(255, 255, 255, 255), - gsSPEndDisplayList(), -}; diff --git a/actors/mario_cap/model.inc.c.rej b/actors/mario_cap/model.inc.c.rej new file mode 100644 index 00000000..e1bd3f84 --- /dev/null +++ b/actors/mario_cap/model.inc.c.rej @@ -0,0 +1,1222 @@ +diff a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c (rejected hunks) +@@ -1,416 +1,839 @@ +-// Mario Cap (Normal Cap, Metal, Winged, etc) ++Lights1 mario_cap_sonic_texture_v4_002_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x0301CF08 +-static const Lights1 mario_cap_seg3_lights_0301CF08 = gdSPDefLights1( +- 0x39, 0x03, 0x00, +- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_cap_sonic_buckle_v4_002_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x0, ++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); + +-// 0x0301CF20 +-static const Lights1 mario_cap_seg3_lights_0301CF20 = gdSPDefLights1( +- 0x7f, 0x7f, 0x7f, +- 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +-); ++Lights1 mario_cap_sonic_shoe_v4_002_lights = gdSPDefLights1( ++ 0x7F, 0x0, 0x1, ++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); + +-// 0x0301CF38 +-static const Lights1 mario_cap_seg3_lights_0301CF38 = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_cap_sonic_white_v4_002_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); + +-// 0x0301CF50 +-ALIGNED8 static const Texture mario_cap_seg3_texture_0301CF50[] = { +-#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c" ++Gfx mario_cap_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_cap_sonic_new2_rgba16[] = { ++ #include "actors/mario_cap/sonic_new2.rgba16.inc.c" + }; + +-// 0x0301DF50 +-ALIGNED8 static const Texture mario_cap_seg3_texture_0301DF50[] = { +-#include "actors/mario_cap/mario_cap_logo.rgba16.inc.c" ++Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_0[134] = { ++ {{{104, 6, -74},0, {1000, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{111, 34, -71},0, {832, -7},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 2, -33},0, {1000, 32},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{122, 24, -33},0, {864, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{123, 16, 35},0, {896, 192},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 2, 35},0, {1000, 192},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{120, 16, 98},0, {896, 258},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{119, 2, 99},0, {1000, 258},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{114, 17, 136},0, {898, 323},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{113, 3, 136},0, {1001, 323},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {1001, 395},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{91, 22, 178},0, {907, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{62, 20, 203},0, {1001, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{62, 30, 200},0, {915, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{16, 18, 135},0, {898, 323},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{16, 4, 135},0, {1001, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{8, 17, 98},0, {896, 258},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{8, 3, 98},0, {1000, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {896, 192},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{3, 3, 34},0, {1000, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{3, 3, -34},0, {1000, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{3, 25, -34},0, {864, 32},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{14, 7, -75},0, {1000, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{12, 35, -71},0, {832, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{104, 6, -74},0, {1000, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{111, 34, -71},0, {805, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{37, 14, -91},0, {1000, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{42, 54, -82},0, {663, 734},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{12, 35, -71},0, {805, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{14, 7, -75},0, {1000, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{37, 14, -91},0, {418, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{84, 13, -91},0, {467, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{104, 6, -74},0, {489, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{14, 7, -75},0, {395, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{3, 3, -34},0, {384, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{120, 2, -33},0, {506, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{3, 3, 34},0, {384, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{122, 2, 35},0, {509, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{16, 4, 135},0, {399, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{113, 3, 136},0, {500, 23},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {477, -261},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{33, 11, 178},0, {415, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{62, 20, 203},0, {444, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{-12, 25, -34},0, {864, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-14, 7, -75},0, {1000, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 35, -71},0, {832, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-12, 3, -34},0, {1000, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-12, 18, 34},0, {896, 192},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-11, 3, 34},0, {1000, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-8, 3, 98},0, {1000, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-16, 18, 135},0, {898, 323},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-33, 11, 178},0, {1001, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-34, 22, 178},0, {907, 395},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-61, 20, 203},0, {1001, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-61, 30, 200},0, {915, 431},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-91, 22, 178},0, {907, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-91, 10, 178},0, {1001, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-113, 17, 136},0, {898, 323},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-113, 3, 136},0, {1001, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-118, 2, 99},0, {1000, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-119, 16, 99},0, {896, 258},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-122, 2, 35},0, {1000, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 24, -33},0, {864, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-111, 34, -70},0, {832, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {1000, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-12, 35, -71},0, {805, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-14, 7, -75},0, {1000, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-37, 14, -91},0, {1000, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-42, 54, -82},0, {663, 734},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-75, 53, -82},0, {663, 770},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-84, 13, -90},0, {1000, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-111, 34, -70},0, {805, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {1000, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-84, 13, -90},0, {469, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-14, 7, -75},0, {397, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-12, 3, -34},0, {386, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-120, 2, -33},0, {508, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-11, 3, 34},0, {386, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-122, 2, 35},0, {511, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-8, 3, 98},0, {392, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-118, 2, 99},0, {508, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-16, 4, 135},0, {401, 23},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-113, 3, 136},0, {502, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-91, 10, 178},0, {479, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-33, 11, 178},0, {417, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-61, 20, 203},0, {446, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{108, 143, -24},0, {575, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{58, 102, -4},0, {594, 64},{0x6, 0x7F, 0x5, 0xFF}}}, ++ {{{108, 143, 13},0, {610, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{79, 146, -48},0, {552, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{40, 148, -46},0, {554, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{14, 148, -18},0, {580, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{16, 146, 20},0, {617, 576},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{45, 145, 44},0, {640, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{83, 143, 42},0, {638, 576},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-14, 148, -18},0, {580, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-40, 148, -46},0, {554, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-79, 146, -48},0, {552, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-108, 143, -24},0, {575, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-83, 143, 42},0, {638, 576},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-45, 145, 44},0, {640, 576},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, + }; + +-// 0x0301E750 +-ALIGNED8 static const Texture mario_cap_seg3_texture_0301E750[] = { +-#include "actors/mario_cap/mario_cap_wing.rgba16.inc.c" ++Gfx mario_cap_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 8, 7, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 110, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 15, 11, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_0 + 126, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSPEndDisplayList(), + }; + +-// 0x0301F750 +-ALIGNED8 static const Texture mario_cap_seg3_texture_0301F750[] = { +-#include "actors/mario_cap/mario_cap_wing_tip.rgba16.inc.c" ++Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_1[32] = { ++ {{{123, 16, 35},0, {321, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, ++ {{{130, 20, 37},0, {322, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, ++ {{{120, 16, 98},0, {338, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, ++ {{{121, 20, 30},0, {320, 26},{0x48, 0xEE, 0x99, 0xFF}}}, ++ {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{120, 45, 44},0, {324, 8},{0x72, 0xEB, 0x34, 0xFF}}}, ++ {{{116, 45, 89},0, {335, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, ++ {{{117, 54, 96},0, {337, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, ++ {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, ++ {{{106, 61, 98},0, {338, -1},{0x46, 0x62, 0x28, 0xFF}}}, ++ {{{107, 56, 103},0, {339, 2},{0x48, 0x38, 0x59, 0xFF}}}, ++ {{{127, 20, 96},0, {337, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, ++ {{{117, 20, 103},0, {339, 26},{0x49, 0xFB, 0x68, 0xFF}}}, ++ {{{119, 28, 89},0, {335, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, ++ {{{121, 28, 44},0, {323, 20},{0x63, 0x38, 0x39, 0xFF}}}, ++ {{{-126, 20, 96},0, {337, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, ++ {{{-119, 16, 99},0, {338, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, ++ {{{-117, 20, 103},0, {339, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, ++ {{{-130, 20, 37},0, {322, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, ++ {{{-119, 28, 89},0, {335, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, ++ {{{-116, 54, 96},0, {337, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, ++ {{{-107, 56, 103},0, {339, 2},{0xB8, 0x37, 0x59, 0xFF}}}, ++ {{{-106, 61, 98},0, {338, -1},{0xBA, 0x62, 0x28, 0xFF}}}, ++ {{{-114, 60, 35},0, {321, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, ++ {{{-124, 54, 37},0, {322, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, ++ {{{-115, 55, 30},0, {320, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, ++ {{{-120, 20, 31},0, {320, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, ++ {{{-122, 16, 35},0, {321, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, ++ {{{-120, 45, 44},0, {324, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, ++ {{{-121, 28, 44},0, {323, 20},{0x9D, 0x38, 0x39, 0xFF}}}, ++ {{{-116, 45, 89},0, {335, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, + }; + +-// 0x03020750 +-ALIGNED8 static const Texture mario_cap_seg3_texture_03020750[] = { +-#include "actors/mario_cap/mario_cap_metal_wing_unused.rgba16.inc.c" ++Gfx mario_cap_000_displaylist_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 6, 1, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 2, 0), ++ gsSP1Triangle(1, 12, 2, 0), ++ gsSP1Triangle(12, 1, 14, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(6, 15, 1, 0), ++ gsSP1Triangle(12, 14, 8, 0), ++ gsSP1Triangle(8, 14, 7, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), + }; + +-// 0x03021750 +-ALIGNED8 static const Texture mario_cap_seg3_texture_03021750[] = { +-#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c" ++Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_2[92] = { ++ {{{123, 16, 35},0, {0, 981},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 24, -33},0, {0, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{111, 34, -71},0, {1, 992},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{75, 53, -82},0, {6, 994},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{42, 54, -82},0, {10, 994},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{12, 35, -71},0, {14, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{3, 17, 34},0, {15, 981},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{57, 99, -18},0, {10, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{99, 95, -33},0, {4, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, ++ {{{106, 88, 35},0, {3, 981},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{59, 102, 34},0, {9, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{116, 37, 98},0, {1, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{114, 17, 136},0, {1, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{120, 16, 98},0, {0, 974},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{99, 61, 135},0, {3, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{105, 73, 98},0, {3, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{61, 72, 135},0, {8, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{61, 85, 98},0, {9, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{23, 74, 98},0, {13, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{28, 62, 135},0, {12, 970},{0xA9, 0x50, 0x30, 0xFF}}}, ++ {{{8, 17, 98},0, {14, 974},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{16, 18, 135},0, {13, 970},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{35, 22, 178},0, {11, 966},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{62, 51, 183},0, {8, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, ++ {{{62, 30, 200},0, {7, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{91, 22, 178},0, {3, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-12, 18, 34},0, {20, 981},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-12, 25, -34},0, {20, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-12, 35, -71},0, {21, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-42, 54, -82},0, {24, 994},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {28, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-111, 34, -70},0, {33, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 16, 35},0, {35, 981},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-106, 88, 35},0, {32, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-99, 95, -33},0, {30, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-57, 99, -18},0, {25, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-59, 102, 34},0, {25, 981},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-116, 37, 98},0, {34, 974},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-119, 16, 99},0, {35, 974},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-113, 17, 136},0, {34, 970},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-99, 61, 135},0, {31, 970},{0xAD, 0x52, 0x32, 0xFF}}}, ++ {{{-91, 22, 178},0, {31, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-61, 51, 183},0, {27, 965},{0x2, 0x5D, 0x57, 0xFF}}}, ++ {{{-61, 30, 200},0, {27, 963},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-34, 22, 178},0, {24, 966},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-28, 62, 135},0, {22, 970},{0x57, 0x50, 0x2F, 0xFF}}}, ++ {{{-16, 18, 135},0, {22, 970},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-8, 17, 98},0, {21, 974},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-22, 74, 98},0, {21, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-61, 72, 135},0, {26, 970},{0x1, 0x76, 0x2F, 0xFF}}}, ++ {{{-61, 85, 98},0, {26, 974},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-105, 73, 98},0, {32, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, + }; + +-// 0x03022750 +-static const Vtx mario_cap_seg3_vertex_03022750[] = { +- {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, ++Gfx mario_cap_000_displaylist_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(9, 8, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(10, 3, 0, 0), ++ gsSP1Triangle(8, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 13, 8, 0), ++ gsSP1Triangle(8, 13, 7, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(5, 12, 3, 0), ++ gsSP1Triangle(5, 8, 12, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 46, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 62, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(3, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(6, 10, 12, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(5, 6, 13, 0), ++ gsSP1Triangle(5, 13, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_2 + 77, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPEndDisplayList(), + }; + +-// 0x030227C0 +-static const Vtx mario_cap_seg3_vertex_030227C0[] = { +- {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, ++Vtx mario_cap_000_displaylist_mesh_layer_1_vtx_3[112] = { ++ {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, ++ {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, + }; + +-// 0x030228C0 +-static const Vtx mario_cap_seg3_vertex_030228C0[] = { +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, ++Gfx mario_cap_000_displaylist_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(5, 0, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_cap_000_displaylist_mesh_layer_1_vtx_3 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(11, 13, 15, 0), ++ gsSP1Triangle(13, 1, 15, 0), ++ gsSP1Triangle(1, 0, 15, 0), ++ gsSP1Triangle(0, 4, 15, 0), ++ gsSP1Triangle(4, 5, 15, 0), ++ gsSP1Triangle(5, 8, 15, 0), ++ gsSP1Triangle(8, 9, 15, 0), ++ gsSP1Triangle(9, 11, 15, 0), ++ gsSPEndDisplayList(), + }; + +-// 0x030229B0 +-static const Vtx mario_cap_seg3_vertex_030229B0[] = { +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +-}; +- +-// 0x03022AA0 +-static const Vtx mario_cap_seg3_vertex_03022AA0[] = { +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +-}; +- +-// 0x03022B30 - 0x03022B68 +-const Gfx mario_cap_seg3_dl_03022B30[] = { +- gsSPVertex(mario_cap_seg3_vertex_03022750, 7, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), +- gsSP1Triangle( 5, 6, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x03022B68 - 0x03022CC8 +-const Gfx mario_cap_seg3_dl_03022B68[] = { +- gsSPVertex(mario_cap_seg3_vertex_030227C0, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), +- gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), +- gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), +- gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_cap_seg3_vertex_030228C0, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), +- gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), +- gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), +- gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), +- gsSPVertex(mario_cap_seg3_vertex_030229B0, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), +- gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), +- gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), +- gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x03022CC8 - 0x03022D10 +-const Gfx mario_cap_seg3_dl_03022CC8[] = { +- gsSPVertex(mario_cap_seg3_vertex_03022AA0, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), +- gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), +- gsSP1Triangle( 2, 8, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x03022D10 - 0x03022D38 +-const Gfx mario_cap_seg3_dl_03022D10[] = { +- gsSPDisplayList(mario_cap_seg3_dl_03022B68), +- gsSPLight(&mario_cap_seg3_lights_0301CF08.l, 1), +- gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), +- gsSPDisplayList(mario_cap_seg3_dl_03022CC8), +- gsSPEndDisplayList(), +-}; + +-// 0x03022D38 +-static const Vtx mario_cap_seg3_vertex_03022D38[] = { +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, ++Gfx mat_mario_cap_sonic_texture_v4_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, mario_cap_sonic_new2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadTile(7, 0, 0, 124, 124), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_cap_sonic_texture_v4_002_lights), ++ gsSPEndDisplayList(), + }; + +-// 0x03022DF8 +-static const Vtx mario_cap_seg3_vertex_03022DF8[] = { +- {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, ++Gfx mat_mario_cap_sonic_buckle_v4_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_cap_sonic_buckle_v4_002_lights), ++ gsSPEndDisplayList(), + }; + +-// 0x03022E78 - 0x03022EA8 +-const Gfx mario_cap_seg3_dl_03022E78[] = { +- gsSPVertex(mario_cap_seg3_vertex_03022D38, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSPEndDisplayList(), ++Gfx mat_mario_cap_sonic_shoe_v4_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_cap_sonic_shoe_v4_002_lights), ++ gsSPEndDisplayList(), + }; + +-// 0x03022EA8 - 0x03022ED8 +-const Gfx mario_cap_seg3_dl_03022EA8[] = { +- gsSPVertex(mario_cap_seg3_vertex_03022DF8, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSPEndDisplayList(), ++Gfx mat_mario_cap_sonic_white_v4_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_cap_sonic_white_v4_002_lights), ++ gsSPEndDisplayList(), + }; + +-// 0x03022ED8 - 0x03022F20 +-const Gfx mario_cap_seg3_dl_03022ED8[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), +- gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPEndDisplayList(), ++Gfx mario_cap_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_cap_sonic_texture_v4_002), ++ gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_cap_sonic_buckle_v4_002), ++ gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_cap_sonic_shoe_v4_002), ++ gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_cap_sonic_white_v4_002), ++ gsSPDisplayList(mario_cap_000_displaylist_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), + }; + +-// 0x03022F20 - 0x03022F48 +-const Gfx mario_cap_seg3_dl_03022F20[] = { +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), +- gsSPEndDisplayList(), ++Gfx mario_cap_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), + }; + +-// 0x03022F48 - 0x03022FF8 +-const Gfx mario_cap_seg3_dl_03022F48[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), +- gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), +- gsSPDisplayList(mario_cap_seg3_dl_03022B30), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_cap_seg3_dl_03022D10), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsSPEndDisplayList(), +-}; +- +-// 0x03022FF8 - 0x030230B0 +-const Gfx mario_cap_seg3_dl_03022FF8[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE), +- gsDPLoadTextureBlock(mario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), +- gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), +- gsSPDisplayList(mario_cap_seg3_dl_03022B30), +- gsSPDisplayList(mario_cap_seg3_dl_03022B68), +- gsSPDisplayList(mario_cap_seg3_dl_03022CC8), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsSPEndDisplayList(), +-}; +- +-// 0x030230B0 - 0x03023108 +-const Gfx mario_cap_seg3_dl_030230B0[] = { +- gsSPDisplayList(mario_cap_seg3_dl_03022ED8), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022E78), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022EA8), +- gsSPDisplayList(mario_cap_seg3_dl_03022F20), +- gsSPEndDisplayList(), +-}; +- +-// 0x03023108 - 0x03023160 +-const Gfx mario_cap_seg3_dl_03023108[] = { +- gsSPDisplayList(mario_cap_seg3_dl_03022ED8), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022E78), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022EA8), +- gsSPDisplayList(mario_cap_seg3_dl_03022F20), +- gsSPEndDisplayList(), +-}; +- +-// 0x03023160 - 0x03023298 +-const Gfx mario_cap_seg3_dl_03023160[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), +- gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), +- gsSPDisplayList(mario_cap_seg3_dl_03022B30), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_cap_seg3_dl_03022D10), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022E78), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022EA8), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsSPEndDisplayList(), +-}; +- +-// 0x03023298 - 0x030233D0 +-const Gfx mario_cap_seg3_dl_03023298[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301CF50), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), +- gsDPPipeSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), +- gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), +- gsSPDisplayList(mario_cap_seg3_dl_03022B30), +- gsSPDisplayList(mario_cap_seg3_dl_03022B68), +- gsSPDisplayList(mario_cap_seg3_dl_03022CC8), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN | G_LIGHTING | G_CULL_BACK), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022E78), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_cap_seg3_dl_03022EA8), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsSPEndDisplayList(), +-}; diff --git a/actors/mario_cap/sonic_new2.rgba16.png b/actors/mario_cap/sonic_new2.rgba16.png new file mode 100644 index 00000000..b1a02ad9 Binary files /dev/null and b/actors/mario_cap/sonic_new2.rgba16.png differ diff --git a/actors/marios_metal_cap/geo.inc.c b/actors/marios_metal_cap/geo.inc.c new file mode 100644 index 00000000..a1bfd806 --- /dev/null +++ b/actors/marios_metal_cap/geo.inc.c @@ -0,0 +1,26 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout marios_metal_cap_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 180, 75), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_metal_cap_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_metal_cap_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/marios_metal_cap/geo_header.h b/actors/marios_metal_cap/geo_header.h new file mode 100644 index 00000000..f82fd1e1 --- /dev/null +++ b/actors/marios_metal_cap/geo_header.h @@ -0,0 +1,8 @@ +extern const GeoLayout marios_metal_cap_geo[]; +extern u8 marios_metal_cap_metal_rgba16[]; +extern Vtx marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380]; +extern Gfx marios_metal_cap_000_displaylist_mesh_layer_1_tri_0[]; +extern Gfx mat_marios_metal_cap_metal_v3[]; +extern Gfx mat_revert_marios_metal_cap_metal_v3[]; +extern Gfx marios_metal_cap_000_displaylist_mesh_layer_1[]; +extern Gfx marios_metal_cap_material_revert_render_settings[]; diff --git a/actors/marios_metal_cap/metal.rgba16.png b/actors/marios_metal_cap/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/marios_metal_cap/metal.rgba16.png differ diff --git a/actors/marios_metal_cap/model.inc.c b/actors/marios_metal_cap/model.inc.c new file mode 100644 index 00000000..4066416f --- /dev/null +++ b/actors/marios_metal_cap/model.inc.c @@ -0,0 +1,789 @@ +Gfx marios_metal_cap_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_metal_cap_metal_rgba16[] = { + #include "actors/marios_metal_cap/metal.rgba16.inc.c" +}; + +Vtx marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380] = { + {{{104, 6, -74},0, {2016, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{111, 34, -71},0, {1680, -7},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 2, -33},0, {2016, 32},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{122, 24, -33},0, {1745, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{123, 16, 35},0, {1809, 192},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 2, 35},0, {2016, 192},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{120, 16, 98},0, {1808, 258},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{119, 2, 99},0, {2017, 258},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{114, 17, 136},0, {1812, 323},{0x78, 0xE, 0x27, 0xFF}}}, + {{{113, 3, 136},0, {2017, 323},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {2017, 395},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{91, 22, 178},0, {1831, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{62, 20, 203},0, {2017, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{62, 30, 200},0, {1846, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{16, 18, 135},0, {1812, 323},{0x87, 0x10, 0x24, 0xFF}}}, + {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{16, 4, 135},0, {2017, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{8, 17, 98},0, {1808, 258},{0x83, 0xF, 0x12, 0xFF}}}, + {{{8, 3, 98},0, {2017, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {1809, 192},{0x82, 0xE, 0x6, 0xFF}}}, + {{{3, 3, 34},0, {2016, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{3, 3, -34},0, {2016, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{3, 25, -34},0, {1745, 32},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{14, 7, -75},0, {2016, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{12, 35, -71},0, {1680, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{123, 16, 35},0, {15, 981},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{111, 34, -71},0, {19, 992},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{75, 53, -82},0, {29, 994},{0x16, 0x21, 0x87, 0xFF}}}, + {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{60, 96, -67},0, {34, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{42, 54, -82},0, {37, 994},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{12, 35, -71},0, {44, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{3, 25, -34},0, {45, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {45, 981},{0x82, 0xE, 0x6, 0xFF}}}, + {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{99, 95, -33},0, {24, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, + {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{106, 88, 35},0, {22, 981},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{59, 102, 34},0, {34, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, + {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, + {{{116, 37, 98},0, {17, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{120, 16, 98},0, {16, 974},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{61, 85, 98},0, {33, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{23, 74, 98},0, {42, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{28, 62, 135},0, {40, 970},{0xA9, 0x50, 0x30, 0xFF}}}, + {{{8, 17, 98},0, {44, 974},{0x83, 0xF, 0x12, 0xFF}}}, + {{{16, 18, 135},0, {42, 970},{0x87, 0x10, 0x24, 0xFF}}}, + {{{35, 22, 178},0, {37, 966},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{62, 51, 183},0, {31, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, + {{{62, 30, 200},0, {30, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{91, 22, 178},0, {23, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{104, 6, -74},0, {2016, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{75, 53, -82},0, {1342, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{37, 14, -91},0, {2016, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{42, 54, -82},0, {1342, 734},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{12, 35, -71},0, {1625, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{14, 7, -75},0, {2016, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{37, 14, -91},0, {852, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{84, 13, -91},0, {949, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{104, 6, -74},0, {993, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{14, 7, -75},0, {805, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{3, 3, -34},0, {783, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{120, 2, -33},0, {1029, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{3, 3, 34},0, {784, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{119, 2, 99},0, {1028, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{16, 4, 135},0, {813, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{113, 3, 136},0, {1016, 23},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {970, -261},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{33, 11, 178},0, {847, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{62, 20, 203},0, {904, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{-12, 25, -34},0, {1745, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-14, 7, -75},0, {2016, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 35, -71},0, {1680, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-12, 3, -34},0, {2016, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-12, 18, 34},0, {1809, 192},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-11, 3, 34},0, {2016, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 4, 135},0, {2017, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 18, 135},0, {1812, 323},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-33, 11, 178},0, {2017, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-34, 22, 178},0, {1831, 395},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-61, 20, 203},0, {2017, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-61, 30, 200},0, {1846, 431},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-91, 22, 178},0, {1831, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-91, 10, 178},0, {2017, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-113, 17, 136},0, {1812, 323},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-113, 3, 136},0, {2017, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-118, 2, 99},0, {2017, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-119, 16, 99},0, {1808, 258},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-120, 2, -33},0, {2016, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 24, -33},0, {1745, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-111, 34, -70},0, {1680, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {2016, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-12, 18, 34},0, {56, 981},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-12, 25, -34},0, {56, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-12, 35, -71},0, {58, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-42, 54, -82},0, {64, 994},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-111, 34, -70},0, {82, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-122, 24, -33},0, {85, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-121, 40, 35},0, {85, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 16, 35},0, {86, 981},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-106, 88, 35},0, {79, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-59, 102, 34},0, {67, 981},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-12, 35, -71},0, {1625, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-14, 7, -75},0, {2016, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-37, 14, -91},0, {2016, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-42, 54, -82},0, {1342, 734},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-75, 53, -82},0, {1342, 770},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-84, 13, -90},0, {2016, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-111, 34, -70},0, {1625, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {2016, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {856, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-104, 6, -74},0, {998, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-84, 13, -90},0, {953, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-14, 7, -75},0, {809, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 3, -34},0, {788, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-120, 2, -33},0, {1033, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-11, 3, 34},0, {788, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-122, 2, 35},0, {1038, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-8, 3, 98},0, {800, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-118, 2, 99},0, {1033, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-16, 4, 135},0, {818, 23},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-113, 3, 136},0, {1021, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-91, 10, 178},0, {974, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-33, 11, 178},0, {851, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-61, 20, 203},0, {908, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-116, 37, 98},0, {84, 974},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-119, 16, 99},0, {85, 974},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-113, 17, 136},0, {84, 970},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-99, 61, 135},0, {78, 970},{0xAD, 0x52, 0x32, 0xFF}}}, + {{{-91, 22, 178},0, {78, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-61, 51, 183},0, {70, 965},{0x2, 0x5D, 0x57, 0xFF}}}, + {{{-61, 30, 200},0, {71, 963},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-34, 22, 178},0, {64, 966},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-28, 62, 135},0, {61, 970},{0x57, 0x50, 0x2F, 0xFF}}}, + {{{-16, 18, 135},0, {60, 970},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-8, 17, 98},0, {58, 974},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-22, 74, 98},0, {59, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-61, 72, 135},0, {69, 970},{0x1, 0x76, 0x2F, 0xFF}}}, + {{{-61, 85, 98},0, {68, 974},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-105, 73, 98},0, {79, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{123, 16, 35},0, {658, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, + {{{130, 20, 37},0, {659, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, + {{{120, 16, 98},0, {691, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, + {{{121, 20, 30},0, {656, 26},{0x48, 0xEE, 0x99, 0xFF}}}, + {{{116, 55, 30},0, {656, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{125, 54, 37},0, {659, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{114, 60, 35},0, {658, -2},{0x48, 0x65, 0xE5, 0xFF}}}, + {{{117, 54, 96},0, {690, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, + {{{106, 61, 98},0, {691, -1},{0x46, 0x62, 0x28, 0xFF}}}, + {{{107, 56, 103},0, {694, 2},{0x48, 0x38, 0x59, 0xFF}}}, + {{{127, 20, 96},0, {690, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, + {{{117, 20, 103},0, {694, 26},{0x49, 0xFB, 0x68, 0xFF}}}, + {{{119, 28, 89},0, {686, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, + {{{121, 28, 44},0, {663, 20},{0x63, 0x38, 0x39, 0xFF}}}, + {{{120, 45, 44},0, {663, 8},{0x72, 0xEB, 0x34, 0xFF}}}, + {{{116, 45, 89},0, {686, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, + {{{108, 143, -24},0, {1166, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{58, 102, -4},0, {1204, 64},{0x6, 0x7F, 0x5, 0xFF}}}, + {{{108, 143, 13},0, {1237, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{79, 146, -48},0, {1119, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{40, 148, -46},0, {1124, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{14, 148, -18},0, {1176, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{16, 146, 20},0, {1250, 576},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{45, 145, 44},0, {1296, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{83, 143, 42},0, {1291, 576},{0x26, 0x62, 0x47, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-14, 148, -18},0, {1176, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-40, 148, -46},0, {1124, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-79, 146, -48},0, {1119, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-108, 143, -24},0, {1166, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-83, 143, 42},0, {1291, 576},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-45, 145, 44},0, {1296, 576},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, + {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-126, 20, 96},0, {690, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, + {{{-119, 16, 99},0, {691, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, + {{{-117, 20, 103},0, {694, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, + {{{-130, 20, 37},0, {659, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, + {{{-119, 28, 89},0, {686, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, + {{{-116, 54, 96},0, {690, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, + {{{-107, 56, 103},0, {694, 2},{0xB8, 0x37, 0x59, 0xFF}}}, + {{{-106, 61, 98},0, {691, -1},{0xBA, 0x62, 0x28, 0xFF}}}, + {{{-114, 60, 35},0, {658, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, + {{{-124, 54, 37},0, {659, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, + {{{-115, 55, 30},0, {656, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, + {{{-120, 20, 31},0, {656, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, + {{{-122, 16, 35},0, {658, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, + {{{-120, 45, 44},0, {663, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, + {{{-121, 28, 44},0, {663, 20},{0x9D, 0x38, 0x39, 0xFF}}}, + {{{-116, 45, 89},0, {686, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, +}; + +Gfx marios_metal_cap_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(15, 12, 13, 0), + gsSP1Triangle(15, 8, 12, 0), + gsSP1Triangle(15, 6, 8, 0), + gsSP1Triangle(5, 6, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(0, 3, 6, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(6, 8, 0, 0), + gsSP1Triangle(0, 8, 1, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(1, 8, 11, 0), + gsSP1Triangle(1, 4, 8, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 9, 8, 0), + gsSP1Triangle(8, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 9, 5, 0), + gsSP1Triangle(10, 5, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(11, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 192, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 207, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 222, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 237, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(10, 11, 2, 0), + gsSP1Triangle(1, 10, 2, 0), + gsSP1Triangle(10, 1, 12, 0), + gsSP1Triangle(12, 1, 13, 0), + gsSP1Triangle(14, 13, 1, 0), + gsSP1Triangle(5, 14, 1, 0), + gsSP1Triangle(14, 5, 15, 0), + gsSP1Triangle(7, 15, 5, 0), + gsSP1Triangle(7, 12, 15, 0), + gsSP1Triangle(10, 12, 7, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 253, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 269, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 285, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 301, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 317, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 333, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 349, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(7, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 0, 11, 0), + gsSP1Triangle(0, 4, 11, 0), + gsSP1Triangle(4, 5, 11, 0), + gsSP1Triangle(5, 7, 11, 0), + gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 364, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_marios_metal_cap_metal_v3[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_metal_cap_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_metal_cap_metal_v3[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx marios_metal_cap_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_marios_metal_cap_metal_v3), + gsSPDisplayList(marios_metal_cap_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_marios_metal_cap_metal_v3), + gsSPEndDisplayList(), +}; + +Gfx marios_metal_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/marios_wing_cap/geo.inc.c b/actors/marios_wing_cap/geo.inc.c new file mode 100644 index 00000000..0237d9b7 --- /dev/null +++ b/actors/marios_wing_cap/geo.inc.c @@ -0,0 +1,28 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout marios_wing_cap_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 180, 75), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_wing_cap_000_displaylist_mesh_layer_1), + GEO_DISPLAY_LIST(LAYER_ALPHA, marios_wing_cap_001_displaylist_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_wing_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, marios_wing_cap_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/marios_wing_cap/geo_header.h b/actors/marios_wing_cap/geo_header.h new file mode 100644 index 00000000..5c6bcb46 --- /dev/null +++ b/actors/marios_wing_cap/geo_header.h @@ -0,0 +1,31 @@ +extern const GeoLayout mario_wing_cap_geo[]; +extern Lights1 marios_wing_cap_sonic_texture_v4_lights; +extern Lights1 marios_wing_cap_sonic_buckle_v4_lights; +extern Lights1 marios_wing_cap_sonic_shoe_v4_lights; +extern Lights1 marios_wing_cap_sonic_white_v4_lights; +extern u8 marios_wing_cap_sonic_new2_rgba16[]; +extern u8 marios_wing_cap_wing_2_rgba16[]; +extern u8 marios_wing_cap_wing1_rgba16[]; +extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0[134]; +extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1[32]; +extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_1[]; +extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2[92]; +extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_2[]; +extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3[112]; +extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_3[]; +extern Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0[8]; +extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_0[]; +extern Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1[8]; +extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_1[]; +extern Gfx mat_marios_wing_cap_sonic_texture_v4[]; +extern Gfx mat_marios_wing_cap_sonic_buckle_v4[]; +extern Gfx mat_marios_wing_cap_sonic_shoe_v4[]; +extern Gfx mat_marios_wing_cap_sonic_white_v4[]; +extern Gfx mat_marios_wing_cap_wing_2_001_v4[]; +extern Gfx mat_revert_marios_wing_cap_wing_2_001_v4[]; +extern Gfx mat_marios_wing_cap_wing_1_001_v4[]; +extern Gfx mat_revert_marios_wing_cap_wing_1_001_v4[]; +extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1[]; +extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4[]; +extern Gfx marios_wing_cap_material_revert_render_settings[]; diff --git a/actors/marios_wing_cap/model.inc.c b/actors/marios_wing_cap/model.inc.c new file mode 100644 index 00000000..3a666291 --- /dev/null +++ b/actors/marios_wing_cap/model.inc.c @@ -0,0 +1,943 @@ +Lights1 marios_wing_cap_sonic_texture_v4_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 marios_wing_cap_sonic_buckle_v4_lights = gdSPDefLights1( + 0x7F, 0x79, 0x0, + 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); + +Lights1 marios_wing_cap_sonic_shoe_v4_lights = gdSPDefLights1( + 0x7F, 0x0, 0x1, + 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); + +Lights1 marios_wing_cap_sonic_white_v4_lights = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); + +Gfx marios_wing_cap_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_wing_cap_sonic_new2_rgba16[] = { + #include "actors/marios_wing_cap/sonic_new2.rgba16.inc.c" +}; + +Gfx marios_wing_cap_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_wing_cap_wing_2_rgba16[] = { + #include "actors/marios_wing_cap/wing_2.rgba16.inc.c" +}; + +Gfx marios_wing_cap_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_wing_cap_wing1_rgba16[] = { + #include "actors/marios_wing_cap/wing1.rgba16.inc.c" +}; + +Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0[134] = { + {{{104, 6, -74},0, {1000, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{111, 34, -71},0, {832, -7},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 2, -33},0, {1000, 32},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{122, 24, -33},0, {864, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{123, 16, 35},0, {896, 192},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 2, 35},0, {1000, 192},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{120, 16, 98},0, {896, 258},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{119, 2, 99},0, {1000, 258},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{114, 17, 136},0, {898, 323},{0x78, 0xE, 0x27, 0xFF}}}, + {{{113, 3, 136},0, {1001, 323},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {1001, 395},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{91, 22, 178},0, {907, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{62, 20, 203},0, {1001, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{62, 30, 200},0, {915, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{16, 18, 135},0, {898, 323},{0x87, 0x10, 0x24, 0xFF}}}, + {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{16, 4, 135},0, {1001, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{8, 17, 98},0, {896, 258},{0x83, 0xF, 0x12, 0xFF}}}, + {{{8, 3, 98},0, {1000, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {896, 192},{0x82, 0xE, 0x6, 0xFF}}}, + {{{3, 3, 34},0, {1000, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{3, 3, -34},0, {1000, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{3, 25, -34},0, {864, 32},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{14, 7, -75},0, {1000, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{12, 35, -71},0, {832, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{104, 6, -74},0, {1000, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{111, 34, -71},0, {805, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{37, 14, -91},0, {1000, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{42, 54, -82},0, {663, 734},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{12, 35, -71},0, {805, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{14, 7, -75},0, {1000, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{37, 14, -91},0, {418, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{84, 13, -91},0, {467, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{104, 6, -74},0, {489, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{14, 7, -75},0, {395, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{3, 3, -34},0, {384, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{120, 2, -33},0, {506, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{3, 3, 34},0, {384, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{122, 2, 35},0, {509, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{16, 4, 135},0, {399, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{113, 3, 136},0, {500, 23},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {477, -261},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{33, 11, 178},0, {415, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{62, 20, 203},0, {444, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{-12, 25, -34},0, {864, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-14, 7, -75},0, {1000, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 35, -71},0, {832, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-12, 3, -34},0, {1000, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-12, 18, 34},0, {896, 192},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-11, 3, 34},0, {1000, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-8, 3, 98},0, {1000, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-16, 18, 135},0, {898, 323},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-33, 11, 178},0, {1001, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-34, 22, 178},0, {907, 395},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-61, 20, 203},0, {1001, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-61, 30, 200},0, {915, 431},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-91, 22, 178},0, {907, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-91, 10, 178},0, {1001, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-113, 17, 136},0, {898, 323},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-113, 3, 136},0, {1001, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-118, 2, 99},0, {1000, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-119, 16, 99},0, {896, 258},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-122, 2, 35},0, {1000, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 24, -33},0, {864, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-111, 34, -70},0, {832, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {1000, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-12, 35, -71},0, {805, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-14, 7, -75},0, {1000, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-37, 14, -91},0, {1000, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-42, 54, -82},0, {663, 734},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-75, 53, -82},0, {663, 770},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-84, 13, -90},0, {1000, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-111, 34, -70},0, {805, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {1000, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-84, 13, -90},0, {469, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-14, 7, -75},0, {397, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-12, 3, -34},0, {386, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-120, 2, -33},0, {508, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-11, 3, 34},0, {386, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-122, 2, 35},0, {511, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-8, 3, 98},0, {392, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-118, 2, 99},0, {508, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-16, 4, 135},0, {401, 23},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-113, 3, 136},0, {502, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-91, 10, 178},0, {479, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-33, 11, 178},0, {417, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-61, 20, 203},0, {446, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{108, 143, -24},0, {575, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{58, 102, -4},0, {594, 64},{0x6, 0x7F, 0x5, 0xFF}}}, + {{{108, 143, 13},0, {610, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{79, 146, -48},0, {552, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{40, 148, -46},0, {554, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{14, 148, -18},0, {580, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{16, 146, 20},0, {617, 576},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{45, 145, 44},0, {640, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{83, 143, 42},0, {638, 576},{0x26, 0x62, 0x47, 0xFF}}}, + {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-14, 148, -18},0, {580, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-40, 148, -46},0, {554, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-79, 146, -48},0, {552, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-108, 143, -24},0, {575, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-83, 143, 42},0, {638, 576},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-45, 145, 44},0, {640, 576},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, +}; + +Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 8, 7, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 110, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 126, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1[32] = { + {{{123, 16, 35},0, {321, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, + {{{130, 20, 37},0, {322, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, + {{{120, 16, 98},0, {338, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, + {{{121, 20, 30},0, {320, 26},{0x48, 0xEE, 0x99, 0xFF}}}, + {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{120, 45, 44},0, {324, 8},{0x72, 0xEB, 0x34, 0xFF}}}, + {{{116, 45, 89},0, {335, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, + {{{117, 54, 96},0, {337, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, + {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, + {{{106, 61, 98},0, {338, -1},{0x46, 0x62, 0x28, 0xFF}}}, + {{{107, 56, 103},0, {339, 2},{0x48, 0x38, 0x59, 0xFF}}}, + {{{127, 20, 96},0, {337, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, + {{{117, 20, 103},0, {339, 26},{0x49, 0xFB, 0x68, 0xFF}}}, + {{{119, 28, 89},0, {335, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, + {{{121, 28, 44},0, {323, 20},{0x63, 0x38, 0x39, 0xFF}}}, + {{{-126, 20, 96},0, {337, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, + {{{-119, 16, 99},0, {338, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, + {{{-117, 20, 103},0, {339, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, + {{{-130, 20, 37},0, {322, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, + {{{-119, 28, 89},0, {335, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, + {{{-116, 54, 96},0, {337, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, + {{{-107, 56, 103},0, {339, 2},{0xB8, 0x37, 0x59, 0xFF}}}, + {{{-106, 61, 98},0, {338, -1},{0xBA, 0x62, 0x28, 0xFF}}}, + {{{-114, 60, 35},0, {321, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, + {{{-124, 54, 37},0, {322, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, + {{{-115, 55, 30},0, {320, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, + {{{-120, 20, 31},0, {320, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, + {{{-122, 16, 35},0, {321, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, + {{{-120, 45, 44},0, {324, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, + {{{-121, 28, 44},0, {323, 20},{0x9D, 0x38, 0x39, 0xFF}}}, + {{{-116, 45, 89},0, {335, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, +}; + +Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_1[] = { + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(5, 6, 1, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 2, 0), + gsSP1Triangle(1, 12, 2, 0), + gsSP1Triangle(12, 1, 14, 0), + gsSP1Triangle(14, 1, 15, 0), + gsSP1Triangle(6, 15, 1, 0), + gsSP1Triangle(12, 14, 8, 0), + gsSP1Triangle(8, 14, 7, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2[92] = { + {{{123, 16, 35},0, {0, 981},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 24, -33},0, {0, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{111, 34, -71},0, {1, 992},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{75, 53, -82},0, {6, 994},{0x16, 0x21, 0x87, 0xFF}}}, + {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{42, 54, -82},0, {10, 994},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{12, 35, -71},0, {14, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{3, 17, 34},0, {15, 981},{0x82, 0xE, 0x6, 0xFF}}}, + {{{57, 99, -18},0, {10, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{99, 95, -33},0, {4, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, + {{{106, 88, 35},0, {3, 981},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{59, 102, 34},0, {9, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{116, 37, 98},0, {1, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{114, 17, 136},0, {1, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{120, 16, 98},0, {0, 974},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{99, 61, 135},0, {3, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{105, 73, 98},0, {3, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{61, 72, 135},0, {8, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{61, 85, 98},0, {9, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{23, 74, 98},0, {13, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{28, 62, 135},0, {12, 970},{0xA9, 0x50, 0x30, 0xFF}}}, + {{{8, 17, 98},0, {14, 974},{0x83, 0xF, 0x12, 0xFF}}}, + {{{16, 18, 135},0, {13, 970},{0x87, 0x10, 0x24, 0xFF}}}, + {{{35, 22, 178},0, {11, 966},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{62, 51, 183},0, {8, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, + {{{62, 30, 200},0, {7, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{91, 22, 178},0, {3, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-12, 18, 34},0, {20, 981},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-12, 25, -34},0, {20, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-12, 35, -71},0, {21, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-42, 54, -82},0, {24, 994},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {28, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-111, 34, -70},0, {33, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 16, 35},0, {35, 981},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-106, 88, 35},0, {32, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-99, 95, -33},0, {30, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-57, 99, -18},0, {25, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-59, 102, 34},0, {25, 981},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-116, 37, 98},0, {34, 974},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-119, 16, 99},0, {35, 974},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-113, 17, 136},0, {34, 970},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-99, 61, 135},0, {31, 970},{0xAD, 0x52, 0x32, 0xFF}}}, + {{{-91, 22, 178},0, {31, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-61, 51, 183},0, {27, 965},{0x2, 0x5D, 0x57, 0xFF}}}, + {{{-61, 30, 200},0, {27, 963},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-34, 22, 178},0, {24, 966},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-28, 62, 135},0, {22, 970},{0x57, 0x50, 0x2F, 0xFF}}}, + {{{-16, 18, 135},0, {22, 970},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-8, 17, 98},0, {21, 974},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-22, 74, 98},0, {21, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-61, 72, 135},0, {26, 970},{0x1, 0x76, 0x2F, 0xFF}}}, + {{{-61, 85, 98},0, {26, 974},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-105, 73, 98},0, {32, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, +}; + +Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_2[] = { + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(9, 8, 3, 0), + gsSP1Triangle(9, 3, 10, 0), + gsSP1Triangle(10, 3, 0, 0), + gsSP1Triangle(8, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 13, 8, 0), + gsSP1Triangle(8, 13, 7, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(5, 12, 3, 0), + gsSP1Triangle(5, 8, 12, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 46, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 62, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(6, 10, 12, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(5, 6, 13, 0), + gsSP1Triangle(5, 13, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 77, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3[112] = { + {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, + {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, + {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, +}; + +Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_3[] = { + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(5, 0, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(15, 14, 11, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(11, 13, 15, 0), + gsSP1Triangle(13, 1, 15, 0), + gsSP1Triangle(1, 0, 15, 0), + gsSP1Triangle(0, 4, 15, 0), + gsSP1Triangle(4, 5, 15, 0), + gsSP1Triangle(5, 8, 15, 0), + gsSP1Triangle(8, 9, 15, 0), + gsSP1Triangle(9, 11, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0[8] = { + {{{194, 17, -65},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{279, -15, -131},0, {974, 1978},{0x52, 0x34, 0x52, 0xFF}}}, + {{{267, 178, -241},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{182, 210, -175},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{-193, 17, -68},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-278, -15, -134},0, {974, 1978},{0x52, 0xCC, 0xAE, 0xFF}}}, + {{{-266, 178, -244},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-182, 210, -178},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, +}; + +Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_0[] = { + gsSPVertex(marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1[8] = { + {{{98, 243, -109},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{109, 49, 0},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{194, 17, -65},0, {974, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{182, 210, -175},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{-97, 243, -112},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-193, 17, -68},0, {974, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-182, 210, -178},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-108, 49, -3},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, +}; + +Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_1[] = { + gsSPVertex(marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_marios_wing_cap_sonic_texture_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_sonic_new2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(marios_wing_cap_sonic_texture_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_wing_cap_sonic_buckle_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(marios_wing_cap_sonic_buckle_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_wing_cap_sonic_shoe_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(marios_wing_cap_sonic_shoe_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_wing_cap_sonic_white_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(marios_wing_cap_sonic_white_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_wing_cap_wing_2_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_wing_2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_wing_cap_wing_2_001_v4[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_wing_cap_wing_1_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_wing1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_wing_cap_wing_1_001_v4[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx marios_wing_cap_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_marios_wing_cap_sonic_texture_v4), + gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_marios_wing_cap_sonic_buckle_v4), + gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_marios_wing_cap_sonic_shoe_v4), + gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_marios_wing_cap_sonic_white_v4), + gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx marios_wing_cap_001_displaylist_mesh_layer_4[] = { + gsSPDisplayList(mat_marios_wing_cap_wing_2_001_v4), + gsSPDisplayList(marios_wing_cap_001_displaylist_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_marios_wing_cap_wing_2_001_v4), + gsSPDisplayList(mat_marios_wing_cap_wing_1_001_v4), + gsSPDisplayList(marios_wing_cap_001_displaylist_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_marios_wing_cap_wing_1_001_v4), + gsSPEndDisplayList(), +}; + +Gfx marios_wing_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/marios_wing_cap/sonic_new2.rgba16.png b/actors/marios_wing_cap/sonic_new2.rgba16.png new file mode 100644 index 00000000..b1a02ad9 Binary files /dev/null and b/actors/marios_wing_cap/sonic_new2.rgba16.png differ diff --git a/actors/marios_wing_cap/wing1.rgba16.png b/actors/marios_wing_cap/wing1.rgba16.png new file mode 100644 index 00000000..394cbd58 Binary files /dev/null and b/actors/marios_wing_cap/wing1.rgba16.png differ diff --git a/actors/marios_wing_cap/wing_2.rgba16.png b/actors/marios_wing_cap/wing_2.rgba16.png new file mode 100644 index 00000000..7be615e0 Binary files /dev/null and b/actors/marios_wing_cap/wing_2.rgba16.png differ diff --git a/actors/marios_winged_metal_cap/geo.inc.c b/actors/marios_winged_metal_cap/geo.inc.c new file mode 100644 index 00000000..9af31eec --- /dev/null +++ b/actors/marios_winged_metal_cap/geo.inc.c @@ -0,0 +1,28 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout marios_winged_metal_cap_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(0, 180, 75), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_winged_metal_cap_000_displaylist_mesh_layer_1), + GEO_DISPLAY_LIST(LAYER_ALPHA, marios_winged_metal_cap_001_displaylist_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_winged_metal_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, marios_winged_metal_cap_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/marios_winged_metal_cap/geo_header.h b/actors/marios_winged_metal_cap/geo_header.h new file mode 100644 index 00000000..04e697c0 --- /dev/null +++ b/actors/marios_winged_metal_cap/geo_header.h @@ -0,0 +1,19 @@ +extern const GeoLayout marios_winged_metal_cap_geo[]; +extern u8 marios_winged_metal_cap_metal_rgba16[]; +extern u8 marios_winged_metal_cap_wing_2_rgba16[]; +extern u8 marios_winged_metal_cap_wing1_rgba16[]; +extern Vtx marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380]; +extern Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_0[8]; +extern Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_0[]; +extern Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_1[8]; +extern Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_1[]; +extern Gfx mat_marios_winged_metal_cap_metal_v4[]; +extern Gfx mat_revert_marios_winged_metal_cap_metal_v4[]; +extern Gfx mat_marios_winged_metal_cap_wing_2_001_v4_003[]; +extern Gfx mat_revert_marios_winged_metal_cap_wing_2_001_v4_003[]; +extern Gfx mat_marios_winged_metal_cap_wing_1_001_v4_003[]; +extern Gfx mat_revert_marios_winged_metal_cap_wing_1_001_v4_003[]; +extern Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1[]; +extern Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4[]; +extern Gfx marios_winged_metal_cap_material_revert_render_settings[]; diff --git a/actors/marios_winged_metal_cap/metal.rgba16.png b/actors/marios_winged_metal_cap/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/marios_winged_metal_cap/metal.rgba16.png differ diff --git a/actors/marios_winged_metal_cap/model.inc.c b/actors/marios_winged_metal_cap/model.inc.c new file mode 100644 index 00000000..49e074ab --- /dev/null +++ b/actors/marios_winged_metal_cap/model.inc.c @@ -0,0 +1,893 @@ +Gfx marios_winged_metal_cap_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_winged_metal_cap_metal_rgba16[] = { + #include "actors/marios_winged_metal_cap/metal.rgba16.inc.c" +}; + +Gfx marios_winged_metal_cap_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_winged_metal_cap_wing_2_rgba16[] = { + #include "actors/marios_winged_metal_cap/wing_2.rgba16.inc.c" +}; + +Gfx marios_winged_metal_cap_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 marios_winged_metal_cap_wing1_rgba16[] = { + #include "actors/marios_winged_metal_cap/wing1.rgba16.inc.c" +}; + +Vtx marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380] = { + {{{104, 6, -74},0, {2016, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{111, 34, -71},0, {1680, -7},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 2, -33},0, {2016, 32},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{122, 24, -33},0, {1745, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{123, 16, 35},0, {1809, 192},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 2, 35},0, {2016, 192},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{120, 16, 98},0, {1808, 258},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{119, 2, 99},0, {2017, 258},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{114, 17, 136},0, {1812, 323},{0x78, 0xE, 0x27, 0xFF}}}, + {{{113, 3, 136},0, {2017, 323},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {2017, 395},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{91, 22, 178},0, {1831, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{62, 20, 203},0, {2017, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{62, 30, 200},0, {1846, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{16, 18, 135},0, {1812, 323},{0x87, 0x10, 0x24, 0xFF}}}, + {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{16, 4, 135},0, {2017, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{8, 17, 98},0, {1808, 258},{0x83, 0xF, 0x12, 0xFF}}}, + {{{8, 3, 98},0, {2017, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {1809, 192},{0x82, 0xE, 0x6, 0xFF}}}, + {{{3, 3, 34},0, {2016, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{3, 3, -34},0, {2016, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{3, 25, -34},0, {1745, 32},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{14, 7, -75},0, {2016, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{12, 35, -71},0, {1680, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{123, 16, 35},0, {15, 981},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, + {{{111, 34, -71},0, {19, 992},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{75, 53, -82},0, {29, 994},{0x16, 0x21, 0x87, 0xFF}}}, + {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{60, 96, -67},0, {34, 992},{0x0, 0x63, 0xB1, 0xFF}}}, + {{{42, 54, -82},0, {37, 994},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{12, 35, -71},0, {44, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{3, 25, -34},0, {45, 988},{0x82, 0xC, 0xF3, 0xFF}}}, + {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{3, 17, 34},0, {45, 981},{0x82, 0xE, 0x6, 0xFF}}}, + {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{99, 95, -33},0, {24, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, + {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, + {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, + {{{106, 88, 35},0, {22, 981},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{59, 102, 34},0, {34, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, + {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, + {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, + {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, + {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, + {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, + {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, + {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, + {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, + {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, + {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, + {{{116, 37, 98},0, {17, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, + {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{120, 16, 98},0, {16, 974},{0x7E, 0x5, 0xD, 0xFF}}}, + {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{61, 85, 98},0, {33, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, + {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, + {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, + {{{23, 74, 98},0, {42, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, + {{{28, 62, 135},0, {40, 970},{0xA9, 0x50, 0x30, 0xFF}}}, + {{{8, 17, 98},0, {44, 974},{0x83, 0xF, 0x12, 0xFF}}}, + {{{16, 18, 135},0, {42, 970},{0x87, 0x10, 0x24, 0xFF}}}, + {{{35, 22, 178},0, {37, 966},{0x9D, 0x22, 0x48, 0xFF}}}, + {{{62, 51, 183},0, {31, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, + {{{62, 30, 200},0, {30, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, + {{{91, 22, 178},0, {23, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, + {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, + {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, + {{{104, 6, -74},0, {2016, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{75, 53, -82},0, {1342, 770},{0x16, 0x21, 0x87, 0xFF}}}, + {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, + {{{37, 14, -91},0, {2016, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{42, 54, -82},0, {1342, 734},{0xE7, 0x21, 0x88, 0xFF}}}, + {{{12, 35, -71},0, {1625, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, + {{{14, 7, -75},0, {2016, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{37, 14, -91},0, {852, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, + {{{84, 13, -91},0, {949, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, + {{{104, 6, -74},0, {993, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, + {{{14, 7, -75},0, {805, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, + {{{3, 3, -34},0, {783, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, + {{{120, 2, -33},0, {1029, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, + {{{3, 3, 34},0, {784, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, + {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, + {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, + {{{119, 2, 99},0, {1028, 269},{0x57, 0xA4, 0xA, 0xFF}}}, + {{{16, 4, 135},0, {813, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, + {{{113, 3, 136},0, {1016, 23},{0x55, 0xA8, 0x21, 0xFF}}}, + {{{92, 10, 178},0, {970, -261},{0x46, 0xB2, 0x47, 0xFF}}}, + {{{33, 11, 178},0, {847, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, + {{{62, 20, 203},0, {904, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, + {{{-12, 25, -34},0, {1745, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-14, 7, -75},0, {2016, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 35, -71},0, {1680, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-12, 3, -34},0, {2016, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-12, 18, 34},0, {1809, 192},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-11, 3, 34},0, {2016, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 4, 135},0, {2017, 323},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-16, 18, 135},0, {1812, 323},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-33, 11, 178},0, {2017, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-34, 22, 178},0, {1831, 395},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-61, 20, 203},0, {2017, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-61, 30, 200},0, {1846, 431},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-91, 22, 178},0, {1831, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-91, 10, 178},0, {2017, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-113, 17, 136},0, {1812, 323},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-113, 3, 136},0, {2017, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-118, 2, 99},0, {2017, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-119, 16, 99},0, {1808, 258},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-120, 2, -33},0, {2016, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-122, 24, -33},0, {1745, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-111, 34, -70},0, {1680, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {2016, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-12, 18, 34},0, {56, 981},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-12, 25, -34},0, {56, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-12, 35, -71},0, {58, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-42, 54, -82},0, {64, 994},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-111, 34, -70},0, {82, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-122, 24, -33},0, {85, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, + {{{-121, 40, 35},0, {85, 981},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-122, 16, 35},0, {86, 981},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-106, 88, 35},0, {79, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-59, 102, 34},0, {67, 981},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, + {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, + {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, + {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, + {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, + {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, + {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, + {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, + {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, + {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, + {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, + {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, + {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-12, 35, -71},0, {1625, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, + {{{-14, 7, -75},0, {2016, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-37, 14, -91},0, {2016, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-42, 54, -82},0, {1342, 734},{0x19, 0x21, 0x88, 0xFF}}}, + {{{-75, 53, -82},0, {1342, 770},{0xEA, 0x21, 0x87, 0xFF}}}, + {{{-84, 13, -90},0, {2016, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-111, 34, -70},0, {1625, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, + {{{-104, 6, -74},0, {2016, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-37, 14, -91},0, {856, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, + {{{-104, 6, -74},0, {998, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, + {{{-84, 13, -90},0, {953, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, + {{{-14, 7, -75},0, {809, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, + {{{-12, 3, -34},0, {788, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, + {{{-120, 2, -33},0, {1033, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, + {{{-11, 3, 34},0, {788, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, + {{{-122, 2, 35},0, {1038, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, + {{{-8, 3, 98},0, {800, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, + {{{-118, 2, 99},0, {1033, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, + {{{-16, 4, 135},0, {818, 23},{0x57, 0xA9, 0x20, 0xFF}}}, + {{{-113, 3, 136},0, {1021, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, + {{{-91, 10, 178},0, {974, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, + {{{-33, 11, 178},0, {851, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, + {{{-61, 20, 203},0, {908, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, + {{{-116, 37, 98},0, {84, 974},{0x86, 0x1E, 0x11, 0xFF}}}, + {{{-119, 16, 99},0, {85, 974},{0x82, 0x5, 0xD, 0xFF}}}, + {{{-113, 17, 136},0, {84, 970},{0x88, 0xE, 0x27, 0xFF}}}, + {{{-99, 61, 135},0, {78, 970},{0xAD, 0x52, 0x32, 0xFF}}}, + {{{-91, 22, 178},0, {78, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, + {{{-61, 51, 183},0, {70, 965},{0x2, 0x5D, 0x57, 0xFF}}}, + {{{-61, 30, 200},0, {71, 963},{0x1, 0x3D, 0x70, 0xFF}}}, + {{{-34, 22, 178},0, {64, 966},{0x63, 0x22, 0x48, 0xFF}}}, + {{{-28, 62, 135},0, {61, 970},{0x57, 0x50, 0x2F, 0xFF}}}, + {{{-16, 18, 135},0, {60, 970},{0x79, 0x10, 0x24, 0xFF}}}, + {{{-8, 17, 98},0, {58, 974},{0x7E, 0xF, 0x9, 0xFF}}}, + {{{-22, 74, 98},0, {59, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, + {{{-61, 72, 135},0, {69, 970},{0x1, 0x76, 0x2F, 0xFF}}}, + {{{-61, 85, 98},0, {68, 974},{0x1, 0x7A, 0x24, 0xFF}}}, + {{{-105, 73, 98},0, {79, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, + {{{123, 16, 35},0, {658, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, + {{{130, 20, 37},0, {659, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, + {{{120, 16, 98},0, {691, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, + {{{121, 20, 30},0, {656, 26},{0x48, 0xEE, 0x99, 0xFF}}}, + {{{116, 55, 30},0, {656, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, + {{{125, 54, 37},0, {659, 1},{0x71, 0x32, 0xE2, 0xFF}}}, + {{{114, 60, 35},0, {658, -2},{0x48, 0x65, 0xE5, 0xFF}}}, + {{{117, 54, 96},0, {690, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, + {{{106, 61, 98},0, {691, -1},{0x46, 0x62, 0x28, 0xFF}}}, + {{{107, 56, 103},0, {694, 2},{0x48, 0x38, 0x59, 0xFF}}}, + {{{127, 20, 96},0, {690, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, + {{{117, 20, 103},0, {694, 26},{0x49, 0xFB, 0x68, 0xFF}}}, + {{{119, 28, 89},0, {686, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, + {{{121, 28, 44},0, {663, 20},{0x63, 0x38, 0x39, 0xFF}}}, + {{{120, 45, 44},0, {663, 8},{0x72, 0xEB, 0x34, 0xFF}}}, + {{{116, 45, 89},0, {686, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, + {{{108, 143, -24},0, {1166, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{58, 102, -4},0, {1204, 64},{0x6, 0x7F, 0x5, 0xFF}}}, + {{{108, 143, 13},0, {1237, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{79, 146, -48},0, {1119, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{40, 148, -46},0, {1124, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{14, 148, -18},0, {1176, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{16, 146, 20},0, {1250, 576},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{45, 145, 44},0, {1296, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{83, 143, 42},0, {1291, 576},{0x26, 0x62, 0x47, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, + {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, + {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, + {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, + {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, + {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, + {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, + {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, + {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, + {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, + {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, + {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, + {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, + {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, + {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-14, 148, -18},0, {1176, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-40, 148, -46},0, {1124, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-79, 146, -48},0, {1119, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-108, 143, -24},0, {1166, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-83, 143, 42},0, {1291, 576},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, + {{{-45, 145, 44},0, {1296, 576},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, + {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, + {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, + {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, + {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, + {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, + {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, + {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, + {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, + {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, + {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, + {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, + {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, + {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, + {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, + {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, + {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, + {{{-126, 20, 96},0, {690, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, + {{{-119, 16, 99},0, {691, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, + {{{-117, 20, 103},0, {694, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, + {{{-130, 20, 37},0, {659, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, + {{{-119, 28, 89},0, {686, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, + {{{-116, 54, 96},0, {690, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, + {{{-107, 56, 103},0, {694, 2},{0xB8, 0x37, 0x59, 0xFF}}}, + {{{-106, 61, 98},0, {691, -1},{0xBA, 0x62, 0x28, 0xFF}}}, + {{{-114, 60, 35},0, {658, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, + {{{-124, 54, 37},0, {659, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, + {{{-115, 55, 30},0, {656, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, + {{{-120, 20, 31},0, {656, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, + {{{-122, 16, 35},0, {658, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, + {{{-120, 45, 44},0, {663, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, + {{{-121, 28, 44},0, {663, 20},{0x9D, 0x38, 0x39, 0xFF}}}, + {{{-116, 45, 89},0, {686, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, +}; + +Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(15, 12, 13, 0), + gsSP1Triangle(15, 8, 12, 0), + gsSP1Triangle(15, 6, 8, 0), + gsSP1Triangle(5, 6, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(0, 3, 6, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(6, 8, 0, 0), + gsSP1Triangle(0, 8, 1, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(1, 8, 11, 0), + gsSP1Triangle(1, 4, 8, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 9, 8, 0), + gsSP1Triangle(8, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 9, 5, 0), + gsSP1Triangle(10, 5, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(11, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 192, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 207, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 222, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 237, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(10, 11, 2, 0), + gsSP1Triangle(1, 10, 2, 0), + gsSP1Triangle(10, 1, 12, 0), + gsSP1Triangle(12, 1, 13, 0), + gsSP1Triangle(14, 13, 1, 0), + gsSP1Triangle(5, 14, 1, 0), + gsSP1Triangle(14, 5, 15, 0), + gsSP1Triangle(7, 15, 5, 0), + gsSP1Triangle(7, 12, 15, 0), + gsSP1Triangle(10, 12, 7, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 253, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 269, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 285, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 301, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 317, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 333, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 349, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(7, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 0, 11, 0), + gsSP1Triangle(0, 4, 11, 0), + gsSP1Triangle(4, 5, 11, 0), + gsSP1Triangle(5, 7, 11, 0), + gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 364, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_0[8] = { + {{{194, 17, -65},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{279, -15, -131},0, {974, 1978},{0x52, 0x34, 0x52, 0xFF}}}, + {{{267, 178, -241},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{182, 210, -175},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{-193, 17, -68},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-278, -15, -134},0, {974, 1978},{0x52, 0xCC, 0xAE, 0xFF}}}, + {{{-266, 178, -244},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-182, 210, -178},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, +}; + +Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_0[] = { + gsSPVertex(marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_0 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_1[8] = { + {{{98, 243, -109},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{109, 49, 0},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{194, 17, -65},0, {974, 1978},{0x53, 0x33, 0x52, 0xFF}}}, + {{{182, 210, -175},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, + {{{-97, 243, -112},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-193, 17, -68},0, {974, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-182, 210, -178},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, + {{{-108, 49, -3},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, +}; + +Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_1[] = { + gsSPVertex(marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_1 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_marios_winged_metal_cap_metal_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, marios_winged_metal_cap_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadTile(7, 0, 0, 252, 124), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_winged_metal_cap_metal_v4[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_winged_metal_cap_wing_2_001_v4_003[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, marios_winged_metal_cap_wing_2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadTile(7, 0, 0, 124, 252), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_winged_metal_cap_wing_2_001_v4_003[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx mat_marios_winged_metal_cap_wing_1_001_v4_003[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, marios_winged_metal_cap_wing1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadTile(7, 0, 0, 124, 252), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_marios_winged_metal_cap_wing_1_001_v4_003[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_marios_winged_metal_cap_metal_v4), + gsSPDisplayList(marios_winged_metal_cap_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_marios_winged_metal_cap_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4[] = { + gsSPDisplayList(mat_marios_winged_metal_cap_wing_2_001_v4_003), + gsSPDisplayList(marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_marios_winged_metal_cap_wing_2_001_v4_003), + gsSPDisplayList(mat_marios_winged_metal_cap_wing_1_001_v4_003), + gsSPDisplayList(marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_marios_winged_metal_cap_wing_1_001_v4_003), + gsSPEndDisplayList(), +}; + +Gfx marios_winged_metal_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/marios_winged_metal_cap/wing1.rgba16.png b/actors/marios_winged_metal_cap/wing1.rgba16.png new file mode 100644 index 00000000..394cbd58 Binary files /dev/null and b/actors/marios_winged_metal_cap/wing1.rgba16.png differ diff --git a/actors/marios_winged_metal_cap/wing_2.rgba16.png b/actors/marios_winged_metal_cap/wing_2.rgba16.png new file mode 100644 index 00000000..7be615e0 Binary files /dev/null and b/actors/marios_winged_metal_cap/wing_2.rgba16.png differ diff --git a/actors/metal_box/metal_box_side.rgba16.png b/actors/metal_box/metal_box_side.rgba16.png new file mode 100644 index 00000000..d4d35508 Binary files /dev/null and b/actors/metal_box/metal_box_side.rgba16.png differ diff --git a/actors/rainbow_star/geo.inc.c b/actors/rainbow_star/geo.inc.c new file mode 100644 index 00000000..f03bc9c0 --- /dev/null +++ b/actors/rainbow_star/geo.inc.c @@ -0,0 +1,12 @@ +// 0x16000EA0 +const GeoLayout rainbow_star_geo[] = { + GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0x9B, 100), + GEO_OPEN_NODE(), + GEO_SCALE(0x00, 16384), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, rainbow_star_seg3_dl_0302B870), + GEO_DISPLAY_LIST(LAYER_ALPHA, rainbow_star_seg3_dl_0302BA18), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/rainbow_star/model.inc.c b/actors/rainbow_star/model.inc.c new file mode 100644 index 00000000..191edf7a --- /dev/null +++ b/actors/rainbow_star/model.inc.c @@ -0,0 +1,119 @@ +// Rainbow Star + +// 0x0302A6D8 +static const Lights1 rainbow_star_seg3_lights_0302A6D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); + +// 0x0302A6F0 +ALIGNED8 static const Texture rainbow_star_seg3_texture_0302A6F0[] = { +#include "actors/rainbow_star/rainbow_star_surface.rgba16.inc.c" +}; + +// 0x0302AEF0 +ALIGNED8 static const Texture rainbow_star_seg3_texture_0302AEF0[] = { +#include "actors/star/star_eye.rgba16.inc.c" +}; + +// 0x0302B6F0 +static const Vtx rainbow_star_seg3_vertex_0302B6F0[] = { + {{{ 0, 8, -89}, 0, { 0, 0}, {0x00, 0x07, 0x82, 0xff}}}, + {{{ 190, -201, 0}, 0, { 0, 0}, {0x55, 0xa3, 0x00, 0xff}}}, + {{{ 0, -129, 0}, 0, { 0, 0}, {0x00, 0x82, 0x00, 0xff}}}, + {{{ 146, -42, 0}, 0, { 0, 0}, {0x7c, 0xe7, 0x00, 0xff}}}, + {{{ 0, 8, 90}, 0, { 0, 0}, {0x00, 0x07, 0x7e, 0xff}}}, + {{{ 257, 84, 0}, 0, { 0, 0}, {0x68, 0x47, 0x00, 0xff}}}, + {{{ -145, -42, 0}, 0, { 0, 0}, {0x84, 0xe7, 0x00, 0xff}}}, + {{{ -189, -201, 0}, 0, { 0, 0}, {0xaa, 0xa3, 0x00, 0xff}}}, + {{{ -256, 84, 0}, 0, { 0, 0}, {0x97, 0x47, 0x00, 0xff}}}, + {{{ 0, 246, 0}, 0, { 0, 0}, {0x00, 0x7e, 0x00, 0xff}}}, + {{{ 96, 99, 0}, 0, { 0, 0}, {0x3d, 0x6f, 0x00, 0xff}}}, + {{{ -95, 99, 0}, 0, { 0, 0}, {0xc3, 0x6f, 0x00, 0xff}}}, +}; + +// 0x0302B7B0 - 0x0302B870 +const Gfx rainbow_star_seg3_dl_0302B7B0[] = { + gsSPLight(&rainbow_star_seg3_lights_0302A6D8.l, 1), + gsSPLight(&rainbow_star_seg3_lights_0302A6D8.a, 2), + gsSPVertex(rainbow_star_seg3_vertex_0302B6F0, 12, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), + gsSP2Triangles( 2, 1, 4, 0x0, 1, 3, 4, 0x0), + gsSP2Triangles( 5, 3, 0, 0x0, 4, 3, 5, 0x0), + gsSP2Triangles( 6, 7, 4, 0x0, 7, 2, 4, 0x0), + gsSP2Triangles( 8, 6, 4, 0x0, 9, 4, 10, 0x0), + gsSP2Triangles( 9, 11, 4, 0x0, 4, 5, 10, 0x0), + gsSP2Triangles(11, 8, 4, 0x0, 0, 2, 7, 0x0), + gsSP2Triangles( 0, 7, 6, 0x0, 0, 6, 8, 0x0), + gsSP2Triangles( 0, 8, 11, 0x0, 0, 11, 9, 0x0), + gsSP2Triangles(10, 5, 0, 0x0, 10, 0, 9, 0x0), + gsSPEndDisplayList(), +}; + +// 0x0302B870 - 0x0302B908 +const Gfx rainbow_star_seg3_dl_0302B870[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), + gsDPLoadTextureBlock(rainbow_star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), //! Dimensions loaded as 32x64 despite this texture having only 32x32 dimensions, harmless due to environment mapping (G_TEXTURE_GEN & gsSPTexture values) + gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), + gsSPDisplayList(rainbow_star_seg3_dl_0302B7B0), + gsDPPipeSync(), + gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPEndDisplayList(), +}; + +// 0x0302B908 +static const Lights1 rainbow_star_seg3_lights_0302B908 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); + +// 0x0302B920 +static const Vtx rainbow_star_seg3_vertex_0302B920[] = { + {{{ 67, 86, 63}, 0, { 990, 0}, {0x18, 0x15, 0x7a, 0xff}}}, + {{{ 0, -27, 96}, 0, { 0, 990}, {0x18, 0x15, 0x7a, 0xff}}}, + {{{ 67, -29, 83}, 0, { 990, 990}, {0x18, 0x15, 0x7a, 0xff}}}, + {{{ 0, 89, 76}, 0, { 0, 0}, {0x18, 0x15, 0x7a, 0xff}}}, + {{{ 0, 89, 76}, 0, { 990, 0}, {0xe8, 0x15, 0x7a, 0xff}}}, + {{{ -66, -29, 83}, 0, { 0, 990}, {0xe8, 0x15, 0x7a, 0xff}}}, + {{{ 0, -27, 96}, 0, { 990, 990}, {0xe8, 0x15, 0x7a, 0xff}}}, + {{{ 0, 89, 76}, 0, { 990, 0}, {0xe7, 0x15, 0x7a, 0xff}}}, + {{{ -66, 86, 63}, 0, { 0, 0}, {0xe7, 0x15, 0x7a, 0xff}}}, + {{{ -66, -29, 83}, 0, { 0, 990}, {0xe7, 0x15, 0x7a, 0xff}}}, +}; + +// 0x0302B9C0 - 0x0302BA18 +const Gfx rainbow_star_seg3_dl_0302B9C0[] = { + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, rainbow_star_seg3_texture_0302AEF0), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPLight(&rainbow_star_seg3_lights_0302B908.l, 1), + gsSPLight(&rainbow_star_seg3_lights_0302B908.a, 2), + gsSPVertex(rainbow_star_seg3_vertex_0302B920, 10, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), + gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), + gsSPEndDisplayList(), +}; + +// 0x0302BA18 - 0x0302BA88 +const Gfx rainbow_star_seg3_dl_0302BA18[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), + gsSPClearGeometryMode(G_SHADING_SMOOTH), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPTileSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPDisplayList(rainbow_star_seg3_dl_0302B9C0), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPEndDisplayList(), +}; diff --git a/actors/rainbow_star/rainbow_star_surface.ia16.png b/actors/rainbow_star/rainbow_star_surface.ia16.png new file mode 100644 index 00000000..040b8cd7 Binary files /dev/null and b/actors/rainbow_star/rainbow_star_surface.ia16.png differ diff --git a/actors/reticle/geo.inc.c b/actors/reticle/geo.inc.c new file mode 100644 index 00000000..d459c6e2 --- /dev/null +++ b/actors/reticle/geo.inc.c @@ -0,0 +1,16 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout reticle_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(7, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, reticle_000_displaylist_mesh_layer_7), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, reticle_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/reticle/geo_header.h b/actors/reticle/geo_header.h new file mode 100644 index 00000000..dfea36a5 --- /dev/null +++ b/actors/reticle/geo_header.h @@ -0,0 +1,9 @@ +extern const GeoLayout reticle_geo[]; +extern Lights1 reticle_sm64_material_v4_lights; +extern u8 reticle_reticle_rgba16[]; +extern Vtx reticle_000_displaylist_mesh_layer_7_vtx_0[4]; +extern Gfx reticle_000_displaylist_mesh_layer_7_tri_0[]; +extern Gfx mat_reticle_sm64_material_v4[]; +extern Gfx mat_revert_reticle_sm64_material_v4[]; +extern Gfx reticle_000_displaylist_mesh_layer_7[]; +extern Gfx reticle_material_revert_render_settings[]; diff --git a/actors/reticle/model.inc.c b/actors/reticle/model.inc.c new file mode 100644 index 00000000..483a35b1 --- /dev/null +++ b/actors/reticle/model.inc.c @@ -0,0 +1,65 @@ +Lights1 reticle_sm64_material_v4_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Gfx reticle_reticle_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 reticle_reticle_rgba16[] = { + #include "actors/reticle/reticle.rgba16.inc.c" +}; + +Vtx reticle_000_displaylist_mesh_layer_7_vtx_0[4] = { + {{{-62, -47, 0},0, {-16, 1008},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{62, -47, 0},0, {1008, 1008},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{62, 77, 0},0, {1008, -16},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-62, 77, 0},0, {-16, -16},{0x0, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx reticle_000_displaylist_mesh_layer_7_tri_0[] = { + gsSPVertex(reticle_000_displaylist_mesh_layer_7_vtx_0 + 0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_reticle_sm64_material_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, reticle_reticle_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsDPSetPrimColor(0, 0, 254, 254, 254, 255), + gsSPSetLights1(reticle_sm64_material_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_reticle_sm64_material_v4[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx reticle_000_displaylist_mesh_layer_7[] = { + gsSPDisplayList(mat_reticle_sm64_material_v4), + gsSPDisplayList(reticle_000_displaylist_mesh_layer_7_tri_0), + gsSPDisplayList(mat_revert_reticle_sm64_material_v4), + gsSPEndDisplayList(), +}; + +Gfx reticle_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/reticle/reticle.rgba16.png b/actors/reticle/reticle.rgba16.png new file mode 100644 index 00000000..9c6533f8 Binary files /dev/null and b/actors/reticle/reticle.rgba16.png differ diff --git a/actors/snowman/geo.inc.c b/actors/snowman/geo.inc.c index 2dded75e..66f607e5 100644 --- a/actors/snowman/geo.inc.c +++ b/actors/snowman/geo.inc.c @@ -28,7 +28,12 @@ const GeoLayout mr_blizzard_hidden_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 65536), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 490, 14, 43, 305, 0, 248, mario_cap_seg3_dl_03022F48), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 490, 14, 43, 305, 0, 248), + GEO_OPEN_NODE(), + GEO_SCALE(0x00, 0x40000), + GEO_OPEN_NODE(), + GEO_BRANCH_AND_LINK(marios_cap_geo), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/snowman/geo.inc.c.rej b/actors/snowman/geo.inc.c.rej new file mode 100644 index 00000000..12372dab --- /dev/null +++ b/actors/snowman/geo.inc.c.rej @@ -0,0 +1,15 @@ +diff a/actors/snowman/geo.inc.c b/actors/snowman/geo.inc.c (rejected hunks) +@@ -28,7 +28,12 @@ const GeoLayout mr_blizzard_hidden_geo[] = { + GEO_OPEN_NODE(), + GEO_SCALE(0x00, 65536), + GEO_OPEN_NODE(), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 490, 14, 43, 305, 0, 248, mario_cap_seg3_dl_03022F48), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 490, 14, 43, 305, 0, 248), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(0x00, 0x40000), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), diff --git a/actors/sonic_ball/geo.inc.c b/actors/sonic_ball/geo.inc.c new file mode 100644 index 00000000..08200956 --- /dev/null +++ b/actors/sonic_ball/geo.inc.c @@ -0,0 +1,92 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, sonic_ball_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, sonic_ball_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, sonic_ball_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout sonic_ball_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(1, 180, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mirror_mario_backface_culling), + GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, sonic_ball_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, sonic_ball_002_switch_opt0_001_switch_opt1), + GEO_BRANCH(1, sonic_ball_002_switch_opt0_001_switch_opt2), + GEO_BRANCH(1, sonic_ball_002_switch_opt0_001_switch_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ASM(1, geo_mirror_mario_backface_culling), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, sonic_ball_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_ball_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/sonic_ball/geo_header.h b/actors/sonic_ball/geo_header.h new file mode 100644 index 00000000..13b94f77 --- /dev/null +++ b/actors/sonic_ball/geo_header.h @@ -0,0 +1,15 @@ +extern const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout sonic_ball_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout sonic_ball_geo[]; +extern Lights1 sonic_ball_sm64_material_012_lights; +extern u8 sonic_ball_sonicball_rgba16[]; +extern u8 sonic_ball_metal_rgba16[]; +extern Vtx sonic_ball_000_offset_mesh_layer_1_vtx_0[90]; +extern Gfx sonic_ball_000_offset_mesh_layer_1_tri_0[]; +extern Gfx mat_sonic_ball_sm64_material_012[]; +extern Gfx mat_sonic_ball_metal_v4[]; +extern Gfx mat_revert_sonic_ball_metal_v4[]; +extern Gfx sonic_ball_000_offset_mesh_layer_1[]; +extern Gfx sonic_ball_000_offset_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx sonic_ball_material_revert_render_settings[]; diff --git a/actors/sonic_ball/mario_metal_stored.rgba16.png b/actors/sonic_ball/mario_metal_stored.rgba16.png new file mode 100644 index 00000000..b1d7f168 Binary files /dev/null and b/actors/sonic_ball/mario_metal_stored.rgba16.png differ diff --git a/actors/sonic_ball/metal.rgba16.png b/actors/sonic_ball/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/sonic_ball/metal.rgba16.png differ diff --git a/actors/sonic_ball/model.inc.c b/actors/sonic_ball/model.inc.c new file mode 100644 index 00000000..dcdcec2f --- /dev/null +++ b/actors/sonic_ball/model.inc.c @@ -0,0 +1,260 @@ +Lights1 sonic_ball_sm64_material_012_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Gfx sonic_ball_sonicball_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 sonic_ball_sonicball_rgba16[] = { + #include "actors/sonic_ball/sonicball.rgba16.inc.c" +}; + +Gfx sonic_ball_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 sonic_ball_metal_rgba16[] = { + #include "actors/sonic_ball/metal.rgba16.inc.c" +}; + +Vtx sonic_ball_000_offset_mesh_layer_1_vtx_0[90] = { + {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, + {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, + {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, + {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, + {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, + {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, + {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, + {{{15, 260, 0},0, {773, 82},{0x7, 0x7F, 0x0, 0xFF}}}, + {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, + {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, + {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, + {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, + {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, + {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, + {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, + {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, + {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, + {{{-105, 85, -221},0, {399, 278},{0xCB, 0x2A, 0x94, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, + {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, + {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, + {{{-1, 0, -260},0, {469, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, + {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, + {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, + {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, + {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, + {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, + {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, + {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, + {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{15, 260, 0},0, {773, 83},{0x7, 0x7F, 0x0, 0xFF}}}, + {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, + {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, + {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, + {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, + {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, + {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, + {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, + {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{-34, 131, 221},0, {542, 279},{0xEF, 0x42, 0x6B, 0xFF}}}, + {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, + {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, + {{{-1, 0, 261},0, {469, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, + {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, +}; + +Gfx sonic_ball_000_offset_mesh_layer_1_tri_0[] = { + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 4, 7, 0), + gsSP1Triangle(9, 0, 4, 0), + gsSP1Triangle(9, 10, 0, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 7, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 80, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 2, 5, 0), + gsSP1Triangle(7, 0, 2, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 5, 9, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_sonic_ball_sm64_material_012[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, sonic_ball_sonicball_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(sonic_ball_sm64_material_012_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_sonic_ball_metal_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, sonic_ball_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_sonic_ball_metal_v4[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx sonic_ball_000_offset_mesh_layer_1[] = { + gsSPDisplayList(mat_sonic_ball_sm64_material_012), + gsSPDisplayList(sonic_ball_000_offset_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx sonic_ball_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_sonic_ball_metal_v4), + gsSPDisplayList(sonic_ball_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_sonic_ball_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx sonic_ball_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/sonic_ball/sonicball.rgba16.png b/actors/sonic_ball/sonicball.rgba16.png new file mode 100644 index 00000000..34291fc7 Binary files /dev/null and b/actors/sonic_ball/sonicball.rgba16.png differ diff --git a/actors/sonic_trail/geo.inc.c b/actors/sonic_trail/geo.inc.c new file mode 100644 index 00000000..d48108c8 --- /dev/null +++ b/actors/sonic_trail/geo.inc.c @@ -0,0 +1,39 @@ + +// 0x16000B8C +const GeoLayout sonic_trail_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(8, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B500), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B518), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B530), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B548), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B560), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B578), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B590), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B5A8), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_END(), +}; + + +// 0x16000B8C +const GeoLayout super_trail_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(8, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3B0), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3C8), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3E0), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3F8), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B410), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B428), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B440), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B458), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/sonic_trail/model.inc.c b/actors/sonic_trail/model.inc.c new file mode 100644 index 00000000..b62664f3 --- /dev/null +++ b/actors/sonic_trail/model.inc.c @@ -0,0 +1,203 @@ +// Flame + +// 0x030172E0 +static const Vtx sonic_trail_seg3_vertex_030172E0[] = { + {{{ -80, -80, 0}, 0, { 0, 992}, {0x00, 0x00, 0x00, 0x00}}}, + {{{ 80, -80, 0}, 0, { 992, 992}, {0x00, 0x00, 0x00, 0x00}}}, + {{{ 80, 80, 0}, 0, { 992, 0}, {0x00, 0x00, 0x00, 0x00}}}, + {{{ -80, 80, 0}, 0, { 0, 0}, {0x00, 0x00, 0x00, 0x00}}}, +}; + +// 0x03017320 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03017320[] = { +#include "actors/mario/sonic_trail_circle_0.ia16.inc.c" +}; + +// 0x03017B20 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03017B20[] = { +#include "actors/mario/sonic_trail_circle_0.ia16.inc.c" +}; + +// 0x03018320 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03018320[] = { +#include "actors/mario/sonic_trail_circle_1.ia16.inc.c" +}; + +// 0x03018B20 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03018B20[] = { +#include "actors/mario/sonic_trail_circle_2.ia16.inc.c" +}; + +// 0x03019320 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03019320[] = { +#include "actors/mario/sonic_trail_circle_3.ia16.inc.c" +}; + +// 0x03019B20 +ALIGNED8 static const u8 sonic_trail_seg3_texture_03019B20[] = { +#include "actors/mario/sonic_trail_circle_4.ia16.inc.c" +}; + +// 0x0301A320 +ALIGNED8 static const u8 sonic_trail_seg3_texture_0301A320[] = { +#include "actors/mario/sonic_trail_circle_5.ia16.inc.c" +}; + +// 0x0301AB20 +ALIGNED8 static const u8 sonic_trail_seg3_texture_0301AB20[] = { +#include "actors/mario/sonic_trail_circle_6.ia16.inc.c" +}; + +// super_ball +const Gfx sonic_trail_seg3_dl_0301B320[] = { + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsDPSetEnvColor(255, 255, 155, 200), + gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsSPVertex(sonic_trail_seg3_vertex_030172E0, 4, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPEndDisplayList(), +}; + +// 0x0301B3B0 - 0x0301B3C8 +const Gfx sonic_trail_seg3_dl_0301B3B0[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017320), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B3C8 - 0x0301B3E0 +const Gfx sonic_trail_seg3_dl_0301B3C8[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B3E0 - 0x0301B3F8 +const Gfx sonic_trail_seg3_dl_0301B3E0[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018320), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B3F8 - 0x0301B410 +const Gfx sonic_trail_seg3_dl_0301B3F8[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B410 - 0x0301B428 +const Gfx sonic_trail_seg3_dl_0301B410[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019320), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B428 - 0x0301B440 +const Gfx sonic_trail_seg3_dl_0301B428[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B440 - 0x0301B458 +const Gfx sonic_trail_seg3_dl_0301B440[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301A320), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// 0x0301B458 - 0x0301B470 +const Gfx sonic_trail_seg3_dl_0301B458[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301AB20), + gsSPBranchList(sonic_trail_seg3_dl_0301B320), +}; + +// regular ball +const Gfx sonic_trail_seg3_dl_0301B470[] = { + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsDPSetEnvColor(0, 115, 255, 200), + gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsSPVertex(sonic_trail_seg3_vertex_030172E0, 4, 0), + gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPEndDisplayList(), +}; + +// 0x0301B500 - 0x0301B518 +const Gfx sonic_trail_seg3_dl_0301B500[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017320), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B518 - 0x0301B530 +const Gfx sonic_trail_seg3_dl_0301B518[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B530 - 0x0301B548 +const Gfx sonic_trail_seg3_dl_0301B530[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018320), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B548 - 0x0301B560 +const Gfx sonic_trail_seg3_dl_0301B548[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B560 - 0x0301B578 +const Gfx sonic_trail_seg3_dl_0301B560[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019320), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B578 - 0x0301B590 +const Gfx sonic_trail_seg3_dl_0301B578[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019B20), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B590 - 0x0301B5A8 +const Gfx sonic_trail_seg3_dl_0301B590[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301A320), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; + +// 0x0301B5A8 - 0x0301B5C0 +const Gfx sonic_trail_seg3_dl_0301B5A8[] = { + gsDPPipeSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301AB20), + gsSPBranchList(sonic_trail_seg3_dl_0301B470), +}; diff --git a/actors/star/model.inc.c b/actors/star/model.inc.c index b8a6ea9f..b0a4dfce 100644 --- a/actors/star/model.inc.c +++ b/actors/star/model.inc.c @@ -56,7 +56,7 @@ const Gfx star_seg3_dl_0302B870[] = { gsSPSetGeometryMode(G_TEXTURE_GEN), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), //! Dimensions loaded as 32x64 despite this texture having only 32x32 dimensions, harmless due to environment mapping (G_TEXTURE_GEN & gsSPTexture values) + gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), gsSPDisplayList(star_seg3_dl_0302B7B0), gsDPPipeSync(), diff --git a/actors/star/model.inc.c.rej b/actors/star/model.inc.c.rej new file mode 100644 index 00000000..f970b7c7 --- /dev/null +++ b/actors/star/model.inc.c.rej @@ -0,0 +1,10 @@ +diff a/actors/star/model.inc.c b/actors/star/model.inc.c (rejected hunks) +@@ -56,7 +56,7 @@ const Gfx star_seg3_dl_0302B870[] = { + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), //! Dimensions loaded as 32x64 despite this texture having only 32x32 dimensions, harmless due to environment mapping (G_TEXTURE_GEN & gsSPTexture values) ++ gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), + gsSPDisplayList(star_seg3_dl_0302B7B0), + gsDPPipeSync(), diff --git a/actors/super_ball/geo.inc.c b/actors/super_ball/geo.inc.c new file mode 100644 index 00000000..9ca0d187 --- /dev/null +++ b/actors/super_ball/geo.inc.c @@ -0,0 +1,92 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout super_ball_002_switch_opt0_001_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_ball_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_ball_002_switch_opt0_001_switch_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_ball_002_switch_opt0_001_switch_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_ball_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(1, 180, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mirror_mario_backface_culling), + GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_ball_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt1), + GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt2), + GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ASM(1, geo_mirror_mario_backface_culling), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_ball_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_ball_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/super_ball/geo_header.h b/actors/super_ball/geo_header.h new file mode 100644 index 00000000..961b9cc1 --- /dev/null +++ b/actors/super_ball/geo_header.h @@ -0,0 +1,15 @@ +extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout super_ball_geo[]; +extern u8 super_ball_sonic_super_surface_rgba16[]; +extern u8 super_ball_metal_rgba16[]; +extern Vtx super_ball_000_offset_mesh_layer_1_vtx_0[90]; +extern Gfx super_ball_000_offset_mesh_layer_1_tri_0[]; +extern Gfx mat_super_ball_super_ball_texture[]; +extern Gfx mat_revert_super_ball_super_ball_texture[]; +extern Gfx mat_super_ball_metal_v4_001[]; +extern Gfx mat_revert_super_ball_metal_v4_001[]; +extern Gfx super_ball_000_offset_mesh_layer_1[]; +extern Gfx super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0[]; +extern Gfx super_ball_material_revert_render_settings[]; diff --git a/actors/super_ball/metal.rgba16.png b/actors/super_ball/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/super_ball/metal.rgba16.png differ diff --git a/actors/super_ball/model.inc.c b/actors/super_ball/model.inc.c new file mode 100644 index 00000000..406f8794 --- /dev/null +++ b/actors/super_ball/model.inc.c @@ -0,0 +1,263 @@ +Gfx super_ball_sonic_super_surface_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_ball_sonic_super_surface_rgba16[] = { + #include "actors/super_ball/sonic_super_surface.rgba16.inc.c" +}; + +Gfx super_ball_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_ball_metal_rgba16[] = { + #include "actors/super_ball/metal.rgba16.inc.c" +}; + +Vtx super_ball_000_offset_mesh_layer_1_vtx_0[90] = { + {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, + {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, + {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, + {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, + {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, + {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, + {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, + {{{15, 260, 0},0, {773, 82},{0x7, 0x7F, 0x0, 0xFF}}}, + {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, + {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, + {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, + {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, + {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, + {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, + {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, + {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, + {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, + {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, + {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, + {{{-105, 85, -221},0, {399, 278},{0xCB, 0x2A, 0x94, 0xFF}}}, + {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, + {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, + {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, + {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, + {{{-1, 0, -260},0, {469, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, + {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, + {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, + {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, + {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, + {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, + {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, + {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, + {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, + {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, + {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{15, 260, 0},0, {773, 83},{0x7, 0x7F, 0x0, 0xFF}}}, + {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, + {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, + {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, + {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, + {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, + {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, + {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, + {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, + {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, + {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, + {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, + {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, + {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, + {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, + {{{-34, 131, 221},0, {542, 279},{0xEF, 0x42, 0x6B, 0xFF}}}, + {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, + {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, + {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, + {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, + {{{-1, 0, 261},0, {469, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, + {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, +}; + +Gfx super_ball_000_offset_mesh_layer_1_tri_0[] = { + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 4, 7, 0), + gsSP1Triangle(9, 0, 4, 0), + gsSP1Triangle(9, 10, 0, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 7, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 80, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 2, 5, 0), + gsSP1Triangle(7, 0, 2, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 5, 9, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_super_ball_super_ball_texture[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_ball_sonic_super_surface_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_ball_super_ball_texture[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_super_ball_metal_v4_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_ball_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_ball_metal_v4_001[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx super_ball_000_offset_mesh_layer_1[] = { + gsSPDisplayList(mat_super_ball_super_ball_texture), + gsSPDisplayList(super_ball_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_ball_super_ball_texture), + gsSPEndDisplayList(), +}; + +Gfx super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0[] = { + gsSPDisplayList(mat_super_ball_metal_v4_001), + gsSPDisplayList(super_ball_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_ball_metal_v4_001), + gsSPEndDisplayList(), +}; + +Gfx super_ball_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/super_ball/sonic_super_surface.rgba16.png b/actors/super_ball/sonic_super_surface.rgba16.png new file mode 100644 index 00000000..6d09216c Binary files /dev/null and b/actors/super_ball/sonic_super_surface.rgba16.png differ diff --git a/actors/super_sonic/geo.inc.c b/actors/super_sonic/geo.inc.c new file mode 100644 index 00000000..42fbc6aa --- /dev/null +++ b/actors/super_sonic/geo.inc.c @@ -0,0 +1,889 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout super_sonic_right_hand_open_armature_001[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_left_hand_open_armature_002[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_left_hand_peace_armature_005[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_001_skinned_mesh_layer_1), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_004_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_003_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_007_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_004_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_009_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_010_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_002_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_012_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_013_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_005_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_001_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), + GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout super_sonic_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SHADOW(1, 180, 100), + GEO_OPEN_NODE(), + GEO_SCALE(LAYER_FORCE, 16384), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mirror_mario_backface_culling), + GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_001_skinned_mesh_layer_1), + GEO_ASM(0, geo_move_mario_part_from_parent), + GEO_ASM(0, geo_mario_tilt_torso), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_head_rotation), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_004_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(1, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_003_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_right_hand_open_armature_001), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_007_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_hand), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_hand_foot_scaler), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_004_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_left_hand_open_armature_002), + GEO_BRANCH(1, super_sonic_left_hand_peace_armature_005), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_009_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_010_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), + GEO_OPEN_NODE(), + GEO_ASM(1, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_002_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_012_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_013_skinned_mesh_layer_1), + GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1), + GEO_OPEN_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_OPEN_NODE(), + GEO_ASM(2, geo_mario_hand_foot_scaler), + GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_CLOSE_NODE(), + GEO_SCALE(LAYER_FORCE, 65536), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_005_mesh_layer_1), + GEO_CLOSE_NODE(), + GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), + GEO_OPEN_NODE(), + GEO_ASM(0, geo_mario_rotate_wing_cap_wings), + GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_001_mesh_layer_4), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2), + GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ASM(1, geo_mirror_mario_backface_culling), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/actors/super_sonic/geo_header.h b/actors/super_sonic/geo_header.h new file mode 100644 index 00000000..fdd79787 --- /dev/null +++ b/actors/super_sonic/geo_header.h @@ -0,0 +1,254 @@ +extern const GeoLayout super_sonic_right_hand_open_armature_001[]; +extern const GeoLayout super_sonic_left_hand_open_armature_002[]; +extern const GeoLayout super_sonic_left_hand_peace_armature_005[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +extern const GeoLayout super_sonic_geo[]; +extern Lights1 super_sonic_sonic_skin_lights; +extern Lights1 super_sonic_black_material_f3d_001_v4_lights; +extern Lights1 super_sonic_sonic_mouth_none_lights; +extern Lights1 super_sonic_super_eye_texture_lights; +extern Lights1 super_sonic_sonic_mouth_lights; +extern Lights1 super_sonic_super_eye_half_lights; +extern Lights1 super_sonic_sonic_eye_closed_lights; +extern Lights1 super_sonic_sonic_eye_dead_001_lights; +extern Lights1 super_sonic_gloves_001_v4_001_lights; +extern Lights1 super_sonic_gloves_v4_001_lights; +extern Lights1 super_sonic_sonic_t128_lights; +extern Lights1 super_sonic_white_material_f3d_v4_lights; +extern Lights1 super_sonic_sonic_buckle_lights; +extern Lights1 super_sonic_sonic_shoe_lights; +extern Lights1 super_sonic_sonic_white_lights; +extern u8 super_sonic_sonic_super_surface_rgba16[]; +extern u8 super_sonic_metal_rgba16[]; +extern u8 super_sonic_super_eye_rgba16[]; +extern u8 super_sonic_sonic_super_surface_replacer_rgba16[]; +extern u8 super_sonic_sonic_mouth_rgba16[]; +extern u8 super_sonic_super_eye_half_rgba16[]; +extern u8 super_sonic_soniceyenew_closed_rgba16[]; +extern u8 super_sonic_soniceyenew_dead_rgba16[]; +extern u8 super_sonic_sonic_new2_rgba16_rgba16[]; +extern u8 super_sonic_wing_2_rgba16[]; +extern u8 super_sonic_wing1_rgba16[]; +extern Vtx super_sonic_000_offset_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_mesh_layer_1_vtx_1[24]; +extern Gfx super_sonic_000_offset_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0[11]; +extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1[3]; +extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_0[16]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_1[6]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_2[100]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_3[14]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_0[13]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_1[99]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_2[11]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_3[31]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_4[446]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_4[]; +extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_5[3]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_5[]; +extern Vtx super_sonic_000_offset_003_mesh_layer_1_vtx_0[31]; +extern Gfx super_sonic_000_offset_003_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_004_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_1[12]; +extern Gfx super_sonic_000_offset_004_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_displaylist_003_mesh_layer_1_vtx_0[44]; +extern Gfx super_sonic_000_displaylist_003_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_006_mesh_layer_1_vtx_0[40]; +extern Gfx super_sonic_000_offset_006_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_007_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_1[12]; +extern Gfx super_sonic_000_offset_007_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_displaylist_004_mesh_layer_1_vtx_0[43]; +extern Gfx super_sonic_000_displaylist_004_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0[11]; +extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_0[8]; +extern Gfx super_sonic_000_offset_009_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_1[13]; +extern Gfx super_sonic_000_offset_009_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_1[9]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_2[41]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_3[16]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_0[61]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_1[16]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_2[56]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_3[12]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_0[]; +extern Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_1[]; +extern Vtx super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0[11]; +extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_0[8]; +extern Gfx super_sonic_000_offset_012_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_1[13]; +extern Gfx super_sonic_000_offset_012_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_0[6]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_1[9]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_2[41]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_3[16]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_0[55]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_0[]; +extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_1[46]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_1[]; +extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_2[12]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_2[]; +extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_3[16]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_3[]; +extern Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_0[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_0[]; +extern Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_1[4]; +extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_1[]; +extern Gfx mat_super_sonic_sonic_skin[]; +extern Gfx mat_super_sonic_sonic_super_surface[]; +extern Gfx mat_revert_super_sonic_sonic_super_surface[]; +extern Gfx mat_super_sonic_metal_v4[]; +extern Gfx mat_revert_super_sonic_metal_v4[]; +extern Gfx mat_super_sonic_black_material_f3d_001_v4[]; +extern Gfx mat_super_sonic_sonic_mouth_none[]; +extern Gfx mat_super_sonic_super_eye_texture[]; +extern Gfx mat_super_sonic_super_surface_replacer[]; +extern Gfx mat_revert_super_sonic_super_surface_replacer[]; +extern Gfx mat_super_sonic_sonic_mouth[]; +extern Gfx mat_super_sonic_super_eye_half[]; +extern Gfx mat_super_sonic_sonic_eye_closed[]; +extern Gfx mat_super_sonic_sonic_eye_dead_001[]; +extern Gfx mat_super_sonic_gloves_001_v4_001[]; +extern Gfx mat_super_sonic_gloves_v4_001[]; +extern Gfx mat_super_sonic_sonic_t128[]; +extern Gfx mat_super_sonic_white_material_f3d_v4[]; +extern Gfx mat_super_sonic_sonic_buckle[]; +extern Gfx mat_super_sonic_sonic_shoe[]; +extern Gfx mat_super_sonic_sonic_white[]; +extern Gfx mat_super_sonic_wing_2_001_v4_001[]; +extern Gfx mat_revert_super_sonic_wing_2_001_v4_001[]; +extern Gfx mat_super_sonic_wing_1_001_v4_001[]; +extern Gfx mat_revert_super_sonic_wing_1_001_v4_001[]; +extern Gfx super_sonic_000_offset_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5[]; +extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6[]; +extern Gfx super_sonic_000_offset_003_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_004_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_003_mesh_layer_1[]; +extern Gfx super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1[]; +extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_006_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_007_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_004_mesh_layer_1[]; +extern Gfx super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1[]; +extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1[]; +extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_009_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_002_mesh_layer_4[]; +extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_012_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1[]; +extern Gfx super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1[]; +extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[]; +extern Gfx super_sonic_000_displaylist_001_mesh_layer_4[]; +extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[]; +extern Gfx super_sonic_material_revert_render_settings[]; diff --git a/actors/super_sonic/metal.rgba16.png b/actors/super_sonic/metal.rgba16.png new file mode 100644 index 00000000..3b2ac00b Binary files /dev/null and b/actors/super_sonic/metal.rgba16.png differ diff --git a/actors/super_sonic/model.inc.c b/actors/super_sonic/model.inc.c new file mode 100644 index 00000000..59c669cd --- /dev/null +++ b/actors/super_sonic/model.inc.c @@ -0,0 +1,4777 @@ +Lights1 super_sonic_sonic_skin_lights = gdSPDefLights1( + 0x73, 0x5D, 0x36, + 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +Lights1 super_sonic_black_material_f3d_001_v4_lights = gdSPDefLights1( + 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_mouth_none_lights = gdSPDefLights1( + 0x73, 0x5D, 0x36, + 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +Lights1 super_sonic_super_eye_texture_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_mouth_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_super_eye_half_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_eye_closed_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_eye_dead_001_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_gloves_001_v4_001_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_gloves_v4_001_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_t128_lights = gdSPDefLights1( + 0x7F, 0x7F, 0x7F, + 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +Lights1 super_sonic_white_material_f3d_v4_lights = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_buckle_lights = gdSPDefLights1( + 0x7F, 0x79, 0x0, + 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_shoe_lights = gdSPDefLights1( + 0x7F, 0x0, 0x1, + 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); + +Lights1 super_sonic_sonic_white_lights = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); + +Gfx super_sonic_sonic_super_surface_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_sonic_super_surface_rgba16[] = { + #include "actors/super_sonic/sonic_super_surface.rgba16.inc.c" +}; + +Gfx super_sonic_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_metal_rgba16[] = { + #include "actors/super_sonic/metal.rgba16.inc.c" +}; + +Gfx super_sonic_super_eye_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_super_eye_rgba16[] = { + #include "actors/super_sonic/super_eye.rgba16.inc.c" +}; + +Gfx super_sonic_sonic_super_surface_replacer_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_sonic_super_surface_replacer_rgba16[] = { + #include "actors/super_sonic/sonic_super_surface_replacer.rgba16.inc.c" +}; + +Gfx super_sonic_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_sonic_mouth_rgba16[] = { + #include "actors/super_sonic/sonic_mouth.rgba16.inc.c" +}; + +Gfx super_sonic_super_eye_half_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_super_eye_half_rgba16[] = { + #include "actors/super_sonic/super_eye_half.rgba16.inc.c" +}; + +Gfx super_sonic_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_soniceyenew_closed_rgba16[] = { + #include "actors/super_sonic/soniceyenew_closed.rgba16.inc.c" +}; + +Gfx super_sonic_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_soniceyenew_dead_rgba16[] = { + #include "actors/super_sonic/soniceyenew_dead.rgba16.inc.c" +}; + +Gfx super_sonic_sonic_new2_rgba16_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_sonic_new2_rgba16_rgba16[] = { + #include "actors/super_sonic/sonic_new2_rgba16.rgba16.inc.c" +}; + +Gfx super_sonic_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_wing_2_rgba16[] = { + #include "actors/super_sonic/wing_2.rgba16.inc.c" +}; + +Gfx super_sonic_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 super_sonic_wing1_rgba16[] = { + #include "actors/super_sonic/wing1.rgba16.inc.c" +}; + +Vtx super_sonic_000_offset_mesh_layer_1_vtx_0[6] = { + {{{52, 30, 26},0, {-16, -16},{0xB9, 0x64, 0x20, 0xFF}}}, + {{{53, 33, 0},0, {-16, -16},{0xCC, 0x74, 0x0, 0xFF}}}, + {{{45, 28, 13},0, {-16, -16},{0xAC, 0x5C, 0x19, 0xFF}}}, + {{{43, 27, 0},0, {-16, -16},{0xAA, 0x5E, 0x0, 0xFF}}}, + {{{45, 28, -13},0, {-16, -16},{0xAC, 0x5C, 0xE7, 0xFF}}}, + {{{52, 30, -26},0, {-16, -16},{0xB9, 0x64, 0xDF, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_mesh_layer_1_vtx_1[24] = { + {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, + {{{45, 28, 13},0, {13, 22},{0xAC, 0x5C, 0x19, 0xFF}}}, + {{{43, 27, 0},0, {16, 22},{0xAA, 0x5E, 0x0, 0xFF}}}, + {{{45, 28, -13},0, {18, 22},{0xAC, 0x5C, 0xE7, 0xFF}}}, + {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{35, -33, 13},0, {13, 28},{0x10, 0xB3, 0x64, 0xFF}}}, + {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, + {{{27, -57, 0},0, {16, 30},{0x68, 0xB8, 0xF5, 0xFF}}}, + {{{18, -51, 12},0, {14, 30},{0xD3, 0xD6, 0x6F, 0xFF}}}, + {{{21, -77, 0},0, {16, 32},{0x79, 0xE3, 0xE7, 0xFF}}}, + {{{17, -76, 4},0, {15, 32},{0xEC, 0xE3, 0x7A, 0xFF}}}, + {{{15, -74, 0},0, {16, 32},{0x93, 0xFE, 0x42, 0xFF}}}, + {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, + {{{11, -51, -12},0, {18, 30},{0xAA, 0xDE, 0xA9, 0xFF}}}, + {{{11, -76, -4},0, {16, 32},{0x94, 0xDF, 0xC6, 0xFF}}}, + {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, + {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, + {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, + {{{11, -76, -4},0, {16, 32},{0x94, 0xDF, 0xC6, 0xFF}}}, + {{{21, -77, 0},0, {16, 32},{0x79, 0xE3, 0xE7, 0xFF}}}, + {{{19, -108, 0},0, {16, 36},{0x7, 0x81, 0x0, 0xFF}}}, + {{{17, -76, 4},0, {15, 32},{0xEC, 0xE3, 0x7A, 0xFF}}}, + {{{15, -74, 0},0, {16, 32},{0x93, 0xFE, 0x42, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 9, 0), + gsSP1Triangle(13, 7, 9, 0), + gsSP1Triangle(15, 7, 13, 0), + gsSP1Triangle(15, 6, 7, 0), + gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_1 + 16, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { + {{{52, -3, 54},0, {7, 25},{0xDC, 0xEB, 0x78, 0xFF}}}, + {{{50, 16, 51},0, {7, 23},{0xC8, 0x47, 0x59, 0xFF}}}, + {{{56, -27, 45},0, {8, 27},{0xC2, 0xA4, 0x3F, 0xFF}}}, + {{{52, 30, 26},0, {11, 22},{0xB9, 0x64, 0x20, 0xFF}}}, + {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, + {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{56, -27, -45},0, {23, 27},{0xC2, 0xA4, 0xC1, 0xFF}}}, + {{{52, 30, -26},0, {20, 22},{0xB9, 0x64, 0xDF, 0xFF}}}, + {{{50, 16, -51},0, {24, 23},{0xC8, 0x47, 0xA7, 0xFF}}}, + {{{52, -3, -54},0, {25, 25},{0xDC, 0xEB, 0x88, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1[3] = { + {{{52, 30, 26},0, {-16, -16},{0xB9, 0x64, 0x20, 0xFF}}}, + {{{52, 30, -26},0, {-16, -16},{0xB9, 0x64, 0xDF, 0xFF}}}, + {{{53, 33, 0},0, {-16, -16},{0xCC, 0x74, 0x0, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 3, 11), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_0[16] = { + {{{10, 35, 40},0, {9, 21},{0xE0, 0x65, 0x47, 0xFF}}}, + {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, + {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, + {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, + {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, + {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, + {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, + {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, + {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, + {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, + {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, + {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, + {{{10, 35, -40},0, {22, 21},{0xE0, 0x65, 0xB9, 0xFF}}}, + {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 0, 2, 14), + gsSP1Triangle(3, 1, 14, 0), + gsSP1Triangle(1, 15, 14, 0), + gsSP1Triangle(15, 1, 0, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 2, 2, 14), + gsSP1Triangle(0, 14, 15, 0), + gsSP1Triangle(14, 0, 2, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 4, 2, 14), + gsSP1Triangle(14, 15, 2, 0), + gsSP1Triangle(4, 14, 2, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 6, 2, 14), + gsSP1Triangle(4, 14, 15, 0), + gsSP1Triangle(14, 4, 5, 0), + gsSP1Triangle(14, 5, 6, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 8, 2, 14), + gsSP1Triangle(6, 14, 15, 0), + gsSP1Triangle(6, 7, 14, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 10, 2, 14), + gsSP1Triangle(14, 7, 15, 0), + gsSP1Triangle(15, 7, 10, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 12, 2, 14), + gsSP1Triangle(10, 14, 15, 0), + gsSP1Triangle(14, 10, 9, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 14, 2, 14), + gsSP1Triangle(9, 14, 15, 0), + gsSP1Triangle(8, 14, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_1[6] = { + {{{10, 35, 40},0, {-16, -16},{0xE0, 0x65, 0x47, 0xFF}}}, + {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, + {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, + {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, + {{{10, 35, -40},0, {-16, -16},{0xE0, 0x65, 0xB9, 0xFF}}}, + {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 0, 2, 14), + gsSP1Triangle(14, 15, 11, 0), + gsSP1Triangle(13, 11, 15, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 2, 2, 14), + gsSP1Triangle(14, 13, 15, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 4, 2, 14), + gsSP1Triangle(14, 12, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_2[100] = { + {{{10, 35, 40},0, {9, 21},{0xE0, 0x65, 0x47, 0xFF}}}, + {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, + {{{43, 37, 48},0, {8, 21},{0x1, 0x5B, 0x58, 0xFF}}}, + {{{45, -5, 70},0, {4, 25},{0x1, 0x24, 0x7A, 0xFF}}}, + {{{42, -30, 72},0, {4, 28},{0xF2, 0x6, 0x7E, 0xFF}}}, + {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, + {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, + {{{2, -68, 51},0, {7, 32},{0x8B, 0x2D, 0x17, 0xFF}}}, + {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, + {{{17, -76, 16},0, {13, 32},{0xC3, 0xC8, 0x9F, 0xFF}}}, + {{{44, -48, 0},0, {16, 29},{0xCC, 0x8C, 0x0, 0xFF}}}, + {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, + {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, + {{{17, -76, -16},0, {18, 32},{0xC3, 0xC8, 0x61, 0xFF}}}, + {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, + {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, + {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, + {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, + {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, + {{{42, -30, -72},0, {28, 28},{0xF2, 0x6, 0x82, 0xFF}}}, + {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, + {{{45, -5, -70},0, {27, 25},{0x1, 0x24, 0x86, 0xFF}}}, + {{{43, 37, -48},0, {24, 21},{0x1, 0x5B, 0xA8, 0xFF}}}, + {{{10, 35, -40},0, {22, 21},{0xE0, 0x65, 0xB9, 0xFF}}}, + {{{64, 35, -43},0, {23, 21},{0x37, 0x5B, 0xBA, 0xFF}}}, + {{{74, -5, -65},0, {26, 25},{0x3E, 0x20, 0x96, 0xFF}}}, + {{{87, 4, -47},0, {23, 24},{0x6D, 0x1E, 0xC7, 0xFF}}}, + {{{83, 29, -18},0, {19, 22},{0x62, 0x4D, 0xE7, 0xFF}}}, + {{{99, -1, 0},0, {16, 25},{0x7F, 0x7, 0x0, 0xFF}}}, + {{{86, 27, 0},0, {16, 22},{0x68, 0x49, 0x0, 0xFF}}}, + {{{83, 29, 18},0, {13, 22},{0x62, 0x4D, 0x19, 0xFF}}}, + {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{83, 29, 18},0, {13, 22},{0x62, 0x4D, 0x19, 0xFF}}}, + {{{64, 35, 43},0, {8, 21},{0x37, 0x5B, 0x46, 0xFF}}}, + {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{74, -5, 65},0, {5, 25},{0x3E, 0x20, 0x6A, 0xFF}}}, + {{{45, -5, 70},0, {4, 25},{0x1, 0x24, 0x7A, 0xFF}}}, + {{{43, 37, 48},0, {8, 21},{0x1, 0x5B, 0x58, 0xFF}}}, + {{{73, -32, 68},0, {4, 28},{0x50, 0xEB, 0x61, 0xFF}}}, + {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, + {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, + {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, + {{{42, -30, 72},0, {4, 28},{0xF2, 0x6, 0x7E, 0xFF}}}, + {{{1, -117, 65},0, {5, 36},{0x2C, 0x89, 0x2, 0xFF}}}, + {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, + {{{-36, -122, 83},0, {2, 37},{0x9C, 0xCE, 0x3C, 0xFF}}}, + {{{-9, -108, 79},0, {3, 36},{0xB, 0x7, 0x7E, 0xFF}}}, + {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, + {{{2, -68, 51},0, {7, 32},{0x8B, 0x2D, 0x17, 0xFF}}}, + {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, + {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, + {{{17, -76, 16},0, {13, 32},{0xC3, 0xC8, 0x9F, 0xFF}}}, + {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, + {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, + {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, + {{{44, -48, 0},0, {16, 29},{0xCC, 0x8C, 0x0, 0xFF}}}, + {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{61, -74, -10},0, {17, 32},{0x30, 0xA8, 0x4E, 0xFF}}}, + {{{17, -76, -16},0, {18, 32},{0xC3, 0xC8, 0x61, 0xFF}}}, + {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, + {{{-11, -109, -55},0, {25, 36},{0xC6, 0xC0, 0x5D, 0xFF}}}, + {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, + {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, + {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, + {{{-9, -108, -79},0, {29, 36},{0xB, 0x7, 0x82, 0xFF}}}, + {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, + {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, + {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, + {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, + {{{73, -32, -68},0, {27, 28},{0x50, 0xEB, 0x9F, 0xFF}}}, + {{{42, -30, -72},0, {28, 28},{0xF2, 0x6, 0x82, 0xFF}}}, + {{{45, -5, -70},0, {27, 25},{0x1, 0x24, 0x86, 0xFF}}}, + {{{74, -5, -65},0, {26, 25},{0x3E, 0x20, 0x96, 0xFF}}}, + {{{87, 4, -47},0, {23, 24},{0x6D, 0x1E, 0xC7, 0xFF}}}, + {{{88, -41, -21},0, {19, 29},{0x74, 0xCC, 0xFD, 0xFF}}}, + {{{99, -1, 0},0, {16, 25},{0x7F, 0x7, 0x0, 0xFF}}}, + {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, + {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, + {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, + {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, + {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, + {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, + {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, + {{{-36, -122, 83},0, {2, 37},{0x9C, 0xCE, 0x3C, 0xFF}}}, + {{{-9, -108, 79},0, {3, 36},{0xB, 0x7, 0x7E, 0xFF}}}, + {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, + {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, + {{{61, -74, -10},0, {17, 32},{0x30, 0xA8, 0x4E, 0xFF}}}, + {{{88, -41, -21},0, {19, 29},{0x74, 0xCC, 0xFD, 0xFF}}}, + {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, + {{{73, -32, -68},0, {27, 28},{0x50, 0xEB, 0x9F, 0xFF}}}, + {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, + {{{-11, -109, -55},0, {25, 36},{0xC6, 0xC0, 0x5D, 0xFF}}}, + {{{-36, -122, -83},0, {30, 37},{0x9C, 0xCE, 0xC4, 0xFF}}}, + {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, + {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, + {{{-9, -108, -79},0, {29, 36},{0xB, 0x7, 0x82, 0xFF}}}, + {{{-36, -122, -83},0, {30, 37},{0x9C, 0xCE, 0xC4, 0xFF}}}, + {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(8, 5, 6, 0), + gsSP1Triangle(5, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 3, 4, 0), + gsSP1Triangle(6, 2, 3, 0), + gsSP1Triangle(7, 2, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(10, 6, 4, 0), + gsSP1Triangle(11, 8, 9, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(11, 9, 14, 0), + gsSP1Triangle(14, 9, 15, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 5, 2, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(5, 8, 9, 0), + gsSP1Triangle(10, 5, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(12, 13, 15, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 4, 3, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 96, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_3[14] = { + {{{64, 35, 43},0, {-16, -16},{0x37, 0x5B, 0x46, 0xFF}}}, + {{{83, 29, 18},0, {-16, -16},{0x62, 0x4D, 0x19, 0xFF}}}, + {{{86, 27, 0},0, {-16, -16},{0x68, 0x49, 0x0, 0xFF}}}, + {{{42, 51, 0},0, {-16, -16},{0xFB, 0x7F, 0x0, 0xFF}}}, + {{{64, 35, -43},0, {-16, -16},{0x37, 0x5B, 0xBA, 0xFF}}}, + {{{83, 29, -18},0, {-16, -16},{0x62, 0x4D, 0xE7, 0xFF}}}, + {{{43, 47, -28},0, {-16, -16},{0x2, 0x7A, 0xDD, 0xFF}}}, + {{{43, 37, -48},0, {-16, -16},{0x1, 0x5B, 0xA8, 0xFF}}}, + {{{10, 35, -40},0, {-16, -16},{0xE0, 0x65, 0xB9, 0xFF}}}, + {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, + {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, + {{{43, 47, 28},0, {-16, -16},{0x2, 0x7A, 0x23, 0xFF}}}, + {{{10, 35, 40},0, {-16, -16},{0xE0, 0x65, 0x47, 0xFF}}}, + {{{43, 37, 48},0, {-16, -16},{0x1, 0x5B, 0x58, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_3 + 0, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(4, 6, 3, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(3, 6, 9, 0), + gsSP1Triangle(10, 3, 9, 0), + gsSP1Triangle(10, 11, 3, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(11, 13, 0, 0), + gsSP1Triangle(3, 11, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_0[13] = { + {{{55, 137, -6},0, {-16, -16},{0x12, 0x48, 0x67, 0xFF}}}, + {{{42, 129, -11},0, {-16, -16},{0x8A, 0x2F, 0xFC, 0xFF}}}, + {{{51, 122, -2},0, {-16, -16},{0x9, 0x5, 0x7F, 0xFF}}}, + {{{50, 138, -12},0, {-16, -16},{0xAE, 0x61, 0xF8, 0xFF}}}, + {{{57, 140, -12},0, {-16, -16},{0x1C, 0x7B, 0xF6, 0xFF}}}, + {{{61, 136, -12},0, {-16, -16},{0x79, 0x27, 0xFD, 0xFF}}}, + {{{60, 127, -11},0, {-16, -16},{0x7D, 0xEA, 0x1, 0xFF}}}, + {{{56, 114, -10},0, {-16, -16},{0x7C, 0xE5, 0x2, 0xFF}}}, + {{{52, 89, -8},0, {-16, -16},{0x39, 0x8F, 0x9, 0xFF}}}, + {{{43, 90, -8},0, {-16, -16},{0xB2, 0x9C, 0x8, 0xFF}}}, + {{{40, 116, -10},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, + {{{51, 121, -19},0, {-16, -16},{0x9, 0xEF, 0x82, 0xFF}}}, + {{{55, 136, -18},0, {-16, -16},{0x12, 0x35, 0x8E, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_0 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(0, 2, 6, 0), + gsSP1Triangle(7, 6, 2, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(2, 9, 8, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(1, 10, 2, 0), + gsSP1Triangle(1, 11, 10, 0), + gsSP1Triangle(12, 11, 1, 0), + gsSP1Triangle(1, 3, 12, 0), + gsSP1Triangle(12, 3, 4, 0), + gsSP1Triangle(4, 5, 12, 0), + gsSP1Triangle(5, 6, 12, 0), + gsSP1Triangle(12, 6, 11, 0), + gsSP1Triangle(7, 11, 6, 0), + gsSP1Triangle(8, 11, 7, 0), + gsSP1Triangle(11, 8, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_1[99] = { + {{{195, 16, -103},0, {406, 585},{0xC8, 0x6E, 0xE0, 0xFF}}}, + {{{158, 2, -93},0, {406, 585},{0xF3, 0x60, 0xAE, 0xFF}}}, + {{{180, 14, -73},0, {406, 585},{0xE6, 0x5E, 0xAE, 0xFF}}}, + {{{190, 41, -58},0, {407, 583},{0x9, 0x62, 0xAF, 0xFF}}}, + {{{206, 38, -76},0, {407, 583},{0xC1, 0x5C, 0xC2, 0xFF}}}, + {{{180, 14, -73},0, {407, 583},{0xE6, 0x5E, 0xAE, 0xFF}}}, + {{{180, 14, -73},0, {410, 586},{0xE6, 0x5E, 0xAE, 0xFF}}}, + {{{231, 35, -109},0, {410, 586},{0xC2, 0x64, 0xD0, 0xFF}}}, + {{{195, 16, -103},0, {410, 586},{0xC8, 0x6E, 0xE0, 0xFF}}}, + {{{206, 38, -76},0, {410, 586},{0xC1, 0x5C, 0xC2, 0xFF}}}, + {{{36, 23, -73},0, {409, 585},{0xBB, 0x15, 0x97, 0xFF}}}, + {{{46, 14, -76},0, {409, 585},{0xCE, 0x13, 0x8D, 0xFF}}}, + {{{23, 0, -55},0, {409, 585},{0x98, 0x0, 0xB7, 0xFF}}}, + {{{46, 48, -65},0, {409, 585},{0xF7, 0x48, 0x98, 0xFF}}}, + {{{57, 36, -72},0, {409, 585},{0xF4, 0x46, 0x96, 0xFF}}}, + {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, + {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, + {{{46, 48, -65},0, {409, 585},{0xF7, 0x48, 0x98, 0xFF}}}, + {{{43, 64, -48},0, {409, 585},{0x3D, 0x56, 0xB9, 0xFF}}}, + {{{35, 64, -47},0, {409, 585},{0xCD, 0x4F, 0xAB, 0xFF}}}, + {{{41, 79, -33},0, {409, 585},{0xE9, 0x66, 0xB8, 0xFF}}}, + {{{27, 68, -34},0, {409, 585},{0xA1, 0x41, 0xCB, 0xFF}}}, + {{{28, 76, -19},0, {409, 585},{0xA3, 0x52, 0xE6, 0xFF}}}, + {{{17, 57, -19},0, {409, 585},{0x8C, 0x2E, 0xE6, 0xFF}}}, + {{{14, 54, -5},0, {409, 585},{0x8A, 0x2F, 0xFC, 0xFF}}}, + {{{10, 27, -22},0, {409, 585},{0x84, 0x11, 0xE9, 0xFF}}}, + {{{7, 21, -2},0, {409, 585},{0x81, 0x4, 0x0, 0xFF}}}, + {{{12, 2, -29},0, {409, 585},{0x85, 0x5, 0xDF, 0xFF}}}, + {{{8, 6, -1},0, {409, 585},{0x81, 0xFD, 0x0, 0xFF}}}, + {{{12, 7, 28},0, {409, 585},{0x86, 0xB, 0x20, 0xFF}}}, + {{{10, 30, 17},0, {409, 585},{0x84, 0x15, 0x14, 0xFF}}}, + {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, + {{{12, 7, 28},0, {409, 585},{0x86, 0xB, 0x20, 0xFF}}}, + {{{23, 9, 54},0, {409, 585},{0x98, 0xC, 0x48, 0xFF}}}, + {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, + {{{25, 46, 46},0, {409, 585},{0x9C, 0x2E, 0x3F, 0xFF}}}, + {{{36, 35, 68},0, {409, 585},{0xBB, 0x27, 0x63, 0xFF}}}, + {{{46, 27, 72},0, {409, 585},{0xCE, 0x26, 0x6E, 0xFF}}}, + {{{46, 59, 56},0, {409, 585},{0xFD, 0x5C, 0x58, 0xFF}}}, + {{{57, 48, 65},0, {409, 585},{0xF4, 0x57, 0x5B, 0xFF}}}, + {{{53, 57, 54},0, {409, 585},{0x5E, 0x4E, 0x22, 0xFF}}}, + {{{43, 71, 36},0, {409, 585},{0x55, 0x57, 0x25, 0xFF}}}, + {{{44, 67, 28},0, {409, 585},{0x7C, 0x19, 0xE, 0xFF}}}, + {{{45, 82, 20},0, {409, 585},{0x5F, 0x3F, 0x38, 0xFF}}}, + {{{57, 83, -7},0, {409, 585},{0x75, 0x31, 0xFC, 0xFF}}}, + {{{51, 90, 0},0, {409, 585},{0x34, 0x70, 0x1C, 0xFF}}}, + {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, + {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, + {{{57, 83, -7},0, {409, 585},{0x75, 0x31, 0xFC, 0xFF}}}, + {{{45, 78, -34},0, {409, 585},{0x60, 0x34, 0xBE, 0xFF}}}, + {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, + {{{44, 61, -39},0, {409, 585},{0x7C, 0x16, 0xEE, 0xFF}}}, + {{{43, 64, -48},0, {409, 585},{0x3D, 0x56, 0xB9, 0xFF}}}, + {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, + {{{41, 79, -33},0, {409, 585},{0xE9, 0x66, 0xB8, 0xFF}}}, + {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, + {{{28, 76, -19},0, {409, 585},{0xA3, 0x52, 0xE6, 0xFF}}}, + {{{28, 78, -7},0, {409, 585},{0xA7, 0x5B, 0xF8, 0xFF}}}, + {{{14, 54, -5},0, {409, 585},{0x8A, 0x2F, 0xFC, 0xFF}}}, + {{{28, 78, 5},0, {409, 585},{0xA3, 0x56, 0xB, 0xFF}}}, + {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, + {{{10, 30, 17},0, {409, 585},{0x84, 0x15, 0x14, 0xFF}}}, + {{{7, 21, -2},0, {409, 585},{0x81, 0x4, 0x0, 0xFF}}}, + {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, + {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, + {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, + {{{27, 73, 21},0, {409, 585},{0xA1, 0x49, 0x29, 0xFF}}}, + {{{25, 46, 46},0, {409, 585},{0x9C, 0x2E, 0x3F, 0xFF}}}, + {{{35, 71, 35},0, {409, 585},{0xCD, 0x5D, 0x46, 0xFF}}}, + {{{37, 55, 53},0, {409, 585},{0xB8, 0x45, 0x4F, 0xFF}}}, + {{{36, 35, 68},0, {409, 585},{0xBB, 0x27, 0x63, 0xFF}}}, + {{{46, 59, 56},0, {409, 585},{0xFD, 0x5C, 0x58, 0xFF}}}, + {{{43, 71, 36},0, {409, 585},{0x55, 0x57, 0x25, 0xFF}}}, + {{{41, 84, 19},0, {409, 585},{0xE9, 0x71, 0x35, 0xFF}}}, + {{{45, 82, 20},0, {409, 585},{0x5F, 0x3F, 0x38, 0xFF}}}, + {{{51, 90, 0},0, {409, 585},{0x34, 0x70, 0x1C, 0xFF}}}, + {{{43, 89, 1},0, {409, 585},{0xD7, 0x78, 0x7, 0xFF}}}, + {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, + {{{43, 89, -8},0, {409, 585},{0xD6, 0x78, 0xF6, 0xFF}}}, + {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, + {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, + {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, + {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, + {{{28, 78, -7},0, {409, 585},{0xA7, 0x5B, 0xF8, 0xFF}}}, + {{{43, 89, -8},0, {409, 585},{0xD6, 0x78, 0xF6, 0xFF}}}, + {{{43, 89, 1},0, {409, 585},{0xD7, 0x78, 0x7, 0xFF}}}, + {{{28, 78, 5},0, {409, 585},{0xA3, 0x56, 0xB, 0xFF}}}, + {{{41, 84, 19},0, {409, 585},{0xE9, 0x71, 0x35, 0xFF}}}, + {{{27, 73, 21},0, {409, 585},{0xA1, 0x49, 0x29, 0xFF}}}, + {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, + {{{35, 71, 35},0, {409, 585},{0xCD, 0x5D, 0x46, 0xFF}}}, + {{{206, 51, 68},0, {408, 584},{0xC1, 0x65, 0x2D, 0xFF}}}, + {{{190, 50, 50},0, {408, 584},{0x9, 0x6E, 0x3F, 0xFF}}}, + {{{180, 27, 70},0, {408, 584},{0xE6, 0x6B, 0x40, 0xFF}}}, + {{{231, 54, 102},0, {408, 584},{0xC2, 0x6B, 0x1E, 0xFF}}}, + {{{195, 34, 99},0, {408, 584},{0xC8, 0x71, 0xC, 0xFF}}}, + {{{158, 18, 91},0, {408, 584},{0xF3, 0x6D, 0x40, 0xFF}}}, + {{{195, 34, 99},0, {408, 584},{0xC8, 0x71, 0xC, 0xFF}}}, + {{{180, 27, 70},0, {408, 584},{0xE6, 0x6B, 0x40, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(7, 6, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(14, 10, 13, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(1, 4, 6, 0), + gsSP1Triangle(1, 6, 2, 0), + gsSP1Triangle(2, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(12, 13, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 4, 5, 0), + gsSP1Triangle(4, 7, 8, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(7, 8, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 96, 3, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_2[11] = { + {{{36, 23, -73},0, {282, 885},{0xBB, 0x15, 0x97, 0xFF}}}, + {{{37, 45, -62},0, {236, 532},{0xB8, 0x36, 0xA6, 0xFF}}}, + {{{46, 48, -65},0, {88, 525},{0xF7, 0x48, 0x98, 0xFF}}}, + {{{25, 37, -53},0, {480, 552},{0x9C, 0x22, 0xB9, 0xFF}}}, + {{{23, 0, -55},0, {737, 1034},{0x98, 0x0, 0xB7, 0xFF}}}, + {{{14, 32, -37},0, {759, 486},{0x8C, 0x15, 0xD1, 0xFF}}}, + {{{12, 2, -29},0, {1089, 787},{0x85, 0x5, 0xDF, 0xFF}}}, + {{{10, 27, -22},0, {989, 424},{0x84, 0x11, 0xE9, 0xFF}}}, + {{{17, 57, -19},0, {753, 32},{0x8C, 0x2E, 0xE6, 0xFF}}}, + {{{27, 68, -34},0, {444, 15},{0xA1, 0x41, 0xCB, 0xFF}}}, + {{{35, 64, -47},0, {260, 176},{0xCD, 0x4F, 0xAB, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_2 + 0, 11, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(5, 8, 9, 0), + gsSP1Triangle(9, 3, 5, 0), + gsSP1Triangle(10, 3, 9, 0), + gsSP1Triangle(10, 1, 3, 0), + gsSP1Triangle(10, 2, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_3[31] = { + {{{141, 56, -78},0, {136, 701},{0xF8, 0x39, 0x8F, 0xFF}}}, + {{{141, 19, -90},0, {209, 1005},{0xF5, 0x27, 0x88, 0xFF}}}, + {{{112, 18, -88},0, {437, 949},{0xF4, 0x26, 0x87, 0xFF}}}, + {{{81, 30, -79},0, {654, 772},{0xE0, 0x2B, 0x8D, 0xFF}}}, + {{{56, 67, -48},0, {776, 349},{0xDF, 0x5F, 0xB2, 0xFF}}}, + {{{53, 47, -63},0, {835, 539},{0xFC, 0x50, 0x9D, 0xFF}}}, + {{{55, 27, -71},0, {869, 716},{0xD3, 0x26, 0x8F, 0xFF}}}, + {{{43, 64, -45},0, {887, 328},{0xDD, 0x5E, 0xB2, 0xFF}}}, + {{{46, 78, -21},0, {838, 109},{0xDA, 0x6E, 0xCE, 0xFF}}}, + {{{58, 82, -23},0, {730, 115},{0xE0, 0x72, 0xD3, 0xFF}}}, + {{{47, 82, -7},0, {821, -11},{0xD9, 0x79, 0xF6, 0xFF}}}, + {{{66, 88, -8},0, {660, -11},{0xE7, 0x7C, 0xF6, 0xFF}}}, + {{{58, 85, 8},0, {730, 115},{0xE0, 0x79, 0x18, 0xFF}}}, + {{{46, 81, 8},0, {838, 109},{0xDA, 0x75, 0x1E, 0xFF}}}, + {{{56, 74, 36},0, {776, 349},{0xDF, 0x6B, 0x3C, 0xFF}}}, + {{{43, 71, 33},0, {887, 328},{0xDD, 0x6A, 0x3D, 0xFF}}}, + {{{56, 74, 36},0, {776, 349},{0xDF, 0x6B, 0x3C, 0xFF}}}, + {{{43, 71, 33},0, {887, 328},{0xDD, 0x6A, 0x3D, 0xFF}}}, + {{{53, 57, 54},0, {835, 539},{0xFC, 0x60, 0x53, 0xFF}}}, + {{{81, 44, 73},0, {654, 772},{0xE0, 0x3F, 0x6A, 0xFF}}}, + {{{55, 38, 65},0, {869, 716},{0xD3, 0x39, 0x68, 0xFF}}}, + {{{141, 69, 67},0, {136, 701},{0xF8, 0x4C, 0x66, 0xFF}}}, + {{{112, 33, 84},0, {437, 949},{0xF4, 0x3B, 0x70, 0xFF}}}, + {{{141, 34, 86},0, {209, 1005},{0xF5, 0x3C, 0x70, 0xFF}}}, + {{{112, 85, 42},0, {318, 420},{0xEE, 0x72, 0x35, 0xFF}}}, + {{{58, 85, 8},0, {730, 115},{0xE0, 0x79, 0x18, 0xFF}}}, + {{{66, 88, -8},0, {660, -11},{0xE7, 0x7C, 0xF6, 0xFF}}}, + {{{56, 67, -48},0, {776, 349},{0xDF, 0x5F, 0xB2, 0xFF}}}, + {{{112, 76, -56},0, {318, 420},{0xEE, 0x67, 0xB8, 0xFF}}}, + {{{141, 56, -78},0, {136, 701},{0xF8, 0x39, 0x8F, 0xFF}}}, + {{{58, 82, -23},0, {730, 115},{0xE0, 0x72, 0xD3, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 4, 5, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(9, 4, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_3 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(0, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 8, 0, 0), + gsSP1Triangle(8, 9, 0, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 12, 11, 0), + gsSP1Triangle(10, 12, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_4[446] = { + {{{57, 36, -72},0, {10, 7},{0xF4, 0x46, 0x96, 0xFF}}}, + {{{53, 47, -63},0, {11, 6},{0xA, 0x55, 0xA2, 0xFF}}}, + {{{60, 39, -69},0, {11, 7},{0xF, 0x62, 0xB1, 0xFF}}}, + {{{109, 42, -37},0, {13, 7},{0xB9, 0x23, 0x9D, 0xFF}}}, + {{{92, 26, -90},0, {9, 8},{0x26, 0x38, 0x94, 0xFF}}}, + {{{147, 15, -101},0, {8, 9},{0x34, 0xBF, 0xA0, 0xFF}}}, + {{{135, 50, -89},0, {9, 6},{0xC2, 0xA, 0x91, 0xFF}}}, + {{{121, 74, -78},0, {10, 4},{0xD3, 0x2D, 0x92, 0xFF}}}, + {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, + {{{83, 88, -41},0, {13, 3},{0xA7, 0x14, 0xA7, 0xFF}}}, + {{{68, 88, -27},0, {15, 3},{0xB1, 0x5, 0x9D, 0xFF}}}, + {{{59, 79, -18},0, {15, 4},{0x9E, 0xC, 0xB0, 0xFF}}}, + {{{65, 92, -21},0, {15, 3},{0xAB, 0x4C, 0xC8, 0xFF}}}, + {{{58, 85, -12},0, {16, 4},{0x92, 0x3E, 0xF2, 0xFF}}}, + {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, + {{{60, 84, -7},0, {16, 4},{0xA0, 0x46, 0x2D, 0xFF}}}, + {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, + {{{60, 84, -7},0, {16, 4},{0xA0, 0x46, 0x2D, 0xFF}}}, + {{{67, 91, -8},0, {16, 3},{0xF9, 0x7C, 0xE7, 0xFF}}}, + {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, + {{{58, 85, -3},0, {16, 4},{0x92, 0x3F, 0x3, 0xFF}}}, + {{{65, 94, 5},0, {15, 3},{0xAB, 0x55, 0x29, 0xFF}}}, + {{{59, 81, 4},0, {15, 4},{0x9E, 0x19, 0x4D, 0xFF}}}, + {{{68, 91, 11},0, {15, 3},{0xAA, 0x2F, 0x51, 0xFF}}}, + {{{109, 48, 29},0, {13, 7},{0xAB, 0x2C, 0x54, 0xFF}}}, + {{{83, 94, 25},0, {13, 3},{0xA7, 0x23, 0x54, 0xFF}}}, + {{{104, 93, 48},0, {12, 3},{0xB2, 0x31, 0x58, 0xFF}}}, + {{{121, 86, 64},0, {10, 4},{0xD3, 0x3F, 0x65, 0xFF}}}, + {{{135, 65, 79},0, {9, 6},{0xC2, 0x27, 0x68, 0xFF}}}, + {{{147, 33, 96},0, {8, 9},{0x3, 0x6D, 0x42, 0xFF}}}, + {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, + {{{60, 51, 61},0, {11, 7},{0xB, 0x70, 0x3B, 0xFF}}}, + {{{53, 57, 54},0, {11, 6},{0xA, 0x64, 0x4E, 0xFF}}}, + {{{60, 51, 61},0, {11, 7},{0xB, 0x70, 0x3B, 0xFF}}}, + {{{109, 48, 29},0, {13, 7},{0xAB, 0x2C, 0x54, 0xFF}}}, + {{{57, 48, 65},0, {10, 7},{0xF4, 0x57, 0x5B, 0xFF}}}, + {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, + {{{46, 27, 72},0, {10, 10},{0xCE, 0x26, 0x6E, 0xFF}}}, + {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, + {{{28, -20, 73},0, {10, 13},{0xA5, 0x29, 0x4F, 0xFF}}}, + {{{23, 9, 54},0, {12, 10},{0x98, 0xC, 0x48, 0xFF}}}, + {{{12, 7, 28},0, {14, 11},{0x86, 0xB, 0x20, 0xFF}}}, + {{{-3, -58, 51},0, {12, 16},{0x8D, 0xCA, 0xF6, 0xFF}}}, + {{{8, -13, 1},0, {16, 12},{0x81, 0xF5, 0x0, 0xFF}}}, + {{{8, 6, -1},0, {16, 10},{0x81, 0xFD, 0x0, 0xFF}}}, + {{{12, 2, -29},0, {14, 11},{0x85, 0x5, 0xDF, 0xFF}}}, + {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, + {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, + {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, + {{{12, 2, -29},0, {14, 11},{0x85, 0x5, 0xDF, 0xFF}}}, + {{{23, 0, -55},0, {12, 10},{0x98, 0x0, 0xB7, 0xFF}}}, + {{{46, 14, -76},0, {10, 10},{0xCE, 0x13, 0x8D, 0xFF}}}, + {{{85, -26, -97},0, {8, 11},{0x6, 0xF9, 0x81, 0xFF}}}, + {{{92, 26, -90},0, {9, 8},{0x26, 0x38, 0x94, 0xFF}}}, + {{{57, 36, -72},0, {10, 7},{0xF4, 0x46, 0x96, 0xFF}}}, + {{{60, 39, -69},0, {11, 7},{0xF, 0x62, 0xB1, 0xFF}}}, + {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, + {{{147, 15, -101},0, {8, 9},{0x34, 0xBF, 0xA0, 0xFF}}}, + {{{148, 50, -90},0, {9, 6},{0x3D, 0x48, 0xAB, 0xFF}}}, + {{{135, 50, -89},0, {9, 6},{0xC2, 0xA, 0x91, 0xFF}}}, + {{{121, 74, -78},0, {10, 4},{0xD3, 0x2D, 0x92, 0xFF}}}, + {{{135, 78, -74},0, {11, 4},{0x33, 0x65, 0xC6, 0xFF}}}, + {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, + {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, + {{{88, 96, -39},0, {14, 2},{0xCF, 0x63, 0xC2, 0xFF}}}, + {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, + {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, + {{{83, 88, -41},0, {13, 3},{0xA7, 0x14, 0xA7, 0xFF}}}, + {{{65, 92, -21},0, {15, 3},{0xAB, 0x4C, 0xC8, 0xFF}}}, + {{{68, 88, -27},0, {15, 3},{0xB1, 0x5, 0x9D, 0xFF}}}, + {{{85, 99, -25},0, {15, 2},{0xEF, 0x7A, 0xE2, 0xFF}}}, + {{{117, 92, -42},0, {13, 3},{0x24, 0x75, 0xDF, 0xFF}}}, + {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, + {{{84, 102, -14},0, {16, 2},{0xE, 0x7C, 0x15, 0xFF}}}, + {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, + {{{67, 91, -8},0, {16, 3},{0xF9, 0x7C, 0xE7, 0xFF}}}, + {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, + {{{84, 103, -4},0, {16, 2},{0xEE, 0x65, 0xB5, 0xFF}}}, + {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, + {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, + {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, + {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, + {{{65, 94, 5},0, {15, 3},{0xAB, 0x55, 0x29, 0xFF}}}, + {{{88, 102, 21},0, {14, 2},{0xCF, 0x6D, 0x2C, 0xFF}}}, + {{{83, 94, 25},0, {13, 3},{0xA7, 0x23, 0x54, 0xFF}}}, + {{{68, 91, 11},0, {15, 3},{0xAA, 0x2F, 0x51, 0xFF}}}, + {{{104, 93, 48},0, {12, 3},{0xB2, 0x31, 0x58, 0xFF}}}, + {{{112, 100, 40},0, {12, 3},{0x2, 0x7B, 0x21, 0xFF}}}, + {{{121, 86, 64},0, {10, 4},{0xD3, 0x3F, 0x65, 0xFF}}}, + {{{135, 89, 59},0, {11, 4},{0x33, 0x6D, 0x28, 0xFF}}}, + {{{148, 64, 80},0, {9, 6},{0x2B, 0x56, 0x54, 0xFF}}}, + {{{135, 65, 79},0, {9, 6},{0xC2, 0x27, 0x68, 0xFF}}}, + {{{147, 33, 96},0, {8, 9},{0x3, 0x6D, 0x42, 0xFF}}}, + {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, + {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, + {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, + {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, + {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, + {{{181, -31, 113},0, {7, 14},{0x22, 0x42, 0x67, 0xFF}}}, + {{{130, -41, 117},0, {7, 15},{0xBB, 0x1, 0x6B, 0xFF}}}, + {{{110, -48, 75},0, {10, 16},{0x27, 0xC4, 0x69, 0xFF}}}, + {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, + {{{67, -74, 158},0, {3, 18},{0xC5, 0x59, 0x45, 0xFF}}}, + {{{36, -54, 109},0, {7, 16},{0xAD, 0x3A, 0x4D, 0xFF}}}, + {{{28, -20, 73},0, {10, 13},{0xA5, 0x29, 0x4F, 0xFF}}}, + {{{-3, -58, 51},0, {12, 16},{0x8D, 0xCA, 0xF6, 0xFF}}}, + {{{21, -100, 106},0, {8, 20},{0x8B, 0xD8, 0xE2, 0xFF}}}, + {{{16, -62, 22},0, {15, 16},{0x9E, 0xAF, 0x1, 0xFF}}}, + {{{8, -13, 1},0, {16, 12},{0x81, 0xF5, 0x0, 0xFF}}}, + {{{29, -96, 8},0, {16, 19},{0x8D, 0xC9, 0x4, 0xFF}}}, + {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, + {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, + {{{21, -117, -87},0, {8, 20},{0x8A, 0xF6, 0xD2, 0xFF}}}, + {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, + {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, + {{{36, -72, -98},0, {7, 16},{0xA9, 0x20, 0xA9, 0xFF}}}, + {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, + {{{85, -26, -97},0, {8, 11},{0x6, 0xF9, 0x81, 0xFF}}}, + {{{67, -100, -143},0, {3, 18},{0xEB, 0x2D, 0x8B, 0xFF}}}, + {{{114, -68, -124},0, {5, 16},{0x5C, 0x21, 0xAF, 0xFF}}}, + {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, + {{{130, -60, -109},0, {7, 15},{0xD1, 0x0, 0x8A, 0xFF}}}, + {{{181, -51, -106},0, {7, 14},{0x22, 0x2F, 0x8F, 0xFF}}}, + {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, + {{{206, -25, -72},0, {10, 12},{0x26, 0x38, 0x94, 0xFF}}}, + {{{194, 14, -108},0, {7, 9},{0xEB, 0x16, 0x85, 0xFF}}}, + {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, + {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, + {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, + {{{148, 50, -90},0, {9, 6},{0x3D, 0x48, 0xAB, 0xFF}}}, + {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, + {{{141, 76, -59},0, {12, 4},{0x4A, 0x5C, 0xD1, 0xFF}}}, + {{{135, 78, -74},0, {11, 4},{0x33, 0x65, 0xC6, 0xFF}}}, + {{{117, 92, -42},0, {13, 3},{0x24, 0x75, 0xDF, 0xFF}}}, + {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, + {{{162, 76, -44},0, {13, 4},{0x41, 0x5F, 0xCA, 0xFF}}}, + {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, + {{{191, 44, -51},0, {12, 7},{0x46, 0x45, 0xAF, 0xFF}}}, + {{{200, 46, -33},0, {14, 7},{0x56, 0x49, 0xC6, 0xFF}}}, + {{{208, 49, -4},0, {16, 7},{0x58, 0x5C, 0xF8, 0xFF}}}, + {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, + {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, + {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, + {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, + {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, + {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, + {{{84, 102, -14},0, {16, 2},{0xE, 0x7C, 0x15, 0xFF}}}, + {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, + {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, + {{{84, 103, -4},0, {16, 2},{0xEE, 0x65, 0xB5, 0xFF}}}, + {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, + {{{117, 98, 25},0, {13, 3},{0x24, 0x79, 0xC, 0xFF}}}, + {{{112, 100, 40},0, {12, 3},{0x2, 0x7B, 0x21, 0xFF}}}, + {{{88, 102, 21},0, {14, 2},{0xCF, 0x6D, 0x2C, 0xFF}}}, + {{{135, 89, 59},0, {11, 4},{0x33, 0x6D, 0x28, 0xFF}}}, + {{{141, 85, 45},0, {12, 4},{0x4A, 0x63, 0x1F, 0xFF}}}, + {{{148, 64, 80},0, {9, 6},{0x2B, 0x56, 0x54, 0xFF}}}, + {{{163, 52, 68},0, {10, 7},{0x46, 0x44, 0x51, 0xFF}}}, + {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, + {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, + {{{194, 32, 104},0, {7, 9},{0xDB, 0x23, 0x74, 0xFF}}}, + {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, + {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, + {{{206, -12, 75},0, {10, 12},{0x76, 0x1F, 0x23, 0xFF}}}, + {{{181, -31, 113},0, {7, 14},{0x22, 0x42, 0x67, 0xFF}}}, + {{{231, -40, 64},0, {11, 15},{0x5D, 0xF0, 0x55, 0xFF}}}, + {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, + {{{205, -118, 157},0, {4, 22},{0xF1, 0x14, 0x7D, 0xFF}}}, + {{{130, -41, 117},0, {7, 15},{0xBB, 0x1, 0x6B, 0xFF}}}, + {{{161, -108, 142},0, {5, 21},{0xBB, 0xE8, 0x68, 0xFF}}}, + {{{156, -137, 122},0, {7, 23},{0x9C, 0xC2, 0x30, 0xFF}}}, + {{{110, -48, 75},0, {10, 16},{0x27, 0xC4, 0x69, 0xFF}}}, + {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, + {{{123, -93, 99},0, {8, 19},{0x4F, 0x2, 0x9C, 0xFF}}}, + {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, + {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, + {{{138, -60, 158},0, {3, 17},{0x53, 0x51, 0xCC, 0xFF}}}, + {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, + {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, + {{{67, -74, 158},0, {3, 18},{0xC5, 0x59, 0x45, 0xFF}}}, + {{{119, -76, 183},0, {1, 19},{0xDC, 0x48, 0x62, 0xFF}}}, + {{{59, -120, 154},0, {4, 22},{0x93, 0xC1, 0x13, 0xFF}}}, + {{{36, -54, 109},0, {7, 16},{0xAD, 0x3A, 0x4D, 0xFF}}}, + {{{21, -100, 106},0, {8, 20},{0x8B, 0xD8, 0xE2, 0xFF}}}, + {{{101, -126, 109},0, {8, 22},{0xC, 0x90, 0xC5, 0xFF}}}, + {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, + {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, + {{{16, -62, 22},0, {15, 16},{0x9E, 0xAF, 0x1, 0xFF}}}, + {{{29, -96, 8},0, {16, 19},{0x8D, 0xC9, 0x4, 0xFF}}}, + {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, + {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, + {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, + {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, + {{{21, -117, -87},0, {8, 20},{0x8A, 0xF6, 0xD2, 0xFF}}}, + {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, + {{{75, -131, -56},0, {11, 21},{0xCC, 0x9C, 0x3B, 0xFF}}}, + {{{101, -143, -86},0, {8, 22},{0xB, 0x87, 0x25, 0xFF}}}, + {{{59, -145, -131},0, {4, 22},{0xE5, 0xB3, 0x9E, 0xFF}}}, + {{{36, -72, -98},0, {7, 16},{0xA9, 0x20, 0xA9, 0xFF}}}, + {{{67, -100, -143},0, {3, 18},{0xEB, 0x2D, 0x8B, 0xFF}}}, + {{{119, -107, -167},0, {1, 19},{0xD3, 0x1E, 0x8D, 0xFF}}}, + {{{138, -86, -145},0, {3, 17},{0x59, 0x39, 0xBA, 0xFF}}}, + {{{114, -68, -124},0, {5, 16},{0x5C, 0x21, 0xAF, 0xFF}}}, + {{{151, -105, -120},0, {5, 19},{0x7D, 0x16, 0x8, 0xFF}}}, + {{{123, -109, -82},0, {8, 19},{0x5E, 0x20, 0x50, 0xFF}}}, + {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, + {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, + {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, + {{{130, -60, -109},0, {7, 15},{0xD1, 0x0, 0x8A, 0xFF}}}, + {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, + {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, + {{{161, -131, -121},0, {5, 21},{0xBB, 0xD6, 0x9E, 0xFF}}}, + {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, + {{{181, -51, -106},0, {7, 14},{0x22, 0x2F, 0x8F, 0xFF}}}, + {{{236, -112, -123},0, {5, 19},{0x29, 0x43, 0x9C, 0xFF}}}, + {{{231, -50, -56},0, {11, 15},{0x34, 0xDC, 0x92, 0xFF}}}, + {{{206, -25, -72},0, {10, 12},{0x26, 0x38, 0x94, 0xFF}}}, + {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, + {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, + {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, + {{{194, 14, -108},0, {7, 9},{0xEB, 0x16, 0x85, 0xFF}}}, + {{{231, 35, -109},0, {7, 7},{0xC2, 0x64, 0xD0, 0xFF}}}, + {{{195, 16, -103},0, {8, 9},{0xC8, 0x6E, 0xE0, 0xFF}}}, + {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, + {{{231, 35, -109},0, {7, 7},{0xC2, 0x64, 0xD0, 0xFF}}}, + {{{209, 41, -73},0, {10, 7},{0x2D, 0x76, 0xF, 0xFF}}}, + {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, + {{{206, 38, -76},0, {10, 7},{0xC1, 0x5C, 0xC2, 0xFF}}}, + {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, + {{{191, 44, -51},0, {12, 7},{0x46, 0x45, 0xAF, 0xFF}}}, + {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, + {{{200, 46, -33},0, {14, 7},{0x56, 0x49, 0xC6, 0xFF}}}, + {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, + {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, + {{{279, -25, 2},0, {16, 13},{0x5E, 0x56, 0xF9, 0xFF}}}, + {{{208, 49, -4},0, {16, 7},{0x58, 0x5C, 0xF8, 0xFF}}}, + {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, + {{{162, 82, 30},0, {13, 4},{0x41, 0x67, 0x24, 0xFF}}}, + {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, + {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, + {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, + {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, + {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, + {{{162, 82, 30},0, {13, 4},{0x41, 0x67, 0x24, 0xFF}}}, + {{{117, 98, 25},0, {13, 3},{0x24, 0x79, 0xC, 0xFF}}}, + {{{141, 85, 45},0, {12, 4},{0x4A, 0x63, 0x1F, 0xFF}}}, + {{{163, 52, 68},0, {10, 7},{0x46, 0x44, 0x51, 0xFF}}}, + {{{190, 50, 50},0, {12, 7},{0x40, 0x6D, 0xE, 0xFF}}}, + {{{180, 27, 70},0, {10, 9},{0xE6, 0x6B, 0x40, 0xFF}}}, + {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, + {{{191, 52, 42},0, {12, 7},{0x50, 0x5B, 0xDA, 0xFF}}}, + {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, + {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, + {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, + {{{206, 51, 68},0, {10, 7},{0xC1, 0x65, 0x2D, 0xFF}}}, + {{{231, 54, 102},0, {7, 7},{0xC2, 0x6B, 0x1E, 0xFF}}}, + {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, + {{{231, 54, 102},0, {7, 7},{0xC2, 0x6B, 0x1E, 0xFF}}}, + {{{237, 56, 105},0, {7, 7},{0x70, 0x3B, 0xD, 0xFF}}}, + {{{194, 32, 104},0, {7, 9},{0xDB, 0x23, 0x74, 0xFF}}}, + {{{195, 34, 99},0, {8, 9},{0xC8, 0x71, 0xC, 0xFF}}}, + {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, + {{{206, -12, 75},0, {10, 12},{0x76, 0x1F, 0x23, 0xFF}}}, + {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, + {{{242, -12, 59},0, {11, 12},{0x54, 0x37, 0x4D, 0xFF}}}, + {{{231, -40, 64},0, {11, 15},{0x5D, 0xF0, 0x55, 0xFF}}}, + {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, + {{{288, -116, 50},0, {13, 21},{0xF9, 0xD0, 0x75, 0xFF}}}, + {{{209, -76, 56},0, {12, 18},{0x4B, 0x9A, 0xF, 0xFF}}}, + {{{246, -121, 92},0, {9, 22},{0x4A, 0xE9, 0x9B, 0xFF}}}, + {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, + {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, + {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, + {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, + {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, + {{{247, -127, 159},0, {4, 23},{0x6, 0xFC, 0x7F, 0xFF}}}, + {{{205, -118, 157},0, {4, 22},{0xF1, 0x14, 0x7D, 0xFF}}}, + {{{195, -156, 140},0, {6, 25},{0xDF, 0x97, 0x40, 0xFF}}}, + {{{161, -108, 142},0, {5, 21},{0xBB, 0xE8, 0x68, 0xFF}}}, + {{{156, -137, 122},0, {7, 23},{0x9C, 0xC2, 0x30, 0xFF}}}, + {{{168, -146, 100},0, {9, 24},{0xCB, 0x95, 0xD4, 0xFF}}}, + {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, + {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, + {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, + {{{143, -127, 49},0, {13, 22},{0x4C, 0x1D, 0x62, 0xFF}}}, + {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, + {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, + {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, + {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, + {{{101, -126, 109},0, {8, 22},{0xC, 0x90, 0xC5, 0xFF}}}, + {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, + {{{123, -93, 99},0, {8, 19},{0x4F, 0x2, 0x9C, 0xFF}}}, + {{{140, -120, 153},0, {4, 22},{0x24, 0x86, 0xFC, 0xFF}}}, + {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, + {{{222, -77, 221},0, {-2, 19},{0x6F, 0xE8, 0x39, 0xFF}}}, + {{{138, -60, 158},0, {3, 17},{0x53, 0x51, 0xCC, 0xFF}}}, + {{{119, -76, 183},0, {1, 19},{0xDC, 0x48, 0x62, 0xFF}}}, + {{{118, -113, 182},0, {2, 22},{0xCB, 0x8D, 0x9, 0xFF}}}, + {{{59, -120, 154},0, {4, 22},{0x93, 0xC1, 0x13, 0xFF}}}, + {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, + {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, + {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, + {{{98, -198, 17},0, {16, 28},{0xAA, 0xA3, 0x8, 0xFF}}}, + {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, + {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, + {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, + {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, + {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, + {{{75, -131, -56},0, {11, 21},{0xCC, 0x9C, 0x3B, 0xFF}}}, + {{{101, -143, -86},0, {8, 22},{0xB, 0x87, 0x25, 0xFF}}}, + {{{123, -109, -82},0, {8, 19},{0x5E, 0x20, 0x50, 0xFF}}}, + {{{140, -145, -130},0, {4, 22},{0x46, 0x97, 0x11, 0xFF}}}, + {{{118, -143, -159},0, {2, 22},{0xE3, 0xF3, 0x85, 0xFF}}}, + {{{59, -145, -131},0, {4, 22},{0xE5, 0xB3, 0x9E, 0xFF}}}, + {{{119, -107, -167},0, {1, 19},{0xD3, 0x1E, 0x8D, 0xFF}}}, + {{{222, -114, -205},0, {-2, 19},{0x54, 0xE3, 0xA6, 0xFF}}}, + {{{138, -86, -145},0, {3, 17},{0x59, 0x39, 0xBA, 0xFF}}}, + {{{151, -105, -120},0, {5, 19},{0x7D, 0x16, 0x8, 0xFF}}}, + {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, + {{{209, 41, -73},0, {10, 7},{0x2D, 0x76, 0xF, 0xFF}}}, + {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, + {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, + {{{237, 56, 105},0, {7, 7},{0x70, 0x3B, 0xD, 0xFF}}}, + {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, + {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, + {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, + {{{180, 14, -73},0, {10, 9},{0xE6, 0x5E, 0xAE, 0xFF}}}, + {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, + {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, + {{{242, -12, 59},0, {11, 12},{0x54, 0x37, 0x4D, 0xFF}}}, + {{{265, -18, 30},0, {14, 13},{0x5A, 0x52, 0x26, 0xFF}}}, + {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, + {{{330, -85, 7},0, {16, 18},{0x64, 0x4E, 0xFA, 0xFF}}}, + {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, + {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, + {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, + {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, + {{{348, -151, 40},0, {14, 24},{0x13, 0xED, 0x7C, 0xFF}}}, + {{{288, -116, 50},0, {13, 21},{0xF9, 0xD0, 0x75, 0xFF}}}, + {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, + {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, + {{{209, -76, 56},0, {12, 18},{0x4B, 0x9A, 0xF, 0xFF}}}, + {{{218, -154, 99},0, {8, 25},{0x17, 0xA0, 0xB1, 0xFF}}}, + {{{246, -121, 92},0, {9, 22},{0x4A, 0xE9, 0x9B, 0xFF}}}, + {{{257, -155, 119},0, {7, 25},{0x21, 0x8D, 0xD6, 0xFF}}}, + {{{275, -129, 110},0, {8, 23},{0x35, 0xE8, 0x8F, 0xFF}}}, + {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, + {{{276, -109, 123},0, {7, 21},{0x3B, 0x60, 0xC6, 0xFF}}}, + {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, + {{{365, -131, 153},0, {4, 23},{0x7B, 0xE5, 0xD, 0xFF}}}, + {{{247, -127, 159},0, {4, 23},{0x6, 0xFC, 0x7F, 0xFF}}}, + {{{365, -131, 153},0, {4, 23},{0x7B, 0xE5, 0xD, 0xFF}}}, + {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, + {{{241, -155, 144},0, {5, 25},{0x0, 0x93, 0x41, 0xFF}}}, + {{{195, -156, 140},0, {6, 25},{0xDF, 0x97, 0x40, 0xFF}}}, + {{{257, -155, 119},0, {7, 25},{0x21, 0x8D, 0xD6, 0xFF}}}, + {{{218, -154, 99},0, {8, 25},{0x17, 0xA0, 0xB1, 0xFF}}}, + {{{168, -146, 100},0, {9, 24},{0xCB, 0x95, 0xD4, 0xFF}}}, + {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, + {{{275, -129, 110},0, {8, 23},{0x35, 0xE8, 0x8F, 0xFF}}}, + {{{276, -109, 123},0, {7, 21},{0x3B, 0x60, 0xC6, 0xFF}}}, + {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, + {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, + {{{181, -99, -26},0, {13, 19},{0x17, 0x89, 0x25, 0xFF}}}, + {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, + {{{143, -133, -26},0, {13, 22},{0x44, 0xF9, 0x95, 0xFF}}}, + {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, + {{{165, -184, -13},0, {14, 26},{0x3D, 0xF1, 0x91, 0xFF}}}, + {{{143, -133, -26},0, {13, 22},{0x44, 0xF9, 0x95, 0xFF}}}, + {{{184, -179, 16},0, {16, 26},{0x74, 0x34, 0xFB, 0xFF}}}, + {{{165, -179, 44},0, {14, 26},{0x43, 0x1F, 0x68, 0xFF}}}, + {{{143, -127, 49},0, {13, 22},{0x4C, 0x1D, 0x62, 0xFF}}}, + {{{125, -188, 49},0, {13, 27},{0xEA, 0xD2, 0x74, 0xFF}}}, + {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, + {{{98, -198, 17},0, {16, 28},{0xAA, 0xA3, 0x8, 0xFF}}}, + {{{157, -234, 20},0, {16, 31},{0xCD, 0x8C, 0xA, 0xFF}}}, + {{{125, -194, -16},0, {13, 27},{0xEA, 0xBE, 0x96, 0xFF}}}, + {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, + {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, + {{{180, -231, 3},0, {15, 30},{0x36, 0xB2, 0xAC, 0xFF}}}, + {{{207, -223, 19},0, {16, 30},{0x5A, 0x46, 0xC8, 0xFF}}}, + {{{180, -227, 38},0, {15, 30},{0xFE, 0xA9, 0x5D, 0xFF}}}, + {{{157, -234, 20},0, {16, 31},{0xCD, 0x8C, 0xA, 0xFF}}}, + {{{243, -262, 23},0, {16, 33},{0x10, 0x82, 0xB, 0xFF}}}, + {{{180, -227, 38},0, {15, 30},{0xFE, 0xA9, 0x5D, 0xFF}}}, + {{{180, -231, 3},0, {15, 30},{0x36, 0xB2, 0xAC, 0xFF}}}, + {{{125, -194, -16},0, {13, 27},{0xEA, 0xBE, 0x96, 0xFF}}}, + {{{207, -223, 19},0, {16, 30},{0x5A, 0x46, 0xC8, 0xFF}}}, + {{{279, -25, 2},0, {16, 13},{0x5E, 0x56, 0xF9, 0xFF}}}, + {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, + {{{265, -18, 30},0, {14, 13},{0x5A, 0x52, 0x26, 0xFF}}}, + {{{330, -85, 7},0, {16, 18},{0x64, 0x4E, 0xFA, 0xFF}}}, + {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, + {{{315, -92, -30},0, {14, 18},{0x4A, 0x1D, 0x9D, 0xFF}}}, + {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, + {{{363, -145, -2},0, {15, 23},{0x58, 0x24, 0xAC, 0xFF}}}, + {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, + {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, + {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, + {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, + {{{348, -151, 40},0, {14, 24},{0x13, 0xED, 0x7C, 0xFF}}}, + {{{333, -169, 15},0, {16, 25},{0xCC, 0x8C, 0xA, 0xFF}}}, + {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, + {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, + {{{288, -122, -29},0, {13, 21},{0xFA, 0xBD, 0x94, 0xFF}}}, + {{{181, -99, -26},0, {13, 19},{0x17, 0x89, 0x25, 0xFF}}}, + {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, + {{{218, -169, -71},0, {8, 25},{0xFC, 0xA1, 0x54, 0xFF}}}, + {{{168, -161, -73},0, {9, 24},{0xC9, 0xA0, 0x3F, 0xFF}}}, + {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, + {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, + {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, + {{{161, -131, -121},0, {5, 21},{0xBB, 0xD6, 0x9E, 0xFF}}}, + {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, + {{{247, -153, -135},0, {4, 23},{0x3, 0xE4, 0x84, 0xFF}}}, + {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, + {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, + {{{236, -112, -123},0, {5, 19},{0x29, 0x43, 0x9C, 0xFF}}}, + {{{267, -127, -124},0, {5, 21},{0x29, 0x65, 0xBE, 0xFF}}}, + {{{250, -113, -93},0, {8, 20},{0x6D, 0x41, 0xFC, 0xFF}}}, + {{{231, -50, -56},0, {11, 15},{0x34, 0xDC, 0x92, 0xFF}}}, + {{{246, -136, -70},0, {9, 22},{0x43, 0xFB, 0x6C, 0xFF}}}, + {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, + {{{288, -122, -29},0, {13, 21},{0xFA, 0xBD, 0x94, 0xFF}}}, + {{{315, -92, -30},0, {14, 18},{0x4A, 0x1D, 0x9D, 0xFF}}}, + {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, + {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, + {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, + {{{363, -145, -2},0, {15, 23},{0x58, 0x24, 0xAC, 0xFF}}}, + {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, + {{{333, -169, 15},0, {16, 25},{0xCC, 0x8C, 0xA, 0xFF}}}, + {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, + {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, + {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, + {{{218, -169, -71},0, {8, 25},{0xFC, 0xA1, 0x54, 0xFF}}}, + {{{168, -161, -73},0, {9, 24},{0xC9, 0xA0, 0x3F, 0xFF}}}, + {{{257, -174, -90},0, {7, 25},{0x28, 0x9B, 0x41, 0xFF}}}, + {{{241, -178, -115},0, {5, 25},{0x1, 0x8B, 0xCE, 0xFF}}}, + {{{247, -153, -135},0, {4, 23},{0x3, 0xE4, 0x84, 0xFF}}}, + {{{365, -155, -128},0, {4, 23},{0x74, 0xF6, 0xCE, 0xFF}}}, + {{{267, -127, -124},0, {5, 21},{0x29, 0x65, 0xBE, 0xFF}}}, + {{{276, -129, -102},0, {7, 21},{0x3A, 0x6A, 0x27, 0xFF}}}, + {{{250, -113, -93},0, {8, 20},{0x6D, 0x41, 0xFC, 0xFF}}}, + {{{275, -146, -86},0, {8, 23},{0x40, 0x1D, 0x6A, 0xFF}}}, + {{{246, -136, -70},0, {9, 22},{0x43, 0xFB, 0x6C, 0xFF}}}, + {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_4[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(8, 3, 9, 0), + gsSP1Triangle(10, 9, 3, 0), + gsSP1Triangle(10, 3, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSP1Triangle(8, 14, 13, 0), + gsSP1Triangle(15, 14, 8, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 4, 0), + gsSP1Triangle(9, 8, 5, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 0, 4, 0), + gsSP1Triangle(6, 1, 0, 0), + gsSP1Triangle(1, 6, 7, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(10, 6, 4, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 3, 4, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(1, 6, 5, 0), + gsSP1Triangle(7, 6, 1, 0), + gsSP1Triangle(7, 1, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 112, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(9, 8, 5, 0), + gsSP1Triangle(5, 10, 9, 0), + gsSP1Triangle(5, 11, 10, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 128, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(3, 7, 2, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(11, 7, 12, 0), + gsSP1Triangle(7, 13, 12, 0), + gsSP1Triangle(13, 7, 5, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 144, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(3, 0, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(10, 7, 8, 0), + gsSP1Triangle(7, 10, 11, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 160, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 176, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 192, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(6, 5, 1, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 208, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(8, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 224, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(1, 4, 5, 0), + gsSP1Triangle(1, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(10, 7, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 240, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 3, 7, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(7, 13, 10, 0), + gsSP1Triangle(14, 13, 7, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 256, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 6, 2, 0), + gsSP1Triangle(6, 7, 2, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(9, 13, 12, 0), + gsSP1Triangle(9, 14, 13, 0), + gsSP1Triangle(15, 14, 9, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 272, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(9, 13, 12, 0), + gsSP1Triangle(14, 13, 9, 0), + gsSP1Triangle(15, 14, 9, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 288, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(1, 9, 10, 0), + gsSP1Triangle(4, 9, 1, 0), + gsSP1Triangle(6, 9, 4, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 304, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 7, 0), + gsSP1Triangle(6, 7, 13, 0), + gsSP1Triangle(8, 11, 7, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 318, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 5, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 334, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 350, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(1, 3, 5, 0), + gsSP1Triangle(9, 1, 5, 0), + gsSP1Triangle(10, 1, 9, 0), + gsSP1Triangle(11, 8, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 14, 12, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 366, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(2, 10, 11, 0), + gsSP1Triangle(11, 12, 2, 0), + gsSP1Triangle(10, 2, 1, 0), + gsSP1Triangle(1, 13, 10, 0), + gsSP1Triangle(13, 1, 14, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(4, 15, 14, 0), + gsSP1Triangle(15, 4, 6, 0), + gsSP1Triangle(6, 9, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 382, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(3, 5, 1, 0), + gsSP1Triangle(5, 2, 1, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(9, 10, 6, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 398, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(10, 7, 11, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 414, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(10, 6, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(10, 13, 9, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 430, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(6, 13, 14, 0), + gsSP1Triangle(6, 14, 4, 0), + gsSP1Triangle(4, 14, 15, 0), + gsSP1Triangle(9, 13, 6, 0), + gsSP1Triangle(9, 11, 13, 0), + gsSP1Triangle(7, 9, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_5[3] = { + {{{188, 57, -19},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, + {{{154, 57, 39},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, + {{{121, 57, -19},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_tri_5[] = { + gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_5 + 0, 3, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_003_mesh_layer_1_vtx_0[31] = { + {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, + {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, + {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, + {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, + {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, + {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, + {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{2, 9, -7},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, + {{{2, 0, -11},0, {-16, -16},{0xFB, 0x0, 0x81, 0xFF}}}, + {{{3, -8, -7},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, + {{{3, -8, 3},0, {-16, -16},{0xFA, 0x97, 0x47, 0xFF}}}, + {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{2, 0, 6},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, + {{{3, -8, 3},0, {-16, -16},{0xFA, 0x97, 0x47, 0xFF}}}, + {{{2, 9, 3},0, {-16, -16},{0xFA, 0x69, 0x47, 0xFF}}}, + {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{2, 9, -7},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, + {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, + {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, + {{{2, 0, -11},0, {-16, -16},{0xFB, 0x0, 0x81, 0xFF}}}, + {{{-21, -6, -6},0, {-16, -16},{0xD6, 0x9B, 0xC0, 0xFF}}}, + {{{3, -8, -7},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, + {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, + {{{-21, 0, 4},0, {-16, -16},{0xCF, 0x0, 0x75, 0xFF}}}, + {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, + {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_003_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 11, 9, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(1, 12, 11, 0), + gsSP1Triangle(1, 13, 12, 0), + gsSP1Triangle(3, 13, 1, 0), + gsSP1Triangle(14, 13, 3, 0), + gsSP1Triangle(5, 14, 3, 0), + gsSP1Triangle(5, 15, 14, 0), + gsSP1Triangle(7, 15, 5, 0), + gsSP1Triangle(10, 15, 7, 0), + gsSPVertex(super_sonic_000_offset_003_mesh_layer_1_vtx_0 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(2, 9, 10, 0), + gsSP1Triangle(11, 9, 2, 0), + gsSP1Triangle(2, 12, 11, 0), + gsSP1Triangle(1, 12, 2, 0), + gsSP1Triangle(3, 12, 1, 0), + gsSP1Triangle(13, 12, 3, 0), + gsSP1Triangle(3, 6, 13, 0), + gsSP1Triangle(6, 14, 13, 0), + gsSP1Triangle(7, 14, 6, 0), + gsSP1Triangle(7, 9, 14, 0), + gsSP1Triangle(11, 14, 9, 0), + gsSP1Triangle(12, 14, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, + {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, + {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, + {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_0[6] = { + {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, + {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, + {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_004_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(6, 1, 0, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(7, 8, 1, 0), + gsSP1Triangle(8, 4, 1, 0), + gsSP1Triangle(9, 4, 8, 0), + gsSP1Triangle(9, 5, 4, 0), + gsSP1Triangle(9, 3, 5, 0), + gsSP1Triangle(10, 3, 9, 0), + gsSP1Triangle(2, 3, 10, 0), + gsSP1Triangle(11, 2, 10, 0), + gsSP1Triangle(11, 0, 2, 0), + gsSP1Triangle(6, 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_1[12] = { + {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, + {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, + {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, + {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, + {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, + {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, + {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, + {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, + {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_004_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 2, 11, 0), + gsSP1Triangle(0, 2, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_003_mesh_layer_1_vtx_0[44] = { + {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, + {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, + {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, + {{{-10, 26, -38},0, {-16, -16},{0xCC, 0x39, 0x9B, 0xFF}}}, + {{{17, -38, -39},0, {-16, -16},{0x1, 0xB5, 0x99, 0xFF}}}, + {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, + {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, + {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, + {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, + {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, + {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, + {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, + {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, + {{{27, -58, 6},0, {-16, -16},{0x1C, 0x89, 0x23, 0xFF}}}, + {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, + {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, + {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, + {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, + {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, + {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, + {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, + {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, + {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, + {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, + {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, + {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, + {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, + {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, + {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, + {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, + {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, + {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, + {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, + {{{27, -58, 6},0, {-16, -16},{0x1C, 0x89, 0x23, 0xFF}}}, + {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, + {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, + {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, + {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, + {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, + {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, + {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, + {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_003_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 5, 0, 0), + gsSP1Triangle(0, 7, 6, 0), + gsSP1Triangle(0, 2, 7, 0), + gsSP1Triangle(2, 8, 7, 0), + gsSP1Triangle(8, 2, 9, 0), + gsSP1Triangle(9, 2, 1, 0), + gsSP1Triangle(10, 9, 1, 0), + gsSP1Triangle(1, 11, 10, 0), + gsSP1Triangle(11, 1, 3, 0), + gsSP1Triangle(3, 12, 11, 0), + gsSP1Triangle(3, 13, 12, 0), + gsSP1Triangle(4, 13, 3, 0), + gsSP1Triangle(14, 13, 4, 0), + gsSP1Triangle(5, 14, 4, 0), + gsSP1Triangle(15, 14, 5, 0), + gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(3, 12, 13, 0), + gsSP1Triangle(14, 3, 13, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(2, 1, 14, 0), + gsSP1Triangle(14, 15, 2, 0), + gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 5, 4, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(6, 8, 11, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { + {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, + {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, + {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, + {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, + {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, + {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, + {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, + {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, + {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, + {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, + {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, + {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, + {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, + {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, + {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, + {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, + {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, + {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, + {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, + {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, + {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, + {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, + {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, + {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, + {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, + {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, + {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, + {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, + {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, + {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, + {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, + {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, + {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, + {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, + {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, + {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, + {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, + {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, + {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, + {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, + {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, + {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, + {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, + {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, + {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, + {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, + {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, + {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, + {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, + {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, + {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, + {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, + {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, + {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, + {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, + {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, +}; + +Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(0, 9, 7, 0), + gsSP1Triangle(2, 9, 0, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(2, 11, 10, 0), + gsSP1Triangle(2, 12, 11, 0), + gsSP1Triangle(2, 4, 12, 0), + gsSP1Triangle(4, 13, 12, 0), + gsSP1Triangle(4, 6, 13, 0), + gsSP1Triangle(6, 14, 13, 0), + gsSP1Triangle(14, 6, 7, 0), + gsSP1Triangle(7, 15, 14, 0), + gsSP1Triangle(7, 10, 15, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 10, 11, 0), + gsSP1Triangle(10, 2, 1, 0), + gsSP1Triangle(1, 12, 10, 0), + gsSP1Triangle(13, 12, 1, 0), + gsSP1Triangle(1, 14, 13, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(15, 14, 3, 0), + gsSP1Triangle(4, 15, 3, 0), + gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 3, 0), + gsSP1Triangle(8, 0, 3, 0), + gsSP1Triangle(8, 9, 0, 0), + gsSP1Triangle(9, 1, 0, 0), + gsSP1Triangle(10, 1, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSP1Triangle(15, 14, 11, 0), + gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(9, 4, 5, 0), + gsSP1Triangle(9, 1, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_006_mesh_layer_1_vtx_0[40] = { + {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, + {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, + {{{-21, -6, 7},0, {-16, -16},{0xD6, 0x9B, 0x40, 0xFF}}}, + {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, + {{{2, 9, 8},0, {-16, -16},{0xFA, 0x69, 0x47, 0xFF}}}, + {{{2, 0, 12},0, {-16, -16},{0xFB, 0x0, 0x7F, 0xFF}}}, + {{{3, -8, 8},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, + {{{3, -8, -2},0, {-16, -16},{0xFA, 0x97, 0xB9, 0xFF}}}, + {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, + {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, + {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, + {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{49, -9, 9},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, + {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{49, -9, 9},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, + {{{3, -8, -2},0, {-16, -16},{0xFA, 0x97, 0xB9, 0xFF}}}, + {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{2, 0, -5},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, + {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, + {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, + {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, + {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, + {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, + {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, + {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, + {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, + {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, + {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, + {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, + {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, + {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, + {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, + {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, + {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, + {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_006_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(2, 5, 0, 0), + gsSP1Triangle(6, 5, 2, 0), + gsSP1Triangle(7, 6, 2, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(8, 2, 1, 0), + gsSP1Triangle(9, 8, 1, 0), + gsSP1Triangle(9, 1, 10, 0), + gsSP1Triangle(3, 10, 1, 0), + gsSP1Triangle(11, 10, 3, 0), + gsSP1Triangle(4, 11, 3, 0), + gsSP1Triangle(12, 11, 4, 0), + gsSP1Triangle(13, 12, 4, 0), + gsSP1Triangle(13, 4, 5, 0), + gsSP1Triangle(14, 13, 5, 0), + gsSP1Triangle(6, 14, 5, 0), + gsSP1Triangle(15, 14, 6, 0), + gsSP1Triangle(15, 6, 7, 0), + gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(2, 6, 5, 0), + gsSP1Triangle(7, 4, 5, 0), + gsSP1Triangle(3, 4, 7, 0), + gsSP1Triangle(8, 3, 7, 0), + gsSP1Triangle(9, 3, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 1, 0), + gsSP1Triangle(15, 14, 1, 0), + gsSP1Triangle(15, 1, 0, 0), + gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 32, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, + {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, + {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, + {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, + {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, + {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_0[6] = { + {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, + {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, + {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, + {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_007_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(6, 0, 1, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(7, 4, 0, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(9, 5, 4, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSP1Triangle(10, 3, 5, 0), + gsSP1Triangle(10, 11, 3, 0), + gsSP1Triangle(3, 11, 2, 0), + gsSP1Triangle(11, 6, 2, 0), + gsSP1Triangle(6, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_1[12] = { + {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, + {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, + {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, + {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, + {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, + {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, + {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, + {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, + {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, + {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, + {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_007_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(9, 11, 2, 0), + gsSP1Triangle(11, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_004_mesh_layer_1_vtx_0[43] = { + {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, + {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, + {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, + {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, + {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, + {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, + {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, + {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, + {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, + {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, + {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, + {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, + {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, + {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, + {{{13, -38, 41},0, {-16, -16},{0xFC, 0xB1, 0x64, 0xFF}}}, + {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, + {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, + {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, + {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, + {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, + {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, + {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, + {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, + {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, + {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, + {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, + {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, + {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, + {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, + {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, + {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, + {{{4, -3, -33},0, {-16, -16},{0xF0, 0xFC, 0x82, 0xFF}}}, + {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, + {{{24, -57, -4},0, {-16, -16},{0x1B, 0x89, 0xDB, 0xFF}}}, + {{{4, -3, -33},0, {-16, -16},{0xF0, 0xFC, 0x82, 0xFF}}}, + {{{13, -38, 41},0, {-16, -16},{0xFC, 0xB1, 0x64, 0xFF}}}, + {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, + {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, + {{{-19, 47, -4},0, {-16, -16},{0xBE, 0x66, 0xDB, 0xFF}}}, + {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, + {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, + {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, + {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_004_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(0, 2, 6, 0), + gsSP1Triangle(7, 6, 2, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(9, 8, 2, 0), + gsSP1Triangle(1, 9, 2, 0), + gsSP1Triangle(1, 10, 9, 0), + gsSP1Triangle(3, 10, 1, 0), + gsSP1Triangle(11, 10, 3, 0), + gsSP1Triangle(12, 11, 3, 0), + gsSP1Triangle(12, 3, 4, 0), + gsSP1Triangle(12, 4, 13, 0), + gsSP1Triangle(5, 13, 4, 0), + gsSP1Triangle(13, 5, 14, 0), + gsSP1Triangle(15, 14, 5, 0), + gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(6, 8, 10, 0), + gsSP1Triangle(6, 10, 11, 0), + gsSP1Triangle(5, 6, 11, 0), + gsSP1Triangle(5, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 32, 11, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(2, 6, 7, 0), + gsSP1Triangle(2, 4, 6, 0), + gsSP1Triangle(1, 4, 2, 0), + gsSP1Triangle(7, 10, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { + {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, + {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, + {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, + {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, + {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, + {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, + {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, + {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, + {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, + {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, + {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, + {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, + {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, + {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, + {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, + {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, + {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, + {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, + {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, + {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, + {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, + {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, + {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, + {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, + {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, + {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, + {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, + {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, + {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, + {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, + {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, + {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, + {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, + {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, + {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, + {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, + {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, + {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, + {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, + {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, + {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, + {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, + {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, + {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, + {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, + {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, + {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, + {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, + {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, + {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, + {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, + {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, + {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, + {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, +}; + +Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 0, 0), + gsSP1Triangle(0, 9, 7, 0), + gsSP1Triangle(2, 9, 0, 0), + gsSP1Triangle(10, 9, 2, 0), + gsSP1Triangle(11, 10, 2, 0), + gsSP1Triangle(12, 11, 2, 0), + gsSP1Triangle(2, 4, 12, 0), + gsSP1Triangle(13, 12, 4, 0), + gsSP1Triangle(13, 4, 5, 0), + gsSP1Triangle(14, 13, 5, 0), + gsSP1Triangle(14, 5, 7, 0), + gsSP1Triangle(15, 14, 7, 0), + gsSP1Triangle(10, 15, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 2, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(1, 12, 11, 0), + gsSP1Triangle(1, 13, 12, 0), + gsSP1Triangle(1, 14, 13, 0), + gsSP1Triangle(3, 14, 1, 0), + gsSP1Triangle(3, 15, 14, 0), + gsSP1Triangle(3, 4, 15, 0), + gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(7, 9, 3, 0), + gsSP1Triangle(9, 0, 3, 0), + gsSP1Triangle(9, 10, 0, 0), + gsSP1Triangle(0, 10, 1, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 12, 11, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 4, 0, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(7, 8, 1, 0), + gsSP1Triangle(1, 3, 7, 0), + gsSP1Triangle(3, 4, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { + {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, + {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, + {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, + {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, + {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, + {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, + {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, + {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, + {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, + {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, + {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, + {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, + {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, + {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, + {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, + {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, + {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, + {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, + {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, + {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, + {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, + {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, + {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, + {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, + {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, + {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, + {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, + {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, + {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, + {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, + {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, + {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, + {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, + {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, + {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, + {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, + {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, + {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, + {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, + {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, + {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, + {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, + {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, + {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, + {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, + {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, + {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, + {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, + {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, + {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, + {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, +}; + +Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 11, 14, 0), + gsSP1Triangle(14, 11, 15, 0), + gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(9, 4, 1, 0), + gsSP1Triangle(1, 10, 9, 0), + gsSP1Triangle(10, 1, 11, 0), + gsSP1Triangle(8, 9, 12, 0), + gsSP1Triangle(8, 12, 7, 0), + gsSP1Triangle(7, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 4, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSP1Triangle(14, 5, 7, 0), + gsSP1Triangle(7, 15, 14, 0), + gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(10, 11, 1, 0), + gsSP1Triangle(1, 11, 12, 0), + gsSP1Triangle(10, 1, 0, 0), + gsSP1Triangle(0, 13, 10, 0), + gsSP1Triangle(0, 14, 13, 0), + gsSP1Triangle(3, 14, 0, 0), + gsSP1Triangle(3, 6, 14, 0), + gsSP1Triangle(14, 6, 7, 0), + gsSP1Triangle(13, 14, 7, 0), + gsSP1Triangle(7, 9, 13, 0), + gsSP1Triangle(10, 13, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0[11] = { + {{{52, -3, 54},0, {7, 25},{0xDC, 0xEB, 0x78, 0xFF}}}, + {{{50, 16, 51},0, {7, 23},{0xC8, 0x47, 0x59, 0xFF}}}, + {{{56, -27, 45},0, {8, 27},{0xC2, 0xA4, 0x3F, 0xFF}}}, + {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, + {{{35, -33, 13},0, {13, 28},{0x10, 0xB3, 0x64, 0xFF}}}, + {{{52, 30, 26},0, {11, 22},{0xB9, 0x64, 0x20, 0xFF}}}, + {{{45, 28, 13},0, {13, 22},{0xAC, 0x5C, 0x19, 0xFF}}}, + {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, + {{{19, -6, 0},0, {16, 25},{0x8E, 0x38, 0x0, 0xFF}}}, + {{{18, -51, 12},0, {14, 30},{0xD3, 0xD6, 0x6F, 0xFF}}}, + {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_0[8] = { + {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, + {{{-3, 12, 1},0, {9, 27},{0x99, 0x20, 0x43, 0xFF}}}, + {{{7, 12, -19},0, {12, 27},{0xC3, 0x52, 0xB4, 0xFF}}}, + {{{4, -3, -29},0, {14, 25},{0x77, 0xF3, 0xD6, 0xFF}}}, + {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, + {{{-2, -23, 3},0, {8, 23},{0x9B, 0xC3, 0x30, 0xFF}}}, + {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, + {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_009_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_0 + 0, 5, 11), + gsSP1Triangle(11, 0, 1, 0), + gsSP1Triangle(12, 0, 11, 0), + gsSP1Triangle(12, 2, 0, 0), + gsSP1Triangle(2, 12, 3, 0), + gsSP1Triangle(12, 4, 3, 0), + gsSP1Triangle(4, 12, 13, 0), + gsSP1Triangle(13, 9, 4, 0), + gsSP1Triangle(13, 10, 9, 0), + gsSP1Triangle(8, 10, 13, 0), + gsSP1Triangle(13, 14, 8, 0), + gsSP1Triangle(15, 8, 14, 0), + gsSP1Triangle(8, 15, 7, 0), + gsSP1Triangle(15, 6, 7, 0), + gsSP1Triangle(15, 5, 6, 0), + gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_0 + 5, 3, 11), + gsSP1Triangle(11, 5, 12, 0), + gsSP1Triangle(11, 1, 5, 0), + gsSP1Triangle(13, 1, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_1[13] = { + {{{-2, -23, 3},0, {8, 23},{0x9B, 0xC3, 0x30, 0xFF}}}, + {{{78, -17, 7},0, {5, 23},{0xF8, 0x97, 0x48, 0xFF}}}, + {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, + {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, + {{{79, -17, -10},0, {9, 23},{0xB, 0x98, 0xB7, 0xFF}}}, + {{{14, -5, -25},0, {13, 25},{0x21, 0xFE, 0x85, 0xFF}}}, + {{{4, -3, -29},0, {14, 25},{0x77, 0xF3, 0xD6, 0xFF}}}, + {{{7, 12, -19},0, {12, 27},{0xC3, 0x52, 0xB4, 0xFF}}}, + {{{63, 10, -11},0, {9, 27},{0x8, 0x6B, 0xBB, 0xFF}}}, + {{{-3, 12, 1},0, {9, 27},{0x99, 0x20, 0x43, 0xFF}}}, + {{{61, 10, 6},0, {5, 27},{0xF6, 0x68, 0x49, 0xFF}}}, + {{{71, -3, 11},0, {4, 25},{0xF0, 0xFE, 0x7E, 0xFF}}}, + {{{75, -3, -16},0, {11, 25},{0x10, 0x5, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_009_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(2, 11, 9, 0), + gsSP1Triangle(2, 1, 11, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSP1Triangle(5, 12, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { + {{{61, 10, 6},0, {5, 27},{0xF6, 0x68, 0x49, 0xFF}}}, + {{{78, -17, 7},0, {5, 23},{0xF8, 0x97, 0x48, 0xFF}}}, + {{{71, -3, 11},0, {4, 25},{0xF0, 0xFE, 0x7E, 0xFF}}}, + {{{63, 10, -11},0, {9, 27},{0x8, 0x6B, 0xBB, 0xFF}}}, + {{{79, -17, -10},0, {9, 23},{0xB, 0x98, 0xB7, 0xFF}}}, + {{{75, -3, -16},0, {11, 25},{0x10, 0x5, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_0[6] = { + {{{-6, -3, 14},0, {4, 25},{0xE0, 0xF2, 0x7A, 0xFF}}}, + {{{-2, -17, 9},0, {5, 23},{0xED, 0x97, 0x45, 0xFF}}}, + {{{0, -17, -9},0, {9, 23},{0x5, 0x97, 0xB8, 0xFF}}}, + {{{-2, -3, -15},0, {10, 25},{0x12, 0x7, 0x82, 0xFF}}}, + {{{-8, 11, -8},0, {9, 27},{0xB, 0x6E, 0xC2, 0xFF}}}, + {{{-9, 11, 11},0, {4, 27},{0xEF, 0x61, 0x50, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(1, 6, 2, 0), + gsSP1Triangle(1, 7, 6, 0), + gsSP1Triangle(7, 1, 8, 0), + gsSP1Triangle(4, 8, 1, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(5, 9, 4, 0), + gsSP1Triangle(3, 9, 5, 0), + gsSP1Triangle(3, 10, 9, 0), + gsSP1Triangle(0, 10, 3, 0), + gsSP1Triangle(11, 10, 0, 0), + gsSP1Triangle(6, 11, 0, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_1[9] = { + {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, + {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, + {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, + {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, + {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, + {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, + {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, + {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, + {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_2[41] = { + {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, + {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, + {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, + {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, + {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, + {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, + {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, + {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, + {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, + {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, + {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, + {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, + {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, + {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, + {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, + {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, + {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, + {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, + {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, + {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, + {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, + {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, + {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, + {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, + {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, + {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, + {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, + {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, + {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, + {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, + {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, + {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, + {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, + {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, + {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, + {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, + {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, + {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, + {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, + {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, + {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSP1Triangle(14, 0, 15, 0), + gsSP1Triangle(15, 0, 2, 0), + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSP1Triangle(15, 14, 1, 0), + gsSP1Triangle(0, 15, 1, 0), + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(5, 1, 4, 0), + gsSP1Triangle(6, 1, 5, 0), + gsSP1Triangle(7, 1, 6, 0), + gsSP1Triangle(8, 1, 7, 0), + gsSP1Triangle(2, 1, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_3[16] = { + {{{2, -3, 16},0, {3, 25},{0xE6, 0xF6, 0x7C, 0xFF}}}, + {{{43, -12, 22},0, {-1, 24},{0xEF, 0xD0, 0x74, 0xFF}}}, + {{{43, -1, 22},0, {-1, 26},{0xF7, 0x2C, 0x77, 0xFF}}}, + {{{-2, -17, 9},0, {5, 23},{0xED, 0x97, 0x45, 0xFF}}}, + {{{-6, -3, 14},0, {4, 25},{0xE0, 0xF2, 0x7A, 0xFF}}}, + {{{-9, 11, 11},0, {4, 27},{0xEF, 0x61, 0x50, 0xFF}}}, + {{{42, 7, 13},0, {2, 27},{0x7, 0x75, 0x31, 0xFF}}}, + {{{42, 7, 1},0, {5, 27},{0x11, 0x77, 0xD6, 0xFF}}}, + {{{-8, 11, -8},0, {9, 27},{0xB, 0x6E, 0xC2, 0xFF}}}, + {{{42, -1, -7},0, {8, 26},{0x17, 0x31, 0x8D, 0xFF}}}, + {{{6, -3, -13},0, {10, 25},{0x11, 0x9, 0x82, 0xFF}}}, + {{{42, -12, -7},0, {8, 24},{0x13, 0xCC, 0x8E, 0xFF}}}, + {{{0, -17, -9},0, {9, 23},{0x5, 0x97, 0xB8, 0xFF}}}, + {{{42, -20, 1},0, {5, 23},{0x2, 0x87, 0xD9, 0xFF}}}, + {{{42, -20, 13},0, {2, 23},{0xF5, 0x8B, 0x31, 0xFF}}}, + {{{-2, -3, -15},0, {10, 25},{0x12, 0x7, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(0, 2, 5, 0), + gsSP1Triangle(5, 2, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 3, 0), + gsSP1Triangle(14, 3, 13, 0), + gsSP1Triangle(14, 1, 3, 0), + gsSP1Triangle(15, 10, 12, 0), + gsSP1Triangle(8, 10, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_0[61] = { + {{{-29, 59, 38},0, {1000, -7},{0xDD, 0x69, 0x3E, 0xFF}}}, + {{{-33, 39, 44},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{1, 53, 50},0, {1000, 32},{0xB, 0x61, 0x52, 0xFF}}}, + {{{-4, 38, 52},0, {864, 32},{0xF0, 0xC, 0x7D, 0xFF}}}, + {{{44, 28, 53},0, {896, 192},{0x2, 0x3, 0x7F, 0xFF}}}, + {{{47, 37, 52},0, {1000, 192},{0x1E, 0x5A, 0x54, 0xFF}}}, + {{{87, 13, 51},0, {896, 258},{0xA, 0xFC, 0x7F, 0xFF}}}, + {{{91, 22, 50},0, {1000, 258},{0x27, 0x58, 0x53, 0xFF}}}, + {{{112, 3, 47},0, {898, 323},{0x20, 0xEB, 0x79, 0xFF}}}, + {{{116, 13, 46},0, {1001, 323},{0x3C, 0x4C, 0x52, 0xFF}}}, + {{{143, -2, 31},0, {1001, 395},{0x5D, 0x36, 0x44, 0xFF}}}, + {{{140, -11, 31},0, {907, 395},{0x40, 0xCD, 0x61, 0xFF}}}, + {{{158, -16, 10},0, {1001, 436},{0x7F, 0xF9, 0xFD, 0xFF}}}, + {{{153, -22, 11},0, {915, 431},{0x56, 0xA2, 0x2, 0xFF}}}, + {{{140, -13, -10},0, {907, 395},{0x39, 0xC4, 0x9F, 0xFF}}}, + {{{143, -5, -11},0, {1001, 395},{0x57, 0x2D, 0xAF, 0xFF}}}, + {{{140, -13, -10},0, {907, 395},{0x39, 0xC4, 0x9F, 0xFF}}}, + {{{112, 0, -23},0, {898, 323},{0x1D, 0xE0, 0x88, 0xFF}}}, + {{{143, -5, -11},0, {1001, 395},{0x57, 0x2D, 0xAF, 0xFF}}}, + {{{115, 9, -24},0, {1001, 323},{0x3B, 0x44, 0xA6, 0xFF}}}, + {{{87, 9, -29},0, {896, 258},{0xC, 0xE7, 0x84, 0xFF}}}, + {{{90, 18, -30},0, {1000, 258},{0x2A, 0x4B, 0xA3, 0xFF}}}, + {{{43, 23, -34},0, {896, 192},{0x1, 0xEC, 0x83, 0xFF}}}, + {{{46, 33, -34},0, {1000, 192},{0x1F, 0x4E, 0xA0, 0xFF}}}, + {{{0, 49, -35},0, {1000, 32},{0xC, 0x53, 0xA1, 0xFF}}}, + {{{-5, 34, -34},0, {864, 32},{0xEF, 0xF4, 0x83, 0xFF}}}, + {{{-29, 56, -27},0, {1000, -7},{0xDA, 0x5A, 0xAF, 0xFF}}}, + {{{-33, 36, -27},0, {832, -7},{0xB5, 0x4, 0x9A, 0xFF}}}, + {{{-29, 59, 38},0, {1000, 1070},{0xDD, 0x69, 0x3E, 0xFF}}}, + {{{-41, 57, 24},0, {1000, 782},{0xA4, 0x55, 0x18, 0xFF}}}, + {{{-33, 39, 44},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{-45, 28, 18},0, {663, 770},{0x83, 0x7, 0x16, 0xFF}}}, + {{{-42, 56, -10},0, {1000, 722},{0xA4, 0x52, 0xE3, 0xFF}}}, + {{{-45, 28, 18},0, {663, 770},{0x83, 0x7, 0x16, 0xFF}}}, + {{{-41, 57, 24},0, {1000, 782},{0xA4, 0x55, 0x18, 0xFF}}}, + {{{-45, 26, -5},0, {663, 734},{0x84, 0x6, 0xE7, 0xFF}}}, + {{{-33, 36, -27},0, {805, 291},{0xB5, 0x4, 0x9A, 0xFF}}}, + {{{-29, 56, -27},0, {1000, 434},{0xDA, 0x5A, 0xAF, 0xFF}}}, + {{{-42, 56, -10},0, {433, 1520},{0xA4, 0x52, 0xE3, 0xFF}}}, + {{{-41, 57, 24},0, {456, 1520},{0xA4, 0x55, 0x18, 0xFF}}}, + {{{-29, 59, 38},0, {467, 1415},{0xDD, 0x69, 0x3E, 0xFF}}}, + {{{-29, 56, -27},0, {422, 1415},{0xDA, 0x5A, 0xAF, 0xFF}}}, + {{{0, 49, -35},0, {417, 1139},{0xC, 0x53, 0xA1, 0xFF}}}, + {{{1, 53, 50},0, {475, 1139},{0xB, 0x61, 0x52, 0xFF}}}, + {{{46, 33, -34},0, {417, 690},{0x1F, 0x4E, 0xA0, 0xFF}}}, + {{{47, 37, 52},0, {477, 690},{0x1E, 0x5A, 0x54, 0xFF}}}, + {{{90, 18, -30},0, {420, 268},{0x2A, 0x4B, 0xA3, 0xFF}}}, + {{{91, 22, 50},0, {475, 268},{0x27, 0x58, 0x53, 0xFF}}}, + {{{90, 18, -30},0, {420, 268},{0x2A, 0x4B, 0xA3, 0xFF}}}, + {{{91, 22, 50},0, {475, 268},{0x27, 0x58, 0x53, 0xFF}}}, + {{{115, 9, -24},0, {424, 23},{0x3B, 0x44, 0xA6, 0xFF}}}, + {{{116, 13, 46},0, {472, 23},{0x3C, 0x4C, 0x52, 0xFF}}}, + {{{143, -2, 31},0, {461, -261},{0x5D, 0x36, 0x44, 0xFF}}}, + {{{143, -5, -11},0, {432, -261},{0x57, 0x2D, 0xAF, 0xFF}}}, + {{{158, -16, 10},0, {446, -430},{0x7F, 0xF9, 0xFD, 0xFF}}}, + {{{-5, 34, -34},0, {15, 988},{0xEF, 0xF4, 0x83, 0xFF}}}, + {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, + {{{-33, 36, -27},0, {14, 992},{0xB5, 0x4, 0x9A, 0xFF}}}, + {{{77, -13, 50},0, {337, 2},{0x18, 0xBF, 0x6A, 0xFF}}}, + {{{77, -18, 43},0, {338, -1},{0x6, 0x99, 0x4A, 0xFF}}}, + {{{81, -16, 43},0, {339, 2},{0x42, 0xB2, 0x4B, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 48, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(2, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_1[16] = { + {{{77, -18, 43},0, {338, -1},{0x6, 0x99, 0x4A, 0xFF}}}, + {{{77, -13, 50},0, {337, 2},{0x18, 0xBF, 0x6A, 0xFF}}}, + {{{33, -3, 48},0, {321, -2},{0xC6, 0xAC, 0x4C, 0xFF}}}, + {{{36, 1, 55},0, {322, 1},{0xD4, 0xDF, 0x72, 0xFF}}}, + {{{74, -5, 49},0, {335, 8},{0xF5, 0xB, 0x7E, 0xFF}}}, + {{{78, 6, 51},0, {335, 20},{0xCB, 0xD5, 0x6B, 0xFF}}}, + {{{85, 10, 56},0, {337, 25},{0x30, 0xD, 0x75, 0xFF}}}, + {{{81, -16, 43},0, {339, 2},{0x42, 0xB2, 0x4B, 0xFF}}}, + {{{89, 9, 49},0, {339, 26},{0x65, 0xE7, 0x49, 0xFF}}}, + {{{87, 13, 51},0, {338, 29},{0x53, 0x40, 0x48, 0xFF}}}, + {{{44, 24, 58},0, {322, 24},{0xEB, 0x2F, 0x74, 0xFF}}}, + {{{44, 28, 53},0, {321, 28},{0xEE, 0x6C, 0x40, 0xFF}}}, + {{{40, 26, 51},0, {320, 26},{0xA4, 0x35, 0x46, 0xFF}}}, + {{{31, 1, 49},0, {320, 1},{0x9C, 0xF2, 0x4C, 0xFF}}}, + {{{43, 5, 51},0, {324, 8},{0x39, 0x8, 0x71, 0xFF}}}, + {{{47, 17, 52},0, {323, 20},{0x24, 0xBD, 0x65, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 5, 1, 0), + gsSP1Triangle(6, 1, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(3, 10, 13, 0), + gsSP1Triangle(3, 13, 2, 0), + gsSP1Triangle(3, 14, 10, 0), + gsSP1Triangle(14, 3, 4, 0), + gsSP1Triangle(14, 15, 10, 0), + gsSP1Triangle(5, 10, 15, 0), + gsSP1Triangle(6, 10, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_2[56] = { + {{{44, 28, 53},0, {0, 981},{0x2, 0x3, 0x7F, 0xFF}}}, + {{{-4, 38, 52},0, {0, 988},{0xF0, 0xC, 0x7D, 0xFF}}}, + {{{38, 11, 52},0, {0, 981},{0xFF, 0xEE, 0x7E, 0xFF}}}, + {{{-11, 20, 51},0, {1, 988},{0xE6, 0xEE, 0x7B, 0xFF}}}, + {{{-33, 39, 44},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, + {{{-35, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, + {{{-45, 28, 18},0, {6, 994},{0x83, 0x7, 0x16, 0xFF}}}, + {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, + {{{-45, -5, 9},0, {9, 992},{0x8C, 0xCC, 0x3, 0xFF}}}, + {{{-45, 26, -5},0, {10, 994},{0x84, 0x6, 0xE7, 0xFF}}}, + {{{-42, -8, -16},0, {13, 992},{0xA4, 0xC5, 0xBF, 0xFF}}}, + {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, + {{{-33, 36, -27},0, {14, 992},{0xB5, 0x4, 0x9A, 0xFF}}}, + {{{-21, -13, -20},0, {14, 988},{0xE3, 0xB6, 0x9D, 0xFF}}}, + {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, + {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, + {{{-21, -13, -20},0, {14, 988},{0xE3, 0xB6, 0x9D, 0xFF}}}, + {{{-5, 34, -34},0, {15, 988},{0xEF, 0xF4, 0x83, 0xFF}}}, + {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, + {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, + {{{43, 23, -34},0, {15, 981},{0x1, 0xEC, 0x83, 0xFF}}}, + {{{82, -2, 49},0, {1, 974},{0x7, 0xE4, 0x7C, 0xFF}}}, + {{{112, 3, 47},0, {1, 970},{0x20, 0xEB, 0x79, 0xFF}}}, + {{{87, 13, 51},0, {0, 974},{0xA, 0xFC, 0x7F, 0xFF}}}, + {{{102, -27, 38},0, {3, 970},{0x15, 0xA5, 0x57, 0xFF}}}, + {{{74, -26, 42},0, {3, 974},{0x2, 0xA7, 0x5B, 0xFF}}}, + {{{99, -36, 10},0, {8, 970},{0x6, 0x81, 0x3, 0xFF}}}, + {{{71, -36, 10},0, {9, 974},{0xFC, 0x81, 0x4, 0xFF}}}, + {{{73, -29, -17},0, {13, 974},{0x3, 0xA3, 0xA9, 0xFF}}}, + {{{101, -30, -13},0, {12, 970},{0x13, 0xA2, 0xAD, 0xFF}}}, + {{{87, 9, -29},0, {14, 974},{0xC, 0xE7, 0x84, 0xFF}}}, + {{{112, 0, -23},0, {13, 970},{0x1D, 0xE0, 0x88, 0xFF}}}, + {{{101, -30, -13},0, {12, 970},{0x13, 0xA2, 0xAD, 0xFF}}}, + {{{112, 0, -23},0, {13, 970},{0x1D, 0xE0, 0x88, 0xFF}}}, + {{{140, -13, -10},0, {11, 966},{0x39, 0xC4, 0x9F, 0xFF}}}, + {{{137, -32, 11},0, {8, 965},{0x34, 0x8C, 0x2, 0xFF}}}, + {{{153, -22, 11},0, {7, 963},{0x56, 0xA2, 0x2, 0xFF}}}, + {{{140, -11, 31},0, {3, 966},{0x40, 0xCD, 0x61, 0xFF}}}, + {{{102, -27, 38},0, {3, 970},{0x15, 0xA5, 0x57, 0xFF}}}, + {{{112, 3, 47},0, {1, 970},{0x20, 0xEB, 0x79, 0xFF}}}, + {{{99, -36, 10},0, {8, 970},{0x6, 0x81, 0x3, 0xFF}}}, + {{{38, 11, 52},0, {0, 981},{0xFF, 0xEE, 0x7E, 0xFF}}}, + {{{-11, 20, 51},0, {1, 988},{0xE6, 0xEE, 0x7B, 0xFF}}}, + {{{27, -22, 43},0, {3, 981},{0xF4, 0xAA, 0x5D, 0xFF}}}, + {{{-21, -11, 38},0, {4, 988},{0xE2, 0xB3, 0x61, 0xFF}}}, + {{{-35, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, + {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, + {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, + {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, + {{{-45, -5, 9},0, {9, 992},{0x8C, 0xCC, 0x3, 0xFF}}}, + {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, + {{{-42, -8, -16},0, {13, 992},{0xA4, 0xC5, 0xBF, 0xFF}}}, + {{{27, -22, 43},0, {3, 981},{0xF4, 0xAA, 0x5D, 0xFF}}}, + {{{-21, -11, 38},0, {4, 988},{0xE2, 0xB3, 0x61, 0xFF}}}, + {{{23, -33, 9},0, {9, 981},{0xF8, 0x81, 0x4, 0xFF}}}, + {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 10, 11, 0), + gsSP1Triangle(14, 10, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(2, 1, 4, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(6, 5, 8, 0), + gsSP1Triangle(9, 8, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 3, 6, 0), + gsSP1Triangle(8, 0, 3, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 48, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(4, 2, 6, 0), + gsSP1Triangle(6, 2, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_3[12] = { + {{{87, 13, 51},0, {-16, -16},{0xA, 0xFC, 0x7F, 0xFF}}}, + {{{44, 28, 53},0, {-16, -16},{0x2, 0x3, 0x7F, 0xFF}}}, + {{{82, -2, 49},0, {-16, -16},{0x7, 0xE4, 0x7C, 0xFF}}}, + {{{38, 11, 52},0, {-16, -16},{0xFF, 0xEE, 0x7E, 0xFF}}}, + {{{74, -26, 42},0, {-16, -16},{0x2, 0xA7, 0x5B, 0xFF}}}, + {{{27, -22, 43},0, {-16, -16},{0xF4, 0xAA, 0x5D, 0xFF}}}, + {{{71, -36, 10},0, {-16, -16},{0xFC, 0x81, 0x4, 0xFF}}}, + {{{23, -33, 9},0, {-16, -16},{0xF8, 0x81, 0x4, 0xFF}}}, + {{{26, -25, -21},0, {-16, -16},{0xF9, 0xA8, 0xA4, 0xFF}}}, + {{{73, -29, -17},0, {-16, -16},{0x3, 0xA3, 0xA9, 0xFF}}}, + {{{43, 23, -34},0, {-16, -16},{0x1, 0xEC, 0x83, 0xFF}}}, + {{{87, 9, -29},0, {-16, -16},{0xC, 0xE7, 0x84, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_0[4] = { + {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, + {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_1[4] = { + {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_1[] = { + gsSPVertex(super_sonic_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0[11] = { + {{{19, -6, 0},0, {16, 25},{0x8E, 0x38, 0x0, 0xFF}}}, + {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, + {{{45, 28, -13},0, {18, 22},{0xAC, 0x5C, 0xE7, 0xFF}}}, + {{{52, 30, -26},0, {20, 22},{0xB9, 0x64, 0xDF, 0xFF}}}, + {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, + {{{11, -51, -12},0, {18, 30},{0xAA, 0xDE, 0xA9, 0xFF}}}, + {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, + {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, + {{{56, -27, -45},0, {23, 27},{0xC2, 0xA4, 0xC1, 0xFF}}}, + {{{52, -3, -54},0, {25, 25},{0xDC, 0xEB, 0x88, 0xFF}}}, + {{{50, 16, -51},0, {24, 23},{0xC8, 0x47, 0xA7, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_0[8] = { + {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, + {{{-2, -23, -3},0, {23, 23},{0x9B, 0xC3, 0xD0, 0xFF}}}, + {{{-3, -5, -9},0, {24, 25},{0x9A, 0x48, 0xE9, 0xFF}}}, + {{{-3, 12, -1},0, {23, 27},{0x99, 0x20, 0xBD, 0xFF}}}, + {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, + {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, + {{{4, -3, 29},0, {18, 25},{0x77, 0xF3, 0x2A, 0xFF}}}, + {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_012_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_0 + 0, 5, 11), + gsSP1Triangle(0, 1, 11, 0), + gsSP1Triangle(11, 1, 2, 0), + gsSP1Triangle(11, 2, 3, 0), + gsSP1Triangle(12, 11, 3, 0), + gsSP1Triangle(12, 3, 10, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(13, 10, 9, 0), + gsSP1Triangle(14, 13, 9, 0), + gsSP1Triangle(14, 9, 8, 0), + gsSP1Triangle(8, 7, 14, 0), + gsSP1Triangle(14, 7, 6, 0), + gsSP1Triangle(6, 15, 14, 0), + gsSP1Triangle(15, 6, 5, 0), + gsSP1Triangle(15, 5, 4, 0), + gsSP1Triangle(0, 15, 4, 0), + gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_0 + 5, 3, 11), + gsSP1Triangle(11, 0, 12, 0), + gsSP1Triangle(13, 12, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_1[13] = { + {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, + {{{14, -5, 25},0, {19, 25},{0x21, 0xFE, 0x7B, 0xFF}}}, + {{{4, -3, 29},0, {18, 25},{0x77, 0xF3, 0x2A, 0xFF}}}, + {{{79, -17, 10},0, {22, 23},{0xB, 0x98, 0x49, 0xFF}}}, + {{{78, -17, -7},0, {26, 23},{0xF8, 0x97, 0xB8, 0xFF}}}, + {{{-2, -23, -3},0, {23, 23},{0x9B, 0xC3, 0xD0, 0xFF}}}, + {{{-3, -5, -9},0, {24, 25},{0x9A, 0x48, 0xE9, 0xFF}}}, + {{{71, -3, -11},0, {27, 25},{0xF0, 0xFE, 0x82, 0xFF}}}, + {{{-3, 12, -1},0, {23, 27},{0x99, 0x20, 0xBD, 0xFF}}}, + {{{61, 10, -6},0, {26, 27},{0xF6, 0x68, 0xB7, 0xFF}}}, + {{{63, 10, 11},0, {22, 27},{0x8, 0x6B, 0x45, 0xFF}}}, + {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, + {{{75, -3, 16},0, {21, 25},{0x10, 0x5, 0x7E, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_012_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(11, 1, 10, 0), + gsSP1Triangle(11, 2, 1, 0), + gsSP1Triangle(12, 10, 1, 0), + gsSP1Triangle(1, 3, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { + {{{63, 10, 11},0, {22, 27},{0x8, 0x6B, 0x45, 0xFF}}}, + {{{75, -3, 16},0, {21, 25},{0x10, 0x5, 0x7E, 0xFF}}}, + {{{79, -17, 10},0, {22, 23},{0xB, 0x98, 0x49, 0xFF}}}, + {{{78, -17, -7},0, {26, 23},{0xF8, 0x97, 0xB8, 0xFF}}}, + {{{61, 10, -6},0, {26, 27},{0xF6, 0x68, 0xB7, 0xFF}}}, + {{{71, -3, -11},0, {27, 25},{0xF0, 0xFE, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_0[6] = { + {{{-2, -3, 15},0, {21, 25},{0x12, 0x7, 0x7E, 0xFF}}}, + {{{0, -17, 9},0, {23, 23},{0x5, 0x97, 0x48, 0xFF}}}, + {{{-2, -17, -9},0, {27, 23},{0xED, 0x97, 0xBB, 0xFF}}}, + {{{-6, -3, -14},0, {28, 25},{0xE0, 0xF2, 0x86, 0xFF}}}, + {{{-9, 11, -11},0, {27, 27},{0xEF, 0x61, 0xB0, 0xFF}}}, + {{{-8, 11, 8},0, {23, 27},{0xB, 0x6E, 0x3E, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), + gsSP1Triangle(0, 1, 6, 0), + gsSP1Triangle(1, 2, 6, 0), + gsSP1Triangle(6, 2, 7, 0), + gsSP1Triangle(2, 3, 7, 0), + gsSP1Triangle(8, 7, 3, 0), + gsSP1Triangle(3, 9, 8, 0), + gsSP1Triangle(3, 5, 9, 0), + gsSP1Triangle(5, 4, 9, 0), + gsSP1Triangle(9, 4, 10, 0), + gsSP1Triangle(10, 4, 11, 0), + gsSP1Triangle(4, 0, 11, 0), + gsSP1Triangle(0, 6, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_1[9] = { + {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, + {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, + {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, + {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, + {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, + {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, + {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, + {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(5, 6, 2, 0), + gsSP1Triangle(6, 7, 2, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(8, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_2[41] = { + {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, + {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, + {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, + {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, + {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, + {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, + {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, + {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, + {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, + {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, + {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, + {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, + {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, + {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, + {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, + {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, + {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, + {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, + {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, + {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, + {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, + {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, + {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, + {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, + {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, + {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, + {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, + {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, + {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, + {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, + {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, + {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, + {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, + {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, + {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, + {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, + {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, + {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, + {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, + {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, + {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 2, 13, 0), + gsSP1Triangle(15, 13, 2, 0), + gsSP1Triangle(1, 15, 2, 0), + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSP1Triangle(14, 15, 0, 0), + gsSP1Triangle(0, 15, 1, 0), + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(5, 6, 2, 0), + gsSP1Triangle(6, 7, 2, 0), + gsSP1Triangle(7, 8, 2, 0), + gsSP1Triangle(8, 0, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_3[16] = { + {{{-2, -3, 15},0, {21, 25},{0x12, 0x7, 0x7E, 0xFF}}}, + {{{0, -17, 9},0, {23, 23},{0x5, 0x97, 0x48, 0xFF}}}, + {{{6, -3, 13},0, {21, 25},{0x11, 0x9, 0x7E, 0xFF}}}, + {{{42, -12, 7},0, {24, 24},{0x13, 0xCC, 0x72, 0xFF}}}, + {{{42, -20, -1},0, {26, 23},{0x2, 0x87, 0x27, 0xFF}}}, + {{{-2, -17, -9},0, {27, 23},{0xED, 0x97, 0xBB, 0xFF}}}, + {{{42, -20, -13},0, {29, 23},{0xF5, 0x8B, 0xCF, 0xFF}}}, + {{{43, -12, -22},0, {32, 24},{0xEF, 0xD0, 0x8C, 0xFF}}}, + {{{2, -3, -16},0, {28, 25},{0xE6, 0xF6, 0x84, 0xFF}}}, + {{{-6, -3, -14},0, {28, 25},{0xE0, 0xF2, 0x86, 0xFF}}}, + {{{-9, 11, -11},0, {27, 27},{0xEF, 0x61, 0xB0, 0xFF}}}, + {{{43, -1, -22},0, {32, 26},{0xF7, 0x2C, 0x89, 0xFF}}}, + {{{42, 7, -13},0, {29, 27},{0x7, 0x75, 0xCF, 0xFF}}}, + {{{42, 7, -1},0, {26, 27},{0x11, 0x77, 0x2A, 0xFF}}}, + {{{-8, 11, 8},0, {23, 27},{0xB, 0x6E, 0x3E, 0xFF}}}, + {{{42, -1, 7},0, {24, 26},{0x17, 0x31, 0x73, 0xFF}}}, +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSP1Triangle(2, 15, 14, 0), + gsSP1Triangle(14, 0, 2, 0), + gsSP1Triangle(2, 3, 15, 0), + gsSP1Triangle(8, 11, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_0[55] = { + {{{-5, 34, 28},0, {864, 32},{0xFD, 0xF6, 0x7F, 0xFF}}}, + {{{-29, 56, 27},0, {1000, -7},{0xE1, 0x57, 0x58, 0xFF}}}, + {{{-33, 36, 27},0, {832, -7},{0xC1, 0x2, 0x6E, 0xFF}}}, + {{{0, 49, 28},0, {1000, 32},{0x15, 0x53, 0x5D, 0xFF}}}, + {{{43, 23, 27},0, {896, 192},{0xFD, 0xF3, 0x7E, 0xFF}}}, + {{{46, 33, 28},0, {1000, 192},{0x19, 0x51, 0x5E, 0xFF}}}, + {{{90, 18, 30},0, {1000, 258},{0x23, 0x4B, 0x60, 0xFF}}}, + {{{87, 9, 29},0, {896, 258},{0x4, 0xEA, 0x7D, 0xFF}}}, + {{{115, 9, 23},0, {1001, 323},{0x3B, 0x44, 0x59, 0xFF}}}, + {{{112, 0, 23},0, {898, 323},{0x1D, 0xE0, 0x78, 0xFF}}}, + {{{143, -5, 11},0, {1001, 395},{0x57, 0x2D, 0x51, 0xFF}}}, + {{{140, -13, 9},0, {907, 395},{0x39, 0xC4, 0x61, 0xFF}}}, + {{{158, -16, -10},0, {1001, 436},{0x7F, 0xF9, 0x3, 0xFF}}}, + {{{153, -22, -11},0, {915, 431},{0x56, 0xA2, 0xFE, 0xFF}}}, + {{{140, -11, -31},0, {907, 395},{0x40, 0xCD, 0x9F, 0xFF}}}, + {{{143, -2, -32},0, {1001, 395},{0x5D, 0x36, 0xBC, 0xFF}}}, + {{{140, -11, -31},0, {907, 395},{0x40, 0xCD, 0x9F, 0xFF}}}, + {{{112, 3, -47},0, {898, 323},{0x20, 0xEB, 0x87, 0xFF}}}, + {{{143, -2, -32},0, {1001, 395},{0x5D, 0x36, 0xBC, 0xFF}}}, + {{{115, 13, -46},0, {1001, 323},{0x3C, 0x4C, 0xAE, 0xFF}}}, + {{{90, 22, -50},0, {1000, 258},{0x27, 0x58, 0xAD, 0xFF}}}, + {{{87, 13, -51},0, {896, 258},{0xA, 0xFC, 0x81, 0xFF}}}, + {{{47, 37, -52},0, {1000, 192},{0x1E, 0x5A, 0xAC, 0xFF}}}, + {{{44, 28, -53},0, {896, 192},{0x2, 0x3, 0x81, 0xFF}}}, + {{{1, 53, -49},0, {1000, 32},{0xB, 0x61, 0xAE, 0xFF}}}, + {{{-5, 38, -52},0, {864, 32},{0xF0, 0xC, 0x83, 0xFF}}}, + {{{-33, 39, -44},0, {832, -7},{0xB2, 0x13, 0x9D, 0xFF}}}, + {{{-29, 59, -38},0, {1000, -7},{0xDD, 0x69, 0xC2, 0xFF}}}, + {{{-33, 36, 27},0, {805, 291},{0xC1, 0x2, 0x6E, 0xFF}}}, + {{{-29, 56, 27},0, {1000, 434},{0xE1, 0x57, 0x58, 0xFF}}}, + {{{-42, 56, 10},0, {1000, 722},{0xA4, 0x52, 0x1E, 0xFF}}}, + {{{-45, 26, 5},0, {663, 734},{0x84, 0x6, 0x19, 0xFF}}}, + {{{-45, 26, 5},0, {663, 734},{0x84, 0x6, 0x19, 0xFF}}}, + {{{-42, 56, 10},0, {1000, 722},{0xA4, 0x52, 0x1E, 0xFF}}}, + {{{-45, 28, -18},0, {663, 770},{0x83, 0x7, 0xEA, 0xFF}}}, + {{{-42, 57, -23},0, {1000, 782},{0xA4, 0x55, 0xE8, 0xFF}}}, + {{{-33, 39, -44},0, {805, 1213},{0xB2, 0x13, 0x9D, 0xFF}}}, + {{{-29, 59, -38},0, {1000, 1070},{0xDD, 0x69, 0xC2, 0xFF}}}, + {{{-42, 56, 10},0, {434, 1520},{0xA4, 0x52, 0x1E, 0xFF}}}, + {{{-29, 59, -38},0, {468, 1415},{0xDD, 0x69, 0xC2, 0xFF}}}, + {{{-42, 57, -23},0, {457, 1520},{0xA4, 0x55, 0xE8, 0xFF}}}, + {{{-29, 56, 27},0, {423, 1415},{0xE1, 0x57, 0x58, 0xFF}}}, + {{{0, 49, 28},0, {418, 1139},{0x15, 0x53, 0x5D, 0xFF}}}, + {{{1, 53, -49},0, {476, 1139},{0xB, 0x61, 0xAE, 0xFF}}}, + {{{46, 33, 28},0, {418, 690},{0x19, 0x51, 0x5E, 0xFF}}}, + {{{47, 37, -52},0, {478, 690},{0x1E, 0x5A, 0xAC, 0xFF}}}, + {{{90, 18, 30},0, {421, 268},{0x23, 0x4B, 0x60, 0xFF}}}, + {{{90, 22, -50},0, {476, 268},{0x27, 0x58, 0xAD, 0xFF}}}, + {{{90, 18, 30},0, {421, 268},{0x23, 0x4B, 0x60, 0xFF}}}, + {{{115, 9, 23},0, {425, 23},{0x3B, 0x44, 0x59, 0xFF}}}, + {{{90, 22, -50},0, {476, 268},{0x27, 0x58, 0xAD, 0xFF}}}, + {{{115, 13, -46},0, {473, 23},{0x3C, 0x4C, 0xAE, 0xFF}}}, + {{{143, -2, -32},0, {462, -261},{0x5D, 0x36, 0xBC, 0xFF}}}, + {{{143, -5, 11},0, {433, -261},{0x57, 0x2D, 0x51, 0xFF}}}, + {{{158, -16, -10},0, {447, -430},{0x7F, 0xF9, 0x3, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 7, 6, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(11, 7, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_1[46] = { + {{{26, -25, 21},0, {20, 981},{0xFA, 0xAE, 0x61, 0xFF}}}, + {{{43, 23, 27},0, {20, 981},{0xFD, 0xF3, 0x7E, 0xFF}}}, + {{{-5, 34, 28},0, {20, 988},{0xFD, 0xF6, 0x7F, 0xFF}}}, + {{{-21, -13, 20},0, {21, 988},{0xE6, 0xB9, 0x66, 0xFF}}}, + {{{-36, 23, 26},0, {21, 992},{0xBB, 0xF9, 0x6B, 0xFF}}}, + {{{-33, 36, 27},0, {21, 992},{0xC1, 0x2, 0x6E, 0xFF}}}, + {{{-45, 26, 5},0, {24, 994},{0x84, 0x6, 0x19, 0xFF}}}, + {{{-42, -8, 16},0, {21, 992},{0xA5, 0xC5, 0x42, 0xFF}}}, + {{{-45, -5, -9},0, {26, 992},{0x8C, 0xCC, 0xFD, 0xFF}}}, + {{{-45, 28, -18},0, {28, 994},{0x83, 0x7, 0xEA, 0xFF}}}, + {{{-42, -6, -36},0, {30, 992},{0xAA, 0xCA, 0xB4, 0xFF}}}, + {{{-35, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, + {{{-33, 39, -44},0, {33, 992},{0xB2, 0x13, 0x9D, 0xFF}}}, + {{{-11, 20, -51},0, {34, 988},{0xE5, 0xEE, 0x85, 0xFF}}}, + {{{-5, 38, -52},0, {35, 988},{0xF0, 0xC, 0x83, 0xFF}}}, + {{{38, 11, -52},0, {34, 981},{0xFE, 0xEE, 0x82, 0xFF}}}, + {{{44, 28, -53},0, {35, 981},{0x2, 0x3, 0x81, 0xFF}}}, + {{{38, 11, -52},0, {34, 981},{0xFE, 0xEE, 0x82, 0xFF}}}, + {{{-5, 38, -52},0, {35, 988},{0xF0, 0xC, 0x83, 0xFF}}}, + {{{27, -22, -43},0, {32, 981},{0xF4, 0xAA, 0xA3, 0xFF}}}, + {{{-11, 20, -51},0, {34, 988},{0xE5, 0xEE, 0x85, 0xFF}}}, + {{{-21, -11, -37},0, {30, 988},{0xE2, 0xB3, 0x9F, 0xFF}}}, + {{{-15, -30, -7},0, {25, 987},{0xD8, 0x88, 0xFF, 0xFF}}}, + {{{23, -33, -9},0, {25, 981},{0xF8, 0x81, 0xFC, 0xFF}}}, + {{{26, -25, 21},0, {20, 981},{0xFA, 0xAE, 0x61, 0xFF}}}, + {{{-21, -13, 20},0, {21, 988},{0xE6, 0xB9, 0x66, 0xFF}}}, + {{{-42, -8, 16},0, {21, 992},{0xA5, 0xC5, 0x42, 0xFF}}}, + {{{-36, 23, 26},0, {21, 992},{0xBB, 0xF9, 0x6B, 0xFF}}}, + {{{-45, -5, -9},0, {26, 992},{0x8C, 0xCC, 0xFD, 0xFF}}}, + {{{-42, -6, -36},0, {30, 992},{0xAA, 0xCA, 0xB4, 0xFF}}}, + {{{-35, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, + {{{82, -2, -49},0, {34, 974},{0x7, 0xE4, 0x84, 0xFF}}}, + {{{87, 13, -51},0, {35, 974},{0xA, 0xFC, 0x81, 0xFF}}}, + {{{112, 3, -47},0, {34, 970},{0x20, 0xEB, 0x87, 0xFF}}}, + {{{102, -27, -38},0, {31, 970},{0x15, 0xA5, 0xA9, 0xFF}}}, + {{{140, -11, -31},0, {31, 966},{0x40, 0xCD, 0x9F, 0xFF}}}, + {{{137, -32, -11},0, {27, 965},{0x34, 0x8C, 0xFE, 0xFF}}}, + {{{153, -22, -11},0, {27, 963},{0x56, 0xA2, 0xFE, 0xFF}}}, + {{{140, -13, 9},0, {24, 966},{0x39, 0xC4, 0x61, 0xFF}}}, + {{{101, -30, 13},0, {22, 970},{0x13, 0xA2, 0x53, 0xFF}}}, + {{{112, 0, 23},0, {22, 970},{0x1D, 0xE0, 0x78, 0xFF}}}, + {{{87, 9, 29},0, {21, 974},{0x4, 0xEA, 0x7D, 0xFF}}}, + {{{73, -29, 17},0, {21, 974},{0x1, 0xA5, 0x59, 0xFF}}}, + {{{99, -36, -11},0, {26, 970},{0x6, 0x81, 0xFD, 0xFF}}}, + {{{71, -36, -11},0, {26, 974},{0xFC, 0x81, 0xFC, 0xFF}}}, + {{{74, -26, -42},0, {32, 974},{0x2, 0xA7, 0xA5, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_1[] = { + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(6, 10, 12, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(5, 6, 13, 0), + gsSP1Triangle(5, 13, 14, 0), + gsSP1Triangle(4, 5, 14, 0), + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(3, 12, 14, 0), + gsSP1Triangle(14, 0, 3, 0), + gsSP1Triangle(12, 3, 5, 0), + gsSP1Triangle(12, 5, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_2[12] = { + {{{73, -29, 17},0, {-16, -16},{0x1, 0xA5, 0x59, 0xFF}}}, + {{{87, 9, 29},0, {-16, -16},{0x4, 0xEA, 0x7D, 0xFF}}}, + {{{43, 23, 27},0, {-16, -16},{0xFD, 0xF3, 0x7E, 0xFF}}}, + {{{26, -25, 21},0, {-16, -16},{0xFA, 0xAE, 0x61, 0xFF}}}, + {{{71, -36, -11},0, {-16, -16},{0xFC, 0x81, 0xFC, 0xFF}}}, + {{{23, -33, -9},0, {-16, -16},{0xF8, 0x81, 0xFC, 0xFF}}}, + {{{27, -22, -43},0, {-16, -16},{0xF4, 0xAA, 0xA3, 0xFF}}}, + {{{74, -26, -42},0, {-16, -16},{0x2, 0xA7, 0xA5, 0xFF}}}, + {{{38, 11, -52},0, {-16, -16},{0xFE, 0xEE, 0x82, 0xFF}}}, + {{{82, -2, -49},0, {-16, -16},{0x7, 0xE4, 0x84, 0xFF}}}, + {{{44, 28, -53},0, {-16, -16},{0x2, 0x3, 0x81, 0xFF}}}, + {{{87, 13, -51},0, {-16, -16},{0xA, 0xFC, 0x81, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_2[] = { + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_3[16] = { + {{{85, 10, -56},0, {337, 25},{0x30, 0xD, 0x8B, 0xFF}}}, + {{{87, 13, -51},0, {338, 29},{0x53, 0x40, 0xB8, 0xFF}}}, + {{{89, 9, -49},0, {339, 26},{0x65, 0xE7, 0xB6, 0xFF}}}, + {{{44, 24, -58},0, {322, 24},{0xEB, 0x2F, 0x8C, 0xFF}}}, + {{{78, 6, -51},0, {335, 20},{0xCB, 0xD5, 0x95, 0xFF}}}, + {{{77, -13, -50},0, {337, 2},{0x18, 0xBF, 0x96, 0xFF}}}, + {{{81, -16, -43},0, {339, 2},{0x42, 0xB2, 0xB5, 0xFF}}}, + {{{77, -18, -43},0, {338, -1},{0x6, 0x99, 0xB6, 0xFF}}}, + {{{33, -3, -48},0, {321, -2},{0xC6, 0xAC, 0xB4, 0xFF}}}, + {{{36, 1, -55},0, {322, 1},{0xD4, 0xDF, 0x8E, 0xFF}}}, + {{{31, 1, -49},0, {320, 1},{0x9B, 0xF2, 0xB4, 0xFF}}}, + {{{40, 26, -51},0, {320, 26},{0xA4, 0x35, 0xBA, 0xFF}}}, + {{{44, 28, -53},0, {321, 28},{0xEE, 0x6C, 0xC0, 0xFF}}}, + {{{43, 5, -51},0, {324, 8},{0x39, 0x8, 0x8F, 0xFF}}}, + {{{47, 17, -52},0, {323, 20},{0x24, 0xBD, 0x9B, 0xFF}}}, + {{{74, -5, -49},0, {335, 8},{0xF5, 0xB, 0x82, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_3[] = { + gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 3, 0), + gsSP1Triangle(3, 10, 11, 0), + gsSP1Triangle(12, 3, 11, 0), + gsSP1Triangle(12, 1, 3, 0), + gsSP1Triangle(9, 3, 13, 0), + gsSP1Triangle(13, 3, 14, 0), + gsSP1Triangle(4, 14, 3, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSP1Triangle(5, 9, 15, 0), + gsSP1Triangle(5, 15, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_0[4] = { + {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, + {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_0[] = { + gsSPVertex(super_sonic_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_1[4] = { + {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, + {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, +}; + +Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_1[] = { + gsSPVertex(super_sonic_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_super_sonic_sonic_skin[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_sonic_skin_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_super_surface[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_super_surface_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_sonic_sonic_super_surface[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_metal_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4031, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_metal_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_sonic_metal_v4[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_black_material_f3d_001_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_black_material_f3d_001_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_mouth_none[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_sonic_mouth_none_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_super_eye_texture[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_super_eye_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_super_eye_texture_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_super_surface_replacer[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(1983, 1983, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_super_surface_replacer_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_sonic_super_surface_replacer[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_mouth[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_mouth_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_sonic_mouth_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_super_eye_half[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_super_eye_half_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_super_eye_half_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_eye_closed[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_soniceyenew_closed_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_sonic_eye_closed_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_eye_dead_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_soniceyenew_dead_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_sonic_eye_dead_001_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_gloves_001_v4_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_gloves_001_v4_001_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_gloves_v4_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_gloves_v4_001_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_t128[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_new2_rgba16_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(super_sonic_sonic_t128_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_white_material_f3d_v4[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_white_material_f3d_v4_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_buckle[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_sonic_buckle_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_shoe[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_sonic_shoe_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_sonic_white[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(super_sonic_sonic_white_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_wing_2_001_v4_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_wing_2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_sonic_wing_2_001_v4_001[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx mat_super_sonic_wing_1_001_v4_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), + gsSPClearGeometryMode(G_CULL_BACK), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_wing1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_super_sonic_wing_1_001_v4_001[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_001_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_texture), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_texture), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_half), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_sonic_eye_closed), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_texture), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_texture), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6[] = { + gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_mouth_none), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_super_eye_texture), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_super_surface_replacer), + gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_003_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_003_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_003_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_004_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_004_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_0), + gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_003_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_gloves_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_003_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_003_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_gloves_v4_001), + gsSPDisplayList(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_006_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_006_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_006_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_007_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_007_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_skin), + gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_0), + gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_004_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_gloves_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_004_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_004_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_gloves_v4_001), + gsSPDisplayList(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_gloves_v4_001), + gsSPDisplayList(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_009_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_009_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_0), + gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_010_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_sonic_t128), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_white_material_f3d_v4), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_t128), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_buckle), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_shoe), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_sonic_white), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_002_mesh_layer_4[] = { + gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_012_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_012_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_0), + gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_1), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_013_skinned_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPDisplayList(mat_super_sonic_sonic_t128), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_white_material_f3d_v4), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_sonic_super_surface), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1[] = { + gsSPDisplayList(mat_super_sonic_sonic_t128), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_0), + gsSPDisplayList(mat_super_sonic_sonic_shoe), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_1), + gsSPDisplayList(mat_super_sonic_sonic_white), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_2), + gsSPDisplayList(mat_super_sonic_sonic_buckle), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_3), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPDisplayList(mat_super_sonic_metal_v4), + gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_super_sonic_metal_v4), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_001_mesh_layer_4[] = { + gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { + gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_0), + gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), + gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), + gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_1), + gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), + gsSPEndDisplayList(), +}; + +Gfx super_sonic_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/actors/super_sonic/sonic_mouth.rgba16.png b/actors/super_sonic/sonic_mouth.rgba16.png new file mode 100644 index 00000000..c728d40b Binary files /dev/null and b/actors/super_sonic/sonic_mouth.rgba16.png differ diff --git a/actors/super_sonic/sonic_new2_rgba16.rgba16.png b/actors/super_sonic/sonic_new2_rgba16.rgba16.png new file mode 100644 index 00000000..b1a02ad9 Binary files /dev/null and b/actors/super_sonic/sonic_new2_rgba16.rgba16.png differ diff --git a/actors/super_sonic/sonic_super_surface.rgba16.png b/actors/super_sonic/sonic_super_surface.rgba16.png new file mode 100644 index 00000000..6d09216c Binary files /dev/null and b/actors/super_sonic/sonic_super_surface.rgba16.png differ diff --git a/actors/super_sonic/sonic_super_surface_replacer.rgba16.png b/actors/super_sonic/sonic_super_surface_replacer.rgba16.png new file mode 100644 index 00000000..6d09216c Binary files /dev/null and b/actors/super_sonic/sonic_super_surface_replacer.rgba16.png differ diff --git a/actors/super_sonic/soniceyenew_closed.rgba16.png b/actors/super_sonic/soniceyenew_closed.rgba16.png new file mode 100644 index 00000000..219a12e9 Binary files /dev/null and b/actors/super_sonic/soniceyenew_closed.rgba16.png differ diff --git a/actors/super_sonic/soniceyenew_dead.rgba16.png b/actors/super_sonic/soniceyenew_dead.rgba16.png new file mode 100644 index 00000000..73b833d3 Binary files /dev/null and b/actors/super_sonic/soniceyenew_dead.rgba16.png differ diff --git a/actors/super_sonic/super_eye.rgba16.png b/actors/super_sonic/super_eye.rgba16.png new file mode 100644 index 00000000..1b5a736b Binary files /dev/null and b/actors/super_sonic/super_eye.rgba16.png differ diff --git a/actors/super_sonic/super_eye_half.rgba16.png b/actors/super_sonic/super_eye_half.rgba16.png new file mode 100644 index 00000000..df7ffeb9 Binary files /dev/null and b/actors/super_sonic/super_eye_half.rgba16.png differ diff --git a/actors/super_sonic/wing1.rgba16.png b/actors/super_sonic/wing1.rgba16.png new file mode 100644 index 00000000..394cbd58 Binary files /dev/null and b/actors/super_sonic/wing1.rgba16.png differ diff --git a/actors/super_sonic/wing_2.rgba16.png b/actors/super_sonic/wing_2.rgba16.png new file mode 100644 index 00000000..7be615e0 Binary files /dev/null and b/actors/super_sonic/wing_2.rgba16.png differ diff --git a/actors/swoop/swoop_wing.rgba16.png b/actors/swoop/swoop_wing.rgba16.png new file mode 100644 index 00000000..033f3035 Binary files /dev/null and b/actors/swoop/swoop_wing.rgba16.png differ diff --git a/actors/ukiki/geo.inc.c b/actors/ukiki/geo.inc.c index 72d864c9..64d8dd9a 100644 --- a/actors/ukiki/geo.inc.c +++ b/actors/ukiki/geo.inc.c @@ -22,14 +22,24 @@ const GeoLayout ukiki_geo[] = { GEO_OPEN_NODE(), GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), + GEO_OPEN_NODE(), + GEO_SCALE(0x00, 0x40000), + GEO_OPEN_NODE(), + GEO_BRANCH_AND_LINK(marios_cap_geo), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), + GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), + GEO_OPEN_NODE(), + GEO_SCALE(0x00, 0x40000), + GEO_OPEN_NODE(), + GEO_BRANCH_AND_LINK(marios_cap_geo), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/ukiki/geo.inc.c.rej b/actors/ukiki/geo.inc.c.rej new file mode 100644 index 00000000..ac211e11 --- /dev/null +++ b/actors/ukiki/geo.inc.c.rej @@ -0,0 +1,28 @@ +diff a/actors/ukiki/geo.inc.c b/actors/ukiki/geo.inc.c (rejected hunks) +@@ -22,14 +22,24 @@ const GeoLayout ukiki_geo[] = { + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), + GEO_OPEN_NODE(), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(0x00, 0x40000), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), + GEO_OPEN_NODE(), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(0x00, 0x40000), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), diff --git a/asm/crash.s b/asm/crash.s new file mode 100644 index 00000000..0b2a5574 --- /dev/null +++ b/asm/crash.s @@ -0,0 +1,153 @@ +# SM64 Crash Handler +# See Readme below. + +.include "macros.inc" + +/* --------------------------------------------------------------- + * IMPORTANT README: + * --------------------------------------------------------------- + * Frame buffer emulation is required. To enable it in GlideN64, + * check "Emulate frame buffer" and "Render frame buffer to output" + * in the "Frame buffer" tab. + * + * Your emulator's CPU core style should be set to interpreter for best results. + * + * See the DEBUG_ASSERT macro on how to call the crash screen for + * detected exceptions. + * + */ + +.set noat +.set noreorder +.set gp=64 + +.set COP0_CAUSE, $13 +.set COP0_EPC, $14 +.set COP0_BADVADDR, $8 + +glabel crashFont + .incbin "enhancements/crash_font.bin" + .align 4 + +glabel exceptionRegContext + .fill 0x108 + +glabel pAssertFile + .dword 0 +glabel nAssertLine + .dword 0 +glabel pAssertExpression + .dword 0 +glabel nAssertStopProgram + .dword 0 + +glabel _n64_assert + lui $at, %hi(pAssertFile) + sw $a0, %lo(pAssertFile)($at) + lui $at, %hi(nAssertLine) + sw $a1, %lo(nAssertLine)($at) + lui $at, %hi(pAssertExpression) + sw $a2, %lo(pAssertExpression)($at) + lui $at, %hi(nAssertStopProgram) + sw $a3, %lo(nAssertStopProgram)($at) + beqz $a3, .end_2 + nop + syscall # trigger crash screen +.end_2: + jr $ra + nop + +glabel cop0_get_cause + jr $ra + mfc0 $v0, COP0_CAUSE + +glabel cop0_get_epc + jr $ra + mfc0 $v0, COP0_EPC + +glabel cop0_get_badvaddr + jr $ra + mfc0 $v0, COP0_BADVADDR + +# If the error code field of cop0's cause register is non-zero, +# draw crash details to the screen and hang +# +# If there wasn't an error, continue to the original handler + +glabel __crash_handler_entry + mfc0 $k1, COP0_CAUSE + andi $k1, $k1, (0x1F << 2) + beqzl $k1, .end2 # exit if ExCode is 0 + lui $k0, %hi(__osException) + la $k0, exceptionRegContext + sd $zero, 0x018 ($k0) + sd $at, 0x020 ($k0) + sd $v0, 0x028 ($k0) + sd $v1, 0x030 ($k0) + sd $a0, 0x038 ($k0) + sd $a1, 0x040 ($k0) + sd $a2, 0x048 ($k0) + sd $a3, 0x050 ($k0) + sd $t0, 0x058 ($k0) + sd $t1, 0x060 ($k0) + sd $t2, 0x068 ($k0) + sd $t3, 0x070 ($k0) + sd $t4, 0x078 ($k0) + sd $t5, 0x080 ($k0) + sd $t6, 0x088 ($k0) + sd $t7, 0x090 ($k0) + sd $s0, 0x098 ($k0) + sd $s1, 0x0A0 ($k0) + sd $s2, 0x0A8 ($k0) + sd $s3, 0x0B0 ($k0) + sd $s4, 0x0B8 ($k0) + sd $s5, 0x0C0 ($k0) + sd $s6, 0x0C8 ($k0) + sd $s7, 0x0D0 ($k0) + sd $t8, 0x0D8 ($k0) + sd $t9, 0x0E0 ($k0) + sd $gp, 0x0E8 ($k0) + sd $sp, 0x0F0 ($k0) + sd $fp, 0x0F8 ($k0) + sd $ra, 0x100 ($k0) + # cop unusable exception fired twice on startup so we'll ignore it for now + li $t0, (0x0B << 2) + beq $k1, $t0, .end + nop + jal show_crash_screen_and_hang + nop + .end: + ld $at, 0x020 ($k0) + ld $v0, 0x028 ($k0) + ld $v1, 0x030 ($k0) + ld $a0, 0x038 ($k0) + ld $a1, 0x040 ($k0) + ld $a2, 0x048 ($k0) + ld $a3, 0x050 ($k0) + ld $t0, 0x058 ($k0) + ld $t1, 0x060 ($k0) + ld $t2, 0x068 ($k0) + ld $t3, 0x070 ($k0) + ld $t4, 0x078 ($k0) + ld $t5, 0x080 ($k0) + ld $t6, 0x088 ($k0) + ld $t7, 0x090 ($k0) + ld $s0, 0x098 ($k0) + ld $s1, 0x0A0 ($k0) + ld $s2, 0x0A8 ($k0) + ld $s3, 0x0B0 ($k0) + ld $s4, 0x0B8 ($k0) + ld $s5, 0x0C0 ($k0) + ld $s6, 0x0C8 ($k0) + ld $s7, 0x0D0 ($k0) + ld $t8, 0x0D8 ($k0) + ld $t9, 0x0E0 ($k0) + ld $gp, 0x0E8 ($k0) + ld $sp, 0x0F0 ($k0) + ld $fp, 0x0F8 ($k0) + ld $ra, 0x100 ($k0) + lui $k0, %hi(__osException) + .end2: + addiu $k0, $k0, %lo(__osException) + jr $k0 # run the original handler + nop diff --git a/assets/anims/anim_27.inc.c b/assets/anims/anim_27.inc.c index 565308e6..d710e731 100644 --- a/assets/anims/anim_27.inc.c +++ b/assets/anims/anim_27.inc.c @@ -12,590 +12,554 @@ static const struct Animation anim_27[] = { static const u16 anim_27_indices[] = { - 0x0070, 0x0001, 0x0070, 0x0071, 0x0070, 0x00E1, 0x0001, 0x0000, 0x0001, 0x0151, 0x0001, 0x0000, - 0x0070, 0x103A, 0x0070, 0x10AA, 0x0070, 0x111A, - 0x0070, 0x0EEA, 0x0070, 0x0F5A, 0x0070, 0x0FCA, - 0x0070, 0x0D9A, 0x0070, 0x0E0A, 0x0070, 0x0E7A, - 0x0001, 0x0D96, 0x0001, 0x0D97, 0x0001, 0x0D98, - 0x0070, 0x0312, 0x0070, 0x0382, 0x0070, 0x03F2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x02A2, - 0x0070, 0x0152, 0x0070, 0x01C2, 0x0070, 0x0232, - 0x0001, 0x0D92, 0x0001, 0x0D93, 0x0001, 0x0D94, - 0x0070, 0x0622, 0x0070, 0x0692, 0x0070, 0x0702, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x05B2, - 0x0070, 0x0462, 0x0070, 0x04D2, 0x0070, 0x0542, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D95, - 0x0070, 0x0C42, 0x0070, 0x0CB2, 0x0070, 0x0D22, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x0BD2, - 0x0070, 0x0A82, 0x0070, 0x0AF2, 0x0070, 0x0B62, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D99, - 0x0070, 0x0932, 0x0070, 0x09A2, 0x0070, 0x0A12, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x08C2, - 0x0070, 0x0772, 0x0070, 0x07E2, 0x0070, 0x0852, + 0x0001, 0x0000, 0x0051, 0x0001, 0x002A, 0x0052, 0x0046, 0x007C, 0x005B, + 0x00C2, 0x004E, 0x011D, 0x005B, 0x016B, 0x0051, 0x01C6, 0x002A, 0x0217, + 0x005D, 0x0241, 0x005D, 0x029E, 0x005E, 0x02FB, 0x0051, 0x0359, 0x0051, + 0x03AA, 0x0051, 0x03FB, 0x0001, 0x044C, 0x0001, 0x044D, 0x0001, 0x044E, + 0x0051, 0x044F, 0x0051, 0x04A0, 0x0051, 0x04F1, 0x0051, 0x0542, 0x0051, + 0x0593, 0x0051, 0x05E4, 0x0051, 0x0635, 0x0051, 0x0686, 0x0051, 0x06D7, + 0x0042, 0x0728, 0x0042, 0x076A, 0x0042, 0x07AC, 0x0051, 0x07EE, 0x0051, + 0x083F, 0x0051, 0x0890, 0x0071, 0x08E1, 0x0071, 0x0952, 0x0071, 0x09C3, + 0x0071, 0x0A34, 0x0071, 0x0AA5, 0x0071, 0x0B16, 0x0049, 0x0B87, 0x0048, + 0x0BD0, 0x0049, 0x0C18, 0x0049, 0x0C61, 0x0049, 0x0CAA, 0x0049, 0x0CF3, + 0x0051, 0x0D3C, 0x0051, 0x0D8D, 0x0051, 0x0DDE, 0x0051, 0x0E2F, 0x0051, + 0x0E80, 0x0051, 0x0ED1, 0x005A, 0x0F22, 0x005B, 0x0F7C, 0x0001, 0x0FD7, + 0x0051, 0x0FD8, 0x0051, 0x1029, 0x0051, 0x107A, 0x0051, 0x10CB, 0x0051, + 0x111C, 0x0051, 0x116D, 0x0051, 0x11BE, 0x0051, 0x120F, 0x0051, 0x1260, }; static const s16 anim_27_values[] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0006, 0x0008, - 0x000A, 0x000D, 0x0013, 0x0017, 0x0016, 0x000D, 0x0000, 0xFFF4, - 0xFFF5, 0xFFF4, 0xFFDF, 0xFFC7, 0xFFC0, 0xFFD5, 0xFFF8, 0x0019, - 0x002B, 0x002D, 0x002C, 0x0028, 0x0022, 0x001B, 0x0013, 0x000B, - 0x0004, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, - 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, - 0x00AE, 0x00AE, 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, - 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, - 0x00B5, 0x00B6, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B8, 0x00B8, - 0x00B8, 0x00B8, 0x00B8, 0x00B9, 0x00B9, 0x00B9, 0x00B9, 0x00B9, - 0x00B9, 0x00B9, 0x00B8, 0x00B5, 0x00AE, 0x00A6, 0x00A0, 0x009E, - 0x009D, 0x009C, 0x009C, 0x009C, 0x009B, 0x009B, 0x009B, 0x009C, - 0x0099, 0x009B, 0x00A5, 0x00B0, 0x00BC, 0x00C8, 0x00D5, 0x00DF, - 0x00E8, 0x00EE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F4, 0x00F3, - 0x00EF, 0x00E9, 0x00E5, 0x00E2, 0x00E0, 0x00DE, 0x00DD, 0x00DB, - 0x00D5, 0x00CD, 0x00C3, 0x00B8, 0x00AC, 0x00A1, 0x0095, 0x008A, - 0x0080, 0x0078, 0x0074, 0x0075, 0x0077, 0x0077, 0x0077, 0x0077, - 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, - 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, - 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, - 0x0000, 0x0000, 0x0000, 0xFFFD, 0xFFF6, 0xFFEE, 0xFFE7, 0xFFE1, - 0xFFDB, 0xFFD6, 0xFFD1, 0xFFCD, 0xFFCC, 0xFFCB, 0xFFCC, 0xFFCC, - 0xFFCA, 0xFFCA, 0xFFD0, 0xFFD6, 0xFFDE, 0xFFE5, 0xFFEC, 0xFFF1, - 0xFFF5, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE5, 0xFFEB, 0xFFF5, 0x0000, - 0x0007, 0x000D, 0x000D, 0x000B, 0x000B, 0x0010, 0x0018, 0x001D, - 0x001B, 0x0012, 0x0005, 0xFFF7, 0xFFE7, 0xFFD6, 0xFFC7, 0xFFBA, - 0xFFB1, 0xFFAC, 0xFFBD, 0xFFE3, 0x0000, 0x0007, 0x0003, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x3FFF, 0xF1BC, 0xF1BE, 0xF1C6, 0xF1D2, 0xF1E2, 0xF1F6, - 0xF20E, 0xF228, 0xF246, 0xF266, 0xF288, 0xF2AC, 0xF2D1, 0xF2F8, - 0xF31F, 0xF346, 0xF36E, 0xF395, 0xF3BC, 0xF3E2, 0xF406, 0xF429, - 0xF449, 0xF469, 0xF48A, 0xF4AB, 0xF4CD, 0xF4F0, 0xF513, 0xF536, - 0xF55A, 0xF57E, 0xF5A2, 0xF5C6, 0xF5E9, 0xF60D, 0xF631, 0xF654, - 0xF677, 0xF699, 0xF6BB, 0xF6DC, 0xF6FC, 0xF71B, 0xF73A, 0xF758, - 0xF774, 0xF78F, 0xF7A9, 0xF7C2, 0xF7D6, 0xF7E1, 0xF7E6, 0xF7E5, - 0xF7E0, 0xF7D9, 0xF7D1, 0xF7CA, 0xF7C4, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, - 0xF7C2, 0xF7C2, 0xF6B4, 0xF6B3, 0xF6AF, 0xF6AA, 0xF6A3, 0xF69A, - 0xF68F, 0xF684, 0xF676, 0xF668, 0xF659, 0xF649, 0xF638, 0xF627, - 0xF616, 0xF604, 0xF5F3, 0xF5E1, 0xF5D0, 0xF5BF, 0xF5AF, 0xF5A0, - 0xF591, 0xF583, 0xF575, 0xF566, 0xF557, 0xF547, 0xF538, 0xF528, - 0xF518, 0xF508, 0xF4F8, 0xF4E8, 0xF4D8, 0xF4C9, 0xF4B9, 0xF4A9, - 0xF49A, 0xF48A, 0xF47C, 0xF46D, 0xF45E, 0xF450, 0xF443, 0xF436, - 0xF429, 0xF41D, 0xF411, 0xF406, 0xF3FE, 0xF3F9, 0xF3F7, 0xF3F7, - 0xF3F9, 0xF3FC, 0xF400, 0xF403, 0xF405, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, - 0xF406, 0xF406, 0xD5DF, 0xD5DF, 0xD5DD, 0xD5DA, 0xD5D7, 0xD5D2, - 0xD5CD, 0xD5C7, 0xD5C0, 0xD5B9, 0xD5B1, 0xD5A9, 0xD5A0, 0xD598, - 0xD58F, 0xD586, 0xD57D, 0xD574, 0xD56B, 0xD563, 0xD55B, 0xD553, - 0xD54C, 0xD544, 0xD53D, 0xD535, 0xD52E, 0xD526, 0xD51E, 0xD516, - 0xD50E, 0xD506, 0xD4FE, 0xD4F6, 0xD4EE, 0xD4E6, 0xD4DE, 0xD4D6, - 0xD4CE, 0xD4C6, 0xD4BE, 0xD4B7, 0xD4B0, 0xD4A9, 0xD4A2, 0xD49B, - 0xD494, 0xD48E, 0xD488, 0xD483, 0xD47E, 0xD47C, 0xD47B, 0xD47B, - 0xD47C, 0xD47E, 0xD47F, 0xD481, 0xD482, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, - 0xD483, 0xD483, 0xD47F, 0xD47B, 0xD46F, 0xD45D, 0xD444, 0xD425, - 0xD401, 0xD3D8, 0xD3AC, 0xD37C, 0xD349, 0xD315, 0xD2D6, 0xD288, - 0xD22E, 0xD1CE, 0xD16C, 0xD10B, 0xD0B1, 0xD063, 0xD023, 0xCFF7, - 0xCFE4, 0xD076, 0xD1AC, 0xD2B0, 0xD2AE, 0xD073, 0xCD22, 0xCB19, - 0xCBA4, 0xCD7F, 0xCF73, 0xD04A, 0xCF80, 0xCDD7, 0xCC1A, 0xCB13, - 0xCB86, 0xCCCC, 0xCD83, 0xCCF9, 0xCBDB, 0xCAA4, 0xC9CB, 0xC977, - 0xC966, 0xC975, 0xC97F, 0xC97A, 0xC978, 0xC977, 0xC976, 0xC977, - 0xC978, 0xC97A, 0xC97C, 0xC97D, 0xC97E, 0xC97F, 0xC97F, 0xC97F, - 0xC97F, 0xC8B0, 0xC97F, 0xCCF2, 0xD0C7, 0xD4E5, 0xD935, 0xDD9D, - 0xE205, 0xE654, 0xEA72, 0xEE45, 0xF1B6, 0xF4AB, 0xF70D, 0xF8C2, - 0xFA00, 0xFB0F, 0xFBF2, 0xFCAB, 0xFD3D, 0xFDAA, 0xFDF4, 0xFE1E, - 0xFE2B, 0xFE1E, 0xFDF7, 0xFDBA, 0xFD6A, 0xFD09, 0xFC99, 0xFC1D, - 0xFB98, 0xFB0B, 0xFA7A, 0xF9E6, 0xF952, 0xF8C2, 0xF332, 0xEB50, - 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, - 0xEB50, 0xEB50, 0xF6FF, 0xF700, 0xF702, 0xF706, 0xF70A, 0xF710, - 0xF717, 0xF71E, 0xF727, 0xF730, 0xF739, 0xF744, 0xF74E, 0xF759, - 0xF764, 0xF76F, 0xF77B, 0xF786, 0xF791, 0xF79B, 0xF7A6, 0xF7B0, - 0xF7B9, 0xF79E, 0xF741, 0xF6AA, 0xF5E2, 0xF4F0, 0xF3DD, 0xF2B2, - 0xF176, 0xF032, 0xEEED, 0xEDB1, 0xEC86, 0xEB74, 0xEA82, 0xE9BA, - 0xE924, 0xE8C7, 0xE8AD, 0xE8DD, 0xE960, 0xEA3D, 0xEB7E, 0xED2B, - 0xEF4B, 0xF1E7, 0xF508, 0xF8B5, 0xFEC9, 0x089F, 0x1584, 0x24C5, - 0x35AB, 0x4785, 0x599C, 0x6B3D, 0x7BB4, 0x8A4F, 0x978A, 0xA20B, - 0xA653, 0x99E3, 0x8A4F, 0x83F5, 0x7D87, 0x771F, 0x70D0, 0x6AAF, - 0x64D2, 0x5F4E, 0x5A38, 0x55A5, 0x51AC, 0x4E60, 0x4BD9, 0x4A2A, - 0x4921, 0x4878, 0x4828, 0x482B, 0x4877, 0x4907, 0x49D4, 0x4AD5, - 0x4C03, 0x4D59, 0x4ECD, 0x5059, 0x51F6, 0x539C, 0x5545, 0x56E8, - 0x587F, 0x5A03, 0x5B6C, 0x5CB3, 0x5DD1, 0x5EBE, 0x5F1C, 0x5EED, - 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, - 0x5EBE, 0x5EBE, 0xE0ED, 0xE0EE, 0xE0F1, 0xE0F5, 0xE0FB, 0xE103, - 0xE10B, 0xE115, 0xE120, 0xE12B, 0xE138, 0xE145, 0xE152, 0xE160, - 0xE16F, 0xE17D, 0xE18C, 0xE19A, 0xE1A8, 0xE1B6, 0xE1C3, 0xE1CF, - 0xE1DB, 0xE1F1, 0xE21B, 0xE255, 0xE29E, 0xE2F4, 0xE353, 0xE3B9, - 0xE425, 0xE493, 0xE500, 0xE56C, 0xE5D2, 0xE632, 0xE688, 0xE6D1, - 0xE70C, 0xE736, 0xE74D, 0xE74E, 0xE736, 0xE704, 0xE6B5, 0xE646, - 0xE5B5, 0xE500, 0xE424, 0xE31F, 0xE159, 0xDE65, 0xDA81, 0xD5E9, - 0xD0DB, 0xCB93, 0xC64F, 0xC14C, 0xBCC7, 0xB8FC, 0xB735, 0xB767, - 0xB7DB, 0xB8D5, 0xB8FC, 0xB734, 0xB530, 0xB2FF, 0xB0AE, 0xAE4D, - 0xABEA, 0xA994, 0xA758, 0xA545, 0xA36B, 0xA1D7, 0xA097, 0x9FBB, - 0x9F26, 0x9EB3, 0x9E5E, 0x9E25, 0x9E05, 0x9DFE, 0x9E0A, 0x9E2A, - 0x9E59, 0x9E96, 0x9EDD, 0x9F2E, 0x9F84, 0x9FDF, 0xA03A, 0xA095, - 0xA0EC, 0xA13D, 0xA186, 0xA1C4, 0xA1F4, 0xA215, 0xA21F, 0xA21A, - 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, - 0xA215, 0xA215, 0xB794, 0xB790, 0xB783, 0xB770, 0xB755, 0xB735, - 0xB70E, 0xB6E3, 0xB6B3, 0xB67E, 0xB647, 0xB60C, 0xB5CF, 0xB591, - 0xB551, 0xB510, 0xB4D0, 0xB490, 0xB451, 0xB413, 0xB3D8, 0xB39F, - 0xB36A, 0xB357, 0xB37F, 0xB3DA, 0xB462, 0xB50E, 0xB5D8, 0xB6B8, - 0xB7A6, 0xB89C, 0xB992, 0xBA80, 0xBB5F, 0xBC27, 0xBCD2, 0xBD58, - 0xBDB1, 0xBDD6, 0xBDC0, 0xBD67, 0xBCC4, 0xBBCF, 0xBA81, 0xB8D3, - 0xB6BC, 0xB437, 0xB13B, 0xADC1, 0xA825, 0x9F31, 0x9382, 0x85B8, - 0x766E, 0x6647, 0x55E0, 0x45D5, 0x36C6, 0x2951, 0x1C5F, 0x115F, - 0x0CBA, 0x1963, 0x2951, 0x2FE5, 0x3680, 0x3D11, 0x4384, 0x49C7, - 0x4FC9, 0x5576, 0x5ABC, 0x5F88, 0x63C9, 0x676C, 0x6A5E, 0x6C8D, - 0x6E28, 0x6F6C, 0x7060, 0x710B, 0x7173, 0x719E, 0x7192, 0x7156, - 0x70F1, 0x7068, 0x6FC2, 0x6F05, 0x6E38, 0x6D61, 0x6C86, 0x6BAE, - 0x6ADF, 0x6A1F, 0x6975, 0x68E7, 0x687C, 0x6839, 0x6825, 0x682F, - 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, - 0x6839, 0x6839, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, - 0x17DE, 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, - 0x1698, 0x1668, 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, - 0x151B, 0x14F1, 0x14CA, 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, - 0x1424, 0x1418, 0x1411, 0x1410, 0x1415, 0x1421, 0x1434, 0x144D, - 0x146F, 0x1498, 0x14CA, 0x1504, 0x1548, 0x1594, 0x15EB, 0x164C, - 0x16B7, 0x172E, 0x17AF, 0x183D, 0x196E, 0x1BB5, 0x1ED8, 0x229F, - 0x26D1, 0x2B32, 0x2F8C, 0x33A4, 0x3741, 0x3A2B, 0x3ACE, 0x3963, - 0x385F, 0x3845, 0x3A2B, 0x3F4A, 0x45E0, 0x4CC1, 0x52C0, 0x56B1, - 0x5768, 0x551E, 0x50FE, 0x4B47, 0x443A, 0x3C15, 0x3318, 0x2983, - 0x1D39, 0x0D76, 0xFC7A, 0xEC86, 0xDFD9, 0xD8B5, 0xDABE, 0xE4C4, - 0xF1CB, 0xFCD8, 0x00EF, 0xFE38, 0xF8B4, 0xF133, 0xE885, 0xDF7A, - 0xD6E1, 0xCF8A, 0xCA45, 0xC784, 0xC6BF, 0xC74C, 0xC882, 0xC9B8, - 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, - 0xCA45, 0xCA45, 0x03EC, 0x03EE, 0x03F6, 0x0402, 0x0413, 0x0427, - 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, 0x04E5, 0x050D, 0x0536, - 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, 0x0662, 0x068A, - 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, 0x077D, - 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, - 0x074A, 0x0726, 0x06FA, 0x06C6, 0x068A, 0x0646, 0x05F9, 0x05A4, - 0x0544, 0x04DC, 0x0469, 0x03EC, 0x02E3, 0x00EB, 0xFE36, 0xFAF1, - 0xF74B, 0xF374, 0xEF9C, 0xEBF1, 0xE8A3, 0xE5E1, 0xE479, 0xE466, - 0xE49B, 0xE431, 0xE5E1, 0xEAF1, 0xF131, 0xF7C7, 0xFDDC, 0x0297, - 0x0521, 0x052D, 0x0366, 0x006B, 0xFCDD, 0xF959, 0xF680, 0xF4F0, - 0xF483, 0xF4AF, 0xF57B, 0xF6EF, 0xF913, 0xFBEF, 0x006E, 0x06B8, - 0x0DAE, 0x142E, 0x1917, 0x1CBE, 0x2033, 0x2370, 0x266F, 0x292B, - 0x2B9D, 0x2DC0, 0x2F8D, 0x30AF, 0x3100, 0x30C6, 0x3047, 0x2FC7, - 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, - 0x2F8D, 0x2F8D, 0xCEFF, 0xCEF8, 0xCEE2, 0xCEBF, 0xCE91, 0xCE56, - 0xCE12, 0xCDC4, 0xCD6D, 0xCD0F, 0xCCAA, 0xCC3F, 0xCBCF, 0xCB5B, - 0xCAE5, 0xCA6C, 0xC9F1, 0xC977, 0xC8FD, 0xC885, 0xC80F, 0xC79C, - 0xC72E, 0xC6C5, 0xC662, 0xC606, 0xC5B2, 0xC567, 0xC526, 0xC4F0, - 0xC4C5, 0xC4A6, 0xC496, 0xC493, 0xC4A0, 0xC4BD, 0xC4EB, 0xC52C, - 0xC57F, 0xC5E6, 0xC662, 0xC6F4, 0xC79C, 0xC85C, 0xC935, 0xCA27, - 0xCB33, 0xCC5A, 0xCD9E, 0xCEFF, 0xD1EC, 0xD77A, 0xDF23, 0xE862, - 0xF2AF, 0xFD85, 0x085C, 0x12B1, 0x1BFB, 0x23B6, 0x2778, 0x2759, - 0x2696, 0x25AB, 0x23B6, 0x2212, 0x20EC, 0x1FBB, 0x1DF6, 0x1B13, - 0x168A, 0x0F95, 0x0679, 0xFC3A, 0xF1D9, 0xE85A, 0xE0C1, 0xDC12, - 0xDB50, 0xDDF9, 0xE2C4, 0xE869, 0xEDA2, 0xF126, 0xF39C, 0xF600, - 0xF790, 0xF788, 0xF522, 0xF035, 0xE97C, 0xE18E, 0xD900, 0xD068, - 0xC85E, 0xC177, 0xBC49, 0xB96D, 0xB8A0, 0xB932, 0xBA74, 0xBBB7, - 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, - 0xBC49, 0xBC49, 0xD620, 0xD61C, 0xD612, 0xD601, 0xD5EA, 0xD5CD, - 0xD5AB, 0xD584, 0xD559, 0xD52B, 0xD4F9, 0xD4C4, 0xD48D, 0xD454, - 0xD419, 0xD3DD, 0xD3A1, 0xD364, 0xD328, 0xD2EC, 0xD2B2, 0xD27A, - 0xD243, 0xD20F, 0xD1DE, 0xD1B1, 0xD187, 0xD162, 0xD142, 0xD127, - 0xD112, 0xD103, 0xD0FB, 0xD0F9, 0xD100, 0xD10E, 0xD125, 0xD145, - 0xD16E, 0xD1A1, 0xD1DE, 0xD226, 0xD27A, 0xD2D8, 0xD343, 0xD3BB, - 0xD440, 0xD4D2, 0xD572, 0xD620, 0xD795, 0xDA5A, 0xDE2C, 0xE2C7, - 0xE7E7, 0xED47, 0xF2A5, 0xF7BB, 0xFC45, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xFF4B, 0xFE82, 0xFDAB, 0xFCCA, 0xFBE5, - 0xFAFF, 0xFA1E, 0xF945, 0xF87B, 0xF7C3, 0xF722, 0xF69E, 0xF639, - 0xF71A, 0xF98B, 0xFC4B, 0xFE1B, 0xFDB8, 0xF9E4, 0xF127, 0xE434, - 0xD50A, 0xC5A6, 0xB807, 0xAE2A, 0xA862, 0xA612, 0xA7CE, 0xAE2A, - 0xC22B, 0xDF8D, 0xF2F7, 0xF882, 0xFA0F, 0xF8F3, 0xF683, 0xF413, - 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, - 0xF2F7, 0xF2F7, 0x07FA, 0x0804, 0x0820, 0x084E, 0x088C, 0x08DA, - 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, 0x0CE4, - 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, - 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, - 0x16E3, 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, - 0x15E6, 0x14A2, 0x1329, 0x118C, 0x0FDE, 0x0E30, 0x0C94, 0x0B1B, - 0x09D7, 0x08DA, 0x0835, 0x07FA, 0x0FAE, 0x211A, 0x33B4, 0x3EF4, - 0x41C8, 0x4189, 0x3F48, 0x3C1A, 0x3911, 0x3741, 0x36EE, 0x3734, - 0x3770, 0x38E3, 0x3741, 0x2FF5, 0x26E1, 0x1CB9, 0x1234, 0x06B4, - 0xFA61, 0xEF17, 0xE2BC, 0xD757, 0xD4F4, 0xE447, 0xFCA6, 0x0C0B, - 0x0E0E, 0x0BA6, 0x06E5, 0x01DF, 0xFEA5, 0xFF49, 0x06FC, 0x1473, - 0x22FF, 0x2DF3, 0x30A4, 0x2B2D, 0x2197, 0x151C, 0x06F2, 0xF854, - 0xEA76, 0xDE93, 0xD5E1, 0xD118, 0xCF73, 0xCFF4, 0xD19B, 0xD369, - 0xD460, 0xD4B1, 0xD531, 0xD5D1, 0xD682, 0xD735, 0xD7DB, 0xD866, - 0xD8C6, 0xD8EC, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, 0x2C13, 0x2BCA, - 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, 0x27FB, - 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, - 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, - 0x1E92, 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, - 0x1F80, 0x20B1, 0x2214, 0x2399, 0x252E, 0x26C3, 0x2847, 0x29AA, - 0x2ADB, 0x2BCA, 0x2C65, 0x2C9C, 0x2C62, 0x2BC5, 0x2AE1, 0x29CF, - 0x288D, 0x2718, 0x258B, 0x2401, 0x2297, 0x2169, 0x20BF, 0x2097, - 0x209D, 0x2064, 0x2169, 0x2423, 0x2762, 0x2B2F, 0x2F91, 0x3525, - 0x3BA2, 0x41B7, 0x49E6, 0x51B6, 0x505A, 0x3B8F, 0x1D85, 0x0C1A, - 0x0BBE, 0x10D5, 0x1929, 0x2281, 0x2AA7, 0x2F63, 0x2FF6, 0x2DFB, - 0x2AC0, 0x2794, 0x25C5, 0x255B, 0x2561, 0x25B0, 0x261E, 0x2683, - 0x26B5, 0x268C, 0x25DF, 0x2438, 0x2198, 0x1E8A, 0x1B96, 0x1949, - 0x182B, 0x1831, 0x18D5, 0x19EE, 0x1B51, 0x1CD4, 0x1E4D, 0x1F93, - 0x207A, 0x20D8, 0xD465, 0xD474, 0xD49D, 0xD4E1, 0xD53C, 0xD5AE, - 0xD634, 0xD6CE, 0xD779, 0xD834, 0xD8FD, 0xD9D2, 0xDAB3, 0xDB9C, - 0xDC8D, 0xDD83, 0xDE7E, 0xDF7B, 0xE079, 0xE177, 0xE271, 0xE368, - 0xE459, 0xE542, 0xE622, 0xE6F8, 0xE7C1, 0xE87B, 0xE927, 0xE9C0, - 0xEA47, 0xEAB9, 0xEB14, 0xEB57, 0xEB81, 0xEB8F, 0xEB39, 0xEA47, - 0xE8D3, 0xE6F8, 0xE4CE, 0xE271, 0xDFFA, 0xDD83, 0xDB26, 0xD8FD, - 0xD722, 0xD5AE, 0xD4BC, 0xD465, 0xD91F, 0xE3C0, 0xEEF8, 0xF576, - 0xF688, 0xF58B, 0xF33D, 0xF05E, 0xEDAE, 0xEBED, 0xEB87, 0xEBE1, - 0xEC2C, 0xEC1F, 0xEBED, 0xEB98, 0xEB33, 0xEACF, 0xEA7B, 0xEC47, - 0xEE29, 0xEA08, 0xDBA3, 0xC729, 0xB32F, 0x9F46, 0x8BBB, 0x8036, - 0x7C2F, 0x7A23, 0x7A33, 0x7C84, 0x813D, 0x887C, 0x9742, 0xAE0C, - 0xC636, 0xD921, 0xE029, 0xDBC3, 0xD1D6, 0xC3EE, 0xB399, 0xA266, - 0x91E0, 0x8395, 0x7911, 0x72D2, 0x6FAF, 0x6EC5, 0x6F30, 0x700D, - 0x7076, 0x709D, 0x7134, 0x721C, 0x7337, 0x7466, 0x7589, 0x7682, - 0x7732, 0x777A, 0x0000, 0x0000, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, - 0xFFE9, 0xFFE1, 0xFFD8, 0xFFCD, 0xFFC2, 0xFFB6, 0xFFA8, 0xFF9A, - 0xFF8B, 0xFF7B, 0xFF6A, 0xFF58, 0xFF46, 0xFF32, 0xFF1E, 0xFF0A, - 0xFEF5, 0xFEDF, 0xFEC8, 0xFEB2, 0xFE9A, 0xFE82, 0xFE6A, 0xFE52, - 0xFE39, 0xFE1F, 0xFE06, 0xFDEC, 0xFDD2, 0xFDB8, 0xFD9E, 0xFD83, - 0xFD69, 0xFD4E, 0xFD34, 0xFD19, 0xFCFF, 0xFCE5, 0xFCCB, 0xFCB1, - 0xFC97, 0xFC7E, 0xFC65, 0xFC4C, 0xFBF9, 0xFB6A, 0xFAF2, 0xFAE7, - 0xFB59, 0xFC0E, 0xFCE6, 0xFDC3, 0xFE85, 0xFF0E, 0xFF2B, 0xFEEE, - 0xFEA1, 0xFE8D, 0xFEFB, 0x00C6, 0x0378, 0x055D, 0x05BD, 0x0551, - 0x048C, 0x036A, 0x01EF, 0x0095, 0xFFD7, 0xFF98, 0xFF6B, 0xFF4D, - 0xFF3D, 0xFF39, 0xFF3D, 0xFF49, 0xFF59, 0xFF6C, 0xFF7F, 0xFF90, - 0xFF9D, 0xFFA4, 0xFFA8, 0xFFAF, 0xFFB7, 0xFFC1, 0xFFCD, 0xFFD9, - 0xFFE6, 0xFFF3, 0xFFFF, 0x000A, 0x0015, 0x001E, 0x0022, 0x0020, - 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, - 0x001E, 0x001E, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2E, 0xFF2D, - 0xFF2C, 0xFF2B, 0xFF2A, 0xFF28, 0xFF27, 0xFF25, 0xFF23, 0xFF22, - 0xFF20, 0xFF1E, 0xFF1C, 0xFF1A, 0xFF17, 0xFF15, 0xFF13, 0xFF11, - 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF07, 0xFF06, 0xFF04, 0xFF02, - 0xFF01, 0xFEFF, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFC, 0xFEFB, 0xFEFB, - 0xFEFB, 0xFEFB, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xFEFF, 0xFF01, - 0xFF03, 0xFF05, 0xFF08, 0xFF0B, 0xFF31, 0xFF7E, 0xFFC4, 0xFFD6, - 0xFFAB, 0xFF61, 0xFF08, 0xFEAB, 0xFE59, 0xFE20, 0xFE02, 0xFDF7, - 0xFDFC, 0xFE0E, 0xFE2A, 0xFE9B, 0xFF2E, 0xFF26, 0xFDC0, 0xFBBE, - 0xFAAB, 0xFB2E, 0xFC71, 0xFDC8, 0xFE89, 0xFEBC, 0xFEE0, 0xFEF7, - 0xFF03, 0xFF06, 0xFF01, 0xFEF6, 0xFEE8, 0xFED8, 0xFEC8, 0xFEBB, - 0xFEB1, 0xFEAE, 0xFEAD, 0xFEAC, 0xFEA9, 0xFEA6, 0xFEA2, 0xFE9E, - 0xFE9A, 0xFE96, 0xFE92, 0xFE8E, 0xFE8A, 0xFE88, 0xFE86, 0xFE87, - 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, - 0xFE88, 0xFE88, 0xC9D8, 0xC9DA, 0xC9DF, 0xC9E8, 0xC9F4, 0xCA03, - 0xCA15, 0xCA29, 0xCA40, 0xCA59, 0xCA74, 0xCA91, 0xCAB0, 0xCAD0, - 0xCAF1, 0xCB13, 0xCB37, 0xCB5B, 0xCB7F, 0xCBA4, 0xCBC8, 0xCBED, - 0xCC11, 0xCC35, 0xCC58, 0xCC7B, 0xCC9C, 0xCCBC, 0xCCDA, 0xCCF7, - 0xCD12, 0xCD2B, 0xCD42, 0xCD56, 0xCD68, 0xCD77, 0xCD83, 0xCD8B, - 0xCD91, 0xCD92, 0xCD90, 0xCD8A, 0xCD80, 0xCD72, 0xCD5F, 0xCD47, - 0xCD2A, 0xCD08, 0xCCE1, 0xCCB4, 0xCACA, 0xC6B9, 0xC279, 0xBFFF, - 0xBF88, 0xBFD5, 0xC0A1, 0xC1A9, 0xC2AA, 0xC35E, 0xC3F7, 0xC4AA, - 0xC53A, 0xC56A, 0xC500, 0xC2E7, 0xBF89, 0xBCE8, 0xBBBE, 0xBB4D, - 0xBB5E, 0xBBFA, 0xBD03, 0xBE0C, 0xBEA4, 0xBEE1, 0xBF1C, 0xBF55, - 0xBF8A, 0xBFB7, 0xBFDD, 0xBFF9, 0xC00A, 0xC00D, 0xC001, 0xBFE3, - 0xBFB3, 0xBF6F, 0xBF0D, 0xBE88, 0xBDE8, 0xBD30, 0xBC67, 0xBB93, - 0xBAB9, 0xB9DF, 0xB90A, 0xB840, 0xB788, 0xB6E5, 0xB6A3, 0xB6C4, - 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, - 0xB6E5, 0xB6E5, 0x1E4A, 0x1E4D, 0x1E56, 0x1E66, 0x1E7B, 0x1E97, - 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, 0x1FE1, 0x2022, - 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, 0x229B, - 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, - 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, - 0x28F9, 0x2954, 0x29AD, 0x2A04, 0x2A58, 0x2AAA, 0x2AF9, 0x2B46, - 0x2B8F, 0x2BD4, 0x2C16, 0x2C54, 0x2C83, 0x2C9B, 0x2CA0, 0x2C96, - 0x2C82, 0x2C69, 0x2C4F, 0x2C37, 0x2C27, 0x2C24, 0x2C52, 0x2CAF, - 0x2CFF, 0x2D07, 0x2C8C, 0x2A97, 0x279F, 0x2593, 0x25F3, 0x273C, - 0x26D8, 0x2323, 0x1DBE, 0x18F9, 0x1722, 0x1798, 0x1830, 0x18EF, - 0x19DC, 0x1AFC, 0x1C54, 0x1DEA, 0x1FC3, 0x21E6, 0x2457, 0x271D, - 0x2A3C, 0x2DBA, 0x3416, 0x3E24, 0x496F, 0x5381, 0x59E3, 0x5CA6, - 0x5DCB, 0x5DC3, 0x5CFC, 0x5BE9, 0x5AFA, 0x5A9E, 0x5AA7, 0x5AA2, - 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, - 0x5A9E, 0x5A9E, 0x1B09, 0x1B07, 0x1B00, 0x1AF5, 0x1AE6, 0x1AD3, - 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, 0x19E7, 0x19B7, - 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, 0x17D4, - 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, - 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, - 0x1230, 0x11D2, 0x1173, 0x1114, 0x10B4, 0x1054, 0x0FF5, 0x0F95, - 0x0F36, 0x0ED7, 0x0E78, 0x0E1A, 0x0D88, 0x0C9F, 0x0B7A, 0x0A31, - 0x08E1, 0x07A3, 0x0691, 0x05C5, 0x055B, 0x056B, 0x0685, 0x08DF, - 0x0C0B, 0x0F9F, 0x132E, 0x1730, 0x1BED, 0x20B3, 0x27AA, 0x2EAB, - 0x2E88, 0x215D, 0x0D0E, 0xFC26, 0xF027, 0xE78D, 0xE84C, 0xF446, - 0x067E, 0x1AA4, 0x2C64, 0x376B, 0x3B61, 0x3B91, 0x3915, 0x350B, - 0x308E, 0x2CBB, 0x2970, 0x25DC, 0x220C, 0x1E10, 0x19F7, 0x15D1, - 0x11AD, 0x0D9B, 0x09A8, 0x05E5, 0x0261, 0xFF2D, 0xFDD3, 0xFE80, - 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, - 0xFF2D, 0xFF2D, 0x1144, 0x1144, 0x1142, 0x113F, 0x113B, 0x1136, - 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, 0x10F0, 0x10E2, - 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, 0x103F, - 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, - 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, - 0x0DD2, 0x0DA2, 0x0D70, 0x0D3C, 0x0D07, 0x0CD1, 0x0C99, 0x0C60, - 0x0C26, 0x0BE9, 0x0BAC, 0x0B6D, 0x0AE8, 0x09EE, 0x08A5, 0x072F, - 0x05B0, 0x044D, 0x0328, 0x0266, 0x022B, 0x0299, 0x04E7, 0x0961, - 0x0ECC, 0x13F0, 0x1791, 0x18ED, 0x185D, 0x1650, 0x1100, 0x0A33, - 0x07A4, 0x0CD2, 0x163E, 0x1F2A, 0x26A0, 0x2D95, 0x322C, 0x3449, - 0x354D, 0x3596, 0x3580, 0x3568, 0x3584, 0x35A8, 0x359F, 0x3536, - 0x3438, 0x3270, 0x3001, 0x2D3D, 0x2A34, 0x26F5, 0x2391, 0x2018, - 0x1C9A, 0x1926, 0x15CD, 0x129E, 0x0FAA, 0x0D00, 0x0BE4, 0x0C72, - 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, - 0x0D00, 0x0D00, 0xAC44, 0xAC41, 0xAC38, 0xAC2A, 0xAC16, 0xABFE, - 0xABE0, 0xABBD, 0xAB96, 0xAB6A, 0xAB3A, 0xAB06, 0xAACE, 0xAA92, - 0xAA53, 0xAA10, 0xA9CA, 0xA982, 0xA936, 0xA8E8, 0xA897, 0xA844, - 0xA7F0, 0xA799, 0xA740, 0xA6E6, 0xA68B, 0xA62F, 0xA5D1, 0xA573, - 0xA514, 0xA4B5, 0xA456, 0xA3F6, 0xA397, 0xA338, 0xA2DA, 0xA27C, - 0xA220, 0xA1C4, 0xA16A, 0xA111, 0xA0B9, 0xA064, 0xA010, 0x9FBF, - 0x9F70, 0x9F23, 0x9EDA, 0x9E93, 0x9E42, 0x9DE0, 0x9D76, 0x9D0A, - 0x9CA7, 0x9C53, 0x9C19, 0x9BFF, 0x9C0F, 0x9C50, 0x9C88, 0x9CD8, - 0x9DD2, 0xA006, 0xA408, 0xAD20, 0xBA2A, 0xC518, 0xCD05, 0xD2D6, - 0xD323, 0xCA2A, 0xBBAD, 0xAF85, 0xA667, 0x9F9D, 0xA0E4, 0xABFB, - 0xBC65, 0xCE80, 0xDEAD, 0xE94A, 0xEE42, 0xF05F, 0xF04D, 0xEEBA, - 0xEC53, 0xE9C5, 0xE71C, 0xE3FF, 0xE083, 0xDCBC, 0xD8C1, 0xD4A6, - 0xD080, 0xCC64, 0xC867, 0xC49E, 0xC11F, 0xBDFD, 0xBCB1, 0xBD57, - 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, - 0xBDFD, 0xBDFD, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, 0x000B, - 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, - 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, - 0x0085, 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, - 0x00AE, 0x00B0, 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, - 0x00A2, 0x009B, 0x0093, 0x0089, 0x007E, 0x0071, 0x0062, 0x0052, - 0x0040, 0x002D, 0x0017, 0x0000, 0xFF88, 0xFE81, 0xFD31, 0xFBE0, - 0xFAD5, 0xFA10, 0xF962, 0xF8CB, 0xF84A, 0xF7DF, 0xF78D, 0xF77B, - 0xF7DF, 0xF935, 0xFB21, 0xFD26, 0xFF5B, 0x0194, 0x04A6, 0x07C2, - 0x084D, 0xFC04, 0xFC37, 0xFD82, 0xFF76, 0x01A1, 0x0395, 0x04E3, - 0x0588, 0x05DF, 0x05FF, 0x0600, 0x05FB, 0x0607, 0x05C1, 0x05E1, - 0x061A, 0x0693, 0x07B3, 0x0889, 0x0823, 0x0755, 0x06EB, 0x0746, - 0x07FB, 0x08A5, 0x08DE, 0x0830, 0x06F6, 0x0601, 0x05C2, 0x05E1, - 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, - 0x0601, 0x0601, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, - 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, - 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, - 0x0035, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, - 0x0032, 0x0030, 0x002D, 0x002A, 0x0026, 0x0023, 0x001E, 0x0019, - 0x0014, 0x000D, 0x0007, 0x0000, 0xFFD3, 0xFF72, 0xFEFE, 0xFE9A, - 0xFE67, 0xFE74, 0xFEAA, 0xFEF4, 0xFF3C, 0xFF70, 0xFF7D, 0xFF75, - 0xFF70, 0xFF5F, 0xFF84, 0x0052, 0x0151, 0x01AA, 0x0035, 0xFE1A, - 0xFDF4, 0x0785, 0x0663, 0x0431, 0x0171, 0xFEA7, 0xFC54, 0xFAFA, - 0xFABF, 0xFB42, 0xFC3B, 0xFD64, 0xFE77, 0xFF2C, 0xFE59, 0xFEE7, - 0xFFBB, 0x007D, 0x00ED, 0x0100, 0x009F, 0x0013, 0xFFED, 0x0067, - 0x0136, 0x0218, 0x02CD, 0x0337, 0x0373, 0x039C, 0x03AE, 0x03A5, - 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, - 0x039C, 0x039C, 0xBF40, 0xBF42, 0xBF47, 0xBF50, 0xBF5B, 0xBF69, - 0xBF7A, 0xBF8D, 0xBFA2, 0xBFB9, 0xBFD2, 0xBFED, 0xC008, 0xC025, - 0xC042, 0xC060, 0xC07E, 0xC09D, 0xC0BB, 0xC0D9, 0xC0F7, 0xC114, - 0xC130, 0xC14B, 0xC164, 0xC17C, 0xC192, 0xC1A6, 0xC1B8, 0xC1C8, - 0xC1D4, 0xC1DE, 0xC1E5, 0xC1E8, 0xC1E8, 0xC1E4, 0xC1DC, 0xC1D0, - 0xC1C0, 0xC1AB, 0xC191, 0xC172, 0xC14D, 0xC124, 0xC0F4, 0xC0BE, - 0xC083, 0xC041, 0xBFF8, 0xBFA9, 0xBDAB, 0xB95B, 0xB440, 0xAFE0, - 0xADC1, 0xAE8B, 0xB138, 0xB4CF, 0xB856, 0xBAD4, 0xBB8A, 0xBB27, - 0xBAD4, 0xBA43, 0xBB3A, 0xBEE9, 0xC407, 0xCB17, 0xD5CC, 0xE284, - 0xECC4, 0xE505, 0xE5E5, 0xE7EC, 0xEA63, 0xEC8F, 0xEDB8, 0xED25, - 0xEA42, 0xE584, 0xDFC2, 0xD9D0, 0xD484, 0xD0B4, 0xD77C, 0xD3F8, - 0xCE6A, 0xC8DB, 0xC4D0, 0xC273, 0xC1AA, 0xC192, 0xC0F8, 0xBF40, - 0xBCF4, 0xBA9A, 0xB8B9, 0xB7A8, 0xB727, 0xB6D3, 0xB6A9, 0xB6BE, - 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, - 0xB6D3, 0xB6D3, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, 0x254B, - 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, - 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, - 0x26BD, 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, - 0x2812, 0x2844, 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, - 0x29D3, 0x2A13, 0x2A55, 0x2A98, 0x2ADD, 0x2B24, 0x2B6D, 0x2BB7, - 0x2C03, 0x2C51, 0x2CA1, 0x2CF2, 0x2E79, 0x317A, 0x348A, 0x3641, - 0x3671, 0x3602, 0x3530, 0x3434, 0x3349, 0x32A9, 0x3294, 0x32C3, - 0x32A9, 0x3255, 0x309F, 0x2D4A, 0x29BA, 0x25F6, 0x2208, 0x1DF8, - 0x19CE, 0x13A5, 0x1185, 0x0F5A, 0x0D6C, 0x0C06, 0x0B70, 0x0BF4, - 0x0E09, 0x118C, 0x15E0, 0x1A6A, 0x1E8C, 0x21AA, 0x1E9D, 0x2338, - 0x2932, 0x2BF5, 0x246F, 0x1D00, 0x1F7C, 0x2532, 0x2AEE, 0x2FD5, - 0x350F, 0x3A6A, 0x3FB7, 0x44C6, 0x4967, 0x4D69, 0x4F07, 0x4E38, - 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, - 0x4D69, 0x4D69, 0xD64A, 0xD650, 0xD663, 0xD681, 0xD6AB, 0xD6DF, - 0xD71E, 0xD766, 0xD7B8, 0xD813, 0xD877, 0xD8E2, 0xD955, 0xD9D0, - 0xDA51, 0xDAD8, 0xDB65, 0xDBF8, 0xDC8F, 0xDD2B, 0xDDCA, 0xDE6D, - 0xDF13, 0xDFBC, 0xE067, 0xE114, 0xE1C1, 0xE270, 0xE31E, 0xE3CD, - 0xE47B, 0xE528, 0xE5D3, 0xE67C, 0xE723, 0xE7C7, 0xE867, 0xE904, - 0xE99C, 0xEA2F, 0xEABE, 0xEB46, 0xEBC9, 0xEC45, 0xECBA, 0xED27, - 0xED8C, 0xEDE9, 0xEE3D, 0xEE88, 0xEDA6, 0xEB17, 0xE7CF, 0xE4C2, - 0xE1FA, 0xDEFE, 0xDBF7, 0xD912, 0xD67A, 0xD459, 0xD351, 0xD382, - 0xD459, 0xDB0C, 0xE555, 0xEEEE, 0xF8B0, 0xFE79, 0xFD04, 0xF79D, - 0xF3FA, 0xFB8F, 0xF6DC, 0xF107, 0xEA93, 0xE405, 0xDDE2, 0xD8AE, - 0xD49B, 0xD148, 0xCE5E, 0xCB86, 0xC868, 0xC460, 0xBA86, 0xB646, - 0xB2F2, 0xB19E, 0xB4E4, 0xBAA8, 0xBFF5, 0xC5AC, 0xCB92, 0xD1CC, - 0xD87A, 0xDF5C, 0xE630, 0xECB7, 0xF2AF, 0xF7D7, 0xF9EA, 0xF8E1, - 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, - 0xF7D7, 0xF7D7, 0xEC41, 0xEC44, 0xEC4C, 0xEC5A, 0xEC6D, 0xEC85, - 0xECA2, 0xECC3, 0xECE9, 0xED12, 0xED40, 0xED70, 0xEDA4, 0xEDDC, - 0xEE16, 0xEE52, 0xEE91, 0xEED2, 0xEF15, 0xEF5A, 0xEFA0, 0xEFE8, - 0xF030, 0xF079, 0xF0C2, 0xF10C, 0xF156, 0xF1A0, 0xF1E9, 0xF232, - 0xF279, 0xF2C0, 0xF305, 0xF349, 0xF38A, 0xF3CA, 0xF407, 0xF442, - 0xF47A, 0xF4AF, 0xF4E1, 0xF510, 0xF53A, 0xF561, 0xF584, 0xF5A2, - 0xF5BB, 0xF5D0, 0xF5E0, 0xF5EA, 0xF515, 0xF2FF, 0xF057, 0xEDCE, - 0xEB69, 0xE8CF, 0xE629, 0xE39E, 0xE157, 0xDF79, 0xDEB4, 0xDF01, - 0xDF79, 0xE11F, 0xE650, 0xF09B, 0xFCED, 0x0571, 0x06D9, 0x047E, - 0x028C, 0x043D, 0x04CB, 0x0559, 0x05D6, 0x0630, 0x0655, 0x0633, - 0x05AB, 0x04C1, 0x0394, 0x0242, 0x00ED, 0xFE57, 0xFFAF, 0xFD1D, - 0xF9C8, 0xF785, 0xF973, 0xFAD8, 0xF6C8, 0xF0EC, 0xEC2D, 0xE904, - 0xE5FD, 0xE31D, 0xE069, 0xDDE5, 0xDB95, 0xD97F, 0xD89F, 0xD90F, - 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, - 0xD97F, 0xD97F, 0xB59E, 0xB59C, 0xB594, 0xB588, 0xB577, 0xB561, - 0xB548, 0xB52A, 0xB509, 0xB4E4, 0xB4BB, 0xB48F, 0xB460, 0xB42E, - 0xB3FA, 0xB3C3, 0xB389, 0xB34E, 0xB310, 0xB2D1, 0xB290, 0xB24E, - 0xB20B, 0xB1C7, 0xB182, 0xB13C, 0xB0F6, 0xB0B0, 0xB069, 0xB023, - 0xAFDD, 0xAF98, 0xAF53, 0xAF10, 0xAECD, 0xAE8C, 0xAE4C, 0xAE0E, - 0xADD2, 0xAD98, 0xAD60, 0xAD2B, 0xACF8, 0xACC8, 0xAC9B, 0xAC71, - 0xAC4B, 0xAC28, 0xAC0A, 0xABEF, 0xAC61, 0xAD9A, 0xAF1F, 0xB077, - 0xB199, 0xB2C8, 0xB3F4, 0xB510, 0xB60E, 0xB6E0, 0xB757, 0xB754, - 0xB6E0, 0xB179, 0xAA23, 0xA53C, 0xA0FA, 0x9F6F, 0xA180, 0xA649, - 0xAD2A, 0xBA10, 0xBC6B, 0xBE0D, 0xBF1B, 0xBFBA, 0xC010, 0xC042, - 0xC015, 0xBF5C, 0xBE4B, 0xBD1B, 0xBC00, 0xBA4C, 0xBC30, 0xC00B, - 0xC452, 0xC6D4, 0xC492, 0xC003, 0xBC4B, 0xB84D, 0xB3A1, 0xAE1E, - 0xA80C, 0xA1B1, 0x9B52, 0x9534, 0x8F9D, 0x8AD3, 0x88E9, 0x89DE, - 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, - 0x8AD3, 0x8AD3, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, - 0x4171, 0xBF5F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, - 0x00D5, 0x013F, 0x011C, 0x0000, 0xFDE7, 0xFB34, 0xF815, 0xF4BA, - 0xF152, 0xEE0D, 0xEB18, 0xE8A3, 0xE6DE, 0xE5F6, 0xE526, 0xE410, - 0xE385, 0xE30D, 0xE5F6, 0xEDDC, 0xF75B, 0x0177, 0x0B35, 0x1398, - 0x19A1, 0x19DF, 0x14AE, 0x0EC3, 0x08F9, 0x022F, 0xFC2B, 0xF8AB, - 0xF7E4, 0xF895, 0xFA55, 0xFCBD, 0xFF62, 0x025F, 0x061E, 0x0A43, - 0x0E6E, 0x1240, 0x1558, 0x17C7, 0x19DC, 0x1B97, 0x1CF8, 0x1E00, - 0x1EAE, 0x1DF0, 0x1ADE, 0x15B9, 0x0F14, 0x07F3, 0xFD9E, 0xEF62, - 0xEE0C, 0xED5C, 0xED34, 0xED75, 0xEE01, 0xEEB9, 0xEF7E, 0xF033, - 0xF0B9, 0xF0F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE1, - 0xFFA3, 0xFF74, 0xFF84, 0x0000, 0x00EC, 0x021D, 0x037D, 0x04F8, - 0x0678, 0x07E9, 0x0935, 0x0A48, 0x0B0D, 0x0B6E, 0x0B7F, 0x0B76, - 0x0B6E, 0x0C00, 0x0B6E, 0x08BE, 0x0579, 0x01F4, 0xFE81, 0xFB74, - 0xF920, 0xF82B, 0xF8CD, 0xFAB9, 0xFE88, 0x03B6, 0x0852, 0x0A66, - 0x0975, 0x06D3, 0x0345, 0xFF91, 0xFC7A, 0xFA1A, 0xF7C3, 0xF58A, - 0xF387, 0xF1D1, 0xF081, 0xEF6D, 0xEE7A, 0xEDD2, 0xEDA0, 0xEE0F, - 0xEF4C, 0xF61D, 0xFE08, 0xFF3C, 0xFED8, 0xFFCC, 0x00DF, 0x017F, - 0x01A9, 0x01C2, 0x01CC, 0x01CB, 0x01C1, 0x01B2, 0x01A1, 0x0191, - 0x0184, 0x017F, 0xEDB7, 0xEE8D, 0xF0A3, 0xF358, 0xF60B, 0xF81B, - 0xF8E7, 0xF8C1, 0xF86A, 0xF7E8, 0xF741, 0xF67A, 0xF59B, 0xF4AA, - 0xF3AB, 0xF2A5, 0xF19E, 0xF09D, 0xEFA6, 0xEEC1, 0xEDF3, 0xED42, - 0xECB4, 0xECD5, 0xEDBF, 0xEECB, 0xEF53, 0xECC8, 0xE8B6, 0xE831, - 0xE961, 0xEB0F, 0xEC84, 0xED09, 0xEBFC, 0xE9FE, 0xE814, 0xE744, - 0xE7CE, 0xE8EE, 0xE9E8, 0xEA05, 0xE922, 0xE7F4, 0xE745, 0xE718, - 0xE707, 0xE72A, 0xE799, 0xE86B, 0xE9A5, 0xEB2C, 0xECE8, 0xEEC0, - 0xF09E, 0xF269, 0xF408, 0xF565, 0xF665, 0xF6F3, 0xF714, 0xF703, - 0xF6F3, 0xF69D, 0xF6F3, 0xF83C, 0xF986, 0xFAF6, 0xFCB1, 0xFEDE, - 0x01A1, 0x0724, 0x0E6D, 0x12EE, 0x12C5, 0x1065, 0x0DC2, 0x0CD2, - 0x0DE5, 0x0FC3, 0x1218, 0x1490, 0x16D3, 0x188D, 0x1A04, 0x1B73, - 0x1C77, 0x1CAB, 0x1BAC, 0x1969, 0x163F, 0x126E, 0x0E36, 0x09D8, - 0x0593, 0xFFD2, 0xFA98, 0xF93B, 0xF947, 0xF92A, 0xF93C, 0xF94C, - 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, - 0xF94C, 0xF94C, 0x0000, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, - 0x0019, 0x0022, 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, - 0x0073, 0x0080, 0x008D, 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, - 0x00DB, 0x00E6, 0x00F1, 0x00FB, 0x0104, 0x010D, 0x0114, 0x011A, - 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, 0x011F, 0x011A, 0x0113, - 0x010A, 0x00FF, 0x00F1, 0x00E1, 0x00CF, 0x00BA, 0x00A2, 0x0087, - 0x006A, 0x004A, 0x0026, 0x0000, 0xFFA1, 0xFEE2, 0xFDDB, 0xFCA5, - 0xFB58, 0xFA0B, 0xF8D6, 0xF7D1, 0xF714, 0xF6B7, 0xF631, 0xF55F, - 0xF4F2, 0xF521, 0xF6B7, 0xFA1E, 0xFE53, 0x02BD, 0x06C8, 0x09DA, - 0x0B5C, 0x0B28, 0x09BB, 0x0778, 0x04BF, 0x01F2, 0xFF73, 0xFDA2, - 0xFC66, 0xFB66, 0xFAA3, 0xFA1F, 0xF9DB, 0xF9D8, 0xFA4E, 0xFB5D, - 0xFCEA, 0xFED7, 0x021E, 0x0623, 0x0860, 0x086E, 0x07BF, 0x069F, - 0x0558, 0x0433, 0x037D, 0x037D, 0x0480, 0x099E, 0x1275, 0x1A19, - 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, - 0x1A19, 0x1A19, 0x0000, 0xFFFF, 0xFFFA, 0xFFF3, 0xFFE9, 0xFFDD, - 0xFFCF, 0xFFBF, 0xFFAD, 0xFF99, 0xFF84, 0xFF6D, 0xFF56, 0xFF3E, - 0xFF25, 0xFF0C, 0xFEF2, 0xFED9, 0xFEBF, 0xFEA6, 0xFE8D, 0xFE75, - 0xFE5E, 0xFE48, 0xFE34, 0xFE21, 0xFE0F, 0xFDFF, 0xFDF2, 0xFDE6, - 0xFDDD, 0xFDD7, 0xFDD4, 0xFDD3, 0xFDD6, 0xFDDC, 0xFDE5, 0xFDF3, - 0xFE04, 0xFE1A, 0xFE34, 0xFE52, 0xFE75, 0xFE9E, 0xFECB, 0xFEFD, - 0xFF35, 0xFF73, 0xFFB7, 0x0000, 0x00B5, 0x021E, 0x040E, 0x0659, - 0x08D0, 0x0B49, 0x0D95, 0x0F89, 0x10F8, 0x11B4, 0x11B9, 0x116A, - 0x1137, 0x125E, 0x11B4, 0x0D15, 0x071A, 0x00B0, 0xFAC8, 0xF64D, - 0xF42F, 0xF4C5, 0xF753, 0xFB29, 0xFF97, 0x03EC, 0x077A, 0x0990, - 0x09E2, 0x08EE, 0x073B, 0x054C, 0x03A6, 0x02CE, 0x036C, 0x050F, - 0x0695, 0x06DA, 0x0445, 0x0022, 0xFDAB, 0xFD6E, 0xFDB7, 0xFE5A, - 0xFF2A, 0xFFFB, 0x00A0, 0x00ED, 0x00B6, 0xFEAB, 0xFAFF, 0xF7D2, - 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, - 0xF7D2, 0xF7D2, 0x0408, 0x0407, 0x0402, 0x03F9, 0x03EE, 0x03E0, - 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, 0x0352, 0x0332, 0x0310, - 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, 0x01F5, 0x01C7, - 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, 0x0041, - 0x000F, 0xFFDF, 0xFFAD, 0xFF7C, 0xFF4B, 0xFF1B, 0xFEEB, 0xFEBD, - 0xFE8F, 0xFE63, 0xFE37, 0xFE0D, 0xFDE5, 0xFDBE, 0xFD98, 0xFD3A, - 0xFC7C, 0xFBE0, 0xFBEA, 0xFD1C, 0xFF78, 0x0283, 0x0609, 0x09D4, - 0x0DAD, 0x115F, 0x14B4, 0x1777, 0x1972, 0x1A6F, 0x1A89, 0x1A47, - 0x1A19, 0x1B24, 0x1A6F, 0x1633, 0x10EE, 0x0B41, 0x05CC, 0x0133, - 0xFE16, 0xFC7C, 0xFBD8, 0xFBE9, 0xFC71, 0xFD2F, 0xFDE6, 0xFE55, - 0xFEA4, 0xFF18, 0xFF9D, 0x0020, 0x008F, 0x00D5, 0x00E3, 0x00BC, - 0x0070, 0x000E, 0xFF34, 0xFE28, 0xFE00, 0xFEC7, 0xFFC5, 0x00EC, - 0x022F, 0x037F, 0x04CE, 0x060D, 0x072E, 0x0821, 0x08E8, 0x098D, - 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, - 0x098D, 0x098D, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFB, - 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF1, 0xFFED, 0xFFEA, 0xFFE6, 0xFFE2, - 0xFFDE, 0xFFD9, 0xFFD5, 0xFFD0, 0xFFCB, 0xFFC6, 0xFFC1, 0xFFBC, - 0xFFB6, 0xFFB1, 0xFFAC, 0xFFA6, 0xFFA1, 0xFF9C, 0xFF97, 0xFF92, - 0xFF8D, 0xFF88, 0xFF83, 0xFF7E, 0xFF7A, 0xFF76, 0xFF71, 0xFF6E, - 0xFF6A, 0xFF67, 0xFF63, 0xFF61, 0xFF5E, 0xFF5C, 0xFF5A, 0xFF59, - 0xFF58, 0xFF57, 0xFF57, 0xFD70, 0xF869, 0xF149, 0xE917, 0xE0D9, - 0xD995, 0xD452, 0xD216, 0xD1CC, 0xD1A2, 0xD188, 0xD07E, 0xCF84, - 0xD188, 0xD74B, 0xE00C, 0xEC79, 0xFB1F, 0x0A12, 0x194F, 0x28D1, - 0x3895, 0x4894, 0x58CB, 0x6935, 0x79CE, 0x8A94, 0x9B7D, 0xAC88, - 0xBDAF, 0xCEEF, 0xE042, 0xF1A6, 0x0313, 0x1488, 0x25FF, 0x3774, - 0x48E2, 0x5A45, 0x6B98, 0x7CD7, 0x8E00, 0x9F09, 0xAFF0, 0xC0B2, - 0xD149, 0xE1B1, 0xF1E5, 0x01E1, 0x11A2, 0x2121, 0x2E0E, 0x3669, - 0x3AAE, 0x3CAD, 0x3DFA, 0x3EB5, 0x3EFC, 0x3EF0, 0x3EAE, 0x3E58, - 0x3E0B, 0x3DE7, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, 0x0008, - 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, - 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, - 0x008E, 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, - 0x00F2, 0x00FF, 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, - 0x0160, 0x016E, 0x017C, 0x018A, 0x0198, 0x01A5, 0x01B3, 0x01C1, - 0x01CE, 0x01DC, 0x01E9, 0x01F6, 0x0203, 0x020F, 0x021C, 0x0228, - 0x0234, 0x023F, 0x024A, 0x0255, 0x0260, 0x026A, 0x027C, 0x0288, - 0x026A, 0x0205, 0x0177, 0x00F3, 0x007F, 0x0002, 0xFF80, 0xFEFA, - 0xFE75, 0xFDF4, 0xFD7A, 0xFD0B, 0xFCAA, 0xFC5B, 0xFC21, 0xFC00, - 0xFD8D, 0xFFD8, 0x0175, 0x0323, 0x044D, 0x0463, 0x03C2, 0x032C, - 0x029F, 0x021B, 0x019F, 0x012C, 0x00C1, 0x005E, 0x0001, 0xFFAC, - 0xFF5B, 0xFF11, 0xFECC, 0xFE8C, 0xFE50, 0xFE18, 0xFE8A, 0xFFA2, - 0x005F, 0x0092, 0x00B6, 0x00CF, 0x00DD, 0x00E4, 0x00E5, 0x00E3, - 0x00E0, 0x00DE, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, 0x40AB, - 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, - 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, - 0x4144, 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, - 0x41B6, 0x41C5, 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, - 0x4233, 0x4243, 0x4253, 0x4263, 0x4273, 0x4283, 0x4293, 0x42A2, - 0x42B2, 0x42C1, 0x42D0, 0x42DF, 0x42EE, 0x42FC, 0x430A, 0x4318, - 0x4325, 0x4333, 0x433F, 0x434C, 0x4358, 0x4364, 0x4372, 0x4378, - 0x4364, 0x4321, 0x42C4, 0x426C, 0x4222, 0x41D3, 0x4182, 0x4131, - 0x40DF, 0x4090, 0x4043, 0x3FFB, 0x3FB9, 0x3F7E, 0x3F4C, 0x3F23, - 0x3F7B, 0x407D, 0x421F, 0x4422, 0x45C5, 0x4644, 0x45E2, 0x4564, - 0x44CC, 0x441E, 0x435F, 0x428F, 0x41B4, 0x40D0, 0x3FE7, 0x3EFC, - 0x3E12, 0x3D2C, 0x3C4E, 0x3B7C, 0x3AB7, 0x3A05, 0x39A8, 0x39AB, - 0x39BC, 0x39B8, 0x39B7, 0x39B8, 0x39BB, 0x39BE, 0x39C2, 0x39C5, - 0x39C7, 0x39C8, + 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AB, + 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, 0x00AE, 0x00AE, + 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, 0x00B2, 0x00B2, 0x00B3, + 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, 0x00B5, 0x00B6, 0x00B6, 0x00B7, + 0x00B7, 0x00B7, 0x00B8, 0x00B8, 0x00B8, 0x00B8, 0x00AA, 0x00AA, 0x00AB, + 0x00AD, 0x00AF, 0x00B2, 0x00B4, 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, + 0x00C7, 0x00C9, 0x00CB, 0x00CD, 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, + 0x00C0, 0x00BA, 0x00B5, 0x00B1, 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, + 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, + 0x00A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, 0x3218, 0x30FC, 0x3ABA, + 0x5629, 0x8098, 0xB757, 0xF7B3, 0x3EFE, 0x8A84, 0xD796, 0x2382, 0x6B97, + 0xAD24, 0xE60E, 0x168A, 0x3F60, 0x615D, 0x7D4A, 0x93F1, 0xA61D, 0xB498, + 0xC02B, 0xC988, 0xD0FD, 0xD6BD, 0xDAFD, 0xDDF0, 0xDFCB, 0xE0C1, 0xE108, + 0xD856, 0xC39B, 0xAADD, 0x9622, 0x8D70, 0x8D77, 0x8D89, 0x8DA5, 0x8DC6, + 0x8DEA, 0x8E0E, 0x8E2F, 0x8E4B, 0x8E5D, 0x8E64, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, 0xFFFC, 0xFFFA, + 0xFFF8, 0xFFF6, 0xFFF3, 0xFFF0, 0xFFEC, 0xFFE9, 0xFFE5, 0xFFE1, 0xFFDD, + 0xFFD8, 0xFFD4, 0xFFCF, 0xFFCA, 0xFFC5, 0xFFC0, 0xFFBB, 0xFFB5, 0xFFB0, + 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, 0xFF96, 0xFF91, 0xFF8C, 0xFF87, 0xFF82, + 0xFF7D, 0xFF79, 0xFF75, 0xFF70, 0xFF6D, 0xFF69, 0xFF66, 0xFF62, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, + 0x0008, 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, + 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, 0x008E, + 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, 0x00F2, 0x00FF, + 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, 0x0160, 0x016E, 0x017C, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, + 0x40AB, 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, + 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, 0x4144, + 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, 0x41B6, 0x41C5, + 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, 0x4233, 0x4243, 0x4253, + 0x40A1, 0xFFFF, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, 0x0019, 0x0022, + 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, 0x0073, 0x0080, 0x008D, + 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, 0x00DB, 0x00E6, 0x00F1, 0x00FB, + 0x0104, 0x010D, 0x0114, 0x011A, 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, + 0x011F, 0x011A, 0x0113, 0x010A, 0x00FF, 0x00F1, 0x0000, 0xFAE9, 0xF35D, + 0xEC84, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, 0xF384, + 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, 0x096B, + 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, 0x0DDE, + 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, 0x0223, + 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, 0x0D87, + 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFE, 0xFFF9, 0xFFF2, 0xFFE8, + 0xFFDC, 0xFFCE, 0xFFBE, 0xFFAC, 0xFF98, 0xFF83, 0xFF6C, 0xFF55, 0xFF3D, + 0xFF24, 0xFF0B, 0xFEF1, 0xFED8, 0xFEBE, 0xFEA5, 0xFE8C, 0xFE74, 0xFE5D, + 0xFE47, 0xFE33, 0xFE20, 0xFE0E, 0xFDFE, 0xFDF1, 0xFDE5, 0xFDDC, 0xFDD6, + 0xFDD3, 0xFDD2, 0xFDD5, 0xFDDB, 0xFDE4, 0xFDF2, 0xFE03, 0xFE19, 0xFE33, + 0xFFFF, 0x01FD, 0x065D, 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, + 0x0901, 0x06BD, 0x045A, 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, + 0xFEA1, 0xFED1, 0xFF0A, 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, + 0x00D8, 0x0108, 0x012D, 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, + 0x00E7, 0x0091, 0x0049, 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, + 0x0076, 0x007A, 0x007D, 0x007F, 0x0081, 0x0081, 0x0082, 0x0408, 0x0407, + 0x0402, 0x03F9, 0x03EE, 0x03E0, 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, + 0x0352, 0x0332, 0x0310, 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, + 0x01F5, 0x01C7, 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, + 0x0041, 0x000F, 0xFFDE, 0xFFAC, 0xFF7B, 0xFF4A, 0xFF1A, 0xFEEA, 0xFEBC, + 0xFE8E, 0xFE62, 0xFE36, 0x0884, 0x0C6F, 0x150F, 0x1DAE, 0x2199, 0x2199, + 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, 0x0564, 0x026D, + 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, 0x029D, 0x02E9, + 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, 0x0482, 0x0482, + 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, 0xFEA1, 0xFEA8, + 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, 0xFDD2, 0xFDB9, + 0xFDA9, 0xFDA2, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFEA3, + 0xFBA6, 0xF8A9, 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, + 0x1216, 0x1955, 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, + 0x1054, 0x0862, 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, + 0xC514, 0xC174, 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, + 0xF13A, 0xF6EC, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x002B, + 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, 0x00F5, 0x00CE, 0x0099, + 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, 0xFE2B, 0xFDC7, 0xFD6C, + 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, 0x0051, 0x0270, 0x0490, + 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, 0x069F, 0x02CE, 0xFE3F, + 0xFA6E, 0xF8D4, 0xEDB6, 0xEE8C, 0xF0A2, 0xF357, 0xF60A, 0xF81A, 0xF8E6, + 0xF8C0, 0xF869, 0xF7E7, 0xF740, 0xF679, 0xF59A, 0xF4A9, 0xF3AA, 0xF2A4, + 0xF19D, 0xF09C, 0xEFA5, 0xEEC0, 0xEDF2, 0xED41, 0xECB3, 0xECD4, 0xEDBE, + 0xEECA, 0xEF52, 0xECC7, 0xE8B5, 0xE830, 0xE960, 0xEB0E, 0xEC83, 0xED08, + 0xEBFB, 0xE9FD, 0xE813, 0xE743, 0xE7CD, 0xE8ED, 0xE9E7, 0xFC61, 0x005D, + 0x0268, 0x0328, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, + 0x0185, 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, + 0xFF15, 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, + 0xFFB0, 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, + 0xFE47, 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xF6FE, 0xF6FF, 0xF701, 0xF705, + 0xF709, 0xF70F, 0xF716, 0xF71D, 0xF726, 0xF72F, 0xF738, 0xF743, 0xF74D, + 0xF758, 0xF763, 0xF76E, 0xF77A, 0xF785, 0xF790, 0xF79A, 0xF7A5, 0xF7AF, + 0xF7B8, 0xF79D, 0xF740, 0xF6A9, 0xF5E1, 0xF4EF, 0xF3DC, 0xF2B1, 0xF175, + 0xF031, 0xEEEC, 0xEDB0, 0xEC85, 0xEB73, 0xEA81, 0xE9B9, 0xE923, 0xE8C6, + 0xE8AC, 0xFB1C, 0x1C19, 0x3DCE, 0xD80A, 0xE29C, 0xE29C, 0xE29C, 0xE199, + 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, + 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, 0x0450, 0x0004, 0xFC31, 0xF8DB, + 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, 0xEF74, 0xEF74, 0xEF74, 0xEF74, + 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, 0xE0EC, 0xE0ED, 0xE0F0, 0xE0F4, + 0xE0FA, 0xE102, 0xE10A, 0xE114, 0xE11F, 0xE12A, 0xE137, 0xE144, 0xE151, + 0xE15F, 0xE16E, 0xE17C, 0xE18B, 0xE199, 0xE1A7, 0xE1B5, 0xE1C2, 0xE1CE, + 0xE1DA, 0xE1F0, 0xE21A, 0xE254, 0xE29D, 0xE2F3, 0xE352, 0xE3B8, 0xE424, + 0xE492, 0xE4FF, 0xE56B, 0xE5D1, 0xE631, 0xE687, 0xE6D0, 0xE70B, 0xE735, + 0xE74C, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, + 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, + 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, + 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, + 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xB793, 0xB78F, 0xB782, 0xB76F, + 0xB754, 0xB734, 0xB70D, 0xB6E2, 0xB6B2, 0xB67D, 0xB646, 0xB60B, 0xB5CE, + 0xB590, 0xB550, 0xB50F, 0xB4CF, 0xB48F, 0xB450, 0xB412, 0xB3D7, 0xB39E, + 0xB369, 0xB356, 0xB37E, 0xB3D9, 0xB461, 0xB50D, 0xB5D7, 0xB6B7, 0xB7A5, + 0xB89B, 0xB991, 0xBA7F, 0xBB5E, 0xBC26, 0xBCD1, 0xBD57, 0xBDB0, 0xBDD5, + 0xBDBF, 0xD4B3, 0xC63D, 0xA66B, 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, + 0xFADF, 0xFE0F, 0x0243, 0x0751, 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, + 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, + 0xE523, 0xE8D3, 0xEBCF, 0xEE06, 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, + 0xEA00, 0xDBFF, 0xCB47, 0xBD46, 0xB766, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, 0xF44D, + 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, 0xF4CE, + 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, 0xF58A, + 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, 0xF5C1, + 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFE75, 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, + 0xF663, 0xF6AF, 0xF714, 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, + 0xFBC6, 0xFC97, 0xFD6A, 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, + 0x0272, 0x02EE, 0x0354, 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, + 0x0905, 0x154B, 0x23F2, 0x3038, 0x4AA2, 0xD47E, 0xD47A, 0xD46E, 0xD45C, + 0xD443, 0xD424, 0xD400, 0xD3D7, 0xD3AB, 0xD37B, 0xD348, 0xD314, 0xD2D5, + 0xD287, 0xD22D, 0xD1CD, 0xD16B, 0xD10A, 0xD0B0, 0xD062, 0xD022, 0xCFF6, + 0xCFE3, 0xD075, 0xD1AB, 0xD2AF, 0xD2AD, 0xD072, 0xCD21, 0xCB18, 0xCBA3, + 0xCD7E, 0xCF72, 0xD049, 0xCF7F, 0xCDD6, 0xCC19, 0xCB12, 0xCB85, 0xCCCB, + 0xCD82, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, 0xE97C, 0xE992, + 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, 0xEF07, 0xF016, + 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, 0xF8A8, 0xF986, + 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, 0xFC3F, 0xFC3F, + 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xF1BB, 0xF1BD, 0xF1C5, 0xF1D1, + 0xF1E1, 0xF1F5, 0xF20D, 0xF227, 0xF245, 0xF265, 0xF287, 0xF2AB, 0xF2D0, + 0xF2F7, 0xF31E, 0xF345, 0xF36D, 0xF394, 0xF3BB, 0xF3E1, 0xF405, 0xF428, + 0xF448, 0xF468, 0xF489, 0xF4AA, 0xF4CC, 0xF4EF, 0xF512, 0xF535, 0xF559, + 0xF57D, 0xF5A1, 0xF5C5, 0xF5E8, 0xF60C, 0xF630, 0xF653, 0xF676, 0xF698, + 0xF6BA, 0xFFFF, 0xFC13, 0xFA10, 0xF952, 0xF937, 0xF937, 0xF937, 0xF920, + 0xF8DE, 0xF875, 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, + 0xF166, 0xF043, 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, + 0xE827, 0xE77A, 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, + 0xF137, 0x0B8C, 0x2AFA, 0x454E, 0xD059, 0xF6B3, 0xF6B2, 0xF6AE, 0xF6A9, + 0xF6A2, 0xF699, 0xF68E, 0xF683, 0xF675, 0xF667, 0xF658, 0xF648, 0xF637, + 0xF626, 0xF615, 0xF603, 0xF5F2, 0xF5E0, 0xF5CF, 0xF5BE, 0xF5AE, 0xF59F, + 0xF590, 0xF582, 0xF574, 0xF565, 0xF556, 0xF546, 0xF537, 0xF527, 0xF517, + 0xF507, 0xF4F7, 0xF4E7, 0xF4D7, 0xF4C8, 0xF4B8, 0xF4A8, 0xF499, 0xF489, + 0xF47B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, 0xF50D, 0xF50D, 0xF513, + 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, 0xF62A, 0xF66A, 0xF6AC, + 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, 0xF88C, 0xF8C7, 0xF8FE, + 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, 0xF9A9, 0xF9A9, 0xF9A9, + 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xD5DE, 0xD5DE, 0xD5DC, 0xD5D9, + 0xD5D6, 0xD5D1, 0xD5CC, 0xD5C6, 0xD5BF, 0xD5B8, 0xD5B0, 0xD5A8, 0xD59F, + 0xD597, 0xD58E, 0xD585, 0xD57C, 0xD573, 0xD56A, 0xD562, 0xD55A, 0xD552, + 0xD54B, 0xD543, 0xD53C, 0xD534, 0xD52D, 0xD525, 0xD51D, 0xD515, 0xD50D, + 0xD505, 0xD4FD, 0xD4F5, 0xD4ED, 0xD4E5, 0xD4DD, 0xD4D5, 0xD4CD, 0xD4C5, + 0xD4BD, 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, + 0xED0B, 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, + 0xF646, 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, + 0x01B5, 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, + 0xFA5A, 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xFF5A, 0xFD96, + 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, 0xEB34, 0xE970, 0xE8CA, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, + 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, + 0xD02E, 0xD346, 0xD5D2, 0xD78C, 0xD830, 0x07FA, 0x0804, 0x0820, 0x084E, + 0x088C, 0x08DA, 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, + 0x0CE4, 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, + 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, 0x16E3, + 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, 0x15E6, 0x14A2, + 0x1329, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, 0x1FDB, + 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, 0xD7A7, + 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, 0x428B, + 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, 0x18CE, + 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, + 0x2C13, 0x2BCA, 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, + 0x27FB, 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, + 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, 0x1E92, + 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, 0x1F80, 0x20B1, + 0x2214, 0x2BD6, 0x26DD, 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, + 0x0E26, 0x1092, 0x13B1, 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, + 0x4FF0, 0x4CD2, 0x4A66, 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, + 0x53CD, 0x5249, 0x50C6, 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, + 0x4D5C, 0x4B71, 0x4928, 0x38C3, 0x3990, 0xD464, 0xD473, 0xD49C, 0xD4E0, + 0xD53B, 0xD5AD, 0xD633, 0xD6CD, 0xD778, 0xD833, 0xD8FC, 0xD9D1, 0xDAB2, + 0xDB9B, 0xDC8C, 0xDD82, 0xDE7D, 0xDF7A, 0xE078, 0xE176, 0xE270, 0xE367, + 0xE458, 0xE541, 0xE621, 0xE6F7, 0xE7C0, 0xE87A, 0xE926, 0xE9BF, 0xEA46, + 0xEAB8, 0xEB13, 0xEB56, 0xEB80, 0xEB8E, 0xEB38, 0xEA46, 0xE8D2, 0xE6F7, + 0xE4CD, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, 0xEB39, 0xE9F9, + 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, 0xABA7, 0xA28E, + 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, 0x1C7F, 0x1A7D, + 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, 0x0B86, 0x0B86, + 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, + 0x0FD7, 0x0FE2, 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, + 0x12E9, 0x13D5, 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, + 0x1BF2, 0x1813, 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, + 0x1086, 0x1A5F, 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, + 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, + 0x2894, 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, + 0x288E, 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, + 0x2888, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x034A, 0x0A88, + 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, 0x0FF9, 0x0DAE, + 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, 0x03F7, 0x0A45, + 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, 0x1DEF, 0x1C26, + 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, 0x0DD1, 0x0B80, + 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, 0x0D50, + 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, 0x0BBC, 0x0B90, + 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, + 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0xD61F, 0xD61B, 0xD611, + 0xD600, 0xD5E9, 0xD5CC, 0xD5AA, 0xD583, 0xD558, 0xD52A, 0xD4F8, 0xD4C3, + 0xD48C, 0xD453, 0xD418, 0xD3DC, 0xD3A0, 0xD363, 0xD327, 0xD2EB, 0xD2B1, + 0xD279, 0xD242, 0xD20E, 0xD1DD, 0xD1B0, 0xD186, 0xD161, 0xD141, 0xD126, + 0xD111, 0xD102, 0xD0FA, 0xD0F8, 0xD0FF, 0xD10D, 0xD124, 0xD144, 0xD16D, + 0xD1A0, 0xD1DD, 0xC7DC, 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, + 0xF004, 0xF0DA, 0xF21D, 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, + 0xFDF0, 0xFEC6, 0xFF13, 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, + 0xDC50, 0xE73B, 0xF628, 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, + 0x247F, 0x29D3, 0x35C0, 0x422D, 0x4902, 0x4AD0, 0x4C42, 0x4D63, 0x4E3C, + 0x4ED7, 0x4F3F, 0x4F7E, 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, + 0x4CE5, 0x4BC9, 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, + 0x4B5A, 0x4C57, 0x4D53, 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, + 0x4DF2, 0x4CE5, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, 0x17DE, + 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, 0x1698, 0x1668, + 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, 0x151B, 0x14F1, 0x14CA, + 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, 0x1424, 0x1418, 0x1411, 0x1410, + 0x1415, 0x1421, 0x1434, 0x144D, 0x146F, 0x1498, 0x14CA, 0xFFFF, 0x0015, + 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, 0xFF80, + 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, 0xF893, + 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, 0xF21D, + 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, 0x2ABD, + 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, 0x6709, + 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, 0x65E2, + 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, 0x6611, + 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x03EC, 0x03EE, + 0x03F6, 0x0402, 0x0413, 0x0427, 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, + 0x04E5, 0x050D, 0x0536, 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, + 0x0662, 0x068A, 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, + 0x077D, 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, + 0x074A, 0x0726, 0x06FA, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, + 0x068E, 0x06A4, 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, + 0x0C0E, 0x0D1B, 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, + 0x159B, 0x1677, 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, + 0x192B, 0x192B, 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, + 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, + 0x12A4, 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, + 0x0E12, 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, + 0x12CF, 0x12A4, 0x1231, 0xCEFE, 0xCEF7, 0xCEE1, 0xCEBE, 0xCE90, 0xCE55, + 0xCE11, 0xCDC3, 0xCD6C, 0xCD0E, 0xCCA9, 0xCC3E, 0xCBCE, 0xCB5A, 0xCAE4, + 0xCA6B, 0xC9F0, 0xC976, 0xC8FC, 0xC884, 0xC80E, 0xC79B, 0xC72D, 0xC6C4, + 0xC661, 0xC605, 0xC5B1, 0xC566, 0xC525, 0xC4EF, 0xC4C4, 0xC4A5, 0xC495, + 0xC492, 0xC49F, 0xC4BC, 0xC4EA, 0xC52B, 0xC57E, 0xC5E5, 0xC661, 0xF548, + 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, + 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, 0xE666, 0xE829, 0xE9FD, 0xEBD9, + 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, 0xF66D, 0xF7DE, 0xF928, 0xFA43, + 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, 0xFC67, 0xFC67, 0xFE37, 0x02C6, + 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, 0x1705, 0x175E, 0x17A0, 0x17D0, + 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, + 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, 0x1613, 0x163B, 0x1676, 0x16BD, + 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, 0x1812, 0x1800, 0x17CF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, 0x0057, + 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, 0x02D4, + 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, 0x05ED, + 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, 0x0772, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, + 0xFFFC, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, + 0xFFE7, 0xFFE4, 0xFFE0, 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, + 0xFFCC, 0xFFC9, 0xFFC7, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF60, 0xBF67, 0xBF71, + 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, 0xC028, 0xC048, + 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, 0xC150, 0xC16E, + 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, 0xC211, 0xC218, + 0xC21A, 0xD649, 0xD64F, 0xD662, 0xD680, 0xD6AA, 0xD6DE, 0xD71D, 0xD765, + 0xD7B7, 0xD812, 0xD876, 0xD8E1, 0xD954, 0xD9CF, 0xDA50, 0xDAD7, 0xDB64, + 0xDBF7, 0xDC8E, 0xDD2A, 0xDDC9, 0xDE6C, 0xDF12, 0xDFBB, 0xE066, 0xE113, + 0xE1C0, 0xE26F, 0xE31D, 0xE3CC, 0xE47A, 0xE527, 0xE5D2, 0xE67B, 0xE722, + 0xE7C6, 0xE866, 0xE903, 0xE99B, 0xEA2E, 0xEABD, 0xD649, 0xDA6F, 0xE390, + 0xECB0, 0xF0D6, 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, + 0xEE3D, 0xED7A, 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, + 0xE6CB, 0xE605, 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, + 0xE227, 0xE218, 0xEC40, 0xEC43, 0xEC4B, 0xEC59, 0xEC6C, 0xEC84, 0xECA1, + 0xECC2, 0xECE8, 0xED11, 0xED3F, 0xED6F, 0xEDA3, 0xEDDB, 0xEE15, 0xEE51, + 0xEE90, 0xEED1, 0xEF14, 0xEF59, 0xEF9F, 0xEFE7, 0xF02F, 0xF078, 0xF0C1, + 0xF10B, 0xF155, 0xF19F, 0xF1E8, 0xF231, 0xF278, 0xF2BF, 0xF304, 0xF348, + 0xF389, 0xF3C9, 0xF406, 0xF441, 0xF479, 0xF4AE, 0xF4E0, 0xEC40, 0xEDD6, + 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, 0xF872, 0xFA77, 0xFCAB, + 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, 0x00B3, 0x00AD, 0x00A7, + 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, 0x0077, 0x0071, 0x006D, + 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59B, 0xB593, 0xB587, 0xB576, 0xB560, + 0xB547, 0xB529, 0xB508, 0xB4E3, 0xB4BA, 0xB48E, 0xB45F, 0xB42D, 0xB3F9, + 0xB3C2, 0xB388, 0xB34D, 0xB30F, 0xB2D0, 0xB28F, 0xB24D, 0xB20A, 0xB1C6, + 0xB181, 0xB13B, 0xB0F5, 0xB0AF, 0xB068, 0xB022, 0xAFDC, 0xAF97, 0xAF52, + 0xAF0F, 0xAECC, 0xAE8B, 0xAE4B, 0xAE0D, 0xADD1, 0xAD97, 0xAD5F, 0xB59D, + 0xB418, 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, + 0xB4CB, 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, + 0xB745, 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, + 0xAEC3, 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, 0x00FB, 0x015D, 0x01C9, 0x023E, + 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, 0x0538, 0x05AD, 0x0619, 0x067B, + 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, 0x0731, 0x0677, 0x056A, 0x042C, + 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, 0xFF91, 0xFF91, 0xFF91, 0xFF82, + 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, + 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, + 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, + 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, + 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, + 0x254B, 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, + 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, 0x26BD, + 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, 0x2812, 0x2844, + 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, 0x29D3, 0x2A13, 0x2A55, + 0x2537, 0x22E5, 0x20CA, 0x1EE2, 0x1D2A, 0x1BA1, 0x1A43, 0x190F, 0x1801, + 0x1717, 0x164E, 0x15A4, 0x1516, 0x14A3, 0x1446, 0x13FD, 0x13C7, 0x13A0, + 0x1386, 0x1376, 0x136E, 0x136B, 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, + 0x14EB, 0x1553, 0x15AB, 0x15E7, 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, + 0x1C02, 0x2111, 0x254E, 0x2715, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, + 0x000B, 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, + 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, 0x0085, + 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, 0x00AE, 0x00B0, + 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, 0x00A2, 0x009B, 0x0093, + 0x0000, 0xFE9F, 0xFCA1, 0xFA2B, 0xF768, 0xF480, 0xF19A, 0xEEE1, 0xEC7B, + 0xEA93, 0xE950, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, 0x0292, + 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, 0x0E2C, + 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, 0x045B, + 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0x0000, 0xFFFF, 0x0001, 0x0002, + 0x0003, 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, + 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, 0x0029, + 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, 0x0035, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, 0x0032, 0x0030, 0x002D, + 0xFFFF, 0xFEA7, 0xFBE6, 0xF80F, 0xF373, 0xEE68, 0xE93F, 0xE44C, 0xDFE2, + 0xDC54, 0xD9F5, 0xD918, 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, + 0xF612, 0xFAF5, 0xFEE9, 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, + 0xFE27, 0xFCF8, 0xFBF9, 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, + 0xFABD, 0xFA7F, 0xFA4B, 0xFA36, 0xBF3F, 0xBF41, 0xBF46, 0xBF4F, 0xBF5A, + 0xBF68, 0xBF79, 0xBF8C, 0xBFA1, 0xBFB8, 0xBFD1, 0xBFEC, 0xC007, 0xC024, + 0xC041, 0xC05F, 0xC07D, 0xC09C, 0xC0BA, 0xC0D8, 0xC0F6, 0xC113, 0xC12F, + 0xC14A, 0xC163, 0xC17B, 0xC191, 0xC1A5, 0xC1B7, 0xC1C7, 0xC1D3, 0xC1DD, + 0xC1E4, 0xC1E7, 0xC1E7, 0xC1E3, 0xC1DB, 0xC1CF, 0xC1BF, 0xC1AA, 0xC190, + 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, 0xC86E, 0xC9FB, + 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, 0xC6BD, 0xC4F7, + 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, 0xBFCA, 0xC012, + 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, 0xC11D, 0xBF09, + 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B07, 0x1B00, + 0x1AF5, 0x1AE6, 0x1AD3, 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, + 0x19E7, 0x19B7, 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, + 0x17D4, 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, + 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, 0x1230, + 0x11D2, 0x1173, 0x1B09, 0x28AA, 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, + 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, + 0xCB8B, 0xCD98, 0xD027, 0xD30C, 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, + 0xE26C, 0xE3E7, 0xE513, 0xE5F6, 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, + 0xE70A, 0xE5F8, 0xE36B, 0xE060, 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1142, + 0x113F, 0x113B, 0x1136, 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, + 0x10F0, 0x10E2, 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, + 0x103F, 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, + 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, 0x0DD2, + 0x0DA2, 0x0D70, 0x1144, 0x191B, 0x1D80, 0x0A66, 0xF74B, 0xF74B, 0xF74B, + 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, 0xF58C, + 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, 0x07D9, + 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, 0x1177, + 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC40, 0xAC37, + 0xAC29, 0xAC15, 0xABFD, 0xABDF, 0xABBC, 0xAB95, 0xAB69, 0xAB39, 0xAB05, + 0xAACD, 0xAA91, 0xAA52, 0xAA0F, 0xA9C9, 0xA981, 0xA935, 0xA8E7, 0xA896, + 0xA843, 0xA7EF, 0xA798, 0xA73F, 0xA6E5, 0xA68A, 0xA62E, 0xA5D0, 0xA572, + 0xA513, 0xA4B4, 0xA455, 0xA3F5, 0xA396, 0xA337, 0xA2D9, 0xA27B, 0xA21F, + 0xA1C3, 0xA169, 0xAC43, 0xBDC1, 0xD23C, 0xE87F, 0xF37A, 0xF37A, 0xF37A, + 0xEF6B, 0xE4B8, 0xD598, 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, + 0x99ED, 0x9F30, 0xA593, 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, + 0xC87D, 0xCA2A, 0xCB49, 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, + 0xCC77, 0xCC55, 0xCC05, 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, 0x0013, 0x0020, + 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, 0x019C, 0x01FB, + 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, 0x0842, 0x0C37, + 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, 0x2D6B, 0x2D6B, + 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, + 0xFFEE, 0xFFE6, 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, + 0xFF35, 0xFF0D, 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, + 0xFAB5, 0xF8FE, 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, + 0xF2E5, 0xF0C4, 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4D, 0x1E56, + 0x1E66, 0x1E7B, 0x1E97, 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, + 0x1FE1, 0x2022, 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, + 0x229B, 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, + 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, 0x28F9, + 0x2954, 0x29AD, 0x1E4A, 0x194E, 0x14C7, 0x10AD, 0x0CFD, 0x09B0, 0x06C0, + 0x0429, 0x01E5, 0xFFED, 0xFE3E, 0xFCD1, 0xFBA0, 0xFAA7, 0xF9DF, 0xF944, + 0xF8CF, 0xF87C, 0xF843, 0xF821, 0xF810, 0xF80A, 0xF809, 0xF818, 0xF840, + 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, 0xF9C2, 0xF9C2, 0xF9C2, + 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, 0x0000, 0x0000, 0xFFFD, + 0xFFFA, 0xFFF5, 0xFFEF, 0xFFE8, 0xFFE0, 0xFFD7, 0xFFCC, 0xFFC1, 0xFFB5, + 0xFFA7, 0xFF99, 0xFF8A, 0xFF7A, 0xFF69, 0xFF57, 0xFF45, 0xFF31, 0xFF1D, + 0xFF09, 0xFEF4, 0xFEDE, 0xFEC7, 0xFEB1, 0xFE99, 0xFE81, 0xFE69, 0xFE51, + 0xFE38, 0xFE1E, 0xFE05, 0xFDEB, 0xFDD1, 0xFDB7, 0xFD9D, 0xFD82, 0xFD68, + 0xFD4D, 0xFD33, 0x0000, 0xFE6C, 0xFD9D, 0xFD50, 0xFD46, 0xFD46, 0xFD46, + 0xFD6F, 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, + 0x095A, 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, + 0x1A9A, 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, + 0x1F95, 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFF2E, + 0xFF2E, 0xFF2D, 0xFF2C, 0xFF2B, 0xFF2A, 0xFF29, 0xFF27, 0xFF26, 0xFF24, + 0xFF22, 0xFF21, 0xFF1F, 0xFF1D, 0xFF1B, 0xFF19, 0xFF16, 0xFF14, 0xFF12, + 0xFF10, 0xFF0E, 0xFF0C, 0xFF0A, 0xFF08, 0xFF06, 0xFF05, 0xFF03, 0xFF01, + 0xFF00, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFB, 0xFEFB, 0xFEFA, 0xFEFA, 0xFEFA, + 0xFEFA, 0xFEFA, 0xFF2F, 0xFDB7, 0xFA7C, 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, + 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, 0xFC59, 0xFE6E, 0x00B6, 0x0325, + 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, 0x1312, 0x15A0, 0x180E, 0x1A55, + 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, 0x22C4, 0x22FA, 0x22FA, 0x22FA, + 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, 0x12D1, 0xC9D7, 0xC9D9, 0xC9DE, + 0xC9E7, 0xC9F3, 0xCA02, 0xCA14, 0xCA28, 0xCA3F, 0xCA58, 0xCA73, 0xCA90, + 0xCAAF, 0xCACF, 0xCAF0, 0xCB12, 0xCB36, 0xCB5A, 0xCB7E, 0xCBA3, 0xCBC7, + 0xCBEC, 0xCC10, 0xCC34, 0xCC57, 0xCC7A, 0xCC9B, 0xCCBB, 0xCCD9, 0xCCF6, + 0xCD11, 0xCD2A, 0xCD41, 0xCD55, 0xCD67, 0xCD76, 0xCD82, 0xCD8A, 0xCD90, + 0xCD91, 0xCD8F, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, + 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, + 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, + 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, + 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, }; diff --git a/assets/anims/anim_27.inc.c.rej b/assets/anims/anim_27.inc.c.rej new file mode 100644 index 00000000..8bb56b48 --- /dev/null +++ b/assets/anims/anim_27.inc.c.rej @@ -0,0 +1,1138 @@ +diff a/assets/anims/anim_27.inc.c b/assets/anims/anim_27.inc.c (rejected hunks) +@@ -12,590 +12,554 @@ static const struct Animation anim_27[] = { + + + static const u16 anim_27_indices[] = { +- 0x0070, 0x0001, 0x0070, 0x0071, 0x0070, 0x00E1, 0x0001, 0x0000, 0x0001, 0x0151, 0x0001, 0x0000, +- 0x0070, 0x103A, 0x0070, 0x10AA, 0x0070, 0x111A, +- 0x0070, 0x0EEA, 0x0070, 0x0F5A, 0x0070, 0x0FCA, +- 0x0070, 0x0D9A, 0x0070, 0x0E0A, 0x0070, 0x0E7A, +- 0x0001, 0x0D96, 0x0001, 0x0D97, 0x0001, 0x0D98, +- 0x0070, 0x0312, 0x0070, 0x0382, 0x0070, 0x03F2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x02A2, +- 0x0070, 0x0152, 0x0070, 0x01C2, 0x0070, 0x0232, +- 0x0001, 0x0D92, 0x0001, 0x0D93, 0x0001, 0x0D94, +- 0x0070, 0x0622, 0x0070, 0x0692, 0x0070, 0x0702, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x05B2, +- 0x0070, 0x0462, 0x0070, 0x04D2, 0x0070, 0x0542, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D95, +- 0x0070, 0x0C42, 0x0070, 0x0CB2, 0x0070, 0x0D22, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x0BD2, +- 0x0070, 0x0A82, 0x0070, 0x0AF2, 0x0070, 0x0B62, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D99, +- 0x0070, 0x0932, 0x0070, 0x09A2, 0x0070, 0x0A12, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x08C2, +- 0x0070, 0x0772, 0x0070, 0x07E2, 0x0070, 0x0852, ++ 0x0001, 0x0000, 0x0051, 0x0001, 0x002A, 0x0052, 0x0046, 0x007C, 0x005B, ++ 0x00C2, 0x004E, 0x011D, 0x005B, 0x016B, 0x0051, 0x01C6, 0x002A, 0x0217, ++ 0x005D, 0x0241, 0x005D, 0x029E, 0x005E, 0x02FB, 0x0051, 0x0359, 0x0051, ++ 0x03AA, 0x0051, 0x03FB, 0x0001, 0x044C, 0x0001, 0x044D, 0x0001, 0x044E, ++ 0x0051, 0x044F, 0x0051, 0x04A0, 0x0051, 0x04F1, 0x0051, 0x0542, 0x0051, ++ 0x0593, 0x0051, 0x05E4, 0x0051, 0x0635, 0x0051, 0x0686, 0x0051, 0x06D7, ++ 0x0042, 0x0728, 0x0042, 0x076A, 0x0042, 0x07AC, 0x0051, 0x07EE, 0x0051, ++ 0x083F, 0x0051, 0x0890, 0x0071, 0x08E1, 0x0071, 0x0952, 0x0071, 0x09C3, ++ 0x0071, 0x0A34, 0x0071, 0x0AA5, 0x0071, 0x0B16, 0x0049, 0x0B87, 0x0048, ++ 0x0BD0, 0x0049, 0x0C18, 0x0049, 0x0C61, 0x0049, 0x0CAA, 0x0049, 0x0CF3, ++ 0x0051, 0x0D3C, 0x0051, 0x0D8D, 0x0051, 0x0DDE, 0x0051, 0x0E2F, 0x0051, ++ 0x0E80, 0x0051, 0x0ED1, 0x005A, 0x0F22, 0x005B, 0x0F7C, 0x0001, 0x0FD7, ++ 0x0051, 0x0FD8, 0x0051, 0x1029, 0x0051, 0x107A, 0x0051, 0x10CB, 0x0051, ++ 0x111C, 0x0051, 0x116D, 0x0051, 0x11BE, 0x0051, 0x120F, 0x0051, 0x1260, + }; + + static const s16 anim_27_values[] = { +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0006, 0x0008, +- 0x000A, 0x000D, 0x0013, 0x0017, 0x0016, 0x000D, 0x0000, 0xFFF4, +- 0xFFF5, 0xFFF4, 0xFFDF, 0xFFC7, 0xFFC0, 0xFFD5, 0xFFF8, 0x0019, +- 0x002B, 0x002D, 0x002C, 0x0028, 0x0022, 0x001B, 0x0013, 0x000B, +- 0x0004, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, +- 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, +- 0x00AE, 0x00AE, 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, +- 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, +- 0x00B5, 0x00B6, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B8, 0x00B8, +- 0x00B8, 0x00B8, 0x00B8, 0x00B9, 0x00B9, 0x00B9, 0x00B9, 0x00B9, +- 0x00B9, 0x00B9, 0x00B8, 0x00B5, 0x00AE, 0x00A6, 0x00A0, 0x009E, +- 0x009D, 0x009C, 0x009C, 0x009C, 0x009B, 0x009B, 0x009B, 0x009C, +- 0x0099, 0x009B, 0x00A5, 0x00B0, 0x00BC, 0x00C8, 0x00D5, 0x00DF, +- 0x00E8, 0x00EE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F4, 0x00F3, +- 0x00EF, 0x00E9, 0x00E5, 0x00E2, 0x00E0, 0x00DE, 0x00DD, 0x00DB, +- 0x00D5, 0x00CD, 0x00C3, 0x00B8, 0x00AC, 0x00A1, 0x0095, 0x008A, +- 0x0080, 0x0078, 0x0074, 0x0075, 0x0077, 0x0077, 0x0077, 0x0077, +- 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, +- 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0000, 0x0000, 0x0000, 0xFFFD, 0xFFF6, 0xFFEE, 0xFFE7, 0xFFE1, +- 0xFFDB, 0xFFD6, 0xFFD1, 0xFFCD, 0xFFCC, 0xFFCB, 0xFFCC, 0xFFCC, +- 0xFFCA, 0xFFCA, 0xFFD0, 0xFFD6, 0xFFDE, 0xFFE5, 0xFFEC, 0xFFF1, +- 0xFFF5, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE5, 0xFFEB, 0xFFF5, 0x0000, +- 0x0007, 0x000D, 0x000D, 0x000B, 0x000B, 0x0010, 0x0018, 0x001D, +- 0x001B, 0x0012, 0x0005, 0xFFF7, 0xFFE7, 0xFFD6, 0xFFC7, 0xFFBA, +- 0xFFB1, 0xFFAC, 0xFFBD, 0xFFE3, 0x0000, 0x0007, 0x0003, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x3FFF, 0xF1BC, 0xF1BE, 0xF1C6, 0xF1D2, 0xF1E2, 0xF1F6, +- 0xF20E, 0xF228, 0xF246, 0xF266, 0xF288, 0xF2AC, 0xF2D1, 0xF2F8, +- 0xF31F, 0xF346, 0xF36E, 0xF395, 0xF3BC, 0xF3E2, 0xF406, 0xF429, +- 0xF449, 0xF469, 0xF48A, 0xF4AB, 0xF4CD, 0xF4F0, 0xF513, 0xF536, +- 0xF55A, 0xF57E, 0xF5A2, 0xF5C6, 0xF5E9, 0xF60D, 0xF631, 0xF654, +- 0xF677, 0xF699, 0xF6BB, 0xF6DC, 0xF6FC, 0xF71B, 0xF73A, 0xF758, +- 0xF774, 0xF78F, 0xF7A9, 0xF7C2, 0xF7D6, 0xF7E1, 0xF7E6, 0xF7E5, +- 0xF7E0, 0xF7D9, 0xF7D1, 0xF7CA, 0xF7C4, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF6B4, 0xF6B3, 0xF6AF, 0xF6AA, 0xF6A3, 0xF69A, +- 0xF68F, 0xF684, 0xF676, 0xF668, 0xF659, 0xF649, 0xF638, 0xF627, +- 0xF616, 0xF604, 0xF5F3, 0xF5E1, 0xF5D0, 0xF5BF, 0xF5AF, 0xF5A0, +- 0xF591, 0xF583, 0xF575, 0xF566, 0xF557, 0xF547, 0xF538, 0xF528, +- 0xF518, 0xF508, 0xF4F8, 0xF4E8, 0xF4D8, 0xF4C9, 0xF4B9, 0xF4A9, +- 0xF49A, 0xF48A, 0xF47C, 0xF46D, 0xF45E, 0xF450, 0xF443, 0xF436, +- 0xF429, 0xF41D, 0xF411, 0xF406, 0xF3FE, 0xF3F9, 0xF3F7, 0xF3F7, +- 0xF3F9, 0xF3FC, 0xF400, 0xF403, 0xF405, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xD5DF, 0xD5DF, 0xD5DD, 0xD5DA, 0xD5D7, 0xD5D2, +- 0xD5CD, 0xD5C7, 0xD5C0, 0xD5B9, 0xD5B1, 0xD5A9, 0xD5A0, 0xD598, +- 0xD58F, 0xD586, 0xD57D, 0xD574, 0xD56B, 0xD563, 0xD55B, 0xD553, +- 0xD54C, 0xD544, 0xD53D, 0xD535, 0xD52E, 0xD526, 0xD51E, 0xD516, +- 0xD50E, 0xD506, 0xD4FE, 0xD4F6, 0xD4EE, 0xD4E6, 0xD4DE, 0xD4D6, +- 0xD4CE, 0xD4C6, 0xD4BE, 0xD4B7, 0xD4B0, 0xD4A9, 0xD4A2, 0xD49B, +- 0xD494, 0xD48E, 0xD488, 0xD483, 0xD47E, 0xD47C, 0xD47B, 0xD47B, +- 0xD47C, 0xD47E, 0xD47F, 0xD481, 0xD482, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD47F, 0xD47B, 0xD46F, 0xD45D, 0xD444, 0xD425, +- 0xD401, 0xD3D8, 0xD3AC, 0xD37C, 0xD349, 0xD315, 0xD2D6, 0xD288, +- 0xD22E, 0xD1CE, 0xD16C, 0xD10B, 0xD0B1, 0xD063, 0xD023, 0xCFF7, +- 0xCFE4, 0xD076, 0xD1AC, 0xD2B0, 0xD2AE, 0xD073, 0xCD22, 0xCB19, +- 0xCBA4, 0xCD7F, 0xCF73, 0xD04A, 0xCF80, 0xCDD7, 0xCC1A, 0xCB13, +- 0xCB86, 0xCCCC, 0xCD83, 0xCCF9, 0xCBDB, 0xCAA4, 0xC9CB, 0xC977, +- 0xC966, 0xC975, 0xC97F, 0xC97A, 0xC978, 0xC977, 0xC976, 0xC977, +- 0xC978, 0xC97A, 0xC97C, 0xC97D, 0xC97E, 0xC97F, 0xC97F, 0xC97F, +- 0xC97F, 0xC8B0, 0xC97F, 0xCCF2, 0xD0C7, 0xD4E5, 0xD935, 0xDD9D, +- 0xE205, 0xE654, 0xEA72, 0xEE45, 0xF1B6, 0xF4AB, 0xF70D, 0xF8C2, +- 0xFA00, 0xFB0F, 0xFBF2, 0xFCAB, 0xFD3D, 0xFDAA, 0xFDF4, 0xFE1E, +- 0xFE2B, 0xFE1E, 0xFDF7, 0xFDBA, 0xFD6A, 0xFD09, 0xFC99, 0xFC1D, +- 0xFB98, 0xFB0B, 0xFA7A, 0xF9E6, 0xF952, 0xF8C2, 0xF332, 0xEB50, +- 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, +- 0xEB50, 0xEB50, 0xF6FF, 0xF700, 0xF702, 0xF706, 0xF70A, 0xF710, +- 0xF717, 0xF71E, 0xF727, 0xF730, 0xF739, 0xF744, 0xF74E, 0xF759, +- 0xF764, 0xF76F, 0xF77B, 0xF786, 0xF791, 0xF79B, 0xF7A6, 0xF7B0, +- 0xF7B9, 0xF79E, 0xF741, 0xF6AA, 0xF5E2, 0xF4F0, 0xF3DD, 0xF2B2, +- 0xF176, 0xF032, 0xEEED, 0xEDB1, 0xEC86, 0xEB74, 0xEA82, 0xE9BA, +- 0xE924, 0xE8C7, 0xE8AD, 0xE8DD, 0xE960, 0xEA3D, 0xEB7E, 0xED2B, +- 0xEF4B, 0xF1E7, 0xF508, 0xF8B5, 0xFEC9, 0x089F, 0x1584, 0x24C5, +- 0x35AB, 0x4785, 0x599C, 0x6B3D, 0x7BB4, 0x8A4F, 0x978A, 0xA20B, +- 0xA653, 0x99E3, 0x8A4F, 0x83F5, 0x7D87, 0x771F, 0x70D0, 0x6AAF, +- 0x64D2, 0x5F4E, 0x5A38, 0x55A5, 0x51AC, 0x4E60, 0x4BD9, 0x4A2A, +- 0x4921, 0x4878, 0x4828, 0x482B, 0x4877, 0x4907, 0x49D4, 0x4AD5, +- 0x4C03, 0x4D59, 0x4ECD, 0x5059, 0x51F6, 0x539C, 0x5545, 0x56E8, +- 0x587F, 0x5A03, 0x5B6C, 0x5CB3, 0x5DD1, 0x5EBE, 0x5F1C, 0x5EED, +- 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, +- 0x5EBE, 0x5EBE, 0xE0ED, 0xE0EE, 0xE0F1, 0xE0F5, 0xE0FB, 0xE103, +- 0xE10B, 0xE115, 0xE120, 0xE12B, 0xE138, 0xE145, 0xE152, 0xE160, +- 0xE16F, 0xE17D, 0xE18C, 0xE19A, 0xE1A8, 0xE1B6, 0xE1C3, 0xE1CF, +- 0xE1DB, 0xE1F1, 0xE21B, 0xE255, 0xE29E, 0xE2F4, 0xE353, 0xE3B9, +- 0xE425, 0xE493, 0xE500, 0xE56C, 0xE5D2, 0xE632, 0xE688, 0xE6D1, +- 0xE70C, 0xE736, 0xE74D, 0xE74E, 0xE736, 0xE704, 0xE6B5, 0xE646, +- 0xE5B5, 0xE500, 0xE424, 0xE31F, 0xE159, 0xDE65, 0xDA81, 0xD5E9, +- 0xD0DB, 0xCB93, 0xC64F, 0xC14C, 0xBCC7, 0xB8FC, 0xB735, 0xB767, +- 0xB7DB, 0xB8D5, 0xB8FC, 0xB734, 0xB530, 0xB2FF, 0xB0AE, 0xAE4D, +- 0xABEA, 0xA994, 0xA758, 0xA545, 0xA36B, 0xA1D7, 0xA097, 0x9FBB, +- 0x9F26, 0x9EB3, 0x9E5E, 0x9E25, 0x9E05, 0x9DFE, 0x9E0A, 0x9E2A, +- 0x9E59, 0x9E96, 0x9EDD, 0x9F2E, 0x9F84, 0x9FDF, 0xA03A, 0xA095, +- 0xA0EC, 0xA13D, 0xA186, 0xA1C4, 0xA1F4, 0xA215, 0xA21F, 0xA21A, +- 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, +- 0xA215, 0xA215, 0xB794, 0xB790, 0xB783, 0xB770, 0xB755, 0xB735, +- 0xB70E, 0xB6E3, 0xB6B3, 0xB67E, 0xB647, 0xB60C, 0xB5CF, 0xB591, +- 0xB551, 0xB510, 0xB4D0, 0xB490, 0xB451, 0xB413, 0xB3D8, 0xB39F, +- 0xB36A, 0xB357, 0xB37F, 0xB3DA, 0xB462, 0xB50E, 0xB5D8, 0xB6B8, +- 0xB7A6, 0xB89C, 0xB992, 0xBA80, 0xBB5F, 0xBC27, 0xBCD2, 0xBD58, +- 0xBDB1, 0xBDD6, 0xBDC0, 0xBD67, 0xBCC4, 0xBBCF, 0xBA81, 0xB8D3, +- 0xB6BC, 0xB437, 0xB13B, 0xADC1, 0xA825, 0x9F31, 0x9382, 0x85B8, +- 0x766E, 0x6647, 0x55E0, 0x45D5, 0x36C6, 0x2951, 0x1C5F, 0x115F, +- 0x0CBA, 0x1963, 0x2951, 0x2FE5, 0x3680, 0x3D11, 0x4384, 0x49C7, +- 0x4FC9, 0x5576, 0x5ABC, 0x5F88, 0x63C9, 0x676C, 0x6A5E, 0x6C8D, +- 0x6E28, 0x6F6C, 0x7060, 0x710B, 0x7173, 0x719E, 0x7192, 0x7156, +- 0x70F1, 0x7068, 0x6FC2, 0x6F05, 0x6E38, 0x6D61, 0x6C86, 0x6BAE, +- 0x6ADF, 0x6A1F, 0x6975, 0x68E7, 0x687C, 0x6839, 0x6825, 0x682F, +- 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, +- 0x6839, 0x6839, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, +- 0x17DE, 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, +- 0x1698, 0x1668, 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, +- 0x151B, 0x14F1, 0x14CA, 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, +- 0x1424, 0x1418, 0x1411, 0x1410, 0x1415, 0x1421, 0x1434, 0x144D, +- 0x146F, 0x1498, 0x14CA, 0x1504, 0x1548, 0x1594, 0x15EB, 0x164C, +- 0x16B7, 0x172E, 0x17AF, 0x183D, 0x196E, 0x1BB5, 0x1ED8, 0x229F, +- 0x26D1, 0x2B32, 0x2F8C, 0x33A4, 0x3741, 0x3A2B, 0x3ACE, 0x3963, +- 0x385F, 0x3845, 0x3A2B, 0x3F4A, 0x45E0, 0x4CC1, 0x52C0, 0x56B1, +- 0x5768, 0x551E, 0x50FE, 0x4B47, 0x443A, 0x3C15, 0x3318, 0x2983, +- 0x1D39, 0x0D76, 0xFC7A, 0xEC86, 0xDFD9, 0xD8B5, 0xDABE, 0xE4C4, +- 0xF1CB, 0xFCD8, 0x00EF, 0xFE38, 0xF8B4, 0xF133, 0xE885, 0xDF7A, +- 0xD6E1, 0xCF8A, 0xCA45, 0xC784, 0xC6BF, 0xC74C, 0xC882, 0xC9B8, +- 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, +- 0xCA45, 0xCA45, 0x03EC, 0x03EE, 0x03F6, 0x0402, 0x0413, 0x0427, +- 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, 0x04E5, 0x050D, 0x0536, +- 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, 0x0662, 0x068A, +- 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, 0x077D, +- 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, +- 0x074A, 0x0726, 0x06FA, 0x06C6, 0x068A, 0x0646, 0x05F9, 0x05A4, +- 0x0544, 0x04DC, 0x0469, 0x03EC, 0x02E3, 0x00EB, 0xFE36, 0xFAF1, +- 0xF74B, 0xF374, 0xEF9C, 0xEBF1, 0xE8A3, 0xE5E1, 0xE479, 0xE466, +- 0xE49B, 0xE431, 0xE5E1, 0xEAF1, 0xF131, 0xF7C7, 0xFDDC, 0x0297, +- 0x0521, 0x052D, 0x0366, 0x006B, 0xFCDD, 0xF959, 0xF680, 0xF4F0, +- 0xF483, 0xF4AF, 0xF57B, 0xF6EF, 0xF913, 0xFBEF, 0x006E, 0x06B8, +- 0x0DAE, 0x142E, 0x1917, 0x1CBE, 0x2033, 0x2370, 0x266F, 0x292B, +- 0x2B9D, 0x2DC0, 0x2F8D, 0x30AF, 0x3100, 0x30C6, 0x3047, 0x2FC7, +- 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, +- 0x2F8D, 0x2F8D, 0xCEFF, 0xCEF8, 0xCEE2, 0xCEBF, 0xCE91, 0xCE56, +- 0xCE12, 0xCDC4, 0xCD6D, 0xCD0F, 0xCCAA, 0xCC3F, 0xCBCF, 0xCB5B, +- 0xCAE5, 0xCA6C, 0xC9F1, 0xC977, 0xC8FD, 0xC885, 0xC80F, 0xC79C, +- 0xC72E, 0xC6C5, 0xC662, 0xC606, 0xC5B2, 0xC567, 0xC526, 0xC4F0, +- 0xC4C5, 0xC4A6, 0xC496, 0xC493, 0xC4A0, 0xC4BD, 0xC4EB, 0xC52C, +- 0xC57F, 0xC5E6, 0xC662, 0xC6F4, 0xC79C, 0xC85C, 0xC935, 0xCA27, +- 0xCB33, 0xCC5A, 0xCD9E, 0xCEFF, 0xD1EC, 0xD77A, 0xDF23, 0xE862, +- 0xF2AF, 0xFD85, 0x085C, 0x12B1, 0x1BFB, 0x23B6, 0x2778, 0x2759, +- 0x2696, 0x25AB, 0x23B6, 0x2212, 0x20EC, 0x1FBB, 0x1DF6, 0x1B13, +- 0x168A, 0x0F95, 0x0679, 0xFC3A, 0xF1D9, 0xE85A, 0xE0C1, 0xDC12, +- 0xDB50, 0xDDF9, 0xE2C4, 0xE869, 0xEDA2, 0xF126, 0xF39C, 0xF600, +- 0xF790, 0xF788, 0xF522, 0xF035, 0xE97C, 0xE18E, 0xD900, 0xD068, +- 0xC85E, 0xC177, 0xBC49, 0xB96D, 0xB8A0, 0xB932, 0xBA74, 0xBBB7, +- 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, +- 0xBC49, 0xBC49, 0xD620, 0xD61C, 0xD612, 0xD601, 0xD5EA, 0xD5CD, +- 0xD5AB, 0xD584, 0xD559, 0xD52B, 0xD4F9, 0xD4C4, 0xD48D, 0xD454, +- 0xD419, 0xD3DD, 0xD3A1, 0xD364, 0xD328, 0xD2EC, 0xD2B2, 0xD27A, +- 0xD243, 0xD20F, 0xD1DE, 0xD1B1, 0xD187, 0xD162, 0xD142, 0xD127, +- 0xD112, 0xD103, 0xD0FB, 0xD0F9, 0xD100, 0xD10E, 0xD125, 0xD145, +- 0xD16E, 0xD1A1, 0xD1DE, 0xD226, 0xD27A, 0xD2D8, 0xD343, 0xD3BB, +- 0xD440, 0xD4D2, 0xD572, 0xD620, 0xD795, 0xDA5A, 0xDE2C, 0xE2C7, +- 0xE7E7, 0xED47, 0xF2A5, 0xF7BB, 0xFC45, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFF4B, 0xFE82, 0xFDAB, 0xFCCA, 0xFBE5, +- 0xFAFF, 0xFA1E, 0xF945, 0xF87B, 0xF7C3, 0xF722, 0xF69E, 0xF639, +- 0xF71A, 0xF98B, 0xFC4B, 0xFE1B, 0xFDB8, 0xF9E4, 0xF127, 0xE434, +- 0xD50A, 0xC5A6, 0xB807, 0xAE2A, 0xA862, 0xA612, 0xA7CE, 0xAE2A, +- 0xC22B, 0xDF8D, 0xF2F7, 0xF882, 0xFA0F, 0xF8F3, 0xF683, 0xF413, +- 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, +- 0xF2F7, 0xF2F7, 0x07FA, 0x0804, 0x0820, 0x084E, 0x088C, 0x08DA, +- 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, 0x0CE4, +- 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, +- 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, +- 0x16E3, 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, +- 0x15E6, 0x14A2, 0x1329, 0x118C, 0x0FDE, 0x0E30, 0x0C94, 0x0B1B, +- 0x09D7, 0x08DA, 0x0835, 0x07FA, 0x0FAE, 0x211A, 0x33B4, 0x3EF4, +- 0x41C8, 0x4189, 0x3F48, 0x3C1A, 0x3911, 0x3741, 0x36EE, 0x3734, +- 0x3770, 0x38E3, 0x3741, 0x2FF5, 0x26E1, 0x1CB9, 0x1234, 0x06B4, +- 0xFA61, 0xEF17, 0xE2BC, 0xD757, 0xD4F4, 0xE447, 0xFCA6, 0x0C0B, +- 0x0E0E, 0x0BA6, 0x06E5, 0x01DF, 0xFEA5, 0xFF49, 0x06FC, 0x1473, +- 0x22FF, 0x2DF3, 0x30A4, 0x2B2D, 0x2197, 0x151C, 0x06F2, 0xF854, +- 0xEA76, 0xDE93, 0xD5E1, 0xD118, 0xCF73, 0xCFF4, 0xD19B, 0xD369, +- 0xD460, 0xD4B1, 0xD531, 0xD5D1, 0xD682, 0xD735, 0xD7DB, 0xD866, +- 0xD8C6, 0xD8EC, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, 0x2C13, 0x2BCA, +- 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, 0x27FB, +- 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, +- 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, +- 0x1E92, 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, +- 0x1F80, 0x20B1, 0x2214, 0x2399, 0x252E, 0x26C3, 0x2847, 0x29AA, +- 0x2ADB, 0x2BCA, 0x2C65, 0x2C9C, 0x2C62, 0x2BC5, 0x2AE1, 0x29CF, +- 0x288D, 0x2718, 0x258B, 0x2401, 0x2297, 0x2169, 0x20BF, 0x2097, +- 0x209D, 0x2064, 0x2169, 0x2423, 0x2762, 0x2B2F, 0x2F91, 0x3525, +- 0x3BA2, 0x41B7, 0x49E6, 0x51B6, 0x505A, 0x3B8F, 0x1D85, 0x0C1A, +- 0x0BBE, 0x10D5, 0x1929, 0x2281, 0x2AA7, 0x2F63, 0x2FF6, 0x2DFB, +- 0x2AC0, 0x2794, 0x25C5, 0x255B, 0x2561, 0x25B0, 0x261E, 0x2683, +- 0x26B5, 0x268C, 0x25DF, 0x2438, 0x2198, 0x1E8A, 0x1B96, 0x1949, +- 0x182B, 0x1831, 0x18D5, 0x19EE, 0x1B51, 0x1CD4, 0x1E4D, 0x1F93, +- 0x207A, 0x20D8, 0xD465, 0xD474, 0xD49D, 0xD4E1, 0xD53C, 0xD5AE, +- 0xD634, 0xD6CE, 0xD779, 0xD834, 0xD8FD, 0xD9D2, 0xDAB3, 0xDB9C, +- 0xDC8D, 0xDD83, 0xDE7E, 0xDF7B, 0xE079, 0xE177, 0xE271, 0xE368, +- 0xE459, 0xE542, 0xE622, 0xE6F8, 0xE7C1, 0xE87B, 0xE927, 0xE9C0, +- 0xEA47, 0xEAB9, 0xEB14, 0xEB57, 0xEB81, 0xEB8F, 0xEB39, 0xEA47, +- 0xE8D3, 0xE6F8, 0xE4CE, 0xE271, 0xDFFA, 0xDD83, 0xDB26, 0xD8FD, +- 0xD722, 0xD5AE, 0xD4BC, 0xD465, 0xD91F, 0xE3C0, 0xEEF8, 0xF576, +- 0xF688, 0xF58B, 0xF33D, 0xF05E, 0xEDAE, 0xEBED, 0xEB87, 0xEBE1, +- 0xEC2C, 0xEC1F, 0xEBED, 0xEB98, 0xEB33, 0xEACF, 0xEA7B, 0xEC47, +- 0xEE29, 0xEA08, 0xDBA3, 0xC729, 0xB32F, 0x9F46, 0x8BBB, 0x8036, +- 0x7C2F, 0x7A23, 0x7A33, 0x7C84, 0x813D, 0x887C, 0x9742, 0xAE0C, +- 0xC636, 0xD921, 0xE029, 0xDBC3, 0xD1D6, 0xC3EE, 0xB399, 0xA266, +- 0x91E0, 0x8395, 0x7911, 0x72D2, 0x6FAF, 0x6EC5, 0x6F30, 0x700D, +- 0x7076, 0x709D, 0x7134, 0x721C, 0x7337, 0x7466, 0x7589, 0x7682, +- 0x7732, 0x777A, 0x0000, 0x0000, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, +- 0xFFE9, 0xFFE1, 0xFFD8, 0xFFCD, 0xFFC2, 0xFFB6, 0xFFA8, 0xFF9A, +- 0xFF8B, 0xFF7B, 0xFF6A, 0xFF58, 0xFF46, 0xFF32, 0xFF1E, 0xFF0A, +- 0xFEF5, 0xFEDF, 0xFEC8, 0xFEB2, 0xFE9A, 0xFE82, 0xFE6A, 0xFE52, +- 0xFE39, 0xFE1F, 0xFE06, 0xFDEC, 0xFDD2, 0xFDB8, 0xFD9E, 0xFD83, +- 0xFD69, 0xFD4E, 0xFD34, 0xFD19, 0xFCFF, 0xFCE5, 0xFCCB, 0xFCB1, +- 0xFC97, 0xFC7E, 0xFC65, 0xFC4C, 0xFBF9, 0xFB6A, 0xFAF2, 0xFAE7, +- 0xFB59, 0xFC0E, 0xFCE6, 0xFDC3, 0xFE85, 0xFF0E, 0xFF2B, 0xFEEE, +- 0xFEA1, 0xFE8D, 0xFEFB, 0x00C6, 0x0378, 0x055D, 0x05BD, 0x0551, +- 0x048C, 0x036A, 0x01EF, 0x0095, 0xFFD7, 0xFF98, 0xFF6B, 0xFF4D, +- 0xFF3D, 0xFF39, 0xFF3D, 0xFF49, 0xFF59, 0xFF6C, 0xFF7F, 0xFF90, +- 0xFF9D, 0xFFA4, 0xFFA8, 0xFFAF, 0xFFB7, 0xFFC1, 0xFFCD, 0xFFD9, +- 0xFFE6, 0xFFF3, 0xFFFF, 0x000A, 0x0015, 0x001E, 0x0022, 0x0020, +- 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, +- 0x001E, 0x001E, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2E, 0xFF2D, +- 0xFF2C, 0xFF2B, 0xFF2A, 0xFF28, 0xFF27, 0xFF25, 0xFF23, 0xFF22, +- 0xFF20, 0xFF1E, 0xFF1C, 0xFF1A, 0xFF17, 0xFF15, 0xFF13, 0xFF11, +- 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF07, 0xFF06, 0xFF04, 0xFF02, +- 0xFF01, 0xFEFF, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFC, 0xFEFB, 0xFEFB, +- 0xFEFB, 0xFEFB, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xFEFF, 0xFF01, +- 0xFF03, 0xFF05, 0xFF08, 0xFF0B, 0xFF31, 0xFF7E, 0xFFC4, 0xFFD6, +- 0xFFAB, 0xFF61, 0xFF08, 0xFEAB, 0xFE59, 0xFE20, 0xFE02, 0xFDF7, +- 0xFDFC, 0xFE0E, 0xFE2A, 0xFE9B, 0xFF2E, 0xFF26, 0xFDC0, 0xFBBE, +- 0xFAAB, 0xFB2E, 0xFC71, 0xFDC8, 0xFE89, 0xFEBC, 0xFEE0, 0xFEF7, +- 0xFF03, 0xFF06, 0xFF01, 0xFEF6, 0xFEE8, 0xFED8, 0xFEC8, 0xFEBB, +- 0xFEB1, 0xFEAE, 0xFEAD, 0xFEAC, 0xFEA9, 0xFEA6, 0xFEA2, 0xFE9E, +- 0xFE9A, 0xFE96, 0xFE92, 0xFE8E, 0xFE8A, 0xFE88, 0xFE86, 0xFE87, +- 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, +- 0xFE88, 0xFE88, 0xC9D8, 0xC9DA, 0xC9DF, 0xC9E8, 0xC9F4, 0xCA03, +- 0xCA15, 0xCA29, 0xCA40, 0xCA59, 0xCA74, 0xCA91, 0xCAB0, 0xCAD0, +- 0xCAF1, 0xCB13, 0xCB37, 0xCB5B, 0xCB7F, 0xCBA4, 0xCBC8, 0xCBED, +- 0xCC11, 0xCC35, 0xCC58, 0xCC7B, 0xCC9C, 0xCCBC, 0xCCDA, 0xCCF7, +- 0xCD12, 0xCD2B, 0xCD42, 0xCD56, 0xCD68, 0xCD77, 0xCD83, 0xCD8B, +- 0xCD91, 0xCD92, 0xCD90, 0xCD8A, 0xCD80, 0xCD72, 0xCD5F, 0xCD47, +- 0xCD2A, 0xCD08, 0xCCE1, 0xCCB4, 0xCACA, 0xC6B9, 0xC279, 0xBFFF, +- 0xBF88, 0xBFD5, 0xC0A1, 0xC1A9, 0xC2AA, 0xC35E, 0xC3F7, 0xC4AA, +- 0xC53A, 0xC56A, 0xC500, 0xC2E7, 0xBF89, 0xBCE8, 0xBBBE, 0xBB4D, +- 0xBB5E, 0xBBFA, 0xBD03, 0xBE0C, 0xBEA4, 0xBEE1, 0xBF1C, 0xBF55, +- 0xBF8A, 0xBFB7, 0xBFDD, 0xBFF9, 0xC00A, 0xC00D, 0xC001, 0xBFE3, +- 0xBFB3, 0xBF6F, 0xBF0D, 0xBE88, 0xBDE8, 0xBD30, 0xBC67, 0xBB93, +- 0xBAB9, 0xB9DF, 0xB90A, 0xB840, 0xB788, 0xB6E5, 0xB6A3, 0xB6C4, +- 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, +- 0xB6E5, 0xB6E5, 0x1E4A, 0x1E4D, 0x1E56, 0x1E66, 0x1E7B, 0x1E97, +- 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, 0x1FE1, 0x2022, +- 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, 0x229B, +- 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, +- 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, +- 0x28F9, 0x2954, 0x29AD, 0x2A04, 0x2A58, 0x2AAA, 0x2AF9, 0x2B46, +- 0x2B8F, 0x2BD4, 0x2C16, 0x2C54, 0x2C83, 0x2C9B, 0x2CA0, 0x2C96, +- 0x2C82, 0x2C69, 0x2C4F, 0x2C37, 0x2C27, 0x2C24, 0x2C52, 0x2CAF, +- 0x2CFF, 0x2D07, 0x2C8C, 0x2A97, 0x279F, 0x2593, 0x25F3, 0x273C, +- 0x26D8, 0x2323, 0x1DBE, 0x18F9, 0x1722, 0x1798, 0x1830, 0x18EF, +- 0x19DC, 0x1AFC, 0x1C54, 0x1DEA, 0x1FC3, 0x21E6, 0x2457, 0x271D, +- 0x2A3C, 0x2DBA, 0x3416, 0x3E24, 0x496F, 0x5381, 0x59E3, 0x5CA6, +- 0x5DCB, 0x5DC3, 0x5CFC, 0x5BE9, 0x5AFA, 0x5A9E, 0x5AA7, 0x5AA2, +- 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, +- 0x5A9E, 0x5A9E, 0x1B09, 0x1B07, 0x1B00, 0x1AF5, 0x1AE6, 0x1AD3, +- 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, 0x19E7, 0x19B7, +- 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, 0x17D4, +- 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, +- 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, +- 0x1230, 0x11D2, 0x1173, 0x1114, 0x10B4, 0x1054, 0x0FF5, 0x0F95, +- 0x0F36, 0x0ED7, 0x0E78, 0x0E1A, 0x0D88, 0x0C9F, 0x0B7A, 0x0A31, +- 0x08E1, 0x07A3, 0x0691, 0x05C5, 0x055B, 0x056B, 0x0685, 0x08DF, +- 0x0C0B, 0x0F9F, 0x132E, 0x1730, 0x1BED, 0x20B3, 0x27AA, 0x2EAB, +- 0x2E88, 0x215D, 0x0D0E, 0xFC26, 0xF027, 0xE78D, 0xE84C, 0xF446, +- 0x067E, 0x1AA4, 0x2C64, 0x376B, 0x3B61, 0x3B91, 0x3915, 0x350B, +- 0x308E, 0x2CBB, 0x2970, 0x25DC, 0x220C, 0x1E10, 0x19F7, 0x15D1, +- 0x11AD, 0x0D9B, 0x09A8, 0x05E5, 0x0261, 0xFF2D, 0xFDD3, 0xFE80, +- 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, +- 0xFF2D, 0xFF2D, 0x1144, 0x1144, 0x1142, 0x113F, 0x113B, 0x1136, +- 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, 0x10F0, 0x10E2, +- 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, 0x103F, +- 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, +- 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, +- 0x0DD2, 0x0DA2, 0x0D70, 0x0D3C, 0x0D07, 0x0CD1, 0x0C99, 0x0C60, +- 0x0C26, 0x0BE9, 0x0BAC, 0x0B6D, 0x0AE8, 0x09EE, 0x08A5, 0x072F, +- 0x05B0, 0x044D, 0x0328, 0x0266, 0x022B, 0x0299, 0x04E7, 0x0961, +- 0x0ECC, 0x13F0, 0x1791, 0x18ED, 0x185D, 0x1650, 0x1100, 0x0A33, +- 0x07A4, 0x0CD2, 0x163E, 0x1F2A, 0x26A0, 0x2D95, 0x322C, 0x3449, +- 0x354D, 0x3596, 0x3580, 0x3568, 0x3584, 0x35A8, 0x359F, 0x3536, +- 0x3438, 0x3270, 0x3001, 0x2D3D, 0x2A34, 0x26F5, 0x2391, 0x2018, +- 0x1C9A, 0x1926, 0x15CD, 0x129E, 0x0FAA, 0x0D00, 0x0BE4, 0x0C72, +- 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, +- 0x0D00, 0x0D00, 0xAC44, 0xAC41, 0xAC38, 0xAC2A, 0xAC16, 0xABFE, +- 0xABE0, 0xABBD, 0xAB96, 0xAB6A, 0xAB3A, 0xAB06, 0xAACE, 0xAA92, +- 0xAA53, 0xAA10, 0xA9CA, 0xA982, 0xA936, 0xA8E8, 0xA897, 0xA844, +- 0xA7F0, 0xA799, 0xA740, 0xA6E6, 0xA68B, 0xA62F, 0xA5D1, 0xA573, +- 0xA514, 0xA4B5, 0xA456, 0xA3F6, 0xA397, 0xA338, 0xA2DA, 0xA27C, +- 0xA220, 0xA1C4, 0xA16A, 0xA111, 0xA0B9, 0xA064, 0xA010, 0x9FBF, +- 0x9F70, 0x9F23, 0x9EDA, 0x9E93, 0x9E42, 0x9DE0, 0x9D76, 0x9D0A, +- 0x9CA7, 0x9C53, 0x9C19, 0x9BFF, 0x9C0F, 0x9C50, 0x9C88, 0x9CD8, +- 0x9DD2, 0xA006, 0xA408, 0xAD20, 0xBA2A, 0xC518, 0xCD05, 0xD2D6, +- 0xD323, 0xCA2A, 0xBBAD, 0xAF85, 0xA667, 0x9F9D, 0xA0E4, 0xABFB, +- 0xBC65, 0xCE80, 0xDEAD, 0xE94A, 0xEE42, 0xF05F, 0xF04D, 0xEEBA, +- 0xEC53, 0xE9C5, 0xE71C, 0xE3FF, 0xE083, 0xDCBC, 0xD8C1, 0xD4A6, +- 0xD080, 0xCC64, 0xC867, 0xC49E, 0xC11F, 0xBDFD, 0xBCB1, 0xBD57, +- 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, +- 0xBDFD, 0xBDFD, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, 0x000B, +- 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, +- 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, +- 0x0085, 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, +- 0x00AE, 0x00B0, 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, +- 0x00A2, 0x009B, 0x0093, 0x0089, 0x007E, 0x0071, 0x0062, 0x0052, +- 0x0040, 0x002D, 0x0017, 0x0000, 0xFF88, 0xFE81, 0xFD31, 0xFBE0, +- 0xFAD5, 0xFA10, 0xF962, 0xF8CB, 0xF84A, 0xF7DF, 0xF78D, 0xF77B, +- 0xF7DF, 0xF935, 0xFB21, 0xFD26, 0xFF5B, 0x0194, 0x04A6, 0x07C2, +- 0x084D, 0xFC04, 0xFC37, 0xFD82, 0xFF76, 0x01A1, 0x0395, 0x04E3, +- 0x0588, 0x05DF, 0x05FF, 0x0600, 0x05FB, 0x0607, 0x05C1, 0x05E1, +- 0x061A, 0x0693, 0x07B3, 0x0889, 0x0823, 0x0755, 0x06EB, 0x0746, +- 0x07FB, 0x08A5, 0x08DE, 0x0830, 0x06F6, 0x0601, 0x05C2, 0x05E1, +- 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, +- 0x0601, 0x0601, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, +- 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, +- 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, +- 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, +- 0x0035, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, +- 0x0032, 0x0030, 0x002D, 0x002A, 0x0026, 0x0023, 0x001E, 0x0019, +- 0x0014, 0x000D, 0x0007, 0x0000, 0xFFD3, 0xFF72, 0xFEFE, 0xFE9A, +- 0xFE67, 0xFE74, 0xFEAA, 0xFEF4, 0xFF3C, 0xFF70, 0xFF7D, 0xFF75, +- 0xFF70, 0xFF5F, 0xFF84, 0x0052, 0x0151, 0x01AA, 0x0035, 0xFE1A, +- 0xFDF4, 0x0785, 0x0663, 0x0431, 0x0171, 0xFEA7, 0xFC54, 0xFAFA, +- 0xFABF, 0xFB42, 0xFC3B, 0xFD64, 0xFE77, 0xFF2C, 0xFE59, 0xFEE7, +- 0xFFBB, 0x007D, 0x00ED, 0x0100, 0x009F, 0x0013, 0xFFED, 0x0067, +- 0x0136, 0x0218, 0x02CD, 0x0337, 0x0373, 0x039C, 0x03AE, 0x03A5, +- 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, +- 0x039C, 0x039C, 0xBF40, 0xBF42, 0xBF47, 0xBF50, 0xBF5B, 0xBF69, +- 0xBF7A, 0xBF8D, 0xBFA2, 0xBFB9, 0xBFD2, 0xBFED, 0xC008, 0xC025, +- 0xC042, 0xC060, 0xC07E, 0xC09D, 0xC0BB, 0xC0D9, 0xC0F7, 0xC114, +- 0xC130, 0xC14B, 0xC164, 0xC17C, 0xC192, 0xC1A6, 0xC1B8, 0xC1C8, +- 0xC1D4, 0xC1DE, 0xC1E5, 0xC1E8, 0xC1E8, 0xC1E4, 0xC1DC, 0xC1D0, +- 0xC1C0, 0xC1AB, 0xC191, 0xC172, 0xC14D, 0xC124, 0xC0F4, 0xC0BE, +- 0xC083, 0xC041, 0xBFF8, 0xBFA9, 0xBDAB, 0xB95B, 0xB440, 0xAFE0, +- 0xADC1, 0xAE8B, 0xB138, 0xB4CF, 0xB856, 0xBAD4, 0xBB8A, 0xBB27, +- 0xBAD4, 0xBA43, 0xBB3A, 0xBEE9, 0xC407, 0xCB17, 0xD5CC, 0xE284, +- 0xECC4, 0xE505, 0xE5E5, 0xE7EC, 0xEA63, 0xEC8F, 0xEDB8, 0xED25, +- 0xEA42, 0xE584, 0xDFC2, 0xD9D0, 0xD484, 0xD0B4, 0xD77C, 0xD3F8, +- 0xCE6A, 0xC8DB, 0xC4D0, 0xC273, 0xC1AA, 0xC192, 0xC0F8, 0xBF40, +- 0xBCF4, 0xBA9A, 0xB8B9, 0xB7A8, 0xB727, 0xB6D3, 0xB6A9, 0xB6BE, +- 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, +- 0xB6D3, 0xB6D3, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, 0x254B, +- 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, +- 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, +- 0x26BD, 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, +- 0x2812, 0x2844, 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, +- 0x29D3, 0x2A13, 0x2A55, 0x2A98, 0x2ADD, 0x2B24, 0x2B6D, 0x2BB7, +- 0x2C03, 0x2C51, 0x2CA1, 0x2CF2, 0x2E79, 0x317A, 0x348A, 0x3641, +- 0x3671, 0x3602, 0x3530, 0x3434, 0x3349, 0x32A9, 0x3294, 0x32C3, +- 0x32A9, 0x3255, 0x309F, 0x2D4A, 0x29BA, 0x25F6, 0x2208, 0x1DF8, +- 0x19CE, 0x13A5, 0x1185, 0x0F5A, 0x0D6C, 0x0C06, 0x0B70, 0x0BF4, +- 0x0E09, 0x118C, 0x15E0, 0x1A6A, 0x1E8C, 0x21AA, 0x1E9D, 0x2338, +- 0x2932, 0x2BF5, 0x246F, 0x1D00, 0x1F7C, 0x2532, 0x2AEE, 0x2FD5, +- 0x350F, 0x3A6A, 0x3FB7, 0x44C6, 0x4967, 0x4D69, 0x4F07, 0x4E38, +- 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, +- 0x4D69, 0x4D69, 0xD64A, 0xD650, 0xD663, 0xD681, 0xD6AB, 0xD6DF, +- 0xD71E, 0xD766, 0xD7B8, 0xD813, 0xD877, 0xD8E2, 0xD955, 0xD9D0, +- 0xDA51, 0xDAD8, 0xDB65, 0xDBF8, 0xDC8F, 0xDD2B, 0xDDCA, 0xDE6D, +- 0xDF13, 0xDFBC, 0xE067, 0xE114, 0xE1C1, 0xE270, 0xE31E, 0xE3CD, +- 0xE47B, 0xE528, 0xE5D3, 0xE67C, 0xE723, 0xE7C7, 0xE867, 0xE904, +- 0xE99C, 0xEA2F, 0xEABE, 0xEB46, 0xEBC9, 0xEC45, 0xECBA, 0xED27, +- 0xED8C, 0xEDE9, 0xEE3D, 0xEE88, 0xEDA6, 0xEB17, 0xE7CF, 0xE4C2, +- 0xE1FA, 0xDEFE, 0xDBF7, 0xD912, 0xD67A, 0xD459, 0xD351, 0xD382, +- 0xD459, 0xDB0C, 0xE555, 0xEEEE, 0xF8B0, 0xFE79, 0xFD04, 0xF79D, +- 0xF3FA, 0xFB8F, 0xF6DC, 0xF107, 0xEA93, 0xE405, 0xDDE2, 0xD8AE, +- 0xD49B, 0xD148, 0xCE5E, 0xCB86, 0xC868, 0xC460, 0xBA86, 0xB646, +- 0xB2F2, 0xB19E, 0xB4E4, 0xBAA8, 0xBFF5, 0xC5AC, 0xCB92, 0xD1CC, +- 0xD87A, 0xDF5C, 0xE630, 0xECB7, 0xF2AF, 0xF7D7, 0xF9EA, 0xF8E1, +- 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, +- 0xF7D7, 0xF7D7, 0xEC41, 0xEC44, 0xEC4C, 0xEC5A, 0xEC6D, 0xEC85, +- 0xECA2, 0xECC3, 0xECE9, 0xED12, 0xED40, 0xED70, 0xEDA4, 0xEDDC, +- 0xEE16, 0xEE52, 0xEE91, 0xEED2, 0xEF15, 0xEF5A, 0xEFA0, 0xEFE8, +- 0xF030, 0xF079, 0xF0C2, 0xF10C, 0xF156, 0xF1A0, 0xF1E9, 0xF232, +- 0xF279, 0xF2C0, 0xF305, 0xF349, 0xF38A, 0xF3CA, 0xF407, 0xF442, +- 0xF47A, 0xF4AF, 0xF4E1, 0xF510, 0xF53A, 0xF561, 0xF584, 0xF5A2, +- 0xF5BB, 0xF5D0, 0xF5E0, 0xF5EA, 0xF515, 0xF2FF, 0xF057, 0xEDCE, +- 0xEB69, 0xE8CF, 0xE629, 0xE39E, 0xE157, 0xDF79, 0xDEB4, 0xDF01, +- 0xDF79, 0xE11F, 0xE650, 0xF09B, 0xFCED, 0x0571, 0x06D9, 0x047E, +- 0x028C, 0x043D, 0x04CB, 0x0559, 0x05D6, 0x0630, 0x0655, 0x0633, +- 0x05AB, 0x04C1, 0x0394, 0x0242, 0x00ED, 0xFE57, 0xFFAF, 0xFD1D, +- 0xF9C8, 0xF785, 0xF973, 0xFAD8, 0xF6C8, 0xF0EC, 0xEC2D, 0xE904, +- 0xE5FD, 0xE31D, 0xE069, 0xDDE5, 0xDB95, 0xD97F, 0xD89F, 0xD90F, +- 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, +- 0xD97F, 0xD97F, 0xB59E, 0xB59C, 0xB594, 0xB588, 0xB577, 0xB561, +- 0xB548, 0xB52A, 0xB509, 0xB4E4, 0xB4BB, 0xB48F, 0xB460, 0xB42E, +- 0xB3FA, 0xB3C3, 0xB389, 0xB34E, 0xB310, 0xB2D1, 0xB290, 0xB24E, +- 0xB20B, 0xB1C7, 0xB182, 0xB13C, 0xB0F6, 0xB0B0, 0xB069, 0xB023, +- 0xAFDD, 0xAF98, 0xAF53, 0xAF10, 0xAECD, 0xAE8C, 0xAE4C, 0xAE0E, +- 0xADD2, 0xAD98, 0xAD60, 0xAD2B, 0xACF8, 0xACC8, 0xAC9B, 0xAC71, +- 0xAC4B, 0xAC28, 0xAC0A, 0xABEF, 0xAC61, 0xAD9A, 0xAF1F, 0xB077, +- 0xB199, 0xB2C8, 0xB3F4, 0xB510, 0xB60E, 0xB6E0, 0xB757, 0xB754, +- 0xB6E0, 0xB179, 0xAA23, 0xA53C, 0xA0FA, 0x9F6F, 0xA180, 0xA649, +- 0xAD2A, 0xBA10, 0xBC6B, 0xBE0D, 0xBF1B, 0xBFBA, 0xC010, 0xC042, +- 0xC015, 0xBF5C, 0xBE4B, 0xBD1B, 0xBC00, 0xBA4C, 0xBC30, 0xC00B, +- 0xC452, 0xC6D4, 0xC492, 0xC003, 0xBC4B, 0xB84D, 0xB3A1, 0xAE1E, +- 0xA80C, 0xA1B1, 0x9B52, 0x9534, 0x8F9D, 0x8AD3, 0x88E9, 0x89DE, +- 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, +- 0x8AD3, 0x8AD3, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, +- 0x00D5, 0x013F, 0x011C, 0x0000, 0xFDE7, 0xFB34, 0xF815, 0xF4BA, +- 0xF152, 0xEE0D, 0xEB18, 0xE8A3, 0xE6DE, 0xE5F6, 0xE526, 0xE410, +- 0xE385, 0xE30D, 0xE5F6, 0xEDDC, 0xF75B, 0x0177, 0x0B35, 0x1398, +- 0x19A1, 0x19DF, 0x14AE, 0x0EC3, 0x08F9, 0x022F, 0xFC2B, 0xF8AB, +- 0xF7E4, 0xF895, 0xFA55, 0xFCBD, 0xFF62, 0x025F, 0x061E, 0x0A43, +- 0x0E6E, 0x1240, 0x1558, 0x17C7, 0x19DC, 0x1B97, 0x1CF8, 0x1E00, +- 0x1EAE, 0x1DF0, 0x1ADE, 0x15B9, 0x0F14, 0x07F3, 0xFD9E, 0xEF62, +- 0xEE0C, 0xED5C, 0xED34, 0xED75, 0xEE01, 0xEEB9, 0xEF7E, 0xF033, +- 0xF0B9, 0xF0F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE1, +- 0xFFA3, 0xFF74, 0xFF84, 0x0000, 0x00EC, 0x021D, 0x037D, 0x04F8, +- 0x0678, 0x07E9, 0x0935, 0x0A48, 0x0B0D, 0x0B6E, 0x0B7F, 0x0B76, +- 0x0B6E, 0x0C00, 0x0B6E, 0x08BE, 0x0579, 0x01F4, 0xFE81, 0xFB74, +- 0xF920, 0xF82B, 0xF8CD, 0xFAB9, 0xFE88, 0x03B6, 0x0852, 0x0A66, +- 0x0975, 0x06D3, 0x0345, 0xFF91, 0xFC7A, 0xFA1A, 0xF7C3, 0xF58A, +- 0xF387, 0xF1D1, 0xF081, 0xEF6D, 0xEE7A, 0xEDD2, 0xEDA0, 0xEE0F, +- 0xEF4C, 0xF61D, 0xFE08, 0xFF3C, 0xFED8, 0xFFCC, 0x00DF, 0x017F, +- 0x01A9, 0x01C2, 0x01CC, 0x01CB, 0x01C1, 0x01B2, 0x01A1, 0x0191, +- 0x0184, 0x017F, 0xEDB7, 0xEE8D, 0xF0A3, 0xF358, 0xF60B, 0xF81B, +- 0xF8E7, 0xF8C1, 0xF86A, 0xF7E8, 0xF741, 0xF67A, 0xF59B, 0xF4AA, +- 0xF3AB, 0xF2A5, 0xF19E, 0xF09D, 0xEFA6, 0xEEC1, 0xEDF3, 0xED42, +- 0xECB4, 0xECD5, 0xEDBF, 0xEECB, 0xEF53, 0xECC8, 0xE8B6, 0xE831, +- 0xE961, 0xEB0F, 0xEC84, 0xED09, 0xEBFC, 0xE9FE, 0xE814, 0xE744, +- 0xE7CE, 0xE8EE, 0xE9E8, 0xEA05, 0xE922, 0xE7F4, 0xE745, 0xE718, +- 0xE707, 0xE72A, 0xE799, 0xE86B, 0xE9A5, 0xEB2C, 0xECE8, 0xEEC0, +- 0xF09E, 0xF269, 0xF408, 0xF565, 0xF665, 0xF6F3, 0xF714, 0xF703, +- 0xF6F3, 0xF69D, 0xF6F3, 0xF83C, 0xF986, 0xFAF6, 0xFCB1, 0xFEDE, +- 0x01A1, 0x0724, 0x0E6D, 0x12EE, 0x12C5, 0x1065, 0x0DC2, 0x0CD2, +- 0x0DE5, 0x0FC3, 0x1218, 0x1490, 0x16D3, 0x188D, 0x1A04, 0x1B73, +- 0x1C77, 0x1CAB, 0x1BAC, 0x1969, 0x163F, 0x126E, 0x0E36, 0x09D8, +- 0x0593, 0xFFD2, 0xFA98, 0xF93B, 0xF947, 0xF92A, 0xF93C, 0xF94C, +- 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, +- 0xF94C, 0xF94C, 0x0000, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, +- 0x0019, 0x0022, 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, +- 0x0073, 0x0080, 0x008D, 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, +- 0x00DB, 0x00E6, 0x00F1, 0x00FB, 0x0104, 0x010D, 0x0114, 0x011A, +- 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, 0x011F, 0x011A, 0x0113, +- 0x010A, 0x00FF, 0x00F1, 0x00E1, 0x00CF, 0x00BA, 0x00A2, 0x0087, +- 0x006A, 0x004A, 0x0026, 0x0000, 0xFFA1, 0xFEE2, 0xFDDB, 0xFCA5, +- 0xFB58, 0xFA0B, 0xF8D6, 0xF7D1, 0xF714, 0xF6B7, 0xF631, 0xF55F, +- 0xF4F2, 0xF521, 0xF6B7, 0xFA1E, 0xFE53, 0x02BD, 0x06C8, 0x09DA, +- 0x0B5C, 0x0B28, 0x09BB, 0x0778, 0x04BF, 0x01F2, 0xFF73, 0xFDA2, +- 0xFC66, 0xFB66, 0xFAA3, 0xFA1F, 0xF9DB, 0xF9D8, 0xFA4E, 0xFB5D, +- 0xFCEA, 0xFED7, 0x021E, 0x0623, 0x0860, 0x086E, 0x07BF, 0x069F, +- 0x0558, 0x0433, 0x037D, 0x037D, 0x0480, 0x099E, 0x1275, 0x1A19, +- 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, +- 0x1A19, 0x1A19, 0x0000, 0xFFFF, 0xFFFA, 0xFFF3, 0xFFE9, 0xFFDD, +- 0xFFCF, 0xFFBF, 0xFFAD, 0xFF99, 0xFF84, 0xFF6D, 0xFF56, 0xFF3E, +- 0xFF25, 0xFF0C, 0xFEF2, 0xFED9, 0xFEBF, 0xFEA6, 0xFE8D, 0xFE75, +- 0xFE5E, 0xFE48, 0xFE34, 0xFE21, 0xFE0F, 0xFDFF, 0xFDF2, 0xFDE6, +- 0xFDDD, 0xFDD7, 0xFDD4, 0xFDD3, 0xFDD6, 0xFDDC, 0xFDE5, 0xFDF3, +- 0xFE04, 0xFE1A, 0xFE34, 0xFE52, 0xFE75, 0xFE9E, 0xFECB, 0xFEFD, +- 0xFF35, 0xFF73, 0xFFB7, 0x0000, 0x00B5, 0x021E, 0x040E, 0x0659, +- 0x08D0, 0x0B49, 0x0D95, 0x0F89, 0x10F8, 0x11B4, 0x11B9, 0x116A, +- 0x1137, 0x125E, 0x11B4, 0x0D15, 0x071A, 0x00B0, 0xFAC8, 0xF64D, +- 0xF42F, 0xF4C5, 0xF753, 0xFB29, 0xFF97, 0x03EC, 0x077A, 0x0990, +- 0x09E2, 0x08EE, 0x073B, 0x054C, 0x03A6, 0x02CE, 0x036C, 0x050F, +- 0x0695, 0x06DA, 0x0445, 0x0022, 0xFDAB, 0xFD6E, 0xFDB7, 0xFE5A, +- 0xFF2A, 0xFFFB, 0x00A0, 0x00ED, 0x00B6, 0xFEAB, 0xFAFF, 0xF7D2, +- 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, +- 0xF7D2, 0xF7D2, 0x0408, 0x0407, 0x0402, 0x03F9, 0x03EE, 0x03E0, +- 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, 0x0352, 0x0332, 0x0310, +- 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, 0x01F5, 0x01C7, +- 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, 0x0041, +- 0x000F, 0xFFDF, 0xFFAD, 0xFF7C, 0xFF4B, 0xFF1B, 0xFEEB, 0xFEBD, +- 0xFE8F, 0xFE63, 0xFE37, 0xFE0D, 0xFDE5, 0xFDBE, 0xFD98, 0xFD3A, +- 0xFC7C, 0xFBE0, 0xFBEA, 0xFD1C, 0xFF78, 0x0283, 0x0609, 0x09D4, +- 0x0DAD, 0x115F, 0x14B4, 0x1777, 0x1972, 0x1A6F, 0x1A89, 0x1A47, +- 0x1A19, 0x1B24, 0x1A6F, 0x1633, 0x10EE, 0x0B41, 0x05CC, 0x0133, +- 0xFE16, 0xFC7C, 0xFBD8, 0xFBE9, 0xFC71, 0xFD2F, 0xFDE6, 0xFE55, +- 0xFEA4, 0xFF18, 0xFF9D, 0x0020, 0x008F, 0x00D5, 0x00E3, 0x00BC, +- 0x0070, 0x000E, 0xFF34, 0xFE28, 0xFE00, 0xFEC7, 0xFFC5, 0x00EC, +- 0x022F, 0x037F, 0x04CE, 0x060D, 0x072E, 0x0821, 0x08E8, 0x098D, +- 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, +- 0x098D, 0x098D, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFB, +- 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF1, 0xFFED, 0xFFEA, 0xFFE6, 0xFFE2, +- 0xFFDE, 0xFFD9, 0xFFD5, 0xFFD0, 0xFFCB, 0xFFC6, 0xFFC1, 0xFFBC, +- 0xFFB6, 0xFFB1, 0xFFAC, 0xFFA6, 0xFFA1, 0xFF9C, 0xFF97, 0xFF92, +- 0xFF8D, 0xFF88, 0xFF83, 0xFF7E, 0xFF7A, 0xFF76, 0xFF71, 0xFF6E, +- 0xFF6A, 0xFF67, 0xFF63, 0xFF61, 0xFF5E, 0xFF5C, 0xFF5A, 0xFF59, +- 0xFF58, 0xFF57, 0xFF57, 0xFD70, 0xF869, 0xF149, 0xE917, 0xE0D9, +- 0xD995, 0xD452, 0xD216, 0xD1CC, 0xD1A2, 0xD188, 0xD07E, 0xCF84, +- 0xD188, 0xD74B, 0xE00C, 0xEC79, 0xFB1F, 0x0A12, 0x194F, 0x28D1, +- 0x3895, 0x4894, 0x58CB, 0x6935, 0x79CE, 0x8A94, 0x9B7D, 0xAC88, +- 0xBDAF, 0xCEEF, 0xE042, 0xF1A6, 0x0313, 0x1488, 0x25FF, 0x3774, +- 0x48E2, 0x5A45, 0x6B98, 0x7CD7, 0x8E00, 0x9F09, 0xAFF0, 0xC0B2, +- 0xD149, 0xE1B1, 0xF1E5, 0x01E1, 0x11A2, 0x2121, 0x2E0E, 0x3669, +- 0x3AAE, 0x3CAD, 0x3DFA, 0x3EB5, 0x3EFC, 0x3EF0, 0x3EAE, 0x3E58, +- 0x3E0B, 0x3DE7, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, 0x0008, +- 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, +- 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, +- 0x008E, 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, +- 0x00F2, 0x00FF, 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, +- 0x0160, 0x016E, 0x017C, 0x018A, 0x0198, 0x01A5, 0x01B3, 0x01C1, +- 0x01CE, 0x01DC, 0x01E9, 0x01F6, 0x0203, 0x020F, 0x021C, 0x0228, +- 0x0234, 0x023F, 0x024A, 0x0255, 0x0260, 0x026A, 0x027C, 0x0288, +- 0x026A, 0x0205, 0x0177, 0x00F3, 0x007F, 0x0002, 0xFF80, 0xFEFA, +- 0xFE75, 0xFDF4, 0xFD7A, 0xFD0B, 0xFCAA, 0xFC5B, 0xFC21, 0xFC00, +- 0xFD8D, 0xFFD8, 0x0175, 0x0323, 0x044D, 0x0463, 0x03C2, 0x032C, +- 0x029F, 0x021B, 0x019F, 0x012C, 0x00C1, 0x005E, 0x0001, 0xFFAC, +- 0xFF5B, 0xFF11, 0xFECC, 0xFE8C, 0xFE50, 0xFE18, 0xFE8A, 0xFFA2, +- 0x005F, 0x0092, 0x00B6, 0x00CF, 0x00DD, 0x00E4, 0x00E5, 0x00E3, +- 0x00E0, 0x00DE, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, 0x40AB, +- 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, +- 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, +- 0x4144, 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, +- 0x41B6, 0x41C5, 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, +- 0x4233, 0x4243, 0x4253, 0x4263, 0x4273, 0x4283, 0x4293, 0x42A2, +- 0x42B2, 0x42C1, 0x42D0, 0x42DF, 0x42EE, 0x42FC, 0x430A, 0x4318, +- 0x4325, 0x4333, 0x433F, 0x434C, 0x4358, 0x4364, 0x4372, 0x4378, +- 0x4364, 0x4321, 0x42C4, 0x426C, 0x4222, 0x41D3, 0x4182, 0x4131, +- 0x40DF, 0x4090, 0x4043, 0x3FFB, 0x3FB9, 0x3F7E, 0x3F4C, 0x3F23, +- 0x3F7B, 0x407D, 0x421F, 0x4422, 0x45C5, 0x4644, 0x45E2, 0x4564, +- 0x44CC, 0x441E, 0x435F, 0x428F, 0x41B4, 0x40D0, 0x3FE7, 0x3EFC, +- 0x3E12, 0x3D2C, 0x3C4E, 0x3B7C, 0x3AB7, 0x3A05, 0x39A8, 0x39AB, +- 0x39BC, 0x39B8, 0x39B7, 0x39B8, 0x39BB, 0x39BE, 0x39C2, 0x39C5, +- 0x39C7, 0x39C8, ++ 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AB, ++ 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, 0x00AE, 0x00AE, ++ 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, 0x00B2, 0x00B2, 0x00B3, ++ 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, 0x00B5, 0x00B6, 0x00B6, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B8, 0x00B8, 0x00B8, 0x00B8, 0x00AA, 0x00AA, 0x00AB, ++ 0x00AD, 0x00AF, 0x00B2, 0x00B4, 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, ++ 0x00C7, 0x00C9, 0x00CB, 0x00CD, 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, ++ 0x00C0, 0x00BA, 0x00B5, 0x00B1, 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, ++ 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, ++ 0x00A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, 0x3218, 0x30FC, 0x3ABA, ++ 0x5629, 0x8098, 0xB757, 0xF7B3, 0x3EFE, 0x8A84, 0xD796, 0x2382, 0x6B97, ++ 0xAD24, 0xE60E, 0x168A, 0x3F60, 0x615D, 0x7D4A, 0x93F1, 0xA61D, 0xB498, ++ 0xC02B, 0xC988, 0xD0FD, 0xD6BD, 0xDAFD, 0xDDF0, 0xDFCB, 0xE0C1, 0xE108, ++ 0xD856, 0xC39B, 0xAADD, 0x9622, 0x8D70, 0x8D77, 0x8D89, 0x8DA5, 0x8DC6, ++ 0x8DEA, 0x8E0E, 0x8E2F, 0x8E4B, 0x8E5D, 0x8E64, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, 0xFFFC, 0xFFFA, ++ 0xFFF8, 0xFFF6, 0xFFF3, 0xFFF0, 0xFFEC, 0xFFE9, 0xFFE5, 0xFFE1, 0xFFDD, ++ 0xFFD8, 0xFFD4, 0xFFCF, 0xFFCA, 0xFFC5, 0xFFC0, 0xFFBB, 0xFFB5, 0xFFB0, ++ 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, 0xFF96, 0xFF91, 0xFF8C, 0xFF87, 0xFF82, ++ 0xFF7D, 0xFF79, 0xFF75, 0xFF70, 0xFF6D, 0xFF69, 0xFF66, 0xFF62, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, ++ 0x0008, 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, ++ 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, 0x008E, ++ 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, 0x00F2, 0x00FF, ++ 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, 0x0160, 0x016E, 0x017C, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, ++ 0x40AB, 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, ++ 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, 0x4144, ++ 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, 0x41B6, 0x41C5, ++ 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, 0x4233, 0x4243, 0x4253, ++ 0x40A1, 0xFFFF, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, 0x0019, 0x0022, ++ 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, 0x0073, 0x0080, 0x008D, ++ 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, 0x00DB, 0x00E6, 0x00F1, 0x00FB, ++ 0x0104, 0x010D, 0x0114, 0x011A, 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, ++ 0x011F, 0x011A, 0x0113, 0x010A, 0x00FF, 0x00F1, 0x0000, 0xFAE9, 0xF35D, ++ 0xEC84, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, 0xF384, ++ 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, 0x096B, ++ 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, 0x0DDE, ++ 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, 0x0223, ++ 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, 0x0D87, ++ 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFE, 0xFFF9, 0xFFF2, 0xFFE8, ++ 0xFFDC, 0xFFCE, 0xFFBE, 0xFFAC, 0xFF98, 0xFF83, 0xFF6C, 0xFF55, 0xFF3D, ++ 0xFF24, 0xFF0B, 0xFEF1, 0xFED8, 0xFEBE, 0xFEA5, 0xFE8C, 0xFE74, 0xFE5D, ++ 0xFE47, 0xFE33, 0xFE20, 0xFE0E, 0xFDFE, 0xFDF1, 0xFDE5, 0xFDDC, 0xFDD6, ++ 0xFDD3, 0xFDD2, 0xFDD5, 0xFDDB, 0xFDE4, 0xFDF2, 0xFE03, 0xFE19, 0xFE33, ++ 0xFFFF, 0x01FD, 0x065D, 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, ++ 0x0901, 0x06BD, 0x045A, 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, ++ 0xFEA1, 0xFED1, 0xFF0A, 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, ++ 0x00D8, 0x0108, 0x012D, 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, ++ 0x00E7, 0x0091, 0x0049, 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, ++ 0x0076, 0x007A, 0x007D, 0x007F, 0x0081, 0x0081, 0x0082, 0x0408, 0x0407, ++ 0x0402, 0x03F9, 0x03EE, 0x03E0, 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, ++ 0x0352, 0x0332, 0x0310, 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, ++ 0x01F5, 0x01C7, 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, ++ 0x0041, 0x000F, 0xFFDE, 0xFFAC, 0xFF7B, 0xFF4A, 0xFF1A, 0xFEEA, 0xFEBC, ++ 0xFE8E, 0xFE62, 0xFE36, 0x0884, 0x0C6F, 0x150F, 0x1DAE, 0x2199, 0x2199, ++ 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, 0x0564, 0x026D, ++ 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, 0x029D, 0x02E9, ++ 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, 0x0482, 0x0482, ++ 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, 0xFEA1, 0xFEA8, ++ 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, 0xFDD2, 0xFDB9, ++ 0xFDA9, 0xFDA2, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFEA3, ++ 0xFBA6, 0xF8A9, 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, ++ 0x1216, 0x1955, 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, ++ 0x1054, 0x0862, 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, ++ 0xC514, 0xC174, 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, ++ 0xF13A, 0xF6EC, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x002B, ++ 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, 0x00F5, 0x00CE, 0x0099, ++ 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, 0xFE2B, 0xFDC7, 0xFD6C, ++ 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, 0x0051, 0x0270, 0x0490, ++ 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, 0x069F, 0x02CE, 0xFE3F, ++ 0xFA6E, 0xF8D4, 0xEDB6, 0xEE8C, 0xF0A2, 0xF357, 0xF60A, 0xF81A, 0xF8E6, ++ 0xF8C0, 0xF869, 0xF7E7, 0xF740, 0xF679, 0xF59A, 0xF4A9, 0xF3AA, 0xF2A4, ++ 0xF19D, 0xF09C, 0xEFA5, 0xEEC0, 0xEDF2, 0xED41, 0xECB3, 0xECD4, 0xEDBE, ++ 0xEECA, 0xEF52, 0xECC7, 0xE8B5, 0xE830, 0xE960, 0xEB0E, 0xEC83, 0xED08, ++ 0xEBFB, 0xE9FD, 0xE813, 0xE743, 0xE7CD, 0xE8ED, 0xE9E7, 0xFC61, 0x005D, ++ 0x0268, 0x0328, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, ++ 0x0185, 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, ++ 0xFF15, 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, ++ 0xFFB0, 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, ++ 0xFE47, 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xF6FE, 0xF6FF, 0xF701, 0xF705, ++ 0xF709, 0xF70F, 0xF716, 0xF71D, 0xF726, 0xF72F, 0xF738, 0xF743, 0xF74D, ++ 0xF758, 0xF763, 0xF76E, 0xF77A, 0xF785, 0xF790, 0xF79A, 0xF7A5, 0xF7AF, ++ 0xF7B8, 0xF79D, 0xF740, 0xF6A9, 0xF5E1, 0xF4EF, 0xF3DC, 0xF2B1, 0xF175, ++ 0xF031, 0xEEEC, 0xEDB0, 0xEC85, 0xEB73, 0xEA81, 0xE9B9, 0xE923, 0xE8C6, ++ 0xE8AC, 0xFB1C, 0x1C19, 0x3DCE, 0xD80A, 0xE29C, 0xE29C, 0xE29C, 0xE199, ++ 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, ++ 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, 0x0450, 0x0004, 0xFC31, 0xF8DB, ++ 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, 0xEF74, 0xEF74, 0xEF74, 0xEF74, ++ 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, 0xE0EC, 0xE0ED, 0xE0F0, 0xE0F4, ++ 0xE0FA, 0xE102, 0xE10A, 0xE114, 0xE11F, 0xE12A, 0xE137, 0xE144, 0xE151, ++ 0xE15F, 0xE16E, 0xE17C, 0xE18B, 0xE199, 0xE1A7, 0xE1B5, 0xE1C2, 0xE1CE, ++ 0xE1DA, 0xE1F0, 0xE21A, 0xE254, 0xE29D, 0xE2F3, 0xE352, 0xE3B8, 0xE424, ++ 0xE492, 0xE4FF, 0xE56B, 0xE5D1, 0xE631, 0xE687, 0xE6D0, 0xE70B, 0xE735, ++ 0xE74C, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, ++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, ++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, ++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, ++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xB793, 0xB78F, 0xB782, 0xB76F, ++ 0xB754, 0xB734, 0xB70D, 0xB6E2, 0xB6B2, 0xB67D, 0xB646, 0xB60B, 0xB5CE, ++ 0xB590, 0xB550, 0xB50F, 0xB4CF, 0xB48F, 0xB450, 0xB412, 0xB3D7, 0xB39E, ++ 0xB369, 0xB356, 0xB37E, 0xB3D9, 0xB461, 0xB50D, 0xB5D7, 0xB6B7, 0xB7A5, ++ 0xB89B, 0xB991, 0xBA7F, 0xBB5E, 0xBC26, 0xBCD1, 0xBD57, 0xBDB0, 0xBDD5, ++ 0xBDBF, 0xD4B3, 0xC63D, 0xA66B, 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, ++ 0xFADF, 0xFE0F, 0x0243, 0x0751, 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, ++ 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, ++ 0xE523, 0xE8D3, 0xEBCF, 0xEE06, 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEA00, 0xDBFF, 0xCB47, 0xBD46, 0xB766, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, 0xF44D, ++ 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, 0xF4CE, ++ 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, 0xF58A, ++ 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, 0xF5C1, ++ 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFE75, 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, ++ 0xF663, 0xF6AF, 0xF714, 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, ++ 0xFBC6, 0xFC97, 0xFD6A, 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, ++ 0x0272, 0x02EE, 0x0354, 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, ++ 0x0905, 0x154B, 0x23F2, 0x3038, 0x4AA2, 0xD47E, 0xD47A, 0xD46E, 0xD45C, ++ 0xD443, 0xD424, 0xD400, 0xD3D7, 0xD3AB, 0xD37B, 0xD348, 0xD314, 0xD2D5, ++ 0xD287, 0xD22D, 0xD1CD, 0xD16B, 0xD10A, 0xD0B0, 0xD062, 0xD022, 0xCFF6, ++ 0xCFE3, 0xD075, 0xD1AB, 0xD2AF, 0xD2AD, 0xD072, 0xCD21, 0xCB18, 0xCBA3, ++ 0xCD7E, 0xCF72, 0xD049, 0xCF7F, 0xCDD6, 0xCC19, 0xCB12, 0xCB85, 0xCCCB, ++ 0xCD82, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, 0xE97C, 0xE992, ++ 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, 0xEF07, 0xF016, ++ 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, 0xF8A8, 0xF986, ++ 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, 0xFC3F, 0xFC3F, ++ 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xF1BB, 0xF1BD, 0xF1C5, 0xF1D1, ++ 0xF1E1, 0xF1F5, 0xF20D, 0xF227, 0xF245, 0xF265, 0xF287, 0xF2AB, 0xF2D0, ++ 0xF2F7, 0xF31E, 0xF345, 0xF36D, 0xF394, 0xF3BB, 0xF3E1, 0xF405, 0xF428, ++ 0xF448, 0xF468, 0xF489, 0xF4AA, 0xF4CC, 0xF4EF, 0xF512, 0xF535, 0xF559, ++ 0xF57D, 0xF5A1, 0xF5C5, 0xF5E8, 0xF60C, 0xF630, 0xF653, 0xF676, 0xF698, ++ 0xF6BA, 0xFFFF, 0xFC13, 0xFA10, 0xF952, 0xF937, 0xF937, 0xF937, 0xF920, ++ 0xF8DE, 0xF875, 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, ++ 0xF166, 0xF043, 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, ++ 0xE827, 0xE77A, 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, ++ 0xF137, 0x0B8C, 0x2AFA, 0x454E, 0xD059, 0xF6B3, 0xF6B2, 0xF6AE, 0xF6A9, ++ 0xF6A2, 0xF699, 0xF68E, 0xF683, 0xF675, 0xF667, 0xF658, 0xF648, 0xF637, ++ 0xF626, 0xF615, 0xF603, 0xF5F2, 0xF5E0, 0xF5CF, 0xF5BE, 0xF5AE, 0xF59F, ++ 0xF590, 0xF582, 0xF574, 0xF565, 0xF556, 0xF546, 0xF537, 0xF527, 0xF517, ++ 0xF507, 0xF4F7, 0xF4E7, 0xF4D7, 0xF4C8, 0xF4B8, 0xF4A8, 0xF499, 0xF489, ++ 0xF47B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, 0xF50D, 0xF50D, 0xF513, ++ 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, 0xF62A, 0xF66A, 0xF6AC, ++ 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, 0xF88C, 0xF8C7, 0xF8FE, ++ 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, 0xF9A9, 0xF9A9, 0xF9A9, ++ 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xD5DE, 0xD5DE, 0xD5DC, 0xD5D9, ++ 0xD5D6, 0xD5D1, 0xD5CC, 0xD5C6, 0xD5BF, 0xD5B8, 0xD5B0, 0xD5A8, 0xD59F, ++ 0xD597, 0xD58E, 0xD585, 0xD57C, 0xD573, 0xD56A, 0xD562, 0xD55A, 0xD552, ++ 0xD54B, 0xD543, 0xD53C, 0xD534, 0xD52D, 0xD525, 0xD51D, 0xD515, 0xD50D, ++ 0xD505, 0xD4FD, 0xD4F5, 0xD4ED, 0xD4E5, 0xD4DD, 0xD4D5, 0xD4CD, 0xD4C5, ++ 0xD4BD, 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, ++ 0xED0B, 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, ++ 0xF646, 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, ++ 0x01B5, 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, ++ 0xFA5A, 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xFF5A, 0xFD96, ++ 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, 0xEB34, 0xE970, 0xE8CA, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, ++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, ++ 0xD02E, 0xD346, 0xD5D2, 0xD78C, 0xD830, 0x07FA, 0x0804, 0x0820, 0x084E, ++ 0x088C, 0x08DA, 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, ++ 0x0CE4, 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, ++ 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, 0x16E3, ++ 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, 0x15E6, 0x14A2, ++ 0x1329, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, 0x1FDB, ++ 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, 0xD7A7, ++ 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, 0x428B, ++ 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, 0x18CE, ++ 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, ++ 0x2C13, 0x2BCA, 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, ++ 0x27FB, 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, ++ 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, 0x1E92, ++ 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, 0x1F80, 0x20B1, ++ 0x2214, 0x2BD6, 0x26DD, 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, ++ 0x0E26, 0x1092, 0x13B1, 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, ++ 0x4FF0, 0x4CD2, 0x4A66, 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, ++ 0x53CD, 0x5249, 0x50C6, 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, ++ 0x4D5C, 0x4B71, 0x4928, 0x38C3, 0x3990, 0xD464, 0xD473, 0xD49C, 0xD4E0, ++ 0xD53B, 0xD5AD, 0xD633, 0xD6CD, 0xD778, 0xD833, 0xD8FC, 0xD9D1, 0xDAB2, ++ 0xDB9B, 0xDC8C, 0xDD82, 0xDE7D, 0xDF7A, 0xE078, 0xE176, 0xE270, 0xE367, ++ 0xE458, 0xE541, 0xE621, 0xE6F7, 0xE7C0, 0xE87A, 0xE926, 0xE9BF, 0xEA46, ++ 0xEAB8, 0xEB13, 0xEB56, 0xEB80, 0xEB8E, 0xEB38, 0xEA46, 0xE8D2, 0xE6F7, ++ 0xE4CD, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, 0xEB39, 0xE9F9, ++ 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, 0xABA7, 0xA28E, ++ 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, 0x1C7F, 0x1A7D, ++ 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, 0x0B86, 0x0B86, ++ 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, ++ 0x0FD7, 0x0FE2, 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, ++ 0x12E9, 0x13D5, 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, ++ 0x1BF2, 0x1813, 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, ++ 0x1086, 0x1A5F, 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, ++ 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, ++ 0x2894, 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, ++ 0x288E, 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, ++ 0x2888, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x034A, 0x0A88, ++ 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, 0x0FF9, 0x0DAE, ++ 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, 0x03F7, 0x0A45, ++ 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, 0x1DEF, 0x1C26, ++ 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, 0x0DD1, 0x0B80, ++ 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, 0x0D50, ++ 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, 0x0BBC, 0x0B90, ++ 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, ++ 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0xD61F, 0xD61B, 0xD611, ++ 0xD600, 0xD5E9, 0xD5CC, 0xD5AA, 0xD583, 0xD558, 0xD52A, 0xD4F8, 0xD4C3, ++ 0xD48C, 0xD453, 0xD418, 0xD3DC, 0xD3A0, 0xD363, 0xD327, 0xD2EB, 0xD2B1, ++ 0xD279, 0xD242, 0xD20E, 0xD1DD, 0xD1B0, 0xD186, 0xD161, 0xD141, 0xD126, ++ 0xD111, 0xD102, 0xD0FA, 0xD0F8, 0xD0FF, 0xD10D, 0xD124, 0xD144, 0xD16D, ++ 0xD1A0, 0xD1DD, 0xC7DC, 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, ++ 0xF004, 0xF0DA, 0xF21D, 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, ++ 0xFDF0, 0xFEC6, 0xFF13, 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, ++ 0xDC50, 0xE73B, 0xF628, 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, ++ 0x247F, 0x29D3, 0x35C0, 0x422D, 0x4902, 0x4AD0, 0x4C42, 0x4D63, 0x4E3C, ++ 0x4ED7, 0x4F3F, 0x4F7E, 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, ++ 0x4CE5, 0x4BC9, 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, ++ 0x4B5A, 0x4C57, 0x4D53, 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, ++ 0x4DF2, 0x4CE5, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, 0x17DE, ++ 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, 0x1698, 0x1668, ++ 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, 0x151B, 0x14F1, 0x14CA, ++ 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, 0x1424, 0x1418, 0x1411, 0x1410, ++ 0x1415, 0x1421, 0x1434, 0x144D, 0x146F, 0x1498, 0x14CA, 0xFFFF, 0x0015, ++ 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, 0xFF80, ++ 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, 0xF893, ++ 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, 0xF21D, ++ 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, 0x2ABD, ++ 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, 0x6709, ++ 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, 0x65E2, ++ 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, 0x6611, ++ 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x03EC, 0x03EE, ++ 0x03F6, 0x0402, 0x0413, 0x0427, 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, ++ 0x04E5, 0x050D, 0x0536, 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, ++ 0x0662, 0x068A, 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, ++ 0x077D, 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, ++ 0x074A, 0x0726, 0x06FA, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, ++ 0x068E, 0x06A4, 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, ++ 0x0C0E, 0x0D1B, 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, ++ 0x159B, 0x1677, 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, ++ 0x192B, 0x192B, 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, ++ 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, ++ 0x12A4, 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, ++ 0x0E12, 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, ++ 0x12CF, 0x12A4, 0x1231, 0xCEFE, 0xCEF7, 0xCEE1, 0xCEBE, 0xCE90, 0xCE55, ++ 0xCE11, 0xCDC3, 0xCD6C, 0xCD0E, 0xCCA9, 0xCC3E, 0xCBCE, 0xCB5A, 0xCAE4, ++ 0xCA6B, 0xC9F0, 0xC976, 0xC8FC, 0xC884, 0xC80E, 0xC79B, 0xC72D, 0xC6C4, ++ 0xC661, 0xC605, 0xC5B1, 0xC566, 0xC525, 0xC4EF, 0xC4C4, 0xC4A5, 0xC495, ++ 0xC492, 0xC49F, 0xC4BC, 0xC4EA, 0xC52B, 0xC57E, 0xC5E5, 0xC661, 0xF548, ++ 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, ++ 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, 0xE666, 0xE829, 0xE9FD, 0xEBD9, ++ 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, 0xF66D, 0xF7DE, 0xF928, 0xFA43, ++ 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, 0xFC67, 0xFC67, 0xFE37, 0x02C6, ++ 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, 0x1705, 0x175E, 0x17A0, 0x17D0, ++ 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, ++ 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, 0x1613, 0x163B, 0x1676, 0x16BD, ++ 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, 0x1812, 0x1800, 0x17CF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, 0x0057, ++ 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, 0x02D4, ++ 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, 0x05ED, ++ 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, 0x0772, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, ++ 0xFFFC, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, ++ 0xFFE7, 0xFFE4, 0xFFE0, 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, ++ 0xFFCC, 0xFFC9, 0xFFC7, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF60, 0xBF67, 0xBF71, ++ 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, 0xC028, 0xC048, ++ 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, 0xC150, 0xC16E, ++ 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, 0xC211, 0xC218, ++ 0xC21A, 0xD649, 0xD64F, 0xD662, 0xD680, 0xD6AA, 0xD6DE, 0xD71D, 0xD765, ++ 0xD7B7, 0xD812, 0xD876, 0xD8E1, 0xD954, 0xD9CF, 0xDA50, 0xDAD7, 0xDB64, ++ 0xDBF7, 0xDC8E, 0xDD2A, 0xDDC9, 0xDE6C, 0xDF12, 0xDFBB, 0xE066, 0xE113, ++ 0xE1C0, 0xE26F, 0xE31D, 0xE3CC, 0xE47A, 0xE527, 0xE5D2, 0xE67B, 0xE722, ++ 0xE7C6, 0xE866, 0xE903, 0xE99B, 0xEA2E, 0xEABD, 0xD649, 0xDA6F, 0xE390, ++ 0xECB0, 0xF0D6, 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, ++ 0xEE3D, 0xED7A, 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, ++ 0xE6CB, 0xE605, 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, ++ 0xE227, 0xE218, 0xEC40, 0xEC43, 0xEC4B, 0xEC59, 0xEC6C, 0xEC84, 0xECA1, ++ 0xECC2, 0xECE8, 0xED11, 0xED3F, 0xED6F, 0xEDA3, 0xEDDB, 0xEE15, 0xEE51, ++ 0xEE90, 0xEED1, 0xEF14, 0xEF59, 0xEF9F, 0xEFE7, 0xF02F, 0xF078, 0xF0C1, ++ 0xF10B, 0xF155, 0xF19F, 0xF1E8, 0xF231, 0xF278, 0xF2BF, 0xF304, 0xF348, ++ 0xF389, 0xF3C9, 0xF406, 0xF441, 0xF479, 0xF4AE, 0xF4E0, 0xEC40, 0xEDD6, ++ 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, 0xF872, 0xFA77, 0xFCAB, ++ 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, 0x00B3, 0x00AD, 0x00A7, ++ 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, 0x0077, 0x0071, 0x006D, ++ 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59B, 0xB593, 0xB587, 0xB576, 0xB560, ++ 0xB547, 0xB529, 0xB508, 0xB4E3, 0xB4BA, 0xB48E, 0xB45F, 0xB42D, 0xB3F9, ++ 0xB3C2, 0xB388, 0xB34D, 0xB30F, 0xB2D0, 0xB28F, 0xB24D, 0xB20A, 0xB1C6, ++ 0xB181, 0xB13B, 0xB0F5, 0xB0AF, 0xB068, 0xB022, 0xAFDC, 0xAF97, 0xAF52, ++ 0xAF0F, 0xAECC, 0xAE8B, 0xAE4B, 0xAE0D, 0xADD1, 0xAD97, 0xAD5F, 0xB59D, ++ 0xB418, 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, ++ 0xB4CB, 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, ++ 0xB745, 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, ++ 0xAEC3, 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, 0x00FB, 0x015D, 0x01C9, 0x023E, ++ 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, 0x0538, 0x05AD, 0x0619, 0x067B, ++ 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, 0x0731, 0x0677, 0x056A, 0x042C, ++ 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, 0xFF91, 0xFF91, 0xFF91, 0xFF82, ++ 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, ++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, ++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, ++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, ++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, ++ 0x254B, 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, ++ 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, 0x26BD, ++ 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, 0x2812, 0x2844, ++ 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, 0x29D3, 0x2A13, 0x2A55, ++ 0x2537, 0x22E5, 0x20CA, 0x1EE2, 0x1D2A, 0x1BA1, 0x1A43, 0x190F, 0x1801, ++ 0x1717, 0x164E, 0x15A4, 0x1516, 0x14A3, 0x1446, 0x13FD, 0x13C7, 0x13A0, ++ 0x1386, 0x1376, 0x136E, 0x136B, 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, ++ 0x14EB, 0x1553, 0x15AB, 0x15E7, 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, ++ 0x1C02, 0x2111, 0x254E, 0x2715, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, ++ 0x000B, 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, ++ 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, 0x0085, ++ 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, 0x00AE, 0x00B0, ++ 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, 0x00A2, 0x009B, 0x0093, ++ 0x0000, 0xFE9F, 0xFCA1, 0xFA2B, 0xF768, 0xF480, 0xF19A, 0xEEE1, 0xEC7B, ++ 0xEA93, 0xE950, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, 0x0292, ++ 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, 0x0E2C, ++ 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, 0x045B, ++ 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0x0000, 0xFFFF, 0x0001, 0x0002, ++ 0x0003, 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, ++ 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, 0x0029, ++ 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, 0x0035, 0x0036, ++ 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, 0x0032, 0x0030, 0x002D, ++ 0xFFFF, 0xFEA7, 0xFBE6, 0xF80F, 0xF373, 0xEE68, 0xE93F, 0xE44C, 0xDFE2, ++ 0xDC54, 0xD9F5, 0xD918, 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, ++ 0xF612, 0xFAF5, 0xFEE9, 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, ++ 0xFE27, 0xFCF8, 0xFBF9, 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, ++ 0xFABD, 0xFA7F, 0xFA4B, 0xFA36, 0xBF3F, 0xBF41, 0xBF46, 0xBF4F, 0xBF5A, ++ 0xBF68, 0xBF79, 0xBF8C, 0xBFA1, 0xBFB8, 0xBFD1, 0xBFEC, 0xC007, 0xC024, ++ 0xC041, 0xC05F, 0xC07D, 0xC09C, 0xC0BA, 0xC0D8, 0xC0F6, 0xC113, 0xC12F, ++ 0xC14A, 0xC163, 0xC17B, 0xC191, 0xC1A5, 0xC1B7, 0xC1C7, 0xC1D3, 0xC1DD, ++ 0xC1E4, 0xC1E7, 0xC1E7, 0xC1E3, 0xC1DB, 0xC1CF, 0xC1BF, 0xC1AA, 0xC190, ++ 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, 0xC86E, 0xC9FB, ++ 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, 0xC6BD, 0xC4F7, ++ 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, 0xBFCA, 0xC012, ++ 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, 0xC11D, 0xBF09, ++ 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B07, 0x1B00, ++ 0x1AF5, 0x1AE6, 0x1AD3, 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, ++ 0x19E7, 0x19B7, 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, ++ 0x17D4, 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, ++ 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, 0x1230, ++ 0x11D2, 0x1173, 0x1B09, 0x28AA, 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, ++ 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, ++ 0xCB8B, 0xCD98, 0xD027, 0xD30C, 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, ++ 0xE26C, 0xE3E7, 0xE513, 0xE5F6, 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, ++ 0xE70A, 0xE5F8, 0xE36B, 0xE060, 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1142, ++ 0x113F, 0x113B, 0x1136, 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, ++ 0x10F0, 0x10E2, 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, ++ 0x103F, 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, ++ 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, 0x0DD2, ++ 0x0DA2, 0x0D70, 0x1144, 0x191B, 0x1D80, 0x0A66, 0xF74B, 0xF74B, 0xF74B, ++ 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, 0xF58C, ++ 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, 0x07D9, ++ 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, 0x1177, ++ 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC40, 0xAC37, ++ 0xAC29, 0xAC15, 0xABFD, 0xABDF, 0xABBC, 0xAB95, 0xAB69, 0xAB39, 0xAB05, ++ 0xAACD, 0xAA91, 0xAA52, 0xAA0F, 0xA9C9, 0xA981, 0xA935, 0xA8E7, 0xA896, ++ 0xA843, 0xA7EF, 0xA798, 0xA73F, 0xA6E5, 0xA68A, 0xA62E, 0xA5D0, 0xA572, ++ 0xA513, 0xA4B4, 0xA455, 0xA3F5, 0xA396, 0xA337, 0xA2D9, 0xA27B, 0xA21F, ++ 0xA1C3, 0xA169, 0xAC43, 0xBDC1, 0xD23C, 0xE87F, 0xF37A, 0xF37A, 0xF37A, ++ 0xEF6B, 0xE4B8, 0xD598, 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, ++ 0x99ED, 0x9F30, 0xA593, 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, ++ 0xC87D, 0xCA2A, 0xCB49, 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC55, 0xCC05, 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, 0x0013, 0x0020, ++ 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, 0x019C, 0x01FB, ++ 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, 0x0842, 0x0C37, ++ 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, 0x2D6B, 0x2D6B, ++ 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, ++ 0xFFEE, 0xFFE6, 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, ++ 0xFF35, 0xFF0D, 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, ++ 0xFAB5, 0xF8FE, 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, ++ 0xF2E5, 0xF0C4, 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4D, 0x1E56, ++ 0x1E66, 0x1E7B, 0x1E97, 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, ++ 0x1FE1, 0x2022, 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, ++ 0x229B, 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, ++ 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, 0x28F9, ++ 0x2954, 0x29AD, 0x1E4A, 0x194E, 0x14C7, 0x10AD, 0x0CFD, 0x09B0, 0x06C0, ++ 0x0429, 0x01E5, 0xFFED, 0xFE3E, 0xFCD1, 0xFBA0, 0xFAA7, 0xF9DF, 0xF944, ++ 0xF8CF, 0xF87C, 0xF843, 0xF821, 0xF810, 0xF80A, 0xF809, 0xF818, 0xF840, ++ 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, 0xF9C2, 0xF9C2, 0xF9C2, ++ 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, 0x0000, 0x0000, 0xFFFD, ++ 0xFFFA, 0xFFF5, 0xFFEF, 0xFFE8, 0xFFE0, 0xFFD7, 0xFFCC, 0xFFC1, 0xFFB5, ++ 0xFFA7, 0xFF99, 0xFF8A, 0xFF7A, 0xFF69, 0xFF57, 0xFF45, 0xFF31, 0xFF1D, ++ 0xFF09, 0xFEF4, 0xFEDE, 0xFEC7, 0xFEB1, 0xFE99, 0xFE81, 0xFE69, 0xFE51, ++ 0xFE38, 0xFE1E, 0xFE05, 0xFDEB, 0xFDD1, 0xFDB7, 0xFD9D, 0xFD82, 0xFD68, ++ 0xFD4D, 0xFD33, 0x0000, 0xFE6C, 0xFD9D, 0xFD50, 0xFD46, 0xFD46, 0xFD46, ++ 0xFD6F, 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, ++ 0x095A, 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, ++ 0x1A9A, 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, ++ 0x1F95, 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFF2E, ++ 0xFF2E, 0xFF2D, 0xFF2C, 0xFF2B, 0xFF2A, 0xFF29, 0xFF27, 0xFF26, 0xFF24, ++ 0xFF22, 0xFF21, 0xFF1F, 0xFF1D, 0xFF1B, 0xFF19, 0xFF16, 0xFF14, 0xFF12, ++ 0xFF10, 0xFF0E, 0xFF0C, 0xFF0A, 0xFF08, 0xFF06, 0xFF05, 0xFF03, 0xFF01, ++ 0xFF00, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFB, 0xFEFB, 0xFEFA, 0xFEFA, 0xFEFA, ++ 0xFEFA, 0xFEFA, 0xFF2F, 0xFDB7, 0xFA7C, 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, ++ 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, 0xFC59, 0xFE6E, 0x00B6, 0x0325, ++ 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, 0x1312, 0x15A0, 0x180E, 0x1A55, ++ 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, 0x22C4, 0x22FA, 0x22FA, 0x22FA, ++ 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, 0x12D1, 0xC9D7, 0xC9D9, 0xC9DE, ++ 0xC9E7, 0xC9F3, 0xCA02, 0xCA14, 0xCA28, 0xCA3F, 0xCA58, 0xCA73, 0xCA90, ++ 0xCAAF, 0xCACF, 0xCAF0, 0xCB12, 0xCB36, 0xCB5A, 0xCB7E, 0xCBA3, 0xCBC7, ++ 0xCBEC, 0xCC10, 0xCC34, 0xCC57, 0xCC7A, 0xCC9B, 0xCCBB, 0xCCD9, 0xCCF6, ++ 0xCD11, 0xCD2A, 0xCD41, 0xCD55, 0xCD67, 0xCD76, 0xCD82, 0xCD8A, 0xCD90, ++ 0xCD91, 0xCD8F, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, ++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, ++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, ++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, ++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, + }; + diff --git a/assets/anims/anim_2A.inc.c b/assets/anims/anim_2A.inc.c index 91016520..a44d5922 100644 --- a/assets/anims/anim_2A.inc.c +++ b/assets/anims/anim_2A.inc.c @@ -12,107 +12,162 @@ static const struct Animation anim_2A[] = { static const u16 anim_2A_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x024A, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x0222, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x01FA, - 0x0001, 0x01F6, 0x0001, 0x01F7, 0x0001, 0x01F8, - 0x0028, 0x0006, 0x0028, 0x002E, 0x0028, 0x0056, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0005, - 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, - 0x0001, 0x01F2, 0x0001, 0x01F3, 0x0001, 0x01F4, - 0x0028, 0x0082, 0x0028, 0x00AA, 0x0028, 0x00D2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0081, - 0x0001, 0x007E, 0x0001, 0x007F, 0x0001, 0x0080, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F5, - 0x0028, 0x017A, 0x0028, 0x01A2, 0x0028, 0x01CA, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0179, - 0x0001, 0x0176, 0x0001, 0x0177, 0x0001, 0x0178, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F9, - 0x0028, 0x00FE, 0x0028, 0x0126, 0x0028, 0x014E, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00FD, - 0x0001, 0x00FA, 0x0001, 0x00FB, 0x0001, 0x00FC, + 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, + 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0028, 0x0008, + 0x0028, 0x0030, 0x0027, 0x0058, 0x0028, 0x007F, 0x0026, 0x00A7, 0x0028, + 0x00CD, 0x0028, 0x00F5, 0x0001, 0x011D, 0x0001, 0x011E, 0x0001, 0x011F, + 0x0028, 0x0120, 0x0028, 0x0148, 0x0028, 0x0170, 0x0028, 0x0198, 0x0028, + 0x01C0, 0x0001, 0x01E8, 0x0001, 0x01E9, 0x0001, 0x01EA, 0x0001, 0x01EB, + 0x0001, 0x01EC, 0x0001, 0x01ED, 0x0001, 0x01EE, 0x0028, 0x01EF, 0x0028, + 0x0217, 0x0028, 0x023F, 0x0027, 0x0267, 0x0028, 0x028E, 0x0001, 0x02B6, + 0x0001, 0x02B7, 0x0001, 0x02B8, 0x0001, 0x02B9, 0x0028, 0x02BA, 0x0028, + 0x02E2, 0x0001, 0x030A, 0x0028, 0x030B, 0x0028, 0x0333, 0x0028, 0x035B, + 0x0028, 0x0383, 0x0027, 0x03AB, 0x0001, 0x03D2, 0x0001, 0x03D3, 0x0001, + 0x03D4, 0x0001, 0x03D5, 0x0028, 0x03D6, 0x0028, 0x03FE, 0x0001, 0x0426, + 0x0028, 0x0427, 0x0028, 0x044F, 0x0028, 0x0477, 0x0022, 0x049F, 0x0027, + 0x04C1, 0x0001, 0x04E8, 0x0001, 0x04E9, 0x0001, 0x04EA, 0x0001, 0x04EB, }; static const s16 anim_2A_values[] = { - 0x0000, 0x3FFF, 0x008A, 0xF435, 0xEA2C, 0xF913, 0xB8A2, 0xB906, - 0xBA25, 0xBBE7, 0xBE38, 0xC101, 0xC42C, 0xC7A5, 0xCB53, 0xCF23, - 0xD2FE, 0xD6CE, 0xDA7C, 0xDDF5, 0xE120, 0xE3E9, 0xE63A, 0xE7FC, - 0xE91B, 0xE97F, 0xE924, 0xE821, 0xE687, 0xE46A, 0xE1DC, 0xDEF1, - 0xDBBB, 0xD84C, 0xD4B8, 0xD111, 0xCD69, 0xC9D5, 0xC666, 0xC330, - 0xC045, 0xBDB7, 0xBB9A, 0xBA00, 0xB8FD, 0xB8A2, 0xC454, 0xC45C, - 0xC472, 0xC496, 0xC4C4, 0xC4FC, 0xC53B, 0xC581, 0xC5CA, 0xC617, - 0xC664, 0xC6B0, 0xC6FA, 0xC73F, 0xC77F, 0xC7B7, 0xC7E5, 0xC808, - 0xC81F, 0xC826, 0xC81F, 0xC80B, 0xC7EB, 0xC7C1, 0xC78E, 0xC753, - 0xC713, 0xC6CE, 0xC686, 0xC63D, 0xC5F4, 0xC5AC, 0xC568, 0xC527, - 0xC4ED, 0xC4BA, 0xC490, 0xC470, 0xC45B, 0xC454, 0xCB3D, 0xCAD8, - 0xC9B7, 0xC7F1, 0xC59B, 0xC2CC, 0xBF9A, 0xBC1A, 0xB864, 0xB48C, - 0xB0A9, 0xACD1, 0xA91B, 0xA59B, 0xA269, 0x9F9A, 0x9D44, 0x9B7E, - 0x9A5D, 0x99F8, 0x9A53, 0x9B59, 0x9CF6, 0x9F18, 0xA1AB, 0xA49C, - 0xA7DA, 0xAB50, 0xAEEC, 0xB29A, 0xB649, 0xB9E5, 0xBD5B, 0xC098, - 0xC38A, 0xC61D, 0xC83F, 0xC9DC, 0xCAE1, 0xCB3D, 0x003A, 0x054A, - 0xEBEE, 0xF6A2, 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, - 0x4294, 0x408A, 0x3E5F, 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, - 0x318B, 0x2FE7, 0x2E8B, 0x2D82, 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, - 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, 0x36BD, 0x38D8, 0x3AFF, - 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, 0x47A0, 0x4891, - 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, 0x39CD, - 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, - 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, - 0x395A, 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, - 0x39A7, 0x39B2, 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, - 0x39E5, 0x39E6, 0xCC24, 0xCBE8, 0xCB3E, 0xCA32, 0xC8D1, 0xC728, - 0xC545, 0xC335, 0xC104, 0xBEBF, 0xBC74, 0xBA2F, 0xB7FE, 0xB5ED, - 0xB40A, 0xB262, 0xB101, 0xAFF5, 0xAF4B, 0xAF0F, 0xAF45, 0xAFE0, - 0xB0D3, 0xB215, 0xB39A, 0xB557, 0xB741, 0xB94C, 0xBB6D, 0xBD99, - 0xBFC6, 0xC1E7, 0xC3F2, 0xC5DC, 0xC799, 0xC91E, 0xCA5F, 0xCB53, - 0xCBEE, 0xCC24, 0x0135, 0x0207, 0xDF23, 0x10D8, 0x10FF, 0x1101, - 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, 0x114A, 0x1159, - 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, 0x11BD, - 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, - 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, - 0x111E, 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, - 0x054D, 0x0574, 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, - 0x076A, 0x07BD, 0x080D, 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, - 0x094B, 0x0953, 0x094B, 0x0935, 0x0913, 0x08E5, 0x08AD, 0x086E, - 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, 0x06A3, 0x0658, 0x0612, - 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, 0xBDBB, 0xBDC3, - 0xBDD9, 0xBDFB, 0xBE28, 0xBE5F, 0xBE9D, 0xBEE1, 0xBF29, 0xBF73, - 0xBFBE, 0xC009, 0xC051, 0xC095, 0xC0D3, 0xC109, 0xC136, 0xC159, - 0xC16E, 0xC176, 0xC16F, 0xC15B, 0xC13C, 0xC113, 0xC0E1, 0xC0A8, - 0xC069, 0xC026, 0xBFE0, 0xBF99, 0xBF51, 0xBF0B, 0xBEC8, 0xBE89, - 0xBE50, 0xBE1E, 0xBDF5, 0xBDD6, 0xBDC2, 0xBDBB, 0x0013, 0xFEE0, - 0xDF6A, 0x0F13, 0xF602, 0xF600, 0xF5FB, 0xF5F3, 0xF5E7, 0xF5DA, - 0xF5CB, 0xF5BA, 0xF5A8, 0xF596, 0xF583, 0xF571, 0xF55F, 0xF54F, - 0xF53F, 0xF532, 0xF527, 0xF51E, 0xF519, 0xF517, 0xF519, 0xF51E, - 0xF525, 0xF52F, 0xF53C, 0xF54A, 0xF559, 0xF56A, 0xF57B, 0xF58D, - 0xF59E, 0xF5AF, 0xF5C0, 0xF5D0, 0xF5DE, 0xF5EA, 0xF5F4, 0xF5FC, - 0xF601, 0xF602, 0xFC00, 0xFBF8, 0xFBE2, 0xFBBF, 0xFB91, 0xFB59, - 0xFB1A, 0xFAD5, 0xFA8C, 0xFA40, 0xF9F3, 0xF9A7, 0xF95E, 0xF919, - 0xF8DA, 0xF8A2, 0xF874, 0xF851, 0xF83B, 0xF833, 0xF83A, 0xF84E, - 0xF86E, 0xF898, 0xF8CB, 0xF905, 0xF945, 0xF98A, 0xF9D1, 0xFA1A, - 0xFA62, 0xFAAA, 0xFAEE, 0xFB2E, 0xFB68, 0xFB9B, 0xFBC5, 0xFBE5, - 0xFBF9, 0xFC00, 0xBCB0, 0xBCBA, 0xBCD6, 0xBD03, 0xBD3D, 0xBD84, - 0xBDD4, 0xBE2C, 0xBE89, 0xBEE9, 0xBF4B, 0xBFAB, 0xC009, 0xC060, - 0xC0B1, 0xC0F7, 0xC132, 0xC15E, 0xC17B, 0xC185, 0xC17C, 0xC162, - 0xC139, 0xC104, 0xC0C3, 0xC079, 0xC028, 0xBFD1, 0xBF77, 0xBF1A, - 0xBEBE, 0xBE63, 0xBE0C, 0xBDBB, 0xBD71, 0xBD30, 0xBCFB, 0xBCD2, - 0xBCB9, 0xBCB0, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, - 0x4171, 0xBF5F, 0xD6E6, 0xD6EB, 0xD6F9, 0xD70F, 0xD72B, 0xD74D, - 0xD772, 0xD799, 0xD7C2, 0xD7EB, 0xD813, 0xD837, 0xD858, 0xD873, - 0xD887, 0xD896, 0xD8A3, 0xD8AC, 0xD8B2, 0xD8B5, 0xD8B5, 0xD8B2, - 0xD8AC, 0xD8A3, 0xD896, 0xD887, 0xD873, 0xD858, 0xD837, 0xD813, - 0xD7EB, 0xD7C2, 0xD799, 0xD772, 0xD74D, 0xD72B, 0xD70F, 0xD6F9, - 0xD6EB, 0xD6E6, 0xF839, 0xF823, 0xF7E8, 0xF78C, 0xF717, 0xF68F, - 0xF5FA, 0xF55E, 0xF4C3, 0xF42E, 0xF3A6, 0xF331, 0xF2D5, 0xF29A, - 0xF284, 0xF28B, 0xF29F, 0xF2BE, 0xF2E9, 0xF31C, 0xF358, 0xF39C, - 0xF3E5, 0xF434, 0xF486, 0xF4DC, 0xF533, 0xF58A, 0xF5E1, 0xF637, - 0xF689, 0xF6D8, 0xF721, 0xF765, 0xF7A1, 0xF7D4, 0xF7FF, 0xF81E, - 0xF832, 0xF839, 0x7C1D, 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, - 0x7DB8, 0x7E27, 0x7E96, 0x7F00, 0x7F61, 0x7FB5, 0x7FF6, 0x8024, - 0x8033, 0x802E, 0x8020, 0x800A, 0x7FE8, 0x7FC4, 0x7F99, 0x7F68, - 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, 0x7DC9, 0x7D8C, - 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, 0x7C30, - 0x7C22, 0x7C1D, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x7C1D, + 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, 0x7DB8, 0x7E27, 0x7E96, 0x7F00, + 0x7F61, 0x7FB5, 0x7FF5, 0x8023, 0x8033, 0x802D, 0x8020, 0x800A, 0x7FE8, + 0x7FC4, 0x7F99, 0x7F68, 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, + 0x7DC9, 0x7D8C, 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, + 0x7C30, 0x7C22, 0x7C1D, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xF838, 0xF822, 0xF7E7, 0xF78B, 0xF716, 0xF68E, 0xF5F9, 0xF55D, + 0xF4C2, 0xF42D, 0xF3A5, 0xF330, 0xF2D4, 0xF299, 0xF283, 0xF28A, 0xF29E, + 0xF2BD, 0xF2E8, 0xF31B, 0xF357, 0xF39B, 0xF3E4, 0xF433, 0xF485, 0xF4DB, + 0xF532, 0xF589, 0xF5E0, 0xF636, 0xF688, 0xF6D7, 0xF720, 0xF764, 0xF7A0, + 0xF7D3, 0xF7FE, 0xF81D, 0xF831, 0xF838, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xD6E5, 0xD6EA, 0xD6F8, 0xD70E, 0xD72A, 0xD74C, 0xD771, + 0xD798, 0xD7C1, 0xD7EA, 0xD812, 0xD836, 0xD857, 0xD872, 0xD886, 0xD895, + 0xD8A2, 0xD8AB, 0xD8B1, 0xD8B4, 0xD8B4, 0xD8B1, 0xD8AB, 0xD8A2, 0xD895, + 0xD886, 0xD872, 0xD857, 0xD836, 0xD812, 0xD7EA, 0xD7C1, 0xD798, 0xD771, + 0xD74C, 0xD72A, 0xD70E, 0xD6F8, 0xD6EA, 0xD6E5, 0x0001, 0xFFFE, 0xC170, + 0xB8A1, 0xB905, 0xBA24, 0xBBE6, 0xBE37, 0xC100, 0xC42B, 0xC7A4, 0xCB52, + 0xCF22, 0xD2FD, 0xD6CD, 0xDA7B, 0xDDF4, 0xE11F, 0xE3E8, 0xE639, 0xE7FB, + 0xE91A, 0xE97E, 0xE923, 0xE820, 0xE686, 0xE469, 0xE1DB, 0xDEF0, 0xDBBA, + 0xD84B, 0xD4B7, 0xD110, 0xCD68, 0xC9D4, 0xC665, 0xC32F, 0xC044, 0xBDB6, + 0xBB99, 0xB9FF, 0xB8FC, 0xB8A1, 0xC453, 0xC45B, 0xC471, 0xC495, 0xC4C3, + 0xC4FB, 0xC53A, 0xC580, 0xC5C9, 0xC616, 0xC663, 0xC6AF, 0xC6F9, 0xC73E, + 0xC77E, 0xC7B6, 0xC7E4, 0xC807, 0xC81E, 0xC825, 0xC81E, 0xC80A, 0xC7EA, + 0xC7C0, 0xC78D, 0xC752, 0xC712, 0xC6CD, 0xC685, 0xC63C, 0xC5F3, 0xC5AB, + 0xC567, 0xC526, 0xC4EC, 0xC4B9, 0xC48F, 0xC46F, 0xC45A, 0xC453, 0xCB3C, + 0xCAD7, 0xC9B6, 0xC7F0, 0xC59A, 0xC2CB, 0xBF99, 0xBC19, 0xB863, 0xB48B, + 0xB0A8, 0xACD0, 0xA91A, 0xA59A, 0xA268, 0x9F99, 0x9D43, 0x9B7D, 0x9A5C, + 0x99F7, 0x9A52, 0x9B58, 0x9CF5, 0x9F17, 0xA1AA, 0xA49B, 0xA7D9, 0xAB4F, + 0xAEEB, 0xB299, 0xB648, 0xB9E4, 0xBD5A, 0xC097, 0xC389, 0xC61C, 0xC83E, + 0xC9DB, 0xCAE0, 0xCB3C, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xF912, 0x008A, 0xF434, 0xEA2B, 0x0001, 0xFFFE, 0xC170, + 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, 0x4294, 0x408A, 0x3E5F, + 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, 0x318B, 0x2FE7, 0x2E8B, 0x2D82, + 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, + 0x36BD, 0x38D8, 0x3AFF, 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, + 0x47A0, 0x4891, 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, + 0x39CD, 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, + 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, 0x395A, + 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, 0x39A7, 0x39B2, + 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, 0x39E5, 0x39E6, 0xCC23, + 0xCBE7, 0xCB3D, 0xCA31, 0xC8D0, 0xC727, 0xC544, 0xC334, 0xC103, 0xBEBE, + 0xBC73, 0xBA2E, 0xB7FD, 0xB5EC, 0xB409, 0xB261, 0xB100, 0xAFF4, 0xAF4A, + 0xAF0E, 0xAF44, 0xAFDF, 0xB0D2, 0xB214, 0xB399, 0xB556, 0xB740, 0xB94B, + 0xBB6C, 0xBD98, 0xBFC5, 0xC1E6, 0xC3F1, 0xC5DB, 0xC798, 0xC91D, 0xCA5E, + 0xCB52, 0xCBED, 0xCC23, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xF6A1, 0x003A, 0x054A, 0xEBED, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0xF601, 0xF5FF, 0xF5FA, 0xF5F2, + 0xF5E6, 0xF5D9, 0xF5CA, 0xF5B9, 0xF5A7, 0xF595, 0xF582, 0xF570, 0xF55E, + 0xF54E, 0xF53E, 0xF531, 0xF526, 0xF51D, 0xF518, 0xF516, 0xF518, 0xF51D, + 0xF524, 0xF52E, 0xF53B, 0xF549, 0xF558, 0xF569, 0xF57A, 0xF58C, 0xF59D, + 0xF5AE, 0xF5BF, 0xF5CF, 0xF5DD, 0xF5E9, 0xF5F3, 0xF5FB, 0xF600, 0xF601, + 0xFBFF, 0xFBF7, 0xFBE1, 0xFBBE, 0xFB90, 0xFB58, 0xFB19, 0xFAD4, 0xFA8B, + 0xFA3F, 0xF9F2, 0xF9A6, 0xF95D, 0xF918, 0xF8D9, 0xF8A1, 0xF873, 0xF850, + 0xF83A, 0xF832, 0xF839, 0xF84D, 0xF86D, 0xF897, 0xF8CA, 0xF904, 0xF944, + 0xF989, 0xF9D0, 0xFA19, 0xFA61, 0xFAA9, 0xFAED, 0xFB2D, 0xFB67, 0xFB9A, + 0xFBC4, 0xFBE4, 0xFBF8, 0xFBFF, 0xBCAF, 0xBCB9, 0xBCD5, 0xBD02, 0xBD3C, + 0xBD83, 0xBDD3, 0xBE2B, 0xBE88, 0xBEE8, 0xBF4A, 0xBFAA, 0xC008, 0xC05F, + 0xC0B0, 0xC0F6, 0xC131, 0xC15D, 0xC17A, 0xC184, 0xC17B, 0xC161, 0xC138, + 0xC103, 0xC0C2, 0xC078, 0xC027, 0xBFD0, 0xBF76, 0xBF19, 0xBEBD, 0xBE62, + 0xBE0B, 0xBDBA, 0xBD70, 0xBD2F, 0xBCFA, 0xBCD1, 0xBCB8, 0xBCAF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0F13, 0xF5A6, 0x00BB, + 0xB257, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xBF5E, 0x10FF, 0x1101, 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, + 0x114A, 0x1159, 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, + 0x11BD, 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, + 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, 0x111E, + 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, 0x054D, 0x0574, + 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, 0x076A, 0x07BD, 0x080D, + 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, 0x094B, 0x0953, 0x094B, 0x0935, + 0x0913, 0x08E5, 0x08AD, 0x086E, 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, + 0x06A3, 0x0658, 0x0612, 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, + 0xBDBA, 0xBDC2, 0xBDD8, 0xBDFA, 0xBE27, 0xBE5E, 0xBE9C, 0xBEE0, 0xBF28, + 0xBF72, 0xBFBD, 0xC008, 0xC050, 0xC094, 0xC0D2, 0xC108, 0xC135, 0xC158, + 0xC16D, 0xC175, 0xC16E, 0xC15A, 0xC13B, 0xC112, 0xC0E0, 0xC0A7, 0xC068, + 0xC025, 0xBFDF, 0xBF98, 0xBF50, 0xBF0A, 0xBEC7, 0xBE88, 0xBE4F, 0xBE1D, + 0xBDF4, 0xBDD5, 0xBDC1, 0xBDBA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x10D8, 0x120C, 0xFC42, 0xB3C3, }; diff --git a/assets/anims/anim_2A.inc.c.rej b/assets/anims/anim_2A.inc.c.rej new file mode 100644 index 00000000..b475c477 --- /dev/null +++ b/assets/anims/anim_2A.inc.c.rej @@ -0,0 +1,263 @@ +diff a/assets/anims/anim_2A.inc.c b/assets/anims/anim_2A.inc.c (rejected hunks) +@@ -12,107 +12,162 @@ static const struct Animation anim_2A[] = { + + + static const u16 anim_2A_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x024A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x0222, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x01FA, +- 0x0001, 0x01F6, 0x0001, 0x01F7, 0x0001, 0x01F8, +- 0x0028, 0x0006, 0x0028, 0x002E, 0x0028, 0x0056, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0005, +- 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, +- 0x0001, 0x01F2, 0x0001, 0x01F3, 0x0001, 0x01F4, +- 0x0028, 0x0082, 0x0028, 0x00AA, 0x0028, 0x00D2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0081, +- 0x0001, 0x007E, 0x0001, 0x007F, 0x0001, 0x0080, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F5, +- 0x0028, 0x017A, 0x0028, 0x01A2, 0x0028, 0x01CA, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0179, +- 0x0001, 0x0176, 0x0001, 0x0177, 0x0001, 0x0178, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F9, +- 0x0028, 0x00FE, 0x0028, 0x0126, 0x0028, 0x014E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00FD, +- 0x0001, 0x00FA, 0x0001, 0x00FB, 0x0001, 0x00FC, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0028, 0x0008, ++ 0x0028, 0x0030, 0x0027, 0x0058, 0x0028, 0x007F, 0x0026, 0x00A7, 0x0028, ++ 0x00CD, 0x0028, 0x00F5, 0x0001, 0x011D, 0x0001, 0x011E, 0x0001, 0x011F, ++ 0x0028, 0x0120, 0x0028, 0x0148, 0x0028, 0x0170, 0x0028, 0x0198, 0x0028, ++ 0x01C0, 0x0001, 0x01E8, 0x0001, 0x01E9, 0x0001, 0x01EA, 0x0001, 0x01EB, ++ 0x0001, 0x01EC, 0x0001, 0x01ED, 0x0001, 0x01EE, 0x0028, 0x01EF, 0x0028, ++ 0x0217, 0x0028, 0x023F, 0x0027, 0x0267, 0x0028, 0x028E, 0x0001, 0x02B6, ++ 0x0001, 0x02B7, 0x0001, 0x02B8, 0x0001, 0x02B9, 0x0028, 0x02BA, 0x0028, ++ 0x02E2, 0x0001, 0x030A, 0x0028, 0x030B, 0x0028, 0x0333, 0x0028, 0x035B, ++ 0x0028, 0x0383, 0x0027, 0x03AB, 0x0001, 0x03D2, 0x0001, 0x03D3, 0x0001, ++ 0x03D4, 0x0001, 0x03D5, 0x0028, 0x03D6, 0x0028, 0x03FE, 0x0001, 0x0426, ++ 0x0028, 0x0427, 0x0028, 0x044F, 0x0028, 0x0477, 0x0022, 0x049F, 0x0027, ++ 0x04C1, 0x0001, 0x04E8, 0x0001, 0x04E9, 0x0001, 0x04EA, 0x0001, 0x04EB, + }; + + static const s16 anim_2A_values[] = { +- 0x0000, 0x3FFF, 0x008A, 0xF435, 0xEA2C, 0xF913, 0xB8A2, 0xB906, +- 0xBA25, 0xBBE7, 0xBE38, 0xC101, 0xC42C, 0xC7A5, 0xCB53, 0xCF23, +- 0xD2FE, 0xD6CE, 0xDA7C, 0xDDF5, 0xE120, 0xE3E9, 0xE63A, 0xE7FC, +- 0xE91B, 0xE97F, 0xE924, 0xE821, 0xE687, 0xE46A, 0xE1DC, 0xDEF1, +- 0xDBBB, 0xD84C, 0xD4B8, 0xD111, 0xCD69, 0xC9D5, 0xC666, 0xC330, +- 0xC045, 0xBDB7, 0xBB9A, 0xBA00, 0xB8FD, 0xB8A2, 0xC454, 0xC45C, +- 0xC472, 0xC496, 0xC4C4, 0xC4FC, 0xC53B, 0xC581, 0xC5CA, 0xC617, +- 0xC664, 0xC6B0, 0xC6FA, 0xC73F, 0xC77F, 0xC7B7, 0xC7E5, 0xC808, +- 0xC81F, 0xC826, 0xC81F, 0xC80B, 0xC7EB, 0xC7C1, 0xC78E, 0xC753, +- 0xC713, 0xC6CE, 0xC686, 0xC63D, 0xC5F4, 0xC5AC, 0xC568, 0xC527, +- 0xC4ED, 0xC4BA, 0xC490, 0xC470, 0xC45B, 0xC454, 0xCB3D, 0xCAD8, +- 0xC9B7, 0xC7F1, 0xC59B, 0xC2CC, 0xBF9A, 0xBC1A, 0xB864, 0xB48C, +- 0xB0A9, 0xACD1, 0xA91B, 0xA59B, 0xA269, 0x9F9A, 0x9D44, 0x9B7E, +- 0x9A5D, 0x99F8, 0x9A53, 0x9B59, 0x9CF6, 0x9F18, 0xA1AB, 0xA49C, +- 0xA7DA, 0xAB50, 0xAEEC, 0xB29A, 0xB649, 0xB9E5, 0xBD5B, 0xC098, +- 0xC38A, 0xC61D, 0xC83F, 0xC9DC, 0xCAE1, 0xCB3D, 0x003A, 0x054A, +- 0xEBEE, 0xF6A2, 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, +- 0x4294, 0x408A, 0x3E5F, 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, +- 0x318B, 0x2FE7, 0x2E8B, 0x2D82, 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, +- 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, 0x36BD, 0x38D8, 0x3AFF, +- 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, 0x47A0, 0x4891, +- 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, 0x39CD, +- 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, +- 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, +- 0x395A, 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, +- 0x39A7, 0x39B2, 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, +- 0x39E5, 0x39E6, 0xCC24, 0xCBE8, 0xCB3E, 0xCA32, 0xC8D1, 0xC728, +- 0xC545, 0xC335, 0xC104, 0xBEBF, 0xBC74, 0xBA2F, 0xB7FE, 0xB5ED, +- 0xB40A, 0xB262, 0xB101, 0xAFF5, 0xAF4B, 0xAF0F, 0xAF45, 0xAFE0, +- 0xB0D3, 0xB215, 0xB39A, 0xB557, 0xB741, 0xB94C, 0xBB6D, 0xBD99, +- 0xBFC6, 0xC1E7, 0xC3F2, 0xC5DC, 0xC799, 0xC91E, 0xCA5F, 0xCB53, +- 0xCBEE, 0xCC24, 0x0135, 0x0207, 0xDF23, 0x10D8, 0x10FF, 0x1101, +- 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, 0x114A, 0x1159, +- 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, 0x11BD, +- 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, +- 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, +- 0x111E, 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, +- 0x054D, 0x0574, 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, +- 0x076A, 0x07BD, 0x080D, 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, +- 0x094B, 0x0953, 0x094B, 0x0935, 0x0913, 0x08E5, 0x08AD, 0x086E, +- 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, 0x06A3, 0x0658, 0x0612, +- 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, 0xBDBB, 0xBDC3, +- 0xBDD9, 0xBDFB, 0xBE28, 0xBE5F, 0xBE9D, 0xBEE1, 0xBF29, 0xBF73, +- 0xBFBE, 0xC009, 0xC051, 0xC095, 0xC0D3, 0xC109, 0xC136, 0xC159, +- 0xC16E, 0xC176, 0xC16F, 0xC15B, 0xC13C, 0xC113, 0xC0E1, 0xC0A8, +- 0xC069, 0xC026, 0xBFE0, 0xBF99, 0xBF51, 0xBF0B, 0xBEC8, 0xBE89, +- 0xBE50, 0xBE1E, 0xBDF5, 0xBDD6, 0xBDC2, 0xBDBB, 0x0013, 0xFEE0, +- 0xDF6A, 0x0F13, 0xF602, 0xF600, 0xF5FB, 0xF5F3, 0xF5E7, 0xF5DA, +- 0xF5CB, 0xF5BA, 0xF5A8, 0xF596, 0xF583, 0xF571, 0xF55F, 0xF54F, +- 0xF53F, 0xF532, 0xF527, 0xF51E, 0xF519, 0xF517, 0xF519, 0xF51E, +- 0xF525, 0xF52F, 0xF53C, 0xF54A, 0xF559, 0xF56A, 0xF57B, 0xF58D, +- 0xF59E, 0xF5AF, 0xF5C0, 0xF5D0, 0xF5DE, 0xF5EA, 0xF5F4, 0xF5FC, +- 0xF601, 0xF602, 0xFC00, 0xFBF8, 0xFBE2, 0xFBBF, 0xFB91, 0xFB59, +- 0xFB1A, 0xFAD5, 0xFA8C, 0xFA40, 0xF9F3, 0xF9A7, 0xF95E, 0xF919, +- 0xF8DA, 0xF8A2, 0xF874, 0xF851, 0xF83B, 0xF833, 0xF83A, 0xF84E, +- 0xF86E, 0xF898, 0xF8CB, 0xF905, 0xF945, 0xF98A, 0xF9D1, 0xFA1A, +- 0xFA62, 0xFAAA, 0xFAEE, 0xFB2E, 0xFB68, 0xFB9B, 0xFBC5, 0xFBE5, +- 0xFBF9, 0xFC00, 0xBCB0, 0xBCBA, 0xBCD6, 0xBD03, 0xBD3D, 0xBD84, +- 0xBDD4, 0xBE2C, 0xBE89, 0xBEE9, 0xBF4B, 0xBFAB, 0xC009, 0xC060, +- 0xC0B1, 0xC0F7, 0xC132, 0xC15E, 0xC17B, 0xC185, 0xC17C, 0xC162, +- 0xC139, 0xC104, 0xC0C3, 0xC079, 0xC028, 0xBFD1, 0xBF77, 0xBF1A, +- 0xBEBE, 0xBE63, 0xBE0C, 0xBDBB, 0xBD71, 0xBD30, 0xBCFB, 0xBCD2, +- 0xBCB9, 0xBCB0, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0xD6E6, 0xD6EB, 0xD6F9, 0xD70F, 0xD72B, 0xD74D, +- 0xD772, 0xD799, 0xD7C2, 0xD7EB, 0xD813, 0xD837, 0xD858, 0xD873, +- 0xD887, 0xD896, 0xD8A3, 0xD8AC, 0xD8B2, 0xD8B5, 0xD8B5, 0xD8B2, +- 0xD8AC, 0xD8A3, 0xD896, 0xD887, 0xD873, 0xD858, 0xD837, 0xD813, +- 0xD7EB, 0xD7C2, 0xD799, 0xD772, 0xD74D, 0xD72B, 0xD70F, 0xD6F9, +- 0xD6EB, 0xD6E6, 0xF839, 0xF823, 0xF7E8, 0xF78C, 0xF717, 0xF68F, +- 0xF5FA, 0xF55E, 0xF4C3, 0xF42E, 0xF3A6, 0xF331, 0xF2D5, 0xF29A, +- 0xF284, 0xF28B, 0xF29F, 0xF2BE, 0xF2E9, 0xF31C, 0xF358, 0xF39C, +- 0xF3E5, 0xF434, 0xF486, 0xF4DC, 0xF533, 0xF58A, 0xF5E1, 0xF637, +- 0xF689, 0xF6D8, 0xF721, 0xF765, 0xF7A1, 0xF7D4, 0xF7FF, 0xF81E, +- 0xF832, 0xF839, 0x7C1D, 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, +- 0x7DB8, 0x7E27, 0x7E96, 0x7F00, 0x7F61, 0x7FB5, 0x7FF6, 0x8024, +- 0x8033, 0x802E, 0x8020, 0x800A, 0x7FE8, 0x7FC4, 0x7F99, 0x7F68, +- 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, 0x7DC9, 0x7D8C, +- 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, 0x7C30, +- 0x7C22, 0x7C1D, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x7C1D, ++ 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, 0x7DB8, 0x7E27, 0x7E96, 0x7F00, ++ 0x7F61, 0x7FB5, 0x7FF5, 0x8023, 0x8033, 0x802D, 0x8020, 0x800A, 0x7FE8, ++ 0x7FC4, 0x7F99, 0x7F68, 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, ++ 0x7DC9, 0x7D8C, 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, ++ 0x7C30, 0x7C22, 0x7C1D, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xF838, 0xF822, 0xF7E7, 0xF78B, 0xF716, 0xF68E, 0xF5F9, 0xF55D, ++ 0xF4C2, 0xF42D, 0xF3A5, 0xF330, 0xF2D4, 0xF299, 0xF283, 0xF28A, 0xF29E, ++ 0xF2BD, 0xF2E8, 0xF31B, 0xF357, 0xF39B, 0xF3E4, 0xF433, 0xF485, 0xF4DB, ++ 0xF532, 0xF589, 0xF5E0, 0xF636, 0xF688, 0xF6D7, 0xF720, 0xF764, 0xF7A0, ++ 0xF7D3, 0xF7FE, 0xF81D, 0xF831, 0xF838, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xD6E5, 0xD6EA, 0xD6F8, 0xD70E, 0xD72A, 0xD74C, 0xD771, ++ 0xD798, 0xD7C1, 0xD7EA, 0xD812, 0xD836, 0xD857, 0xD872, 0xD886, 0xD895, ++ 0xD8A2, 0xD8AB, 0xD8B1, 0xD8B4, 0xD8B4, 0xD8B1, 0xD8AB, 0xD8A2, 0xD895, ++ 0xD886, 0xD872, 0xD857, 0xD836, 0xD812, 0xD7EA, 0xD7C1, 0xD798, 0xD771, ++ 0xD74C, 0xD72A, 0xD70E, 0xD6F8, 0xD6EA, 0xD6E5, 0x0001, 0xFFFE, 0xC170, ++ 0xB8A1, 0xB905, 0xBA24, 0xBBE6, 0xBE37, 0xC100, 0xC42B, 0xC7A4, 0xCB52, ++ 0xCF22, 0xD2FD, 0xD6CD, 0xDA7B, 0xDDF4, 0xE11F, 0xE3E8, 0xE639, 0xE7FB, ++ 0xE91A, 0xE97E, 0xE923, 0xE820, 0xE686, 0xE469, 0xE1DB, 0xDEF0, 0xDBBA, ++ 0xD84B, 0xD4B7, 0xD110, 0xCD68, 0xC9D4, 0xC665, 0xC32F, 0xC044, 0xBDB6, ++ 0xBB99, 0xB9FF, 0xB8FC, 0xB8A1, 0xC453, 0xC45B, 0xC471, 0xC495, 0xC4C3, ++ 0xC4FB, 0xC53A, 0xC580, 0xC5C9, 0xC616, 0xC663, 0xC6AF, 0xC6F9, 0xC73E, ++ 0xC77E, 0xC7B6, 0xC7E4, 0xC807, 0xC81E, 0xC825, 0xC81E, 0xC80A, 0xC7EA, ++ 0xC7C0, 0xC78D, 0xC752, 0xC712, 0xC6CD, 0xC685, 0xC63C, 0xC5F3, 0xC5AB, ++ 0xC567, 0xC526, 0xC4EC, 0xC4B9, 0xC48F, 0xC46F, 0xC45A, 0xC453, 0xCB3C, ++ 0xCAD7, 0xC9B6, 0xC7F0, 0xC59A, 0xC2CB, 0xBF99, 0xBC19, 0xB863, 0xB48B, ++ 0xB0A8, 0xACD0, 0xA91A, 0xA59A, 0xA268, 0x9F99, 0x9D43, 0x9B7D, 0x9A5C, ++ 0x99F7, 0x9A52, 0x9B58, 0x9CF5, 0x9F17, 0xA1AA, 0xA49B, 0xA7D9, 0xAB4F, ++ 0xAEEB, 0xB299, 0xB648, 0xB9E4, 0xBD5A, 0xC097, 0xC389, 0xC61C, 0xC83E, ++ 0xC9DB, 0xCAE0, 0xCB3C, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xF912, 0x008A, 0xF434, 0xEA2B, 0x0001, 0xFFFE, 0xC170, ++ 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, 0x4294, 0x408A, 0x3E5F, ++ 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, 0x318B, 0x2FE7, 0x2E8B, 0x2D82, ++ 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, ++ 0x36BD, 0x38D8, 0x3AFF, 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, ++ 0x47A0, 0x4891, 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, ++ 0x39CD, 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, ++ 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, 0x395A, ++ 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, 0x39A7, 0x39B2, ++ 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, 0x39E5, 0x39E6, 0xCC23, ++ 0xCBE7, 0xCB3D, 0xCA31, 0xC8D0, 0xC727, 0xC544, 0xC334, 0xC103, 0xBEBE, ++ 0xBC73, 0xBA2E, 0xB7FD, 0xB5EC, 0xB409, 0xB261, 0xB100, 0xAFF4, 0xAF4A, ++ 0xAF0E, 0xAF44, 0xAFDF, 0xB0D2, 0xB214, 0xB399, 0xB556, 0xB740, 0xB94B, ++ 0xBB6C, 0xBD98, 0xBFC5, 0xC1E6, 0xC3F1, 0xC5DB, 0xC798, 0xC91D, 0xCA5E, ++ 0xCB52, 0xCBED, 0xCC23, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xF6A1, 0x003A, 0x054A, 0xEBED, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0xF601, 0xF5FF, 0xF5FA, 0xF5F2, ++ 0xF5E6, 0xF5D9, 0xF5CA, 0xF5B9, 0xF5A7, 0xF595, 0xF582, 0xF570, 0xF55E, ++ 0xF54E, 0xF53E, 0xF531, 0xF526, 0xF51D, 0xF518, 0xF516, 0xF518, 0xF51D, ++ 0xF524, 0xF52E, 0xF53B, 0xF549, 0xF558, 0xF569, 0xF57A, 0xF58C, 0xF59D, ++ 0xF5AE, 0xF5BF, 0xF5CF, 0xF5DD, 0xF5E9, 0xF5F3, 0xF5FB, 0xF600, 0xF601, ++ 0xFBFF, 0xFBF7, 0xFBE1, 0xFBBE, 0xFB90, 0xFB58, 0xFB19, 0xFAD4, 0xFA8B, ++ 0xFA3F, 0xF9F2, 0xF9A6, 0xF95D, 0xF918, 0xF8D9, 0xF8A1, 0xF873, 0xF850, ++ 0xF83A, 0xF832, 0xF839, 0xF84D, 0xF86D, 0xF897, 0xF8CA, 0xF904, 0xF944, ++ 0xF989, 0xF9D0, 0xFA19, 0xFA61, 0xFAA9, 0xFAED, 0xFB2D, 0xFB67, 0xFB9A, ++ 0xFBC4, 0xFBE4, 0xFBF8, 0xFBFF, 0xBCAF, 0xBCB9, 0xBCD5, 0xBD02, 0xBD3C, ++ 0xBD83, 0xBDD3, 0xBE2B, 0xBE88, 0xBEE8, 0xBF4A, 0xBFAA, 0xC008, 0xC05F, ++ 0xC0B0, 0xC0F6, 0xC131, 0xC15D, 0xC17A, 0xC184, 0xC17B, 0xC161, 0xC138, ++ 0xC103, 0xC0C2, 0xC078, 0xC027, 0xBFD0, 0xBF76, 0xBF19, 0xBEBD, 0xBE62, ++ 0xBE0B, 0xBDBA, 0xBD70, 0xBD2F, 0xBCFA, 0xBCD1, 0xBCB8, 0xBCAF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0F13, 0xF5A6, 0x00BB, ++ 0xB257, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xBF5E, 0x10FF, 0x1101, 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, ++ 0x114A, 0x1159, 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, ++ 0x11BD, 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, ++ 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, 0x111E, ++ 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, 0x054D, 0x0574, ++ 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, 0x076A, 0x07BD, 0x080D, ++ 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, 0x094B, 0x0953, 0x094B, 0x0935, ++ 0x0913, 0x08E5, 0x08AD, 0x086E, 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, ++ 0x06A3, 0x0658, 0x0612, 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, ++ 0xBDBA, 0xBDC2, 0xBDD8, 0xBDFA, 0xBE27, 0xBE5E, 0xBE9C, 0xBEE0, 0xBF28, ++ 0xBF72, 0xBFBD, 0xC008, 0xC050, 0xC094, 0xC0D2, 0xC108, 0xC135, 0xC158, ++ 0xC16D, 0xC175, 0xC16E, 0xC15A, 0xC13B, 0xC112, 0xC0E0, 0xC0A7, 0xC068, ++ 0xC025, 0xBFDF, 0xBF98, 0xBF50, 0xBF0A, 0xBEC7, 0xBE88, 0xBE4F, 0xBE1D, ++ 0xBDF4, 0xBDD5, 0xBDC1, 0xBDBA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x10D8, 0x120C, 0xFC42, 0xB3C3, + }; + diff --git a/assets/anims/anim_36.inc.c b/assets/anims/anim_36.inc.c index e775b597..6c68d350 100644 --- a/assets/anims/anim_36.inc.c +++ b/assets/anims/anim_36.inc.c @@ -12,260 +12,225 @@ static const struct Animation anim_36[] = { static const u16 anim_36_indices[] = { - 0x002E, 0x0001, 0x002E, 0x002F, 0x002E, 0x005D, 0x0001, 0x0000, 0x0001, 0x008B, 0x0001, 0x0000, - 0x002E, 0x06B0, 0x002E, 0x06DE, 0x002E, 0x070C, - 0x002E, 0x0626, 0x002E, 0x0654, 0x002E, 0x0682, - 0x002E, 0x059C, 0x002E, 0x05CA, 0x002E, 0x05F8, - 0x0001, 0x0598, 0x0001, 0x0599, 0x0001, 0x059A, - 0x002E, 0x0144, 0x002E, 0x0172, 0x002E, 0x01A0, - 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0116, - 0x002E, 0x008C, 0x002E, 0x00BA, 0x002E, 0x00E8, - 0x0001, 0x0594, 0x0001, 0x0595, 0x0001, 0x0596, - 0x002E, 0x0286, 0x002E, 0x02B4, 0x002E, 0x02E2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0258, - 0x002E, 0x01CE, 0x002E, 0x01FC, 0x002E, 0x022A, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0597, - 0x002E, 0x050A, 0x002E, 0x0538, 0x002E, 0x0566, - 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x04DC, - 0x002E, 0x0452, 0x002E, 0x0480, 0x002E, 0x04AE, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x059B, - 0x002E, 0x03C8, 0x002E, 0x03F6, 0x002E, 0x0424, - 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x039A, - 0x002E, 0x0310, 0x002E, 0x033E, 0x002E, 0x036C, + 0x0001, 0x0000, 0x002E, 0x0001, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, + 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, + 0x002E, 0x0036, 0x0027, 0x0064, 0x002E, 0x008B, 0x0026, 0x00B9, 0x002E, + 0x00DF, 0x002E, 0x010D, 0x0001, 0x013B, 0x0001, 0x013C, 0x0001, 0x013D, + 0x002E, 0x013E, 0x002E, 0x016C, 0x002E, 0x019A, 0x002E, 0x01C8, 0x002E, + 0x01F6, 0x002E, 0x0224, 0x002D, 0x0252, 0x0027, 0x027F, 0x0027, 0x02A6, + 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, 0x002E, 0x02D0, 0x002E, + 0x02FE, 0x002E, 0x032C, 0x002E, 0x035A, 0x002E, 0x0388, 0x002E, 0x03B6, + 0x002E, 0x03E4, 0x002E, 0x0412, 0x0027, 0x0440, 0x0001, 0x0467, 0x0001, + 0x0468, 0x0001, 0x0469, 0x0023, 0x046A, 0x0001, 0x048D, 0x0027, 0x048E, + 0x0027, 0x04B5, 0x0027, 0x04DC, 0x0027, 0x0503, 0x002E, 0x052A, 0x002E, + 0x0558, 0x002E, 0x0586, 0x0001, 0x05B4, 0x0001, 0x05B5, 0x0001, 0x05B6, + 0x0022, 0x05B7, 0x0021, 0x05D9, 0x0027, 0x05FA, 0x0027, 0x0621, 0x0027, + 0x0648, 0x0027, 0x066F, 0x002E, 0x0696, 0x002E, 0x06C4, 0x002E, 0x06F2, }; static const s16 anim_36_values[] = { - 0x0000, 0x0000, 0x000A, 0x000F, 0x0014, 0x0016, 0x0013, 0x000E, - 0x0009, 0x0005, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, - 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094, - 0x00A5, 0x00A9, 0x00AB, 0x00AD, 0x00B0, 0x00B4, 0x00B6, 0x00B7, - 0x00B5, 0x00B2, 0x00AE, 0x00AB, 0x00A9, 0x00A8, 0x00A6, 0x00A5, - 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A6, - 0x00A6, 0x00A6, 0x00A6, 0x00A6, 0x00A7, 0x00A7, 0x00A7, 0x00A8, - 0x00A8, 0x00A8, 0x00A8, 0x00A9, 0x00A9, 0x00A9, 0x00A9, 0x00A9, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x0016, 0x001E, 0x0022, - 0x0025, 0x0026, 0x0022, 0x001D, 0x0017, 0x0013, 0x0010, 0x000E, - 0x000C, 0x000B, 0x000A, 0x0009, 0x0007, 0x0006, 0x0006, 0x0005, - 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x3FFF, 0x004D, 0x0000, 0xFE6E, 0xFCD2, - 0xFB2E, 0xF984, 0xF7D2, 0xF61C, 0xF461, 0xF2A1, 0xF0DF, 0xEF1B, - 0xED55, 0xEB8F, 0xE9C9, 0xE804, 0xE641, 0xE481, 0xE2C4, 0xE10C, - 0xDF59, 0xDDAC, 0xDC06, 0xDA68, 0xD8D2, 0xD746, 0xD5C3, 0xD44C, - 0xD2E1, 0xD182, 0xD031, 0xCEEE, 0xCDBA, 0xCCDA, 0xCCA2, 0xCD2D, - 0xCE92, 0xD0EC, 0xD453, 0xD99A, 0xE0DA, 0xE915, 0xF14D, 0xF884, - 0xFDBE, 0xFFFB, 0xF981, 0xF97C, 0xF961, 0xF945, 0xF929, 0xF90C, - 0xF8EE, 0xF8CF, 0xF8B0, 0xF891, 0xF872, 0xF852, 0xF832, 0xF812, - 0xF7F2, 0xF7D2, 0xF7B3, 0xF794, 0xF776, 0xF757, 0xF73A, 0xF71D, - 0xF702, 0xF6E7, 0xF6CD, 0xF6B4, 0xF69D, 0xF686, 0xF672, 0xF65E, - 0xF64C, 0xF63C, 0xF62E, 0xF635, 0xF65D, 0xF69E, 0xF6EB, 0xF73C, - 0xF786, 0xF7D2, 0xF82C, 0xF88A, 0xF8E3, 0xF92F, 0xF965, 0xF97B, - 0xED7E, 0xED8C, 0xEDD4, 0xEE1F, 0xEE6C, 0xEEBB, 0xEF0C, 0xEF5E, - 0xEFB2, 0xF007, 0xF05D, 0xF0B3, 0xF109, 0xF160, 0xF1B6, 0xF20C, - 0xF261, 0xF2B5, 0xF307, 0xF359, 0xF3A8, 0xF3F6, 0xF441, 0xF48A, - 0xF4D0, 0xF513, 0xF553, 0xF58F, 0xF5C8, 0xF5FC, 0xF62D, 0xF658, - 0xF67F, 0xF66D, 0xF5FE, 0xF550, 0xF47D, 0xF3A3, 0xF2DB, 0xF20D, - 0xF11A, 0xF01C, 0xEF29, 0xEE5B, 0xEDCA, 0xED8C, 0xD886, 0xCFBD, - 0xD6CC, 0xDCFD, 0xDC9C, 0xDC23, 0xDB93, 0xDAED, 0xDA35, 0xD96A, - 0xD891, 0xD7A9, 0xD6B6, 0xD5B9, 0xD4B4, 0xD3A9, 0xD29A, 0xD188, - 0xD076, 0xCF66, 0xCE59, 0xCD50, 0xCC50, 0xCB58, 0xCA6B, 0xC98A, - 0xC8B9, 0xC7F7, 0xC749, 0xC6AE, 0xC62A, 0xC5BE, 0xC56C, 0xC63C, - 0xC8B2, 0xCC09, 0xCF7C, 0xD246, 0xD3A2, 0xD36A, 0xD23B, 0xD06F, - 0xCE63, 0xCC72, 0xCAF8, 0xCA51, 0x297C, 0xD708, 0xD3F0, 0xD72A, - 0xDE4C, 0xE6E9, 0xEE98, 0xF2ED, 0xF17C, 0xEBEB, 0xE587, 0xDE66, - 0xD69E, 0xCE45, 0xC571, 0xBC36, 0xB2AB, 0xA8E5, 0x9EFA, 0x9500, - 0x8B0C, 0x8133, 0x778A, 0x6E2A, 0x6527, 0x5C96, 0x548E, 0x4D23, - 0x466C, 0x407D, 0x3B6E, 0x3752, 0x3441, 0x37E8, 0x45D2, 0x5ADE, - 0x73EB, 0x8DDA, 0xA584, 0xBFA8, 0xDBF9, 0xEFC7, 0xF854, 0xFB88, - 0xFBB2, 0xFB1F, 0xD953, 0xD633, 0xD6AA, 0xD774, 0xD86E, 0xD973, - 0xDA5E, 0xDB0C, 0xDB58, 0xDB62, 0xDB61, 0xDB57, 0xDB45, 0xDB2A, - 0xDB09, 0xDAE3, 0xDAB7, 0xDA87, 0xDA53, 0xDA1D, 0xD9E6, 0xD9AE, - 0xD976, 0xD93F, 0xD90A, 0xD8D8, 0xD8AA, 0xD87F, 0xD85B, 0xD83C, - 0xD825, 0xD816, 0xD80F, 0xD84B, 0xD8E4, 0xD9A8, 0xDA69, 0xDAF7, - 0xDB22, 0xDA5A, 0xD8C6, 0xD748, 0xD5F5, 0xD48B, 0xD365, 0xD2DD, - 0xA46A, 0xFA3D, 0xFA43, 0xF39B, 0xE8C5, 0xDC43, 0xD093, 0xC836, - 0xC5AD, 0xC737, 0xC964, 0xCC22, 0xCF63, 0xD318, 0xD731, 0xDBA0, - 0xE055, 0xE541, 0xEA54, 0xEF81, 0xF4B7, 0xF9E7, 0xFF02, 0x03F9, - 0x08BD, 0x0D3F, 0x116F, 0x153E, 0x189E, 0x1B7F, 0x1DD1, 0x1F86, - 0x208E, 0x1D0E, 0x12E1, 0x0490, 0xF4A2, 0xE59E, 0xDA0B, 0xD41C, - 0xD263, 0xD1F6, 0xD1F1, 0xD2E3, 0xD40D, 0xD4B2, 0x130F, 0x0305, - 0xDEE8, 0xB8B6, 0xA270, 0xA290, 0xAEFB, 0xC0CD, 0xD122, 0xDF5C, - 0xEEF7, 0xFF39, 0x0F63, 0x1EBD, 0x2C8A, 0x380E, 0x408D, 0x45BA, - 0x4824, 0x485C, 0x46F0, 0x4470, 0x416B, 0x3E70, 0x3C0F, 0x3866, - 0x32B2, 0x2D29, 0x2A05, 0x2B57, 0x2F5F, 0x329A, 0x3184, 0x2A2A, - 0x1EC8, 0x121E, 0x06F0, 0x0000, 0xFD01, 0xFB93, 0xFB5C, 0xFC00, - 0xFD24, 0xFE6D, 0xFF7F, 0xFFFF, 0x0CF7, 0x136D, 0x22C9, 0x3504, - 0x4419, 0x50D6, 0x5D93, 0x6696, 0x6821, 0x62E8, 0x5AB0, 0x5058, - 0x44BF, 0x38C4, 0x2D47, 0x2327, 0x1B44, 0x1554, 0x1068, 0x0C60, - 0x091D, 0x067F, 0x0468, 0x02B9, 0x0152, 0x0199, 0x043B, 0x0806, - 0x0BC8, 0x10D0, 0x176A, 0x1CDF, 0x1E78, 0x1AE4, 0x1401, 0x0BDC, - 0x0481, 0x0000, 0xFE28, 0xFD47, 0xFD25, 0xFD8A, 0xFE3E, 0xFF08, - 0xFFB1, 0x0000, 0xE4D2, 0xDB7F, 0xC620, 0xAE95, 0x9EC2, 0x98CC, - 0x97A6, 0x9A60, 0xA00B, 0xA835, 0xB27E, 0xBE1B, 0xCA3D, 0xD61A, - 0xE0E4, 0xE9CE, 0xF00C, 0xF37B, 0xF4CF, 0xF47B, 0xF2F0, 0xF0A2, - 0xEE03, 0xEB86, 0xE99D, 0xE741, 0xE3DF, 0xE097, 0xDE8C, 0xDDCC, - 0xDDC4, 0xDE97, 0xE06D, 0xE3DC, 0xE8B3, 0xEDE8, 0xF272, 0xF549, - 0xF68D, 0xF727, 0xF73E, 0xF6F9, 0xF67E, 0xF5F3, 0xF580, 0xF54A, - 0xEF32, 0xEF1B, 0xEED9, 0xEE71, 0xEDE8, 0xED43, 0xEC87, 0xEBB9, - 0xEADE, 0xE9DA, 0xE896, 0xE720, 0xE586, 0xE3D4, 0xE219, 0xE062, - 0xDEBD, 0xDD37, 0xDBDD, 0xDABD, 0xD9E5, 0xD962, 0xD942, 0xD992, - 0xDA5F, 0xE00B, 0xEB90, 0xF7E5, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xFAB0, 0xF3EA, 0xEC2B, 0xE3EF, 0xDBB3, 0xD3F4, 0xCD2E, - 0xC7DD, 0xC501, 0xC498, 0xC59C, 0xC70A, 0xC7DB, 0x5FA3, 0x6BA9, - 0x84EF, 0x9B3D, 0x9E63, 0x74BF, 0x324B, 0x0B2C, 0x03F7, 0xFE5E, - 0xFA37, 0xF759, 0xF59B, 0xF4D6, 0xF4DF, 0xF58E, 0xF6B9, 0xF839, - 0xF9E4, 0xFB91, 0xFD16, 0xFE4C, 0xFF0A, 0xFF25, 0xFE76, 0xFC9E, - 0xF9C0, 0xF678, 0xF364, 0xEFD4, 0xEBBD, 0xE8B1, 0xE83E, 0xEA1A, - 0xECC9, 0xF016, 0xF3CD, 0xF7B7, 0xFBA2, 0xFF56, 0x02A0, 0x054B, - 0x069B, 0x067F, 0x05CB, 0x054D, 0x2D84, 0x2F03, 0x3275, 0x3648, - 0x38EA, 0x39E0, 0x39B3, 0x3854, 0x364B, 0x342B, 0x31F8, 0x2FB4, - 0x2D61, 0x2B05, 0x28A0, 0x2636, 0x23CA, 0x215F, 0x1EF8, 0x1C97, - 0x1A41, 0x17F7, 0x15BC, 0x1395, 0x1183, 0x0FB9, 0x0E75, 0x0DCB, - 0x0DCE, 0x0EA1, 0x1030, 0x123B, 0x1481, 0x16F3, 0x199C, 0x1C68, - 0x1F45, 0x221E, 0x24E0, 0x2777, 0x29D0, 0x2BD6, 0x2CE3, 0x2CCE, - 0x2C3C, 0x2BD7, 0xF355, 0x0463, 0x28FF, 0x4B51, 0x5581, 0x2918, - 0xDE72, 0xB1F7, 0xA9AF, 0xA341, 0x9E7B, 0x9B2B, 0x9920, 0x9829, - 0x9816, 0x98B4, 0x99D2, 0x9B40, 0x9CCC, 0x9E45, 0x9F7A, 0xA039, - 0xA052, 0x9F92, 0x9DCA, 0x98D1, 0x906F, 0x875C, 0x8050, 0x7A81, - 0x7502, 0x7245, 0x74BE, 0x7BBD, 0x849E, 0x8EDA, 0x99F4, 0xA56B, - 0xB0C1, 0xBB75, 0xC507, 0xCCF6, 0xD0F0, 0xD09D, 0xCE78, 0xCCFA, - 0x000C, 0x000E, 0x0014, 0x001D, 0x0026, 0x002E, 0x0034, 0x0035, - 0x0031, 0x0028, 0x001C, 0x000F, 0x0005, 0x0000, 0xFFFF, 0xFFFD, - 0xFFFD, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0001, - 0x0002, 0x0003, 0x0004, 0x0004, 0x0005, 0x0005, 0x0004, 0x0004, - 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF33, 0xFF34, - 0xFF34, 0xFF36, 0xFF37, 0xFF38, 0xFF38, 0xFF39, 0xFF38, 0xFF36, - 0xFF34, 0xFF32, 0xFF31, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, - 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xC75E, 0xC6E1, 0xC5A0, 0xC3ED, - 0xC218, 0xC073, 0xBF4E, 0xBEFB, 0xBFDB, 0xC1C3, 0xC435, 0xC6B1, - 0xC8BA, 0xC9D0, 0xCA2F, 0xCA68, 0xCA82, 0xCA7F, 0xCA65, 0xCA37, - 0xC9FC, 0xC9B6, 0xC96B, 0xC920, 0xC8D8, 0xC898, 0xC865, 0xC843, - 0xC837, 0xC83B, 0xC847, 0xC859, 0xC871, 0xC88E, 0xC8AD, 0xC8D0, - 0xC8F4, 0xC918, 0xC93C, 0xC95F, 0xC97F, 0xC99C, 0xC9B4, 0xC9C7, - 0xC9D3, 0xC9D8, 0x4138, 0x417A, 0x420E, 0x42AD, 0x430B, 0x42E0, - 0x41E3, 0x3FC9, 0x3B96, 0x3545, 0x2E03, 0x26FB, 0x215B, 0x1E4F, - 0x1D2F, 0x1C83, 0x1C3B, 0x1C4B, 0x1CA3, 0x1D36, 0x1DF6, 0x1ED4, - 0x1FC2, 0x20B3, 0x2197, 0x2261, 0x2303, 0x236F, 0x2395, 0x2388, - 0x2362, 0x2327, 0x22D9, 0x227D, 0x2216, 0x21A6, 0x2131, 0x20BA, - 0x2045, 0x1FD4, 0x1F6C, 0x1F0E, 0x1EBF, 0x1E82, 0x1E5A, 0x1E4A, - 0x07B9, 0x0831, 0x0971, 0x0B40, 0x0D63, 0x0FA1, 0x11C0, 0x1386, - 0x1519, 0x16B3, 0x1836, 0x1985, 0x1A81, 0x1B0F, 0x1B4C, 0x1B6E, - 0x1B7A, 0x1B71, 0x1B57, 0x1B30, 0x1AFF, 0x1AC8, 0x1A8D, 0x1A52, - 0x1A1A, 0x19E9, 0x19C1, 0x19A7, 0x199E, 0x19A1, 0x19AB, 0x19BB, - 0x19CF, 0x19E8, 0x1A04, 0x1A22, 0x1A41, 0x1A61, 0x1A81, 0x1A9F, - 0x1ABB, 0x1AD4, 0x1AE9, 0x1AFA, 0x1B04, 0x1B09, 0x11B4, 0x11B3, - 0x11B0, 0x11AB, 0x11A5, 0x119E, 0x1197, 0x118F, 0x1182, 0x116D, - 0x1158, 0x1149, 0x1144, 0x1151, 0x116D, 0x1190, 0x11B9, 0x11E6, - 0x1216, 0x1248, 0x127A, 0x12AB, 0x12DA, 0x1306, 0x132C, 0x134D, - 0x1365, 0x1375, 0x137A, 0x1374, 0x1364, 0x134B, 0x132B, 0x1304, - 0x12D9, 0x12AA, 0x127A, 0x1248, 0x1217, 0x11E8, 0x11BD, 0x1196, - 0x1175, 0x115C, 0x114B, 0x1144, 0xC211, 0xC17D, 0xBFF2, 0xBDB9, - 0xBB1C, 0xB864, 0xB5DC, 0xB3CD, 0xB21A, 0xB081, 0xAF0F, 0xADD0, - 0xACD1, 0xAC20, 0xABA1, 0xAB30, 0xAACC, 0xAA74, 0xAA27, 0xA9E5, - 0xA9AD, 0xA97F, 0xA959, 0xA93B, 0xA924, 0xA914, 0xA909, 0xA904, - 0xA903, 0xA90C, 0xA924, 0xA949, 0xA979, 0xA9B2, 0xA9F2, 0xAA36, - 0xAA7E, 0xAAC7, 0xAB0E, 0xAB53, 0xAB93, 0xABCC, 0xABFC, 0xAC21, - 0xAC3A, 0xAC44, 0xFBE6, 0xFCFF, 0xFDC8, 0xFCCA, 0xFC9E, 0xFE2A, - 0x0077, 0x01DC, 0x0202, 0x01C5, 0x014C, 0x00BE, 0x0044, 0x0003, - 0xFFEF, 0xFFE1, 0xFFD7, 0xFFD1, 0xFFCF, 0xFFD1, 0xFFD4, 0xFFDA, - 0xFFE0, 0xFFE8, 0xFFEF, 0xFFF6, 0xFFFB, 0xFFFF, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0006, 0x0087, 0x0073, 0x0065, 0x0063, 0x0078, 0x0097, 0x00A1, - 0x008E, 0x0070, 0x004D, 0x002B, 0x000F, 0x0000, 0xFFFA, 0xFFF5, - 0xFFF1, 0xFFF0, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF3, 0xFFF5, 0xFFF8, - 0xFFFA, 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBEBF, 0xBE5D, - 0xBCF8, 0xBCC4, 0xBD85, 0xC036, 0xC3B6, 0xC58D, 0xC545, 0xC43F, - 0xC2CF, 0xC147, 0xBFF9, 0xBF39, 0xBEE4, 0xBE9E, 0xBE66, 0xBE3B, - 0xBE1A, 0xBE04, 0xBDF5, 0xBDEE, 0xBDEC, 0xBDEE, 0xBDF4, 0xBDFA, - 0xBE00, 0xBE05, 0xBE07, 0xBE0B, 0xBE14, 0xBE21, 0xBE33, 0xBE49, - 0xBE60, 0xBE7A, 0xBE95, 0xBEB1, 0xBECC, 0xBEE5, 0xBEFE, 0xBF13, - 0xBF25, 0xBF33, 0xBF3D, 0xBF40, 0x2DE0, 0x24FF, 0x2066, 0x1FE1, - 0x1E77, 0x1A9C, 0x1619, 0x145C, 0x1602, 0x18F9, 0x1C9E, 0x204F, - 0x236B, 0x2550, 0x2650, 0x272E, 0x27EB, 0x2889, 0x290D, 0x2977, - 0x29CC, 0x2A0C, 0x2A3C, 0x2A5D, 0x2A72, 0x2A7E, 0x2A83, 0x2A83, - 0x2A83, 0x2A75, 0x2A4E, 0x2A12, 0x29C5, 0x2969, 0x2901, 0x2891, - 0x281C, 0x27A6, 0x2731, 0x26C0, 0x2658, 0x25FB, 0x25AC, 0x256F, - 0x2547, 0x2537, 0xF747, 0xF683, 0xF581, 0xF4CD, 0xF2F4, 0xEF40, - 0xEAAE, 0xE6A6, 0xE33F, 0xDFCA, 0xDC85, 0xD9AC, 0xD77E, 0xD638, - 0xD598, 0xD52B, 0xD4ED, 0xD4D7, 0xD4E3, 0xD50B, 0xD548, 0xD596, - 0xD5ED, 0xD648, 0xD69F, 0xD6EF, 0xD72F, 0xD75A, 0xD76A, 0xD768, - 0xD760, 0xD754, 0xD744, 0xD730, 0xD71A, 0xD702, 0xD6E9, 0xD6D0, - 0xD6B7, 0xD69F, 0xD688, 0xD674, 0xD663, 0xD656, 0xD64E, 0xD64A, - 0x0574, 0x04A9, 0x02CE, 0x0174, 0x0002, 0xFEB9, 0xFD7E, 0xFBB3, - 0xF916, 0xF607, 0xF2DE, 0xEFF0, 0xED92, 0xEC1C, 0xEB49, 0xEA9C, - 0xEA12, 0xE9A6, 0xE956, 0xE91E, 0xE8FA, 0xE8E7, 0xE8E2, 0xE8E8, - 0xE8F4, 0xE904, 0xE914, 0xE920, 0xE926, 0xE92E, 0xE945, 0xE969, - 0xE996, 0xE9CD, 0xEA09, 0xEA4B, 0xEA8F, 0xEAD5, 0xEB19, 0xEB5B, - 0xEB98, 0xEBCE, 0xEBFC, 0xEC20, 0xEC37, 0xEC41, 0x963F, 0x95ED, - 0x9F95, 0xA1FF, 0xA50A, 0xA9B9, 0xAEA3, 0xB1F4, 0xB38B, 0xB494, - 0xB52F, 0xB57B, 0xB599, 0xB5A8, 0xB5B0, 0xB5A6, 0xB58D, 0xB567, - 0xB538, 0xB500, 0xB4C4, 0xB485, 0xB446, 0xB40A, 0xB3D3, 0xB3A4, - 0xB37F, 0xB367, 0xB35E, 0xB364, 0xB373, 0xB38C, 0xB3AD, 0xB3D4, - 0xB400, 0xB430, 0xB462, 0xB494, 0xB4C6, 0xB4F6, 0xB523, 0xB54A, - 0xB56C, 0xB586, 0xB597, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, - 0x8001, 0x8001, 0x4171, 0xBF5F, 0xD424, 0xD6F4, 0xD506, 0xD25C, - 0xD21F, 0xD6B6, 0xDDE1, 0xE3CD, 0xE6BC, 0xE874, 0xEA0A, 0xEB98, - 0xED21, 0xEEA5, 0xF025, 0xF1A3, 0xF320, 0xF49C, 0xF619, 0xF797, - 0xF919, 0xFA9F, 0xFC6B, 0xFE04, 0xFE54, 0xFD4C, 0xFBBC, 0xF9DA, - 0xF7DA, 0xF5F4, 0xF45B, 0xF347, 0xF2EC, 0xF335, 0xF3DB, 0xF4CE, - 0xF5FD, 0xF755, 0xF8C7, 0xFA40, 0xFBB1, 0xFD07, 0xFE31, 0xFF1F, - 0xFFBF, 0x0000, 0xFE60, 0xF552, 0xF4E9, 0xF62A, 0xF7E7, 0xFA56, - 0xFD61, 0xFF69, 0xFE9B, 0xFD62, 0xFD93, 0xFDD4, 0xFE22, 0xFE7C, - 0xFEDE, 0xFF45, 0xFFB1, 0x001C, 0x0086, 0x00EC, 0x014B, 0x01A1, - 0x01BD, 0x01B1, 0x01DA, 0x0254, 0x02F3, 0x03A5, 0x0459, 0x04FE, - 0x0583, 0x05D6, 0x05E7, 0x05BB, 0x0568, 0x04F6, 0x046C, 0x03D0, - 0x032B, 0x0284, 0x01E2, 0x014C, 0x00C9, 0x0062, 0x001C, 0x0000, - 0xF240, 0xECAF, 0xEDCA, 0xF018, 0xF19C, 0xF144, 0xF02B, 0xEF8C, - 0xF029, 0xF1CB, 0xF3EC, 0xF620, 0xF865, 0xFAB6, 0xFD11, 0xFF70, - 0x01D0, 0x042E, 0x0686, 0x08D4, 0x0B15, 0x0D43, 0x0EEB, 0x0FD7, - 0x1064, 0x10F7, 0x11A5, 0x1257, 0x12F4, 0x1364, 0x138D, 0x1358, - 0x12AD, 0x1182, 0x0FEF, 0x0E09, 0x0BE8, 0x09A0, 0x0748, 0x04F7, - 0x02C1, 0x00BE, 0xFF04, 0xFDA8, 0xFCC0, 0xFC63, 0x0DF1, 0x0B9C, - 0x107A, 0x1676, 0x1902, 0x1430, 0x0BE1, 0x0740, 0x0F1D, 0x16CA, - 0x15AD, 0x13F2, 0x11B9, 0x0F23, 0x0C50, 0x095F, 0x0671, 0x03A5, - 0x011D, 0xFEF8, 0xFD55, 0xFC56, 0xFBC4, 0xFB55, 0xFB06, 0xFAD4, - 0xFABD, 0xFABE, 0xFAD5, 0xFB00, 0xFB3B, 0xFB85, 0xFBDA, 0xFC39, - 0xFC9F, 0xFD0A, 0xFD76, 0xFDE2, 0xFE4B, 0xFEAE, 0xFF09, 0xFF59, - 0xFF9D, 0xFFD1, 0xFFF3, 0x0000, 0xEA6B, 0xED4A, 0xF237, 0xF75D, - 0xFA52, 0xF946, 0xF61D, 0xF3FD, 0xF545, 0xF740, 0xF81C, 0xF900, - 0xF9E6, 0xFACC, 0xFBAD, 0xFC85, 0xFD51, 0xFE0B, 0xFEB2, 0xFF3F, - 0xFFB0, 0x0000, 0x0039, 0x0069, 0x0090, 0x00AE, 0x00C5, 0x00D4, - 0x00DD, 0x00E0, 0x00DD, 0x00D6, 0x00CC, 0x00BD, 0x00AD, 0x009A, - 0x0086, 0x0071, 0x005C, 0x0048, 0x0035, 0x0024, 0x0015, 0x000A, - 0x0003, 0x0000, 0x0FCD, 0x1311, 0x1A2B, 0x21C3, 0x2657, 0x25E9, - 0x229B, 0x1F19, 0x1ACC, 0x1742, 0x161F, 0x1510, 0x1415, 0x132E, - 0x1259, 0x1196, 0x10E3, 0x103F, 0x0FAA, 0x0F22, 0x0EA7, 0x0E38, - 0x0DCF, 0x0D69, 0x0D06, 0x0CA6, 0x0C49, 0x0BEF, 0x0B99, 0x0B46, - 0x0AF7, 0x0AAC, 0x0A65, 0x0A22, 0x09E4, 0x09AA, 0x0975, 0x0945, - 0x0919, 0x08F3, 0x08D2, 0x08B7, 0x08A1, 0x0891, 0x0887, 0x0884, - 0x192A, 0x1588, 0x13B7, 0x11EC, 0x1028, 0x0E6A, 0x0CB4, 0x0B05, - 0x095D, 0x07BD, 0x060C, 0x0441, 0x0276, 0x00C5, 0xFF47, 0xFE13, - 0xFD44, 0xFCE8, 0xFCEB, 0xFD37, 0xFDB0, 0xFE40, 0xFECC, 0xFF3C, - 0xFF78, 0xFF8F, 0xFFA4, 0xFFB5, 0xFFC3, 0xFFCE, 0xFFD8, 0xFFDF, - 0xFFE5, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, 0xFFEF, 0xFFF0, 0xFFF1, - 0xFFF2, 0xFFF4, 0xFFF7, 0xFFFB, 0x0000, 0x0000, 0x0456, 0xFED9, - 0xFE8B, 0xFE7F, 0xFEA4, 0xFEEA, 0xFF41, 0xFF97, 0xFFDD, 0x0000, - 0x0005, 0xFFFE, 0xFFED, 0xFFD8, 0xFFC2, 0xFFB1, 0xFFA8, 0xFFA8, - 0xFFAB, 0xFFB2, 0xFFBB, 0xFFC4, 0xFFCD, 0xFFD5, 0xFFDA, 0xFFDD, - 0xFFE0, 0xFFE2, 0xFFE5, 0xFFE7, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, - 0xFFF0, 0xFFF2, 0xFFF4, 0xFFF5, 0xFFF7, 0xFFF8, 0xFFFA, 0xFFFB, - 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x514E, 0x582E, 0x55E9, 0x52EB, - 0x4F73, 0x4BC4, 0x4820, 0x44C7, 0x41FC, 0x3FFF, 0x3EFA, 0x3EC3, - 0x3F1F, 0x3FD1, 0x409E, 0x414B, 0x419D, 0x41A2, 0x4196, 0x417D, - 0x415C, 0x4137, 0x4112, 0x40F3, 0x40DE, 0x40CF, 0x40C0, 0x40B1, - 0x40A2, 0x4094, 0x4085, 0x4077, 0x406A, 0x405D, 0x4050, 0x4044, - 0x4039, 0x402E, 0x4025, 0x401C, 0x4014, 0x400D, 0x4007, 0x4002, - 0x3FFF, 0x409D, + 0x0000, 0x00AA, 0x00AA, 0x00A1, 0x008E, 0x007A, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0074, 0x007B, 0x0086, 0x0093, 0x00A0, + 0x00AD, 0x00B8, 0x00BF, 0x00C2, 0x00C1, 0x00BD, 0x00B9, 0x00B3, 0x00AF, + 0x00AB, 0x00AA, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x409D, + 0xFFFF, 0xFFFF, 0xFEC7, 0xFC19, 0xF96A, 0xF832, 0xF832, 0xF832, 0xF832, + 0xF832, 0xF832, 0xF832, 0xF832, 0xF832, 0xF97D, 0xFCE5, 0x01B7, 0x073C, + 0x0CC1, 0x1192, 0x14FA, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, + 0x1645, 0x1645, 0x1645, 0x1581, 0x1375, 0x107F, 0x0CFC, 0x0949, 0x05C6, + 0x02CF, 0x00C4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0154, 0x043F, 0x072A, 0x087E, 0x087E, 0x087E, + 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x06D4, 0x0270, 0xFC39, + 0xF51B, 0xEDFE, 0xE7C8, 0xE364, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, + 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE2C3, 0xE58C, 0xE993, 0xEE59, 0xF360, + 0xF826, 0xFC2D, 0xFEF5, 0x0000, 0x0884, 0x0884, 0x0D77, 0x185B, 0x2340, + 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, + 0x27CC, 0x26BE, 0x2540, 0x238A, 0x21D4, 0x2056, 0x1F47, 0x1EE1, 0x1EE1, + 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1DED, 0x1B60, + 0x17AE, 0x134D, 0x0EB1, 0x0A4F, 0x069E, 0x0410, 0x031D, 0x0369, 0x042F, + 0x053D, 0x0664, 0x0772, 0x0837, 0x0884, 0xFFFF, 0xFFFF, 0xFF49, 0xFDB9, + 0xFC29, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, + 0xFB73, 0xFBA5, 0xFC27, 0xFCDF, 0xFDB3, 0xFE86, 0xFF3F, 0xFFC1, 0xFFF3, + 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, + 0xFFF4, 0xFFF6, 0xFFF8, 0xFFFA, 0xFFFC, 0xFFFD, 0xFFFF, 0x0000, 0x0000, + 0x0052, 0x0105, 0x01B9, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, + 0x020B, 0x020B, 0x020B, 0x0226, 0x026D, 0x02D2, 0x0346, 0x03BA, 0x041E, + 0x0466, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, + 0x0481, 0x0459, 0x03EF, 0x0356, 0x02A0, 0x01E1, 0x012B, 0x0091, 0x0027, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFC62, + 0xFC62, 0xFDCF, 0x00F3, 0x0416, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, + 0x0583, 0x0583, 0x0583, 0x0583, 0x056B, 0x052D, 0x04D6, 0x0472, 0x040E, + 0x03B6, 0x0378, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, + 0x0361, 0x0361, 0x034D, 0x0314, 0x02BC, 0x024A, 0x01C3, 0x012C, 0x008A, + 0xFFE3, 0xFF3C, 0xFE9A, 0xFE02, 0xFD7B, 0xFD08, 0xFCAF, 0xFC76, 0xFC62, + 0x0001, 0xFFFE, 0xC170, 0xFB1E, 0xFB1E, 0x0218, 0x1189, 0x2138, 0x28EF, + 0x29A0, 0x29E2, 0x29EB, 0x29D1, 0x2992, 0x2948, 0x2909, 0x28EF, 0x28EF, + 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x2683, 0x2205, + 0x1F9A, 0x2093, 0x22E3, 0x25A6, 0x27F6, 0x28EF, 0x2828, 0x2601, 0x22BE, + 0x1EA5, 0x19FB, 0x1504, 0x1005, 0x0B43, 0x0703, 0x037C, 0x00AB, 0xFE80, + 0xFCED, 0xFBE1, 0xFB4C, 0xFB1E, 0xD2DC, 0xD2DC, 0xD58B, 0xDB70, 0xE156, + 0xE405, 0xE18C, 0xDCF5, 0xDA7C, 0xDB7A, 0xDDD7, 0xE0AA, 0xE307, 0xE405, + 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE281, + 0xDFB1, 0xDE2E, 0xDEC9, 0xE03C, 0xE1F7, 0xE369, 0xE405, 0xE3E4, 0xE384, + 0xE2E9, 0xE219, 0xE117, 0xDFE8, 0xDE91, 0xDD15, 0xDB7A, 0xD9C7, 0xD813, + 0xD675, 0xD508, 0xD3E4, 0xD322, 0xD2DC, 0xD4B1, 0xD4B1, 0xCA11, 0xB2B1, + 0x9B50, 0x90B0, 0x9136, 0x922F, 0x92B5, 0x927F, 0x91FF, 0x9166, 0x90E6, + 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, + 0x93C4, 0x997C, 0x9C90, 0x9B54, 0x9862, 0x94DE, 0x91EC, 0x90B0, 0x923F, + 0x9680, 0x9CD1, 0xA490, 0xAD1B, 0xB5D0, 0xBE0D, 0xC530, 0xCA98, 0xCE55, + 0xD103, 0xD2CF, 0xD3E6, 0xD475, 0xD4AA, 0xD4B1, 0x0000, 0x0000, 0x0071, + 0x0169, 0x0261, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, + 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, + 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, + 0x02E2, 0x030F, 0x0350, 0x039D, 0x03ED, 0x043A, 0x047B, 0x04A8, 0x04B8, + 0x0476, 0x03C9, 0x02DD, 0x01DC, 0x00F0, 0x0043, 0x0000, 0xFFFF, 0xFFFF, + 0x001C, 0x005A, 0x0098, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, + 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, + 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, + 0x00B4, 0x008D, 0x0024, 0xFF8C, 0xFED8, 0xFE1A, 0xFD66, 0xFCCF, 0xFC66, + 0xFC3F, 0xFC74, 0xFCFD, 0xFDB9, 0xFE85, 0xFF41, 0xFFCA, 0xFFFF, 0xCA50, + 0xCA50, 0xCB34, 0xCD2A, 0xCF1F, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, + 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, + 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, + 0xD003, 0xD003, 0xCFFF, 0xCFF2, 0xCFDA, 0xCFB3, 0xCF7E, 0xCF36, 0xCEDB, + 0xCE6A, 0xCDE1, 0xCD40, 0xCC93, 0xCBE7, 0xCB49, 0xCAC8, 0xCA70, 0xCA50, + 0x0000, 0x0000, 0xFFAF, 0xFF00, 0xFE51, 0xFE01, 0xFE01, 0xFE01, 0xFE01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, + 0xFE01, 0xFE01, 0xFE01, 0xFE12, 0xFE41, 0xFE85, 0xFED6, 0xFF2A, 0xFF7B, + 0xFFBF, 0xFFEE, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xF97A, 0xF97A, 0xF924, 0xF866, 0xF7A9, 0xF753, 0xF753, 0xF753, 0xF753, + 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, + 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, + 0xF753, 0xF753, 0xF753, 0xF765, 0xF798, 0xF7E2, 0xF839, 0xF894, 0xF8EB, + 0xF934, 0xF967, 0xF97A, 0xED8B, 0xED8B, 0xECB6, 0xEAE2, 0xE90E, 0xE839, + 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, + 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, + 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE868, 0xE8E5, 0xE99A, + 0xEA71, 0xEB53, 0xEC2A, 0xECDF, 0xED5C, 0xED8B, 0x0001, 0xFFFE, 0xC170, + 0x054D, 0x054D, 0x032E, 0xFE82, 0xF9D8, 0xF7B9, 0xF8D5, 0xFAE6, 0xFC03, + 0xFB91, 0xFA80, 0xF93B, 0xF82B, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, + 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xFCB4, 0x05F5, 0x0AF0, 0x08F0, 0x042D, + 0xFE7C, 0xF9B8, 0xF7B9, 0xF7D7, 0xF82D, 0xF8B5, 0xF96B, 0xFA49, 0xFB48, + 0xFC65, 0xFD98, 0xFEDD, 0x002D, 0x0177, 0x02AB, 0x03B8, 0x048E, 0x051A, + 0x054D, 0x2BD7, 0x2BD7, 0x2A4B, 0x26E4, 0x237D, 0x21F1, 0x23B6, 0x26FF, + 0x28C5, 0x280F, 0x265D, 0x2458, 0x22A6, 0x21F1, 0x21F1, 0x21F1, 0x21F1, + 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F4, 0x21F9, 0x21FC, 0x21FB, + 0x21F8, 0x21F5, 0x21F2, 0x21F1, 0x21F7, 0x220D, 0x2237, 0x2278, 0x22D4, + 0x234F, 0x23ED, 0x24B0, 0x259F, 0x26B6, 0x27E4, 0x2911, 0x2A24, 0x2B06, + 0x2B9F, 0x2BD7, 0xCCF9, 0xCCF9, 0xC665, 0xB7EA, 0xA970, 0xA2DB, 0xA334, + 0xA3D8, 0xA431, 0xA40D, 0xA3B9, 0xA354, 0xA2FF, 0xA2DB, 0xA2DB, 0xA2DB, + 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA5CB, 0xAB40, 0xAE30, + 0xAD02, 0xAA33, 0xA6D8, 0xA409, 0xA2DB, 0xA3E3, 0xA6AF, 0xAAD1, 0xAFDB, + 0xB55F, 0xBAED, 0xC019, 0xC472, 0xC78B, 0xC98E, 0xCAFE, 0xCBF6, 0xCC8C, + 0xCCD9, 0xCCF5, 0xCCF9, 0x0000, 0x0000, 0xFF06, 0xFCE2, 0xFABE, 0xF9C5, + 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, + 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, + 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C6, 0xF9C9, + 0xF9CF, 0xF9D8, 0xF9E6, 0xF9FA, 0xFA14, 0xFA35, 0xFAA3, 0xFB81, 0xFCA1, + 0xFDD3, 0xFEE9, 0xFFB2, 0x0000, 0x0000, 0x0000, 0xFE9A, 0xFB88, 0xF875, + 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, + 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, + 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF77B, 0xF898, + 0xFA36, 0xFC20, 0xFE24, 0x000F, 0x01AC, 0x02CA, 0x0334, 0x0307, 0x0292, + 0x01F1, 0x0143, 0x00A3, 0x002D, 0x0000, 0xC7DA, 0xC7DA, 0xC7DC, 0xC7E0, + 0xC7E4, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, + 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, + 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7FB, + 0xC832, 0xC882, 0xC8E1, 0xC944, 0xC9A3, 0xC9F3, 0xCA2B, 0xCA3F, 0xCA1D, + 0xC9C6, 0xC94E, 0xC8CB, 0xC854, 0xC7FC, 0xC7DA, 0x0000, 0x0000, 0xFEA3, + 0xFBA5, 0xF8A7, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, + 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, + 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, + 0xF797, 0xF864, 0xF98C, 0xFAEC, 0xFC5E, 0xFDBD, 0xFEE6, 0xFFB3, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFE96, 0xFB7B, 0xF860, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, + 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, + 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, + 0xF6F6, 0xF746, 0xF81A, 0xF94E, 0xFABB, 0xFC3B, 0xFDA7, 0xFEDB, 0xFFB0, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xF549, + 0xF549, 0xF471, 0xF294, 0xF0B8, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, + 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, + 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, + 0xEFE0, 0xEFE0, 0xF00F, 0xF08E, 0xF147, 0xF221, 0xF307, 0xF3E2, 0xF49A, + 0xF51A, 0xF549, 0xFFFF, 0xFFFF, 0xBF5E, 0xE4F6, 0xE4F6, 0xE4F6, 0xE4F7, + 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, + 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, + 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, + 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F6, 0xEEBB, 0xAC43, 0xAC43, 0xA599, 0x96EE, + 0x8843, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, + 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, + 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x830F, + 0x86FB, 0x8CA8, 0x9363, 0x9A78, 0xA134, 0xA6E1, 0xAACD, 0xAC43, 0x0000, + 0x0000, 0xFC6D, 0xF494, 0xECBA, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, + 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, + 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, + 0xE928, 0xE928, 0xE9F1, 0xEC0A, 0xEF14, 0xF2AE, 0xF679, 0xFA13, 0xFD1D, + 0xFF36, 0x0000, 0xFFFF, 0xFFFF, 0xFC79, 0xF4B8, 0xECF7, 0xE970, 0xE970, + 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, + 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, + 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xEA37, 0xEC49, 0xEF4A, 0xF2D9, + 0xF697, 0xFA26, 0xFD26, 0xFF39, 0xFFFF, 0x2537, 0x2537, 0x2BB7, 0x3A06, + 0x4854, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, + 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, + 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4D67, + 0x4994, 0x440A, 0x3D7A, 0x3692, 0x3001, 0x2A77, 0x26A4, 0x2537, 0x049D, + 0x049D, 0x04F6, 0x05BA, 0x067E, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, + 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, + 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, + 0x06D7, 0x06D7, 0x070F, 0x07A4, 0x087B, 0x097A, 0x0A87, 0x0B86, 0x0C5D, + 0x0CF2, 0x0D2A, 0x0CB0, 0x0B78, 0x09CC, 0x07FA, 0x064F, 0x0516, 0x049D, + 0xFE84, 0xFE84, 0xFE5E, 0xFE0A, 0xFDB6, 0xFD90, 0xFD90, 0xFD90, 0xFD90, + 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, + 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, + 0xFD90, 0xFD90, 0xFD90, 0xFD70, 0xFD1B, 0xFC9F, 0xFC0D, 0xFB73, 0xFAE0, + 0xFA65, 0xFA0F, 0xF9EF, 0xFA30, 0xFAD8, 0xFBBD, 0xFCB6, 0xFD9C, 0xFE43, + 0xFE84, 0xC460, 0xC460, 0xC4C4, 0xC59F, 0xC67B, 0xC6DF, 0xC6DF, 0xC6DF, + 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, + 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, + 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC71E, 0xC7C6, 0xC8BA, 0xC9DC, 0xCB0C, + 0xCC2E, 0xCD22, 0xCDCB, 0xCE0A, 0xCD81, 0xCC1F, 0xCA3C, 0xC82D, 0xC64A, + 0xC4E9, 0xC460, 0xFFFF, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x1B09, 0x1B09, + 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, + 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, + 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, + 0x1B0A, 0x1B0A, 0x1B09, 0x1144, 0x1144, 0x1144, 0x1144, 0x1143, 0x1143, + 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, + 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, + 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1144, + 0xAC43, 0xAC43, 0xA599, 0x96EE, 0x8844, 0x8199, 0x8199, 0x8199, 0x8199, + 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, + 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, + 0x8199, 0x8199, 0x8199, 0x8310, 0x86FC, 0x8CA9, 0x9364, 0x9A79, 0xA134, + 0xA6E1, 0xAACD, 0xAC43, 0xFFFF, 0xFFFF, 0x02EE, 0x095E, 0x0FCF, 0x12BD, + 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, + 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, + 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x1218, 0x1060, 0x0DE1, + 0x0AED, 0x07D0, 0x04DC, 0x025D, 0x00A5, 0xFFFF, 0xFFFF, 0xFFFF, 0x040E, + 0x0CFA, 0x15E6, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, + 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, + 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, + 0x1911, 0x16AE, 0x133A, 0x0F22, 0x0AD3, 0x06BB, 0x0347, 0x00E4, 0xFFFF, + 0x1E4A, 0x1E4A, 0x24BB, 0x32E8, 0x4115, 0x4787, 0x4787, 0x4787, 0x4787, + 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, + 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, + 0x4787, 0x4787, 0x4787, 0x461D, 0x4253, 0x3CD6, 0x3655, 0x2F7C, 0x28FB, + 0x237E, 0x1FB4, 0x1E4A, 0x0000, 0x0000, 0xFFA5, 0xFEDE, 0xFE17, 0xFDBC, + 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, + 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, + 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFD84, 0xFCEE, 0xFC14, + 0xFB11, 0xFA01, 0xF8FF, 0xF825, 0xF78E, 0xF756, 0xF7D1, 0xF90E, 0xFABF, + 0xFC97, 0xFE48, 0xFF84, 0x0000, 0xFF2F, 0xFF2F, 0xFF52, 0xFF9E, 0xFFEB, + 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, + 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, + 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x002D, 0x007E, + 0x00F3, 0x017E, 0x0210, 0x029B, 0x0310, 0x0361, 0x037F, 0x0342, 0x02A4, + 0x01CD, 0x00E2, 0x000B, 0xFF6C, 0xFF2F, 0xC9D7, 0xC9D7, 0xCA40, 0xCB27, + 0xCC0E, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, + 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, + 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCCB9, + 0xCD6B, 0xCE6C, 0xCF9D, 0xD0DE, 0xD20E, 0xD310, 0xD3C1, 0xD403, 0xD373, + 0xD1FF, 0xD002, 0xCDD8, 0xCBDC, 0xCA67, 0xC9D7, }; diff --git a/assets/anims/anim_36.inc.c.rej b/assets/anims/anim_36.inc.c.rej new file mode 100644 index 00000000..71b0099d --- /dev/null +++ b/assets/anims/anim_36.inc.c.rej @@ -0,0 +1,479 @@ +diff a/assets/anims/anim_36.inc.c b/assets/anims/anim_36.inc.c (rejected hunks) +@@ -12,260 +12,225 @@ static const struct Animation anim_36[] = { + + + static const u16 anim_36_indices[] = { +- 0x002E, 0x0001, 0x002E, 0x002F, 0x002E, 0x005D, 0x0001, 0x0000, 0x0001, 0x008B, 0x0001, 0x0000, +- 0x002E, 0x06B0, 0x002E, 0x06DE, 0x002E, 0x070C, +- 0x002E, 0x0626, 0x002E, 0x0654, 0x002E, 0x0682, +- 0x002E, 0x059C, 0x002E, 0x05CA, 0x002E, 0x05F8, +- 0x0001, 0x0598, 0x0001, 0x0599, 0x0001, 0x059A, +- 0x002E, 0x0144, 0x002E, 0x0172, 0x002E, 0x01A0, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0116, +- 0x002E, 0x008C, 0x002E, 0x00BA, 0x002E, 0x00E8, +- 0x0001, 0x0594, 0x0001, 0x0595, 0x0001, 0x0596, +- 0x002E, 0x0286, 0x002E, 0x02B4, 0x002E, 0x02E2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0258, +- 0x002E, 0x01CE, 0x002E, 0x01FC, 0x002E, 0x022A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0597, +- 0x002E, 0x050A, 0x002E, 0x0538, 0x002E, 0x0566, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x04DC, +- 0x002E, 0x0452, 0x002E, 0x0480, 0x002E, 0x04AE, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x059B, +- 0x002E, 0x03C8, 0x002E, 0x03F6, 0x002E, 0x0424, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x039A, +- 0x002E, 0x0310, 0x002E, 0x033E, 0x002E, 0x036C, ++ 0x0001, 0x0000, 0x002E, 0x0001, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, ++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, ++ 0x002E, 0x0036, 0x0027, 0x0064, 0x002E, 0x008B, 0x0026, 0x00B9, 0x002E, ++ 0x00DF, 0x002E, 0x010D, 0x0001, 0x013B, 0x0001, 0x013C, 0x0001, 0x013D, ++ 0x002E, 0x013E, 0x002E, 0x016C, 0x002E, 0x019A, 0x002E, 0x01C8, 0x002E, ++ 0x01F6, 0x002E, 0x0224, 0x002D, 0x0252, 0x0027, 0x027F, 0x0027, 0x02A6, ++ 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, 0x002E, 0x02D0, 0x002E, ++ 0x02FE, 0x002E, 0x032C, 0x002E, 0x035A, 0x002E, 0x0388, 0x002E, 0x03B6, ++ 0x002E, 0x03E4, 0x002E, 0x0412, 0x0027, 0x0440, 0x0001, 0x0467, 0x0001, ++ 0x0468, 0x0001, 0x0469, 0x0023, 0x046A, 0x0001, 0x048D, 0x0027, 0x048E, ++ 0x0027, 0x04B5, 0x0027, 0x04DC, 0x0027, 0x0503, 0x002E, 0x052A, 0x002E, ++ 0x0558, 0x002E, 0x0586, 0x0001, 0x05B4, 0x0001, 0x05B5, 0x0001, 0x05B6, ++ 0x0022, 0x05B7, 0x0021, 0x05D9, 0x0027, 0x05FA, 0x0027, 0x0621, 0x0027, ++ 0x0648, 0x0027, 0x066F, 0x002E, 0x0696, 0x002E, 0x06C4, 0x002E, 0x06F2, + }; + + static const s16 anim_36_values[] = { +- 0x0000, 0x0000, 0x000A, 0x000F, 0x0014, 0x0016, 0x0013, 0x000E, +- 0x0009, 0x0005, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094, +- 0x00A5, 0x00A9, 0x00AB, 0x00AD, 0x00B0, 0x00B4, 0x00B6, 0x00B7, +- 0x00B5, 0x00B2, 0x00AE, 0x00AB, 0x00A9, 0x00A8, 0x00A6, 0x00A5, +- 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A6, +- 0x00A6, 0x00A6, 0x00A6, 0x00A6, 0x00A7, 0x00A7, 0x00A7, 0x00A8, +- 0x00A8, 0x00A8, 0x00A8, 0x00A9, 0x00A9, 0x00A9, 0x00A9, 0x00A9, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x0016, 0x001E, 0x0022, +- 0x0025, 0x0026, 0x0022, 0x001D, 0x0017, 0x0013, 0x0010, 0x000E, +- 0x000C, 0x000B, 0x000A, 0x0009, 0x0007, 0x0006, 0x0006, 0x0005, +- 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x3FFF, 0x004D, 0x0000, 0xFE6E, 0xFCD2, +- 0xFB2E, 0xF984, 0xF7D2, 0xF61C, 0xF461, 0xF2A1, 0xF0DF, 0xEF1B, +- 0xED55, 0xEB8F, 0xE9C9, 0xE804, 0xE641, 0xE481, 0xE2C4, 0xE10C, +- 0xDF59, 0xDDAC, 0xDC06, 0xDA68, 0xD8D2, 0xD746, 0xD5C3, 0xD44C, +- 0xD2E1, 0xD182, 0xD031, 0xCEEE, 0xCDBA, 0xCCDA, 0xCCA2, 0xCD2D, +- 0xCE92, 0xD0EC, 0xD453, 0xD99A, 0xE0DA, 0xE915, 0xF14D, 0xF884, +- 0xFDBE, 0xFFFB, 0xF981, 0xF97C, 0xF961, 0xF945, 0xF929, 0xF90C, +- 0xF8EE, 0xF8CF, 0xF8B0, 0xF891, 0xF872, 0xF852, 0xF832, 0xF812, +- 0xF7F2, 0xF7D2, 0xF7B3, 0xF794, 0xF776, 0xF757, 0xF73A, 0xF71D, +- 0xF702, 0xF6E7, 0xF6CD, 0xF6B4, 0xF69D, 0xF686, 0xF672, 0xF65E, +- 0xF64C, 0xF63C, 0xF62E, 0xF635, 0xF65D, 0xF69E, 0xF6EB, 0xF73C, +- 0xF786, 0xF7D2, 0xF82C, 0xF88A, 0xF8E3, 0xF92F, 0xF965, 0xF97B, +- 0xED7E, 0xED8C, 0xEDD4, 0xEE1F, 0xEE6C, 0xEEBB, 0xEF0C, 0xEF5E, +- 0xEFB2, 0xF007, 0xF05D, 0xF0B3, 0xF109, 0xF160, 0xF1B6, 0xF20C, +- 0xF261, 0xF2B5, 0xF307, 0xF359, 0xF3A8, 0xF3F6, 0xF441, 0xF48A, +- 0xF4D0, 0xF513, 0xF553, 0xF58F, 0xF5C8, 0xF5FC, 0xF62D, 0xF658, +- 0xF67F, 0xF66D, 0xF5FE, 0xF550, 0xF47D, 0xF3A3, 0xF2DB, 0xF20D, +- 0xF11A, 0xF01C, 0xEF29, 0xEE5B, 0xEDCA, 0xED8C, 0xD886, 0xCFBD, +- 0xD6CC, 0xDCFD, 0xDC9C, 0xDC23, 0xDB93, 0xDAED, 0xDA35, 0xD96A, +- 0xD891, 0xD7A9, 0xD6B6, 0xD5B9, 0xD4B4, 0xD3A9, 0xD29A, 0xD188, +- 0xD076, 0xCF66, 0xCE59, 0xCD50, 0xCC50, 0xCB58, 0xCA6B, 0xC98A, +- 0xC8B9, 0xC7F7, 0xC749, 0xC6AE, 0xC62A, 0xC5BE, 0xC56C, 0xC63C, +- 0xC8B2, 0xCC09, 0xCF7C, 0xD246, 0xD3A2, 0xD36A, 0xD23B, 0xD06F, +- 0xCE63, 0xCC72, 0xCAF8, 0xCA51, 0x297C, 0xD708, 0xD3F0, 0xD72A, +- 0xDE4C, 0xE6E9, 0xEE98, 0xF2ED, 0xF17C, 0xEBEB, 0xE587, 0xDE66, +- 0xD69E, 0xCE45, 0xC571, 0xBC36, 0xB2AB, 0xA8E5, 0x9EFA, 0x9500, +- 0x8B0C, 0x8133, 0x778A, 0x6E2A, 0x6527, 0x5C96, 0x548E, 0x4D23, +- 0x466C, 0x407D, 0x3B6E, 0x3752, 0x3441, 0x37E8, 0x45D2, 0x5ADE, +- 0x73EB, 0x8DDA, 0xA584, 0xBFA8, 0xDBF9, 0xEFC7, 0xF854, 0xFB88, +- 0xFBB2, 0xFB1F, 0xD953, 0xD633, 0xD6AA, 0xD774, 0xD86E, 0xD973, +- 0xDA5E, 0xDB0C, 0xDB58, 0xDB62, 0xDB61, 0xDB57, 0xDB45, 0xDB2A, +- 0xDB09, 0xDAE3, 0xDAB7, 0xDA87, 0xDA53, 0xDA1D, 0xD9E6, 0xD9AE, +- 0xD976, 0xD93F, 0xD90A, 0xD8D8, 0xD8AA, 0xD87F, 0xD85B, 0xD83C, +- 0xD825, 0xD816, 0xD80F, 0xD84B, 0xD8E4, 0xD9A8, 0xDA69, 0xDAF7, +- 0xDB22, 0xDA5A, 0xD8C6, 0xD748, 0xD5F5, 0xD48B, 0xD365, 0xD2DD, +- 0xA46A, 0xFA3D, 0xFA43, 0xF39B, 0xE8C5, 0xDC43, 0xD093, 0xC836, +- 0xC5AD, 0xC737, 0xC964, 0xCC22, 0xCF63, 0xD318, 0xD731, 0xDBA0, +- 0xE055, 0xE541, 0xEA54, 0xEF81, 0xF4B7, 0xF9E7, 0xFF02, 0x03F9, +- 0x08BD, 0x0D3F, 0x116F, 0x153E, 0x189E, 0x1B7F, 0x1DD1, 0x1F86, +- 0x208E, 0x1D0E, 0x12E1, 0x0490, 0xF4A2, 0xE59E, 0xDA0B, 0xD41C, +- 0xD263, 0xD1F6, 0xD1F1, 0xD2E3, 0xD40D, 0xD4B2, 0x130F, 0x0305, +- 0xDEE8, 0xB8B6, 0xA270, 0xA290, 0xAEFB, 0xC0CD, 0xD122, 0xDF5C, +- 0xEEF7, 0xFF39, 0x0F63, 0x1EBD, 0x2C8A, 0x380E, 0x408D, 0x45BA, +- 0x4824, 0x485C, 0x46F0, 0x4470, 0x416B, 0x3E70, 0x3C0F, 0x3866, +- 0x32B2, 0x2D29, 0x2A05, 0x2B57, 0x2F5F, 0x329A, 0x3184, 0x2A2A, +- 0x1EC8, 0x121E, 0x06F0, 0x0000, 0xFD01, 0xFB93, 0xFB5C, 0xFC00, +- 0xFD24, 0xFE6D, 0xFF7F, 0xFFFF, 0x0CF7, 0x136D, 0x22C9, 0x3504, +- 0x4419, 0x50D6, 0x5D93, 0x6696, 0x6821, 0x62E8, 0x5AB0, 0x5058, +- 0x44BF, 0x38C4, 0x2D47, 0x2327, 0x1B44, 0x1554, 0x1068, 0x0C60, +- 0x091D, 0x067F, 0x0468, 0x02B9, 0x0152, 0x0199, 0x043B, 0x0806, +- 0x0BC8, 0x10D0, 0x176A, 0x1CDF, 0x1E78, 0x1AE4, 0x1401, 0x0BDC, +- 0x0481, 0x0000, 0xFE28, 0xFD47, 0xFD25, 0xFD8A, 0xFE3E, 0xFF08, +- 0xFFB1, 0x0000, 0xE4D2, 0xDB7F, 0xC620, 0xAE95, 0x9EC2, 0x98CC, +- 0x97A6, 0x9A60, 0xA00B, 0xA835, 0xB27E, 0xBE1B, 0xCA3D, 0xD61A, +- 0xE0E4, 0xE9CE, 0xF00C, 0xF37B, 0xF4CF, 0xF47B, 0xF2F0, 0xF0A2, +- 0xEE03, 0xEB86, 0xE99D, 0xE741, 0xE3DF, 0xE097, 0xDE8C, 0xDDCC, +- 0xDDC4, 0xDE97, 0xE06D, 0xE3DC, 0xE8B3, 0xEDE8, 0xF272, 0xF549, +- 0xF68D, 0xF727, 0xF73E, 0xF6F9, 0xF67E, 0xF5F3, 0xF580, 0xF54A, +- 0xEF32, 0xEF1B, 0xEED9, 0xEE71, 0xEDE8, 0xED43, 0xEC87, 0xEBB9, +- 0xEADE, 0xE9DA, 0xE896, 0xE720, 0xE586, 0xE3D4, 0xE219, 0xE062, +- 0xDEBD, 0xDD37, 0xDBDD, 0xDABD, 0xD9E5, 0xD962, 0xD942, 0xD992, +- 0xDA5F, 0xE00B, 0xEB90, 0xF7E5, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xFAB0, 0xF3EA, 0xEC2B, 0xE3EF, 0xDBB3, 0xD3F4, 0xCD2E, +- 0xC7DD, 0xC501, 0xC498, 0xC59C, 0xC70A, 0xC7DB, 0x5FA3, 0x6BA9, +- 0x84EF, 0x9B3D, 0x9E63, 0x74BF, 0x324B, 0x0B2C, 0x03F7, 0xFE5E, +- 0xFA37, 0xF759, 0xF59B, 0xF4D6, 0xF4DF, 0xF58E, 0xF6B9, 0xF839, +- 0xF9E4, 0xFB91, 0xFD16, 0xFE4C, 0xFF0A, 0xFF25, 0xFE76, 0xFC9E, +- 0xF9C0, 0xF678, 0xF364, 0xEFD4, 0xEBBD, 0xE8B1, 0xE83E, 0xEA1A, +- 0xECC9, 0xF016, 0xF3CD, 0xF7B7, 0xFBA2, 0xFF56, 0x02A0, 0x054B, +- 0x069B, 0x067F, 0x05CB, 0x054D, 0x2D84, 0x2F03, 0x3275, 0x3648, +- 0x38EA, 0x39E0, 0x39B3, 0x3854, 0x364B, 0x342B, 0x31F8, 0x2FB4, +- 0x2D61, 0x2B05, 0x28A0, 0x2636, 0x23CA, 0x215F, 0x1EF8, 0x1C97, +- 0x1A41, 0x17F7, 0x15BC, 0x1395, 0x1183, 0x0FB9, 0x0E75, 0x0DCB, +- 0x0DCE, 0x0EA1, 0x1030, 0x123B, 0x1481, 0x16F3, 0x199C, 0x1C68, +- 0x1F45, 0x221E, 0x24E0, 0x2777, 0x29D0, 0x2BD6, 0x2CE3, 0x2CCE, +- 0x2C3C, 0x2BD7, 0xF355, 0x0463, 0x28FF, 0x4B51, 0x5581, 0x2918, +- 0xDE72, 0xB1F7, 0xA9AF, 0xA341, 0x9E7B, 0x9B2B, 0x9920, 0x9829, +- 0x9816, 0x98B4, 0x99D2, 0x9B40, 0x9CCC, 0x9E45, 0x9F7A, 0xA039, +- 0xA052, 0x9F92, 0x9DCA, 0x98D1, 0x906F, 0x875C, 0x8050, 0x7A81, +- 0x7502, 0x7245, 0x74BE, 0x7BBD, 0x849E, 0x8EDA, 0x99F4, 0xA56B, +- 0xB0C1, 0xBB75, 0xC507, 0xCCF6, 0xD0F0, 0xD09D, 0xCE78, 0xCCFA, +- 0x000C, 0x000E, 0x0014, 0x001D, 0x0026, 0x002E, 0x0034, 0x0035, +- 0x0031, 0x0028, 0x001C, 0x000F, 0x0005, 0x0000, 0xFFFF, 0xFFFD, +- 0xFFFD, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0001, +- 0x0002, 0x0003, 0x0004, 0x0004, 0x0005, 0x0005, 0x0004, 0x0004, +- 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF33, 0xFF34, +- 0xFF34, 0xFF36, 0xFF37, 0xFF38, 0xFF38, 0xFF39, 0xFF38, 0xFF36, +- 0xFF34, 0xFF32, 0xFF31, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, +- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xC75E, 0xC6E1, 0xC5A0, 0xC3ED, +- 0xC218, 0xC073, 0xBF4E, 0xBEFB, 0xBFDB, 0xC1C3, 0xC435, 0xC6B1, +- 0xC8BA, 0xC9D0, 0xCA2F, 0xCA68, 0xCA82, 0xCA7F, 0xCA65, 0xCA37, +- 0xC9FC, 0xC9B6, 0xC96B, 0xC920, 0xC8D8, 0xC898, 0xC865, 0xC843, +- 0xC837, 0xC83B, 0xC847, 0xC859, 0xC871, 0xC88E, 0xC8AD, 0xC8D0, +- 0xC8F4, 0xC918, 0xC93C, 0xC95F, 0xC97F, 0xC99C, 0xC9B4, 0xC9C7, +- 0xC9D3, 0xC9D8, 0x4138, 0x417A, 0x420E, 0x42AD, 0x430B, 0x42E0, +- 0x41E3, 0x3FC9, 0x3B96, 0x3545, 0x2E03, 0x26FB, 0x215B, 0x1E4F, +- 0x1D2F, 0x1C83, 0x1C3B, 0x1C4B, 0x1CA3, 0x1D36, 0x1DF6, 0x1ED4, +- 0x1FC2, 0x20B3, 0x2197, 0x2261, 0x2303, 0x236F, 0x2395, 0x2388, +- 0x2362, 0x2327, 0x22D9, 0x227D, 0x2216, 0x21A6, 0x2131, 0x20BA, +- 0x2045, 0x1FD4, 0x1F6C, 0x1F0E, 0x1EBF, 0x1E82, 0x1E5A, 0x1E4A, +- 0x07B9, 0x0831, 0x0971, 0x0B40, 0x0D63, 0x0FA1, 0x11C0, 0x1386, +- 0x1519, 0x16B3, 0x1836, 0x1985, 0x1A81, 0x1B0F, 0x1B4C, 0x1B6E, +- 0x1B7A, 0x1B71, 0x1B57, 0x1B30, 0x1AFF, 0x1AC8, 0x1A8D, 0x1A52, +- 0x1A1A, 0x19E9, 0x19C1, 0x19A7, 0x199E, 0x19A1, 0x19AB, 0x19BB, +- 0x19CF, 0x19E8, 0x1A04, 0x1A22, 0x1A41, 0x1A61, 0x1A81, 0x1A9F, +- 0x1ABB, 0x1AD4, 0x1AE9, 0x1AFA, 0x1B04, 0x1B09, 0x11B4, 0x11B3, +- 0x11B0, 0x11AB, 0x11A5, 0x119E, 0x1197, 0x118F, 0x1182, 0x116D, +- 0x1158, 0x1149, 0x1144, 0x1151, 0x116D, 0x1190, 0x11B9, 0x11E6, +- 0x1216, 0x1248, 0x127A, 0x12AB, 0x12DA, 0x1306, 0x132C, 0x134D, +- 0x1365, 0x1375, 0x137A, 0x1374, 0x1364, 0x134B, 0x132B, 0x1304, +- 0x12D9, 0x12AA, 0x127A, 0x1248, 0x1217, 0x11E8, 0x11BD, 0x1196, +- 0x1175, 0x115C, 0x114B, 0x1144, 0xC211, 0xC17D, 0xBFF2, 0xBDB9, +- 0xBB1C, 0xB864, 0xB5DC, 0xB3CD, 0xB21A, 0xB081, 0xAF0F, 0xADD0, +- 0xACD1, 0xAC20, 0xABA1, 0xAB30, 0xAACC, 0xAA74, 0xAA27, 0xA9E5, +- 0xA9AD, 0xA97F, 0xA959, 0xA93B, 0xA924, 0xA914, 0xA909, 0xA904, +- 0xA903, 0xA90C, 0xA924, 0xA949, 0xA979, 0xA9B2, 0xA9F2, 0xAA36, +- 0xAA7E, 0xAAC7, 0xAB0E, 0xAB53, 0xAB93, 0xABCC, 0xABFC, 0xAC21, +- 0xAC3A, 0xAC44, 0xFBE6, 0xFCFF, 0xFDC8, 0xFCCA, 0xFC9E, 0xFE2A, +- 0x0077, 0x01DC, 0x0202, 0x01C5, 0x014C, 0x00BE, 0x0044, 0x0003, +- 0xFFEF, 0xFFE1, 0xFFD7, 0xFFD1, 0xFFCF, 0xFFD1, 0xFFD4, 0xFFDA, +- 0xFFE0, 0xFFE8, 0xFFEF, 0xFFF6, 0xFFFB, 0xFFFF, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0006, 0x0087, 0x0073, 0x0065, 0x0063, 0x0078, 0x0097, 0x00A1, +- 0x008E, 0x0070, 0x004D, 0x002B, 0x000F, 0x0000, 0xFFFA, 0xFFF5, +- 0xFFF1, 0xFFF0, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF3, 0xFFF5, 0xFFF8, +- 0xFFFA, 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBEBF, 0xBE5D, +- 0xBCF8, 0xBCC4, 0xBD85, 0xC036, 0xC3B6, 0xC58D, 0xC545, 0xC43F, +- 0xC2CF, 0xC147, 0xBFF9, 0xBF39, 0xBEE4, 0xBE9E, 0xBE66, 0xBE3B, +- 0xBE1A, 0xBE04, 0xBDF5, 0xBDEE, 0xBDEC, 0xBDEE, 0xBDF4, 0xBDFA, +- 0xBE00, 0xBE05, 0xBE07, 0xBE0B, 0xBE14, 0xBE21, 0xBE33, 0xBE49, +- 0xBE60, 0xBE7A, 0xBE95, 0xBEB1, 0xBECC, 0xBEE5, 0xBEFE, 0xBF13, +- 0xBF25, 0xBF33, 0xBF3D, 0xBF40, 0x2DE0, 0x24FF, 0x2066, 0x1FE1, +- 0x1E77, 0x1A9C, 0x1619, 0x145C, 0x1602, 0x18F9, 0x1C9E, 0x204F, +- 0x236B, 0x2550, 0x2650, 0x272E, 0x27EB, 0x2889, 0x290D, 0x2977, +- 0x29CC, 0x2A0C, 0x2A3C, 0x2A5D, 0x2A72, 0x2A7E, 0x2A83, 0x2A83, +- 0x2A83, 0x2A75, 0x2A4E, 0x2A12, 0x29C5, 0x2969, 0x2901, 0x2891, +- 0x281C, 0x27A6, 0x2731, 0x26C0, 0x2658, 0x25FB, 0x25AC, 0x256F, +- 0x2547, 0x2537, 0xF747, 0xF683, 0xF581, 0xF4CD, 0xF2F4, 0xEF40, +- 0xEAAE, 0xE6A6, 0xE33F, 0xDFCA, 0xDC85, 0xD9AC, 0xD77E, 0xD638, +- 0xD598, 0xD52B, 0xD4ED, 0xD4D7, 0xD4E3, 0xD50B, 0xD548, 0xD596, +- 0xD5ED, 0xD648, 0xD69F, 0xD6EF, 0xD72F, 0xD75A, 0xD76A, 0xD768, +- 0xD760, 0xD754, 0xD744, 0xD730, 0xD71A, 0xD702, 0xD6E9, 0xD6D0, +- 0xD6B7, 0xD69F, 0xD688, 0xD674, 0xD663, 0xD656, 0xD64E, 0xD64A, +- 0x0574, 0x04A9, 0x02CE, 0x0174, 0x0002, 0xFEB9, 0xFD7E, 0xFBB3, +- 0xF916, 0xF607, 0xF2DE, 0xEFF0, 0xED92, 0xEC1C, 0xEB49, 0xEA9C, +- 0xEA12, 0xE9A6, 0xE956, 0xE91E, 0xE8FA, 0xE8E7, 0xE8E2, 0xE8E8, +- 0xE8F4, 0xE904, 0xE914, 0xE920, 0xE926, 0xE92E, 0xE945, 0xE969, +- 0xE996, 0xE9CD, 0xEA09, 0xEA4B, 0xEA8F, 0xEAD5, 0xEB19, 0xEB5B, +- 0xEB98, 0xEBCE, 0xEBFC, 0xEC20, 0xEC37, 0xEC41, 0x963F, 0x95ED, +- 0x9F95, 0xA1FF, 0xA50A, 0xA9B9, 0xAEA3, 0xB1F4, 0xB38B, 0xB494, +- 0xB52F, 0xB57B, 0xB599, 0xB5A8, 0xB5B0, 0xB5A6, 0xB58D, 0xB567, +- 0xB538, 0xB500, 0xB4C4, 0xB485, 0xB446, 0xB40A, 0xB3D3, 0xB3A4, +- 0xB37F, 0xB367, 0xB35E, 0xB364, 0xB373, 0xB38C, 0xB3AD, 0xB3D4, +- 0xB400, 0xB430, 0xB462, 0xB494, 0xB4C6, 0xB4F6, 0xB523, 0xB54A, +- 0xB56C, 0xB586, 0xB597, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, +- 0x8001, 0x8001, 0x4171, 0xBF5F, 0xD424, 0xD6F4, 0xD506, 0xD25C, +- 0xD21F, 0xD6B6, 0xDDE1, 0xE3CD, 0xE6BC, 0xE874, 0xEA0A, 0xEB98, +- 0xED21, 0xEEA5, 0xF025, 0xF1A3, 0xF320, 0xF49C, 0xF619, 0xF797, +- 0xF919, 0xFA9F, 0xFC6B, 0xFE04, 0xFE54, 0xFD4C, 0xFBBC, 0xF9DA, +- 0xF7DA, 0xF5F4, 0xF45B, 0xF347, 0xF2EC, 0xF335, 0xF3DB, 0xF4CE, +- 0xF5FD, 0xF755, 0xF8C7, 0xFA40, 0xFBB1, 0xFD07, 0xFE31, 0xFF1F, +- 0xFFBF, 0x0000, 0xFE60, 0xF552, 0xF4E9, 0xF62A, 0xF7E7, 0xFA56, +- 0xFD61, 0xFF69, 0xFE9B, 0xFD62, 0xFD93, 0xFDD4, 0xFE22, 0xFE7C, +- 0xFEDE, 0xFF45, 0xFFB1, 0x001C, 0x0086, 0x00EC, 0x014B, 0x01A1, +- 0x01BD, 0x01B1, 0x01DA, 0x0254, 0x02F3, 0x03A5, 0x0459, 0x04FE, +- 0x0583, 0x05D6, 0x05E7, 0x05BB, 0x0568, 0x04F6, 0x046C, 0x03D0, +- 0x032B, 0x0284, 0x01E2, 0x014C, 0x00C9, 0x0062, 0x001C, 0x0000, +- 0xF240, 0xECAF, 0xEDCA, 0xF018, 0xF19C, 0xF144, 0xF02B, 0xEF8C, +- 0xF029, 0xF1CB, 0xF3EC, 0xF620, 0xF865, 0xFAB6, 0xFD11, 0xFF70, +- 0x01D0, 0x042E, 0x0686, 0x08D4, 0x0B15, 0x0D43, 0x0EEB, 0x0FD7, +- 0x1064, 0x10F7, 0x11A5, 0x1257, 0x12F4, 0x1364, 0x138D, 0x1358, +- 0x12AD, 0x1182, 0x0FEF, 0x0E09, 0x0BE8, 0x09A0, 0x0748, 0x04F7, +- 0x02C1, 0x00BE, 0xFF04, 0xFDA8, 0xFCC0, 0xFC63, 0x0DF1, 0x0B9C, +- 0x107A, 0x1676, 0x1902, 0x1430, 0x0BE1, 0x0740, 0x0F1D, 0x16CA, +- 0x15AD, 0x13F2, 0x11B9, 0x0F23, 0x0C50, 0x095F, 0x0671, 0x03A5, +- 0x011D, 0xFEF8, 0xFD55, 0xFC56, 0xFBC4, 0xFB55, 0xFB06, 0xFAD4, +- 0xFABD, 0xFABE, 0xFAD5, 0xFB00, 0xFB3B, 0xFB85, 0xFBDA, 0xFC39, +- 0xFC9F, 0xFD0A, 0xFD76, 0xFDE2, 0xFE4B, 0xFEAE, 0xFF09, 0xFF59, +- 0xFF9D, 0xFFD1, 0xFFF3, 0x0000, 0xEA6B, 0xED4A, 0xF237, 0xF75D, +- 0xFA52, 0xF946, 0xF61D, 0xF3FD, 0xF545, 0xF740, 0xF81C, 0xF900, +- 0xF9E6, 0xFACC, 0xFBAD, 0xFC85, 0xFD51, 0xFE0B, 0xFEB2, 0xFF3F, +- 0xFFB0, 0x0000, 0x0039, 0x0069, 0x0090, 0x00AE, 0x00C5, 0x00D4, +- 0x00DD, 0x00E0, 0x00DD, 0x00D6, 0x00CC, 0x00BD, 0x00AD, 0x009A, +- 0x0086, 0x0071, 0x005C, 0x0048, 0x0035, 0x0024, 0x0015, 0x000A, +- 0x0003, 0x0000, 0x0FCD, 0x1311, 0x1A2B, 0x21C3, 0x2657, 0x25E9, +- 0x229B, 0x1F19, 0x1ACC, 0x1742, 0x161F, 0x1510, 0x1415, 0x132E, +- 0x1259, 0x1196, 0x10E3, 0x103F, 0x0FAA, 0x0F22, 0x0EA7, 0x0E38, +- 0x0DCF, 0x0D69, 0x0D06, 0x0CA6, 0x0C49, 0x0BEF, 0x0B99, 0x0B46, +- 0x0AF7, 0x0AAC, 0x0A65, 0x0A22, 0x09E4, 0x09AA, 0x0975, 0x0945, +- 0x0919, 0x08F3, 0x08D2, 0x08B7, 0x08A1, 0x0891, 0x0887, 0x0884, +- 0x192A, 0x1588, 0x13B7, 0x11EC, 0x1028, 0x0E6A, 0x0CB4, 0x0B05, +- 0x095D, 0x07BD, 0x060C, 0x0441, 0x0276, 0x00C5, 0xFF47, 0xFE13, +- 0xFD44, 0xFCE8, 0xFCEB, 0xFD37, 0xFDB0, 0xFE40, 0xFECC, 0xFF3C, +- 0xFF78, 0xFF8F, 0xFFA4, 0xFFB5, 0xFFC3, 0xFFCE, 0xFFD8, 0xFFDF, +- 0xFFE5, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, 0xFFEF, 0xFFF0, 0xFFF1, +- 0xFFF2, 0xFFF4, 0xFFF7, 0xFFFB, 0x0000, 0x0000, 0x0456, 0xFED9, +- 0xFE8B, 0xFE7F, 0xFEA4, 0xFEEA, 0xFF41, 0xFF97, 0xFFDD, 0x0000, +- 0x0005, 0xFFFE, 0xFFED, 0xFFD8, 0xFFC2, 0xFFB1, 0xFFA8, 0xFFA8, +- 0xFFAB, 0xFFB2, 0xFFBB, 0xFFC4, 0xFFCD, 0xFFD5, 0xFFDA, 0xFFDD, +- 0xFFE0, 0xFFE2, 0xFFE5, 0xFFE7, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, +- 0xFFF0, 0xFFF2, 0xFFF4, 0xFFF5, 0xFFF7, 0xFFF8, 0xFFFA, 0xFFFB, +- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x514E, 0x582E, 0x55E9, 0x52EB, +- 0x4F73, 0x4BC4, 0x4820, 0x44C7, 0x41FC, 0x3FFF, 0x3EFA, 0x3EC3, +- 0x3F1F, 0x3FD1, 0x409E, 0x414B, 0x419D, 0x41A2, 0x4196, 0x417D, +- 0x415C, 0x4137, 0x4112, 0x40F3, 0x40DE, 0x40CF, 0x40C0, 0x40B1, +- 0x40A2, 0x4094, 0x4085, 0x4077, 0x406A, 0x405D, 0x4050, 0x4044, +- 0x4039, 0x402E, 0x4025, 0x401C, 0x4014, 0x400D, 0x4007, 0x4002, +- 0x3FFF, 0x409D, ++ 0x0000, 0x00AA, 0x00AA, 0x00A1, 0x008E, 0x007A, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0074, 0x007B, 0x0086, 0x0093, 0x00A0, ++ 0x00AD, 0x00B8, 0x00BF, 0x00C2, 0x00C1, 0x00BD, 0x00B9, 0x00B3, 0x00AF, ++ 0x00AB, 0x00AA, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x409D, ++ 0xFFFF, 0xFFFF, 0xFEC7, 0xFC19, 0xF96A, 0xF832, 0xF832, 0xF832, 0xF832, ++ 0xF832, 0xF832, 0xF832, 0xF832, 0xF832, 0xF97D, 0xFCE5, 0x01B7, 0x073C, ++ 0x0CC1, 0x1192, 0x14FA, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, ++ 0x1645, 0x1645, 0x1645, 0x1581, 0x1375, 0x107F, 0x0CFC, 0x0949, 0x05C6, ++ 0x02CF, 0x00C4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0154, 0x043F, 0x072A, 0x087E, 0x087E, 0x087E, ++ 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x06D4, 0x0270, 0xFC39, ++ 0xF51B, 0xEDFE, 0xE7C8, 0xE364, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, ++ 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE2C3, 0xE58C, 0xE993, 0xEE59, 0xF360, ++ 0xF826, 0xFC2D, 0xFEF5, 0x0000, 0x0884, 0x0884, 0x0D77, 0x185B, 0x2340, ++ 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, ++ 0x27CC, 0x26BE, 0x2540, 0x238A, 0x21D4, 0x2056, 0x1F47, 0x1EE1, 0x1EE1, ++ 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1DED, 0x1B60, ++ 0x17AE, 0x134D, 0x0EB1, 0x0A4F, 0x069E, 0x0410, 0x031D, 0x0369, 0x042F, ++ 0x053D, 0x0664, 0x0772, 0x0837, 0x0884, 0xFFFF, 0xFFFF, 0xFF49, 0xFDB9, ++ 0xFC29, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, ++ 0xFB73, 0xFBA5, 0xFC27, 0xFCDF, 0xFDB3, 0xFE86, 0xFF3F, 0xFFC1, 0xFFF3, ++ 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, ++ 0xFFF4, 0xFFF6, 0xFFF8, 0xFFFA, 0xFFFC, 0xFFFD, 0xFFFF, 0x0000, 0x0000, ++ 0x0052, 0x0105, 0x01B9, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, ++ 0x020B, 0x020B, 0x020B, 0x0226, 0x026D, 0x02D2, 0x0346, 0x03BA, 0x041E, ++ 0x0466, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, ++ 0x0481, 0x0459, 0x03EF, 0x0356, 0x02A0, 0x01E1, 0x012B, 0x0091, 0x0027, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFC62, ++ 0xFC62, 0xFDCF, 0x00F3, 0x0416, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, ++ 0x0583, 0x0583, 0x0583, 0x0583, 0x056B, 0x052D, 0x04D6, 0x0472, 0x040E, ++ 0x03B6, 0x0378, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, ++ 0x0361, 0x0361, 0x034D, 0x0314, 0x02BC, 0x024A, 0x01C3, 0x012C, 0x008A, ++ 0xFFE3, 0xFF3C, 0xFE9A, 0xFE02, 0xFD7B, 0xFD08, 0xFCAF, 0xFC76, 0xFC62, ++ 0x0001, 0xFFFE, 0xC170, 0xFB1E, 0xFB1E, 0x0218, 0x1189, 0x2138, 0x28EF, ++ 0x29A0, 0x29E2, 0x29EB, 0x29D1, 0x2992, 0x2948, 0x2909, 0x28EF, 0x28EF, ++ 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x2683, 0x2205, ++ 0x1F9A, 0x2093, 0x22E3, 0x25A6, 0x27F6, 0x28EF, 0x2828, 0x2601, 0x22BE, ++ 0x1EA5, 0x19FB, 0x1504, 0x1005, 0x0B43, 0x0703, 0x037C, 0x00AB, 0xFE80, ++ 0xFCED, 0xFBE1, 0xFB4C, 0xFB1E, 0xD2DC, 0xD2DC, 0xD58B, 0xDB70, 0xE156, ++ 0xE405, 0xE18C, 0xDCF5, 0xDA7C, 0xDB7A, 0xDDD7, 0xE0AA, 0xE307, 0xE405, ++ 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE281, ++ 0xDFB1, 0xDE2E, 0xDEC9, 0xE03C, 0xE1F7, 0xE369, 0xE405, 0xE3E4, 0xE384, ++ 0xE2E9, 0xE219, 0xE117, 0xDFE8, 0xDE91, 0xDD15, 0xDB7A, 0xD9C7, 0xD813, ++ 0xD675, 0xD508, 0xD3E4, 0xD322, 0xD2DC, 0xD4B1, 0xD4B1, 0xCA11, 0xB2B1, ++ 0x9B50, 0x90B0, 0x9136, 0x922F, 0x92B5, 0x927F, 0x91FF, 0x9166, 0x90E6, ++ 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, ++ 0x93C4, 0x997C, 0x9C90, 0x9B54, 0x9862, 0x94DE, 0x91EC, 0x90B0, 0x923F, ++ 0x9680, 0x9CD1, 0xA490, 0xAD1B, 0xB5D0, 0xBE0D, 0xC530, 0xCA98, 0xCE55, ++ 0xD103, 0xD2CF, 0xD3E6, 0xD475, 0xD4AA, 0xD4B1, 0x0000, 0x0000, 0x0071, ++ 0x0169, 0x0261, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02E2, 0x030F, 0x0350, 0x039D, 0x03ED, 0x043A, 0x047B, 0x04A8, 0x04B8, ++ 0x0476, 0x03C9, 0x02DD, 0x01DC, 0x00F0, 0x0043, 0x0000, 0xFFFF, 0xFFFF, ++ 0x001C, 0x005A, 0x0098, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x008D, 0x0024, 0xFF8C, 0xFED8, 0xFE1A, 0xFD66, 0xFCCF, 0xFC66, ++ 0xFC3F, 0xFC74, 0xFCFD, 0xFDB9, 0xFE85, 0xFF41, 0xFFCA, 0xFFFF, 0xCA50, ++ 0xCA50, 0xCB34, 0xCD2A, 0xCF1F, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xCFFF, 0xCFF2, 0xCFDA, 0xCFB3, 0xCF7E, 0xCF36, 0xCEDB, ++ 0xCE6A, 0xCDE1, 0xCD40, 0xCC93, 0xCBE7, 0xCB49, 0xCAC8, 0xCA70, 0xCA50, ++ 0x0000, 0x0000, 0xFFAF, 0xFF00, 0xFE51, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE12, 0xFE41, 0xFE85, 0xFED6, 0xFF2A, 0xFF7B, ++ 0xFFBF, 0xFFEE, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xF97A, 0xF97A, 0xF924, 0xF866, 0xF7A9, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF765, 0xF798, 0xF7E2, 0xF839, 0xF894, 0xF8EB, ++ 0xF934, 0xF967, 0xF97A, 0xED8B, 0xED8B, 0xECB6, 0xEAE2, 0xE90E, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE868, 0xE8E5, 0xE99A, ++ 0xEA71, 0xEB53, 0xEC2A, 0xECDF, 0xED5C, 0xED8B, 0x0001, 0xFFFE, 0xC170, ++ 0x054D, 0x054D, 0x032E, 0xFE82, 0xF9D8, 0xF7B9, 0xF8D5, 0xFAE6, 0xFC03, ++ 0xFB91, 0xFA80, 0xF93B, 0xF82B, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, ++ 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xFCB4, 0x05F5, 0x0AF0, 0x08F0, 0x042D, ++ 0xFE7C, 0xF9B8, 0xF7B9, 0xF7D7, 0xF82D, 0xF8B5, 0xF96B, 0xFA49, 0xFB48, ++ 0xFC65, 0xFD98, 0xFEDD, 0x002D, 0x0177, 0x02AB, 0x03B8, 0x048E, 0x051A, ++ 0x054D, 0x2BD7, 0x2BD7, 0x2A4B, 0x26E4, 0x237D, 0x21F1, 0x23B6, 0x26FF, ++ 0x28C5, 0x280F, 0x265D, 0x2458, 0x22A6, 0x21F1, 0x21F1, 0x21F1, 0x21F1, ++ 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F4, 0x21F9, 0x21FC, 0x21FB, ++ 0x21F8, 0x21F5, 0x21F2, 0x21F1, 0x21F7, 0x220D, 0x2237, 0x2278, 0x22D4, ++ 0x234F, 0x23ED, 0x24B0, 0x259F, 0x26B6, 0x27E4, 0x2911, 0x2A24, 0x2B06, ++ 0x2B9F, 0x2BD7, 0xCCF9, 0xCCF9, 0xC665, 0xB7EA, 0xA970, 0xA2DB, 0xA334, ++ 0xA3D8, 0xA431, 0xA40D, 0xA3B9, 0xA354, 0xA2FF, 0xA2DB, 0xA2DB, 0xA2DB, ++ 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA5CB, 0xAB40, 0xAE30, ++ 0xAD02, 0xAA33, 0xA6D8, 0xA409, 0xA2DB, 0xA3E3, 0xA6AF, 0xAAD1, 0xAFDB, ++ 0xB55F, 0xBAED, 0xC019, 0xC472, 0xC78B, 0xC98E, 0xCAFE, 0xCBF6, 0xCC8C, ++ 0xCCD9, 0xCCF5, 0xCCF9, 0x0000, 0x0000, 0xFF06, 0xFCE2, 0xFABE, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C6, 0xF9C9, ++ 0xF9CF, 0xF9D8, 0xF9E6, 0xF9FA, 0xFA14, 0xFA35, 0xFAA3, 0xFB81, 0xFCA1, ++ 0xFDD3, 0xFEE9, 0xFFB2, 0x0000, 0x0000, 0x0000, 0xFE9A, 0xFB88, 0xF875, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF77B, 0xF898, ++ 0xFA36, 0xFC20, 0xFE24, 0x000F, 0x01AC, 0x02CA, 0x0334, 0x0307, 0x0292, ++ 0x01F1, 0x0143, 0x00A3, 0x002D, 0x0000, 0xC7DA, 0xC7DA, 0xC7DC, 0xC7E0, ++ 0xC7E4, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, ++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, ++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7FB, ++ 0xC832, 0xC882, 0xC8E1, 0xC944, 0xC9A3, 0xC9F3, 0xCA2B, 0xCA3F, 0xCA1D, ++ 0xC9C6, 0xC94E, 0xC8CB, 0xC854, 0xC7FC, 0xC7DA, 0x0000, 0x0000, 0xFEA3, ++ 0xFBA5, 0xF8A7, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF797, 0xF864, 0xF98C, 0xFAEC, 0xFC5E, 0xFDBD, 0xFEE6, 0xFFB3, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFE96, 0xFB7B, 0xF860, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF746, 0xF81A, 0xF94E, 0xFABB, 0xFC3B, 0xFDA7, 0xFEDB, 0xFFB0, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xF549, ++ 0xF549, 0xF471, 0xF294, 0xF0B8, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xF00F, 0xF08E, 0xF147, 0xF221, 0xF307, 0xF3E2, 0xF49A, ++ 0xF51A, 0xF549, 0xFFFF, 0xFFFF, 0xBF5E, 0xE4F6, 0xE4F6, 0xE4F6, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F6, 0xEEBB, 0xAC43, 0xAC43, 0xA599, 0x96EE, ++ 0x8843, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x830F, ++ 0x86FB, 0x8CA8, 0x9363, 0x9A78, 0xA134, 0xA6E1, 0xAACD, 0xAC43, 0x0000, ++ 0x0000, 0xFC6D, 0xF494, 0xECBA, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE9F1, 0xEC0A, 0xEF14, 0xF2AE, 0xF679, 0xFA13, 0xFD1D, ++ 0xFF36, 0x0000, 0xFFFF, 0xFFFF, 0xFC79, 0xF4B8, 0xECF7, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xEA37, 0xEC49, 0xEF4A, 0xF2D9, ++ 0xF697, 0xFA26, 0xFD26, 0xFF39, 0xFFFF, 0x2537, 0x2537, 0x2BB7, 0x3A06, ++ 0x4854, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, ++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, ++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4D67, ++ 0x4994, 0x440A, 0x3D7A, 0x3692, 0x3001, 0x2A77, 0x26A4, 0x2537, 0x049D, ++ 0x049D, 0x04F6, 0x05BA, 0x067E, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x070F, 0x07A4, 0x087B, 0x097A, 0x0A87, 0x0B86, 0x0C5D, ++ 0x0CF2, 0x0D2A, 0x0CB0, 0x0B78, 0x09CC, 0x07FA, 0x064F, 0x0516, 0x049D, ++ 0xFE84, 0xFE84, 0xFE5E, 0xFE0A, 0xFDB6, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD70, 0xFD1B, 0xFC9F, 0xFC0D, 0xFB73, 0xFAE0, ++ 0xFA65, 0xFA0F, 0xF9EF, 0xFA30, 0xFAD8, 0xFBBD, 0xFCB6, 0xFD9C, 0xFE43, ++ 0xFE84, 0xC460, 0xC460, 0xC4C4, 0xC59F, 0xC67B, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC71E, 0xC7C6, 0xC8BA, 0xC9DC, 0xCB0C, ++ 0xCC2E, 0xCD22, 0xCDCB, 0xCE0A, 0xCD81, 0xCC1F, 0xCA3C, 0xC82D, 0xC64A, ++ 0xC4E9, 0xC460, 0xFFFF, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x1B09, 0x1B09, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B09, 0x1144, 0x1144, 0x1144, 0x1144, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1144, ++ 0xAC43, 0xAC43, 0xA599, 0x96EE, 0x8844, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8310, 0x86FC, 0x8CA9, 0x9364, 0x9A79, 0xA134, ++ 0xA6E1, 0xAACD, 0xAC43, 0xFFFF, 0xFFFF, 0x02EE, 0x095E, 0x0FCF, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x1218, 0x1060, 0x0DE1, ++ 0x0AED, 0x07D0, 0x04DC, 0x025D, 0x00A5, 0xFFFF, 0xFFFF, 0xFFFF, 0x040E, ++ 0x0CFA, 0x15E6, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x1911, 0x16AE, 0x133A, 0x0F22, 0x0AD3, 0x06BB, 0x0347, 0x00E4, 0xFFFF, ++ 0x1E4A, 0x1E4A, 0x24BB, 0x32E8, 0x4115, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x461D, 0x4253, 0x3CD6, 0x3655, 0x2F7C, 0x28FB, ++ 0x237E, 0x1FB4, 0x1E4A, 0x0000, 0x0000, 0xFFA5, 0xFEDE, 0xFE17, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFD84, 0xFCEE, 0xFC14, ++ 0xFB11, 0xFA01, 0xF8FF, 0xF825, 0xF78E, 0xF756, 0xF7D1, 0xF90E, 0xFABF, ++ 0xFC97, 0xFE48, 0xFF84, 0x0000, 0xFF2F, 0xFF2F, 0xFF52, 0xFF9E, 0xFFEB, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x002D, 0x007E, ++ 0x00F3, 0x017E, 0x0210, 0x029B, 0x0310, 0x0361, 0x037F, 0x0342, 0x02A4, ++ 0x01CD, 0x00E2, 0x000B, 0xFF6C, 0xFF2F, 0xC9D7, 0xC9D7, 0xCA40, 0xCB27, ++ 0xCC0E, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCCB9, ++ 0xCD6B, 0xCE6C, 0xCF9D, 0xD0DE, 0xD20E, 0xD310, 0xD3C1, 0xD403, 0xD373, ++ 0xD1FF, 0xD002, 0xCDD8, 0xCBDC, 0xCA67, 0xC9D7, + }; + diff --git a/assets/anims/anim_37.inc.c b/assets/anims/anim_37.inc.c index 0611b5b7..ad2f79bd 100644 --- a/assets/anims/anim_37.inc.c +++ b/assets/anims/anim_37.inc.c @@ -12,455 +12,505 @@ static const struct Animation anim_37[] = { static const u16 anim_37_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, - 0x0064, 0x0C2A, 0x0064, 0x0C8E, 0x0064, 0x0CF2, - 0x0064, 0x0AFE, 0x0064, 0x0B62, 0x0064, 0x0BC6, - 0x0064, 0x09D2, 0x0064, 0x0A36, 0x0064, 0x0A9A, - 0x0001, 0x09CE, 0x0001, 0x09CF, 0x0001, 0x09D0, - 0x0064, 0x0193, 0x0064, 0x01F7, 0x0064, 0x025B, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x012F, - 0x0064, 0x0003, 0x0064, 0x0067, 0x0064, 0x00CB, - 0x0001, 0x09CA, 0x0001, 0x09CB, 0x0001, 0x09CC, - 0x0064, 0x044F, 0x0064, 0x04B3, 0x0064, 0x0517, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x03EB, - 0x0064, 0x02BF, 0x0064, 0x0323, 0x0064, 0x0387, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09CD, - 0x0001, 0x09C7, 0x0001, 0x09C8, 0x0001, 0x09C9, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x0963, - 0x0064, 0x0837, 0x0064, 0x089B, 0x0064, 0x08FF, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09D1, - 0x0064, 0x070B, 0x0064, 0x076F, 0x0064, 0x07D3, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x06A7, - 0x0064, 0x057B, 0x0064, 0x05DF, 0x0064, 0x0643, +0x0034, 0x0000, 0x0063, 0x0034, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, + 0x0099, 0x0001, 0x009A, 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, + 0x0064, 0x009E, 0x0064, 0x0102, 0x0064, 0x0166, 0x0064, 0x01CA, 0x0064, + 0x022E, 0x0064, 0x0292, 0x0001, 0x02F6, 0x0001, 0x02F7, 0x0001, 0x02F8, + 0x0064, 0x02F9, 0x0064, 0x035D, 0x0064, 0x03C1, 0x0064, 0x0425, 0x0064, + 0x0489, 0x0064, 0x04ED, 0x0064, 0x0551, 0x0064, 0x05B5, 0x0064, 0x0619, + 0x0034, 0x067D, 0x0034, 0x06B1, 0x0033, 0x06E5, 0x0064, 0x0718, 0x0064, + 0x077C, 0x0064, 0x07E0, 0x0064, 0x0844, 0x0064, 0x08A8, 0x0064, 0x090C, + 0x0063, 0x0970, 0x0061, 0x09D3, 0x0034, 0x0A34, 0x0001, 0x0A68, 0x0001, + 0x0A69, 0x0001, 0x0A6A, 0x0064, 0x0A6B, 0x0064, 0x0ACF, 0x0064, 0x0B33, + 0x0064, 0x0B97, 0x0064, 0x0BFB, 0x0064, 0x0C5F, 0x0064, 0x0CC3, 0x0064, + 0x0D27, 0x0064, 0x0D8B, 0x0001, 0x0DEF, 0x0001, 0x0DF0, 0x0001, 0x0DF1, + 0x0064, 0x0DF2, 0x0064, 0x0E56, 0x0064, 0x0EBA, 0x0064, 0x0F1E, 0x0064, + 0x0F82, 0x0064, 0x0FE6, 0x0063, 0x104A, 0x0023, 0x10AD, 0x0023, 0x10D0, }; static const s16 anim_37_values[] = { - 0x0000, 0x00AA, 0x3FFF, 0x0000, 0xFFD8, 0xFF6C, 0xFECF, 0xFE13, - 0xFD4C, 0xFC8C, 0xFBE6, 0xFB6D, 0xFB34, 0xFB45, 0xFB94, 0xFC16, - 0xFCBE, 0xFD82, 0xFE55, 0xFF2C, 0xFFFA, 0x00B2, 0x014C, 0x01B9, - 0x01EE, 0x01E0, 0x0182, 0x00C9, 0xFFA9, 0xFE15, 0xFBC9, 0xF8A1, - 0xF4C1, 0xF04B, 0xEB62, 0xE62B, 0xE0C9, 0xDB5E, 0xD60E, 0xD0FD, - 0xCC4E, 0xC824, 0xC4A2, 0xC29B, 0xC259, 0xC336, 0xC48E, 0xC5BB, - 0xC69B, 0xC77E, 0xC864, 0xC94C, 0xCA38, 0xCB27, 0xCC1A, 0xCD11, - 0xCE0D, 0xCF0E, 0xD014, 0xD121, 0xD233, 0xD34C, 0xD46C, 0xD594, - 0xD6C3, 0xD7FA, 0xD93A, 0xDA82, 0xDD37, 0xE115, 0xE3A3, 0xE4B9, - 0xE5D6, 0xE6FA, 0xE823, 0xE94F, 0xEA7F, 0xEBB1, 0xECE3, 0xEE16, - 0xEF47, 0xF076, 0xF1A2, 0xF2C9, 0xF3EB, 0xF507, 0xF61B, 0xF726, - 0xF828, 0xF91F, 0xFA0A, 0xFAE9, 0xFBB9, 0xFC7B, 0xFD2D, 0xFDCE, - 0xFE5D, 0xFED9, 0xFF40, 0xFF93, 0xFFCF, 0xFFF4, 0x0000, 0xF97C, - 0xF975, 0xF963, 0xF948, 0xF929, 0xF908, 0xF8E7, 0xF8CC, 0xF8B7, - 0xF8AE, 0xF8B4, 0xF8CB, 0xF8EF, 0xF91D, 0xF951, 0xF989, 0xF9C2, - 0xF9F7, 0xFA25, 0xFA4A, 0xFA62, 0xFA6A, 0xFA5E, 0xFA3B, 0xF9FE, - 0xF9A4, 0xF929, 0xF87A, 0xF78B, 0xF667, 0xF518, 0xF3A8, 0xF221, - 0xF08E, 0xEEF7, 0xED68, 0xEBEA, 0xEA87, 0xE94A, 0xE83D, 0xE7A0, - 0xE788, 0xE7BB, 0xE803, 0xE827, 0xE829, 0xE82F, 0xE839, 0xE846, - 0xE856, 0xE866, 0xE878, 0xE889, 0xE899, 0xE8A8, 0xE8B3, 0xE8BC, - 0xE8C0, 0xE8C0, 0xE8B9, 0xE8AC, 0xE898, 0xE87C, 0xE856, 0xE827, - 0xE6BC, 0xE468, 0xE374, 0xE3FB, 0xE492, 0xE538, 0xE5EB, 0xE6AA, - 0xE773, 0xE845, 0xE920, 0xEA01, 0xEAE7, 0xEBD2, 0xECBF, 0xEDAD, - 0xEE9C, 0xEF89, 0xF073, 0xF159, 0xF23B, 0xF315, 0xF3E8, 0xF4B1, - 0xF570, 0xF623, 0xF6C9, 0xF760, 0xF7E7, 0xF85D, 0xF8C1, 0xF911, - 0xF94B, 0xF96F, 0xF97C, 0xED8C, 0xED19, 0xEBE4, 0xEA24, 0xE80D, - 0xE5D5, 0xE3B3, 0xE1DA, 0xE082, 0xDFDF, 0xDFBE, 0xDFC4, 0xDFEE, - 0xE036, 0xE09A, 0xE116, 0xE1A5, 0xE243, 0xE2EE, 0xE3A0, 0xE456, - 0xE50C, 0xE5BE, 0xE669, 0xE707, 0xE796, 0xE811, 0xE880, 0xE8ED, - 0xE957, 0xE9BF, 0xEA25, 0xEA88, 0xEAE9, 0xEB48, 0xEBA5, 0xEC00, - 0xEC59, 0xECB0, 0xED05, 0xED54, 0xED95, 0xEDC8, 0xEDEB, 0xEDFE, - 0xEE0A, 0xEE1B, 0xEE2F, 0xEE45, 0xEE5C, 0xEE75, 0xEE8C, 0xEEA3, - 0xEEB7, 0xEEC8, 0xEED5, 0xEEDD, 0xEEE0, 0xEEDB, 0xEECF, 0xEEBA, - 0xEE9B, 0xEE73, 0xEE3E, 0xEDFE, 0xEC38, 0xE938, 0xE79F, 0xE7A0, - 0xE7AA, 0xE7BC, 0xE7D6, 0xE7F7, 0xE81E, 0xE84B, 0xE87D, 0xE8B4, - 0xE8EF, 0xE92E, 0xE970, 0xE9B4, 0xE9F9, 0xEA40, 0xEA88, 0xEAD0, - 0xEB17, 0xEB5E, 0xEBA3, 0xEBE5, 0xEC25, 0xEC61, 0xEC9A, 0xECCE, - 0xECFD, 0xED26, 0xED49, 0xED65, 0xED7A, 0xED87, 0xED8C, 0xCA4F, - 0xCA8C, 0xCB31, 0xCC28, 0xCD57, 0xCEA6, 0xCFFE, 0xD146, 0xD266, - 0xD346, 0xD407, 0xD4D6, 0xD5B0, 0xD691, 0xD775, 0xD856, 0xD932, - 0xDA04, 0xDAC8, 0xDB79, 0xDC15, 0xDC95, 0xDCF7, 0xDD36, 0xDD4F, - 0xDD3C, 0xDCFA, 0xDC6C, 0xDB82, 0xDA49, 0xD8CF, 0xD721, 0xD54C, - 0xD35D, 0xD162, 0xCF69, 0xCD7D, 0xCBAE, 0xCA08, 0xC898, 0xC772, - 0xC699, 0xC5FF, 0xC598, 0xC555, 0xC551, 0xC594, 0xC5F8, 0xC658, - 0xC68E, 0xC649, 0xC5A3, 0xC514, 0xC517, 0xC626, 0xC834, 0xCACC, - 0xCDC6, 0xD0FB, 0xD445, 0xD77D, 0xDA7C, 0xDD1C, 0xDF35, 0xE0A1, - 0xDDDA, 0xD77C, 0xD398, 0xD2F8, 0xD25E, 0xD1CB, 0xD13E, 0xD0B7, - 0xD036, 0xCFBB, 0xCF46, 0xCED6, 0xCE6D, 0xCE09, 0xCDAB, 0xCD52, - 0xCCFE, 0xCCB0, 0xCC66, 0xCC22, 0xCBE3, 0xCBA9, 0xCB74, 0xCB44, - 0xCB18, 0xCAF0, 0xCACE, 0xCAAF, 0xCA95, 0xCA80, 0xCA6E, 0xCA60, - 0xCA57, 0xCA51, 0xCA4F, 0xFB1D, 0xFB3B, 0xFB89, 0xFBF6, 0xFC71, - 0xFCEA, 0xFD4D, 0xFD8C, 0xFD93, 0xFD53, 0xFCCA, 0xFC08, 0xFB18, - 0xFA03, 0xF8D3, 0xF792, 0xF64A, 0xF504, 0xF3CB, 0xF2A8, 0xF1A5, - 0xF0CD, 0xF028, 0xEFC1, 0xEFA1, 0xEFD3, 0xF061, 0xF17C, 0xF33E, - 0xF58C, 0xF84C, 0xFB63, 0xFEB4, 0x0226, 0x059E, 0x0901, 0x0C34, - 0x0F1B, 0x119D, 0x139D, 0x144C, 0x136E, 0x11C9, 0x1021, 0x0F3B, - 0x0F54, 0x0FEA, 0x10A0, 0x111A, 0x10FC, 0x0FD3, 0x0DDC, 0x0BC4, - 0x0A37, 0x09E3, 0x0AB9, 0x0C1F, 0x0DED, 0x0FF9, 0x121B, 0x142B, - 0x1601, 0x1774, 0x185B, 0x188F, 0x142B, 0x0C12, 0x0742, 0x066F, - 0x05A4, 0x04E2, 0x0429, 0x0377, 0x02CE, 0x022C, 0x0193, 0x0101, - 0x0076, 0xFFF5, 0xFF79, 0xFF05, 0xFE98, 0xFE32, 0xFDD2, 0xFD7A, - 0xFD28, 0xFCDC, 0xFC97, 0xFC58, 0xFC1F, 0xFBED, 0xFBC0, 0xFB99, - 0xFB77, 0xFB5B, 0xFB44, 0xFB33, 0xFB27, 0xFB1F, 0xFB1D, 0xD2DC, - 0xD371, 0xD505, 0xD757, 0xDA27, 0xDD34, 0xE03D, 0xE303, 0xE544, - 0xE6BF, 0xE7B8, 0xE89B, 0xE96A, 0xEA23, 0xEAC9, 0xEB5C, 0xEBDC, - 0xEC49, 0xECA4, 0xECEE, 0xED27, 0xED50, 0xED69, 0xED73, 0xED6E, - 0xED5A, 0xED39, 0xECF6, 0xEC7F, 0xEBDD, 0xEB16, 0xEA32, 0xE936, - 0xE82A, 0xE714, 0xE5FD, 0xE4EA, 0xE3E3, 0xE2EE, 0xE213, 0xE10C, - 0xDFD1, 0xDEC8, 0xDE55, 0xDEDC, 0xE0F9, 0xE468, 0xE841, 0xEB9A, - 0xED8B, 0xEDBF, 0xECCF, 0xEB3E, 0xE98B, 0xE837, 0xE72B, 0xE600, - 0xE4C5, 0xE387, 0xE255, 0xE13D, 0xE04D, 0xDF93, 0xDF1D, 0xDEF8, - 0xE195, 0xE653, 0xE8AE, 0xE84B, 0xE7D4, 0xE74A, 0xE6AF, 0xE605, - 0xE54C, 0xE487, 0xE3B7, 0xE2DD, 0xE1FC, 0xE114, 0xE028, 0xDF38, - 0xDE46, 0xDD54, 0xDC63, 0xDB75, 0xDA8B, 0xD9A7, 0xD8CA, 0xD7F7, - 0xD72D, 0xD670, 0xD5C0, 0xD51F, 0xD48F, 0xD410, 0xD3A5, 0xD350, - 0xD310, 0xD2E9, 0xD2DC, 0xD4B4, 0xD49A, 0xD457, 0xD3F6, 0xD383, - 0xD30A, 0xD297, 0xD238, 0xD1F7, 0xD1E1, 0xD20C, 0xD27E, 0xD327, - 0xD3FB, 0xD4EC, 0xD5EA, 0xD6EA, 0xD7DC, 0xD8B3, 0xD960, 0xD9D7, - 0xDA09, 0xD9E8, 0xD967, 0xD877, 0xD70A, 0xD513, 0xD241, 0xCE66, - 0xC9AD, 0xC43E, 0xBE44, 0xB7E8, 0xB154, 0xAAB0, 0xA427, 0x9DE2, - 0x980B, 0x92CA, 0x8E4A, 0x8B6A, 0x8A73, 0x8AAD, 0x8B5F, 0x8BD2, - 0x8C4A, 0x8D43, 0x8E54, 0x8F17, 0x8F24, 0x8DDA, 0x8B7F, 0x8902, - 0x8756, 0x876B, 0x88E0, 0x8AAB, 0x8CC8, 0x8F30, 0x91DB, 0x94C3, - 0x97E1, 0x9B2F, 0x9EA6, 0xA240, 0xA8ED, 0xB1C6, 0xB6F9, 0xB86A, - 0xB9D8, 0xBB43, 0xBCAB, 0xBE0E, 0xBF6D, 0xC0C7, 0xC21B, 0xC369, - 0xC4AF, 0xC5ED, 0xC723, 0xC850, 0xC973, 0xCA8C, 0xCB9B, 0xCC9D, - 0xCD94, 0xCE7D, 0xCF5A, 0xD028, 0xD0E7, 0xD198, 0xD238, 0xD2C8, - 0xD347, 0xD3B3, 0xD40E, 0xD455, 0xD489, 0xD4A9, 0xD4B4, 0x0000, - 0x0139, 0x0497, 0x09A6, 0x0FF2, 0x1707, 0x1E71, 0x25BC, 0x2C75, - 0x3226, 0x371F, 0x3BA7, 0x3F3C, 0x415D, 0x420A, 0x417B, 0x3F88, - 0x3C08, 0x31D3, 0x2767, 0x22EB, 0x1EF4, 0x1B74, 0x1861, 0x15AD, - 0x134E, 0x1135, 0x0F2B, 0x0D08, 0x0ADB, 0x08B3, 0x069F, 0x04AF, - 0x02F2, 0x0177, 0x004D, 0xFF84, 0xFF2A, 0xFF4E, 0x0000, 0x0112, - 0x0249, 0x03A5, 0x0521, 0x06BC, 0x0874, 0x0A47, 0x0C32, 0x0E32, - 0x1047, 0x126C, 0x14A1, 0x16E3, 0x1930, 0x1B85, 0x1DE0, 0x203F, - 0x22A0, 0x2500, 0x275D, 0x29B5, 0x2C06, 0x2E4D, 0x3089, 0x32B6, - 0x34D3, 0x36DE, 0x38D4, 0x3AB2, 0x3C77, 0x3E21, 0x3FAD, 0x4118, - 0x4262, 0x4386, 0x4484, 0x4559, 0x4602, 0x467E, 0x46CA, 0x46E4, - 0x4652, 0x44B3, 0x4225, 0x3EC9, 0x3ABF, 0x3625, 0x311D, 0x2BC5, - 0x263D, 0x20A6, 0x1B1E, 0x15C6, 0x10BE, 0x0C24, 0x081A, 0x04BE, - 0x0230, 0x0091, 0x0000, 0x0000, 0x00C7, 0x02E4, 0x05FF, 0x09C2, - 0x0DD4, 0x11DF, 0x158D, 0x1884, 0x1A70, 0x19F6, 0x1713, 0x136C, - 0x10A9, 0x0F2A, 0x0E12, 0x0D2E, 0x0C4B, 0x0C1D, 0x0AF3, 0x077A, - 0x033A, 0xFEA5, 0xFA2C, 0xF644, 0xF360, 0xF1F2, 0xF1B2, 0xF1FD, - 0xF2BC, 0xF3D9, 0xF53D, 0xF6D3, 0xF883, 0xFA39, 0xFBDD, 0xFD59, - 0xFE97, 0xFF81, 0x0000, 0x003F, 0x0078, 0x00AB, 0x00D9, 0x0100, - 0x0123, 0x0140, 0x0159, 0x016D, 0x017C, 0x0188, 0x0190, 0x0194, - 0x0194, 0x0192, 0x018C, 0x0184, 0x0179, 0x016C, 0x015D, 0x014D, - 0x013A, 0x0127, 0x0112, 0x00FD, 0x00E7, 0x00D1, 0x00BB, 0x00A5, - 0x008F, 0x007A, 0x0066, 0x0053, 0x0042, 0x0031, 0x0023, 0x0017, - 0x000D, 0x0006, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF549, - 0xF543, 0xF535, 0xF521, 0xF50B, 0xF4F8, 0xF4EB, 0xF4E8, 0xF4F3, - 0xF50F, 0xF571, 0xF61C, 0xF6CC, 0xF73C, 0xF751, 0xF732, 0xF6FE, - 0xF6D7, 0xF707, 0xF6AE, 0xF540, 0xF372, 0xF17C, 0xEF94, 0xEDEE, - 0xECC3, 0xEC47, 0xEC5C, 0xECB5, 0xED48, 0xEE09, 0xEEEC, 0xEFE5, - 0xF0E8, 0xF1EA, 0xF2E0, 0xF3BC, 0xF475, 0xF4FD, 0xF549, 0xF572, - 0xF597, 0xF5B7, 0xF5D4, 0xF5EE, 0xF604, 0xF617, 0xF627, 0xF633, - 0xF63D, 0xF645, 0xF64A, 0xF64C, 0xF64D, 0xF64B, 0xF647, 0xF642, - 0xF63B, 0xF633, 0xF629, 0xF61F, 0xF613, 0xF607, 0xF5F9, 0xF5EC, - 0xF5DE, 0xF5D0, 0xF5C2, 0xF5B3, 0xF5A6, 0xF598, 0xF58B, 0xF57F, - 0xF574, 0xF569, 0xF560, 0xF558, 0xF552, 0xF54D, 0xF54A, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xC7DD, 0xC7C7, 0xC798, 0xC76A, 0xC75C, - 0xC789, 0xC80E, 0xC906, 0xCA8D, 0xCCC1, 0xD220, 0xDAE1, 0xE3B8, - 0xE957, 0xEA96, 0xE94F, 0xE6BA, 0xE411, 0xDFE4, 0xDB94, 0xD918, - 0xD6C5, 0xD496, 0xD287, 0xD094, 0xCEB8, 0xCCF0, 0xCB0D, 0xC8F5, - 0xC6BB, 0xC475, 0xC237, 0xC016, 0xBE28, 0xBC81, 0xBB37, 0xBA5D, - 0xBA09, 0xBA50, 0xBAF9, 0xBBBA, 0xBC94, 0xBD84, 0xBE89, 0xBFA2, - 0xC0CE, 0xC20A, 0xC357, 0xC4B1, 0xC619, 0xC78C, 0xC909, 0xCA8F, - 0xCC1D, 0xCDB1, 0xCF4A, 0xD0E6, 0xD284, 0xD423, 0xD5C1, 0xD75D, - 0xD8F5, 0xDA89, 0xDC17, 0xDD9D, 0xDF1B, 0xE08E, 0xE1F5, 0xE350, - 0xE49C, 0xE5D9, 0xE704, 0xE81D, 0xE923, 0xEA13, 0xE9FB, 0xE85B, - 0xE5DE, 0xE32F, 0xE0F9, 0xDFE7, 0xE005, 0xE0C5, 0xE1F2, 0xE355, - 0xE4B7, 0xE5E1, 0xE69E, 0xE6B5, 0xE5F1, 0xE413, 0xE132, 0xDD96, - 0xD989, 0xD553, 0xD13D, 0xCD91, 0xCA97, 0xC898, 0xC7DD, 0x054B, - 0x0588, 0x0615, 0x06BA, 0x073B, 0x075F, 0x06EB, 0x05A5, 0x0352, - 0xFFB8, 0xF621, 0xE640, 0xD678, 0xCD2E, 0xCBD3, 0xCF14, 0xD630, - 0xE067, 0xFAF3, 0x1244, 0x15D6, 0x16DD, 0x160A, 0x140F, 0x119A, - 0x0F5D, 0x0E08, 0x0D59, 0x0C9C, 0x0BD5, 0x0B07, 0x0A37, 0x0969, - 0x08A0, 0x07E2, 0x0731, 0x0693, 0x060A, 0x059C, 0x054B, 0x0511, - 0x04E2, 0x04BC, 0x04A0, 0x048D, 0x0481, 0x047B, 0x047C, 0x0483, - 0x048D, 0x049C, 0x04AD, 0x04C0, 0x04D5, 0x04EA, 0x04FF, 0x0513, - 0x0525, 0x0535, 0x0541, 0x0549, 0x054B, 0x05DD, 0x071C, 0x085C, - 0x08ED, 0x0821, 0x054B, 0x0082, 0xFA82, 0xF38F, 0xEBF4, 0xE3F6, - 0xDBDE, 0xD3F2, 0xCC7A, 0xC5BE, 0xC005, 0xBB96, 0xB8B9, 0xB7B5, - 0xB854, 0xBA1B, 0xBCE6, 0xC093, 0xC4FF, 0xCA08, 0xCF8B, 0xD564, - 0xDB71, 0xE190, 0xE79D, 0xED76, 0xF2F9, 0xF802, 0xFC6E, 0x001A, - 0x02E5, 0x04AC, 0x054B, 0x2BD6, 0x2BD1, 0x2BC2, 0x2BAA, 0x2B89, - 0x2B62, 0x2B33, 0x2AFF, 0x2AC5, 0x2A87, 0x29DF, 0x28DC, 0x2834, - 0x289B, 0x2B11, 0x2EF2, 0x3276, 0x33D8, 0x2DBD, 0x26F4, 0x25A0, - 0x24D6, 0x247A, 0x246F, 0x249C, 0x24E4, 0x252B, 0x257A, 0x25E5, - 0x2667, 0x26FB, 0x279B, 0x2843, 0x28EB, 0x2991, 0x2A2D, 0x2ABA, - 0x2B34, 0x2B94, 0x2BD6, 0x2C03, 0x2C27, 0x2C43, 0x2C59, 0x2C68, - 0x2C71, 0x2C75, 0x2C74, 0x2C6F, 0x2C67, 0x2C5C, 0x2C4F, 0x2C40, - 0x2C31, 0x2C20, 0x2C10, 0x2C01, 0x2BF3, 0x2BE7, 0x2BDE, 0x2BD8, - 0x2BD6, 0x2BD0, 0x2BC2, 0x2BB3, 0x2BAD, 0x2BB6, 0x2BD6, 0x2C0D, - 0x2C51, 0x2CA1, 0x2CF7, 0x2D52, 0x2DAF, 0x2E09, 0x2E5E, 0x2EAB, - 0x2EEC, 0x2F1F, 0x2F40, 0x2F4B, 0x2F44, 0x2F30, 0x2F10, 0x2EE6, - 0x2EB4, 0x2E7A, 0x2E3B, 0x2DF9, 0x2DB4, 0x2D6E, 0x2D29, 0x2CE6, - 0x2CA7, 0x2C6E, 0x2C3B, 0x2C11, 0x2BF2, 0x2BDD, 0x2BD6, 0xCCF6, - 0xCC30, 0xC9F7, 0xC671, 0xC1C3, 0xBC14, 0xB589, 0xAE48, 0xA677, - 0x9E3B, 0x9093, 0x7D00, 0x6A73, 0x5FD8, 0x5F88, 0x65A7, 0x6FCE, - 0x7B96, 0x9226, 0xA6A2, 0xAD79, 0xB2D4, 0xB6F6, 0xBA25, 0xBCA3, - 0xBEB4, 0xC09D, 0xC26E, 0xC40D, 0xC57F, 0xC6C6, 0xC7E6, 0xC8E2, - 0xC9BE, 0xCA7C, 0xCB21, 0xCBAF, 0xCC2B, 0xCC96, 0xCCF6, 0xCD48, - 0xCD8B, 0xCDC0, 0xCDE8, 0xCE03, 0xCE14, 0xCE1C, 0xCE1A, 0xCE12, - 0xCE03, 0xCDEE, 0xCDD6, 0xCDBA, 0xCD9D, 0xCD7F, 0xCD61, 0xCD45, - 0xCD2C, 0xCD16, 0xCD05, 0xCCFA, 0xCCF6, 0xCDD6, 0xCFC3, 0xD1B0, - 0xD290, 0xD156, 0xCCF6, 0xC593, 0xBC4D, 0xB195, 0xA5D6, 0x9981, - 0x8D02, 0x80C9, 0x753F, 0x6ADA, 0x6205, 0x5B2D, 0x56C1, 0x552F, - 0x5625, 0x58E3, 0x5D33, 0x62E0, 0x69B4, 0x7179, 0x79FA, 0x8304, - 0x8C5B, 0x95CD, 0x9F25, 0xA82C, 0xB0AC, 0xB872, 0xBF45, 0xC4F2, - 0xC942, 0xCC00, 0xCCF6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, - 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, - 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, - 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xC9D8, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, - 0xC9DC, 0xC9DD, 0xC9DE, 0xC9DF, 0xC9DF, 0xC9DF, 0xC9E0, 0xC9E0, - 0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E6, 0xC9E7, 0xC9E9, 0xC9EA, - 0xC9EC, 0xC9EE, 0xC9EF, 0xC9F0, 0xC9F1, 0xC9F2, 0xC9F3, 0xC9F3, - 0xC9F3, 0xC9F3, 0xC9F2, 0xC9F1, 0xC9EF, 0xC9ED, 0xC9EA, 0xC9E6, - 0xC9E2, 0xC9DE, 0xC9D8, 0xC9D2, 0xC9CB, 0xC9C3, 0xC9BB, 0xC9B2, - 0xC9A9, 0xC99F, 0xC995, 0xC98A, 0xC97F, 0xC973, 0xC967, 0xC95B, - 0xC94E, 0xC942, 0xC935, 0xC928, 0xC91B, 0xC90E, 0xC901, 0xC8F4, - 0xC8E7, 0xC8DB, 0xC8CE, 0xC8C2, 0xC8B6, 0xC8AA, 0xC89F, 0xC894, - 0xC889, 0xC87F, 0xC875, 0xC86C, 0xC863, 0xC85C, 0xC854, 0xC84E, - 0xC848, 0xC843, 0xC83F, 0xC83B, 0xC839, 0xC837, 0xC837, 0xC83C, - 0xC849, 0xC85D, 0xC878, 0xC898, 0xC8BB, 0xC8E1, 0xC907, 0xC92E, - 0xC954, 0xC977, 0xC997, 0xC9B2, 0xC9C6, 0xC9D3, 0xC9D8, 0x1E4A, - 0x1E4F, 0x1E5E, 0x1E74, 0x1E8F, 0x1EAC, 0x1ECA, 0x1EE5, 0x1EFB, - 0x1F0A, 0x1F0F, 0x1F0E, 0x1F0C, 0x1F08, 0x1F02, 0x1EFC, 0x1EF4, - 0x1EEB, 0x1EE1, 0x1ED7, 0x1ECC, 0x1EC0, 0x1EB5, 0x1EA9, 0x1E9D, - 0x1E91, 0x1E86, 0x1E7B, 0x1E70, 0x1E67, 0x1E5E, 0x1E56, 0x1E4F, - 0x1E49, 0x1E45, 0x1E42, 0x1E41, 0x1E42, 0x1E45, 0x1E4A, 0x1E50, - 0x1E58, 0x1E61, 0x1E6C, 0x1E77, 0x1E84, 0x1E91, 0x1E9F, 0x1EAF, - 0x1EBF, 0x1ED0, 0x1EE1, 0x1EF3, 0x1F05, 0x1F18, 0x1F2C, 0x1F3F, - 0x1F53, 0x1F67, 0x1F7B, 0x1F8F, 0x1FA3, 0x1FB7, 0x1FCA, 0x1FDD, - 0x1FF0, 0x2003, 0x2015, 0x2027, 0x2037, 0x2048, 0x2057, 0x2066, - 0x2073, 0x2080, 0x208C, 0x2096, 0x20A0, 0x20A8, 0x20AF, 0x20B4, - 0x20B8, 0x20BB, 0x20BB, 0x20B4, 0x20A0, 0x2082, 0x205A, 0x202A, - 0x1FF5, 0x1FBD, 0x1F82, 0x1F48, 0x1F10, 0x1EDB, 0x1EAB, 0x1E83, - 0x1E64, 0x1E51, 0x1E4A, 0x1B09, 0x1B06, 0x1AFF, 0x1AF4, 0x1AE5, - 0x1AD4, 0x1AC1, 0x1AAD, 0x1A99, 0x1A86, 0x1A73, 0x1A46, 0x1A4C, - 0x1A52, 0x1A58, 0x1A5F, 0x1A67, 0x1A6E, 0x1A76, 0x1A7F, 0x1A87, - 0x1A90, 0x1A98, 0x1AA1, 0x1AAA, 0x1AB3, 0x1ABB, 0x1AC4, 0x1ACC, - 0x1AD4, 0x1ADB, 0x1AE2, 0x1AE9, 0x1AF0, 0x1AF5, 0x1AFB, 0x1AFF, - 0x1B03, 0x1B06, 0x1B09, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0E, - 0x1B0F, 0x1B0E, 0x1B0E, 0x1B0D, 0x1B0C, 0x1B0B, 0x1B09, 0x1B07, - 0x1B05, 0x1B03, 0x1B00, 0x1AFE, 0x1AFB, 0x1AF7, 0x1AF4, 0x1AF0, - 0x1AED, 0x1AE9, 0x1AE5, 0x1AE0, 0x1ADC, 0x1AD8, 0x1AD3, 0x1ACE, - 0x1AC9, 0x1AC5, 0x1AC0, 0x1AB8, 0x1AAD, 0x1A9E, 0x1A8E, 0x1A7C, - 0x1A6A, 0x1A58, 0x1A49, 0x1A3B, 0x1A31, 0x1A2C, 0x1A2B, 0x1A30, - 0x1A39, 0x1A45, 0x1A54, 0x1A65, 0x1A77, 0x1A8B, 0x1A9F, 0x1AB3, - 0x1AC6, 0x1AD8, 0x1AE8, 0x1AF6, 0x1B00, 0x1B06, 0x1B09, 0x1144, - 0x1149, 0x1155, 0x1168, 0x1180, 0x119C, 0x11BB, 0x11DC, 0x11FD, - 0x121D, 0x123B, 0x1282, 0x1279, 0x126F, 0x1264, 0x1259, 0x124D, - 0x1240, 0x1233, 0x1225, 0x1218, 0x120A, 0x11FB, 0x11ED, 0x11DF, - 0x11D1, 0x11C3, 0x11B5, 0x11A8, 0x119B, 0x118F, 0x1183, 0x1178, - 0x116D, 0x1164, 0x115B, 0x1154, 0x114E, 0x1148, 0x1144, 0x1141, - 0x113F, 0x113D, 0x113C, 0x113B, 0x113B, 0x113B, 0x113C, 0x113D, - 0x113F, 0x1141, 0x1144, 0x1147, 0x114A, 0x114E, 0x1152, 0x1157, - 0x115C, 0x1161, 0x1166, 0x116C, 0x1172, 0x1179, 0x117F, 0x1186, - 0x118D, 0x1195, 0x119C, 0x11A4, 0x11AC, 0x11B4, 0x11BC, 0x11C8, - 0x11DA, 0x11F2, 0x120D, 0x1229, 0x1247, 0x1263, 0x127D, 0x1293, - 0x12A3, 0x12AC, 0x12AC, 0x12A5, 0x1296, 0x1283, 0x126B, 0x124F, - 0x1230, 0x1210, 0x11F0, 0x11CF, 0x11B0, 0x1193, 0x1179, 0x1164, - 0x1153, 0x1148, 0x1144, 0xAC44, 0xAC3E, 0xAC2C, 0xAC12, 0xABEF, - 0xABC7, 0xAB9A, 0xAB6B, 0xAB3C, 0xAB0D, 0xAAE2, 0xAA7B, 0xAA88, - 0xAA96, 0xAAA5, 0xAAB6, 0xAAC7, 0xAAD9, 0xAAEC, 0xAAFF, 0xAB13, - 0xAB28, 0xAB3C, 0xAB51, 0xAB65, 0xAB79, 0xAB8E, 0xABA1, 0xABB4, - 0xABC7, 0xABD9, 0xABEA, 0xABFA, 0xAC09, 0xAC16, 0xAC23, 0xAC2D, - 0xAC37, 0xAC3E, 0xAC44, 0xAC48, 0xAC4C, 0xAC4E, 0xAC50, 0xAC51, - 0xAC52, 0xAC51, 0xAC50, 0xAC4E, 0xAC4C, 0xAC49, 0xAC45, 0xAC41, - 0xAC3C, 0xAC36, 0xAC30, 0xAC2A, 0xAC23, 0xAC1B, 0xAC13, 0xAC0B, - 0xAC02, 0xABF9, 0xABEF, 0xABE5, 0xABDB, 0xABD0, 0xABC5, 0xABBA, - 0xABAF, 0xABA4, 0xAB98, 0xAB87, 0xAB6C, 0xAB4A, 0xAB23, 0xAAFA, - 0xAACF, 0xAAA6, 0xAA81, 0xAA62, 0xAA4A, 0xAA3D, 0xAA3C, 0xAA48, - 0xAA5C, 0xAA78, 0xAA9B, 0xAAC3, 0xAAEF, 0xAB1D, 0xAB4C, 0xAB7B, - 0xABA8, 0xABD2, 0xABF7, 0xAC17, 0xAC2F, 0xAC3E, 0xAC44, 0x0000, - 0xFFF2, 0xFFCB, 0xFF90, 0xFF48, 0xFEF7, 0xFEA2, 0xFE50, 0xFE07, - 0xFDCA, 0xFDA0, 0xFD8F, 0xFDC4, 0xFE4A, 0xFEEE, 0xFF7E, 0xFFC8, - 0xFFDD, 0xFFEE, 0xFFFD, 0x0008, 0x0011, 0x0018, 0x001D, 0x0020, - 0x0021, 0x0021, 0x0020, 0x001D, 0x001A, 0x0017, 0x0013, 0x000E, - 0x000A, 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0003, 0x0004, 0x0006, 0x0007, 0x0008, 0x000A, 0x000B, 0x000C, - 0x000D, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, - 0x0016, 0x0017, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, - 0x001D, 0x001E, 0x001F, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0025, 0x0026, 0x0027, 0x0028, 0x0028, 0x0029, 0x0029, 0x002A, - 0x0029, 0x0029, 0x0028, 0x0027, 0x0025, 0x0022, 0x001F, 0x001C, - 0x0019, 0x0015, 0x0012, 0x000E, 0x000B, 0x0008, 0x0005, 0x0003, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0000, 0xFFFD, - 0xFFF8, 0xFFF1, 0xFFEC, 0xFFEA, 0xFFEA, 0xFFEA, 0xFFEB, 0xFFEC, - 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF5, - 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFE, 0xFFFE, - 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, - 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, - 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBF40, - 0xBF4F, 0xBF79, 0xBFB8, 0xC007, 0xC060, 0xC0BE, 0xC11B, 0xC172, - 0xC1BD, 0xC1F7, 0xC21A, 0xC206, 0xC1B3, 0xC144, 0xC0DE, 0xC0A3, - 0xC089, 0xC070, 0xC058, 0xC041, 0xC02B, 0xC016, 0xC001, 0xBFEE, - 0xBFDB, 0xBFCA, 0xBFB9, 0xBFA9, 0xBF9B, 0xBF8D, 0xBF80, 0xBF75, - 0xBF6A, 0xBF60, 0xBF58, 0xBF50, 0xBF4A, 0xBF45, 0xBF40, 0xBF3D, - 0xBF3A, 0xBF38, 0xBF37, 0xBF36, 0xBF36, 0xBF37, 0xBF38, 0xBF3A, - 0xBF3C, 0xBF3F, 0xBF43, 0xBF47, 0xBF4C, 0xBF51, 0xBF57, 0xBF5D, - 0xBF64, 0xBF6C, 0xBF74, 0xBF7C, 0xBF85, 0xBF8F, 0xBF99, 0xBFA4, - 0xBFAF, 0xBFBA, 0xBFC6, 0xBFD3, 0xBFE0, 0xBFF2, 0xC00C, 0xC02C, - 0xC052, 0xC07B, 0xC0A6, 0xC0D2, 0xC0FC, 0xC123, 0xC145, 0xC162, - 0xC177, 0xC182, 0xC183, 0xC178, 0xC162, 0xC143, 0xC11D, 0xC0F0, - 0xC0BF, 0xC08C, 0xC057, 0xC022, 0xBFF0, 0xBFC1, 0xBF97, 0xBF73, - 0xBF58, 0xBF46, 0xBF40, 0x2537, 0x252D, 0x2512, 0x24EB, 0x24B9, - 0x2482, 0x244A, 0x2413, 0x23E2, 0x23BA, 0x239F, 0x2395, 0x2397, - 0x239C, 0x23A3, 0x23AD, 0x23B9, 0x23C8, 0x23D8, 0x23EA, 0x23FD, - 0x2412, 0x2427, 0x243D, 0x2453, 0x246A, 0x2480, 0x2497, 0x24AC, - 0x24C1, 0x24D6, 0x24E8, 0x24FA, 0x2509, 0x2517, 0x2523, 0x252C, - 0x2532, 0x2536, 0x2537, 0x2535, 0x2532, 0x252D, 0x2528, 0x2521, - 0x2519, 0x2510, 0x2506, 0x24FB, 0x24EF, 0x24E3, 0x24D6, 0x24C8, - 0x24B9, 0x24AA, 0x249B, 0x248B, 0x247B, 0x246B, 0x245B, 0x244A, - 0x2439, 0x2429, 0x2418, 0x2408, 0x23F8, 0x23E8, 0x23D9, 0x23CA, - 0x23BB, 0x23AD, 0x23A0, 0x2393, 0x2387, 0x237C, 0x2372, 0x2369, - 0x2360, 0x2359, 0x2353, 0x234F, 0x234B, 0x2349, 0x2348, 0x234E, - 0x235D, 0x2376, 0x2395, 0x23BB, 0x23E5, 0x2411, 0x243F, 0x246E, - 0x249A, 0x24C4, 0x24E9, 0x2509, 0x2521, 0x2531, 0x2537, 0xD64A, - 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, - 0x4171, 0xBF5F, 0x0000, 0xFF82, 0xFE28, 0xFC20, 0xF999, 0xF6C3, - 0xF3CD, 0xF0E6, 0xEE3E, 0xEC02, 0xE987, 0xE6E6, 0xE576, 0xE68F, - 0xEA93, 0xF065, 0xF725, 0xFDF2, 0x03EA, 0x082F, 0x0A52, 0x0AE1, - 0x0A71, 0x0996, 0x08E6, 0x0878, 0x07FF, 0x077D, 0x06F3, 0x0661, - 0x05CA, 0x052D, 0x048B, 0x03E7, 0x0340, 0x0298, 0x01F0, 0x0148, - 0x00A2, 0x0000, 0xFF2F, 0xFE27, 0xFD2A, 0xFC77, 0xFC4F, 0xFD02, - 0xFE66, 0x0001, 0x015C, 0x01FF, 0x019D, 0x0086, 0xFF2E, 0xFE05, - 0xFD7F, 0xFDBB, 0xFE6F, 0xFF6F, 0x0093, 0x01B1, 0x029F, 0x0333, - 0x0343, 0x02A4, 0x012E, 0xFDE0, 0xF86F, 0xF1C1, 0xEABA, 0xE440, - 0xDF38, 0xDC87, 0xDC8D, 0xDE9E, 0xE20D, 0xE630, 0xEA5A, 0xEDDF, - 0xF014, 0xF0F2, 0xF113, 0xF0B3, 0xF011, 0xEF6B, 0xEF00, 0xEF0E, - 0xEF78, 0xEFF7, 0xF08C, 0xF138, 0xF1FC, 0xF2D8, 0xF3CD, 0xF4DB, - 0xF604, 0xF7D4, 0xFA67, 0xFD11, 0xFF28, 0x0000, 0x0000, 0x001B, - 0x0067, 0x00D7, 0x0162, 0x01FB, 0x0297, 0x032C, 0x03AF, 0x0414, - 0x0461, 0x0491, 0x0488, 0x042B, 0x0375, 0x0285, 0x0173, 0x0058, - 0xFF50, 0xFE70, 0xFDAB, 0xFCEF, 0xFC53, 0xFBED, 0xFBD3, 0xFBEB, - 0xFC0B, 0xFC31, 0xFC5F, 0xFC94, 0xFCD0, 0xFD13, 0xFD5C, 0xFDAB, - 0xFE00, 0xFE5C, 0xFEBD, 0xFF23, 0xFF8F, 0x0000, 0x00C8, 0x0200, - 0x0350, 0x0462, 0x04DE, 0x047F, 0x037E, 0x0245, 0x013C, 0x00CC, - 0x013A, 0x023E, 0x0374, 0x0475, 0x04DD, 0x04C5, 0x048C, 0x0437, - 0x03CB, 0x034D, 0x02C1, 0x022B, 0x0192, 0x00F9, 0x0064, 0xFFB3, - 0xFED0, 0xFDD7, 0xFCE4, 0xFC14, 0xFB81, 0xFB47, 0xFB76, 0xFBFC, - 0xFCBE, 0xFDA4, 0xFE94, 0xFF75, 0x002D, 0x00D5, 0x018A, 0x023E, - 0x02E2, 0x0366, 0x03BB, 0x03D3, 0x03AA, 0x034F, 0x02CE, 0x0235, - 0x018E, 0x00E8, 0x004E, 0xFFCD, 0xFF70, 0xFF52, 0xFF71, 0xFFAC, - 0xFFE6, 0x0000, 0xFC62, 0xFC99, 0xFD2E, 0xFE0A, 0xFF16, 0x003A, - 0x015F, 0x026D, 0x034E, 0x03E9, 0x044D, 0x045B, 0x03BE, 0x021D, - 0xFF22, 0xFB1A, 0xF6AD, 0xF27D, 0xEF31, 0xED6E, 0xEE10, 0xF0C0, - 0xF454, 0xF7A2, 0xF97D, 0xFA2C, 0xFABA, 0xFB2B, 0xFB83, 0xFBC4, - 0xFBF2, 0xFC11, 0xFC24, 0xFC2D, 0xFC31, 0xFC32, 0xFC34, 0xFC3B, - 0xFC49, 0xFC62, 0xFC6D, 0xFC58, 0xFC33, 0xFC0C, 0xFBF1, 0xFBE3, - 0xFBD8, 0xFBD0, 0xFBC7, 0xFBBD, 0xFBAF, 0xFB9E, 0xFB8E, 0xFB82, - 0xFB7D, 0xFB8A, 0xFBAA, 0xFBD5, 0xFC04, 0xFC30, 0xFC50, 0xFC5D, - 0xFC4F, 0xFC1E, 0xFBC4, 0xFAD7, 0xF938, 0xF746, 0xF564, 0xF3F3, - 0xF353, 0xF3E6, 0xF5FF, 0xF962, 0xFD9D, 0x023B, 0x06CD, 0x0ADE, - 0x0DFB, 0x1068, 0x12A1, 0x1488, 0x1602, 0x16F2, 0x173B, 0x16C0, - 0x156F, 0x1365, 0x10CE, 0x0DD9, 0x0AB1, 0x0784, 0x047E, 0x01CC, - 0xFF9B, 0xFE11, 0xFD1D, 0xFC9D, 0xFC6A, 0xFC62, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xFFEA, 0xFFBC, 0xFF9A, 0xFFA7, 0x0005, 0x00FA, 0x0270, 0x03FD, - 0x0539, 0x05B9, 0x05B0, 0x0596, 0x056D, 0x0536, 0x04F4, 0x04A8, - 0x0453, 0x03F7, 0x0397, 0x0333, 0x02CD, 0x0267, 0x0203, 0x01A2, - 0x0146, 0x00F1, 0x00A4, 0x0061, 0x002A, 0x0000, 0xFFE0, 0xFFC4, - 0xFFAC, 0xFF99, 0xFF89, 0xFF7C, 0xFF73, 0xFF6C, 0xFF68, 0xFF66, - 0xFF66, 0xFF68, 0xFF6C, 0xFF70, 0xFF75, 0xFF7B, 0xFF81, 0xFF87, - 0xFF8D, 0xFF92, 0xFF96, 0xFF99, 0xFF9B, 0xFF9A, 0xFF98, 0xFF95, - 0xFF94, 0xFF93, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, - 0xFF91, 0xFF90, 0xFF8F, 0xFF91, 0xFF94, 0xFF98, 0xFF9D, 0xFFA3, - 0xFFA9, 0xFFAF, 0xFFB6, 0xFFBD, 0xFFC3, 0xFFCA, 0xFFD1, 0xFFD8, - 0xFFDF, 0xFFE5, 0xFFEB, 0xFFF0, 0xFFF5, 0xFFF9, 0xFFFC, 0xFFFE, - 0x0000, 0x0000, 0x0000, 0xFFEF, 0xFFC3, 0xFF89, 0xFF50, 0xFF24, - 0xFF12, 0xFF28, 0xFF73, 0x0000, 0x0168, 0x03C7, 0x066C, 0x08A6, - 0x09C7, 0x0967, 0x07FE, 0x0622, 0x046D, 0x0376, 0x0316, 0x02BF, - 0x026E, 0x0225, 0x01E3, 0x01A6, 0x0170, 0x013F, 0x0113, 0x00EC, - 0x00C9, 0x00AA, 0x008D, 0x0074, 0x005D, 0x0048, 0x0035, 0x0022, - 0x0011, 0x0000, 0xFFF1, 0xFFE4, 0xFFDB, 0xFFD5, 0xFFD1, 0xFFD0, - 0xFFD1, 0xFFD4, 0xFFD8, 0xFFDF, 0xFFE6, 0xFFEF, 0xFFF9, 0x0002, - 0x000D, 0x0019, 0x0024, 0x002F, 0x003A, 0x0044, 0x004E, 0x0056, - 0x005E, 0x0063, 0x0068, 0x0054, 0x001E, 0xFFDC, 0xFF9E, 0xFF7B, - 0xFF84, 0xFFCF, 0x006E, 0x01D7, 0x041C, 0x06BE, 0x093D, 0x0B18, - 0x0BD0, 0x0BB8, 0x0B7C, 0x0B1F, 0x0AA6, 0x0A13, 0x096C, 0x08B3, - 0x07ED, 0x071E, 0x0648, 0x0572, 0x049D, 0x03CE, 0x0309, 0x0252, - 0x01AD, 0x011C, 0x00A6, 0x004C, 0x0013, 0x0000, 0x0884, 0x0847, - 0x07A3, 0x06B4, 0x0597, 0x0468, 0x0343, 0x0245, 0x018A, 0x012E, - 0x018E, 0x02B0, 0x042D, 0x059E, 0x069D, 0x071D, 0x0762, 0x0780, - 0x078B, 0x0797, 0x07AA, 0x07BD, 0x07CE, 0x07DE, 0x07EE, 0x07FD, - 0x080B, 0x0818, 0x0825, 0x0831, 0x083C, 0x0846, 0x0850, 0x0859, - 0x0862, 0x086A, 0x0871, 0x0878, 0x087E, 0x0884, 0x0889, 0x088D, - 0x0890, 0x0893, 0x0895, 0x0897, 0x0898, 0x0898, 0x0899, 0x0898, - 0x0898, 0x0897, 0x0896, 0x0895, 0x0893, 0x0892, 0x0890, 0x088F, - 0x088D, 0x088C, 0x088B, 0x088A, 0x0889, 0x0889, 0x0889, 0x0889, - 0x088A, 0x088B, 0x088B, 0x088C, 0x088C, 0x088B, 0x0889, 0x0885, - 0x087F, 0x0879, 0x0872, 0x086D, 0x086B, 0x086B, 0x086B, 0x086C, - 0x086D, 0x086E, 0x086F, 0x0871, 0x0872, 0x0874, 0x0876, 0x0878, - 0x0879, 0x087B, 0x087D, 0x087E, 0x0880, 0x0881, 0x0882, 0x0883, - 0x0883, 0x0884, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, - 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0009, 0x0008, 0x0008, 0x0008, 0x0008, 0x0007, 0x0007, - 0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, - 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, - 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, - 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, - 0x0009, 0x0014, 0x0021, 0x0031, 0x0041, 0x0051, 0x0060, 0x006D, - 0x0077, 0x007E, 0x007F, 0x007F, 0x007E, 0x007C, 0x007A, 0x0077, - 0x0074, 0x0070, 0x006B, 0x0067, 0x0062, 0x005C, 0x0057, 0x0051, - 0x004B, 0x0045, 0x003F, 0x0038, 0x0032, 0x002C, 0x0025, 0x001F, - 0x0019, 0x0014, 0x000E, 0x0009, 0x0004, 0x0000, 0xFFFC, 0xFFF7, - 0xFFF2, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDB, 0xFFD5, 0xFFCF, 0xFFC9, - 0xFFC3, 0xFFBD, 0xFFB7, 0xFFB1, 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, - 0xFF96, 0xFF92, 0xFF8E, 0xFF8A, 0xFF87, 0xFF85, 0xFF83, 0xFF81, - 0xFF80, 0xFF80, 0xFF80, 0xFF81, 0xFF83, 0xFF88, 0xFF92, 0xFFA0, - 0xFFB2, 0xFFC5, 0xFFDB, 0xFFF2, 0x0007, 0x001D, 0x0032, 0x0044, - 0x0054, 0x005F, 0x0066, 0x0069, 0x0068, 0x0064, 0x005D, 0x0055, - 0x004B, 0x0041, 0x0035, 0x002A, 0x001F, 0x0015, 0x000C, 0x0005, - 0x0001, 0x0000, 0x40A1, 0x40A4, 0x40AC, 0x40B8, 0x40C7, 0x40D7, - 0x40E8, 0x40F8, 0x4107, 0x4112, 0x4118, 0x411A, 0x4119, 0x4118, - 0x4116, 0x4114, 0x4111, 0x410D, 0x4109, 0x4105, 0x4101, 0x40FC, - 0x40F6, 0x40F1, 0x40EC, 0x40E6, 0x40E0, 0x40DA, 0x40D4, 0x40CF, - 0x40C9, 0x40C3, 0x40BE, 0x40B9, 0x40B4, 0x40AF, 0x40AB, 0x40A7, - 0x40A4, 0x40A1, 0x409E, 0x409C, 0x409A, 0x4098, 0x4096, 0x4094, - 0x4092, 0x4090, 0x408F, 0x408D, 0x408C, 0x408A, 0x4089, 0x4088, - 0x4087, 0x4086, 0x4085, 0x4084, 0x4084, 0x4083, 0x4082, 0x4082, - 0x4081, 0x4080, 0x4080, 0x407F, 0x407F, 0x407E, 0x407E, 0x407D, - 0x407D, 0x407D, 0x407D, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, - 0x4083, 0x4084, 0x4086, 0x4088, 0x4089, 0x408A, 0x408C, 0x408D, - 0x408F, 0x4091, 0x4093, 0x4094, 0x4096, 0x4098, 0x409A, 0x409C, - 0x409D, 0x409E, 0x40A0, 0x40A0, 0x40A1, 0x40A1, +0x0000, 0x0001, 0x0003, 0x0006, 0x000A, 0x000F, 0x0015, 0x001A, 0x0020, + 0x0025, 0x002A, 0x002E, 0x0032, 0x0034, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0034, + 0x0033, 0x0030, 0x002D, 0x002A, 0x0026, 0x0021, 0x001D, 0x0018, 0x0013, + 0x000F, 0x000B, 0x0007, 0x0004, 0x0002, 0x0001, 0x0000, 0x00AA, 0x00A9, + 0x00A6, 0x00A1, 0x009C, 0x0095, 0x008D, 0x0086, 0x007E, 0x0076, 0x0070, + 0x006A, 0x0065, 0x0062, 0x0061, 0x0062, 0x0064, 0x0066, 0x0069, 0x006D, + 0x0070, 0x0073, 0x0076, 0x0078, 0x0078, 0x0078, 0x0076, 0x0073, 0x0070, + 0x006D, 0x0069, 0x0066, 0x0064, 0x0062, 0x0061, 0x0062, 0x0064, 0x0068, + 0x006D, 0x0073, 0x007A, 0x0081, 0x0088, 0x0090, 0x0097, 0x009F, 0x00A5, + 0x00AB, 0x00B0, 0x00B4, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B1, + 0x00B0, 0x00AF, 0x00AD, 0x00AC, 0x00AB, 0x00AB, 0x00AA, 0x0000, 0x0000, + 0x3FFF, 0x0000, 0x0000, 0x0000, 0x40A1, 0x0000, 0xFFD3, 0xFF59, 0xFE9D, + 0xFDAC, 0xFC94, 0xFB62, 0xFA23, 0xF8E3, 0xF7B1, 0xF699, 0xF5A9, 0xF4EC, + 0xF472, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, + 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, + 0xF446, 0xF446, 0xF446, 0xF446, 0xF43C, 0xF421, 0xF3F5, 0xF3BD, 0xF379, + 0xF32D, 0xF2DB, 0xF286, 0xF22F, 0xF1DA, 0xF188, 0xF13C, 0xF0F9, 0xF0C0, + 0xF095, 0xF079, 0xF06F, 0xF0A3, 0xF132, 0xF208, 0xF310, 0xF437, 0xF567, + 0xF68E, 0xF796, 0xF86B, 0xF8FA, 0xF92F, 0xF8FA, 0xF86B, 0xF796, 0xF68E, + 0xF567, 0xF437, 0xF310, 0xF208, 0xF132, 0xF0A3, 0xF06F, 0xF08F, 0xF0E8, + 0xF173, 0xF229, 0xF301, 0xF3F3, 0xF4F9, 0xF609, 0xF71D, 0xF82C, 0xF92F, + 0xFA1F, 0xFAFB, 0xFBC4, 0xFC7A, 0xFD1E, 0xFDB1, 0xFE31, 0xFEA1, 0xFF01, + 0xFF51, 0xFF91, 0xFFC2, 0xFFE4, 0xFFF8, 0x0000, 0xFFFF, 0x0006, 0x0018, + 0x0033, 0x0055, 0x007D, 0x00A9, 0x00D6, 0x0104, 0x0130, 0x0158, 0x017A, + 0x0195, 0x01A6, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, + 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, + 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01A5, 0x0190, 0x016E, 0x0142, + 0x010E, 0x00D3, 0x0094, 0x0052, 0x000E, 0xFFCB, 0xFF8C, 0xFF51, 0xFF1D, + 0xFEF1, 0xFECF, 0xFEBA, 0xFEB2, 0xFEB7, 0xFEC2, 0xFED4, 0xFEEA, 0xFF02, + 0xFF1B, 0xFF33, 0xFF49, 0xFF5A, 0xFF66, 0xFF6B, 0xFF66, 0xFF5A, 0xFF49, + 0xFF33, 0xFF1B, 0xFF02, 0xFEEA, 0xFED4, 0xFEC2, 0xFEB7, 0xFEB2, 0xFEB5, + 0xFEBC, 0xFEC8, 0xFED6, 0xFEE8, 0xFEFC, 0xFF12, 0xFF28, 0xFF3F, 0xFF55, + 0xFF6B, 0xFF7F, 0xFF91, 0xFFA2, 0xFFB1, 0xFFBF, 0xFFCC, 0xFFD7, 0xFFE0, + 0xFFE9, 0xFFF0, 0xFFF5, 0xFFFA, 0xFFFD, 0xFFFE, 0xFFFF, 0x0884, 0x08A3, + 0x08F9, 0x097D, 0x0A27, 0x0AEC, 0x0BC3, 0x0CA4, 0x0D85, 0x0E5C, 0x0F21, + 0x0FCA, 0x104F, 0x10A5, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, + 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, + 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x1090, 0x0FFD, 0x0F17, + 0x0DEB, 0x0C85, 0x0AF2, 0x093F, 0x0779, 0x05AB, 0x03E2, 0x022C, 0x0095, + 0xFF27, 0xFDF3, 0xFD03, 0xFC64, 0xFC23, 0xFC16, 0xFC0B, 0xFC03, 0xFBFC, + 0xFBF7, 0xFBF4, 0xFBF1, 0xFBF0, 0xFBEF, 0xFBEF, 0xFBEF, 0xFBF0, 0xFBF3, + 0xFBF8, 0xFBFE, 0xFC05, 0xFC0C, 0xFC13, 0xFC19, 0xFC1E, 0xFC22, 0xFC23, + 0xFC22, 0xFC1E, 0xFC19, 0xFC13, 0xFC0C, 0xFC05, 0xFBFE, 0xFBF8, 0xFBF3, + 0xFBF0, 0xFBEF, 0xFC18, 0xFC8B, 0xFD3E, 0xFE24, 0xFF32, 0x005D, 0x0199, + 0x02DB, 0x0416, 0x0541, 0x064F, 0x0735, 0x07E7, 0x085B, 0x0884, 0x0000, + 0xFF9C, 0xFE87, 0xFCDE, 0xFABE, 0xF844, 0xF590, 0xF2BE, 0xEFEC, 0xED37, + 0xEABE, 0xE89E, 0xE6F4, 0xE5DF, 0xE57C, 0xE58C, 0xE5B8, 0xE5F8, 0xE646, + 0xE69B, 0xE6EF, 0xE73D, 0xE77D, 0xE7A9, 0xE7B9, 0xE7A9, 0xE77D, 0xE73D, + 0xE6EF, 0xE69B, 0xE646, 0xE5F8, 0xE5B8, 0xE58C, 0xE57C, 0xE5D9, 0xE6DF, + 0xE878, 0xEA8E, 0xED0A, 0xEFD5, 0xF2D8, 0xF5FE, 0xF92E, 0xFC54, 0xFF57, + 0x0223, 0x049F, 0x06B5, 0x084E, 0x0954, 0x09B1, 0x0997, 0x0951, 0x08E9, + 0x0868, 0x07D8, 0x0744, 0x06B4, 0x0633, 0x05CB, 0x0585, 0x056C, 0x0585, + 0x05CB, 0x0633, 0x06B4, 0x0744, 0x07D8, 0x0868, 0x08E9, 0x0951, 0x0997, + 0x09B1, 0x09A3, 0x097D, 0x093F, 0x08EE, 0x088C, 0x081B, 0x079E, 0x0719, + 0x068D, 0x05FD, 0x056C, 0x04DC, 0x044F, 0x03C5, 0x0341, 0x02C2, 0x024B, + 0x01DB, 0x0174, 0x0118, 0x00C7, 0x0082, 0x004B, 0x0022, 0x0009, 0x0000, + 0xFFFF, 0x0033, 0x00C3, 0x01A0, 0x02BB, 0x0404, 0x056C, 0x06E3, 0x085A, + 0x09C2, 0x0B0B, 0x0C26, 0x0D03, 0x0D93, 0x0DC6, 0x0DA7, 0x0D53, 0x0CD7, + 0x0C40, 0x0B9C, 0x0AF8, 0x0A61, 0x09E5, 0x0991, 0x0972, 0x0991, 0x09E5, + 0x0A61, 0x0AF8, 0x0B9C, 0x0C40, 0x0CD7, 0x0D53, 0x0DA7, 0x0DC6, 0x0D95, + 0x0D08, 0x0C2C, 0x0B0E, 0x09B8, 0x0837, 0x0697, 0x04E4, 0x032A, 0x0175, + 0xFFD0, 0xFE49, 0xFCEC, 0xFBC3, 0xFADC, 0xFA41, 0xFA00, 0xF9F1, 0xF9E5, + 0xF9DB, 0xF9D3, 0xF9CD, 0xF9C9, 0xF9C6, 0xF9C5, 0xF9C4, 0xF9C3, 0xF9C3, + 0xF9C5, 0xF9C9, 0xF9CE, 0xF9D6, 0xF9DE, 0xF9E6, 0xF9EE, 0xF9F5, 0xF9FB, + 0xF9FF, 0xFA00, 0xF9FF, 0xF9FB, 0xF9F5, 0xF9EE, 0xF9E6, 0xF9DE, 0xF9D6, + 0xF9CE, 0xF9C9, 0xF9C5, 0xF9C3, 0xF9D8, 0xFA11, 0xFA69, 0xFADB, 0xFB61, + 0xFBF5, 0xFC91, 0xFD31, 0xFDCD, 0xFE61, 0xFEE7, 0xFF59, 0xFFB1, 0xFFEB, + 0xFFFF, 0xFC61, 0xFC5F, 0xFC5A, 0xFC50, 0xFC42, 0xFC30, 0xFC18, 0xFBFB, + 0xFBD9, 0xFBB0, 0xFB81, 0xFB4B, 0xFB0F, 0xFACA, 0xFA7F, 0xFA2C, 0xF9D4, + 0xF97A, 0xF922, 0xF8CF, 0xF884, 0xF844, 0xF812, 0xF7F2, 0xF7E6, 0xF7EF, + 0xF809, 0xF832, 0xF869, 0xF8AC, 0xF8FA, 0xF951, 0xF9B0, 0xFA15, 0xFA7F, + 0xFAEC, 0xFB5C, 0xFBCD, 0xFC3F, 0xFCB2, 0xFD23, 0xFD93, 0xFE00, 0xFE6A, + 0xFED0, 0xFF30, 0xFF8B, 0xFFE0, 0x002E, 0x0073, 0x00AE, 0x00E0, 0x0109, + 0x012A, 0x0145, 0x015A, 0x0169, 0x0174, 0x017C, 0x0180, 0x0183, 0x0184, + 0x0184, 0x0180, 0x0175, 0x0166, 0x0153, 0x013D, 0x0127, 0x0111, 0x00FE, + 0x00EE, 0x00E4, 0x00E0, 0x00E4, 0x00EE, 0x00FE, 0x0111, 0x0127, 0x013D, + 0x0153, 0x0166, 0x0175, 0x0180, 0x0184, 0x0173, 0x0144, 0x00FB, 0x009D, + 0x002F, 0xFFB4, 0xFF33, 0xFEB0, 0xFE2F, 0xFDB6, 0xFD47, 0xFCEA, 0xFCA1, + 0xFC72, 0xFC61, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFAD3, 0xFA05, 0xF8CA, + 0xF737, 0xF561, 0xF360, 0xF148, 0xEF31, 0xED30, 0xEB5A, 0xE9C7, 0xE88B, + 0xE7BE, 0xE775, 0xE7B8, 0xE870, 0xE97E, 0xEAC7, 0xEC2C, 0xED92, 0xEEDA, + 0xEFE8, 0xF0A0, 0xF0E4, 0xF0A0, 0xEFE8, 0xEEDA, 0xED92, 0xEC2C, 0xEAC7, + 0xE97E, 0xE870, 0xE7B8, 0xE775, 0xE862, 0xEB06, 0xEF26, 0xF489, 0xFAF6, + 0x0236, 0x0A0D, 0x1243, 0x1AA0, 0x22E9, 0x2AE6, 0x325D, 0xB917, 0xBED9, + 0xC36A, 0xC693, 0xC818, 0xC8AB, 0xC924, 0xC984, 0xC9D0, 0xCA08, 0xCA30, + 0xCA4C, 0xCA5C, 0xCA64, 0xCA68, 0xCA68, 0xCA5A, 0xCA34, 0xC9FC, 0xC9B6, + 0xC968, 0xC918, 0xC8CA, 0xC884, 0xC84C, 0xC826, 0xC818, 0xC826, 0xC84C, + 0xC884, 0xC8CA, 0xC918, 0xC968, 0xC9B6, 0xC9FC, 0xCA34, 0xCA5A, 0xCA68, + 0xC965, 0xC68E, 0xC229, 0xBC7F, 0x35DA, 0x2E7F, 0x26B8, 0x1ECD, 0x1706, + 0x0FAC, 0x0906, 0x035C, 0xFEF6, 0xFC1F, 0xFB1C, 0xD2DB, 0xD2ED, 0xD320, + 0xD374, 0xD3E6, 0xD474, 0xD51D, 0xD5DE, 0xD6B5, 0xD7A2, 0xD8A1, 0xD9B0, + 0xDACF, 0xDBFB, 0xDD31, 0xDE70, 0xDFB0, 0xE0E9, 0xE213, 0xE325, 0xE417, + 0xE4E2, 0xE57D, 0xE5E0, 0xE603, 0xE5C4, 0xE518, 0xE41B, 0xE2E8, 0xE19A, + 0xE04C, 0xDF19, 0xDE1C, 0xDD71, 0xDD31, 0xDDE1, 0xDFD3, 0xE2DD, 0xE6D3, + 0xEB8B, 0xF0DA, 0xF694, 0xFC8E, 0x029F, 0x089A, 0x0E54, 0x13A2, 0x67A5, + 0x63AF, 0x60A5, 0x5EB3, 0x5E03, 0x5E1D, 0x5E62, 0x5ECA, 0x5F4A, 0x5FD9, + 0x606C, 0x60FB, 0x617B, 0x61E3, 0x6228, 0x6242, 0x6228, 0x61E3, 0x617B, + 0x60FB, 0x606C, 0x5FD9, 0x5F4A, 0x5ECA, 0x5E62, 0x5E1D, 0x5E03, 0x5E04, + 0x5E0A, 0x5E19, 0x5E38, 0x5E69, 0x5EB4, 0x5F1B, 0x5FA5, 0x6056, 0x6133, + 0x6242, 0x6438, 0x67A2, 0x6C44, 0x71E1, 0x07C2, 0x00E2, 0xF9BB, 0xF28B, + 0xEB8C, 0xE4FC, 0xDF16, 0xDA17, 0xD63A, 0xD3BD, 0xD2DB, 0xD4B3, 0xD4F3, + 0xD5A6, 0xD6B9, 0xD819, 0xD9B2, 0xDB71, 0xDD44, 0xDF17, 0xE0D6, 0xE270, + 0xE3CF, 0xE4E2, 0xE595, 0xE5D5, 0xE58A, 0xE4BE, 0xE390, 0xE223, 0xE095, + 0xDF07, 0xDD9A, 0xDC6D, 0xDBA0, 0xDB55, 0xDBA0, 0xDC6D, 0xDD9A, 0xDF07, + 0xE095, 0xE223, 0xE390, 0xE4BE, 0xE58A, 0xE5D5, 0xE4B3, 0xE17E, 0xDC7B, + 0xD5F3, 0xCE2B, 0xC56B, 0xBBF9, 0xB21D, 0xA81E, 0x9E42, 0x94D1, 0x8C11, + 0x0449, 0xFDC0, 0xF8BD, 0xF588, 0xF466, 0xF475, 0xF49F, 0xF4DD, 0xF52B, + 0xF581, 0xF5DA, 0xF630, 0xF67D, 0xF6BB, 0xF6E5, 0xF6F4, 0xF6E5, 0xF6BB, + 0xF67D, 0xF630, 0xF5DA, 0xF581, 0xF52B, 0xF4DD, 0xF49F, 0xF475, 0xF466, + 0xF466, 0xF46A, 0xF473, 0xF485, 0xF4A3, 0xF4D0, 0xF50F, 0xF562, 0xF5CC, + 0xF652, 0xF6F4, 0xF8C2, 0xFC8F, 0x020C, 0x08E7, 0x90CF, 0x9976, 0xA289, + 0xABB9, 0xB4B5, 0xBD2C, 0xC4CD, 0xCB49, 0xD04E, 0xD38D, 0xD4B3, 0xFFFF, + 0x0055, 0x0143, 0x02B1, 0x0484, 0x06A4, 0x08F7, 0x0B64, 0x0DD0, 0x1023, + 0x1243, 0x1417, 0x1584, 0x1672, 0x16C8, 0x16A8, 0x1654, 0x15D8, 0x1541, + 0x149D, 0x13F8, 0x1361, 0x12E5, 0x1291, 0x1272, 0x1291, 0x12E5, 0x1361, + 0x13F8, 0x149D, 0x1541, 0x15D8, 0x1654, 0x16A8, 0x16C8, 0x1645, 0x14D4, + 0x1294, 0x0FA5, 0x0C26, 0x0838, 0x03FA, 0xFF8B, 0xFB0D, 0xF69F, 0xF261, + 0xEE73, 0xEAF4, 0xE805, 0xE5C5, 0xE453, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, + 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, + 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, + 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, + 0xE3D1, 0xE3D1, 0xE3D1, 0xE42D, 0xE530, 0xE6C0, 0xE8C3, 0xEB20, 0xEDBD, + 0xF080, 0xF350, 0xF614, 0xF8B1, 0xFB0E, 0xFD11, 0xFEA0, 0xFFA3, 0xFFFF, + 0xFFFF, 0x001C, 0x006B, 0x00E5, 0x0180, 0x0235, 0x02FA, 0x03C8, 0x0496, + 0x055C, 0x0611, 0x06AC, 0x0725, 0x0774, 0x0791, 0x077E, 0x074D, 0x0704, + 0x06AB, 0x064B, 0x05EB, 0x0592, 0x0549, 0x0518, 0x0506, 0x0518, 0x0549, + 0x0592, 0x05EB, 0x064B, 0x06AB, 0x0704, 0x074D, 0x077E, 0x0791, 0x077E, + 0x0749, 0x06F6, 0x068A, 0x060A, 0x057A, 0x04DE, 0x043B, 0x0396, 0x02F3, + 0x0258, 0x01C7, 0x0147, 0x00DB, 0x0088, 0x0053, 0x0041, 0x0041, 0x0041, + 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, + 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, + 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, + 0x0041, 0x0041, 0x0041, 0x0041, 0x0040, 0x003D, 0x003A, 0x0035, 0x0030, + 0x002A, 0x0023, 0x001D, 0x0017, 0x0011, 0x000B, 0x0007, 0x0003, 0x0001, + 0xFFFF, 0xCA4E, 0xCA1A, 0xC987, 0xC8A5, 0xC784, 0xC634, 0xC4C5, 0xC346, + 0xC1C7, 0xC057, 0xBF07, 0xBDE7, 0xBD05, 0xBC72, 0xBC3D, 0xBC4D, 0xBC79, + 0xBCB9, 0xBD06, 0xBD5B, 0xBDAF, 0xBDFD, 0xBE3D, 0xBE68, 0xBE78, 0xBE68, + 0xBE3D, 0xBDFD, 0xBDAF, 0xBD5B, 0xBD06, 0xBCB9, 0xBC79, 0xBC4D, 0xBC3D, + 0xBCE2, 0xBEB5, 0xC18D, 0xC544, 0xC9AF, 0xCEA8, 0xD405, 0xD99F, 0xDF4D, + 0xE4E7, 0xEA45, 0xEF3D, 0xF3A9, 0xF75F, 0xFA38, 0xFC0B, 0xFCAF, 0xFCAF, + 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, + 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, + 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, + 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFC0B, 0xFA3C, 0xF772, 0xF3D9, + 0xEF9F, 0xEAF3, 0xE603, 0xE0FB, 0xDC0A, 0xD75E, 0xD324, 0xCF8B, 0xCCC1, + 0xCAF3, 0xCA4E, 0xFFFF, 0xFFF3, 0xFFD0, 0xFF9A, 0xFF56, 0xFF06, 0xFEAF, + 0xFE55, 0xFDFA, 0xFDA3, 0xFD53, 0xFD0F, 0xFCDA, 0xFCB7, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, + 0xFCAA, 0xFCB0, 0xFCBF, 0xFCD7, 0xFCF6, 0xFD1B, 0xFD45, 0xFD72, 0xFDA2, + 0xFDD1, 0xFE01, 0xFE2E, 0xFE58, 0xFE7D, 0xFE9C, 0xFEB4, 0xFEC3, 0xFEC9, + 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, + 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, + 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, + 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFECD, 0xFED8, 0xFEE9, + 0xFEFF, 0xFF19, 0xFF36, 0xFF54, 0xFF73, 0xFF92, 0xFFAF, 0xFFC9, 0xFFDF, + 0xFFF0, 0xFFFB, 0xFFFF, 0xF97B, 0xF93D, 0xF88F, 0xF784, 0xF62F, 0xF4A2, + 0xF2EF, 0xF12A, 0xEF65, 0xEDB3, 0xEC26, 0xEAD0, 0xE9C5, 0xE918, 0xE8DA, + 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, + 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, + 0xE8DA, 0xE8DA, 0xE916, 0xE9C1, 0xEACC, 0xEC29, 0xEDC7, 0xEF9A, 0xF191, + 0xF39F, 0xF5B4, 0xF7C2, 0xF9B9, 0xFB8C, 0xFD2B, 0xFE87, 0xFF92, 0x003E, + 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, + 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, + 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, + 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x0064, 0x0024, + 0xFFC0, 0xFF40, 0xFEAA, 0xFE03, 0xFD54, 0xFCA1, 0xFBF1, 0xFB4B, 0xFAB5, + 0xFA35, 0xF9D2, 0xF992, 0xF97B, 0xED8B, 0xEDA5, 0xEDEC, 0xEE5A, 0xEEE6, + 0xEF89, 0xF03B, 0xF0F6, 0xF1B0, 0xF262, 0xF305, 0xF392, 0xF3FF, 0xF447, + 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, + 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, + 0xF460, 0xF460, 0xF460, 0xF453, 0xF42E, 0xF3F3, 0xF3A8, 0xF34D, 0xF2E7, + 0xF27A, 0xF207, 0xF193, 0xF120, 0xF0B3, 0xF04D, 0xEFF3, 0xEFA7, 0xEF6C, + 0xEF47, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, + 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, + 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, + 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF34, + 0xEF25, 0xEF0D, 0xEEEE, 0xEECA, 0xEEA2, 0xEE78, 0xEE4D, 0xEE23, 0xEDFB, + 0xEDD7, 0xEDB8, 0xEDA0, 0xED91, 0xED8B, 0x0001, 0xFFEC, 0xFFB3, 0xFF5C, + 0xFEED, 0xFE6C, 0xFDDE, 0xFD4B, 0xFCB7, 0xFC2A, 0xFBA8, 0xFB39, 0xFAE2, + 0xFAAA, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, + 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, + 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFAA3, 0xFACB, 0xFB08, 0xFB58, 0xFBB7, + 0xFC22, 0xFC95, 0xFD0E, 0xFD88, 0xFE00, 0xFE74, 0xFEDF, 0xFF3E, 0xFF8E, + 0xFFCB, 0xFFF2, 0x0001, 0xFFFE, 0x0009, 0x0027, 0x0054, 0x008E, 0x00D1, + 0x011A, 0x0166, 0x01B3, 0x01FC, 0x023F, 0x0279, 0x02A6, 0x02C3, 0x02CE, + 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, + 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, + 0x02CE, 0x02CE, 0x02C7, 0x02B2, 0x0293, 0x0269, 0x0238, 0x0200, 0x01C5, + 0x0186, 0x0147, 0x0108, 0x00CC, 0x0095, 0x0064, 0x003A, 0x001B, 0x0006, + 0xFFFE, 0xC170, 0xC170, 0xC16E, 0xC16B, 0xC167, 0xC162, 0xC15E, 0xC158, + 0xC153, 0xC14F, 0xC14A, 0xC146, 0xC143, 0xC141, 0xC141, 0xC141, 0xC141, + 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, + 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, + 0xC141, 0xC142, 0xC145, 0xC147, 0xC14B, 0xC14E, 0xC152, 0xC156, 0xC15B, + 0xC15F, 0xC163, 0xC166, 0xC16A, 0xC16C, 0xC16E, 0xC170, 0x054B, 0x04DF, + 0x03AF, 0x01DB, 0xFF81, 0xFCC2, 0xF9BD, 0xF690, 0xF35C, 0xF03F, 0xED58, + 0xEAC7, 0xE8AC, 0xE724, 0xE651, 0xE5EC, 0xE59B, 0xE55D, 0xE52E, 0xE50C, + 0xE4F5, 0xE4E7, 0xE4E0, 0xE4DE, 0xE4DD, 0xE4E8, 0xE504, 0xE52E, 0xE560, + 0xE597, 0xE5CE, 0xE600, 0xE62A, 0xE646, 0xE651, 0xE615, 0xE56D, 0xE466, + 0xE30D, 0xE172, 0xDFA3, 0xDDAD, 0xDBA0, 0xD988, 0xD774, 0xD573, 0xD392, + 0xD1DF, 0xD06A, 0xCF40, 0xCE6E, 0xCE04, 0xCDD7, 0xCDB2, 0xCD94, 0xCD7D, + 0xCD6B, 0xCD5F, 0xCD57, 0xCD52, 0xCD4F, 0xCD4E, 0xCD4E, 0xCD52, 0xCD5E, + 0xCD6F, 0xCD85, 0xCD9D, 0xCDB5, 0xCDCD, 0xCDE3, 0xCDF4, 0xCE00, 0xCE04, + 0xCE00, 0xCDF4, 0xCDE3, 0xCDCD, 0xCDB5, 0xCD9D, 0xCD85, 0xCD6F, 0xCD5E, + 0xCD52, 0xCD4E, 0xCE04, 0xD006, 0xD320, 0xD720, 0xDBD2, 0xE103, 0xE680, + 0xEC17, 0xF195, 0xF6C6, 0xFB78, 0xFF77, 0x0293, 0x0494, 0x054B, 0x2BD6, + 0x2BED, 0x2C30, 0x2C95, 0x2D17, 0x2DAE, 0x2E54, 0x2F00, 0x2FAD, 0x3052, + 0x30E9, 0x316B, 0x31D1, 0x3213, 0x322B, 0x31E9, 0x3137, 0x3030, 0x2EF1, + 0x2D96, 0x2C3B, 0x2AFC, 0x29F5, 0x2943, 0x2901, 0x2943, 0x29F5, 0x2AFC, + 0x2C3B, 0x2D96, 0x2EF1, 0x3030, 0x3137, 0x31E9, 0x322B, 0x31DC, 0x30FD, + 0x2F9F, 0x2DD3, 0x2BAC, 0x293B, 0x2692, 0x23C3, 0x20DF, 0x1DF9, 0x1B22, + 0x186B, 0x15E7, 0x13A8, 0x11BE, 0x103D, 0x0F35, 0x0E82, 0x0DEE, 0x0D79, + 0x0D1D, 0x0CD8, 0x0CA7, 0x0C86, 0x0C71, 0x0C67, 0x0C63, 0x0C63, 0x0C74, + 0x0CA2, 0x0CE7, 0x0D3C, 0x0D9B, 0x0DFD, 0x0E5C, 0x0EB1, 0x0EF6, 0x0F24, + 0x0F35, 0x0F24, 0x0EF6, 0x0EB1, 0x0E5C, 0x0DFD, 0x0D9B, 0x0D3C, 0x0CE7, + 0x0CA2, 0x0C74, 0x0C63, 0x0CC9, 0x0DEA, 0x0FA8, 0x11E7, 0x148A, 0x1775, + 0x1A8A, 0x1DAE, 0x20C4, 0x23AF, 0x2652, 0x2891, 0x2A4F, 0x2B6F, 0x2BD6, + 0xCCF5, 0xCC8A, 0xCB5F, 0xC994, 0xC749, 0xC49D, 0xC1B2, 0xBEA6, 0xBB9A, + 0xB8AF, 0xB603, 0xB3B8, 0xB1ED, 0xB0C1, 0xB057, 0xB060, 0xB079, 0xB09E, + 0xB0CB, 0xB0FC, 0xB12D, 0xB15A, 0xB17F, 0xB198, 0xB1A1, 0xB1A1, 0xB19E, + 0xB198, 0xB18C, 0xB178, 0xB15A, 0xB130, 0xB0F8, 0xB0B0, 0xB057, 0xAFD6, + 0xAF21, 0xAE3E, 0xAD36, 0xAC11, 0xAAD5, 0xA98C, 0xA83D, 0xA6F0, 0xA5AD, + 0xA47B, 0xA362, 0xA26B, 0xA19E, 0xA101, 0xA09D, 0xA07A, 0xA07D, 0xA083, + 0xA08D, 0xA099, 0xA0A6, 0xA0B4, 0xA0C1, 0xA0CD, 0xA0D7, 0xA0DD, 0xA0DF, + 0xA0DD, 0xA0D7, 0xA0CD, 0xA0C1, 0xA0B4, 0xA0A6, 0xA099, 0xA08D, 0xA083, + 0xA07D, 0xA07A, 0xA07A, 0xA07B, 0xA07C, 0xA07F, 0xA084, 0xA08B, 0xA094, + 0xA0A1, 0xA0B2, 0xA0C6, 0xA0DF, 0xA187, 0xA32D, 0xA5AA, 0xA8D6, 0xAC8B, + 0xB0A0, 0xB4EE, 0xB94E, 0xBD98, 0xC1A6, 0xC54F, 0xC86D, 0xCAD7, 0xCC67, + 0xCCF5, 0xFFFF, 0xFFD7, 0xFF66, 0xFEB9, 0xFDDB, 0xFCD9, 0xFBBF, 0xFA99, + 0xF972, 0xF858, 0xF756, 0xF679, 0xF5CB, 0xF55A, 0xF532, 0xF545, 0xF57A, + 0xF5C7, 0xF625, 0xF68A, 0xF6F0, 0xF74E, 0xF79B, 0xF7CF, 0xF7E3, 0xF7CF, + 0xF79B, 0xF74E, 0xF6F0, 0xF68A, 0xF625, 0xF5C7, 0xF57A, 0xF545, 0xF532, + 0xF53C, 0xF557, 0xF582, 0xF5BC, 0xF603, 0xF655, 0xF6B1, 0xF714, 0xF77E, + 0xF7EC, 0xF85E, 0xF8D0, 0xF942, 0xF9B2, 0xFA1E, 0xFA85, 0xFAE5, 0xFB3C, + 0xFB8B, 0xFBD1, 0xFC0F, 0xFC44, 0xFC71, 0xFC95, 0xFCB1, 0xFCC5, 0xFCD2, + 0xFCD5, 0xFCCA, 0xFCAA, 0xFC7B, 0xFC40, 0xFBFF, 0xFBBB, 0xFB7A, 0xFB3F, + 0xFB10, 0xFAF0, 0xFAE5, 0xFAEA, 0xFAFA, 0xFB14, 0xFB36, 0xFB60, 0xFB92, + 0xFBC9, 0xFC06, 0xFC48, 0xFC8D, 0xFCD5, 0xFD20, 0xFD6B, 0xFDB6, 0xFE01, + 0xFE4A, 0xFE91, 0xFED4, 0xFF12, 0xFF4C, 0xFF7F, 0xFFAA, 0xFFCE, 0xFFE9, + 0xFFF9, 0xFFFF, 0x0000, 0xFFD5, 0xFF60, 0xFEAC, 0xFDC5, 0xFCB9, 0xFB93, + 0xFA61, 0xF930, 0xF80A, 0xF6FE, 0xF617, 0xF563, 0xF4EE, 0xF4C4, 0xF4FC, + 0xF593, 0xF672, 0xF781, 0xF8A8, 0xF9CF, 0xFADE, 0xFBBD, 0xFC54, 0xFC8C, + 0xFC54, 0xFBBD, 0xFADE, 0xF9CF, 0xF8A8, 0xF781, 0xF672, 0xF593, 0xF4FC, + 0xF4C4, 0xF4FA, 0xF595, 0xF685, 0xF7C0, 0xF936, 0xFADA, 0xFCA0, 0xFE7A, + 0x005C, 0x0236, 0x03FC, 0x05A0, 0x0716, 0x0850, 0x0941, 0x09DB, 0x0A12, + 0x0A03, 0x09D9, 0x099B, 0x094E, 0x08F9, 0x08A0, 0x084B, 0x07FE, 0x07C0, + 0x0796, 0x0787, 0x0796, 0x07C0, 0x07FE, 0x084B, 0x08A0, 0x08F9, 0x094E, + 0x099B, 0x09D9, 0x0A03, 0x0A12, 0x0A0E, 0x0A01, 0x09EA, 0x09C9, 0x099D, + 0x0966, 0x0922, 0x08D1, 0x0872, 0x0804, 0x0787, 0x06FB, 0x0662, 0x05C0, + 0x0518, 0x046D, 0x03C2, 0x031C, 0x027C, 0x01E7, 0x0160, 0x00EA, 0x0089, + 0x003F, 0x0010, 0x0000, 0xC7DC, 0xC771, 0xC645, 0xC479, 0xC22C, 0xBF7E, + 0xBC90, 0xB983, 0xB675, 0xB387, 0xB0DA, 0xAE8D, 0xACC0, 0xAB94, 0xAB29, + 0xAB4E, 0xABB3, 0xAC48, 0xACFD, 0xADC2, 0xAE86, 0xAF3B, 0xAFD0, 0xB035, + 0xB05A, 0xB035, 0xAFD0, 0xAF3B, 0xAE86, 0xADC2, 0xACFD, 0xAC48, 0xABB3, + 0xAB4E, 0xAB29, 0xAB6E, 0xAC31, 0xAD64, 0xAEF7, 0xB0D9, 0xB2FC, 0xB54F, + 0xB7C2, 0xBA47, 0xBCCE, 0xBF46, 0xC1A0, 0xC3CC, 0xC5BB, 0xC75D, 0xC8A2, + 0xC97B, 0xCA0A, 0xCA80, 0xCADE, 0xCB27, 0xCB5E, 0xCB85, 0xCBA0, 0xCBB0, + 0xCBB8, 0xCBBB, 0xCBBB, 0xCBAE, 0xCB89, 0xCB52, 0xCB0E, 0xCAC2, 0xCA74, + 0xCA28, 0xC9E4, 0xC9AD, 0xC988, 0xC97B, 0xC988, 0xC9AD, 0xC9E4, 0xCA28, + 0xCA74, 0xCAC2, 0xCB0E, 0xCB52, 0xCB89, 0xCBAE, 0xCBBB, 0xCBAF, 0xCB8B, + 0xCB54, 0xCB0E, 0xCABA, 0xCA5F, 0xC9FD, 0xC99A, 0xC939, 0xC8DD, 0xC88A, + 0xC843, 0xC80C, 0xC7E9, 0xC7DC, 0xFFFF, 0x0080, 0x01E7, 0x040D, 0x06CE, + 0x0A01, 0x0D82, 0x1129, 0x14D0, 0x1850, 0x1B84, 0x1E44, 0x206B, 0x21D1, + 0x2252, 0x224D, 0x2242, 0x2231, 0x221D, 0x2206, 0x21F0, 0x21DC, 0x21CB, + 0x21BF, 0x21BB, 0x21BF, 0x21CB, 0x21DC, 0x21F0, 0x2206, 0x221D, 0x2231, + 0x2242, 0x224D, 0x2252, 0x21FA, 0x2101, 0x1F7D, 0x1D83, 0x1B29, 0x1883, + 0x15A7, 0x12AC, 0x0FA6, 0x0CAA, 0x09CF, 0x0729, 0x04CE, 0x02D4, 0x0150, + 0x0058, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFF4, 0xFFD4, 0xFFA3, 0xFF64, + 0xFF1B, 0xFECB, 0xFE78, 0xFE24, 0xFDD5, 0xFD8B, 0xFD4D, 0xFD1C, 0xFCFC, + 0xFCF0, 0xFD0E, 0xFD5D, 0xFDD2, 0xFE60, 0xFEFB, 0xFF96, 0x0025, 0x009A, + 0x00EA, 0x0107, 0x00EA, 0x009A, 0x0025, 0xFF96, 0xFEFB, 0xFE60, 0xFDD2, + 0xFD5D, 0xFD0E, 0xFCF0, 0xFCF8, 0xFD0E, 0xFD31, 0xFD5E, 0xFD94, 0xFDD0, + 0xFE11, 0xFE55, 0xFE9A, 0xFEDE, 0xFF1F, 0xFF5C, 0xFF91, 0xFFBE, 0xFFE1, + 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xF548, 0xF654, 0xF942, 0xFDC6, 0x0392, 0x0A57, 0x11C8, + 0x1997, 0x2176, 0x2918, 0x302E, 0x366B, 0x3B81, 0x3F23, 0x4102, 0x41CF, + 0x4274, 0x42F4, 0x4354, 0x4399, 0x43C7, 0x43E3, 0x43F2, 0x43F7, 0x43F8, + 0x43F7, 0x43F2, 0x43E3, 0x43C7, 0x4399, 0x4354, 0x42F4, 0x4274, 0x41CF, + 0x4102, 0x3F77, 0x3CBA, 0x38F5, 0x3453, 0x2EFF, 0x2922, 0x22E9, 0x1C7D, + 0x160A, 0x0FB9, 0x09B5, 0x0429, 0xFF3F, 0xFB23, 0xF7FF, 0xF5FD, 0xF548, + 0x0000, 0x0000, 0xBF5E, 0xD649, 0xD69E, 0xD78C, 0xD8F8, 0xDACB, 0xDCEA, + 0xDF3C, 0xE1A7, 0xE412, 0xE664, 0xE883, 0xEA56, 0xEBC3, 0xECB0, 0xED05, + 0xEC9C, 0xEB7F, 0xE9DB, 0xE7DE, 0xE5B3, 0xE388, 0xE18A, 0xDFE7, 0xDECA, + 0xDE61, 0xDECA, 0xDFE7, 0xE18A, 0xE388, 0xE5B3, 0xE7DE, 0xE9DB, 0xEB7F, + 0xEC9C, 0xED05, 0xECF5, 0xECC5, 0xEC77, 0xEC0C, 0xEB85, 0xEAE3, 0xEA27, + 0xE953, 0xE866, 0xE764, 0xE64C, 0xE51F, 0xE3E0, 0xE28E, 0xE12C, 0xDFB9, + 0xDE39, 0xDCAB, 0xDB1A, 0xD98C, 0xD80C, 0xD6A2, 0xD557, 0xD435, 0xD343, + 0xD28B, 0xD217, 0xD1EE, 0xD237, 0xD300, 0xD42C, 0xD59F, 0xD73D, 0xD8E9, + 0xDA87, 0xDBFA, 0xDD26, 0xDDEF, 0xDE39, 0xDDEF, 0xDD26, 0xDBFA, 0xDA87, + 0xD8E9, 0xD73D, 0xD59F, 0xD42C, 0xD300, 0xD237, 0xD1EE, 0xD1FC, 0xD224, + 0xD262, 0xD2B1, 0xD30F, 0xD376, 0xD3E4, 0xD453, 0xD4C1, 0xD528, 0xD585, + 0xD5D5, 0xD613, 0xD63B, 0xD649, 0xEC40, 0xEBF2, 0xEB17, 0xE9C7, 0xE819, + 0xE625, 0xE402, 0xE1C8, 0xDF8E, 0xDD6B, 0xDB76, 0xD9C9, 0xD879, 0xD79E, + 0xD750, 0xD75D, 0xD780, 0xD7B3, 0xD7F2, 0xD836, 0xD87A, 0xD8B9, 0xD8EC, + 0xD910, 0xD91C, 0xD910, 0xD8EC, 0xD8B9, 0xD87A, 0xD836, 0xD7F2, 0xD7B3, + 0xD780, 0xD75D, 0xD750, 0xD7AC, 0xD8B2, 0xDA4C, 0xDC63, 0xDEE2, 0xE1B1, + 0xE4BC, 0xE7EB, 0xEB29, 0xEE5E, 0xF176, 0xF45A, 0xF6F4, 0xF92D, 0xFAEF, + 0xFC24, 0xFCB7, 0xFCEB, 0xFD16, 0xFD38, 0xFD53, 0xFD67, 0xFD75, 0xFD7F, + 0xFD85, 0xFD88, 0xFD89, 0xFD89, 0xFD84, 0xFD77, 0xFD63, 0xFD4A, 0xFD2E, + 0xFD12, 0xFCF6, 0xFCDD, 0xFCC9, 0xFCBC, 0xFCB7, 0xFCBC, 0xFCC9, 0xFCDD, + 0xFCF6, 0xFD12, 0xFD2E, 0xFD4A, 0xFD63, 0xFD77, 0xFD84, 0xFD89, 0xFD51, + 0xFCB2, 0xFBBD, 0xFA81, 0xF90E, 0xF774, 0xF5C2, 0xF408, 0xF256, 0xF0BB, + 0xEF48, 0xEE0C, 0xED17, 0xEC78, 0xEC40, 0xB59D, 0xB501, 0xB34B, 0xB0A9, + 0xAD4D, 0xA963, 0xA51B, 0xA0A5, 0x9C2E, 0x97E6, 0x93FD, 0x90A0, 0x8DFF, + 0x8C49, 0x8BAC, 0x8C1F, 0x8D56, 0x8F20, 0x914C, 0x93AA, 0x9607, 0x9833, + 0x99FE, 0x9B35, 0x9BA7, 0x9B35, 0x99FE, 0x9833, 0x9607, 0x93AA, 0x914C, + 0x8F20, 0x8D56, 0x8C1F, 0x8BAC, 0x8C34, 0x8DB6, 0x9012, 0x9325, 0x96D1, + 0x9AF3, 0x9F6A, 0xA417, 0xA8D8, 0xAD8B, 0xB211, 0xB649, 0xBA11, 0xBD49, + 0xBFCF, 0xC183, 0xC245, 0xC27C, 0xC2AA, 0xC2CE, 0xC2EA, 0xC300, 0xC30F, + 0xC319, 0xC31F, 0xC322, 0xC324, 0xC324, 0xC31F, 0xC310, 0xC2FB, 0xC2E1, + 0xC2C3, 0xC2A5, 0xC288, 0xC26D, 0xC258, 0xC24A, 0xC245, 0xC24A, 0xC258, + 0xC26D, 0xC288, 0xC2A5, 0xC2C3, 0xC2E1, 0xC2FB, 0xC310, 0xC31F, 0xC324, + 0xC2F8, 0xC27C, 0xC1BC, 0xC0C4, 0xBFA2, 0xBE61, 0xBD0D, 0xBBB4, 0xBA60, + 0xB91F, 0xB7FD, 0xB705, 0xB646, 0xB5C9, 0xB59D, 0x0000, 0xFFF6, 0xFFDD, + 0xFFB7, 0xFF86, 0xFF4D, 0xFF0E, 0xFECD, 0xFE8C, 0xFE4E, 0xFE15, 0xFDE4, + 0xFDBD, 0xFDA5, 0xFD9C, 0xFDB5, 0xFDF9, 0xFE5D, 0xFED7, 0xFF5C, 0xFFE1, + 0x005C, 0x00C0, 0x0105, 0x011E, 0x0112, 0x00EF, 0x00B7, 0x006C, 0x0011, + 0xFFA7, 0xFF31, 0xFEB2, 0xFE2A, 0xFD9C, 0xFD0A, 0xFC75, 0xFBE0, 0xFB4B, + 0xFAB8, 0xFA29, 0xF99E, 0xF91A, 0xF89D, 0xF82A, 0xF7C1, 0xF765, 0xF716, + 0xF6D6, 0xF6A6, 0xF689, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, + 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, + 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, + 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, + 0xF67F, 0xF69E, 0xF6F5, 0xF77C, 0xF829, 0xF8F5, 0xF9D7, 0xFAC5, 0xFBB8, + 0xFCA7, 0xFD88, 0xFE54, 0xFF02, 0xFF89, 0xFFE0, 0x0000, 0xFFFF, 0xFFC0, + 0xFF10, 0xFE02, 0xFCA9, 0xFB17, 0xF95F, 0xF794, 0xF5CA, 0xF412, 0xF280, + 0xF126, 0xF018, 0xEF68, 0xEF2A, 0xEF3C, 0xEF6F, 0xEFBA, 0xF015, 0xF078, + 0xF0DB, 0xF136, 0xF181, 0xF1B3, 0xF1C6, 0xF1BB, 0xF19C, 0xF16B, 0xF12C, + 0xF0E1, 0xF08E, 0xF036, 0xEFDB, 0xEF81, 0xEF2A, 0xEED8, 0xEE8D, 0xEE48, + 0xEE09, 0xEDD0, 0xED9C, 0xED6D, 0xED44, 0xED20, 0xED01, 0xECE6, 0xECD0, + 0xECBE, 0xECB1, 0xECA7, 0xECA2, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, + 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, + 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, + 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, + 0xECA0, 0xECA0, 0xECDF, 0xED91, 0xEEA4, 0xF006, 0xF1A5, 0xF371, 0xF558, + 0xF747, 0xF92D, 0xFAF9, 0xFC99, 0xFDFB, 0xFF0E, 0xFFC0, 0xFFFF, 0x2537, + 0x2536, 0x2534, 0x252D, 0x251F, 0x2508, 0x24E5, 0x24B5, 0x2475, 0x2423, + 0x23BD, 0x2340, 0x22AA, 0x21F8, 0x212A, 0x2036, 0x1F21, 0x1DF8, 0x1CC9, + 0x1BA2, 0x1A92, 0x19A6, 0x18EC, 0x1873, 0x1847, 0x1887, 0x1933, 0x1A32, + 0x1B68, 0x1CB8, 0x1E09, 0x1F3E, 0x203D, 0x20EA, 0x212A, 0x2123, 0x2110, + 0x20F3, 0x20CD, 0x209F, 0x206C, 0x2035, 0x1FFB, 0x1FC1, 0x1F87, 0x1F50, + 0x1F1D, 0x1EEF, 0x1EC9, 0x1EAB, 0x1E99, 0x1E92, 0x1E92, 0x1E92, 0x1E92, + 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, + 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, + 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, + 0x1E92, 0x1E92, 0x1E92, 0x1EA8, 0x1EE5, 0x1F43, 0x1FBC, 0x204B, 0x20E9, + 0x2190, 0x2239, 0x22E0, 0x237E, 0x240D, 0x2486, 0x24E4, 0x2521, 0x2537, + 0x0000, 0xFFFB, 0xFFF0, 0xFFDF, 0xFFCA, 0xFFB0, 0xFF95, 0xFF78, 0xFF5C, + 0xFF40, 0xFF27, 0xFF11, 0xFF00, 0xFEF5, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, + 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, + 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF6, + 0xFF02, 0xFF14, 0xFF2C, 0xFF49, 0xFF69, 0xFF8C, 0xFFB1, 0xFFD6, 0xFFFA, + 0x001E, 0x003E, 0x005B, 0x0073, 0x0086, 0x0092, 0x0096, 0x0096, 0x0096, + 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, 0x008E, 0x0086, 0x007B, 0x006F, + 0x0061, 0x0052, 0x0043, 0x0035, 0x0027, 0x001A, 0x0010, 0x0007, 0x0002, + 0x0000, 0xFFFF, 0xFFF8, 0xFFE3, 0xFFC3, 0xFF9A, 0xFF6A, 0xFF36, 0xFF00, + 0xFECA, 0xFE96, 0xFE66, 0xFE3D, 0xFE1D, 0xFE08, 0xFE01, 0xFE01, 0xFE01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, + 0xFE00, 0xFDFC, 0xFDF7, 0xFDF1, 0xFDE9, 0xFDE0, 0xFDD6, 0xFDCC, 0xFDC2, + 0xFDB8, 0xFDAE, 0xFDA5, 0xFD9D, 0xFD97, 0xFD91, 0xFD8E, 0xFD8D, 0xFD8D, + 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, + 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, + 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, + 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD95, 0xFDAB, 0xFDCE, 0xFDFB, + 0xFE2F, 0xFE69, 0xFEA7, 0xFEE5, 0xFF23, 0xFF5D, 0xFF91, 0xFFBE, 0xFFE1, + 0xFFF7, 0xFFFF, 0xBF3F, 0xBFCF, 0xC163, 0xC3CF, 0xC6E9, 0xCA84, 0xCE75, + 0xD292, 0xD6AF, 0xDAA0, 0xDE3B, 0xE154, 0xE3C0, 0xE554, 0xE5E4, 0xE5E4, + 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, + 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, + 0xE5E4, 0xE57B, 0xE451, 0xE27F, 0xE020, 0xDD4D, 0xDA20, 0xD6B2, 0xD31E, + 0xCF7D, 0xCBE8, 0xC87B, 0xC54D, 0xC27A, 0xC01B, 0xBE49, 0xBD1F, 0xBCB6, + 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, + 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, + 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, + 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCBE, 0xBCD5, 0xBCF9, + 0xBD28, 0xBD5E, 0xBD9A, 0xBDDA, 0xBE1B, 0xBE5B, 0xBE97, 0xBECD, 0xBEFC, + 0xBF20, 0xBF37, 0xBF3F, 0x0000, 0x0000, 0xBF5E, 0x1B09, 0x1AC0, 0x19F2, + 0x18B7, 0x1724, 0x154E, 0x134D, 0x1136, 0x0F1F, 0x0D1D, 0x0B48, 0x09B5, + 0x087A, 0x07AC, 0x0763, 0x077A, 0x07B8, 0x0813, 0x0882, 0x08FA, 0x0973, + 0x09E2, 0x0A3D, 0x0A7B, 0x0A92, 0x0A7B, 0x0A3D, 0x09E2, 0x0973, 0x08FA, + 0x0882, 0x0813, 0x07B8, 0x077A, 0x0763, 0x07AA, 0x0873, 0x09AC, 0x0B45, + 0x0D2C, 0x0F4F, 0x119E, 0x1407, 0x1678, 0x18E1, 0x1B30, 0x1D53, 0x1F3A, + 0x20D3, 0x220C, 0x22D5, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, + 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, + 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, + 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, + 0x231C, 0x2302, 0x22B7, 0x2245, 0x21B1, 0x2104, 0x2044, 0x1F7A, 0x1EAB, + 0x1DE0, 0x1D21, 0x1C73, 0x1BE0, 0x1B6D, 0x1B23, 0x1B09, 0x1144, 0x1195, + 0x1279, 0x13D6, 0x1594, 0x179C, 0x19D4, 0x1C25, 0x1E76, 0x20AE, 0x22B6, + 0x2475, 0x25D2, 0x26B5, 0x2707, 0x26F7, 0x26CD, 0x268E, 0x2643, 0x25F0, + 0x259E, 0x2552, 0x2514, 0x24E9, 0x24DA, 0x24E9, 0x2514, 0x2552, 0x259E, + 0x25F0, 0x2643, 0x268E, 0x26CD, 0x26F7, 0x2707, 0x26A6, 0x2595, 0x23EA, + 0x21BE, 0x1F27, 0x1C3E, 0x191A, 0x15D2, 0x127F, 0x0F38, 0x0C14, 0x092A, + 0x0694, 0x0467, 0x02BD, 0x01AB, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, + 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, + 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, + 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, + 0x014B, 0x014B, 0x017F, 0x0212, 0x02F4, 0x0418, 0x056F, 0x06EA, 0x087B, + 0x0A14, 0x0BA5, 0x0D20, 0x0E77, 0x0F9B, 0x107D, 0x1110, 0x1144, 0xAC43, + 0xAC00, 0xAB44, 0xAA24, 0xA8B2, 0xA705, 0xA52F, 0xA345, 0xA15B, 0x9F85, + 0x9DD8, 0x9C66, 0x9B46, 0x9A8A, 0x9A47, 0x9A8D, 0x9B4A, 0x9C61, 0x9DB4, + 0x9F24, 0xA095, 0xA1E8, 0xA2FF, 0xA3BC, 0xA402, 0xA3BC, 0xA2FF, 0xA1E8, + 0xA095, 0x9F24, 0x9DB4, 0x9C61, 0x9B4A, 0x9A8D, 0x9A47, 0x9A7A, 0x9B09, + 0x9BEA, 0x9D0F, 0x9E6B, 0x9FF3, 0xA19A, 0xA354, 0xA514, 0xA6CE, 0xA875, + 0xA9FD, 0xAB59, 0xAC7E, 0xAD5F, 0xADEE, 0xAE21, 0xAE21, 0xAE21, 0xAE21, + 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, + 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, + 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, + 0xAE21, 0xAE21, 0xAE21, 0xAE1B, 0xAE0A, 0xADEF, 0xADCD, 0xADA5, 0xAD79, + 0xAD4A, 0xAD1A, 0xACEB, 0xACBF, 0xAC97, 0xAC75, 0xAC5B, 0xAC49, 0xAC43, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, + 0xFFFA, 0xFFF3, 0xFFEB, 0xFFE1, 0xFFD7, 0xFFCB, 0xFFBF, 0xFFB2, 0xFFA6, + 0xFF9A, 0xFF8F, 0xFF85, 0xFF7D, 0xFF77, 0xFF73, 0xFF72, 0xFF72, 0xFF72, + 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, + 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, + 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, + 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF73, 0xFF78, 0xFF80, 0xFF8A, 0xFF96, + 0xFFA3, 0xFFB1, 0xFFBF, 0xFFCD, 0xFFDA, 0xFFE6, 0xFFF0, 0xFFF8, 0xFFFD, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0020, 0x007C, 0x010C, 0x01C7, 0x02A7, 0x03A1, 0x04B0, 0x05CB, 0x06E9, + 0x0804, 0x0913, 0x0A0E, 0x0AED, 0x0BA8, 0x0C38, 0x0C94, 0x0CB4, 0x0CB4, + 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, + 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, + 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, + 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0C8B, 0x0C16, 0x0B62, 0x0A7A, + 0x0969, 0x083B, 0x06FD, 0x05B8, 0x0479, 0x034B, 0x023A, 0x0152, 0x009E, + 0x0029, 0x0000, 0x1E4A, 0x1DD9, 0x1C9C, 0x1AB6, 0x1849, 0x1575, 0x125E, + 0x0F25, 0x0BEC, 0x08D5, 0x0601, 0x0394, 0x01AE, 0x0071, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x002D, 0x00AE, 0x0176, 0x027C, 0x03B3, 0x0511, 0x068B, 0x0815, + 0x09A5, 0x0B30, 0x0CA9, 0x0E07, 0x0F3F, 0x1044, 0x110D, 0x118D, 0x11BA, + 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, + 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, + 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, + 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11E3, 0x1256, 0x1309, + 0x13EE, 0x14FC, 0x1626, 0x1761, 0x18A3, 0x19DE, 0x1B08, 0x1C16, 0x1CFB, + 0x1DAE, 0x1E21, 0x1E4A, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x000D, 0x002F, 0x0062, 0x00A0, 0x00E3, 0x0126, 0x0164, 0x0197, 0x01B9, + 0x01C6, 0x01B9, 0x0197, 0x0164, 0x0126, 0x00E3, 0x00A0, 0x0062, 0x002F, + 0x000D, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, + 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, + 0xFF4D, 0xFF9F, 0x0018, 0x00AA, 0x014A, 0x01E9, 0x027B, 0x02F3, 0x0345, + 0x0363, 0x0345, 0x02F3, 0x027B, 0x01E9, 0x014A, 0x00AA, 0x0018, 0xFF9F, + 0xFF4D, 0xFF2F, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, + 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9BF, + 0xC97E, 0xC91E, 0xC8AA, 0xC82B, 0xC7AD, 0xC738, 0xC6D8, 0xC697, 0xC67F, + 0xC697, 0xC6D8, 0xC738, 0xC7AD, 0xC82B, 0xC8AA, 0xC91E, 0xC97E, 0xC9BF, + 0xC9D7, }; diff --git a/assets/anims/anim_37.inc.c.rej b/assets/anims/anim_37.inc.c.rej new file mode 100644 index 00000000..bff03cb5 --- /dev/null +++ b/assets/anims/anim_37.inc.c.rej @@ -0,0 +1,954 @@ +diff a/assets/anims/anim_37.inc.c b/assets/anims/anim_37.inc.c (rejected hunks) +@@ -12,455 +12,505 @@ static const struct Animation anim_37[] = { + + + static const u16 anim_37_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0064, 0x0C2A, 0x0064, 0x0C8E, 0x0064, 0x0CF2, +- 0x0064, 0x0AFE, 0x0064, 0x0B62, 0x0064, 0x0BC6, +- 0x0064, 0x09D2, 0x0064, 0x0A36, 0x0064, 0x0A9A, +- 0x0001, 0x09CE, 0x0001, 0x09CF, 0x0001, 0x09D0, +- 0x0064, 0x0193, 0x0064, 0x01F7, 0x0064, 0x025B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x012F, +- 0x0064, 0x0003, 0x0064, 0x0067, 0x0064, 0x00CB, +- 0x0001, 0x09CA, 0x0001, 0x09CB, 0x0001, 0x09CC, +- 0x0064, 0x044F, 0x0064, 0x04B3, 0x0064, 0x0517, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x03EB, +- 0x0064, 0x02BF, 0x0064, 0x0323, 0x0064, 0x0387, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09CD, +- 0x0001, 0x09C7, 0x0001, 0x09C8, 0x0001, 0x09C9, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x0963, +- 0x0064, 0x0837, 0x0064, 0x089B, 0x0064, 0x08FF, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09D1, +- 0x0064, 0x070B, 0x0064, 0x076F, 0x0064, 0x07D3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x06A7, +- 0x0064, 0x057B, 0x0064, 0x05DF, 0x0064, 0x0643, ++0x0034, 0x0000, 0x0063, 0x0034, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, ++ 0x0099, 0x0001, 0x009A, 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, ++ 0x0064, 0x009E, 0x0064, 0x0102, 0x0064, 0x0166, 0x0064, 0x01CA, 0x0064, ++ 0x022E, 0x0064, 0x0292, 0x0001, 0x02F6, 0x0001, 0x02F7, 0x0001, 0x02F8, ++ 0x0064, 0x02F9, 0x0064, 0x035D, 0x0064, 0x03C1, 0x0064, 0x0425, 0x0064, ++ 0x0489, 0x0064, 0x04ED, 0x0064, 0x0551, 0x0064, 0x05B5, 0x0064, 0x0619, ++ 0x0034, 0x067D, 0x0034, 0x06B1, 0x0033, 0x06E5, 0x0064, 0x0718, 0x0064, ++ 0x077C, 0x0064, 0x07E0, 0x0064, 0x0844, 0x0064, 0x08A8, 0x0064, 0x090C, ++ 0x0063, 0x0970, 0x0061, 0x09D3, 0x0034, 0x0A34, 0x0001, 0x0A68, 0x0001, ++ 0x0A69, 0x0001, 0x0A6A, 0x0064, 0x0A6B, 0x0064, 0x0ACF, 0x0064, 0x0B33, ++ 0x0064, 0x0B97, 0x0064, 0x0BFB, 0x0064, 0x0C5F, 0x0064, 0x0CC3, 0x0064, ++ 0x0D27, 0x0064, 0x0D8B, 0x0001, 0x0DEF, 0x0001, 0x0DF0, 0x0001, 0x0DF1, ++ 0x0064, 0x0DF2, 0x0064, 0x0E56, 0x0064, 0x0EBA, 0x0064, 0x0F1E, 0x0064, ++ 0x0F82, 0x0064, 0x0FE6, 0x0063, 0x104A, 0x0023, 0x10AD, 0x0023, 0x10D0, + }; + + static const s16 anim_37_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0xFFD8, 0xFF6C, 0xFECF, 0xFE13, +- 0xFD4C, 0xFC8C, 0xFBE6, 0xFB6D, 0xFB34, 0xFB45, 0xFB94, 0xFC16, +- 0xFCBE, 0xFD82, 0xFE55, 0xFF2C, 0xFFFA, 0x00B2, 0x014C, 0x01B9, +- 0x01EE, 0x01E0, 0x0182, 0x00C9, 0xFFA9, 0xFE15, 0xFBC9, 0xF8A1, +- 0xF4C1, 0xF04B, 0xEB62, 0xE62B, 0xE0C9, 0xDB5E, 0xD60E, 0xD0FD, +- 0xCC4E, 0xC824, 0xC4A2, 0xC29B, 0xC259, 0xC336, 0xC48E, 0xC5BB, +- 0xC69B, 0xC77E, 0xC864, 0xC94C, 0xCA38, 0xCB27, 0xCC1A, 0xCD11, +- 0xCE0D, 0xCF0E, 0xD014, 0xD121, 0xD233, 0xD34C, 0xD46C, 0xD594, +- 0xD6C3, 0xD7FA, 0xD93A, 0xDA82, 0xDD37, 0xE115, 0xE3A3, 0xE4B9, +- 0xE5D6, 0xE6FA, 0xE823, 0xE94F, 0xEA7F, 0xEBB1, 0xECE3, 0xEE16, +- 0xEF47, 0xF076, 0xF1A2, 0xF2C9, 0xF3EB, 0xF507, 0xF61B, 0xF726, +- 0xF828, 0xF91F, 0xFA0A, 0xFAE9, 0xFBB9, 0xFC7B, 0xFD2D, 0xFDCE, +- 0xFE5D, 0xFED9, 0xFF40, 0xFF93, 0xFFCF, 0xFFF4, 0x0000, 0xF97C, +- 0xF975, 0xF963, 0xF948, 0xF929, 0xF908, 0xF8E7, 0xF8CC, 0xF8B7, +- 0xF8AE, 0xF8B4, 0xF8CB, 0xF8EF, 0xF91D, 0xF951, 0xF989, 0xF9C2, +- 0xF9F7, 0xFA25, 0xFA4A, 0xFA62, 0xFA6A, 0xFA5E, 0xFA3B, 0xF9FE, +- 0xF9A4, 0xF929, 0xF87A, 0xF78B, 0xF667, 0xF518, 0xF3A8, 0xF221, +- 0xF08E, 0xEEF7, 0xED68, 0xEBEA, 0xEA87, 0xE94A, 0xE83D, 0xE7A0, +- 0xE788, 0xE7BB, 0xE803, 0xE827, 0xE829, 0xE82F, 0xE839, 0xE846, +- 0xE856, 0xE866, 0xE878, 0xE889, 0xE899, 0xE8A8, 0xE8B3, 0xE8BC, +- 0xE8C0, 0xE8C0, 0xE8B9, 0xE8AC, 0xE898, 0xE87C, 0xE856, 0xE827, +- 0xE6BC, 0xE468, 0xE374, 0xE3FB, 0xE492, 0xE538, 0xE5EB, 0xE6AA, +- 0xE773, 0xE845, 0xE920, 0xEA01, 0xEAE7, 0xEBD2, 0xECBF, 0xEDAD, +- 0xEE9C, 0xEF89, 0xF073, 0xF159, 0xF23B, 0xF315, 0xF3E8, 0xF4B1, +- 0xF570, 0xF623, 0xF6C9, 0xF760, 0xF7E7, 0xF85D, 0xF8C1, 0xF911, +- 0xF94B, 0xF96F, 0xF97C, 0xED8C, 0xED19, 0xEBE4, 0xEA24, 0xE80D, +- 0xE5D5, 0xE3B3, 0xE1DA, 0xE082, 0xDFDF, 0xDFBE, 0xDFC4, 0xDFEE, +- 0xE036, 0xE09A, 0xE116, 0xE1A5, 0xE243, 0xE2EE, 0xE3A0, 0xE456, +- 0xE50C, 0xE5BE, 0xE669, 0xE707, 0xE796, 0xE811, 0xE880, 0xE8ED, +- 0xE957, 0xE9BF, 0xEA25, 0xEA88, 0xEAE9, 0xEB48, 0xEBA5, 0xEC00, +- 0xEC59, 0xECB0, 0xED05, 0xED54, 0xED95, 0xEDC8, 0xEDEB, 0xEDFE, +- 0xEE0A, 0xEE1B, 0xEE2F, 0xEE45, 0xEE5C, 0xEE75, 0xEE8C, 0xEEA3, +- 0xEEB7, 0xEEC8, 0xEED5, 0xEEDD, 0xEEE0, 0xEEDB, 0xEECF, 0xEEBA, +- 0xEE9B, 0xEE73, 0xEE3E, 0xEDFE, 0xEC38, 0xE938, 0xE79F, 0xE7A0, +- 0xE7AA, 0xE7BC, 0xE7D6, 0xE7F7, 0xE81E, 0xE84B, 0xE87D, 0xE8B4, +- 0xE8EF, 0xE92E, 0xE970, 0xE9B4, 0xE9F9, 0xEA40, 0xEA88, 0xEAD0, +- 0xEB17, 0xEB5E, 0xEBA3, 0xEBE5, 0xEC25, 0xEC61, 0xEC9A, 0xECCE, +- 0xECFD, 0xED26, 0xED49, 0xED65, 0xED7A, 0xED87, 0xED8C, 0xCA4F, +- 0xCA8C, 0xCB31, 0xCC28, 0xCD57, 0xCEA6, 0xCFFE, 0xD146, 0xD266, +- 0xD346, 0xD407, 0xD4D6, 0xD5B0, 0xD691, 0xD775, 0xD856, 0xD932, +- 0xDA04, 0xDAC8, 0xDB79, 0xDC15, 0xDC95, 0xDCF7, 0xDD36, 0xDD4F, +- 0xDD3C, 0xDCFA, 0xDC6C, 0xDB82, 0xDA49, 0xD8CF, 0xD721, 0xD54C, +- 0xD35D, 0xD162, 0xCF69, 0xCD7D, 0xCBAE, 0xCA08, 0xC898, 0xC772, +- 0xC699, 0xC5FF, 0xC598, 0xC555, 0xC551, 0xC594, 0xC5F8, 0xC658, +- 0xC68E, 0xC649, 0xC5A3, 0xC514, 0xC517, 0xC626, 0xC834, 0xCACC, +- 0xCDC6, 0xD0FB, 0xD445, 0xD77D, 0xDA7C, 0xDD1C, 0xDF35, 0xE0A1, +- 0xDDDA, 0xD77C, 0xD398, 0xD2F8, 0xD25E, 0xD1CB, 0xD13E, 0xD0B7, +- 0xD036, 0xCFBB, 0xCF46, 0xCED6, 0xCE6D, 0xCE09, 0xCDAB, 0xCD52, +- 0xCCFE, 0xCCB0, 0xCC66, 0xCC22, 0xCBE3, 0xCBA9, 0xCB74, 0xCB44, +- 0xCB18, 0xCAF0, 0xCACE, 0xCAAF, 0xCA95, 0xCA80, 0xCA6E, 0xCA60, +- 0xCA57, 0xCA51, 0xCA4F, 0xFB1D, 0xFB3B, 0xFB89, 0xFBF6, 0xFC71, +- 0xFCEA, 0xFD4D, 0xFD8C, 0xFD93, 0xFD53, 0xFCCA, 0xFC08, 0xFB18, +- 0xFA03, 0xF8D3, 0xF792, 0xF64A, 0xF504, 0xF3CB, 0xF2A8, 0xF1A5, +- 0xF0CD, 0xF028, 0xEFC1, 0xEFA1, 0xEFD3, 0xF061, 0xF17C, 0xF33E, +- 0xF58C, 0xF84C, 0xFB63, 0xFEB4, 0x0226, 0x059E, 0x0901, 0x0C34, +- 0x0F1B, 0x119D, 0x139D, 0x144C, 0x136E, 0x11C9, 0x1021, 0x0F3B, +- 0x0F54, 0x0FEA, 0x10A0, 0x111A, 0x10FC, 0x0FD3, 0x0DDC, 0x0BC4, +- 0x0A37, 0x09E3, 0x0AB9, 0x0C1F, 0x0DED, 0x0FF9, 0x121B, 0x142B, +- 0x1601, 0x1774, 0x185B, 0x188F, 0x142B, 0x0C12, 0x0742, 0x066F, +- 0x05A4, 0x04E2, 0x0429, 0x0377, 0x02CE, 0x022C, 0x0193, 0x0101, +- 0x0076, 0xFFF5, 0xFF79, 0xFF05, 0xFE98, 0xFE32, 0xFDD2, 0xFD7A, +- 0xFD28, 0xFCDC, 0xFC97, 0xFC58, 0xFC1F, 0xFBED, 0xFBC0, 0xFB99, +- 0xFB77, 0xFB5B, 0xFB44, 0xFB33, 0xFB27, 0xFB1F, 0xFB1D, 0xD2DC, +- 0xD371, 0xD505, 0xD757, 0xDA27, 0xDD34, 0xE03D, 0xE303, 0xE544, +- 0xE6BF, 0xE7B8, 0xE89B, 0xE96A, 0xEA23, 0xEAC9, 0xEB5C, 0xEBDC, +- 0xEC49, 0xECA4, 0xECEE, 0xED27, 0xED50, 0xED69, 0xED73, 0xED6E, +- 0xED5A, 0xED39, 0xECF6, 0xEC7F, 0xEBDD, 0xEB16, 0xEA32, 0xE936, +- 0xE82A, 0xE714, 0xE5FD, 0xE4EA, 0xE3E3, 0xE2EE, 0xE213, 0xE10C, +- 0xDFD1, 0xDEC8, 0xDE55, 0xDEDC, 0xE0F9, 0xE468, 0xE841, 0xEB9A, +- 0xED8B, 0xEDBF, 0xECCF, 0xEB3E, 0xE98B, 0xE837, 0xE72B, 0xE600, +- 0xE4C5, 0xE387, 0xE255, 0xE13D, 0xE04D, 0xDF93, 0xDF1D, 0xDEF8, +- 0xE195, 0xE653, 0xE8AE, 0xE84B, 0xE7D4, 0xE74A, 0xE6AF, 0xE605, +- 0xE54C, 0xE487, 0xE3B7, 0xE2DD, 0xE1FC, 0xE114, 0xE028, 0xDF38, +- 0xDE46, 0xDD54, 0xDC63, 0xDB75, 0xDA8B, 0xD9A7, 0xD8CA, 0xD7F7, +- 0xD72D, 0xD670, 0xD5C0, 0xD51F, 0xD48F, 0xD410, 0xD3A5, 0xD350, +- 0xD310, 0xD2E9, 0xD2DC, 0xD4B4, 0xD49A, 0xD457, 0xD3F6, 0xD383, +- 0xD30A, 0xD297, 0xD238, 0xD1F7, 0xD1E1, 0xD20C, 0xD27E, 0xD327, +- 0xD3FB, 0xD4EC, 0xD5EA, 0xD6EA, 0xD7DC, 0xD8B3, 0xD960, 0xD9D7, +- 0xDA09, 0xD9E8, 0xD967, 0xD877, 0xD70A, 0xD513, 0xD241, 0xCE66, +- 0xC9AD, 0xC43E, 0xBE44, 0xB7E8, 0xB154, 0xAAB0, 0xA427, 0x9DE2, +- 0x980B, 0x92CA, 0x8E4A, 0x8B6A, 0x8A73, 0x8AAD, 0x8B5F, 0x8BD2, +- 0x8C4A, 0x8D43, 0x8E54, 0x8F17, 0x8F24, 0x8DDA, 0x8B7F, 0x8902, +- 0x8756, 0x876B, 0x88E0, 0x8AAB, 0x8CC8, 0x8F30, 0x91DB, 0x94C3, +- 0x97E1, 0x9B2F, 0x9EA6, 0xA240, 0xA8ED, 0xB1C6, 0xB6F9, 0xB86A, +- 0xB9D8, 0xBB43, 0xBCAB, 0xBE0E, 0xBF6D, 0xC0C7, 0xC21B, 0xC369, +- 0xC4AF, 0xC5ED, 0xC723, 0xC850, 0xC973, 0xCA8C, 0xCB9B, 0xCC9D, +- 0xCD94, 0xCE7D, 0xCF5A, 0xD028, 0xD0E7, 0xD198, 0xD238, 0xD2C8, +- 0xD347, 0xD3B3, 0xD40E, 0xD455, 0xD489, 0xD4A9, 0xD4B4, 0x0000, +- 0x0139, 0x0497, 0x09A6, 0x0FF2, 0x1707, 0x1E71, 0x25BC, 0x2C75, +- 0x3226, 0x371F, 0x3BA7, 0x3F3C, 0x415D, 0x420A, 0x417B, 0x3F88, +- 0x3C08, 0x31D3, 0x2767, 0x22EB, 0x1EF4, 0x1B74, 0x1861, 0x15AD, +- 0x134E, 0x1135, 0x0F2B, 0x0D08, 0x0ADB, 0x08B3, 0x069F, 0x04AF, +- 0x02F2, 0x0177, 0x004D, 0xFF84, 0xFF2A, 0xFF4E, 0x0000, 0x0112, +- 0x0249, 0x03A5, 0x0521, 0x06BC, 0x0874, 0x0A47, 0x0C32, 0x0E32, +- 0x1047, 0x126C, 0x14A1, 0x16E3, 0x1930, 0x1B85, 0x1DE0, 0x203F, +- 0x22A0, 0x2500, 0x275D, 0x29B5, 0x2C06, 0x2E4D, 0x3089, 0x32B6, +- 0x34D3, 0x36DE, 0x38D4, 0x3AB2, 0x3C77, 0x3E21, 0x3FAD, 0x4118, +- 0x4262, 0x4386, 0x4484, 0x4559, 0x4602, 0x467E, 0x46CA, 0x46E4, +- 0x4652, 0x44B3, 0x4225, 0x3EC9, 0x3ABF, 0x3625, 0x311D, 0x2BC5, +- 0x263D, 0x20A6, 0x1B1E, 0x15C6, 0x10BE, 0x0C24, 0x081A, 0x04BE, +- 0x0230, 0x0091, 0x0000, 0x0000, 0x00C7, 0x02E4, 0x05FF, 0x09C2, +- 0x0DD4, 0x11DF, 0x158D, 0x1884, 0x1A70, 0x19F6, 0x1713, 0x136C, +- 0x10A9, 0x0F2A, 0x0E12, 0x0D2E, 0x0C4B, 0x0C1D, 0x0AF3, 0x077A, +- 0x033A, 0xFEA5, 0xFA2C, 0xF644, 0xF360, 0xF1F2, 0xF1B2, 0xF1FD, +- 0xF2BC, 0xF3D9, 0xF53D, 0xF6D3, 0xF883, 0xFA39, 0xFBDD, 0xFD59, +- 0xFE97, 0xFF81, 0x0000, 0x003F, 0x0078, 0x00AB, 0x00D9, 0x0100, +- 0x0123, 0x0140, 0x0159, 0x016D, 0x017C, 0x0188, 0x0190, 0x0194, +- 0x0194, 0x0192, 0x018C, 0x0184, 0x0179, 0x016C, 0x015D, 0x014D, +- 0x013A, 0x0127, 0x0112, 0x00FD, 0x00E7, 0x00D1, 0x00BB, 0x00A5, +- 0x008F, 0x007A, 0x0066, 0x0053, 0x0042, 0x0031, 0x0023, 0x0017, +- 0x000D, 0x0006, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF549, +- 0xF543, 0xF535, 0xF521, 0xF50B, 0xF4F8, 0xF4EB, 0xF4E8, 0xF4F3, +- 0xF50F, 0xF571, 0xF61C, 0xF6CC, 0xF73C, 0xF751, 0xF732, 0xF6FE, +- 0xF6D7, 0xF707, 0xF6AE, 0xF540, 0xF372, 0xF17C, 0xEF94, 0xEDEE, +- 0xECC3, 0xEC47, 0xEC5C, 0xECB5, 0xED48, 0xEE09, 0xEEEC, 0xEFE5, +- 0xF0E8, 0xF1EA, 0xF2E0, 0xF3BC, 0xF475, 0xF4FD, 0xF549, 0xF572, +- 0xF597, 0xF5B7, 0xF5D4, 0xF5EE, 0xF604, 0xF617, 0xF627, 0xF633, +- 0xF63D, 0xF645, 0xF64A, 0xF64C, 0xF64D, 0xF64B, 0xF647, 0xF642, +- 0xF63B, 0xF633, 0xF629, 0xF61F, 0xF613, 0xF607, 0xF5F9, 0xF5EC, +- 0xF5DE, 0xF5D0, 0xF5C2, 0xF5B3, 0xF5A6, 0xF598, 0xF58B, 0xF57F, +- 0xF574, 0xF569, 0xF560, 0xF558, 0xF552, 0xF54D, 0xF54A, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xC7DD, 0xC7C7, 0xC798, 0xC76A, 0xC75C, +- 0xC789, 0xC80E, 0xC906, 0xCA8D, 0xCCC1, 0xD220, 0xDAE1, 0xE3B8, +- 0xE957, 0xEA96, 0xE94F, 0xE6BA, 0xE411, 0xDFE4, 0xDB94, 0xD918, +- 0xD6C5, 0xD496, 0xD287, 0xD094, 0xCEB8, 0xCCF0, 0xCB0D, 0xC8F5, +- 0xC6BB, 0xC475, 0xC237, 0xC016, 0xBE28, 0xBC81, 0xBB37, 0xBA5D, +- 0xBA09, 0xBA50, 0xBAF9, 0xBBBA, 0xBC94, 0xBD84, 0xBE89, 0xBFA2, +- 0xC0CE, 0xC20A, 0xC357, 0xC4B1, 0xC619, 0xC78C, 0xC909, 0xCA8F, +- 0xCC1D, 0xCDB1, 0xCF4A, 0xD0E6, 0xD284, 0xD423, 0xD5C1, 0xD75D, +- 0xD8F5, 0xDA89, 0xDC17, 0xDD9D, 0xDF1B, 0xE08E, 0xE1F5, 0xE350, +- 0xE49C, 0xE5D9, 0xE704, 0xE81D, 0xE923, 0xEA13, 0xE9FB, 0xE85B, +- 0xE5DE, 0xE32F, 0xE0F9, 0xDFE7, 0xE005, 0xE0C5, 0xE1F2, 0xE355, +- 0xE4B7, 0xE5E1, 0xE69E, 0xE6B5, 0xE5F1, 0xE413, 0xE132, 0xDD96, +- 0xD989, 0xD553, 0xD13D, 0xCD91, 0xCA97, 0xC898, 0xC7DD, 0x054B, +- 0x0588, 0x0615, 0x06BA, 0x073B, 0x075F, 0x06EB, 0x05A5, 0x0352, +- 0xFFB8, 0xF621, 0xE640, 0xD678, 0xCD2E, 0xCBD3, 0xCF14, 0xD630, +- 0xE067, 0xFAF3, 0x1244, 0x15D6, 0x16DD, 0x160A, 0x140F, 0x119A, +- 0x0F5D, 0x0E08, 0x0D59, 0x0C9C, 0x0BD5, 0x0B07, 0x0A37, 0x0969, +- 0x08A0, 0x07E2, 0x0731, 0x0693, 0x060A, 0x059C, 0x054B, 0x0511, +- 0x04E2, 0x04BC, 0x04A0, 0x048D, 0x0481, 0x047B, 0x047C, 0x0483, +- 0x048D, 0x049C, 0x04AD, 0x04C0, 0x04D5, 0x04EA, 0x04FF, 0x0513, +- 0x0525, 0x0535, 0x0541, 0x0549, 0x054B, 0x05DD, 0x071C, 0x085C, +- 0x08ED, 0x0821, 0x054B, 0x0082, 0xFA82, 0xF38F, 0xEBF4, 0xE3F6, +- 0xDBDE, 0xD3F2, 0xCC7A, 0xC5BE, 0xC005, 0xBB96, 0xB8B9, 0xB7B5, +- 0xB854, 0xBA1B, 0xBCE6, 0xC093, 0xC4FF, 0xCA08, 0xCF8B, 0xD564, +- 0xDB71, 0xE190, 0xE79D, 0xED76, 0xF2F9, 0xF802, 0xFC6E, 0x001A, +- 0x02E5, 0x04AC, 0x054B, 0x2BD6, 0x2BD1, 0x2BC2, 0x2BAA, 0x2B89, +- 0x2B62, 0x2B33, 0x2AFF, 0x2AC5, 0x2A87, 0x29DF, 0x28DC, 0x2834, +- 0x289B, 0x2B11, 0x2EF2, 0x3276, 0x33D8, 0x2DBD, 0x26F4, 0x25A0, +- 0x24D6, 0x247A, 0x246F, 0x249C, 0x24E4, 0x252B, 0x257A, 0x25E5, +- 0x2667, 0x26FB, 0x279B, 0x2843, 0x28EB, 0x2991, 0x2A2D, 0x2ABA, +- 0x2B34, 0x2B94, 0x2BD6, 0x2C03, 0x2C27, 0x2C43, 0x2C59, 0x2C68, +- 0x2C71, 0x2C75, 0x2C74, 0x2C6F, 0x2C67, 0x2C5C, 0x2C4F, 0x2C40, +- 0x2C31, 0x2C20, 0x2C10, 0x2C01, 0x2BF3, 0x2BE7, 0x2BDE, 0x2BD8, +- 0x2BD6, 0x2BD0, 0x2BC2, 0x2BB3, 0x2BAD, 0x2BB6, 0x2BD6, 0x2C0D, +- 0x2C51, 0x2CA1, 0x2CF7, 0x2D52, 0x2DAF, 0x2E09, 0x2E5E, 0x2EAB, +- 0x2EEC, 0x2F1F, 0x2F40, 0x2F4B, 0x2F44, 0x2F30, 0x2F10, 0x2EE6, +- 0x2EB4, 0x2E7A, 0x2E3B, 0x2DF9, 0x2DB4, 0x2D6E, 0x2D29, 0x2CE6, +- 0x2CA7, 0x2C6E, 0x2C3B, 0x2C11, 0x2BF2, 0x2BDD, 0x2BD6, 0xCCF6, +- 0xCC30, 0xC9F7, 0xC671, 0xC1C3, 0xBC14, 0xB589, 0xAE48, 0xA677, +- 0x9E3B, 0x9093, 0x7D00, 0x6A73, 0x5FD8, 0x5F88, 0x65A7, 0x6FCE, +- 0x7B96, 0x9226, 0xA6A2, 0xAD79, 0xB2D4, 0xB6F6, 0xBA25, 0xBCA3, +- 0xBEB4, 0xC09D, 0xC26E, 0xC40D, 0xC57F, 0xC6C6, 0xC7E6, 0xC8E2, +- 0xC9BE, 0xCA7C, 0xCB21, 0xCBAF, 0xCC2B, 0xCC96, 0xCCF6, 0xCD48, +- 0xCD8B, 0xCDC0, 0xCDE8, 0xCE03, 0xCE14, 0xCE1C, 0xCE1A, 0xCE12, +- 0xCE03, 0xCDEE, 0xCDD6, 0xCDBA, 0xCD9D, 0xCD7F, 0xCD61, 0xCD45, +- 0xCD2C, 0xCD16, 0xCD05, 0xCCFA, 0xCCF6, 0xCDD6, 0xCFC3, 0xD1B0, +- 0xD290, 0xD156, 0xCCF6, 0xC593, 0xBC4D, 0xB195, 0xA5D6, 0x9981, +- 0x8D02, 0x80C9, 0x753F, 0x6ADA, 0x6205, 0x5B2D, 0x56C1, 0x552F, +- 0x5625, 0x58E3, 0x5D33, 0x62E0, 0x69B4, 0x7179, 0x79FA, 0x8304, +- 0x8C5B, 0x95CD, 0x9F25, 0xA82C, 0xB0AC, 0xB872, 0xBF45, 0xC4F2, +- 0xC942, 0xCC00, 0xCCF6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, +- 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +- 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, +- 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, +- 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xC9D8, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, +- 0xC9DC, 0xC9DD, 0xC9DE, 0xC9DF, 0xC9DF, 0xC9DF, 0xC9E0, 0xC9E0, +- 0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E6, 0xC9E7, 0xC9E9, 0xC9EA, +- 0xC9EC, 0xC9EE, 0xC9EF, 0xC9F0, 0xC9F1, 0xC9F2, 0xC9F3, 0xC9F3, +- 0xC9F3, 0xC9F3, 0xC9F2, 0xC9F1, 0xC9EF, 0xC9ED, 0xC9EA, 0xC9E6, +- 0xC9E2, 0xC9DE, 0xC9D8, 0xC9D2, 0xC9CB, 0xC9C3, 0xC9BB, 0xC9B2, +- 0xC9A9, 0xC99F, 0xC995, 0xC98A, 0xC97F, 0xC973, 0xC967, 0xC95B, +- 0xC94E, 0xC942, 0xC935, 0xC928, 0xC91B, 0xC90E, 0xC901, 0xC8F4, +- 0xC8E7, 0xC8DB, 0xC8CE, 0xC8C2, 0xC8B6, 0xC8AA, 0xC89F, 0xC894, +- 0xC889, 0xC87F, 0xC875, 0xC86C, 0xC863, 0xC85C, 0xC854, 0xC84E, +- 0xC848, 0xC843, 0xC83F, 0xC83B, 0xC839, 0xC837, 0xC837, 0xC83C, +- 0xC849, 0xC85D, 0xC878, 0xC898, 0xC8BB, 0xC8E1, 0xC907, 0xC92E, +- 0xC954, 0xC977, 0xC997, 0xC9B2, 0xC9C6, 0xC9D3, 0xC9D8, 0x1E4A, +- 0x1E4F, 0x1E5E, 0x1E74, 0x1E8F, 0x1EAC, 0x1ECA, 0x1EE5, 0x1EFB, +- 0x1F0A, 0x1F0F, 0x1F0E, 0x1F0C, 0x1F08, 0x1F02, 0x1EFC, 0x1EF4, +- 0x1EEB, 0x1EE1, 0x1ED7, 0x1ECC, 0x1EC0, 0x1EB5, 0x1EA9, 0x1E9D, +- 0x1E91, 0x1E86, 0x1E7B, 0x1E70, 0x1E67, 0x1E5E, 0x1E56, 0x1E4F, +- 0x1E49, 0x1E45, 0x1E42, 0x1E41, 0x1E42, 0x1E45, 0x1E4A, 0x1E50, +- 0x1E58, 0x1E61, 0x1E6C, 0x1E77, 0x1E84, 0x1E91, 0x1E9F, 0x1EAF, +- 0x1EBF, 0x1ED0, 0x1EE1, 0x1EF3, 0x1F05, 0x1F18, 0x1F2C, 0x1F3F, +- 0x1F53, 0x1F67, 0x1F7B, 0x1F8F, 0x1FA3, 0x1FB7, 0x1FCA, 0x1FDD, +- 0x1FF0, 0x2003, 0x2015, 0x2027, 0x2037, 0x2048, 0x2057, 0x2066, +- 0x2073, 0x2080, 0x208C, 0x2096, 0x20A0, 0x20A8, 0x20AF, 0x20B4, +- 0x20B8, 0x20BB, 0x20BB, 0x20B4, 0x20A0, 0x2082, 0x205A, 0x202A, +- 0x1FF5, 0x1FBD, 0x1F82, 0x1F48, 0x1F10, 0x1EDB, 0x1EAB, 0x1E83, +- 0x1E64, 0x1E51, 0x1E4A, 0x1B09, 0x1B06, 0x1AFF, 0x1AF4, 0x1AE5, +- 0x1AD4, 0x1AC1, 0x1AAD, 0x1A99, 0x1A86, 0x1A73, 0x1A46, 0x1A4C, +- 0x1A52, 0x1A58, 0x1A5F, 0x1A67, 0x1A6E, 0x1A76, 0x1A7F, 0x1A87, +- 0x1A90, 0x1A98, 0x1AA1, 0x1AAA, 0x1AB3, 0x1ABB, 0x1AC4, 0x1ACC, +- 0x1AD4, 0x1ADB, 0x1AE2, 0x1AE9, 0x1AF0, 0x1AF5, 0x1AFB, 0x1AFF, +- 0x1B03, 0x1B06, 0x1B09, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0E, +- 0x1B0F, 0x1B0E, 0x1B0E, 0x1B0D, 0x1B0C, 0x1B0B, 0x1B09, 0x1B07, +- 0x1B05, 0x1B03, 0x1B00, 0x1AFE, 0x1AFB, 0x1AF7, 0x1AF4, 0x1AF0, +- 0x1AED, 0x1AE9, 0x1AE5, 0x1AE0, 0x1ADC, 0x1AD8, 0x1AD3, 0x1ACE, +- 0x1AC9, 0x1AC5, 0x1AC0, 0x1AB8, 0x1AAD, 0x1A9E, 0x1A8E, 0x1A7C, +- 0x1A6A, 0x1A58, 0x1A49, 0x1A3B, 0x1A31, 0x1A2C, 0x1A2B, 0x1A30, +- 0x1A39, 0x1A45, 0x1A54, 0x1A65, 0x1A77, 0x1A8B, 0x1A9F, 0x1AB3, +- 0x1AC6, 0x1AD8, 0x1AE8, 0x1AF6, 0x1B00, 0x1B06, 0x1B09, 0x1144, +- 0x1149, 0x1155, 0x1168, 0x1180, 0x119C, 0x11BB, 0x11DC, 0x11FD, +- 0x121D, 0x123B, 0x1282, 0x1279, 0x126F, 0x1264, 0x1259, 0x124D, +- 0x1240, 0x1233, 0x1225, 0x1218, 0x120A, 0x11FB, 0x11ED, 0x11DF, +- 0x11D1, 0x11C3, 0x11B5, 0x11A8, 0x119B, 0x118F, 0x1183, 0x1178, +- 0x116D, 0x1164, 0x115B, 0x1154, 0x114E, 0x1148, 0x1144, 0x1141, +- 0x113F, 0x113D, 0x113C, 0x113B, 0x113B, 0x113B, 0x113C, 0x113D, +- 0x113F, 0x1141, 0x1144, 0x1147, 0x114A, 0x114E, 0x1152, 0x1157, +- 0x115C, 0x1161, 0x1166, 0x116C, 0x1172, 0x1179, 0x117F, 0x1186, +- 0x118D, 0x1195, 0x119C, 0x11A4, 0x11AC, 0x11B4, 0x11BC, 0x11C8, +- 0x11DA, 0x11F2, 0x120D, 0x1229, 0x1247, 0x1263, 0x127D, 0x1293, +- 0x12A3, 0x12AC, 0x12AC, 0x12A5, 0x1296, 0x1283, 0x126B, 0x124F, +- 0x1230, 0x1210, 0x11F0, 0x11CF, 0x11B0, 0x1193, 0x1179, 0x1164, +- 0x1153, 0x1148, 0x1144, 0xAC44, 0xAC3E, 0xAC2C, 0xAC12, 0xABEF, +- 0xABC7, 0xAB9A, 0xAB6B, 0xAB3C, 0xAB0D, 0xAAE2, 0xAA7B, 0xAA88, +- 0xAA96, 0xAAA5, 0xAAB6, 0xAAC7, 0xAAD9, 0xAAEC, 0xAAFF, 0xAB13, +- 0xAB28, 0xAB3C, 0xAB51, 0xAB65, 0xAB79, 0xAB8E, 0xABA1, 0xABB4, +- 0xABC7, 0xABD9, 0xABEA, 0xABFA, 0xAC09, 0xAC16, 0xAC23, 0xAC2D, +- 0xAC37, 0xAC3E, 0xAC44, 0xAC48, 0xAC4C, 0xAC4E, 0xAC50, 0xAC51, +- 0xAC52, 0xAC51, 0xAC50, 0xAC4E, 0xAC4C, 0xAC49, 0xAC45, 0xAC41, +- 0xAC3C, 0xAC36, 0xAC30, 0xAC2A, 0xAC23, 0xAC1B, 0xAC13, 0xAC0B, +- 0xAC02, 0xABF9, 0xABEF, 0xABE5, 0xABDB, 0xABD0, 0xABC5, 0xABBA, +- 0xABAF, 0xABA4, 0xAB98, 0xAB87, 0xAB6C, 0xAB4A, 0xAB23, 0xAAFA, +- 0xAACF, 0xAAA6, 0xAA81, 0xAA62, 0xAA4A, 0xAA3D, 0xAA3C, 0xAA48, +- 0xAA5C, 0xAA78, 0xAA9B, 0xAAC3, 0xAAEF, 0xAB1D, 0xAB4C, 0xAB7B, +- 0xABA8, 0xABD2, 0xABF7, 0xAC17, 0xAC2F, 0xAC3E, 0xAC44, 0x0000, +- 0xFFF2, 0xFFCB, 0xFF90, 0xFF48, 0xFEF7, 0xFEA2, 0xFE50, 0xFE07, +- 0xFDCA, 0xFDA0, 0xFD8F, 0xFDC4, 0xFE4A, 0xFEEE, 0xFF7E, 0xFFC8, +- 0xFFDD, 0xFFEE, 0xFFFD, 0x0008, 0x0011, 0x0018, 0x001D, 0x0020, +- 0x0021, 0x0021, 0x0020, 0x001D, 0x001A, 0x0017, 0x0013, 0x000E, +- 0x000A, 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0003, 0x0004, 0x0006, 0x0007, 0x0008, 0x000A, 0x000B, 0x000C, +- 0x000D, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, +- 0x0016, 0x0017, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, +- 0x001D, 0x001E, 0x001F, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, +- 0x0025, 0x0026, 0x0027, 0x0028, 0x0028, 0x0029, 0x0029, 0x002A, +- 0x0029, 0x0029, 0x0028, 0x0027, 0x0025, 0x0022, 0x001F, 0x001C, +- 0x0019, 0x0015, 0x0012, 0x000E, 0x000B, 0x0008, 0x0005, 0x0003, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0000, 0xFFFD, +- 0xFFF8, 0xFFF1, 0xFFEC, 0xFFEA, 0xFFEA, 0xFFEA, 0xFFEB, 0xFFEC, +- 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF5, +- 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFE, 0xFFFE, +- 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBF40, +- 0xBF4F, 0xBF79, 0xBFB8, 0xC007, 0xC060, 0xC0BE, 0xC11B, 0xC172, +- 0xC1BD, 0xC1F7, 0xC21A, 0xC206, 0xC1B3, 0xC144, 0xC0DE, 0xC0A3, +- 0xC089, 0xC070, 0xC058, 0xC041, 0xC02B, 0xC016, 0xC001, 0xBFEE, +- 0xBFDB, 0xBFCA, 0xBFB9, 0xBFA9, 0xBF9B, 0xBF8D, 0xBF80, 0xBF75, +- 0xBF6A, 0xBF60, 0xBF58, 0xBF50, 0xBF4A, 0xBF45, 0xBF40, 0xBF3D, +- 0xBF3A, 0xBF38, 0xBF37, 0xBF36, 0xBF36, 0xBF37, 0xBF38, 0xBF3A, +- 0xBF3C, 0xBF3F, 0xBF43, 0xBF47, 0xBF4C, 0xBF51, 0xBF57, 0xBF5D, +- 0xBF64, 0xBF6C, 0xBF74, 0xBF7C, 0xBF85, 0xBF8F, 0xBF99, 0xBFA4, +- 0xBFAF, 0xBFBA, 0xBFC6, 0xBFD3, 0xBFE0, 0xBFF2, 0xC00C, 0xC02C, +- 0xC052, 0xC07B, 0xC0A6, 0xC0D2, 0xC0FC, 0xC123, 0xC145, 0xC162, +- 0xC177, 0xC182, 0xC183, 0xC178, 0xC162, 0xC143, 0xC11D, 0xC0F0, +- 0xC0BF, 0xC08C, 0xC057, 0xC022, 0xBFF0, 0xBFC1, 0xBF97, 0xBF73, +- 0xBF58, 0xBF46, 0xBF40, 0x2537, 0x252D, 0x2512, 0x24EB, 0x24B9, +- 0x2482, 0x244A, 0x2413, 0x23E2, 0x23BA, 0x239F, 0x2395, 0x2397, +- 0x239C, 0x23A3, 0x23AD, 0x23B9, 0x23C8, 0x23D8, 0x23EA, 0x23FD, +- 0x2412, 0x2427, 0x243D, 0x2453, 0x246A, 0x2480, 0x2497, 0x24AC, +- 0x24C1, 0x24D6, 0x24E8, 0x24FA, 0x2509, 0x2517, 0x2523, 0x252C, +- 0x2532, 0x2536, 0x2537, 0x2535, 0x2532, 0x252D, 0x2528, 0x2521, +- 0x2519, 0x2510, 0x2506, 0x24FB, 0x24EF, 0x24E3, 0x24D6, 0x24C8, +- 0x24B9, 0x24AA, 0x249B, 0x248B, 0x247B, 0x246B, 0x245B, 0x244A, +- 0x2439, 0x2429, 0x2418, 0x2408, 0x23F8, 0x23E8, 0x23D9, 0x23CA, +- 0x23BB, 0x23AD, 0x23A0, 0x2393, 0x2387, 0x237C, 0x2372, 0x2369, +- 0x2360, 0x2359, 0x2353, 0x234F, 0x234B, 0x2349, 0x2348, 0x234E, +- 0x235D, 0x2376, 0x2395, 0x23BB, 0x23E5, 0x2411, 0x243F, 0x246E, +- 0x249A, 0x24C4, 0x24E9, 0x2509, 0x2521, 0x2531, 0x2537, 0xD64A, +- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x0000, 0xFF82, 0xFE28, 0xFC20, 0xF999, 0xF6C3, +- 0xF3CD, 0xF0E6, 0xEE3E, 0xEC02, 0xE987, 0xE6E6, 0xE576, 0xE68F, +- 0xEA93, 0xF065, 0xF725, 0xFDF2, 0x03EA, 0x082F, 0x0A52, 0x0AE1, +- 0x0A71, 0x0996, 0x08E6, 0x0878, 0x07FF, 0x077D, 0x06F3, 0x0661, +- 0x05CA, 0x052D, 0x048B, 0x03E7, 0x0340, 0x0298, 0x01F0, 0x0148, +- 0x00A2, 0x0000, 0xFF2F, 0xFE27, 0xFD2A, 0xFC77, 0xFC4F, 0xFD02, +- 0xFE66, 0x0001, 0x015C, 0x01FF, 0x019D, 0x0086, 0xFF2E, 0xFE05, +- 0xFD7F, 0xFDBB, 0xFE6F, 0xFF6F, 0x0093, 0x01B1, 0x029F, 0x0333, +- 0x0343, 0x02A4, 0x012E, 0xFDE0, 0xF86F, 0xF1C1, 0xEABA, 0xE440, +- 0xDF38, 0xDC87, 0xDC8D, 0xDE9E, 0xE20D, 0xE630, 0xEA5A, 0xEDDF, +- 0xF014, 0xF0F2, 0xF113, 0xF0B3, 0xF011, 0xEF6B, 0xEF00, 0xEF0E, +- 0xEF78, 0xEFF7, 0xF08C, 0xF138, 0xF1FC, 0xF2D8, 0xF3CD, 0xF4DB, +- 0xF604, 0xF7D4, 0xFA67, 0xFD11, 0xFF28, 0x0000, 0x0000, 0x001B, +- 0x0067, 0x00D7, 0x0162, 0x01FB, 0x0297, 0x032C, 0x03AF, 0x0414, +- 0x0461, 0x0491, 0x0488, 0x042B, 0x0375, 0x0285, 0x0173, 0x0058, +- 0xFF50, 0xFE70, 0xFDAB, 0xFCEF, 0xFC53, 0xFBED, 0xFBD3, 0xFBEB, +- 0xFC0B, 0xFC31, 0xFC5F, 0xFC94, 0xFCD0, 0xFD13, 0xFD5C, 0xFDAB, +- 0xFE00, 0xFE5C, 0xFEBD, 0xFF23, 0xFF8F, 0x0000, 0x00C8, 0x0200, +- 0x0350, 0x0462, 0x04DE, 0x047F, 0x037E, 0x0245, 0x013C, 0x00CC, +- 0x013A, 0x023E, 0x0374, 0x0475, 0x04DD, 0x04C5, 0x048C, 0x0437, +- 0x03CB, 0x034D, 0x02C1, 0x022B, 0x0192, 0x00F9, 0x0064, 0xFFB3, +- 0xFED0, 0xFDD7, 0xFCE4, 0xFC14, 0xFB81, 0xFB47, 0xFB76, 0xFBFC, +- 0xFCBE, 0xFDA4, 0xFE94, 0xFF75, 0x002D, 0x00D5, 0x018A, 0x023E, +- 0x02E2, 0x0366, 0x03BB, 0x03D3, 0x03AA, 0x034F, 0x02CE, 0x0235, +- 0x018E, 0x00E8, 0x004E, 0xFFCD, 0xFF70, 0xFF52, 0xFF71, 0xFFAC, +- 0xFFE6, 0x0000, 0xFC62, 0xFC99, 0xFD2E, 0xFE0A, 0xFF16, 0x003A, +- 0x015F, 0x026D, 0x034E, 0x03E9, 0x044D, 0x045B, 0x03BE, 0x021D, +- 0xFF22, 0xFB1A, 0xF6AD, 0xF27D, 0xEF31, 0xED6E, 0xEE10, 0xF0C0, +- 0xF454, 0xF7A2, 0xF97D, 0xFA2C, 0xFABA, 0xFB2B, 0xFB83, 0xFBC4, +- 0xFBF2, 0xFC11, 0xFC24, 0xFC2D, 0xFC31, 0xFC32, 0xFC34, 0xFC3B, +- 0xFC49, 0xFC62, 0xFC6D, 0xFC58, 0xFC33, 0xFC0C, 0xFBF1, 0xFBE3, +- 0xFBD8, 0xFBD0, 0xFBC7, 0xFBBD, 0xFBAF, 0xFB9E, 0xFB8E, 0xFB82, +- 0xFB7D, 0xFB8A, 0xFBAA, 0xFBD5, 0xFC04, 0xFC30, 0xFC50, 0xFC5D, +- 0xFC4F, 0xFC1E, 0xFBC4, 0xFAD7, 0xF938, 0xF746, 0xF564, 0xF3F3, +- 0xF353, 0xF3E6, 0xF5FF, 0xF962, 0xFD9D, 0x023B, 0x06CD, 0x0ADE, +- 0x0DFB, 0x1068, 0x12A1, 0x1488, 0x1602, 0x16F2, 0x173B, 0x16C0, +- 0x156F, 0x1365, 0x10CE, 0x0DD9, 0x0AB1, 0x0784, 0x047E, 0x01CC, +- 0xFF9B, 0xFE11, 0xFD1D, 0xFC9D, 0xFC6A, 0xFC62, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0xFFEA, 0xFFBC, 0xFF9A, 0xFFA7, 0x0005, 0x00FA, 0x0270, 0x03FD, +- 0x0539, 0x05B9, 0x05B0, 0x0596, 0x056D, 0x0536, 0x04F4, 0x04A8, +- 0x0453, 0x03F7, 0x0397, 0x0333, 0x02CD, 0x0267, 0x0203, 0x01A2, +- 0x0146, 0x00F1, 0x00A4, 0x0061, 0x002A, 0x0000, 0xFFE0, 0xFFC4, +- 0xFFAC, 0xFF99, 0xFF89, 0xFF7C, 0xFF73, 0xFF6C, 0xFF68, 0xFF66, +- 0xFF66, 0xFF68, 0xFF6C, 0xFF70, 0xFF75, 0xFF7B, 0xFF81, 0xFF87, +- 0xFF8D, 0xFF92, 0xFF96, 0xFF99, 0xFF9B, 0xFF9A, 0xFF98, 0xFF95, +- 0xFF94, 0xFF93, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, +- 0xFF91, 0xFF90, 0xFF8F, 0xFF91, 0xFF94, 0xFF98, 0xFF9D, 0xFFA3, +- 0xFFA9, 0xFFAF, 0xFFB6, 0xFFBD, 0xFFC3, 0xFFCA, 0xFFD1, 0xFFD8, +- 0xFFDF, 0xFFE5, 0xFFEB, 0xFFF0, 0xFFF5, 0xFFF9, 0xFFFC, 0xFFFE, +- 0x0000, 0x0000, 0x0000, 0xFFEF, 0xFFC3, 0xFF89, 0xFF50, 0xFF24, +- 0xFF12, 0xFF28, 0xFF73, 0x0000, 0x0168, 0x03C7, 0x066C, 0x08A6, +- 0x09C7, 0x0967, 0x07FE, 0x0622, 0x046D, 0x0376, 0x0316, 0x02BF, +- 0x026E, 0x0225, 0x01E3, 0x01A6, 0x0170, 0x013F, 0x0113, 0x00EC, +- 0x00C9, 0x00AA, 0x008D, 0x0074, 0x005D, 0x0048, 0x0035, 0x0022, +- 0x0011, 0x0000, 0xFFF1, 0xFFE4, 0xFFDB, 0xFFD5, 0xFFD1, 0xFFD0, +- 0xFFD1, 0xFFD4, 0xFFD8, 0xFFDF, 0xFFE6, 0xFFEF, 0xFFF9, 0x0002, +- 0x000D, 0x0019, 0x0024, 0x002F, 0x003A, 0x0044, 0x004E, 0x0056, +- 0x005E, 0x0063, 0x0068, 0x0054, 0x001E, 0xFFDC, 0xFF9E, 0xFF7B, +- 0xFF84, 0xFFCF, 0x006E, 0x01D7, 0x041C, 0x06BE, 0x093D, 0x0B18, +- 0x0BD0, 0x0BB8, 0x0B7C, 0x0B1F, 0x0AA6, 0x0A13, 0x096C, 0x08B3, +- 0x07ED, 0x071E, 0x0648, 0x0572, 0x049D, 0x03CE, 0x0309, 0x0252, +- 0x01AD, 0x011C, 0x00A6, 0x004C, 0x0013, 0x0000, 0x0884, 0x0847, +- 0x07A3, 0x06B4, 0x0597, 0x0468, 0x0343, 0x0245, 0x018A, 0x012E, +- 0x018E, 0x02B0, 0x042D, 0x059E, 0x069D, 0x071D, 0x0762, 0x0780, +- 0x078B, 0x0797, 0x07AA, 0x07BD, 0x07CE, 0x07DE, 0x07EE, 0x07FD, +- 0x080B, 0x0818, 0x0825, 0x0831, 0x083C, 0x0846, 0x0850, 0x0859, +- 0x0862, 0x086A, 0x0871, 0x0878, 0x087E, 0x0884, 0x0889, 0x088D, +- 0x0890, 0x0893, 0x0895, 0x0897, 0x0898, 0x0898, 0x0899, 0x0898, +- 0x0898, 0x0897, 0x0896, 0x0895, 0x0893, 0x0892, 0x0890, 0x088F, +- 0x088D, 0x088C, 0x088B, 0x088A, 0x0889, 0x0889, 0x0889, 0x0889, +- 0x088A, 0x088B, 0x088B, 0x088C, 0x088C, 0x088B, 0x0889, 0x0885, +- 0x087F, 0x0879, 0x0872, 0x086D, 0x086B, 0x086B, 0x086B, 0x086C, +- 0x086D, 0x086E, 0x086F, 0x0871, 0x0872, 0x0874, 0x0876, 0x0878, +- 0x0879, 0x087B, 0x087D, 0x087E, 0x0880, 0x0881, 0x0882, 0x0883, +- 0x0883, 0x0884, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, +- 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0009, 0x0009, 0x0009, +- 0x0009, 0x0009, 0x0008, 0x0008, 0x0008, 0x0008, 0x0007, 0x0007, +- 0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, +- 0x0009, 0x0014, 0x0021, 0x0031, 0x0041, 0x0051, 0x0060, 0x006D, +- 0x0077, 0x007E, 0x007F, 0x007F, 0x007E, 0x007C, 0x007A, 0x0077, +- 0x0074, 0x0070, 0x006B, 0x0067, 0x0062, 0x005C, 0x0057, 0x0051, +- 0x004B, 0x0045, 0x003F, 0x0038, 0x0032, 0x002C, 0x0025, 0x001F, +- 0x0019, 0x0014, 0x000E, 0x0009, 0x0004, 0x0000, 0xFFFC, 0xFFF7, +- 0xFFF2, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDB, 0xFFD5, 0xFFCF, 0xFFC9, +- 0xFFC3, 0xFFBD, 0xFFB7, 0xFFB1, 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, +- 0xFF96, 0xFF92, 0xFF8E, 0xFF8A, 0xFF87, 0xFF85, 0xFF83, 0xFF81, +- 0xFF80, 0xFF80, 0xFF80, 0xFF81, 0xFF83, 0xFF88, 0xFF92, 0xFFA0, +- 0xFFB2, 0xFFC5, 0xFFDB, 0xFFF2, 0x0007, 0x001D, 0x0032, 0x0044, +- 0x0054, 0x005F, 0x0066, 0x0069, 0x0068, 0x0064, 0x005D, 0x0055, +- 0x004B, 0x0041, 0x0035, 0x002A, 0x001F, 0x0015, 0x000C, 0x0005, +- 0x0001, 0x0000, 0x40A1, 0x40A4, 0x40AC, 0x40B8, 0x40C7, 0x40D7, +- 0x40E8, 0x40F8, 0x4107, 0x4112, 0x4118, 0x411A, 0x4119, 0x4118, +- 0x4116, 0x4114, 0x4111, 0x410D, 0x4109, 0x4105, 0x4101, 0x40FC, +- 0x40F6, 0x40F1, 0x40EC, 0x40E6, 0x40E0, 0x40DA, 0x40D4, 0x40CF, +- 0x40C9, 0x40C3, 0x40BE, 0x40B9, 0x40B4, 0x40AF, 0x40AB, 0x40A7, +- 0x40A4, 0x40A1, 0x409E, 0x409C, 0x409A, 0x4098, 0x4096, 0x4094, +- 0x4092, 0x4090, 0x408F, 0x408D, 0x408C, 0x408A, 0x4089, 0x4088, +- 0x4087, 0x4086, 0x4085, 0x4084, 0x4084, 0x4083, 0x4082, 0x4082, +- 0x4081, 0x4080, 0x4080, 0x407F, 0x407F, 0x407E, 0x407E, 0x407D, +- 0x407D, 0x407D, 0x407D, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, +- 0x4083, 0x4084, 0x4086, 0x4088, 0x4089, 0x408A, 0x408C, 0x408D, +- 0x408F, 0x4091, 0x4093, 0x4094, 0x4096, 0x4098, 0x409A, 0x409C, +- 0x409D, 0x409E, 0x40A0, 0x40A0, 0x40A1, 0x40A1, ++0x0000, 0x0001, 0x0003, 0x0006, 0x000A, 0x000F, 0x0015, 0x001A, 0x0020, ++ 0x0025, 0x002A, 0x002E, 0x0032, 0x0034, 0x0035, 0x0035, 0x0035, 0x0035, ++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0034, ++ 0x0033, 0x0030, 0x002D, 0x002A, 0x0026, 0x0021, 0x001D, 0x0018, 0x0013, ++ 0x000F, 0x000B, 0x0007, 0x0004, 0x0002, 0x0001, 0x0000, 0x00AA, 0x00A9, ++ 0x00A6, 0x00A1, 0x009C, 0x0095, 0x008D, 0x0086, 0x007E, 0x0076, 0x0070, ++ 0x006A, 0x0065, 0x0062, 0x0061, 0x0062, 0x0064, 0x0066, 0x0069, 0x006D, ++ 0x0070, 0x0073, 0x0076, 0x0078, 0x0078, 0x0078, 0x0076, 0x0073, 0x0070, ++ 0x006D, 0x0069, 0x0066, 0x0064, 0x0062, 0x0061, 0x0062, 0x0064, 0x0068, ++ 0x006D, 0x0073, 0x007A, 0x0081, 0x0088, 0x0090, 0x0097, 0x009F, 0x00A5, ++ 0x00AB, 0x00B0, 0x00B4, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B1, ++ 0x00B0, 0x00AF, 0x00AD, 0x00AC, 0x00AB, 0x00AB, 0x00AA, 0x0000, 0x0000, ++ 0x3FFF, 0x0000, 0x0000, 0x0000, 0x40A1, 0x0000, 0xFFD3, 0xFF59, 0xFE9D, ++ 0xFDAC, 0xFC94, 0xFB62, 0xFA23, 0xF8E3, 0xF7B1, 0xF699, 0xF5A9, 0xF4EC, ++ 0xF472, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, ++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, ++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF43C, 0xF421, 0xF3F5, 0xF3BD, 0xF379, ++ 0xF32D, 0xF2DB, 0xF286, 0xF22F, 0xF1DA, 0xF188, 0xF13C, 0xF0F9, 0xF0C0, ++ 0xF095, 0xF079, 0xF06F, 0xF0A3, 0xF132, 0xF208, 0xF310, 0xF437, 0xF567, ++ 0xF68E, 0xF796, 0xF86B, 0xF8FA, 0xF92F, 0xF8FA, 0xF86B, 0xF796, 0xF68E, ++ 0xF567, 0xF437, 0xF310, 0xF208, 0xF132, 0xF0A3, 0xF06F, 0xF08F, 0xF0E8, ++ 0xF173, 0xF229, 0xF301, 0xF3F3, 0xF4F9, 0xF609, 0xF71D, 0xF82C, 0xF92F, ++ 0xFA1F, 0xFAFB, 0xFBC4, 0xFC7A, 0xFD1E, 0xFDB1, 0xFE31, 0xFEA1, 0xFF01, ++ 0xFF51, 0xFF91, 0xFFC2, 0xFFE4, 0xFFF8, 0x0000, 0xFFFF, 0x0006, 0x0018, ++ 0x0033, 0x0055, 0x007D, 0x00A9, 0x00D6, 0x0104, 0x0130, 0x0158, 0x017A, ++ 0x0195, 0x01A6, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, ++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, ++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01A5, 0x0190, 0x016E, 0x0142, ++ 0x010E, 0x00D3, 0x0094, 0x0052, 0x000E, 0xFFCB, 0xFF8C, 0xFF51, 0xFF1D, ++ 0xFEF1, 0xFECF, 0xFEBA, 0xFEB2, 0xFEB7, 0xFEC2, 0xFED4, 0xFEEA, 0xFF02, ++ 0xFF1B, 0xFF33, 0xFF49, 0xFF5A, 0xFF66, 0xFF6B, 0xFF66, 0xFF5A, 0xFF49, ++ 0xFF33, 0xFF1B, 0xFF02, 0xFEEA, 0xFED4, 0xFEC2, 0xFEB7, 0xFEB2, 0xFEB5, ++ 0xFEBC, 0xFEC8, 0xFED6, 0xFEE8, 0xFEFC, 0xFF12, 0xFF28, 0xFF3F, 0xFF55, ++ 0xFF6B, 0xFF7F, 0xFF91, 0xFFA2, 0xFFB1, 0xFFBF, 0xFFCC, 0xFFD7, 0xFFE0, ++ 0xFFE9, 0xFFF0, 0xFFF5, 0xFFFA, 0xFFFD, 0xFFFE, 0xFFFF, 0x0884, 0x08A3, ++ 0x08F9, 0x097D, 0x0A27, 0x0AEC, 0x0BC3, 0x0CA4, 0x0D85, 0x0E5C, 0x0F21, ++ 0x0FCA, 0x104F, 0x10A5, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, ++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, ++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x1090, 0x0FFD, 0x0F17, ++ 0x0DEB, 0x0C85, 0x0AF2, 0x093F, 0x0779, 0x05AB, 0x03E2, 0x022C, 0x0095, ++ 0xFF27, 0xFDF3, 0xFD03, 0xFC64, 0xFC23, 0xFC16, 0xFC0B, 0xFC03, 0xFBFC, ++ 0xFBF7, 0xFBF4, 0xFBF1, 0xFBF0, 0xFBEF, 0xFBEF, 0xFBEF, 0xFBF0, 0xFBF3, ++ 0xFBF8, 0xFBFE, 0xFC05, 0xFC0C, 0xFC13, 0xFC19, 0xFC1E, 0xFC22, 0xFC23, ++ 0xFC22, 0xFC1E, 0xFC19, 0xFC13, 0xFC0C, 0xFC05, 0xFBFE, 0xFBF8, 0xFBF3, ++ 0xFBF0, 0xFBEF, 0xFC18, 0xFC8B, 0xFD3E, 0xFE24, 0xFF32, 0x005D, 0x0199, ++ 0x02DB, 0x0416, 0x0541, 0x064F, 0x0735, 0x07E7, 0x085B, 0x0884, 0x0000, ++ 0xFF9C, 0xFE87, 0xFCDE, 0xFABE, 0xF844, 0xF590, 0xF2BE, 0xEFEC, 0xED37, ++ 0xEABE, 0xE89E, 0xE6F4, 0xE5DF, 0xE57C, 0xE58C, 0xE5B8, 0xE5F8, 0xE646, ++ 0xE69B, 0xE6EF, 0xE73D, 0xE77D, 0xE7A9, 0xE7B9, 0xE7A9, 0xE77D, 0xE73D, ++ 0xE6EF, 0xE69B, 0xE646, 0xE5F8, 0xE5B8, 0xE58C, 0xE57C, 0xE5D9, 0xE6DF, ++ 0xE878, 0xEA8E, 0xED0A, 0xEFD5, 0xF2D8, 0xF5FE, 0xF92E, 0xFC54, 0xFF57, ++ 0x0223, 0x049F, 0x06B5, 0x084E, 0x0954, 0x09B1, 0x0997, 0x0951, 0x08E9, ++ 0x0868, 0x07D8, 0x0744, 0x06B4, 0x0633, 0x05CB, 0x0585, 0x056C, 0x0585, ++ 0x05CB, 0x0633, 0x06B4, 0x0744, 0x07D8, 0x0868, 0x08E9, 0x0951, 0x0997, ++ 0x09B1, 0x09A3, 0x097D, 0x093F, 0x08EE, 0x088C, 0x081B, 0x079E, 0x0719, ++ 0x068D, 0x05FD, 0x056C, 0x04DC, 0x044F, 0x03C5, 0x0341, 0x02C2, 0x024B, ++ 0x01DB, 0x0174, 0x0118, 0x00C7, 0x0082, 0x004B, 0x0022, 0x0009, 0x0000, ++ 0xFFFF, 0x0033, 0x00C3, 0x01A0, 0x02BB, 0x0404, 0x056C, 0x06E3, 0x085A, ++ 0x09C2, 0x0B0B, 0x0C26, 0x0D03, 0x0D93, 0x0DC6, 0x0DA7, 0x0D53, 0x0CD7, ++ 0x0C40, 0x0B9C, 0x0AF8, 0x0A61, 0x09E5, 0x0991, 0x0972, 0x0991, 0x09E5, ++ 0x0A61, 0x0AF8, 0x0B9C, 0x0C40, 0x0CD7, 0x0D53, 0x0DA7, 0x0DC6, 0x0D95, ++ 0x0D08, 0x0C2C, 0x0B0E, 0x09B8, 0x0837, 0x0697, 0x04E4, 0x032A, 0x0175, ++ 0xFFD0, 0xFE49, 0xFCEC, 0xFBC3, 0xFADC, 0xFA41, 0xFA00, 0xF9F1, 0xF9E5, ++ 0xF9DB, 0xF9D3, 0xF9CD, 0xF9C9, 0xF9C6, 0xF9C5, 0xF9C4, 0xF9C3, 0xF9C3, ++ 0xF9C5, 0xF9C9, 0xF9CE, 0xF9D6, 0xF9DE, 0xF9E6, 0xF9EE, 0xF9F5, 0xF9FB, ++ 0xF9FF, 0xFA00, 0xF9FF, 0xF9FB, 0xF9F5, 0xF9EE, 0xF9E6, 0xF9DE, 0xF9D6, ++ 0xF9CE, 0xF9C9, 0xF9C5, 0xF9C3, 0xF9D8, 0xFA11, 0xFA69, 0xFADB, 0xFB61, ++ 0xFBF5, 0xFC91, 0xFD31, 0xFDCD, 0xFE61, 0xFEE7, 0xFF59, 0xFFB1, 0xFFEB, ++ 0xFFFF, 0xFC61, 0xFC5F, 0xFC5A, 0xFC50, 0xFC42, 0xFC30, 0xFC18, 0xFBFB, ++ 0xFBD9, 0xFBB0, 0xFB81, 0xFB4B, 0xFB0F, 0xFACA, 0xFA7F, 0xFA2C, 0xF9D4, ++ 0xF97A, 0xF922, 0xF8CF, 0xF884, 0xF844, 0xF812, 0xF7F2, 0xF7E6, 0xF7EF, ++ 0xF809, 0xF832, 0xF869, 0xF8AC, 0xF8FA, 0xF951, 0xF9B0, 0xFA15, 0xFA7F, ++ 0xFAEC, 0xFB5C, 0xFBCD, 0xFC3F, 0xFCB2, 0xFD23, 0xFD93, 0xFE00, 0xFE6A, ++ 0xFED0, 0xFF30, 0xFF8B, 0xFFE0, 0x002E, 0x0073, 0x00AE, 0x00E0, 0x0109, ++ 0x012A, 0x0145, 0x015A, 0x0169, 0x0174, 0x017C, 0x0180, 0x0183, 0x0184, ++ 0x0184, 0x0180, 0x0175, 0x0166, 0x0153, 0x013D, 0x0127, 0x0111, 0x00FE, ++ 0x00EE, 0x00E4, 0x00E0, 0x00E4, 0x00EE, 0x00FE, 0x0111, 0x0127, 0x013D, ++ 0x0153, 0x0166, 0x0175, 0x0180, 0x0184, 0x0173, 0x0144, 0x00FB, 0x009D, ++ 0x002F, 0xFFB4, 0xFF33, 0xFEB0, 0xFE2F, 0xFDB6, 0xFD47, 0xFCEA, 0xFCA1, ++ 0xFC72, 0xFC61, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFAD3, 0xFA05, 0xF8CA, ++ 0xF737, 0xF561, 0xF360, 0xF148, 0xEF31, 0xED30, 0xEB5A, 0xE9C7, 0xE88B, ++ 0xE7BE, 0xE775, 0xE7B8, 0xE870, 0xE97E, 0xEAC7, 0xEC2C, 0xED92, 0xEEDA, ++ 0xEFE8, 0xF0A0, 0xF0E4, 0xF0A0, 0xEFE8, 0xEEDA, 0xED92, 0xEC2C, 0xEAC7, ++ 0xE97E, 0xE870, 0xE7B8, 0xE775, 0xE862, 0xEB06, 0xEF26, 0xF489, 0xFAF6, ++ 0x0236, 0x0A0D, 0x1243, 0x1AA0, 0x22E9, 0x2AE6, 0x325D, 0xB917, 0xBED9, ++ 0xC36A, 0xC693, 0xC818, 0xC8AB, 0xC924, 0xC984, 0xC9D0, 0xCA08, 0xCA30, ++ 0xCA4C, 0xCA5C, 0xCA64, 0xCA68, 0xCA68, 0xCA5A, 0xCA34, 0xC9FC, 0xC9B6, ++ 0xC968, 0xC918, 0xC8CA, 0xC884, 0xC84C, 0xC826, 0xC818, 0xC826, 0xC84C, ++ 0xC884, 0xC8CA, 0xC918, 0xC968, 0xC9B6, 0xC9FC, 0xCA34, 0xCA5A, 0xCA68, ++ 0xC965, 0xC68E, 0xC229, 0xBC7F, 0x35DA, 0x2E7F, 0x26B8, 0x1ECD, 0x1706, ++ 0x0FAC, 0x0906, 0x035C, 0xFEF6, 0xFC1F, 0xFB1C, 0xD2DB, 0xD2ED, 0xD320, ++ 0xD374, 0xD3E6, 0xD474, 0xD51D, 0xD5DE, 0xD6B5, 0xD7A2, 0xD8A1, 0xD9B0, ++ 0xDACF, 0xDBFB, 0xDD31, 0xDE70, 0xDFB0, 0xE0E9, 0xE213, 0xE325, 0xE417, ++ 0xE4E2, 0xE57D, 0xE5E0, 0xE603, 0xE5C4, 0xE518, 0xE41B, 0xE2E8, 0xE19A, ++ 0xE04C, 0xDF19, 0xDE1C, 0xDD71, 0xDD31, 0xDDE1, 0xDFD3, 0xE2DD, 0xE6D3, ++ 0xEB8B, 0xF0DA, 0xF694, 0xFC8E, 0x029F, 0x089A, 0x0E54, 0x13A2, 0x67A5, ++ 0x63AF, 0x60A5, 0x5EB3, 0x5E03, 0x5E1D, 0x5E62, 0x5ECA, 0x5F4A, 0x5FD9, ++ 0x606C, 0x60FB, 0x617B, 0x61E3, 0x6228, 0x6242, 0x6228, 0x61E3, 0x617B, ++ 0x60FB, 0x606C, 0x5FD9, 0x5F4A, 0x5ECA, 0x5E62, 0x5E1D, 0x5E03, 0x5E04, ++ 0x5E0A, 0x5E19, 0x5E38, 0x5E69, 0x5EB4, 0x5F1B, 0x5FA5, 0x6056, 0x6133, ++ 0x6242, 0x6438, 0x67A2, 0x6C44, 0x71E1, 0x07C2, 0x00E2, 0xF9BB, 0xF28B, ++ 0xEB8C, 0xE4FC, 0xDF16, 0xDA17, 0xD63A, 0xD3BD, 0xD2DB, 0xD4B3, 0xD4F3, ++ 0xD5A6, 0xD6B9, 0xD819, 0xD9B2, 0xDB71, 0xDD44, 0xDF17, 0xE0D6, 0xE270, ++ 0xE3CF, 0xE4E2, 0xE595, 0xE5D5, 0xE58A, 0xE4BE, 0xE390, 0xE223, 0xE095, ++ 0xDF07, 0xDD9A, 0xDC6D, 0xDBA0, 0xDB55, 0xDBA0, 0xDC6D, 0xDD9A, 0xDF07, ++ 0xE095, 0xE223, 0xE390, 0xE4BE, 0xE58A, 0xE5D5, 0xE4B3, 0xE17E, 0xDC7B, ++ 0xD5F3, 0xCE2B, 0xC56B, 0xBBF9, 0xB21D, 0xA81E, 0x9E42, 0x94D1, 0x8C11, ++ 0x0449, 0xFDC0, 0xF8BD, 0xF588, 0xF466, 0xF475, 0xF49F, 0xF4DD, 0xF52B, ++ 0xF581, 0xF5DA, 0xF630, 0xF67D, 0xF6BB, 0xF6E5, 0xF6F4, 0xF6E5, 0xF6BB, ++ 0xF67D, 0xF630, 0xF5DA, 0xF581, 0xF52B, 0xF4DD, 0xF49F, 0xF475, 0xF466, ++ 0xF466, 0xF46A, 0xF473, 0xF485, 0xF4A3, 0xF4D0, 0xF50F, 0xF562, 0xF5CC, ++ 0xF652, 0xF6F4, 0xF8C2, 0xFC8F, 0x020C, 0x08E7, 0x90CF, 0x9976, 0xA289, ++ 0xABB9, 0xB4B5, 0xBD2C, 0xC4CD, 0xCB49, 0xD04E, 0xD38D, 0xD4B3, 0xFFFF, ++ 0x0055, 0x0143, 0x02B1, 0x0484, 0x06A4, 0x08F7, 0x0B64, 0x0DD0, 0x1023, ++ 0x1243, 0x1417, 0x1584, 0x1672, 0x16C8, 0x16A8, 0x1654, 0x15D8, 0x1541, ++ 0x149D, 0x13F8, 0x1361, 0x12E5, 0x1291, 0x1272, 0x1291, 0x12E5, 0x1361, ++ 0x13F8, 0x149D, 0x1541, 0x15D8, 0x1654, 0x16A8, 0x16C8, 0x1645, 0x14D4, ++ 0x1294, 0x0FA5, 0x0C26, 0x0838, 0x03FA, 0xFF8B, 0xFB0D, 0xF69F, 0xF261, ++ 0xEE73, 0xEAF4, 0xE805, 0xE5C5, 0xE453, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE42D, 0xE530, 0xE6C0, 0xE8C3, 0xEB20, 0xEDBD, ++ 0xF080, 0xF350, 0xF614, 0xF8B1, 0xFB0E, 0xFD11, 0xFEA0, 0xFFA3, 0xFFFF, ++ 0xFFFF, 0x001C, 0x006B, 0x00E5, 0x0180, 0x0235, 0x02FA, 0x03C8, 0x0496, ++ 0x055C, 0x0611, 0x06AC, 0x0725, 0x0774, 0x0791, 0x077E, 0x074D, 0x0704, ++ 0x06AB, 0x064B, 0x05EB, 0x0592, 0x0549, 0x0518, 0x0506, 0x0518, 0x0549, ++ 0x0592, 0x05EB, 0x064B, 0x06AB, 0x0704, 0x074D, 0x077E, 0x0791, 0x077E, ++ 0x0749, 0x06F6, 0x068A, 0x060A, 0x057A, 0x04DE, 0x043B, 0x0396, 0x02F3, ++ 0x0258, 0x01C7, 0x0147, 0x00DB, 0x0088, 0x0053, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0040, 0x003D, 0x003A, 0x0035, 0x0030, ++ 0x002A, 0x0023, 0x001D, 0x0017, 0x0011, 0x000B, 0x0007, 0x0003, 0x0001, ++ 0xFFFF, 0xCA4E, 0xCA1A, 0xC987, 0xC8A5, 0xC784, 0xC634, 0xC4C5, 0xC346, ++ 0xC1C7, 0xC057, 0xBF07, 0xBDE7, 0xBD05, 0xBC72, 0xBC3D, 0xBC4D, 0xBC79, ++ 0xBCB9, 0xBD06, 0xBD5B, 0xBDAF, 0xBDFD, 0xBE3D, 0xBE68, 0xBE78, 0xBE68, ++ 0xBE3D, 0xBDFD, 0xBDAF, 0xBD5B, 0xBD06, 0xBCB9, 0xBC79, 0xBC4D, 0xBC3D, ++ 0xBCE2, 0xBEB5, 0xC18D, 0xC544, 0xC9AF, 0xCEA8, 0xD405, 0xD99F, 0xDF4D, ++ 0xE4E7, 0xEA45, 0xEF3D, 0xF3A9, 0xF75F, 0xFA38, 0xFC0B, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFC0B, 0xFA3C, 0xF772, 0xF3D9, ++ 0xEF9F, 0xEAF3, 0xE603, 0xE0FB, 0xDC0A, 0xD75E, 0xD324, 0xCF8B, 0xCCC1, ++ 0xCAF3, 0xCA4E, 0xFFFF, 0xFFF3, 0xFFD0, 0xFF9A, 0xFF56, 0xFF06, 0xFEAF, ++ 0xFE55, 0xFDFA, 0xFDA3, 0xFD53, 0xFD0F, 0xFCDA, 0xFCB7, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCB0, 0xFCBF, 0xFCD7, 0xFCF6, 0xFD1B, 0xFD45, 0xFD72, 0xFDA2, ++ 0xFDD1, 0xFE01, 0xFE2E, 0xFE58, 0xFE7D, 0xFE9C, 0xFEB4, 0xFEC3, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFECD, 0xFED8, 0xFEE9, ++ 0xFEFF, 0xFF19, 0xFF36, 0xFF54, 0xFF73, 0xFF92, 0xFFAF, 0xFFC9, 0xFFDF, ++ 0xFFF0, 0xFFFB, 0xFFFF, 0xF97B, 0xF93D, 0xF88F, 0xF784, 0xF62F, 0xF4A2, ++ 0xF2EF, 0xF12A, 0xEF65, 0xEDB3, 0xEC26, 0xEAD0, 0xE9C5, 0xE918, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE916, 0xE9C1, 0xEACC, 0xEC29, 0xEDC7, 0xEF9A, 0xF191, ++ 0xF39F, 0xF5B4, 0xF7C2, 0xF9B9, 0xFB8C, 0xFD2B, 0xFE87, 0xFF92, 0x003E, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x0064, 0x0024, ++ 0xFFC0, 0xFF40, 0xFEAA, 0xFE03, 0xFD54, 0xFCA1, 0xFBF1, 0xFB4B, 0xFAB5, ++ 0xFA35, 0xF9D2, 0xF992, 0xF97B, 0xED8B, 0xEDA5, 0xEDEC, 0xEE5A, 0xEEE6, ++ 0xEF89, 0xF03B, 0xF0F6, 0xF1B0, 0xF262, 0xF305, 0xF392, 0xF3FF, 0xF447, ++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, ++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, ++ 0xF460, 0xF460, 0xF460, 0xF453, 0xF42E, 0xF3F3, 0xF3A8, 0xF34D, 0xF2E7, ++ 0xF27A, 0xF207, 0xF193, 0xF120, 0xF0B3, 0xF04D, 0xEFF3, 0xEFA7, 0xEF6C, ++ 0xEF47, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF34, ++ 0xEF25, 0xEF0D, 0xEEEE, 0xEECA, 0xEEA2, 0xEE78, 0xEE4D, 0xEE23, 0xEDFB, ++ 0xEDD7, 0xEDB8, 0xEDA0, 0xED91, 0xED8B, 0x0001, 0xFFEC, 0xFFB3, 0xFF5C, ++ 0xFEED, 0xFE6C, 0xFDDE, 0xFD4B, 0xFCB7, 0xFC2A, 0xFBA8, 0xFB39, 0xFAE2, ++ 0xFAAA, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, ++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, ++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFAA3, 0xFACB, 0xFB08, 0xFB58, 0xFBB7, ++ 0xFC22, 0xFC95, 0xFD0E, 0xFD88, 0xFE00, 0xFE74, 0xFEDF, 0xFF3E, 0xFF8E, ++ 0xFFCB, 0xFFF2, 0x0001, 0xFFFE, 0x0009, 0x0027, 0x0054, 0x008E, 0x00D1, ++ 0x011A, 0x0166, 0x01B3, 0x01FC, 0x023F, 0x0279, 0x02A6, 0x02C3, 0x02CE, ++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, ++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, ++ 0x02CE, 0x02CE, 0x02C7, 0x02B2, 0x0293, 0x0269, 0x0238, 0x0200, 0x01C5, ++ 0x0186, 0x0147, 0x0108, 0x00CC, 0x0095, 0x0064, 0x003A, 0x001B, 0x0006, ++ 0xFFFE, 0xC170, 0xC170, 0xC16E, 0xC16B, 0xC167, 0xC162, 0xC15E, 0xC158, ++ 0xC153, 0xC14F, 0xC14A, 0xC146, 0xC143, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC142, 0xC145, 0xC147, 0xC14B, 0xC14E, 0xC152, 0xC156, 0xC15B, ++ 0xC15F, 0xC163, 0xC166, 0xC16A, 0xC16C, 0xC16E, 0xC170, 0x054B, 0x04DF, ++ 0x03AF, 0x01DB, 0xFF81, 0xFCC2, 0xF9BD, 0xF690, 0xF35C, 0xF03F, 0xED58, ++ 0xEAC7, 0xE8AC, 0xE724, 0xE651, 0xE5EC, 0xE59B, 0xE55D, 0xE52E, 0xE50C, ++ 0xE4F5, 0xE4E7, 0xE4E0, 0xE4DE, 0xE4DD, 0xE4E8, 0xE504, 0xE52E, 0xE560, ++ 0xE597, 0xE5CE, 0xE600, 0xE62A, 0xE646, 0xE651, 0xE615, 0xE56D, 0xE466, ++ 0xE30D, 0xE172, 0xDFA3, 0xDDAD, 0xDBA0, 0xD988, 0xD774, 0xD573, 0xD392, ++ 0xD1DF, 0xD06A, 0xCF40, 0xCE6E, 0xCE04, 0xCDD7, 0xCDB2, 0xCD94, 0xCD7D, ++ 0xCD6B, 0xCD5F, 0xCD57, 0xCD52, 0xCD4F, 0xCD4E, 0xCD4E, 0xCD52, 0xCD5E, ++ 0xCD6F, 0xCD85, 0xCD9D, 0xCDB5, 0xCDCD, 0xCDE3, 0xCDF4, 0xCE00, 0xCE04, ++ 0xCE00, 0xCDF4, 0xCDE3, 0xCDCD, 0xCDB5, 0xCD9D, 0xCD85, 0xCD6F, 0xCD5E, ++ 0xCD52, 0xCD4E, 0xCE04, 0xD006, 0xD320, 0xD720, 0xDBD2, 0xE103, 0xE680, ++ 0xEC17, 0xF195, 0xF6C6, 0xFB78, 0xFF77, 0x0293, 0x0494, 0x054B, 0x2BD6, ++ 0x2BED, 0x2C30, 0x2C95, 0x2D17, 0x2DAE, 0x2E54, 0x2F00, 0x2FAD, 0x3052, ++ 0x30E9, 0x316B, 0x31D1, 0x3213, 0x322B, 0x31E9, 0x3137, 0x3030, 0x2EF1, ++ 0x2D96, 0x2C3B, 0x2AFC, 0x29F5, 0x2943, 0x2901, 0x2943, 0x29F5, 0x2AFC, ++ 0x2C3B, 0x2D96, 0x2EF1, 0x3030, 0x3137, 0x31E9, 0x322B, 0x31DC, 0x30FD, ++ 0x2F9F, 0x2DD3, 0x2BAC, 0x293B, 0x2692, 0x23C3, 0x20DF, 0x1DF9, 0x1B22, ++ 0x186B, 0x15E7, 0x13A8, 0x11BE, 0x103D, 0x0F35, 0x0E82, 0x0DEE, 0x0D79, ++ 0x0D1D, 0x0CD8, 0x0CA7, 0x0C86, 0x0C71, 0x0C67, 0x0C63, 0x0C63, 0x0C74, ++ 0x0CA2, 0x0CE7, 0x0D3C, 0x0D9B, 0x0DFD, 0x0E5C, 0x0EB1, 0x0EF6, 0x0F24, ++ 0x0F35, 0x0F24, 0x0EF6, 0x0EB1, 0x0E5C, 0x0DFD, 0x0D9B, 0x0D3C, 0x0CE7, ++ 0x0CA2, 0x0C74, 0x0C63, 0x0CC9, 0x0DEA, 0x0FA8, 0x11E7, 0x148A, 0x1775, ++ 0x1A8A, 0x1DAE, 0x20C4, 0x23AF, 0x2652, 0x2891, 0x2A4F, 0x2B6F, 0x2BD6, ++ 0xCCF5, 0xCC8A, 0xCB5F, 0xC994, 0xC749, 0xC49D, 0xC1B2, 0xBEA6, 0xBB9A, ++ 0xB8AF, 0xB603, 0xB3B8, 0xB1ED, 0xB0C1, 0xB057, 0xB060, 0xB079, 0xB09E, ++ 0xB0CB, 0xB0FC, 0xB12D, 0xB15A, 0xB17F, 0xB198, 0xB1A1, 0xB1A1, 0xB19E, ++ 0xB198, 0xB18C, 0xB178, 0xB15A, 0xB130, 0xB0F8, 0xB0B0, 0xB057, 0xAFD6, ++ 0xAF21, 0xAE3E, 0xAD36, 0xAC11, 0xAAD5, 0xA98C, 0xA83D, 0xA6F0, 0xA5AD, ++ 0xA47B, 0xA362, 0xA26B, 0xA19E, 0xA101, 0xA09D, 0xA07A, 0xA07D, 0xA083, ++ 0xA08D, 0xA099, 0xA0A6, 0xA0B4, 0xA0C1, 0xA0CD, 0xA0D7, 0xA0DD, 0xA0DF, ++ 0xA0DD, 0xA0D7, 0xA0CD, 0xA0C1, 0xA0B4, 0xA0A6, 0xA099, 0xA08D, 0xA083, ++ 0xA07D, 0xA07A, 0xA07A, 0xA07B, 0xA07C, 0xA07F, 0xA084, 0xA08B, 0xA094, ++ 0xA0A1, 0xA0B2, 0xA0C6, 0xA0DF, 0xA187, 0xA32D, 0xA5AA, 0xA8D6, 0xAC8B, ++ 0xB0A0, 0xB4EE, 0xB94E, 0xBD98, 0xC1A6, 0xC54F, 0xC86D, 0xCAD7, 0xCC67, ++ 0xCCF5, 0xFFFF, 0xFFD7, 0xFF66, 0xFEB9, 0xFDDB, 0xFCD9, 0xFBBF, 0xFA99, ++ 0xF972, 0xF858, 0xF756, 0xF679, 0xF5CB, 0xF55A, 0xF532, 0xF545, 0xF57A, ++ 0xF5C7, 0xF625, 0xF68A, 0xF6F0, 0xF74E, 0xF79B, 0xF7CF, 0xF7E3, 0xF7CF, ++ 0xF79B, 0xF74E, 0xF6F0, 0xF68A, 0xF625, 0xF5C7, 0xF57A, 0xF545, 0xF532, ++ 0xF53C, 0xF557, 0xF582, 0xF5BC, 0xF603, 0xF655, 0xF6B1, 0xF714, 0xF77E, ++ 0xF7EC, 0xF85E, 0xF8D0, 0xF942, 0xF9B2, 0xFA1E, 0xFA85, 0xFAE5, 0xFB3C, ++ 0xFB8B, 0xFBD1, 0xFC0F, 0xFC44, 0xFC71, 0xFC95, 0xFCB1, 0xFCC5, 0xFCD2, ++ 0xFCD5, 0xFCCA, 0xFCAA, 0xFC7B, 0xFC40, 0xFBFF, 0xFBBB, 0xFB7A, 0xFB3F, ++ 0xFB10, 0xFAF0, 0xFAE5, 0xFAEA, 0xFAFA, 0xFB14, 0xFB36, 0xFB60, 0xFB92, ++ 0xFBC9, 0xFC06, 0xFC48, 0xFC8D, 0xFCD5, 0xFD20, 0xFD6B, 0xFDB6, 0xFE01, ++ 0xFE4A, 0xFE91, 0xFED4, 0xFF12, 0xFF4C, 0xFF7F, 0xFFAA, 0xFFCE, 0xFFE9, ++ 0xFFF9, 0xFFFF, 0x0000, 0xFFD5, 0xFF60, 0xFEAC, 0xFDC5, 0xFCB9, 0xFB93, ++ 0xFA61, 0xF930, 0xF80A, 0xF6FE, 0xF617, 0xF563, 0xF4EE, 0xF4C4, 0xF4FC, ++ 0xF593, 0xF672, 0xF781, 0xF8A8, 0xF9CF, 0xFADE, 0xFBBD, 0xFC54, 0xFC8C, ++ 0xFC54, 0xFBBD, 0xFADE, 0xF9CF, 0xF8A8, 0xF781, 0xF672, 0xF593, 0xF4FC, ++ 0xF4C4, 0xF4FA, 0xF595, 0xF685, 0xF7C0, 0xF936, 0xFADA, 0xFCA0, 0xFE7A, ++ 0x005C, 0x0236, 0x03FC, 0x05A0, 0x0716, 0x0850, 0x0941, 0x09DB, 0x0A12, ++ 0x0A03, 0x09D9, 0x099B, 0x094E, 0x08F9, 0x08A0, 0x084B, 0x07FE, 0x07C0, ++ 0x0796, 0x0787, 0x0796, 0x07C0, 0x07FE, 0x084B, 0x08A0, 0x08F9, 0x094E, ++ 0x099B, 0x09D9, 0x0A03, 0x0A12, 0x0A0E, 0x0A01, 0x09EA, 0x09C9, 0x099D, ++ 0x0966, 0x0922, 0x08D1, 0x0872, 0x0804, 0x0787, 0x06FB, 0x0662, 0x05C0, ++ 0x0518, 0x046D, 0x03C2, 0x031C, 0x027C, 0x01E7, 0x0160, 0x00EA, 0x0089, ++ 0x003F, 0x0010, 0x0000, 0xC7DC, 0xC771, 0xC645, 0xC479, 0xC22C, 0xBF7E, ++ 0xBC90, 0xB983, 0xB675, 0xB387, 0xB0DA, 0xAE8D, 0xACC0, 0xAB94, 0xAB29, ++ 0xAB4E, 0xABB3, 0xAC48, 0xACFD, 0xADC2, 0xAE86, 0xAF3B, 0xAFD0, 0xB035, ++ 0xB05A, 0xB035, 0xAFD0, 0xAF3B, 0xAE86, 0xADC2, 0xACFD, 0xAC48, 0xABB3, ++ 0xAB4E, 0xAB29, 0xAB6E, 0xAC31, 0xAD64, 0xAEF7, 0xB0D9, 0xB2FC, 0xB54F, ++ 0xB7C2, 0xBA47, 0xBCCE, 0xBF46, 0xC1A0, 0xC3CC, 0xC5BB, 0xC75D, 0xC8A2, ++ 0xC97B, 0xCA0A, 0xCA80, 0xCADE, 0xCB27, 0xCB5E, 0xCB85, 0xCBA0, 0xCBB0, ++ 0xCBB8, 0xCBBB, 0xCBBB, 0xCBAE, 0xCB89, 0xCB52, 0xCB0E, 0xCAC2, 0xCA74, ++ 0xCA28, 0xC9E4, 0xC9AD, 0xC988, 0xC97B, 0xC988, 0xC9AD, 0xC9E4, 0xCA28, ++ 0xCA74, 0xCAC2, 0xCB0E, 0xCB52, 0xCB89, 0xCBAE, 0xCBBB, 0xCBAF, 0xCB8B, ++ 0xCB54, 0xCB0E, 0xCABA, 0xCA5F, 0xC9FD, 0xC99A, 0xC939, 0xC8DD, 0xC88A, ++ 0xC843, 0xC80C, 0xC7E9, 0xC7DC, 0xFFFF, 0x0080, 0x01E7, 0x040D, 0x06CE, ++ 0x0A01, 0x0D82, 0x1129, 0x14D0, 0x1850, 0x1B84, 0x1E44, 0x206B, 0x21D1, ++ 0x2252, 0x224D, 0x2242, 0x2231, 0x221D, 0x2206, 0x21F0, 0x21DC, 0x21CB, ++ 0x21BF, 0x21BB, 0x21BF, 0x21CB, 0x21DC, 0x21F0, 0x2206, 0x221D, 0x2231, ++ 0x2242, 0x224D, 0x2252, 0x21FA, 0x2101, 0x1F7D, 0x1D83, 0x1B29, 0x1883, ++ 0x15A7, 0x12AC, 0x0FA6, 0x0CAA, 0x09CF, 0x0729, 0x04CE, 0x02D4, 0x0150, ++ 0x0058, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFF4, 0xFFD4, 0xFFA3, 0xFF64, ++ 0xFF1B, 0xFECB, 0xFE78, 0xFE24, 0xFDD5, 0xFD8B, 0xFD4D, 0xFD1C, 0xFCFC, ++ 0xFCF0, 0xFD0E, 0xFD5D, 0xFDD2, 0xFE60, 0xFEFB, 0xFF96, 0x0025, 0x009A, ++ 0x00EA, 0x0107, 0x00EA, 0x009A, 0x0025, 0xFF96, 0xFEFB, 0xFE60, 0xFDD2, ++ 0xFD5D, 0xFD0E, 0xFCF0, 0xFCF8, 0xFD0E, 0xFD31, 0xFD5E, 0xFD94, 0xFDD0, ++ 0xFE11, 0xFE55, 0xFE9A, 0xFEDE, 0xFF1F, 0xFF5C, 0xFF91, 0xFFBE, 0xFFE1, ++ 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xF548, 0xF654, 0xF942, 0xFDC6, 0x0392, 0x0A57, 0x11C8, ++ 0x1997, 0x2176, 0x2918, 0x302E, 0x366B, 0x3B81, 0x3F23, 0x4102, 0x41CF, ++ 0x4274, 0x42F4, 0x4354, 0x4399, 0x43C7, 0x43E3, 0x43F2, 0x43F7, 0x43F8, ++ 0x43F7, 0x43F2, 0x43E3, 0x43C7, 0x4399, 0x4354, 0x42F4, 0x4274, 0x41CF, ++ 0x4102, 0x3F77, 0x3CBA, 0x38F5, 0x3453, 0x2EFF, 0x2922, 0x22E9, 0x1C7D, ++ 0x160A, 0x0FB9, 0x09B5, 0x0429, 0xFF3F, 0xFB23, 0xF7FF, 0xF5FD, 0xF548, ++ 0x0000, 0x0000, 0xBF5E, 0xD649, 0xD69E, 0xD78C, 0xD8F8, 0xDACB, 0xDCEA, ++ 0xDF3C, 0xE1A7, 0xE412, 0xE664, 0xE883, 0xEA56, 0xEBC3, 0xECB0, 0xED05, ++ 0xEC9C, 0xEB7F, 0xE9DB, 0xE7DE, 0xE5B3, 0xE388, 0xE18A, 0xDFE7, 0xDECA, ++ 0xDE61, 0xDECA, 0xDFE7, 0xE18A, 0xE388, 0xE5B3, 0xE7DE, 0xE9DB, 0xEB7F, ++ 0xEC9C, 0xED05, 0xECF5, 0xECC5, 0xEC77, 0xEC0C, 0xEB85, 0xEAE3, 0xEA27, ++ 0xE953, 0xE866, 0xE764, 0xE64C, 0xE51F, 0xE3E0, 0xE28E, 0xE12C, 0xDFB9, ++ 0xDE39, 0xDCAB, 0xDB1A, 0xD98C, 0xD80C, 0xD6A2, 0xD557, 0xD435, 0xD343, ++ 0xD28B, 0xD217, 0xD1EE, 0xD237, 0xD300, 0xD42C, 0xD59F, 0xD73D, 0xD8E9, ++ 0xDA87, 0xDBFA, 0xDD26, 0xDDEF, 0xDE39, 0xDDEF, 0xDD26, 0xDBFA, 0xDA87, ++ 0xD8E9, 0xD73D, 0xD59F, 0xD42C, 0xD300, 0xD237, 0xD1EE, 0xD1FC, 0xD224, ++ 0xD262, 0xD2B1, 0xD30F, 0xD376, 0xD3E4, 0xD453, 0xD4C1, 0xD528, 0xD585, ++ 0xD5D5, 0xD613, 0xD63B, 0xD649, 0xEC40, 0xEBF2, 0xEB17, 0xE9C7, 0xE819, ++ 0xE625, 0xE402, 0xE1C8, 0xDF8E, 0xDD6B, 0xDB76, 0xD9C9, 0xD879, 0xD79E, ++ 0xD750, 0xD75D, 0xD780, 0xD7B3, 0xD7F2, 0xD836, 0xD87A, 0xD8B9, 0xD8EC, ++ 0xD910, 0xD91C, 0xD910, 0xD8EC, 0xD8B9, 0xD87A, 0xD836, 0xD7F2, 0xD7B3, ++ 0xD780, 0xD75D, 0xD750, 0xD7AC, 0xD8B2, 0xDA4C, 0xDC63, 0xDEE2, 0xE1B1, ++ 0xE4BC, 0xE7EB, 0xEB29, 0xEE5E, 0xF176, 0xF45A, 0xF6F4, 0xF92D, 0xFAEF, ++ 0xFC24, 0xFCB7, 0xFCEB, 0xFD16, 0xFD38, 0xFD53, 0xFD67, 0xFD75, 0xFD7F, ++ 0xFD85, 0xFD88, 0xFD89, 0xFD89, 0xFD84, 0xFD77, 0xFD63, 0xFD4A, 0xFD2E, ++ 0xFD12, 0xFCF6, 0xFCDD, 0xFCC9, 0xFCBC, 0xFCB7, 0xFCBC, 0xFCC9, 0xFCDD, ++ 0xFCF6, 0xFD12, 0xFD2E, 0xFD4A, 0xFD63, 0xFD77, 0xFD84, 0xFD89, 0xFD51, ++ 0xFCB2, 0xFBBD, 0xFA81, 0xF90E, 0xF774, 0xF5C2, 0xF408, 0xF256, 0xF0BB, ++ 0xEF48, 0xEE0C, 0xED17, 0xEC78, 0xEC40, 0xB59D, 0xB501, 0xB34B, 0xB0A9, ++ 0xAD4D, 0xA963, 0xA51B, 0xA0A5, 0x9C2E, 0x97E6, 0x93FD, 0x90A0, 0x8DFF, ++ 0x8C49, 0x8BAC, 0x8C1F, 0x8D56, 0x8F20, 0x914C, 0x93AA, 0x9607, 0x9833, ++ 0x99FE, 0x9B35, 0x9BA7, 0x9B35, 0x99FE, 0x9833, 0x9607, 0x93AA, 0x914C, ++ 0x8F20, 0x8D56, 0x8C1F, 0x8BAC, 0x8C34, 0x8DB6, 0x9012, 0x9325, 0x96D1, ++ 0x9AF3, 0x9F6A, 0xA417, 0xA8D8, 0xAD8B, 0xB211, 0xB649, 0xBA11, 0xBD49, ++ 0xBFCF, 0xC183, 0xC245, 0xC27C, 0xC2AA, 0xC2CE, 0xC2EA, 0xC300, 0xC30F, ++ 0xC319, 0xC31F, 0xC322, 0xC324, 0xC324, 0xC31F, 0xC310, 0xC2FB, 0xC2E1, ++ 0xC2C3, 0xC2A5, 0xC288, 0xC26D, 0xC258, 0xC24A, 0xC245, 0xC24A, 0xC258, ++ 0xC26D, 0xC288, 0xC2A5, 0xC2C3, 0xC2E1, 0xC2FB, 0xC310, 0xC31F, 0xC324, ++ 0xC2F8, 0xC27C, 0xC1BC, 0xC0C4, 0xBFA2, 0xBE61, 0xBD0D, 0xBBB4, 0xBA60, ++ 0xB91F, 0xB7FD, 0xB705, 0xB646, 0xB5C9, 0xB59D, 0x0000, 0xFFF6, 0xFFDD, ++ 0xFFB7, 0xFF86, 0xFF4D, 0xFF0E, 0xFECD, 0xFE8C, 0xFE4E, 0xFE15, 0xFDE4, ++ 0xFDBD, 0xFDA5, 0xFD9C, 0xFDB5, 0xFDF9, 0xFE5D, 0xFED7, 0xFF5C, 0xFFE1, ++ 0x005C, 0x00C0, 0x0105, 0x011E, 0x0112, 0x00EF, 0x00B7, 0x006C, 0x0011, ++ 0xFFA7, 0xFF31, 0xFEB2, 0xFE2A, 0xFD9C, 0xFD0A, 0xFC75, 0xFBE0, 0xFB4B, ++ 0xFAB8, 0xFA29, 0xF99E, 0xF91A, 0xF89D, 0xF82A, 0xF7C1, 0xF765, 0xF716, ++ 0xF6D6, 0xF6A6, 0xF689, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF69E, 0xF6F5, 0xF77C, 0xF829, 0xF8F5, 0xF9D7, 0xFAC5, 0xFBB8, ++ 0xFCA7, 0xFD88, 0xFE54, 0xFF02, 0xFF89, 0xFFE0, 0x0000, 0xFFFF, 0xFFC0, ++ 0xFF10, 0xFE02, 0xFCA9, 0xFB17, 0xF95F, 0xF794, 0xF5CA, 0xF412, 0xF280, ++ 0xF126, 0xF018, 0xEF68, 0xEF2A, 0xEF3C, 0xEF6F, 0xEFBA, 0xF015, 0xF078, ++ 0xF0DB, 0xF136, 0xF181, 0xF1B3, 0xF1C6, 0xF1BB, 0xF19C, 0xF16B, 0xF12C, ++ 0xF0E1, 0xF08E, 0xF036, 0xEFDB, 0xEF81, 0xEF2A, 0xEED8, 0xEE8D, 0xEE48, ++ 0xEE09, 0xEDD0, 0xED9C, 0xED6D, 0xED44, 0xED20, 0xED01, 0xECE6, 0xECD0, ++ 0xECBE, 0xECB1, 0xECA7, 0xECA2, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECDF, 0xED91, 0xEEA4, 0xF006, 0xF1A5, 0xF371, 0xF558, ++ 0xF747, 0xF92D, 0xFAF9, 0xFC99, 0xFDFB, 0xFF0E, 0xFFC0, 0xFFFF, 0x2537, ++ 0x2536, 0x2534, 0x252D, 0x251F, 0x2508, 0x24E5, 0x24B5, 0x2475, 0x2423, ++ 0x23BD, 0x2340, 0x22AA, 0x21F8, 0x212A, 0x2036, 0x1F21, 0x1DF8, 0x1CC9, ++ 0x1BA2, 0x1A92, 0x19A6, 0x18EC, 0x1873, 0x1847, 0x1887, 0x1933, 0x1A32, ++ 0x1B68, 0x1CB8, 0x1E09, 0x1F3E, 0x203D, 0x20EA, 0x212A, 0x2123, 0x2110, ++ 0x20F3, 0x20CD, 0x209F, 0x206C, 0x2035, 0x1FFB, 0x1FC1, 0x1F87, 0x1F50, ++ 0x1F1D, 0x1EEF, 0x1EC9, 0x1EAB, 0x1E99, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1EA8, 0x1EE5, 0x1F43, 0x1FBC, 0x204B, 0x20E9, ++ 0x2190, 0x2239, 0x22E0, 0x237E, 0x240D, 0x2486, 0x24E4, 0x2521, 0x2537, ++ 0x0000, 0xFFFB, 0xFFF0, 0xFFDF, 0xFFCA, 0xFFB0, 0xFF95, 0xFF78, 0xFF5C, ++ 0xFF40, 0xFF27, 0xFF11, 0xFF00, 0xFEF5, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, ++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, ++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF6, ++ 0xFF02, 0xFF14, 0xFF2C, 0xFF49, 0xFF69, 0xFF8C, 0xFFB1, 0xFFD6, 0xFFFA, ++ 0x001E, 0x003E, 0x005B, 0x0073, 0x0086, 0x0092, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, 0x008E, 0x0086, 0x007B, 0x006F, ++ 0x0061, 0x0052, 0x0043, 0x0035, 0x0027, 0x001A, 0x0010, 0x0007, 0x0002, ++ 0x0000, 0xFFFF, 0xFFF8, 0xFFE3, 0xFFC3, 0xFF9A, 0xFF6A, 0xFF36, 0xFF00, ++ 0xFECA, 0xFE96, 0xFE66, 0xFE3D, 0xFE1D, 0xFE08, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE00, 0xFDFC, 0xFDF7, 0xFDF1, 0xFDE9, 0xFDE0, 0xFDD6, 0xFDCC, 0xFDC2, ++ 0xFDB8, 0xFDAE, 0xFDA5, 0xFD9D, 0xFD97, 0xFD91, 0xFD8E, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD95, 0xFDAB, 0xFDCE, 0xFDFB, ++ 0xFE2F, 0xFE69, 0xFEA7, 0xFEE5, 0xFF23, 0xFF5D, 0xFF91, 0xFFBE, 0xFFE1, ++ 0xFFF7, 0xFFFF, 0xBF3F, 0xBFCF, 0xC163, 0xC3CF, 0xC6E9, 0xCA84, 0xCE75, ++ 0xD292, 0xD6AF, 0xDAA0, 0xDE3B, 0xE154, 0xE3C0, 0xE554, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE57B, 0xE451, 0xE27F, 0xE020, 0xDD4D, 0xDA20, 0xD6B2, 0xD31E, ++ 0xCF7D, 0xCBE8, 0xC87B, 0xC54D, 0xC27A, 0xC01B, 0xBE49, 0xBD1F, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCBE, 0xBCD5, 0xBCF9, ++ 0xBD28, 0xBD5E, 0xBD9A, 0xBDDA, 0xBE1B, 0xBE5B, 0xBE97, 0xBECD, 0xBEFC, ++ 0xBF20, 0xBF37, 0xBF3F, 0x0000, 0x0000, 0xBF5E, 0x1B09, 0x1AC0, 0x19F2, ++ 0x18B7, 0x1724, 0x154E, 0x134D, 0x1136, 0x0F1F, 0x0D1D, 0x0B48, 0x09B5, ++ 0x087A, 0x07AC, 0x0763, 0x077A, 0x07B8, 0x0813, 0x0882, 0x08FA, 0x0973, ++ 0x09E2, 0x0A3D, 0x0A7B, 0x0A92, 0x0A7B, 0x0A3D, 0x09E2, 0x0973, 0x08FA, ++ 0x0882, 0x0813, 0x07B8, 0x077A, 0x0763, 0x07AA, 0x0873, 0x09AC, 0x0B45, ++ 0x0D2C, 0x0F4F, 0x119E, 0x1407, 0x1678, 0x18E1, 0x1B30, 0x1D53, 0x1F3A, ++ 0x20D3, 0x220C, 0x22D5, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x2302, 0x22B7, 0x2245, 0x21B1, 0x2104, 0x2044, 0x1F7A, 0x1EAB, ++ 0x1DE0, 0x1D21, 0x1C73, 0x1BE0, 0x1B6D, 0x1B23, 0x1B09, 0x1144, 0x1195, ++ 0x1279, 0x13D6, 0x1594, 0x179C, 0x19D4, 0x1C25, 0x1E76, 0x20AE, 0x22B6, ++ 0x2475, 0x25D2, 0x26B5, 0x2707, 0x26F7, 0x26CD, 0x268E, 0x2643, 0x25F0, ++ 0x259E, 0x2552, 0x2514, 0x24E9, 0x24DA, 0x24E9, 0x2514, 0x2552, 0x259E, ++ 0x25F0, 0x2643, 0x268E, 0x26CD, 0x26F7, 0x2707, 0x26A6, 0x2595, 0x23EA, ++ 0x21BE, 0x1F27, 0x1C3E, 0x191A, 0x15D2, 0x127F, 0x0F38, 0x0C14, 0x092A, ++ 0x0694, 0x0467, 0x02BD, 0x01AB, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x017F, 0x0212, 0x02F4, 0x0418, 0x056F, 0x06EA, 0x087B, ++ 0x0A14, 0x0BA5, 0x0D20, 0x0E77, 0x0F9B, 0x107D, 0x1110, 0x1144, 0xAC43, ++ 0xAC00, 0xAB44, 0xAA24, 0xA8B2, 0xA705, 0xA52F, 0xA345, 0xA15B, 0x9F85, ++ 0x9DD8, 0x9C66, 0x9B46, 0x9A8A, 0x9A47, 0x9A8D, 0x9B4A, 0x9C61, 0x9DB4, ++ 0x9F24, 0xA095, 0xA1E8, 0xA2FF, 0xA3BC, 0xA402, 0xA3BC, 0xA2FF, 0xA1E8, ++ 0xA095, 0x9F24, 0x9DB4, 0x9C61, 0x9B4A, 0x9A8D, 0x9A47, 0x9A7A, 0x9B09, ++ 0x9BEA, 0x9D0F, 0x9E6B, 0x9FF3, 0xA19A, 0xA354, 0xA514, 0xA6CE, 0xA875, ++ 0xA9FD, 0xAB59, 0xAC7E, 0xAD5F, 0xADEE, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE1B, 0xAE0A, 0xADEF, 0xADCD, 0xADA5, 0xAD79, ++ 0xAD4A, 0xAD1A, 0xACEB, 0xACBF, 0xAC97, 0xAC75, 0xAC5B, 0xAC49, 0xAC43, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, ++ 0xFFFA, 0xFFF3, 0xFFEB, 0xFFE1, 0xFFD7, 0xFFCB, 0xFFBF, 0xFFB2, 0xFFA6, ++ 0xFF9A, 0xFF8F, 0xFF85, 0xFF7D, 0xFF77, 0xFF73, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF73, 0xFF78, 0xFF80, 0xFF8A, 0xFF96, ++ 0xFFA3, 0xFFB1, 0xFFBF, 0xFFCD, 0xFFDA, 0xFFE6, 0xFFF0, 0xFFF8, 0xFFFD, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0020, 0x007C, 0x010C, 0x01C7, 0x02A7, 0x03A1, 0x04B0, 0x05CB, 0x06E9, ++ 0x0804, 0x0913, 0x0A0E, 0x0AED, 0x0BA8, 0x0C38, 0x0C94, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0C8B, 0x0C16, 0x0B62, 0x0A7A, ++ 0x0969, 0x083B, 0x06FD, 0x05B8, 0x0479, 0x034B, 0x023A, 0x0152, 0x009E, ++ 0x0029, 0x0000, 0x1E4A, 0x1DD9, 0x1C9C, 0x1AB6, 0x1849, 0x1575, 0x125E, ++ 0x0F25, 0x0BEC, 0x08D5, 0x0601, 0x0394, 0x01AE, 0x0071, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x002D, 0x00AE, 0x0176, 0x027C, 0x03B3, 0x0511, 0x068B, 0x0815, ++ 0x09A5, 0x0B30, 0x0CA9, 0x0E07, 0x0F3F, 0x1044, 0x110D, 0x118D, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11E3, 0x1256, 0x1309, ++ 0x13EE, 0x14FC, 0x1626, 0x1761, 0x18A3, 0x19DE, 0x1B08, 0x1C16, 0x1CFB, ++ 0x1DAE, 0x1E21, 0x1E4A, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x000D, 0x002F, 0x0062, 0x00A0, 0x00E3, 0x0126, 0x0164, 0x0197, 0x01B9, ++ 0x01C6, 0x01B9, 0x0197, 0x0164, 0x0126, 0x00E3, 0x00A0, 0x0062, 0x002F, ++ 0x000D, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, ++ 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, ++ 0xFF4D, 0xFF9F, 0x0018, 0x00AA, 0x014A, 0x01E9, 0x027B, 0x02F3, 0x0345, ++ 0x0363, 0x0345, 0x02F3, 0x027B, 0x01E9, 0x014A, 0x00AA, 0x0018, 0xFF9F, ++ 0xFF4D, 0xFF2F, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, ++ 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9BF, ++ 0xC97E, 0xC91E, 0xC8AA, 0xC82B, 0xC7AD, 0xC738, 0xC6D8, 0xC697, 0xC67F, ++ 0xC697, 0xC6D8, 0xC738, 0xC7AD, 0xC82B, 0xC8AA, 0xC91E, 0xC97E, 0xC9BF, ++ 0xC9D7, + }; + diff --git a/assets/anims/anim_38.inc.c b/assets/anims/anim_38.inc.c index 179f498a..6c935aa7 100644 --- a/assets/anims/anim_38.inc.c +++ b/assets/anims/anim_38.inc.c @@ -1,9 +1,9 @@ static const struct Animation anim_38[] = { - 1, + 0, 189, 0, - 0, - 0x0C, + 1, + 54, ANIMINDEX_NUMPARTS(anim_38_indices), anim_38_values, anim_38_indices, @@ -12,81 +12,263 @@ static const struct Animation anim_38[] = { static const u16 anim_38_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, - 0x000C, 0x0182, 0x000C, 0x018E, 0x000C, 0x019A, - 0x000C, 0x015E, 0x000C, 0x016A, 0x000C, 0x0176, - 0x000C, 0x013A, 0x000C, 0x0146, 0x000C, 0x0152, - 0x0001, 0x0136, 0x0001, 0x0137, 0x0001, 0x0138, - 0x000C, 0x0033, 0x000C, 0x003F, 0x000C, 0x004B, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0027, - 0x000C, 0x0003, 0x000C, 0x000F, 0x000C, 0x001B, - 0x0001, 0x0132, 0x0001, 0x0133, 0x0001, 0x0134, - 0x000C, 0x0087, 0x000C, 0x0093, 0x000C, 0x009F, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x007B, - 0x000C, 0x0057, 0x000C, 0x0063, 0x000C, 0x006F, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0135, - 0x0001, 0x012F, 0x0001, 0x0130, 0x0001, 0x0131, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0123, - 0x000C, 0x00FF, 0x000C, 0x010B, 0x000C, 0x0117, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0139, - 0x000C, 0x00DB, 0x000C, 0x00E7, 0x000C, 0x00F3, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x00CF, - 0x000C, 0x00AB, 0x000C, 0x00B7, 0x000C, 0x00C3, + 0x0037, 0x0000, 0x0037, 0x0037, 0x0001, 0x006E, 0x0032, 0x006F, 0x0001, 0x00A1, 0x0037, 0x00A2, + 0x0037, 0x00D9, 0x0036, 0x0110, 0x0001, 0x0146, 0x0037, 0x0147, 0x0037, 0x017E, 0x0037, 0x01B5, + 0x0037, 0x01EC, 0x0036, 0x0223, 0x0037, 0x0259, 0x0001, 0x0290, 0x0001, 0x0291, 0x0001, 0x0292, + 0x0037, 0x0293, 0x0037, 0x02CA, 0x0037, 0x0301, 0x0037, 0x0338, 0x0037, 0x036F, 0x0037, 0x03A6, + 0x0037, 0x03DD, 0x0037, 0x0414, 0x0037, 0x044B, 0x0001, 0x0482, 0x0001, 0x0483, 0x0001, 0x0484, + 0x0037, 0x0485, 0x0037, 0x04BC, 0x0037, 0x04F3, 0x0037, 0x052A, 0x0037, 0x0561, 0x0037, 0x0598, + 0x0037, 0x05CF, 0x0037, 0x0606, 0x0037, 0x063D, 0x0036, 0x0674, 0x0037, 0x06AA, 0x0037, 0x06E1, + 0x0037, 0x0718, 0x0037, 0x074F, 0x0037, 0x0786, 0x0025, 0x07BD, 0x0026, 0x07E2, 0x0037, 0x0808, + 0x0033, 0x083F, 0x0031, 0x0872, 0x0037, 0x08A3, 0x0036, 0x08DA, 0x0037, 0x0910, 0x0036, 0x0947, + 0x0037, 0x097D, 0x0037, 0x09B4, 0x0037, 0x09EB, 0x0037, 0x0A22, 0x0034, 0x0A59, 0x0037, 0x0A8D, + 0x0037, 0x0AC4, 0x0037, 0x0AFB, 0x0037, 0x0B32, }; static const s16 anim_38_values[] = { - 0x0000, 0x00AA, 0x3FFF, 0xEA73, 0xEB7E, 0xEDCA, 0xF01B, 0xF23E, - 0xF4B3, 0xF74B, 0xF9D9, 0xFC2C, 0xFE18, 0xFF6E, 0xFFFF, 0xE788, - 0xEA9C, 0xF0A1, 0xF4C5, 0xF631, 0xF74C, 0xF820, 0xF8B7, 0xF91C, - 0xF957, 0xF974, 0xF97C, 0xE831, 0xE717, 0xE522, 0xE459, 0xE519, - 0xE649, 0xE7C0, 0xE955, 0xEADD, 0xEC2F, 0xED21, 0xED8A, 0xD054, - 0xD69D, 0xE231, 0xE820, 0xE678, 0xE2FC, 0xDE4B, 0xD902, 0xD3C1, - 0xCF24, 0xCBCB, 0xCA54, 0x02F5, 0x017D, 0xFEA2, 0xFCB3, 0xFC18, - 0xFBAA, 0xFB60, 0xFB34, 0xFB1F, 0xFB18, 0xFB1A, 0xFB1D, 0xE52A, - 0xE560, 0xE576, 0xE496, 0xE299, 0xE00B, 0xDD2E, 0xDA40, 0xD782, - 0xD532, 0xD391, 0xD2DE, 0xBF44, 0xC5C1, 0xD229, 0xD9EA, 0xDB29, - 0xDB49, 0xDA95, 0xD955, 0xD7D5, 0xD65E, 0xD53B, 0xD4B5, 0x4043, - 0x425F, 0x466F, 0x4911, 0x46E4, 0x3EDF, 0x335B, 0x2606, 0x188D, - 0x0C9D, 0x03E3, 0x000D, 0x006A, 0x005B, 0x003A, 0x0015, 0x0000, - 0xFFF9, 0xFFF7, 0xFFF7, 0xFFF9, 0xFFFC, 0xFFFF, 0x0000, 0xF58E, - 0xF584, 0xF56E, 0xF557, 0xF549, 0xF545, 0xF543, 0xF543, 0xF545, - 0xF547, 0xF548, 0xF549, 0xEA13, 0xE896, 0xE543, 0xE1CD, 0xDFE7, - 0xE1F0, 0xE5AE, 0xE5F1, 0xDFA8, 0xD5E3, 0xCCA4, 0xC7EF, 0xDC6A, - 0xD5B0, 0xC76B, 0xBA78, 0xB7B5, 0xC231, 0xD432, 0xE961, 0xFD69, - 0x0BF1, 0x0BD0, 0x056F, 0x2D97, 0x2DE0, 0x2E7F, 0x2F16, 0x2F4B, - 0x2F06, 0x2E81, 0x2DDB, 0x2D32, 0x2CA4, 0x2C25, 0x2BD7, 0x8F0E, - 0x84E8, 0x6F29, 0x5AE6, 0x552F, 0x61F7, 0x78DF, 0x9482, 0xAF70, - 0xC443, 0xCCB4, 0xCCFC, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, - 0x0006, 0x0005, 0x0004, 0x0002, 0x0001, 0x0000, 0x0000, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xC871, 0xC866, 0xC84D, 0xC834, 0xC828, - 0xC837, 0xC86B, 0xC8BC, 0xC91A, 0xC974, 0xC9B8, 0xC9D8, 0x205D, - 0x2038, 0x1FDD, 0x1F6A, 0x1EFC, 0x1EB2, 0x1E89, 0x1E6D, 0x1E5A, - 0x1E50, 0x1E4B, 0x1E4A, 0x1A92, 0x1A9A, 0x1AAE, 0x1AC7, 0x1AE0, - 0x1AF0, 0x1AF9, 0x1B00, 0x1B04, 0x1B07, 0x1B08, 0x1B09, 0x1206, - 0x11F9, 0x11DA, 0x11B1, 0x118B, 0x1170, 0x1161, 0x1155, 0x114D, - 0x1148, 0x1145, 0x1144, 0xAB2C, 0xAB3F, 0xAB6D, 0xABA8, 0xABE1, - 0xAC07, 0xAC1D, 0xAC2D, 0xAC38, 0xAC3F, 0xAC43, 0xAC44, 0x0026, - 0x0027, 0x0028, 0x002A, 0x002A, 0x0028, 0x0023, 0x001B, 0x0012, - 0x0009, 0x0003, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, - 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xC07C, - 0xC09C, 0xC0E6, 0xC13B, 0xC17A, 0xC183, 0xC146, 0xC0D9, 0xC055, - 0xBFD3, 0xBF6F, 0xBF41, 0x239D, 0x238E, 0x236D, 0x234C, 0x233A, - 0x2348, 0x2385, 0x23E5, 0x2454, 0x24BF, 0x2511, 0x2536, 0xD64A, - 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, - 0x4171, 0xBF5F, 0xE406, 0xE997, 0xF014, 0xF0C9, 0xF00C, 0xEF10, - 0xEF0E, 0xF088, 0xF2F9, 0xF604, 0xFB79, 0xFFED, 0xFD18, 0xFE5B, - 0x002D, 0x0166, 0x029D, 0x0387, 0x03D3, 0x02CD, 0x00DF, 0xFF70, - 0xFF7E, 0xFFFE, 0xFFF2, 0x0603, 0x0DFB, 0x11E4, 0x1555, 0x174B, - 0x16C0, 0x10EB, 0x075D, 0xFF9B, 0xFCBA, 0xFC61, 0xFF91, 0xFF90, - 0xFF94, 0xFF9F, 0xFFAD, 0xFFBD, 0xFFCD, 0xFFDC, 0xFFEA, 0xFFF5, - 0xFFFD, 0x0000, 0x0314, 0x0783, 0x0BD0, 0x0B33, 0x0A06, 0x0873, - 0x06A6, 0x04C7, 0x0303, 0x0185, 0x0076, 0x0001, 0x0882, 0x0876, - 0x086B, 0x086C, 0x086E, 0x0871, 0x0875, 0x0879, 0x087D, 0x0880, - 0x0883, 0x0884, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFB9, 0xFFC5, - 0xFFE3, 0x000A, 0x0033, 0x0055, 0x0066, 0x0060, 0x0048, 0x0029, - 0x000D, 0x0000, 0x407E, 0x407E, 0x4081, 0x4084, 0x4087, 0x408A, - 0x408E, 0x4093, 0x4098, 0x409C, 0x40A0, 0x40A1, + 0x0000, 0x0000, 0x0001, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000A, 0x000B, 0x000D, + 0x000E, 0x000F, 0x0011, 0x0012, 0x0013, 0x0014, 0x0016, 0x0013, 0x0011, 0x000E, 0x000C, 0x000A, + 0x0007, 0x0005, 0x0002, 0x0000, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF6, + 0xFFF5, 0xFFF4, 0xFFF3, 0xFFF2, 0xFFF0, 0xFFEF, 0xFFEE, 0xFFED, 0xFFEC, 0xFFEA, 0xFFED, 0xFFEF, + 0xFFF2, 0xFFF4, 0xFFF6, 0xFFF9, 0xFFFB, 0xFFFE, 0x0000, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, + 0x00B9, 0x00B8, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B2, 0x00B1, 0x00B1, 0x00B0, + 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, 0x00BB, 0x00BD, 0x00BC, + 0x00BB, 0x00BA, 0x00B9, 0x00B9, 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, + 0x00B1, 0x00B0, 0x00B0, 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, + 0x00BB, 0x00BD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0036, 0x006B, 0x00A1, 0x00D6, + 0x010B, 0x0141, 0x0177, 0x01AD, 0x01E2, 0x0217, 0x024D, 0x0283, 0x02B8, 0x02EF, 0x0323, 0x035A, + 0x038E, 0x032A, 0x02C4, 0x025E, 0x01F9, 0x0195, 0x0130, 0x00CA, 0x0065, 0xFFFF, 0xFFCC, 0xFF9A, + 0xFF67, 0xFF35, 0xFF02, 0xFED0, 0xFE9D, 0xFE6A, 0xFE38, 0xFE06, 0xFDD3, 0xFDA0, 0xFD6E, 0xFD3B, + 0xFD09, 0xFCD6, 0xFCA3, 0xFC72, 0xFCD6, 0xFD3B, 0xFDA0, 0xFE06, 0xFE6A, 0xFED0, 0xFF35, 0xFF9A, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x4000, 0x00D0, 0x00D0, 0x00EF, 0x0146, 0x01CA, 0x0272, 0x0333, 0x0403, 0x04D8, + 0x05A8, 0x0668, 0x0710, 0x0794, 0x07EB, 0x080A, 0x077C, 0x06ED, 0x065F, 0x05D1, 0x0543, 0x04B4, + 0x0426, 0x0398, 0x0309, 0x027B, 0x01ED, 0x015E, 0x00D0, 0xFFC3, 0xFEAE, 0xFD94, 0xFC7C, 0xFB6B, + 0xFA65, 0xF972, 0xF894, 0xF7D3, 0xF734, 0xF6BB, 0xF66F, 0xF655, 0xF714, 0xF7D4, 0xF893, 0xF953, + 0xFA13, 0xFAD2, 0xFB92, 0xFC51, 0xFD11, 0xFDD1, 0xFE90, 0xFF50, 0x0011, 0x00D0, 0x0000, 0x0000, + 0xFFFC, 0xFFF3, 0xFFE5, 0xFFD3, 0xFFBE, 0xFFA8, 0xFF91, 0xFF7B, 0xFF67, 0xFF55, 0xFF47, 0xFF3E, + 0xFF3A, 0xFF4A, 0xFF59, 0xFF68, 0xFF77, 0xFF86, 0xFF95, 0xFFA4, 0xFFB3, 0xFFC3, 0xFFD2, 0xFFE1, + 0xFFF0, 0x0000, 0x0017, 0x002D, 0x0043, 0x0058, 0x006C, 0x007F, 0x0090, 0x009F, 0x00AC, 0x00B7, + 0x00BF, 0x00C4, 0x00C5, 0x00B7, 0x00A9, 0x009B, 0x008D, 0x007F, 0x0071, 0x0063, 0x0055, 0x0047, + 0x0039, 0x002A, 0x001C, 0x000E, 0x0000, 0x0993, 0x0993, 0x0963, 0x08DD, 0x0811, 0x070F, 0x05E6, + 0x04A5, 0x035D, 0x021C, 0x00F3, 0xFFF0, 0xFF24, 0xFE9F, 0xFE6F, 0xFF4A, 0x0026, 0x0102, 0x01DD, + 0x02B8, 0x0393, 0x046F, 0x054A, 0x0625, 0x0701, 0x07DC, 0x08B7, 0x0993, 0x0963, 0x08DD, 0x0811, + 0x070F, 0x05E6, 0x04A5, 0x035D, 0x021D, 0x00F3, 0xFFF0, 0xFF25, 0xFE9F, 0xFE6F, 0xFF3B, 0x0007, + 0x00D3, 0x019E, 0x026A, 0x0336, 0x0401, 0x04CD, 0x0598, 0x0664, 0x0730, 0x07FB, 0x08C7, 0x0993, + 0x0007, 0x0007, 0xFFE6, 0xFF8B, 0xFF01, 0xFE53, 0xFD8A, 0xFCB1, 0xFBD3, 0xFAFA, 0xFA31, 0xF983, + 0xF8F9, 0xF89E, 0xF87E, 0xF88F, 0xF8C2, 0xF912, 0xF97D, 0xFA00, 0xFA98, 0xFB42, 0xFBFA, 0xFCBE, + 0xFD8B, 0xFE5D, 0xFF32, 0x0007, 0x00D8, 0x01A5, 0x026B, 0x0329, 0x03DE, 0x0489, 0x0528, 0x05B9, + 0x063C, 0x06AE, 0x070F, 0x075D, 0x0796, 0x07B9, 0x07C5, 0x079E, 0x0733, 0x0690, 0x05C4, 0x04DC, + 0x03E6, 0x02F1, 0x0209, 0x013D, 0x009A, 0x002E, 0x0007, 0xFFC9, 0xFFC9, 0xFFC9, 0xFFC6, 0xFFC3, + 0xFFBE, 0xFFB9, 0xFFB3, 0xFFAE, 0xFFA8, 0xFFA3, 0xFF9F, 0xFF9B, 0xFF99, 0xFF98, 0xFF99, 0xFF9B, + 0xFF9F, 0xFFA3, 0xFFA8, 0xFFAE, 0xFFB3, 0xFFB9, 0xFFBE, 0xFFC3, 0xFFC6, 0xFFC9, 0xFFC9, 0xFFC9, + 0xFFC9, 0xFFC8, 0xFFC6, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC0, 0xFFBE, 0xFFBD, 0xFFBB, 0xFFBA, 0xFFB9, + 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB9, 0xFFBB, 0xFFBD, 0xFFBF, 0xFFC1, 0xFFC3, 0xFFC5, 0xFFC7, 0xFFC8, + 0xFFC9, 0xF555, 0xF555, 0xF582, 0xF5FF, 0xF6BE, 0xF7B0, 0xF8C6, 0xF9F2, 0xFB26, 0xFC52, 0xFD68, + 0xFE5A, 0xFF19, 0xFF96, 0xFFC3, 0xFF96, 0xFF19, 0xFE5A, 0xFD68, 0xFC52, 0xFB26, 0xF9F2, 0xF8C6, + 0xF7B0, 0xF6BE, 0xF5FF, 0xF582, 0xF555, 0xF576, 0xF5D3, 0xF664, 0xF71E, 0xF7F8, 0xF8E9, 0xF9E9, + 0xFAED, 0xFBEC, 0xFCDE, 0xFDB8, 0xFE72, 0xFF02, 0xFF60, 0xFF81, 0xFF4E, 0xFEC0, 0xFDEA, 0xFCDE, + 0xFBAD, 0xFA6B, 0xF928, 0xF7F8, 0xF6EC, 0xF616, 0xF588, 0xF555, 0xFFFE, 0x0001, 0xC170, 0xF40C, + 0xF40C, 0xF60A, 0xF807, 0xFA04, 0xFC02, 0xFDFF, 0xFFFD, 0x01FB, 0x03F8, 0x05F6, 0x07F3, 0x09F1, + 0x0BEE, 0x0DEB, 0x0FE9, 0x11E6, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x11F4, 0x1005, 0x0E15, + 0x0C26, 0x0A37, 0x0847, 0x0658, 0x06DF, 0x0766, 0x07ED, 0x0874, 0x08FC, 0x0983, 0x0A0A, 0x0A91, + 0x0B18, 0x0B9F, 0x0C26, 0x0CAE, 0x0D35, 0x0DBC, 0x0E43, 0x0BE1, 0x097F, 0x071D, 0x04BB, 0x0259, + 0xFFF6, 0xFD94, 0xFB32, 0xF8D0, 0xF66E, 0xF40C, 0xDC0B, 0xDC0B, 0xDBFE, 0xDBF1, 0xDBE3, 0xDBD6, + 0xDBC9, 0xDBBC, 0xDBAF, 0xDBA1, 0xDB94, 0xDB87, 0xDB7A, 0xDB6D, 0xDB5F, 0xDB52, 0xDB45, 0xDB38, + 0xDB38, 0xDB38, 0xDB38, 0xDB38, 0xDC56, 0xDD74, 0xDE92, 0xDFB1, 0xE0CF, 0xE1ED, 0xE30B, 0xE52D, + 0xE74F, 0xE971, 0xEB93, 0xEDB4, 0xEFD6, 0xF1F8, 0xF41A, 0xF63C, 0xF85E, 0xFA7F, 0xFCA1, 0xFEC3, + 0x00E6, 0x0308, 0xFF7B, 0xFBF0, 0xF865, 0xF4DA, 0xF14F, 0xEDC3, 0xEA38, 0xE6AD, 0xE322, 0xDF96, + 0xDC0B, 0x94C0, 0x94C0, 0x9B35, 0xA1A9, 0xA81E, 0xAE93, 0xB507, 0xBB7C, 0xC1F1, 0xC865, 0xCEDA, + 0xD54F, 0xDBC3, 0xE238, 0xE8AD, 0xEF21, 0xF596, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xEB63, + 0xDABC, 0xCA14, 0xB96D, 0xA8C6, 0x981E, 0x8777, 0x882E, 0x88E4, 0x899B, 0x8A52, 0x8B09, 0x8BC0, + 0x8C76, 0x8D2D, 0x8DE4, 0x8E9B, 0x8F51, 0x9008, 0x90BF, 0x9176, 0x922C, 0x9268, 0x92A4, 0x92E0, + 0x931C, 0x9358, 0x9394, 0x93D0, 0x940C, 0x9448, 0x9484, 0x94C0, 0xFCE1, 0xFCE1, 0xFE2F, 0xFF7E, + 0x00CD, 0x021C, 0x036B, 0x04B9, 0x0608, 0x0756, 0x08A5, 0x09F3, 0x0B42, 0x0C90, 0x0DDF, 0x0F2E, + 0x107C, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x106B, 0x0F0C, 0x0DAC, 0x0C4D, 0x0AED, 0x098D, + 0x082E, 0x067F, 0x04D1, 0x0323, 0x0174, 0xFFC5, 0xFE16, 0xFC68, 0xFABA, 0xF90B, 0xF75D, 0xF5AE, + 0xF400, 0xF252, 0xF0A3, 0xF1A8, 0xF2AD, 0xF3B3, 0xF4B8, 0xF5BD, 0xF6C2, 0xF7C7, 0xF8CC, 0xF9D1, + 0xFAD6, 0xFBDC, 0xFCE1, 0x1C35, 0x1C35, 0x1BAF, 0x1B29, 0x1AA3, 0x1A1D, 0x1997, 0x1911, 0x188B, + 0x1805, 0x177F, 0x16F9, 0x1673, 0x15ED, 0x1568, 0x14E2, 0x145C, 0x13D6, 0x13D6, 0x13D6, 0x13D6, + 0x13D6, 0x148E, 0x1546, 0x15FF, 0x16B7, 0x1770, 0x1828, 0x18E0, 0x1977, 0x1A0D, 0x1AA4, 0x1B3A, + 0x1BD1, 0x1C67, 0x1CFE, 0x1D94, 0x1E2B, 0x1EC1, 0x1F58, 0x1FEE, 0x2085, 0x211B, 0x20B3, 0x204A, + 0x1FE2, 0x1F79, 0x1F11, 0x1EA8, 0x1E40, 0x1DD7, 0x1D6F, 0x1D06, 0x1C9D, 0x1C35, 0xEE48, 0xEE48, + 0xEF90, 0xF0D9, 0xF221, 0xF369, 0xF4B2, 0xF5FA, 0xF742, 0xF88A, 0xF9D3, 0xFB1B, 0xFC63, 0xFDAC, + 0xFEF4, 0x003D, 0x0186, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x01AA, 0x0086, 0xFF62, 0xFE3E, + 0xFD1A, 0xFBF6, 0xFAD3, 0xF912, 0xF751, 0xF590, 0xF3CF, 0xF20E, 0xF04D, 0xEE8C, 0xECCB, 0xEB0A, + 0xE949, 0xE788, 0xE5C7, 0xE406, 0xE245, 0xE346, 0xE446, 0xE546, 0xE646, 0xE747, 0xE847, 0xE947, + 0xEA47, 0xEB47, 0xEC48, 0xED48, 0xEE48, 0x21A1, 0x21A1, 0x2006, 0x1B7B, 0x146D, 0x0B46, 0x0071, + 0xF45A, 0xE76D, 0xDA15, 0xCCBD, 0xBFD0, 0xB3BA, 0xA8E6, 0x9FBF, 0x98B0, 0x9426, 0x928A, 0x928A, + 0x928A, 0x928A, 0x928A, 0xA6FB, 0xBB6C, 0xCFDD, 0xE44E, 0xF8BF, 0x0D30, 0x21A1, 0x2188, 0x2143, + 0x20D8, 0x2050, 0x1FB2, 0x1F04, 0x1E50, 0x1D9B, 0x1CED, 0x1C4F, 0x1BC7, 0x1B5C, 0x1B17, 0x1AFE, + 0x1B1F, 0x1B7C, 0x1C07, 0x1CB7, 0x1D7D, 0x1E50, 0x1F22, 0x1FE9, 0x2098, 0x2123, 0x2180, 0x21A1, + 0xF7CA, 0xF7CA, 0xF77F, 0xF6AD, 0xF565, 0xF3BC, 0xF1C6, 0xEF95, 0xED3D, 0xEAD2, 0xE867, 0xE60F, + 0xE3DE, 0xE1E8, 0xE03F, 0xDEF8, 0xDE25, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xE18F, 0xE543, + 0xE8F8, 0xECAC, 0xF061, 0xF415, 0xF7CA, 0xF8A6, 0xF964, 0xFA04, 0xFA89, 0xFAF6, 0xFB4E, 0xFB92, + 0xFBC5, 0xFBEA, 0xFC03, 0xFC12, 0xFC19, 0xFC1C, 0xFC1C, 0xFC07, 0xFBCA, 0xFB70, 0xFAFE, 0xFA7C, + 0xF9F3, 0xF96A, 0xF8E9, 0xF877, 0xF81C, 0xF7E0, 0xF7CA, 0xF6E8, 0xF6E8, 0xF76A, 0xF8D9, 0xFB13, + 0xFDF6, 0x0163, 0x0533, 0x0948, 0x0D7E, 0x11B5, 0x15CA, 0x199A, 0x1D06, 0x1FE9, 0x2223, 0x2392, + 0x2414, 0x2414, 0x2414, 0x2414, 0x2414, 0x1DA0, 0x172C, 0x10B8, 0x0A45, 0x03D1, 0xFD5C, 0xF6E8, + 0xF4BC, 0xF2E0, 0xF14C, 0xEFFC, 0xEEE9, 0xEE0C, 0xED61, 0xECE0, 0xEC83, 0xEC45, 0xEC20, 0xEC0C, + 0xEC05, 0xEC04, 0xEC3B, 0xECD3, 0xEDB8, 0xEED7, 0xF01D, 0xF176, 0xF2CF, 0xF415, 0xF534, 0xF619, + 0xF6B1, 0xF6E8, 0xFFFE, 0x0001, 0xC170, 0xF96B, 0xF96B, 0xF913, 0xF8BA, 0xF862, 0xF80A, 0xF7B1, + 0xF759, 0xF700, 0xF6A8, 0xF64F, 0xF5F7, 0xF59E, 0xF546, 0xF4ED, 0xF495, 0xF43C, 0xF3E4, 0xF38B, + 0xF5F5, 0xF85E, 0xFAC8, 0xFD32, 0xFF9B, 0x0206, 0x046F, 0x06D9, 0x0942, 0x0BAC, 0x0A47, 0x08E2, + 0x077E, 0x0619, 0x04B4, 0x0350, 0x01EB, 0x0086, 0xFF21, 0xFDBC, 0xFC57, 0xFAF2, 0xF98E, 0xF829, + 0xF6C4, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF62F, 0xF6FE, 0xF7CD, 0xF89C, 0xF96B, + 0x1D0F, 0x1D0F, 0x1B21, 0x1934, 0x1746, 0x1559, 0x136B, 0x117E, 0x0F90, 0x0DA3, 0x0BB5, 0x09C8, + 0x07DA, 0x05ED, 0x03FF, 0x0212, 0x0024, 0xFE36, 0xFC48, 0x0048, 0x0446, 0x0845, 0x0C43, 0x1042, + 0x1440, 0x183F, 0x1C3D, 0x203C, 0x243A, 0x2443, 0x244C, 0x2455, 0x245F, 0x2468, 0x2471, 0x247A, + 0x2483, 0x248C, 0x2495, 0x249E, 0x24A7, 0x24B0, 0x24BA, 0x24C3, 0x24CC, 0x24CC, 0x24CC, 0x24CC, + 0x24CC, 0x24CC, 0x2340, 0x21B3, 0x2027, 0x1E9B, 0x1D0F, 0x86F8, 0x86F8, 0x879B, 0x883F, 0x88E2, + 0x8986, 0x8A29, 0x8ACD, 0x8B71, 0x8C14, 0x8CB8, 0x8D5B, 0x8DFF, 0x8EA3, 0x8F46, 0x8FEA, 0x908D, + 0x9131, 0x91D4, 0x9211, 0x924D, 0x9289, 0x92C5, 0x9301, 0x933D, 0x9379, 0x93B5, 0x93F1, 0x942D, + 0x9A9C, 0xA10A, 0xA779, 0xADE7, 0xB456, 0xBAC4, 0xC132, 0xC7A1, 0xCE0F, 0xD47E, 0xDAEC, 0xE15B, + 0xE7C9, 0xEE38, 0xF4A6, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xE3DB, 0xCCA2, 0xB56A, + 0x9E31, 0x86F8, 0xF7CB, 0xF7CB, 0xF9B7, 0xFBA4, 0xFD90, 0xFF7C, 0x016A, 0x0356, 0x0542, 0x072F, + 0x091B, 0x0B07, 0x0CF4, 0x0EE0, 0x10CC, 0x0FA7, 0x0E81, 0x0D5B, 0x0C36, 0x0B10, 0x09EA, 0x08C4, + 0x079F, 0x0679, 0x0553, 0x042D, 0x0308, 0x01E2, 0x00BC, 0xFF96, 0xFE70, 0xFD4A, 0xFC24, 0xFAFF, + 0xF9D9, 0xF8B3, 0xF78D, 0xF668, 0xF542, 0xF41C, 0xF2F7, 0xF1D1, 0xF0AB, 0xEF85, 0xEE60, 0xEE60, + 0xEE60, 0xEE60, 0xEE60, 0xEE60, 0xF042, 0xF224, 0xF406, 0xF5E9, 0xF7CB, 0xE769, 0xE769, 0xE6BA, + 0xE60B, 0xE55D, 0xE4AE, 0xE3FF, 0xE350, 0xE2A1, 0xE1F2, 0xE143, 0xE094, 0xDFE6, 0xDF37, 0xDE88, + 0xDF00, 0xDF77, 0xDFEF, 0xE067, 0xE0DF, 0xE156, 0xE1CE, 0xE246, 0xE2BE, 0xE336, 0xE3AD, 0xE425, + 0xE49D, 0xE515, 0xE58C, 0xE604, 0xE67C, 0xE6F4, 0xE76B, 0xE7E3, 0xE85B, 0xE8D3, 0xE94B, 0xE9C2, + 0xEA3A, 0xEAB2, 0xEB2A, 0xEBA1, 0xEC19, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEB89, + 0xEA81, 0xE979, 0xE871, 0xE769, 0xFB6E, 0xFB6E, 0xF9BC, 0xF809, 0xF657, 0xF4A5, 0xF2F2, 0xF140, + 0xEF8E, 0xEDDB, 0xEC29, 0xEA77, 0xE8C4, 0xE712, 0xE55F, 0xE65B, 0xE756, 0xE852, 0xE94D, 0xEA49, + 0xEB44, 0xEC40, 0xED3B, 0xEE37, 0xEF32, 0xF02D, 0xF129, 0xF224, 0xF320, 0xF41B, 0xF517, 0xF612, + 0xF70E, 0xF809, 0xF905, 0xFA00, 0xFAFC, 0xFBF7, 0xFCF2, 0xFDEE, 0xFEE9, 0xFFE5, 0x00E1, 0x01DD, + 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x015D, 0xFFE0, 0xFE65, 0xFCEA, 0xFB6E, 0xDE55, + 0xDE55, 0xDF02, 0xDFAE, 0xE05A, 0xE107, 0xE1B3, 0xE260, 0xE30C, 0xE3B8, 0xE465, 0xE511, 0xE5BE, + 0xE66A, 0xE716, 0xE676, 0xE5D6, 0xE536, 0xE496, 0xE3F6, 0xE356, 0xE2B6, 0xE216, 0xE176, 0xE0D6, + 0xE035, 0xDF95, 0xDEF5, 0xDE55, 0xE702, 0xEFAF, 0xF85D, 0x010B, 0x09B8, 0x1265, 0x1B12, 0x23BF, + 0x2C6C, 0x351A, 0x3DC7, 0x4674, 0x4F21, 0x57CE, 0x607B, 0x6928, 0x6928, 0x6928, 0x6928, 0x6928, + 0x6928, 0x4D65, 0x31A1, 0x15DD, 0xFA19, 0xDE55, 0x0700, 0x0700, 0x06AE, 0x065D, 0x060C, 0x05BA, + 0x0569, 0x0518, 0x04C6, 0x0475, 0x0424, 0x03D2, 0x0381, 0x0330, 0x02DE, 0x032A, 0x0375, 0x03C1, + 0x040C, 0x0458, 0x04A3, 0x04EF, 0x053B, 0x0586, 0x05D2, 0x061D, 0x0669, 0x06B4, 0x0700, 0x08AE, + 0x0A5D, 0x0C0C, 0x0DBB, 0x0F69, 0x1118, 0x12C7, 0x1476, 0x1624, 0x17D3, 0x1982, 0x1B31, 0x1CDF, + 0x1E8E, 0x203D, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x1C89, 0x1727, 0x11C4, 0x0C62, + 0x0700, 0xF641, 0xF641, 0xF587, 0xF4CE, 0xF414, 0xF35A, 0xF2A0, 0xF1E6, 0xF12C, 0xF072, 0xEFB9, + 0xEEFF, 0xEE45, 0xED8B, 0xECD1, 0xED7E, 0xEE2A, 0xEED7, 0xEF84, 0xF030, 0xF0DD, 0xF189, 0xF236, + 0xF2E2, 0xF38F, 0xF43C, 0xF4E8, 0xF595, 0xF641, 0xF8CC, 0xFB57, 0xFDE1, 0x006D, 0x02F8, 0x0583, + 0x080D, 0x0A98, 0x0D23, 0x0FAE, 0x1238, 0x14C3, 0x174E, 0x19D9, 0x1C63, 0x1EEE, 0x1EEE, 0x1EEE, + 0x1EEE, 0x1EEE, 0x1EEE, 0x16CC, 0x0EA9, 0x0687, 0xFE64, 0xF641, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFD, 0xFF65, 0xFECD, 0xFE34, 0xFD9C, 0xFE42, 0xFEE8, + 0xFF8E, 0x0035, 0x002A, 0x001F, 0x0014, 0x0009, 0xFFFD, 0x0056, 0x00AE, 0x0106, 0x015E, 0x015E, + 0x015E, 0x015E, 0x015E, 0x015E, 0x0106, 0x00AE, 0x0056, 0xFFFD, 0x0093, 0x0128, 0x01BD, 0x0252, + 0x02E7, 0x037D, 0x0412, 0x04A7, 0x053C, 0x05D1, 0x0666, 0x0665, 0x0664, 0x0664, 0x0663, 0x0662, + 0x0662, 0x0661, 0x0660, 0x0660, 0x065F, 0x065E, 0x0518, 0x03D1, 0x028B, 0x0144, 0xFFFD, 0xFFFF, + 0xFFFF, 0x01AD, 0x035A, 0x0507, 0x06B4, 0x05EC, 0x0524, 0x045C, 0x0394, 0x02DD, 0x0225, 0x016E, + 0x00B7, 0xFFFE, 0xFF2D, 0xFE5B, 0xFD89, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFD89, + 0xFE5B, 0xFF2D, 0xFFFF, 0xFFA5, 0xFF4B, 0xFEF2, 0xFE98, 0xFE3E, 0xFDE4, 0xFD8B, 0xFD31, 0xFCD7, + 0xFC7D, 0xFC24, 0xFC29, 0xFC2F, 0xFC34, 0xFC3A, 0xFC3F, 0xFC45, 0xFC4A, 0xFC50, 0xFC55, 0xFC5B, + 0xFC60, 0xFD1A, 0xFDD3, 0xFE8C, 0xFF46, 0xFFFF, 0x8000, 0x8000, 0x7C82, 0x7904, 0x7586, 0x7209, + 0x72AF, 0x7355, 0x73FC, 0x74A2, 0x73AE, 0x72B9, 0x71C4, 0x70CF, 0x6FDA, 0x6FD7, 0x6FD3, 0x6FD0, + 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x7684, 0x7D3B, 0x83F3, 0x8AAA, 0x8EE5, 0x931F, + 0x975A, 0x9B94, 0x9FCF, 0xA409, 0xA843, 0xAC7E, 0xB0B8, 0xB4F3, 0xB92D, 0xB980, 0xB9D3, 0xBA25, + 0xBA78, 0xBACA, 0xBB1D, 0xBB70, 0xBBC2, 0xBC15, 0xBC68, 0xBCBA, 0xB095, 0xA470, 0x984A, 0x8C25, + 0x8000, 0x0000, 0x0000, 0xFFB9, 0xFF73, 0xFF2D, 0xFEE7, 0xFF23, 0xFF60, 0xFF9C, 0xFFD8, 0xFFE0, + 0xFFE8, 0xFFF0, 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFD, 0xFFFC, 0xFFFA, 0xFFF9, 0x0001, 0x0009, 0x0010, 0x0018, + 0x0013, 0x000E, 0x0009, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x038E, 0x038E, 0x06C7, 0x0A00, 0x0D39, 0x1072, 0x0EF3, 0x0D74, + 0x0BF5, 0x0A76, 0x0B34, 0x0BF2, 0x0CAF, 0x0D6D, 0x0E2B, 0x0D92, 0x0CF9, 0x0C60, 0x0BC7, 0x0B2E, + 0x0A95, 0x09FC, 0x0963, 0x08CA, 0x0831, 0x0798, 0x06FF, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, + 0x2A3B, 0x2BA7, 0x2D13, 0x2E7F, 0x2FEB, 0x3119, 0x3246, 0x3374, 0x34A2, 0x35CF, 0x36FD, 0x382A, + 0x3958, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2F87, 0x2489, 0x198B, 0x0E8C, 0x038E, 0xFFFF, + 0xFFFF, 0xFFDD, 0xFFBA, 0xFF98, 0xFF75, 0xFF53, 0xFF31, 0xFF0E, 0xFEEC, 0xFECA, 0xFEA7, 0xFE85, + 0xFE62, 0xFE40, 0xFDD6, 0xFD6B, 0xFD01, 0xFC96, 0xFC2C, 0xFBC1, 0xFB57, 0xFAEC, 0xFA82, 0xFBE1, + 0xFD41, 0xFEA0, 0x0000, 0x0034, 0x0067, 0x009B, 0x00CE, 0x00B7, 0x00A0, 0x008A, 0x0073, 0x005C, + 0x0045, 0x002E, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFCA, 0xFF95, 0xFF60, 0xFF2B, 0xFEF6, 0xFEC1, 0xFE8C, 0xFE57, + 0xFE23, 0xFDEE, 0xFDB9, 0xFD84, 0xFD4F, 0xFDAE, 0xFE0D, 0xFE6C, 0xFECB, 0xFF2A, 0xFF89, 0xFFE8, + 0x0048, 0x00A7, 0x007D, 0x0054, 0x002A, 0xFFFF, 0xFF9A, 0xFF36, 0xFED1, 0xFE6D, 0xFE9A, 0xFEC6, + 0xFEF3, 0xFF20, 0xFF4C, 0xFF79, 0xFFA6, 0xFFD2, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xCAAA, 0xCAAA, 0xCB05, 0xCB5F, 0xCBBA, 0xCC15, 0xCC6F, 0xCCCA, 0xCD25, + 0xCD80, 0xCDDA, 0xCE35, 0xCE90, 0xCEEA, 0xCF45, 0xD00D, 0xD0D5, 0xD19D, 0xD265, 0xD32D, 0xD3F5, + 0xD4BD, 0xD585, 0xD64D, 0xD0B9, 0xCB26, 0xC593, 0xBFFF, 0xBB27, 0xB64F, 0xB178, 0xACA0, 0xB0C0, + 0xB4E1, 0xB902, 0xBD23, 0xC143, 0xC564, 0xC985, 0xCDA6, 0xD1C6, 0xD274, 0xD322, 0xD3D1, 0xD47F, + 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, 0xB341, 0xBEF5, 0xCAAA, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF6A, 0xFED5, 0xFE40, 0xFDAB, 0xFD16, + 0xFC81, 0xFBEC, 0xFB57, 0xFAC2, 0xFA2D, 0xF998, 0xF999, 0xF99A, 0xF99A, 0xF99B, 0xF99C, 0xF99C, + 0xF99D, 0xF99E, 0xF99E, 0xF99F, 0xF9A0, 0xFB38, 0xFCD0, 0xFE68, 0x0000, 0x009D, 0x013A, 0x01D6, + 0x0273, 0x0230, 0x01ED, 0x01A9, 0x0166, 0x0123, 0x00DA, 0x0092, 0x0049, 0x0000, 0xFFB9, 0xFF72, + 0xFF2B, 0xFEE4, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFEE4, 0xFF2B, 0xFF72, 0xFFB8, 0xFFFF, + 0x0000, 0x0000, 0x005B, 0x00B6, 0x0111, 0x016C, 0x01C7, 0x0222, 0x027C, 0x02D7, 0x0332, 0x038D, + 0x03E8, 0x03E3, 0x03DD, 0x03D7, 0x03D2, 0x03CC, 0x03C7, 0x03C1, 0x03BC, 0x03B6, 0x03B1, 0x03AB, + 0x02C1, 0x01D6, 0x00EB, 0x0001, 0xFE54, 0xFCA8, 0xFAFC, 0xF950, 0xF9FA, 0xFAA4, 0xFB4D, 0xFBF7, + 0xFCA0, 0xFD78, 0xFE4F, 0xFF27, 0xFFFF, 0x00A7, 0x014F, 0x01F7, 0x029F, 0x0347, 0x0347, 0x0347, + 0x0347, 0x0347, 0x029F, 0x01F7, 0x014F, 0x00A8, 0x0000, 0x8AAA, 0x8AAA, 0x8EE5, 0x9320, 0x975B, + 0x9B96, 0x9FD2, 0xA40D, 0xA848, 0xAC83, 0xB0BE, 0xB4F9, 0xB934, 0xB987, 0xB9D9, 0xBA2C, 0xBA7E, + 0xBAD1, 0xBB24, 0xBB76, 0xBBC9, 0xBC1C, 0xBC6E, 0xBCC1, 0xAD91, 0x9E60, 0x8F30, 0x8000, 0x7C67, + 0x78CF, 0x7536, 0x719E, 0x71D7, 0x7210, 0x7249, 0x7282, 0x72BB, 0x71DF, 0x7102, 0x7026, 0x6F49, + 0x6F5F, 0x6F75, 0x6F8B, 0x6FA1, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x751B, 0x7A7F, 0x7FE3, + 0x8546, 0x8AAA, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0000, 0x0666, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, 0x2A96, 0x2C5D, 0x2E24, 0x2FEB, 0x3157, + 0x32C3, 0x3430, 0x359C, 0x3708, 0x37EB, 0x38CF, 0x39B2, 0x3A96, 0x3A96, 0x3A96, 0x3A96, 0x3A96, + 0x3A96, 0x2CD4, 0x1F12, 0x1150, 0x038E, 0x0505, 0x067D, 0x07F4, 0x096B, 0x08EB, 0x086A, 0x07EA, + 0x076A, 0x06E9, 0x08BA, 0x0A8A, 0x0C5A, 0x0E2B, 0x0DC3, 0x0D5C, 0x0CF5, 0x0C8E, 0x0C27, 0x0B38, + 0x0A48, 0x0959, 0x086A, 0x0803, 0x079C, 0x0735, 0x06CD, 0x0666, 0x0000, 0x0000, 0xFFCA, 0xFF96, + 0xFF61, 0xFF2C, 0xFF3C, 0xFF4D, 0xFF5D, 0xFF6D, 0xFF7D, 0xFF8D, 0xFF9D, 0xFFAE, 0xFFBE, 0xFFCE, + 0xFFDE, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0000, 0xFFFF, + 0xFE4E, 0xFC9E, 0xFAEE, 0xF93E, 0xFA04, 0xFACB, 0xFB92, 0xFC58, 0xFD1F, 0xFDE5, 0xFEAC, 0xFF73, + 0x003A, 0x0101, 0x0126, 0x014A, 0x016F, 0x0193, 0x01B8, 0x01DD, 0x0201, 0x0226, 0x024B, 0x01B8, + 0x0125, 0x0093, 0x0000, 0x0030, 0x0030, 0x0094, 0x00F8, 0x015C, 0x01C0, 0x01A2, 0x0183, 0x0164, + 0x0145, 0x0126, 0x0108, 0x00E9, 0x00CA, 0x00AB, 0x008C, 0x006E, 0x004F, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x00BF, 0x014F, 0x01DE, 0x026D, 0x0266, + 0x025F, 0x0258, 0x0251, 0x024A, 0x0243, 0x023C, 0x0235, 0x022E, 0x0226, 0x021F, 0x0217, 0x020F, + 0x0207, 0x01FF, 0x01F8, 0x01F0, 0x01E8, 0x01E0, 0x0174, 0x0108, 0x009C, 0x0030, 0xBFFF, 0xBFFF, + 0xBAFF, 0xB5FE, 0xB0FE, 0xABFE, 0xAF29, 0xB254, 0xB57F, 0xB8AA, 0xBBD5, 0xBF00, 0xC22B, 0xC556, + 0xC881, 0xCBAC, 0xCED7, 0xD202, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, + 0xB91B, 0xCAAA, 0xCC6B, 0xCE2C, 0xCFED, 0xD1AE, 0xD1BB, 0xD1C9, 0xD1D6, 0xD1E4, 0xD1F1, 0xD1FF, + 0xD20D, 0xD21A, 0xD228, 0xD235, 0xD202, 0xD1CE, 0xD19B, 0xD167, 0xD134, 0xD101, 0xD0CD, 0xD09A, + 0xD066, 0xCC4D, 0xC833, 0xC419, 0xBFFF, }; diff --git a/assets/anims/anim_38.inc.c.rej b/assets/anims/anim_38.inc.c.rej new file mode 100644 index 00000000..f0373910 --- /dev/null +++ b/assets/anims/anim_38.inc.c.rej @@ -0,0 +1,351 @@ +diff a/assets/anims/anim_38.inc.c b/assets/anims/anim_38.inc.c (rejected hunks) +@@ -1,9 +1,9 @@ + static const struct Animation anim_38[] = { +- 1, +- 189, + 0, ++ 189, + 0, +- 0x0C, ++ 1, ++ 54, + ANIMINDEX_NUMPARTS(anim_38_indices), + anim_38_values, + anim_38_indices, +@@ -12,81 +12,263 @@ static const struct Animation anim_38[] = { + + + static const u16 anim_38_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x000C, 0x0182, 0x000C, 0x018E, 0x000C, 0x019A, +- 0x000C, 0x015E, 0x000C, 0x016A, 0x000C, 0x0176, +- 0x000C, 0x013A, 0x000C, 0x0146, 0x000C, 0x0152, +- 0x0001, 0x0136, 0x0001, 0x0137, 0x0001, 0x0138, +- 0x000C, 0x0033, 0x000C, 0x003F, 0x000C, 0x004B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0027, +- 0x000C, 0x0003, 0x000C, 0x000F, 0x000C, 0x001B, +- 0x0001, 0x0132, 0x0001, 0x0133, 0x0001, 0x0134, +- 0x000C, 0x0087, 0x000C, 0x0093, 0x000C, 0x009F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x007B, +- 0x000C, 0x0057, 0x000C, 0x0063, 0x000C, 0x006F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0135, +- 0x0001, 0x012F, 0x0001, 0x0130, 0x0001, 0x0131, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0123, +- 0x000C, 0x00FF, 0x000C, 0x010B, 0x000C, 0x0117, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0139, +- 0x000C, 0x00DB, 0x000C, 0x00E7, 0x000C, 0x00F3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x00CF, +- 0x000C, 0x00AB, 0x000C, 0x00B7, 0x000C, 0x00C3, ++ 0x0037, 0x0000, 0x0037, 0x0037, 0x0001, 0x006E, 0x0032, 0x006F, 0x0001, 0x00A1, 0x0037, 0x00A2, ++ 0x0037, 0x00D9, 0x0036, 0x0110, 0x0001, 0x0146, 0x0037, 0x0147, 0x0037, 0x017E, 0x0037, 0x01B5, ++ 0x0037, 0x01EC, 0x0036, 0x0223, 0x0037, 0x0259, 0x0001, 0x0290, 0x0001, 0x0291, 0x0001, 0x0292, ++ 0x0037, 0x0293, 0x0037, 0x02CA, 0x0037, 0x0301, 0x0037, 0x0338, 0x0037, 0x036F, 0x0037, 0x03A6, ++ 0x0037, 0x03DD, 0x0037, 0x0414, 0x0037, 0x044B, 0x0001, 0x0482, 0x0001, 0x0483, 0x0001, 0x0484, ++ 0x0037, 0x0485, 0x0037, 0x04BC, 0x0037, 0x04F3, 0x0037, 0x052A, 0x0037, 0x0561, 0x0037, 0x0598, ++ 0x0037, 0x05CF, 0x0037, 0x0606, 0x0037, 0x063D, 0x0036, 0x0674, 0x0037, 0x06AA, 0x0037, 0x06E1, ++ 0x0037, 0x0718, 0x0037, 0x074F, 0x0037, 0x0786, 0x0025, 0x07BD, 0x0026, 0x07E2, 0x0037, 0x0808, ++ 0x0033, 0x083F, 0x0031, 0x0872, 0x0037, 0x08A3, 0x0036, 0x08DA, 0x0037, 0x0910, 0x0036, 0x0947, ++ 0x0037, 0x097D, 0x0037, 0x09B4, 0x0037, 0x09EB, 0x0037, 0x0A22, 0x0034, 0x0A59, 0x0037, 0x0A8D, ++ 0x0037, 0x0AC4, 0x0037, 0x0AFB, 0x0037, 0x0B32, + }; + + static const s16 anim_38_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0xEA73, 0xEB7E, 0xEDCA, 0xF01B, 0xF23E, +- 0xF4B3, 0xF74B, 0xF9D9, 0xFC2C, 0xFE18, 0xFF6E, 0xFFFF, 0xE788, +- 0xEA9C, 0xF0A1, 0xF4C5, 0xF631, 0xF74C, 0xF820, 0xF8B7, 0xF91C, +- 0xF957, 0xF974, 0xF97C, 0xE831, 0xE717, 0xE522, 0xE459, 0xE519, +- 0xE649, 0xE7C0, 0xE955, 0xEADD, 0xEC2F, 0xED21, 0xED8A, 0xD054, +- 0xD69D, 0xE231, 0xE820, 0xE678, 0xE2FC, 0xDE4B, 0xD902, 0xD3C1, +- 0xCF24, 0xCBCB, 0xCA54, 0x02F5, 0x017D, 0xFEA2, 0xFCB3, 0xFC18, +- 0xFBAA, 0xFB60, 0xFB34, 0xFB1F, 0xFB18, 0xFB1A, 0xFB1D, 0xE52A, +- 0xE560, 0xE576, 0xE496, 0xE299, 0xE00B, 0xDD2E, 0xDA40, 0xD782, +- 0xD532, 0xD391, 0xD2DE, 0xBF44, 0xC5C1, 0xD229, 0xD9EA, 0xDB29, +- 0xDB49, 0xDA95, 0xD955, 0xD7D5, 0xD65E, 0xD53B, 0xD4B5, 0x4043, +- 0x425F, 0x466F, 0x4911, 0x46E4, 0x3EDF, 0x335B, 0x2606, 0x188D, +- 0x0C9D, 0x03E3, 0x000D, 0x006A, 0x005B, 0x003A, 0x0015, 0x0000, +- 0xFFF9, 0xFFF7, 0xFFF7, 0xFFF9, 0xFFFC, 0xFFFF, 0x0000, 0xF58E, +- 0xF584, 0xF56E, 0xF557, 0xF549, 0xF545, 0xF543, 0xF543, 0xF545, +- 0xF547, 0xF548, 0xF549, 0xEA13, 0xE896, 0xE543, 0xE1CD, 0xDFE7, +- 0xE1F0, 0xE5AE, 0xE5F1, 0xDFA8, 0xD5E3, 0xCCA4, 0xC7EF, 0xDC6A, +- 0xD5B0, 0xC76B, 0xBA78, 0xB7B5, 0xC231, 0xD432, 0xE961, 0xFD69, +- 0x0BF1, 0x0BD0, 0x056F, 0x2D97, 0x2DE0, 0x2E7F, 0x2F16, 0x2F4B, +- 0x2F06, 0x2E81, 0x2DDB, 0x2D32, 0x2CA4, 0x2C25, 0x2BD7, 0x8F0E, +- 0x84E8, 0x6F29, 0x5AE6, 0x552F, 0x61F7, 0x78DF, 0x9482, 0xAF70, +- 0xC443, 0xCCB4, 0xCCFC, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, +- 0x0006, 0x0005, 0x0004, 0x0002, 0x0001, 0x0000, 0x0000, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xC871, 0xC866, 0xC84D, 0xC834, 0xC828, +- 0xC837, 0xC86B, 0xC8BC, 0xC91A, 0xC974, 0xC9B8, 0xC9D8, 0x205D, +- 0x2038, 0x1FDD, 0x1F6A, 0x1EFC, 0x1EB2, 0x1E89, 0x1E6D, 0x1E5A, +- 0x1E50, 0x1E4B, 0x1E4A, 0x1A92, 0x1A9A, 0x1AAE, 0x1AC7, 0x1AE0, +- 0x1AF0, 0x1AF9, 0x1B00, 0x1B04, 0x1B07, 0x1B08, 0x1B09, 0x1206, +- 0x11F9, 0x11DA, 0x11B1, 0x118B, 0x1170, 0x1161, 0x1155, 0x114D, +- 0x1148, 0x1145, 0x1144, 0xAB2C, 0xAB3F, 0xAB6D, 0xABA8, 0xABE1, +- 0xAC07, 0xAC1D, 0xAC2D, 0xAC38, 0xAC3F, 0xAC43, 0xAC44, 0x0026, +- 0x0027, 0x0028, 0x002A, 0x002A, 0x0028, 0x0023, 0x001B, 0x0012, +- 0x0009, 0x0003, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xC07C, +- 0xC09C, 0xC0E6, 0xC13B, 0xC17A, 0xC183, 0xC146, 0xC0D9, 0xC055, +- 0xBFD3, 0xBF6F, 0xBF41, 0x239D, 0x238E, 0x236D, 0x234C, 0x233A, +- 0x2348, 0x2385, 0x23E5, 0x2454, 0x24BF, 0x2511, 0x2536, 0xD64A, +- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0xE406, 0xE997, 0xF014, 0xF0C9, 0xF00C, 0xEF10, +- 0xEF0E, 0xF088, 0xF2F9, 0xF604, 0xFB79, 0xFFED, 0xFD18, 0xFE5B, +- 0x002D, 0x0166, 0x029D, 0x0387, 0x03D3, 0x02CD, 0x00DF, 0xFF70, +- 0xFF7E, 0xFFFE, 0xFFF2, 0x0603, 0x0DFB, 0x11E4, 0x1555, 0x174B, +- 0x16C0, 0x10EB, 0x075D, 0xFF9B, 0xFCBA, 0xFC61, 0xFF91, 0xFF90, +- 0xFF94, 0xFF9F, 0xFFAD, 0xFFBD, 0xFFCD, 0xFFDC, 0xFFEA, 0xFFF5, +- 0xFFFD, 0x0000, 0x0314, 0x0783, 0x0BD0, 0x0B33, 0x0A06, 0x0873, +- 0x06A6, 0x04C7, 0x0303, 0x0185, 0x0076, 0x0001, 0x0882, 0x0876, +- 0x086B, 0x086C, 0x086E, 0x0871, 0x0875, 0x0879, 0x087D, 0x0880, +- 0x0883, 0x0884, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFB9, 0xFFC5, +- 0xFFE3, 0x000A, 0x0033, 0x0055, 0x0066, 0x0060, 0x0048, 0x0029, +- 0x000D, 0x0000, 0x407E, 0x407E, 0x4081, 0x4084, 0x4087, 0x408A, +- 0x408E, 0x4093, 0x4098, 0x409C, 0x40A0, 0x40A1, ++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000A, 0x000B, 0x000D, ++ 0x000E, 0x000F, 0x0011, 0x0012, 0x0013, 0x0014, 0x0016, 0x0013, 0x0011, 0x000E, 0x000C, 0x000A, ++ 0x0007, 0x0005, 0x0002, 0x0000, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF6, ++ 0xFFF5, 0xFFF4, 0xFFF3, 0xFFF2, 0xFFF0, 0xFFEF, 0xFFEE, 0xFFED, 0xFFEC, 0xFFEA, 0xFFED, 0xFFEF, ++ 0xFFF2, 0xFFF4, 0xFFF6, 0xFFF9, 0xFFFB, 0xFFFE, 0x0000, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, ++ 0x00B9, 0x00B8, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B2, 0x00B1, 0x00B1, 0x00B0, ++ 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, 0x00BB, 0x00BD, 0x00BC, ++ 0x00BB, 0x00BA, 0x00B9, 0x00B9, 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, ++ 0x00B1, 0x00B0, 0x00B0, 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, ++ 0x00BB, 0x00BD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0036, 0x006B, 0x00A1, 0x00D6, ++ 0x010B, 0x0141, 0x0177, 0x01AD, 0x01E2, 0x0217, 0x024D, 0x0283, 0x02B8, 0x02EF, 0x0323, 0x035A, ++ 0x038E, 0x032A, 0x02C4, 0x025E, 0x01F9, 0x0195, 0x0130, 0x00CA, 0x0065, 0xFFFF, 0xFFCC, 0xFF9A, ++ 0xFF67, 0xFF35, 0xFF02, 0xFED0, 0xFE9D, 0xFE6A, 0xFE38, 0xFE06, 0xFDD3, 0xFDA0, 0xFD6E, 0xFD3B, ++ 0xFD09, 0xFCD6, 0xFCA3, 0xFC72, 0xFCD6, 0xFD3B, 0xFDA0, 0xFE06, 0xFE6A, 0xFED0, 0xFF35, 0xFF9A, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x4000, 0x00D0, 0x00D0, 0x00EF, 0x0146, 0x01CA, 0x0272, 0x0333, 0x0403, 0x04D8, ++ 0x05A8, 0x0668, 0x0710, 0x0794, 0x07EB, 0x080A, 0x077C, 0x06ED, 0x065F, 0x05D1, 0x0543, 0x04B4, ++ 0x0426, 0x0398, 0x0309, 0x027B, 0x01ED, 0x015E, 0x00D0, 0xFFC3, 0xFEAE, 0xFD94, 0xFC7C, 0xFB6B, ++ 0xFA65, 0xF972, 0xF894, 0xF7D3, 0xF734, 0xF6BB, 0xF66F, 0xF655, 0xF714, 0xF7D4, 0xF893, 0xF953, ++ 0xFA13, 0xFAD2, 0xFB92, 0xFC51, 0xFD11, 0xFDD1, 0xFE90, 0xFF50, 0x0011, 0x00D0, 0x0000, 0x0000, ++ 0xFFFC, 0xFFF3, 0xFFE5, 0xFFD3, 0xFFBE, 0xFFA8, 0xFF91, 0xFF7B, 0xFF67, 0xFF55, 0xFF47, 0xFF3E, ++ 0xFF3A, 0xFF4A, 0xFF59, 0xFF68, 0xFF77, 0xFF86, 0xFF95, 0xFFA4, 0xFFB3, 0xFFC3, 0xFFD2, 0xFFE1, ++ 0xFFF0, 0x0000, 0x0017, 0x002D, 0x0043, 0x0058, 0x006C, 0x007F, 0x0090, 0x009F, 0x00AC, 0x00B7, ++ 0x00BF, 0x00C4, 0x00C5, 0x00B7, 0x00A9, 0x009B, 0x008D, 0x007F, 0x0071, 0x0063, 0x0055, 0x0047, ++ 0x0039, 0x002A, 0x001C, 0x000E, 0x0000, 0x0993, 0x0993, 0x0963, 0x08DD, 0x0811, 0x070F, 0x05E6, ++ 0x04A5, 0x035D, 0x021C, 0x00F3, 0xFFF0, 0xFF24, 0xFE9F, 0xFE6F, 0xFF4A, 0x0026, 0x0102, 0x01DD, ++ 0x02B8, 0x0393, 0x046F, 0x054A, 0x0625, 0x0701, 0x07DC, 0x08B7, 0x0993, 0x0963, 0x08DD, 0x0811, ++ 0x070F, 0x05E6, 0x04A5, 0x035D, 0x021D, 0x00F3, 0xFFF0, 0xFF25, 0xFE9F, 0xFE6F, 0xFF3B, 0x0007, ++ 0x00D3, 0x019E, 0x026A, 0x0336, 0x0401, 0x04CD, 0x0598, 0x0664, 0x0730, 0x07FB, 0x08C7, 0x0993, ++ 0x0007, 0x0007, 0xFFE6, 0xFF8B, 0xFF01, 0xFE53, 0xFD8A, 0xFCB1, 0xFBD3, 0xFAFA, 0xFA31, 0xF983, ++ 0xF8F9, 0xF89E, 0xF87E, 0xF88F, 0xF8C2, 0xF912, 0xF97D, 0xFA00, 0xFA98, 0xFB42, 0xFBFA, 0xFCBE, ++ 0xFD8B, 0xFE5D, 0xFF32, 0x0007, 0x00D8, 0x01A5, 0x026B, 0x0329, 0x03DE, 0x0489, 0x0528, 0x05B9, ++ 0x063C, 0x06AE, 0x070F, 0x075D, 0x0796, 0x07B9, 0x07C5, 0x079E, 0x0733, 0x0690, 0x05C4, 0x04DC, ++ 0x03E6, 0x02F1, 0x0209, 0x013D, 0x009A, 0x002E, 0x0007, 0xFFC9, 0xFFC9, 0xFFC9, 0xFFC6, 0xFFC3, ++ 0xFFBE, 0xFFB9, 0xFFB3, 0xFFAE, 0xFFA8, 0xFFA3, 0xFF9F, 0xFF9B, 0xFF99, 0xFF98, 0xFF99, 0xFF9B, ++ 0xFF9F, 0xFFA3, 0xFFA8, 0xFFAE, 0xFFB3, 0xFFB9, 0xFFBE, 0xFFC3, 0xFFC6, 0xFFC9, 0xFFC9, 0xFFC9, ++ 0xFFC9, 0xFFC8, 0xFFC6, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC0, 0xFFBE, 0xFFBD, 0xFFBB, 0xFFBA, 0xFFB9, ++ 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB9, 0xFFBB, 0xFFBD, 0xFFBF, 0xFFC1, 0xFFC3, 0xFFC5, 0xFFC7, 0xFFC8, ++ 0xFFC9, 0xF555, 0xF555, 0xF582, 0xF5FF, 0xF6BE, 0xF7B0, 0xF8C6, 0xF9F2, 0xFB26, 0xFC52, 0xFD68, ++ 0xFE5A, 0xFF19, 0xFF96, 0xFFC3, 0xFF96, 0xFF19, 0xFE5A, 0xFD68, 0xFC52, 0xFB26, 0xF9F2, 0xF8C6, ++ 0xF7B0, 0xF6BE, 0xF5FF, 0xF582, 0xF555, 0xF576, 0xF5D3, 0xF664, 0xF71E, 0xF7F8, 0xF8E9, 0xF9E9, ++ 0xFAED, 0xFBEC, 0xFCDE, 0xFDB8, 0xFE72, 0xFF02, 0xFF60, 0xFF81, 0xFF4E, 0xFEC0, 0xFDEA, 0xFCDE, ++ 0xFBAD, 0xFA6B, 0xF928, 0xF7F8, 0xF6EC, 0xF616, 0xF588, 0xF555, 0xFFFE, 0x0001, 0xC170, 0xF40C, ++ 0xF40C, 0xF60A, 0xF807, 0xFA04, 0xFC02, 0xFDFF, 0xFFFD, 0x01FB, 0x03F8, 0x05F6, 0x07F3, 0x09F1, ++ 0x0BEE, 0x0DEB, 0x0FE9, 0x11E6, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x11F4, 0x1005, 0x0E15, ++ 0x0C26, 0x0A37, 0x0847, 0x0658, 0x06DF, 0x0766, 0x07ED, 0x0874, 0x08FC, 0x0983, 0x0A0A, 0x0A91, ++ 0x0B18, 0x0B9F, 0x0C26, 0x0CAE, 0x0D35, 0x0DBC, 0x0E43, 0x0BE1, 0x097F, 0x071D, 0x04BB, 0x0259, ++ 0xFFF6, 0xFD94, 0xFB32, 0xF8D0, 0xF66E, 0xF40C, 0xDC0B, 0xDC0B, 0xDBFE, 0xDBF1, 0xDBE3, 0xDBD6, ++ 0xDBC9, 0xDBBC, 0xDBAF, 0xDBA1, 0xDB94, 0xDB87, 0xDB7A, 0xDB6D, 0xDB5F, 0xDB52, 0xDB45, 0xDB38, ++ 0xDB38, 0xDB38, 0xDB38, 0xDB38, 0xDC56, 0xDD74, 0xDE92, 0xDFB1, 0xE0CF, 0xE1ED, 0xE30B, 0xE52D, ++ 0xE74F, 0xE971, 0xEB93, 0xEDB4, 0xEFD6, 0xF1F8, 0xF41A, 0xF63C, 0xF85E, 0xFA7F, 0xFCA1, 0xFEC3, ++ 0x00E6, 0x0308, 0xFF7B, 0xFBF0, 0xF865, 0xF4DA, 0xF14F, 0xEDC3, 0xEA38, 0xE6AD, 0xE322, 0xDF96, ++ 0xDC0B, 0x94C0, 0x94C0, 0x9B35, 0xA1A9, 0xA81E, 0xAE93, 0xB507, 0xBB7C, 0xC1F1, 0xC865, 0xCEDA, ++ 0xD54F, 0xDBC3, 0xE238, 0xE8AD, 0xEF21, 0xF596, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xEB63, ++ 0xDABC, 0xCA14, 0xB96D, 0xA8C6, 0x981E, 0x8777, 0x882E, 0x88E4, 0x899B, 0x8A52, 0x8B09, 0x8BC0, ++ 0x8C76, 0x8D2D, 0x8DE4, 0x8E9B, 0x8F51, 0x9008, 0x90BF, 0x9176, 0x922C, 0x9268, 0x92A4, 0x92E0, ++ 0x931C, 0x9358, 0x9394, 0x93D0, 0x940C, 0x9448, 0x9484, 0x94C0, 0xFCE1, 0xFCE1, 0xFE2F, 0xFF7E, ++ 0x00CD, 0x021C, 0x036B, 0x04B9, 0x0608, 0x0756, 0x08A5, 0x09F3, 0x0B42, 0x0C90, 0x0DDF, 0x0F2E, ++ 0x107C, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x106B, 0x0F0C, 0x0DAC, 0x0C4D, 0x0AED, 0x098D, ++ 0x082E, 0x067F, 0x04D1, 0x0323, 0x0174, 0xFFC5, 0xFE16, 0xFC68, 0xFABA, 0xF90B, 0xF75D, 0xF5AE, ++ 0xF400, 0xF252, 0xF0A3, 0xF1A8, 0xF2AD, 0xF3B3, 0xF4B8, 0xF5BD, 0xF6C2, 0xF7C7, 0xF8CC, 0xF9D1, ++ 0xFAD6, 0xFBDC, 0xFCE1, 0x1C35, 0x1C35, 0x1BAF, 0x1B29, 0x1AA3, 0x1A1D, 0x1997, 0x1911, 0x188B, ++ 0x1805, 0x177F, 0x16F9, 0x1673, 0x15ED, 0x1568, 0x14E2, 0x145C, 0x13D6, 0x13D6, 0x13D6, 0x13D6, ++ 0x13D6, 0x148E, 0x1546, 0x15FF, 0x16B7, 0x1770, 0x1828, 0x18E0, 0x1977, 0x1A0D, 0x1AA4, 0x1B3A, ++ 0x1BD1, 0x1C67, 0x1CFE, 0x1D94, 0x1E2B, 0x1EC1, 0x1F58, 0x1FEE, 0x2085, 0x211B, 0x20B3, 0x204A, ++ 0x1FE2, 0x1F79, 0x1F11, 0x1EA8, 0x1E40, 0x1DD7, 0x1D6F, 0x1D06, 0x1C9D, 0x1C35, 0xEE48, 0xEE48, ++ 0xEF90, 0xF0D9, 0xF221, 0xF369, 0xF4B2, 0xF5FA, 0xF742, 0xF88A, 0xF9D3, 0xFB1B, 0xFC63, 0xFDAC, ++ 0xFEF4, 0x003D, 0x0186, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x01AA, 0x0086, 0xFF62, 0xFE3E, ++ 0xFD1A, 0xFBF6, 0xFAD3, 0xF912, 0xF751, 0xF590, 0xF3CF, 0xF20E, 0xF04D, 0xEE8C, 0xECCB, 0xEB0A, ++ 0xE949, 0xE788, 0xE5C7, 0xE406, 0xE245, 0xE346, 0xE446, 0xE546, 0xE646, 0xE747, 0xE847, 0xE947, ++ 0xEA47, 0xEB47, 0xEC48, 0xED48, 0xEE48, 0x21A1, 0x21A1, 0x2006, 0x1B7B, 0x146D, 0x0B46, 0x0071, ++ 0xF45A, 0xE76D, 0xDA15, 0xCCBD, 0xBFD0, 0xB3BA, 0xA8E6, 0x9FBF, 0x98B0, 0x9426, 0x928A, 0x928A, ++ 0x928A, 0x928A, 0x928A, 0xA6FB, 0xBB6C, 0xCFDD, 0xE44E, 0xF8BF, 0x0D30, 0x21A1, 0x2188, 0x2143, ++ 0x20D8, 0x2050, 0x1FB2, 0x1F04, 0x1E50, 0x1D9B, 0x1CED, 0x1C4F, 0x1BC7, 0x1B5C, 0x1B17, 0x1AFE, ++ 0x1B1F, 0x1B7C, 0x1C07, 0x1CB7, 0x1D7D, 0x1E50, 0x1F22, 0x1FE9, 0x2098, 0x2123, 0x2180, 0x21A1, ++ 0xF7CA, 0xF7CA, 0xF77F, 0xF6AD, 0xF565, 0xF3BC, 0xF1C6, 0xEF95, 0xED3D, 0xEAD2, 0xE867, 0xE60F, ++ 0xE3DE, 0xE1E8, 0xE03F, 0xDEF8, 0xDE25, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xE18F, 0xE543, ++ 0xE8F8, 0xECAC, 0xF061, 0xF415, 0xF7CA, 0xF8A6, 0xF964, 0xFA04, 0xFA89, 0xFAF6, 0xFB4E, 0xFB92, ++ 0xFBC5, 0xFBEA, 0xFC03, 0xFC12, 0xFC19, 0xFC1C, 0xFC1C, 0xFC07, 0xFBCA, 0xFB70, 0xFAFE, 0xFA7C, ++ 0xF9F3, 0xF96A, 0xF8E9, 0xF877, 0xF81C, 0xF7E0, 0xF7CA, 0xF6E8, 0xF6E8, 0xF76A, 0xF8D9, 0xFB13, ++ 0xFDF6, 0x0163, 0x0533, 0x0948, 0x0D7E, 0x11B5, 0x15CA, 0x199A, 0x1D06, 0x1FE9, 0x2223, 0x2392, ++ 0x2414, 0x2414, 0x2414, 0x2414, 0x2414, 0x1DA0, 0x172C, 0x10B8, 0x0A45, 0x03D1, 0xFD5C, 0xF6E8, ++ 0xF4BC, 0xF2E0, 0xF14C, 0xEFFC, 0xEEE9, 0xEE0C, 0xED61, 0xECE0, 0xEC83, 0xEC45, 0xEC20, 0xEC0C, ++ 0xEC05, 0xEC04, 0xEC3B, 0xECD3, 0xEDB8, 0xEED7, 0xF01D, 0xF176, 0xF2CF, 0xF415, 0xF534, 0xF619, ++ 0xF6B1, 0xF6E8, 0xFFFE, 0x0001, 0xC170, 0xF96B, 0xF96B, 0xF913, 0xF8BA, 0xF862, 0xF80A, 0xF7B1, ++ 0xF759, 0xF700, 0xF6A8, 0xF64F, 0xF5F7, 0xF59E, 0xF546, 0xF4ED, 0xF495, 0xF43C, 0xF3E4, 0xF38B, ++ 0xF5F5, 0xF85E, 0xFAC8, 0xFD32, 0xFF9B, 0x0206, 0x046F, 0x06D9, 0x0942, 0x0BAC, 0x0A47, 0x08E2, ++ 0x077E, 0x0619, 0x04B4, 0x0350, 0x01EB, 0x0086, 0xFF21, 0xFDBC, 0xFC57, 0xFAF2, 0xF98E, 0xF829, ++ 0xF6C4, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF62F, 0xF6FE, 0xF7CD, 0xF89C, 0xF96B, ++ 0x1D0F, 0x1D0F, 0x1B21, 0x1934, 0x1746, 0x1559, 0x136B, 0x117E, 0x0F90, 0x0DA3, 0x0BB5, 0x09C8, ++ 0x07DA, 0x05ED, 0x03FF, 0x0212, 0x0024, 0xFE36, 0xFC48, 0x0048, 0x0446, 0x0845, 0x0C43, 0x1042, ++ 0x1440, 0x183F, 0x1C3D, 0x203C, 0x243A, 0x2443, 0x244C, 0x2455, 0x245F, 0x2468, 0x2471, 0x247A, ++ 0x2483, 0x248C, 0x2495, 0x249E, 0x24A7, 0x24B0, 0x24BA, 0x24C3, 0x24CC, 0x24CC, 0x24CC, 0x24CC, ++ 0x24CC, 0x24CC, 0x2340, 0x21B3, 0x2027, 0x1E9B, 0x1D0F, 0x86F8, 0x86F8, 0x879B, 0x883F, 0x88E2, ++ 0x8986, 0x8A29, 0x8ACD, 0x8B71, 0x8C14, 0x8CB8, 0x8D5B, 0x8DFF, 0x8EA3, 0x8F46, 0x8FEA, 0x908D, ++ 0x9131, 0x91D4, 0x9211, 0x924D, 0x9289, 0x92C5, 0x9301, 0x933D, 0x9379, 0x93B5, 0x93F1, 0x942D, ++ 0x9A9C, 0xA10A, 0xA779, 0xADE7, 0xB456, 0xBAC4, 0xC132, 0xC7A1, 0xCE0F, 0xD47E, 0xDAEC, 0xE15B, ++ 0xE7C9, 0xEE38, 0xF4A6, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xE3DB, 0xCCA2, 0xB56A, ++ 0x9E31, 0x86F8, 0xF7CB, 0xF7CB, 0xF9B7, 0xFBA4, 0xFD90, 0xFF7C, 0x016A, 0x0356, 0x0542, 0x072F, ++ 0x091B, 0x0B07, 0x0CF4, 0x0EE0, 0x10CC, 0x0FA7, 0x0E81, 0x0D5B, 0x0C36, 0x0B10, 0x09EA, 0x08C4, ++ 0x079F, 0x0679, 0x0553, 0x042D, 0x0308, 0x01E2, 0x00BC, 0xFF96, 0xFE70, 0xFD4A, 0xFC24, 0xFAFF, ++ 0xF9D9, 0xF8B3, 0xF78D, 0xF668, 0xF542, 0xF41C, 0xF2F7, 0xF1D1, 0xF0AB, 0xEF85, 0xEE60, 0xEE60, ++ 0xEE60, 0xEE60, 0xEE60, 0xEE60, 0xF042, 0xF224, 0xF406, 0xF5E9, 0xF7CB, 0xE769, 0xE769, 0xE6BA, ++ 0xE60B, 0xE55D, 0xE4AE, 0xE3FF, 0xE350, 0xE2A1, 0xE1F2, 0xE143, 0xE094, 0xDFE6, 0xDF37, 0xDE88, ++ 0xDF00, 0xDF77, 0xDFEF, 0xE067, 0xE0DF, 0xE156, 0xE1CE, 0xE246, 0xE2BE, 0xE336, 0xE3AD, 0xE425, ++ 0xE49D, 0xE515, 0xE58C, 0xE604, 0xE67C, 0xE6F4, 0xE76B, 0xE7E3, 0xE85B, 0xE8D3, 0xE94B, 0xE9C2, ++ 0xEA3A, 0xEAB2, 0xEB2A, 0xEBA1, 0xEC19, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEB89, ++ 0xEA81, 0xE979, 0xE871, 0xE769, 0xFB6E, 0xFB6E, 0xF9BC, 0xF809, 0xF657, 0xF4A5, 0xF2F2, 0xF140, ++ 0xEF8E, 0xEDDB, 0xEC29, 0xEA77, 0xE8C4, 0xE712, 0xE55F, 0xE65B, 0xE756, 0xE852, 0xE94D, 0xEA49, ++ 0xEB44, 0xEC40, 0xED3B, 0xEE37, 0xEF32, 0xF02D, 0xF129, 0xF224, 0xF320, 0xF41B, 0xF517, 0xF612, ++ 0xF70E, 0xF809, 0xF905, 0xFA00, 0xFAFC, 0xFBF7, 0xFCF2, 0xFDEE, 0xFEE9, 0xFFE5, 0x00E1, 0x01DD, ++ 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x015D, 0xFFE0, 0xFE65, 0xFCEA, 0xFB6E, 0xDE55, ++ 0xDE55, 0xDF02, 0xDFAE, 0xE05A, 0xE107, 0xE1B3, 0xE260, 0xE30C, 0xE3B8, 0xE465, 0xE511, 0xE5BE, ++ 0xE66A, 0xE716, 0xE676, 0xE5D6, 0xE536, 0xE496, 0xE3F6, 0xE356, 0xE2B6, 0xE216, 0xE176, 0xE0D6, ++ 0xE035, 0xDF95, 0xDEF5, 0xDE55, 0xE702, 0xEFAF, 0xF85D, 0x010B, 0x09B8, 0x1265, 0x1B12, 0x23BF, ++ 0x2C6C, 0x351A, 0x3DC7, 0x4674, 0x4F21, 0x57CE, 0x607B, 0x6928, 0x6928, 0x6928, 0x6928, 0x6928, ++ 0x6928, 0x4D65, 0x31A1, 0x15DD, 0xFA19, 0xDE55, 0x0700, 0x0700, 0x06AE, 0x065D, 0x060C, 0x05BA, ++ 0x0569, 0x0518, 0x04C6, 0x0475, 0x0424, 0x03D2, 0x0381, 0x0330, 0x02DE, 0x032A, 0x0375, 0x03C1, ++ 0x040C, 0x0458, 0x04A3, 0x04EF, 0x053B, 0x0586, 0x05D2, 0x061D, 0x0669, 0x06B4, 0x0700, 0x08AE, ++ 0x0A5D, 0x0C0C, 0x0DBB, 0x0F69, 0x1118, 0x12C7, 0x1476, 0x1624, 0x17D3, 0x1982, 0x1B31, 0x1CDF, ++ 0x1E8E, 0x203D, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x1C89, 0x1727, 0x11C4, 0x0C62, ++ 0x0700, 0xF641, 0xF641, 0xF587, 0xF4CE, 0xF414, 0xF35A, 0xF2A0, 0xF1E6, 0xF12C, 0xF072, 0xEFB9, ++ 0xEEFF, 0xEE45, 0xED8B, 0xECD1, 0xED7E, 0xEE2A, 0xEED7, 0xEF84, 0xF030, 0xF0DD, 0xF189, 0xF236, ++ 0xF2E2, 0xF38F, 0xF43C, 0xF4E8, 0xF595, 0xF641, 0xF8CC, 0xFB57, 0xFDE1, 0x006D, 0x02F8, 0x0583, ++ 0x080D, 0x0A98, 0x0D23, 0x0FAE, 0x1238, 0x14C3, 0x174E, 0x19D9, 0x1C63, 0x1EEE, 0x1EEE, 0x1EEE, ++ 0x1EEE, 0x1EEE, 0x1EEE, 0x16CC, 0x0EA9, 0x0687, 0xFE64, 0xF641, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFD, 0xFF65, 0xFECD, 0xFE34, 0xFD9C, 0xFE42, 0xFEE8, ++ 0xFF8E, 0x0035, 0x002A, 0x001F, 0x0014, 0x0009, 0xFFFD, 0x0056, 0x00AE, 0x0106, 0x015E, 0x015E, ++ 0x015E, 0x015E, 0x015E, 0x015E, 0x0106, 0x00AE, 0x0056, 0xFFFD, 0x0093, 0x0128, 0x01BD, 0x0252, ++ 0x02E7, 0x037D, 0x0412, 0x04A7, 0x053C, 0x05D1, 0x0666, 0x0665, 0x0664, 0x0664, 0x0663, 0x0662, ++ 0x0662, 0x0661, 0x0660, 0x0660, 0x065F, 0x065E, 0x0518, 0x03D1, 0x028B, 0x0144, 0xFFFD, 0xFFFF, ++ 0xFFFF, 0x01AD, 0x035A, 0x0507, 0x06B4, 0x05EC, 0x0524, 0x045C, 0x0394, 0x02DD, 0x0225, 0x016E, ++ 0x00B7, 0xFFFE, 0xFF2D, 0xFE5B, 0xFD89, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFD89, ++ 0xFE5B, 0xFF2D, 0xFFFF, 0xFFA5, 0xFF4B, 0xFEF2, 0xFE98, 0xFE3E, 0xFDE4, 0xFD8B, 0xFD31, 0xFCD7, ++ 0xFC7D, 0xFC24, 0xFC29, 0xFC2F, 0xFC34, 0xFC3A, 0xFC3F, 0xFC45, 0xFC4A, 0xFC50, 0xFC55, 0xFC5B, ++ 0xFC60, 0xFD1A, 0xFDD3, 0xFE8C, 0xFF46, 0xFFFF, 0x8000, 0x8000, 0x7C82, 0x7904, 0x7586, 0x7209, ++ 0x72AF, 0x7355, 0x73FC, 0x74A2, 0x73AE, 0x72B9, 0x71C4, 0x70CF, 0x6FDA, 0x6FD7, 0x6FD3, 0x6FD0, ++ 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x7684, 0x7D3B, 0x83F3, 0x8AAA, 0x8EE5, 0x931F, ++ 0x975A, 0x9B94, 0x9FCF, 0xA409, 0xA843, 0xAC7E, 0xB0B8, 0xB4F3, 0xB92D, 0xB980, 0xB9D3, 0xBA25, ++ 0xBA78, 0xBACA, 0xBB1D, 0xBB70, 0xBBC2, 0xBC15, 0xBC68, 0xBCBA, 0xB095, 0xA470, 0x984A, 0x8C25, ++ 0x8000, 0x0000, 0x0000, 0xFFB9, 0xFF73, 0xFF2D, 0xFEE7, 0xFF23, 0xFF60, 0xFF9C, 0xFFD8, 0xFFE0, ++ 0xFFE8, 0xFFF0, 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFD, 0xFFFC, 0xFFFA, 0xFFF9, 0x0001, 0x0009, 0x0010, 0x0018, ++ 0x0013, 0x000E, 0x0009, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x038E, 0x038E, 0x06C7, 0x0A00, 0x0D39, 0x1072, 0x0EF3, 0x0D74, ++ 0x0BF5, 0x0A76, 0x0B34, 0x0BF2, 0x0CAF, 0x0D6D, 0x0E2B, 0x0D92, 0x0CF9, 0x0C60, 0x0BC7, 0x0B2E, ++ 0x0A95, 0x09FC, 0x0963, 0x08CA, 0x0831, 0x0798, 0x06FF, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, ++ 0x2A3B, 0x2BA7, 0x2D13, 0x2E7F, 0x2FEB, 0x3119, 0x3246, 0x3374, 0x34A2, 0x35CF, 0x36FD, 0x382A, ++ 0x3958, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2F87, 0x2489, 0x198B, 0x0E8C, 0x038E, 0xFFFF, ++ 0xFFFF, 0xFFDD, 0xFFBA, 0xFF98, 0xFF75, 0xFF53, 0xFF31, 0xFF0E, 0xFEEC, 0xFECA, 0xFEA7, 0xFE85, ++ 0xFE62, 0xFE40, 0xFDD6, 0xFD6B, 0xFD01, 0xFC96, 0xFC2C, 0xFBC1, 0xFB57, 0xFAEC, 0xFA82, 0xFBE1, ++ 0xFD41, 0xFEA0, 0x0000, 0x0034, 0x0067, 0x009B, 0x00CE, 0x00B7, 0x00A0, 0x008A, 0x0073, 0x005C, ++ 0x0045, 0x002E, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFCA, 0xFF95, 0xFF60, 0xFF2B, 0xFEF6, 0xFEC1, 0xFE8C, 0xFE57, ++ 0xFE23, 0xFDEE, 0xFDB9, 0xFD84, 0xFD4F, 0xFDAE, 0xFE0D, 0xFE6C, 0xFECB, 0xFF2A, 0xFF89, 0xFFE8, ++ 0x0048, 0x00A7, 0x007D, 0x0054, 0x002A, 0xFFFF, 0xFF9A, 0xFF36, 0xFED1, 0xFE6D, 0xFE9A, 0xFEC6, ++ 0xFEF3, 0xFF20, 0xFF4C, 0xFF79, 0xFFA6, 0xFFD2, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xCAAA, 0xCAAA, 0xCB05, 0xCB5F, 0xCBBA, 0xCC15, 0xCC6F, 0xCCCA, 0xCD25, ++ 0xCD80, 0xCDDA, 0xCE35, 0xCE90, 0xCEEA, 0xCF45, 0xD00D, 0xD0D5, 0xD19D, 0xD265, 0xD32D, 0xD3F5, ++ 0xD4BD, 0xD585, 0xD64D, 0xD0B9, 0xCB26, 0xC593, 0xBFFF, 0xBB27, 0xB64F, 0xB178, 0xACA0, 0xB0C0, ++ 0xB4E1, 0xB902, 0xBD23, 0xC143, 0xC564, 0xC985, 0xCDA6, 0xD1C6, 0xD274, 0xD322, 0xD3D1, 0xD47F, ++ 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, 0xB341, 0xBEF5, 0xCAAA, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF6A, 0xFED5, 0xFE40, 0xFDAB, 0xFD16, ++ 0xFC81, 0xFBEC, 0xFB57, 0xFAC2, 0xFA2D, 0xF998, 0xF999, 0xF99A, 0xF99A, 0xF99B, 0xF99C, 0xF99C, ++ 0xF99D, 0xF99E, 0xF99E, 0xF99F, 0xF9A0, 0xFB38, 0xFCD0, 0xFE68, 0x0000, 0x009D, 0x013A, 0x01D6, ++ 0x0273, 0x0230, 0x01ED, 0x01A9, 0x0166, 0x0123, 0x00DA, 0x0092, 0x0049, 0x0000, 0xFFB9, 0xFF72, ++ 0xFF2B, 0xFEE4, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFEE4, 0xFF2B, 0xFF72, 0xFFB8, 0xFFFF, ++ 0x0000, 0x0000, 0x005B, 0x00B6, 0x0111, 0x016C, 0x01C7, 0x0222, 0x027C, 0x02D7, 0x0332, 0x038D, ++ 0x03E8, 0x03E3, 0x03DD, 0x03D7, 0x03D2, 0x03CC, 0x03C7, 0x03C1, 0x03BC, 0x03B6, 0x03B1, 0x03AB, ++ 0x02C1, 0x01D6, 0x00EB, 0x0001, 0xFE54, 0xFCA8, 0xFAFC, 0xF950, 0xF9FA, 0xFAA4, 0xFB4D, 0xFBF7, ++ 0xFCA0, 0xFD78, 0xFE4F, 0xFF27, 0xFFFF, 0x00A7, 0x014F, 0x01F7, 0x029F, 0x0347, 0x0347, 0x0347, ++ 0x0347, 0x0347, 0x029F, 0x01F7, 0x014F, 0x00A8, 0x0000, 0x8AAA, 0x8AAA, 0x8EE5, 0x9320, 0x975B, ++ 0x9B96, 0x9FD2, 0xA40D, 0xA848, 0xAC83, 0xB0BE, 0xB4F9, 0xB934, 0xB987, 0xB9D9, 0xBA2C, 0xBA7E, ++ 0xBAD1, 0xBB24, 0xBB76, 0xBBC9, 0xBC1C, 0xBC6E, 0xBCC1, 0xAD91, 0x9E60, 0x8F30, 0x8000, 0x7C67, ++ 0x78CF, 0x7536, 0x719E, 0x71D7, 0x7210, 0x7249, 0x7282, 0x72BB, 0x71DF, 0x7102, 0x7026, 0x6F49, ++ 0x6F5F, 0x6F75, 0x6F8B, 0x6FA1, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x751B, 0x7A7F, 0x7FE3, ++ 0x8546, 0x8AAA, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0000, 0x0666, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, 0x2A96, 0x2C5D, 0x2E24, 0x2FEB, 0x3157, ++ 0x32C3, 0x3430, 0x359C, 0x3708, 0x37EB, 0x38CF, 0x39B2, 0x3A96, 0x3A96, 0x3A96, 0x3A96, 0x3A96, ++ 0x3A96, 0x2CD4, 0x1F12, 0x1150, 0x038E, 0x0505, 0x067D, 0x07F4, 0x096B, 0x08EB, 0x086A, 0x07EA, ++ 0x076A, 0x06E9, 0x08BA, 0x0A8A, 0x0C5A, 0x0E2B, 0x0DC3, 0x0D5C, 0x0CF5, 0x0C8E, 0x0C27, 0x0B38, ++ 0x0A48, 0x0959, 0x086A, 0x0803, 0x079C, 0x0735, 0x06CD, 0x0666, 0x0000, 0x0000, 0xFFCA, 0xFF96, ++ 0xFF61, 0xFF2C, 0xFF3C, 0xFF4D, 0xFF5D, 0xFF6D, 0xFF7D, 0xFF8D, 0xFF9D, 0xFFAE, 0xFFBE, 0xFFCE, ++ 0xFFDE, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0000, 0xFFFF, ++ 0xFE4E, 0xFC9E, 0xFAEE, 0xF93E, 0xFA04, 0xFACB, 0xFB92, 0xFC58, 0xFD1F, 0xFDE5, 0xFEAC, 0xFF73, ++ 0x003A, 0x0101, 0x0126, 0x014A, 0x016F, 0x0193, 0x01B8, 0x01DD, 0x0201, 0x0226, 0x024B, 0x01B8, ++ 0x0125, 0x0093, 0x0000, 0x0030, 0x0030, 0x0094, 0x00F8, 0x015C, 0x01C0, 0x01A2, 0x0183, 0x0164, ++ 0x0145, 0x0126, 0x0108, 0x00E9, 0x00CA, 0x00AB, 0x008C, 0x006E, 0x004F, 0x0030, 0x0030, 0x0030, ++ 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x00BF, 0x014F, 0x01DE, 0x026D, 0x0266, ++ 0x025F, 0x0258, 0x0251, 0x024A, 0x0243, 0x023C, 0x0235, 0x022E, 0x0226, 0x021F, 0x0217, 0x020F, ++ 0x0207, 0x01FF, 0x01F8, 0x01F0, 0x01E8, 0x01E0, 0x0174, 0x0108, 0x009C, 0x0030, 0xBFFF, 0xBFFF, ++ 0xBAFF, 0xB5FE, 0xB0FE, 0xABFE, 0xAF29, 0xB254, 0xB57F, 0xB8AA, 0xBBD5, 0xBF00, 0xC22B, 0xC556, ++ 0xC881, 0xCBAC, 0xCED7, 0xD202, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, ++ 0xB91B, 0xCAAA, 0xCC6B, 0xCE2C, 0xCFED, 0xD1AE, 0xD1BB, 0xD1C9, 0xD1D6, 0xD1E4, 0xD1F1, 0xD1FF, ++ 0xD20D, 0xD21A, 0xD228, 0xD235, 0xD202, 0xD1CE, 0xD19B, 0xD167, 0xD134, 0xD101, 0xD0CD, 0xD09A, ++ 0xD066, 0xCC4D, 0xC833, 0xC419, 0xBFFF, + }; + diff --git a/assets/anims/anim_49.inc.c b/assets/anims/anim_49.inc.c index be72c0e5..d3c9d98a 100644 --- a/assets/anims/anim_49.inc.c +++ b/assets/anims/anim_49.inc.c @@ -1,9 +1,9 @@ static const struct Animation anim_49[] = { - 1, + 0, 189, 0, 0, - 0x10, + 0x48, ANIMINDEX_NUMPARTS(anim_49_indices), anim_49_values, anim_49_indices, @@ -12,110 +12,194 @@ static const struct Animation anim_49[] = { static const u16 anim_49_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0001, 0x0010, 0x0002, 0x0001, 0x0000, 0x0001, 0x0012, 0x0001, 0x0000, - 0x0010, 0x0259, 0x0010, 0x0269, 0x0010, 0x0279, - 0x0010, 0x0229, 0x0010, 0x0239, 0x0010, 0x0249, - 0x0010, 0x01F9, 0x0010, 0x0209, 0x0010, 0x0219, - 0x0001, 0x01C6, 0x0001, 0x01C7, 0x0001, 0x01C8, - 0x0010, 0x0053, 0x0010, 0x0063, 0x0010, 0x0073, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0043, - 0x0010, 0x0013, 0x0010, 0x0023, 0x0010, 0x0033, - 0x0001, 0x01B3, 0x0001, 0x01B4, 0x0001, 0x01B5, - 0x0010, 0x00A3, 0x0010, 0x00B3, 0x0010, 0x00C3, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0093, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0083, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x01B6, - 0x0010, 0x0183, 0x0010, 0x0193, 0x0010, 0x01A3, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0173, - 0x0010, 0x0143, 0x0010, 0x0153, 0x0010, 0x0163, - 0x0010, 0x01C9, 0x0010, 0x01D9, 0x0010, 0x01E9, - 0x0010, 0x0113, 0x0010, 0x0123, 0x0010, 0x0133, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0103, - 0x0010, 0x00D3, 0x0010, 0x00E3, 0x0010, 0x00F3, +0x0001, 0x0000, 0x0047, 0x0001, 0x0001, 0x0048, 0x0001, 0x0049, 0x0001, + 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, 0x0001, 0x004E, + 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, 0x0051, 0x0001, 0x0052, 0x0001, + 0x0053, 0x0001, 0x0054, 0x0001, 0x0055, 0x0001, 0x0056, 0x0001, 0x0057, + 0x0001, 0x0058, 0x0001, 0x0059, 0x003B, 0x005A, 0x0001, 0x0095, 0x0001, + 0x0096, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, 0x0099, 0x0001, 0x009A, + 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, 0x0001, 0x009E, 0x0001, + 0x009F, 0x003B, 0x00A0, 0x0001, 0x00DB, 0x0001, 0x00DC, 0x0001, 0x00DD, + 0x0001, 0x00DE, 0x0001, 0x00DF, 0x0001, 0x00E0, 0x0001, 0x00E1, 0x0001, + 0x00E2, 0x0001, 0x00E3, 0x0047, 0x00E4, 0x0047, 0x012B, 0x0049, 0x0172, + 0x0049, 0x01BB, 0x0049, 0x0204, 0x0049, 0x024D, 0x0049, 0x0296, 0x0049, + 0x02DF, 0x0049, 0x0328, 0x0001, 0x0371, 0x0001, 0x0372, 0x0001, 0x0373, + 0x0049, 0x0374, 0x0049, 0x03BD, 0x0049, 0x0406, 0x0049, 0x044F, 0x0049, + 0x0498, 0x0049, 0x04E1, 0x0049, 0x052A, 0x0049, 0x0573, 0x0049, 0x05BC, }; static const s16 anim_49_values[] = { - 0x0000, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x3FFF, 0x1292, 0x124F, 0x1233, 0x1261, 0x128E, - 0x1233, 0x115B, 0x1069, 0x0F61, 0x0E48, 0x0D22, 0x0BF1, 0x0ABB, - 0x0984, 0x084E, 0x071F, 0x0362, 0x033F, 0x0331, 0x0349, 0x0361, - 0x0331, 0x02BD, 0x023C, 0x01AF, 0x0119, 0x007C, 0xFFDB, 0xFF36, - 0xFE8F, 0xFDEA, 0xFD48, 0xDC1E, 0xDC66, 0xDC83, 0xDC59, 0xDC2F, - 0xDC83, 0xDD4E, 0xDE30, 0xDF27, 0xE02E, 0xE142, 0xE25E, 0xE380, - 0xE4A4, 0xE5C6, 0xE6E1, 0xF163, 0xF0C6, 0xF085, 0xF0E4, 0xF142, - 0xF085, 0xEEBE, 0xECC2, 0xEA99, 0xE84B, 0xE5E1, 0xE362, 0xE0D7, - 0xDE49, 0xDBC0, 0xD943, 0xCD29, 0xCF2E, 0xD1AB, 0xD855, 0xE231, - 0xE83D, 0xEA01, 0xEBB0, 0xED4B, 0xEED1, 0xF042, 0xF19D, 0xF2E3, - 0xF413, 0xF52C, 0xF62E, 0xFE28, 0xFD52, 0xFB12, 0xF050, 0xDF34, - 0xD552, 0xD3BA, 0xD26B, 0xD162, 0xD097, 0xD005, 0xCFA6, 0xCF75, - 0xCF6B, 0xCF84, 0xCFB8, 0xFA4C, 0xF657, 0xF1CD, 0xE6D1, 0xD738, - 0xCE99, 0xCD80, 0xCCB8, 0xCC3A, 0xCBFF, 0xCBFF, 0xCC33, 0xCC94, - 0xCD1A, 0xCDC0, 0xCE7D, 0xD7F1, 0xD83D, 0xD85C, 0xD814, 0xD7CD, - 0xD85C, 0xD9B4, 0xDB35, 0xDCD8, 0xDE96, 0xE06B, 0xE24E, 0xE43B, - 0xE62A, 0xE816, 0xE9F8, 0xEBA5, 0xF17D, 0xF639, 0xF877, 0xF804, - 0xF639, 0xF412, 0xF1A9, 0xEF0A, 0xEC3E, 0xE950, 0xE649, 0xE333, - 0xE01A, 0xDD06, 0xDA01, 0xFBB1, 0x0748, 0x1209, 0x1B2B, 0x21E8, - 0x257A, 0x26CD, 0x275F, 0x2742, 0x268C, 0x254D, 0x2399, 0x2183, - 0x1F1E, 0x1C7D, 0x19B3, 0x2D0E, 0x2E43, 0x2F5A, 0x3042, 0x30EA, - 0x313E, 0x3154, 0x3152, 0x3138, 0x310B, 0x30CC, 0x307E, 0x3023, - 0x2FBF, 0x2F54, 0x2EE5, 0xB0BB, 0xBCD2, 0xC81F, 0xD1D8, 0xD933, - 0xDD66, 0xDF68, 0xE0C2, 0xE183, 0xE1BA, 0xE176, 0xE0C8, 0xDFBE, - 0xDE67, 0xDCD4, 0xDB13, 0xFF2D, 0xFF44, 0xFF57, 0xFF5F, 0xFF5B, - 0xFF57, 0xFF4F, 0xFF38, 0xFF1A, 0xFEFA, 0xFEDE, 0xFECC, 0xFEC9, - 0xFEDB, 0xFF09, 0xFF57, 0x023F, 0x023F, 0x0244, 0x0247, 0x0246, - 0x0244, 0x0247, 0x024E, 0x0258, 0x0262, 0x026B, 0x0271, 0x0272, - 0x026C, 0x025D, 0x0244, 0xB9FE, 0xBC1A, 0xBDAE, 0xBE39, 0xBDF3, - 0xBDAE, 0xBDAD, 0xBDAB, 0xBDA8, 0xBDA6, 0xBDA3, 0xBDA2, 0xBDA1, - 0xBDA3, 0xBDA7, 0xBDAE, 0x5EA1, 0x6088, 0x5EA1, 0x54C8, 0x4813, - 0x3E71, 0x385C, 0x3260, 0x2C92, 0x2705, 0x21CB, 0x1CF8, 0x189F, - 0x14D3, 0x11A7, 0x0F2E, 0x0B6D, 0x05F1, 0x0156, 0xFEA9, 0xFDDB, - 0xFDAE, 0xFD6B, 0xFD32, 0xFD06, 0xFCE7, 0xFCD7, 0xFCDA, 0xFCF0, - 0xFD1C, 0xFD60, 0xFDBD, 0x01E2, 0xFB93, 0xF64E, 0xF422, 0xF514, - 0xF67E, 0xF745, 0xF815, 0xF8EE, 0xF9D2, 0xFAC1, 0xFBBD, 0xFCC5, - 0xFDDC, 0xFF01, 0x0034, 0x9CFC, 0x951F, 0x8F7C, 0x915F, 0x998A, - 0x9EFD, 0x9FEC, 0xA08F, 0xA0EC, 0xA109, 0xA0EA, 0xA096, 0xA012, - 0x9F64, 0x9E92, 0x9DA0, 0x00B9, 0x00C9, 0x00D0, 0x00D0, 0x00D0, - 0x00D0, 0x00D3, 0x00DD, 0x00E9, 0x00F7, 0x0103, 0x010A, 0x010C, - 0x0104, 0x00F1, 0x00D0, 0xFF32, 0xFF36, 0xFF38, 0xFF38, 0xFF38, - 0xFF38, 0xFF36, 0xFF32, 0xFF2C, 0xFF26, 0xFF21, 0xFF1D, 0xFF1D, - 0xFF20, 0xFF29, 0xFF38, 0xC245, 0xC1D8, 0xC1AA, 0xC1AA, 0xC1AA, - 0xC1AA, 0xC1B3, 0xC1C9, 0xC1E6, 0xC206, 0xC221, 0xC233, 0xC236, - 0xC224, 0xC1F7, 0xC1AA, 0x1FFC, 0x1A51, 0x152F, 0x1307, 0x141B, - 0x152F, 0x1506, 0x149C, 0x140E, 0x1377, 0x12F2, 0x129B, 0x128D, - 0x12E4, 0x13BC, 0x152F, 0x0C64, 0x0D70, 0x0DB3, 0x099B, 0x020F, - 0xFD99, 0xFD2B, 0xFD50, 0xFDE6, 0xFECE, 0xFFE8, 0x0111, 0x022D, - 0x0319, 0x03B5, 0x03E1, 0x089E, 0x0707, 0x0536, 0x018E, 0xFCBA, - 0xFA1A, 0xF9EF, 0xFA2A, 0xFAB4, 0xFB78, 0xFC61, 0xFD58, 0xFE49, - 0xFF1E, 0xFFC1, 0x001C, 0xBD10, 0xC45E, 0xCA4D, 0xCAA9, 0xC545, - 0xBFD1, 0xBC46, 0xB8CA, 0xB557, 0xB1E4, 0xAE6B, 0xAAE5, 0xA74B, - 0xA394, 0x9FBB, 0x9BB7, 0x7FFF, 0x7FFF, 0x4171, 0xBF62, 0xBF60, - 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, - 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x7FFF, 0x7FFF, - 0x4171, 0xFCC9, 0xFE90, 0x0000, 0x008B, 0x0045, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x054B, 0x025E, 0x0000, 0xFF1A, 0xFF8D, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xB893, 0xBC54, 0xBF5F, 0xC086, 0xBFF3, 0xBF5F, 0xBF5F, - 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, - 0xBF5F, 0x1DE4, 0x1617, 0x0E5E, 0x07EF, 0x0238, 0xFF26, 0xFE45, - 0xFDCC, 0xFDA8, 0xFDC7, 0xFE17, 0xFE85, 0xFEFF, 0xFF73, 0xFFCF, - 0x0000, 0x0F0A, 0x07A4, 0x007F, 0x004E, 0x0256, 0x03A4, 0x038A, - 0x0353, 0x0304, 0x02A2, 0x0233, 0x01BD, 0x0144, 0x00CE, 0x0060, - 0x0000, 0xEC1C, 0xF7D2, 0x0570, 0x09F6, 0x0BBC, 0x0C88, 0x0D77, - 0x0E6C, 0x0F5D, 0x103B, 0x10FA, 0x118D, 0x11E8, 0x11FE, 0x11C2, - 0x1128, 0x0938, 0x0935, 0x093C, 0x096C, 0x0991, 0x093C, 0x0875, - 0x0790, 0x0696, 0x058D, 0x0480, 0x0374, 0x0273, 0x0185, 0x00B1, - 0x0000, 0xFA57, 0xF98D, 0xF8E4, 0xF883, 0xF884, 0xF8E4, 0xF97D, - 0xFA2D, 0xFAEE, 0xFBBA, 0xFC89, 0xFD57, 0xFE1D, 0xFED5, 0xFF78, - 0x0000, 0x283D, 0x2C61, 0x2FE8, 0x31E2, 0x31C2, 0x2FE8, 0x2D01, - 0x2994, 0x25CA, 0x21CB, 0x1DBF, 0x19CE, 0x1620, 0x12DD, 0x102D, - 0x0E38, 0x507D, 0x5567, 0x5AAF, 0x6428, 0x710E, 0x7A85, 0x7E7D, - 0x802D, 0x80A3, 0x80EC, 0x813F, 0x8135, 0x80F0, 0x808F, 0x8034, - 0x7FFF, 0x0507, 0x05D2, 0x0674, 0x0672, 0x0583, 0x03E6, 0x0145, - 0xFDE3, 0xFADE, 0xF959, 0xF97B, 0xFA6F, 0xFBE2, 0xFD83, 0xFEFE, - 0x0000, 0x2F0C, 0x2DB3, 0x2BAA, 0x275D, 0x1E94, 0x1041, 0xFBCF, - 0xE349, 0xC990, 0xB184, 0x9A5F, 0x824A, 0x6A87, 0x5457, 0x40FF, - 0x31BF, + 0x0000, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, + 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BB, + 0x00BA, 0x00BA, 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, + 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C1, 0x00C2, + 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, 0x00BF, + 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, 0x00BA, + 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, 0x00BB, 0x00BC, + 0x00BD, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C0, 0x00C1, 0x00C1, 0x00C2, + 0x0000, 0x0000, 0x3FFF, 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFC16, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0xE029, + 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, + 0x02DE, 0x025B, 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, + 0x0154, 0x01D8, 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, + 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, + 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, + 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, + 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0xF624, 0xFE1F, 0xF61D, 0xEF0B, + 0xFB82, 0xF92D, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0x1FD6, 0x0468, 0x0468, + 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, + 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, + 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, + 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, + 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, 0x01D8, 0x0154, + 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, 0x025B, 0x02DE, + 0x0362, 0x03E5, 0x0468, 0x09D1, 0x0214, 0xF623, 0x10DE, 0x04B1, 0xF95F, + 0xFFFF, 0xFFFF, 0x0000, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, + 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x015F, + 0x0107, 0x00AF, 0x0056, 0xFFFD, 0x0051, 0x00A5, 0x00F8, 0x014C, 0x019F, + 0x01F3, 0x0246, 0x029A, 0x02ED, 0x0341, 0x0394, 0x03E8, 0x043B, 0x048F, + 0x04E2, 0x0536, 0x0589, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, + 0x0592, 0x0546, 0x04FB, 0x04B0, 0x0465, 0x041A, 0x03CF, 0x0384, 0x0339, + 0x02ED, 0x02A2, 0x0257, 0x020C, 0x01C1, 0x0176, 0x012B, 0x00E0, 0x0094, + 0x0049, 0xFFFD, 0x002F, 0x0060, 0x0091, 0x00C2, 0x00F3, 0x0124, 0x0156, + 0x0187, 0x01B8, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, + 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x097B, 0x071C, + 0x04BD, 0x025F, 0x0000, 0x00BB, 0x0176, 0x0230, 0x02EB, 0x03A6, 0x0461, + 0x051B, 0x05D6, 0x0691, 0x074C, 0x0807, 0x08C1, 0x097C, 0x0A37, 0x0AF2, + 0x0BAC, 0x0C67, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0C7A, + 0x0BD2, 0x0B29, 0x0A81, 0x09D9, 0x0931, 0x0889, 0x07E1, 0x0739, 0x0690, + 0x05E8, 0x0540, 0x0498, 0x03F0, 0x0348, 0x02A0, 0x01F8, 0x014F, 0x00A7, + 0xFFFE, 0x0150, 0x02A1, 0x03F2, 0x0544, 0x0695, 0x07E6, 0x0937, 0x0A88, + 0x0BD9, 0xC17F, 0xC17F, 0xC1C4, 0xC208, 0xC24D, 0xC292, 0xC2D7, 0xC2CA, + 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, 0xB7FF, 0xAD81, 0xA304, + 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, 0x799E, 0x7588, 0x7173, + 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, 0x54DE, 0x50C9, 0x4CB4, + 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, 0x41EB, 0x4143, 0x43BE, 0x4639, + 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, 0x551C, 0x5797, 0x5A12, 0x5C8D, + 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, 0x6B6F, 0x6DEB, 0x7066, 0x72E1, + 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, + 0xC13A, 0xC17F, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF2, + 0xFFE8, 0xFFDC, 0xFFCA, 0xFFB4, 0xFF99, 0xFF77, 0xFF4F, 0xFF16, 0xFECD, + 0xFE86, 0xFE4F, 0xFE39, 0xFE39, 0xFE39, 0xFE39, 0xFE4B, 0xFE7D, 0xFECB, + 0xFF2F, 0xFFA4, 0x0027, 0x00B1, 0x013D, 0x01C6, 0x0248, 0x02BE, 0x0322, + 0x0370, 0x03A2, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03AD, + 0x039A, 0x037B, 0x0352, 0x0321, 0x02E9, 0x02AB, 0x0269, 0x0224, 0x01DE, + 0x0198, 0x0153, 0x0110, 0x00D2, 0x009A, 0x0068, 0x003F, 0x001F, 0x000B, + 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0007, + 0x000D, 0x0017, 0x0024, 0x0035, 0x004B, 0x0067, 0x0089, 0x00B2, 0x0154, + 0x0295, 0x0405, 0x0534, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x057B, 0x04DE, + 0x03ED, 0x02B6, 0x0149, 0xFFB4, 0xFE08, 0xFC55, 0xFAAA, 0xF916, 0xF7A9, + 0xF671, 0xF580, 0xF4E4, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, + 0xF4C1, 0xF4FE, 0xF55C, 0xF5DA, 0xF671, 0xF71F, 0xF7DD, 0xF8A9, 0xF97D, + 0xFA56, 0xFB2F, 0xFC03, 0xFCCF, 0xFD8E, 0xFE3B, 0xFED2, 0xFF50, 0xFFAF, + 0xFFEB, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0001, 0x18E6, 0x18E6, 0x18E6, 0x18EA, 0x18F3, + 0x1904, 0x1922, 0x194D, 0x198A, 0x19DA, 0x1A42, 0x1AC3, 0x1B61, 0x1C1F, + 0x2059, 0x2943, 0x33A2, 0x3C3A, 0x3FCF, 0x3FCF, 0x3FCF, 0x3FCF, 0x3F07, + 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, 0x1E35, 0x1837, 0x128C, + 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, + 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, 0x0664, 0x07CD, 0x095A, 0x0B02, + 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, 0x1532, 0x169A, 0x17D6, 0x18DB, + 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, 0x19ED, 0x19B4, 0x1979, 0x1940, + 0x1911, 0x18F0, 0x18E3, 0x18E5, 0x18E6, 0xFCB1, 0xFCB1, 0xFCC0, 0xFCE9, + 0xFD29, 0xFD7D, 0xFDE0, 0xFE51, 0xFECA, 0xFF48, 0xFFC8, 0x0048, 0x00C1, + 0x0131, 0x0195, 0x01E8, 0x0229, 0x0252, 0x0260, 0x025E, 0x0258, 0x024E, + 0x0241, 0x0232, 0x0220, 0x020E, 0x01FA, 0x01E5, 0x01D1, 0x01BD, 0x01AA, + 0x0199, 0x0189, 0x017D, 0x0173, 0x016D, 0x016A, 0x016A, 0x016A, 0x016A, + 0x016A, 0x016A, 0x016A, 0x016A, 0x0169, 0x0167, 0x0164, 0x015F, 0x0158, + 0x014F, 0x0144, 0x0136, 0x0124, 0x010F, 0x00F6, 0x00D9, 0x00B8, 0x0092, + 0x0067, 0x0036, 0xFFFF, 0xFFBE, 0xFF6F, 0xFF14, 0xFEB1, 0xFE49, 0xFDE1, + 0xFD7E, 0xFD28, 0xFCE2, 0xFCB5, 0xFCA4, 0xFCB1, 0xFFB1, 0xFFB1, 0xFF9E, + 0xFF6A, 0xFF18, 0xFEAD, 0xFE2E, 0xFD9F, 0xFD04, 0xFC63, 0xFBBF, 0xFB1E, + 0xFA84, 0xF9F5, 0xF975, 0xF90A, 0xF8B8, 0xF884, 0xF871, 0xF888, 0xF8CA, + 0xF930, 0xF9B6, 0xFA56, 0xFB0B, 0xFBD1, 0xFCA1, 0xFD76, 0xFE4B, 0xFF1B, + 0xFFE0, 0x0097, 0x0137, 0x01BD, 0x0223, 0x0264, 0x027B, 0x027B, 0x027B, + 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0279, 0x0275, 0x0270, 0x0267, + 0x025C, 0x024C, 0x0238, 0x021F, 0x0200, 0x01DB, 0x01B0, 0x017D, 0x0143, + 0x0100, 0x00B4, 0x005F, 0x0000, 0xFEE0, 0xFCEB, 0xFB10, 0xFA3C, 0xFA8A, + 0xFB54, 0xFC68, 0xFD95, 0xFEA9, 0xFF73, 0xFFC2, 0xFFB1, 0xE40B, 0xE40B, + 0xE406, 0xE3F5, 0xE3D9, 0xE3B2, 0xE37D, 0xE33D, 0xE2EF, 0xE293, 0xE22A, + 0xE1B2, 0xE12B, 0xE096, 0xDFF1, 0xDF3B, 0xDE76, 0xDD9F, 0xDCB8, 0xDBBF, + 0xDAB8, 0xD9A7, 0xD88E, 0xD771, 0xD654, 0xD53A, 0xD427, 0xD31D, 0xD221, + 0xD135, 0xD05E, 0xCF9E, 0xCEFA, 0xCE74, 0xCE10, 0xCDD2, 0xCDBC, 0xCDBC, + 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, 0xCC8A, 0xCB26, 0xC952, 0xC71E, + 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, + 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, 0xA929, 0xAE85, 0xB602, 0xBE6F, + 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, 0xE304, 0xE410, 0xE40B, 0xFFFF, + 0xFFFF, 0x0000, 0xFA76, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, + 0xFA6D, 0xFAB9, 0xFB04, 0xFB4F, 0xFB9A, 0xFBE5, 0xFC30, 0xFC7B, 0xFCC6, + 0xFD12, 0xFD5D, 0xFDA8, 0xFDF3, 0xFE3E, 0xFE89, 0xFED4, 0xFF1F, 0xFF6B, + 0xFFB6, 0x0002, 0xFFD0, 0xFF9F, 0xFF6E, 0xFF3D, 0xFF0C, 0xFEDB, 0xFEA9, + 0xFE78, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, + 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFEA0, 0xFEF8, + 0xFF50, 0xFFA9, 0x0002, 0xFFAE, 0xFF5A, 0xFF07, 0xFEB3, 0xFE60, 0xFE0C, + 0xFDB9, 0xFD65, 0xFD12, 0xFCBE, 0xFC6B, 0xFC17, 0xFBC4, 0xFB70, 0xFB1D, + 0xFAC9, 0xFA76, 0xFA22, 0xF398, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, + 0xF2DD, 0xF385, 0xF42D, 0xF4D6, 0xF57E, 0xF626, 0xF6CE, 0xF776, 0xF81E, + 0xF8C6, 0xF96F, 0xFA17, 0xFABF, 0xFB67, 0xFC0F, 0xFCB7, 0xFD5F, 0xFE07, + 0xFEB0, 0xFF58, 0x0001, 0xFEAF, 0xFD5E, 0xFC0D, 0xFABB, 0xF96A, 0xF819, + 0xF6C8, 0xF577, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, + 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF684, + 0xF8E3, 0xFB42, 0xFDA0, 0xFFFF, 0xFF44, 0xFE89, 0xFDCF, 0xFD14, 0xFC59, + 0xFB9E, 0xFAE4, 0xFA29, 0xF96E, 0xF8B3, 0xF7F8, 0xF73E, 0xF683, 0xF5C8, + 0xF50D, 0xF453, 0xF398, 0xF2DD, 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, + 0x41EB, 0x4143, 0x43BE, 0x4639, 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, + 0x551C, 0x5797, 0x5A12, 0x5C8D, 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, + 0x6B6F, 0x6DEB, 0x7066, 0x72E1, 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, + 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, 0xC13A, 0xC17F, 0xC1C4, 0xC208, 0xC24D, + 0xC292, 0xC2D7, 0xC2CA, 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, + 0xB7FF, 0xAD81, 0xA304, 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, + 0x799E, 0x7588, 0x7173, 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, + 0x54DE, 0x50C9, 0x4CB4, 0x489E, 0x4489, 0xFC4B, 0xFC4B, 0xFC4B, 0xFC4B, + 0xFC4B, 0xFC4B, 0xFC4B, 0xFC52, 0xFC65, 0xFC84, 0xFCAD, 0xFCDE, 0xFD16, + 0xFD54, 0xFD96, 0xFDDB, 0xFE21, 0xFE67, 0xFEAC, 0xFEEF, 0xFF2D, 0xFF65, + 0xFF97, 0xFFC0, 0xFFE0, 0xFFF4, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, + 0x0008, 0x000E, 0x0016, 0x0021, 0x002F, 0x0040, 0x0056, 0x006F, 0x008D, + 0x00B0, 0x00E6, 0x012D, 0x0176, 0x01AF, 0x01C6, 0x01C6, 0x01C6, 0x01C6, + 0x01B4, 0x0182, 0x0134, 0x00D0, 0x005B, 0xFFD8, 0xFF4E, 0xFEC2, 0xFE39, + 0xFDB7, 0xFD41, 0xFCDD, 0xFC8F, 0xFC5D, 0xFC4B, 0x0B53, 0x0B53, 0x0B53, + 0x0B53, 0x0B53, 0x0B53, 0x0B53, 0x0B3E, 0x0B01, 0x0AA3, 0x0A25, 0x098E, + 0x08E0, 0x0822, 0x0756, 0x0682, 0x05A9, 0x04D0, 0x03FC, 0x0330, 0x0271, + 0x01C4, 0x012D, 0x00AF, 0x0050, 0x0014, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, + 0xFFFB, 0xFFF7, 0xFFF1, 0xFFE9, 0xFFDE, 0xFFD0, 0xFFBE, 0xFFA9, 0xFF8F, + 0xFF70, 0xFF4D, 0xFEAF, 0xFD6F, 0xFBFD, 0xFACC, 0xFA4D, 0xFA4D, 0xFA4D, + 0xFA4D, 0xFA84, 0xFB21, 0xFC12, 0xFD49, 0xFEB6, 0x004B, 0x01F7, 0x03AA, + 0x0555, 0x06E9, 0x0856, 0x098E, 0x0A7F, 0x0B1B, 0x0B53, 0x02B5, 0x02B5, + 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, + 0x0664, 0x07CD, 0x095A, 0x0B02, 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, + 0x1532, 0x169A, 0x17D6, 0x18DB, 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, + 0x19ED, 0x19B4, 0x1979, 0x1940, 0x1911, 0x18F0, 0x18E3, 0x18E4, 0x18E6, + 0x18EC, 0x18F7, 0x1909, 0x1925, 0x194B, 0x197E, 0x19BF, 0x1A11, 0x1A75, + 0x1AED, 0x1B7A, 0x1C1F, 0x2047, 0x292E, 0x3394, 0x3C35, 0x3FCF, 0x3FCF, + 0x3FCF, 0x3FCF, 0x3F07, 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, + 0x1E35, 0x1837, 0x128C, 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x016A, + 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x0168, 0x015F, 0x0152, + 0x0141, 0x012C, 0x0115, 0x00FB, 0x00E0, 0x00C4, 0x00A7, 0x008B, 0x006F, + 0x0056, 0x003E, 0x0029, 0x0018, 0x000B, 0x0003, 0x0000, 0x001E, 0x006A, + 0x00D6, 0x014E, 0x01C3, 0x0231, 0x0292, 0x02E5, 0x0324, 0x034D, 0x035B, + 0x034E, 0x0329, 0x02EE, 0x02A2, 0x0246, 0x01DF, 0x016E, 0x00F7, 0x007D, + 0x0004, 0xFF8C, 0xFF1B, 0xFEB4, 0xFE58, 0xFE0B, 0xFDD1, 0xFDAC, 0xFD9F, + 0xFDA7, 0xFDC0, 0xFDE7, 0xFE19, 0xFE56, 0xFE9A, 0xFEE5, 0xFF34, 0xFF84, + 0xFFD5, 0x0024, 0x006F, 0x00B3, 0x00F0, 0x0123, 0x0149, 0x0162, 0x016A, + 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0276, 0x0268, + 0x0251, 0x0233, 0x020E, 0x01E5, 0x01B8, 0x0188, 0x0157, 0x0125, 0x00F3, + 0x00C3, 0x0096, 0x006D, 0x0049, 0x002A, 0x0014, 0x0005, 0xFFFF, 0x00E6, + 0x02E1, 0x04DD, 0x05C3, 0x0575, 0x04AB, 0x0397, 0x026A, 0x0156, 0x008C, + 0x003D, 0x004E, 0x007E, 0x00C8, 0x012A, 0x019E, 0x0223, 0x02B3, 0x034A, + 0x03E5, 0x0481, 0x0518, 0x05A8, 0x062C, 0x06A1, 0x0703, 0x074D, 0x077D, + 0x078E, 0x0782, 0x0761, 0x072D, 0x06EA, 0x0699, 0x063D, 0x05D9, 0x0570, + 0x0504, 0x0499, 0x0430, 0x03CC, 0x0370, 0x031F, 0x02DB, 0x02A8, 0x0287, + 0x027B, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, + 0xCC8A, 0xCB26, 0xC952, 0xC71E, 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, + 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, + 0xA929, 0xAE85, 0xB602, 0xBE6F, 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, + 0xE304, 0xE410, 0xE40B, 0xE3FE, 0xE3E8, 0xE3C7, 0xE39C, 0xE366, 0xE324, + 0xE2D6, 0xE27B, 0xE214, 0xE19E, 0xE11A, 0xE087, 0xDFE5, 0xDF33, 0xDE70, + 0xDD9D, 0xDCB8, 0xDBC1, 0xDABC, 0xD9AB, 0xD893, 0xD777, 0xD65A, 0xD540, + 0xD42C, 0xD322, 0xD225, 0xD139, 0xD061, 0xCFA1, 0xCEFB, 0xCE75, 0xCE11, + 0xCDD2, 0xCDBC, }; diff --git a/assets/anims/anim_49.inc.c.rej b/assets/anims/anim_49.inc.c.rej new file mode 100644 index 00000000..724663b5 --- /dev/null +++ b/assets/anims/anim_49.inc.c.rej @@ -0,0 +1,310 @@ +diff a/assets/anims/anim_49.inc.c b/assets/anims/anim_49.inc.c (rejected hunks) +@@ -1,9 +1,9 @@ + static const struct Animation anim_49[] = { +- 1, ++ 0, + 189, + 0, + 0, +- 0x10, ++ 0x48, + ANIMINDEX_NUMPARTS(anim_49_indices), + anim_49_values, + anim_49_indices, +@@ -12,110 +12,194 @@ static const struct Animation anim_49[] = { + + + static const u16 anim_49_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0010, 0x0002, 0x0001, 0x0000, 0x0001, 0x0012, 0x0001, 0x0000, +- 0x0010, 0x0259, 0x0010, 0x0269, 0x0010, 0x0279, +- 0x0010, 0x0229, 0x0010, 0x0239, 0x0010, 0x0249, +- 0x0010, 0x01F9, 0x0010, 0x0209, 0x0010, 0x0219, +- 0x0001, 0x01C6, 0x0001, 0x01C7, 0x0001, 0x01C8, +- 0x0010, 0x0053, 0x0010, 0x0063, 0x0010, 0x0073, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0043, +- 0x0010, 0x0013, 0x0010, 0x0023, 0x0010, 0x0033, +- 0x0001, 0x01B3, 0x0001, 0x01B4, 0x0001, 0x01B5, +- 0x0010, 0x00A3, 0x0010, 0x00B3, 0x0010, 0x00C3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0093, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0083, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x01B6, +- 0x0010, 0x0183, 0x0010, 0x0193, 0x0010, 0x01A3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0173, +- 0x0010, 0x0143, 0x0010, 0x0153, 0x0010, 0x0163, +- 0x0010, 0x01C9, 0x0010, 0x01D9, 0x0010, 0x01E9, +- 0x0010, 0x0113, 0x0010, 0x0123, 0x0010, 0x0133, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0103, +- 0x0010, 0x00D3, 0x0010, 0x00E3, 0x0010, 0x00F3, ++0x0001, 0x0000, 0x0047, 0x0001, 0x0001, 0x0048, 0x0001, 0x0049, 0x0001, ++ 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, 0x0001, 0x004E, ++ 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, 0x0051, 0x0001, 0x0052, 0x0001, ++ 0x0053, 0x0001, 0x0054, 0x0001, 0x0055, 0x0001, 0x0056, 0x0001, 0x0057, ++ 0x0001, 0x0058, 0x0001, 0x0059, 0x003B, 0x005A, 0x0001, 0x0095, 0x0001, ++ 0x0096, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, 0x0099, 0x0001, 0x009A, ++ 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, 0x0001, 0x009E, 0x0001, ++ 0x009F, 0x003B, 0x00A0, 0x0001, 0x00DB, 0x0001, 0x00DC, 0x0001, 0x00DD, ++ 0x0001, 0x00DE, 0x0001, 0x00DF, 0x0001, 0x00E0, 0x0001, 0x00E1, 0x0001, ++ 0x00E2, 0x0001, 0x00E3, 0x0047, 0x00E4, 0x0047, 0x012B, 0x0049, 0x0172, ++ 0x0049, 0x01BB, 0x0049, 0x0204, 0x0049, 0x024D, 0x0049, 0x0296, 0x0049, ++ 0x02DF, 0x0049, 0x0328, 0x0001, 0x0371, 0x0001, 0x0372, 0x0001, 0x0373, ++ 0x0049, 0x0374, 0x0049, 0x03BD, 0x0049, 0x0406, 0x0049, 0x044F, 0x0049, ++ 0x0498, 0x0049, 0x04E1, 0x0049, 0x052A, 0x0049, 0x0573, 0x0049, 0x05BC, + }; + + static const s16 anim_49_values[] = { +- 0x0000, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x3FFF, 0x1292, 0x124F, 0x1233, 0x1261, 0x128E, +- 0x1233, 0x115B, 0x1069, 0x0F61, 0x0E48, 0x0D22, 0x0BF1, 0x0ABB, +- 0x0984, 0x084E, 0x071F, 0x0362, 0x033F, 0x0331, 0x0349, 0x0361, +- 0x0331, 0x02BD, 0x023C, 0x01AF, 0x0119, 0x007C, 0xFFDB, 0xFF36, +- 0xFE8F, 0xFDEA, 0xFD48, 0xDC1E, 0xDC66, 0xDC83, 0xDC59, 0xDC2F, +- 0xDC83, 0xDD4E, 0xDE30, 0xDF27, 0xE02E, 0xE142, 0xE25E, 0xE380, +- 0xE4A4, 0xE5C6, 0xE6E1, 0xF163, 0xF0C6, 0xF085, 0xF0E4, 0xF142, +- 0xF085, 0xEEBE, 0xECC2, 0xEA99, 0xE84B, 0xE5E1, 0xE362, 0xE0D7, +- 0xDE49, 0xDBC0, 0xD943, 0xCD29, 0xCF2E, 0xD1AB, 0xD855, 0xE231, +- 0xE83D, 0xEA01, 0xEBB0, 0xED4B, 0xEED1, 0xF042, 0xF19D, 0xF2E3, +- 0xF413, 0xF52C, 0xF62E, 0xFE28, 0xFD52, 0xFB12, 0xF050, 0xDF34, +- 0xD552, 0xD3BA, 0xD26B, 0xD162, 0xD097, 0xD005, 0xCFA6, 0xCF75, +- 0xCF6B, 0xCF84, 0xCFB8, 0xFA4C, 0xF657, 0xF1CD, 0xE6D1, 0xD738, +- 0xCE99, 0xCD80, 0xCCB8, 0xCC3A, 0xCBFF, 0xCBFF, 0xCC33, 0xCC94, +- 0xCD1A, 0xCDC0, 0xCE7D, 0xD7F1, 0xD83D, 0xD85C, 0xD814, 0xD7CD, +- 0xD85C, 0xD9B4, 0xDB35, 0xDCD8, 0xDE96, 0xE06B, 0xE24E, 0xE43B, +- 0xE62A, 0xE816, 0xE9F8, 0xEBA5, 0xF17D, 0xF639, 0xF877, 0xF804, +- 0xF639, 0xF412, 0xF1A9, 0xEF0A, 0xEC3E, 0xE950, 0xE649, 0xE333, +- 0xE01A, 0xDD06, 0xDA01, 0xFBB1, 0x0748, 0x1209, 0x1B2B, 0x21E8, +- 0x257A, 0x26CD, 0x275F, 0x2742, 0x268C, 0x254D, 0x2399, 0x2183, +- 0x1F1E, 0x1C7D, 0x19B3, 0x2D0E, 0x2E43, 0x2F5A, 0x3042, 0x30EA, +- 0x313E, 0x3154, 0x3152, 0x3138, 0x310B, 0x30CC, 0x307E, 0x3023, +- 0x2FBF, 0x2F54, 0x2EE5, 0xB0BB, 0xBCD2, 0xC81F, 0xD1D8, 0xD933, +- 0xDD66, 0xDF68, 0xE0C2, 0xE183, 0xE1BA, 0xE176, 0xE0C8, 0xDFBE, +- 0xDE67, 0xDCD4, 0xDB13, 0xFF2D, 0xFF44, 0xFF57, 0xFF5F, 0xFF5B, +- 0xFF57, 0xFF4F, 0xFF38, 0xFF1A, 0xFEFA, 0xFEDE, 0xFECC, 0xFEC9, +- 0xFEDB, 0xFF09, 0xFF57, 0x023F, 0x023F, 0x0244, 0x0247, 0x0246, +- 0x0244, 0x0247, 0x024E, 0x0258, 0x0262, 0x026B, 0x0271, 0x0272, +- 0x026C, 0x025D, 0x0244, 0xB9FE, 0xBC1A, 0xBDAE, 0xBE39, 0xBDF3, +- 0xBDAE, 0xBDAD, 0xBDAB, 0xBDA8, 0xBDA6, 0xBDA3, 0xBDA2, 0xBDA1, +- 0xBDA3, 0xBDA7, 0xBDAE, 0x5EA1, 0x6088, 0x5EA1, 0x54C8, 0x4813, +- 0x3E71, 0x385C, 0x3260, 0x2C92, 0x2705, 0x21CB, 0x1CF8, 0x189F, +- 0x14D3, 0x11A7, 0x0F2E, 0x0B6D, 0x05F1, 0x0156, 0xFEA9, 0xFDDB, +- 0xFDAE, 0xFD6B, 0xFD32, 0xFD06, 0xFCE7, 0xFCD7, 0xFCDA, 0xFCF0, +- 0xFD1C, 0xFD60, 0xFDBD, 0x01E2, 0xFB93, 0xF64E, 0xF422, 0xF514, +- 0xF67E, 0xF745, 0xF815, 0xF8EE, 0xF9D2, 0xFAC1, 0xFBBD, 0xFCC5, +- 0xFDDC, 0xFF01, 0x0034, 0x9CFC, 0x951F, 0x8F7C, 0x915F, 0x998A, +- 0x9EFD, 0x9FEC, 0xA08F, 0xA0EC, 0xA109, 0xA0EA, 0xA096, 0xA012, +- 0x9F64, 0x9E92, 0x9DA0, 0x00B9, 0x00C9, 0x00D0, 0x00D0, 0x00D0, +- 0x00D0, 0x00D3, 0x00DD, 0x00E9, 0x00F7, 0x0103, 0x010A, 0x010C, +- 0x0104, 0x00F1, 0x00D0, 0xFF32, 0xFF36, 0xFF38, 0xFF38, 0xFF38, +- 0xFF38, 0xFF36, 0xFF32, 0xFF2C, 0xFF26, 0xFF21, 0xFF1D, 0xFF1D, +- 0xFF20, 0xFF29, 0xFF38, 0xC245, 0xC1D8, 0xC1AA, 0xC1AA, 0xC1AA, +- 0xC1AA, 0xC1B3, 0xC1C9, 0xC1E6, 0xC206, 0xC221, 0xC233, 0xC236, +- 0xC224, 0xC1F7, 0xC1AA, 0x1FFC, 0x1A51, 0x152F, 0x1307, 0x141B, +- 0x152F, 0x1506, 0x149C, 0x140E, 0x1377, 0x12F2, 0x129B, 0x128D, +- 0x12E4, 0x13BC, 0x152F, 0x0C64, 0x0D70, 0x0DB3, 0x099B, 0x020F, +- 0xFD99, 0xFD2B, 0xFD50, 0xFDE6, 0xFECE, 0xFFE8, 0x0111, 0x022D, +- 0x0319, 0x03B5, 0x03E1, 0x089E, 0x0707, 0x0536, 0x018E, 0xFCBA, +- 0xFA1A, 0xF9EF, 0xFA2A, 0xFAB4, 0xFB78, 0xFC61, 0xFD58, 0xFE49, +- 0xFF1E, 0xFFC1, 0x001C, 0xBD10, 0xC45E, 0xCA4D, 0xCAA9, 0xC545, +- 0xBFD1, 0xBC46, 0xB8CA, 0xB557, 0xB1E4, 0xAE6B, 0xAAE5, 0xA74B, +- 0xA394, 0x9FBB, 0x9BB7, 0x7FFF, 0x7FFF, 0x4171, 0xBF62, 0xBF60, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x7FFF, 0x7FFF, +- 0x4171, 0xFCC9, 0xFE90, 0x0000, 0x008B, 0x0045, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x054B, 0x025E, 0x0000, 0xFF1A, 0xFF8D, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xB893, 0xBC54, 0xBF5F, 0xC086, 0xBFF3, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0x1DE4, 0x1617, 0x0E5E, 0x07EF, 0x0238, 0xFF26, 0xFE45, +- 0xFDCC, 0xFDA8, 0xFDC7, 0xFE17, 0xFE85, 0xFEFF, 0xFF73, 0xFFCF, +- 0x0000, 0x0F0A, 0x07A4, 0x007F, 0x004E, 0x0256, 0x03A4, 0x038A, +- 0x0353, 0x0304, 0x02A2, 0x0233, 0x01BD, 0x0144, 0x00CE, 0x0060, +- 0x0000, 0xEC1C, 0xF7D2, 0x0570, 0x09F6, 0x0BBC, 0x0C88, 0x0D77, +- 0x0E6C, 0x0F5D, 0x103B, 0x10FA, 0x118D, 0x11E8, 0x11FE, 0x11C2, +- 0x1128, 0x0938, 0x0935, 0x093C, 0x096C, 0x0991, 0x093C, 0x0875, +- 0x0790, 0x0696, 0x058D, 0x0480, 0x0374, 0x0273, 0x0185, 0x00B1, +- 0x0000, 0xFA57, 0xF98D, 0xF8E4, 0xF883, 0xF884, 0xF8E4, 0xF97D, +- 0xFA2D, 0xFAEE, 0xFBBA, 0xFC89, 0xFD57, 0xFE1D, 0xFED5, 0xFF78, +- 0x0000, 0x283D, 0x2C61, 0x2FE8, 0x31E2, 0x31C2, 0x2FE8, 0x2D01, +- 0x2994, 0x25CA, 0x21CB, 0x1DBF, 0x19CE, 0x1620, 0x12DD, 0x102D, +- 0x0E38, 0x507D, 0x5567, 0x5AAF, 0x6428, 0x710E, 0x7A85, 0x7E7D, +- 0x802D, 0x80A3, 0x80EC, 0x813F, 0x8135, 0x80F0, 0x808F, 0x8034, +- 0x7FFF, 0x0507, 0x05D2, 0x0674, 0x0672, 0x0583, 0x03E6, 0x0145, +- 0xFDE3, 0xFADE, 0xF959, 0xF97B, 0xFA6F, 0xFBE2, 0xFD83, 0xFEFE, +- 0x0000, 0x2F0C, 0x2DB3, 0x2BAA, 0x275D, 0x1E94, 0x1041, 0xFBCF, +- 0xE349, 0xC990, 0xB184, 0x9A5F, 0x824A, 0x6A87, 0x5457, 0x40FF, +- 0x31BF, ++ 0x0000, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, ++ 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BB, ++ 0x00BA, 0x00BA, 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, ++ 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C1, 0x00C2, ++ 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, 0x00BF, ++ 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, 0x00BA, ++ 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, 0x00BB, 0x00BC, ++ 0x00BD, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C0, 0x00C1, 0x00C1, 0x00C2, ++ 0x0000, 0x0000, 0x3FFF, 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFC16, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0xE029, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, ++ 0x02DE, 0x025B, 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, ++ 0x0154, 0x01D8, 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, ++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, ++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0xF624, 0xFE1F, 0xF61D, 0xEF0B, ++ 0xFB82, 0xF92D, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0x1FD6, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, ++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, ++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, 0x01D8, 0x0154, ++ 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, 0x025B, 0x02DE, ++ 0x0362, 0x03E5, 0x0468, 0x09D1, 0x0214, 0xF623, 0x10DE, 0x04B1, 0xF95F, ++ 0xFFFF, 0xFFFF, 0x0000, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x015F, ++ 0x0107, 0x00AF, 0x0056, 0xFFFD, 0x0051, 0x00A5, 0x00F8, 0x014C, 0x019F, ++ 0x01F3, 0x0246, 0x029A, 0x02ED, 0x0341, 0x0394, 0x03E8, 0x043B, 0x048F, ++ 0x04E2, 0x0536, 0x0589, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, ++ 0x0592, 0x0546, 0x04FB, 0x04B0, 0x0465, 0x041A, 0x03CF, 0x0384, 0x0339, ++ 0x02ED, 0x02A2, 0x0257, 0x020C, 0x01C1, 0x0176, 0x012B, 0x00E0, 0x0094, ++ 0x0049, 0xFFFD, 0x002F, 0x0060, 0x0091, 0x00C2, 0x00F3, 0x0124, 0x0156, ++ 0x0187, 0x01B8, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, ++ 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x097B, 0x071C, ++ 0x04BD, 0x025F, 0x0000, 0x00BB, 0x0176, 0x0230, 0x02EB, 0x03A6, 0x0461, ++ 0x051B, 0x05D6, 0x0691, 0x074C, 0x0807, 0x08C1, 0x097C, 0x0A37, 0x0AF2, ++ 0x0BAC, 0x0C67, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0C7A, ++ 0x0BD2, 0x0B29, 0x0A81, 0x09D9, 0x0931, 0x0889, 0x07E1, 0x0739, 0x0690, ++ 0x05E8, 0x0540, 0x0498, 0x03F0, 0x0348, 0x02A0, 0x01F8, 0x014F, 0x00A7, ++ 0xFFFE, 0x0150, 0x02A1, 0x03F2, 0x0544, 0x0695, 0x07E6, 0x0937, 0x0A88, ++ 0x0BD9, 0xC17F, 0xC17F, 0xC1C4, 0xC208, 0xC24D, 0xC292, 0xC2D7, 0xC2CA, ++ 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, 0xB7FF, 0xAD81, 0xA304, ++ 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, 0x799E, 0x7588, 0x7173, ++ 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, 0x54DE, 0x50C9, 0x4CB4, ++ 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, 0x41EB, 0x4143, 0x43BE, 0x4639, ++ 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, 0x551C, 0x5797, 0x5A12, 0x5C8D, ++ 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, 0x6B6F, 0x6DEB, 0x7066, 0x72E1, ++ 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, ++ 0xC13A, 0xC17F, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF2, ++ 0xFFE8, 0xFFDC, 0xFFCA, 0xFFB4, 0xFF99, 0xFF77, 0xFF4F, 0xFF16, 0xFECD, ++ 0xFE86, 0xFE4F, 0xFE39, 0xFE39, 0xFE39, 0xFE39, 0xFE4B, 0xFE7D, 0xFECB, ++ 0xFF2F, 0xFFA4, 0x0027, 0x00B1, 0x013D, 0x01C6, 0x0248, 0x02BE, 0x0322, ++ 0x0370, 0x03A2, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03AD, ++ 0x039A, 0x037B, 0x0352, 0x0321, 0x02E9, 0x02AB, 0x0269, 0x0224, 0x01DE, ++ 0x0198, 0x0153, 0x0110, 0x00D2, 0x009A, 0x0068, 0x003F, 0x001F, 0x000B, ++ 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0007, ++ 0x000D, 0x0017, 0x0024, 0x0035, 0x004B, 0x0067, 0x0089, 0x00B2, 0x0154, ++ 0x0295, 0x0405, 0x0534, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x057B, 0x04DE, ++ 0x03ED, 0x02B6, 0x0149, 0xFFB4, 0xFE08, 0xFC55, 0xFAAA, 0xF916, 0xF7A9, ++ 0xF671, 0xF580, 0xF4E4, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, ++ 0xF4C1, 0xF4FE, 0xF55C, 0xF5DA, 0xF671, 0xF71F, 0xF7DD, 0xF8A9, 0xF97D, ++ 0xFA56, 0xFB2F, 0xFC03, 0xFCCF, 0xFD8E, 0xFE3B, 0xFED2, 0xFF50, 0xFFAF, ++ 0xFFEB, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0001, 0x18E6, 0x18E6, 0x18E6, 0x18EA, 0x18F3, ++ 0x1904, 0x1922, 0x194D, 0x198A, 0x19DA, 0x1A42, 0x1AC3, 0x1B61, 0x1C1F, ++ 0x2059, 0x2943, 0x33A2, 0x3C3A, 0x3FCF, 0x3FCF, 0x3FCF, 0x3FCF, 0x3F07, ++ 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, 0x1E35, 0x1837, 0x128C, ++ 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, ++ 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, 0x0664, 0x07CD, 0x095A, 0x0B02, ++ 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, 0x1532, 0x169A, 0x17D6, 0x18DB, ++ 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, 0x19ED, 0x19B4, 0x1979, 0x1940, ++ 0x1911, 0x18F0, 0x18E3, 0x18E5, 0x18E6, 0xFCB1, 0xFCB1, 0xFCC0, 0xFCE9, ++ 0xFD29, 0xFD7D, 0xFDE0, 0xFE51, 0xFECA, 0xFF48, 0xFFC8, 0x0048, 0x00C1, ++ 0x0131, 0x0195, 0x01E8, 0x0229, 0x0252, 0x0260, 0x025E, 0x0258, 0x024E, ++ 0x0241, 0x0232, 0x0220, 0x020E, 0x01FA, 0x01E5, 0x01D1, 0x01BD, 0x01AA, ++ 0x0199, 0x0189, 0x017D, 0x0173, 0x016D, 0x016A, 0x016A, 0x016A, 0x016A, ++ 0x016A, 0x016A, 0x016A, 0x016A, 0x0169, 0x0167, 0x0164, 0x015F, 0x0158, ++ 0x014F, 0x0144, 0x0136, 0x0124, 0x010F, 0x00F6, 0x00D9, 0x00B8, 0x0092, ++ 0x0067, 0x0036, 0xFFFF, 0xFFBE, 0xFF6F, 0xFF14, 0xFEB1, 0xFE49, 0xFDE1, ++ 0xFD7E, 0xFD28, 0xFCE2, 0xFCB5, 0xFCA4, 0xFCB1, 0xFFB1, 0xFFB1, 0xFF9E, ++ 0xFF6A, 0xFF18, 0xFEAD, 0xFE2E, 0xFD9F, 0xFD04, 0xFC63, 0xFBBF, 0xFB1E, ++ 0xFA84, 0xF9F5, 0xF975, 0xF90A, 0xF8B8, 0xF884, 0xF871, 0xF888, 0xF8CA, ++ 0xF930, 0xF9B6, 0xFA56, 0xFB0B, 0xFBD1, 0xFCA1, 0xFD76, 0xFE4B, 0xFF1B, ++ 0xFFE0, 0x0097, 0x0137, 0x01BD, 0x0223, 0x0264, 0x027B, 0x027B, 0x027B, ++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0279, 0x0275, 0x0270, 0x0267, ++ 0x025C, 0x024C, 0x0238, 0x021F, 0x0200, 0x01DB, 0x01B0, 0x017D, 0x0143, ++ 0x0100, 0x00B4, 0x005F, 0x0000, 0xFEE0, 0xFCEB, 0xFB10, 0xFA3C, 0xFA8A, ++ 0xFB54, 0xFC68, 0xFD95, 0xFEA9, 0xFF73, 0xFFC2, 0xFFB1, 0xE40B, 0xE40B, ++ 0xE406, 0xE3F5, 0xE3D9, 0xE3B2, 0xE37D, 0xE33D, 0xE2EF, 0xE293, 0xE22A, ++ 0xE1B2, 0xE12B, 0xE096, 0xDFF1, 0xDF3B, 0xDE76, 0xDD9F, 0xDCB8, 0xDBBF, ++ 0xDAB8, 0xD9A7, 0xD88E, 0xD771, 0xD654, 0xD53A, 0xD427, 0xD31D, 0xD221, ++ 0xD135, 0xD05E, 0xCF9E, 0xCEFA, 0xCE74, 0xCE10, 0xCDD2, 0xCDBC, 0xCDBC, ++ 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, 0xCC8A, 0xCB26, 0xC952, 0xC71E, ++ 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, ++ 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, 0xA929, 0xAE85, 0xB602, 0xBE6F, ++ 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, 0xE304, 0xE410, 0xE40B, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFA76, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, ++ 0xFA6D, 0xFAB9, 0xFB04, 0xFB4F, 0xFB9A, 0xFBE5, 0xFC30, 0xFC7B, 0xFCC6, ++ 0xFD12, 0xFD5D, 0xFDA8, 0xFDF3, 0xFE3E, 0xFE89, 0xFED4, 0xFF1F, 0xFF6B, ++ 0xFFB6, 0x0002, 0xFFD0, 0xFF9F, 0xFF6E, 0xFF3D, 0xFF0C, 0xFEDB, 0xFEA9, ++ 0xFE78, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, ++ 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFEA0, 0xFEF8, ++ 0xFF50, 0xFFA9, 0x0002, 0xFFAE, 0xFF5A, 0xFF07, 0xFEB3, 0xFE60, 0xFE0C, ++ 0xFDB9, 0xFD65, 0xFD12, 0xFCBE, 0xFC6B, 0xFC17, 0xFBC4, 0xFB70, 0xFB1D, ++ 0xFAC9, 0xFA76, 0xFA22, 0xF398, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, ++ 0xF2DD, 0xF385, 0xF42D, 0xF4D6, 0xF57E, 0xF626, 0xF6CE, 0xF776, 0xF81E, ++ 0xF8C6, 0xF96F, 0xFA17, 0xFABF, 0xFB67, 0xFC0F, 0xFCB7, 0xFD5F, 0xFE07, ++ 0xFEB0, 0xFF58, 0x0001, 0xFEAF, 0xFD5E, 0xFC0D, 0xFABB, 0xF96A, 0xF819, ++ 0xF6C8, 0xF577, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, ++ 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF684, ++ 0xF8E3, 0xFB42, 0xFDA0, 0xFFFF, 0xFF44, 0xFE89, 0xFDCF, 0xFD14, 0xFC59, ++ 0xFB9E, 0xFAE4, 0xFA29, 0xF96E, 0xF8B3, 0xF7F8, 0xF73E, 0xF683, 0xF5C8, ++ 0xF50D, 0xF453, 0xF398, 0xF2DD, 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, ++ 0x41EB, 0x4143, 0x43BE, 0x4639, 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, ++ 0x551C, 0x5797, 0x5A12, 0x5C8D, 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, ++ 0x6B6F, 0x6DEB, 0x7066, 0x72E1, 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, ++ 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, 0xC13A, 0xC17F, 0xC1C4, 0xC208, 0xC24D, ++ 0xC292, 0xC2D7, 0xC2CA, 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, ++ 0xB7FF, 0xAD81, 0xA304, 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, ++ 0x799E, 0x7588, 0x7173, 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, ++ 0x54DE, 0x50C9, 0x4CB4, 0x489E, 0x4489, 0xFC4B, 0xFC4B, 0xFC4B, 0xFC4B, ++ 0xFC4B, 0xFC4B, 0xFC4B, 0xFC52, 0xFC65, 0xFC84, 0xFCAD, 0xFCDE, 0xFD16, ++ 0xFD54, 0xFD96, 0xFDDB, 0xFE21, 0xFE67, 0xFEAC, 0xFEEF, 0xFF2D, 0xFF65, ++ 0xFF97, 0xFFC0, 0xFFE0, 0xFFF4, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, ++ 0x0008, 0x000E, 0x0016, 0x0021, 0x002F, 0x0040, 0x0056, 0x006F, 0x008D, ++ 0x00B0, 0x00E6, 0x012D, 0x0176, 0x01AF, 0x01C6, 0x01C6, 0x01C6, 0x01C6, ++ 0x01B4, 0x0182, 0x0134, 0x00D0, 0x005B, 0xFFD8, 0xFF4E, 0xFEC2, 0xFE39, ++ 0xFDB7, 0xFD41, 0xFCDD, 0xFC8F, 0xFC5D, 0xFC4B, 0x0B53, 0x0B53, 0x0B53, ++ 0x0B53, 0x0B53, 0x0B53, 0x0B53, 0x0B3E, 0x0B01, 0x0AA3, 0x0A25, 0x098E, ++ 0x08E0, 0x0822, 0x0756, 0x0682, 0x05A9, 0x04D0, 0x03FC, 0x0330, 0x0271, ++ 0x01C4, 0x012D, 0x00AF, 0x0050, 0x0014, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, ++ 0xFFFB, 0xFFF7, 0xFFF1, 0xFFE9, 0xFFDE, 0xFFD0, 0xFFBE, 0xFFA9, 0xFF8F, ++ 0xFF70, 0xFF4D, 0xFEAF, 0xFD6F, 0xFBFD, 0xFACC, 0xFA4D, 0xFA4D, 0xFA4D, ++ 0xFA4D, 0xFA84, 0xFB21, 0xFC12, 0xFD49, 0xFEB6, 0x004B, 0x01F7, 0x03AA, ++ 0x0555, 0x06E9, 0x0856, 0x098E, 0x0A7F, 0x0B1B, 0x0B53, 0x02B5, 0x02B5, ++ 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, ++ 0x0664, 0x07CD, 0x095A, 0x0B02, 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, ++ 0x1532, 0x169A, 0x17D6, 0x18DB, 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, ++ 0x19ED, 0x19B4, 0x1979, 0x1940, 0x1911, 0x18F0, 0x18E3, 0x18E4, 0x18E6, ++ 0x18EC, 0x18F7, 0x1909, 0x1925, 0x194B, 0x197E, 0x19BF, 0x1A11, 0x1A75, ++ 0x1AED, 0x1B7A, 0x1C1F, 0x2047, 0x292E, 0x3394, 0x3C35, 0x3FCF, 0x3FCF, ++ 0x3FCF, 0x3FCF, 0x3F07, 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, ++ 0x1E35, 0x1837, 0x128C, 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x016A, ++ 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x0168, 0x015F, 0x0152, ++ 0x0141, 0x012C, 0x0115, 0x00FB, 0x00E0, 0x00C4, 0x00A7, 0x008B, 0x006F, ++ 0x0056, 0x003E, 0x0029, 0x0018, 0x000B, 0x0003, 0x0000, 0x001E, 0x006A, ++ 0x00D6, 0x014E, 0x01C3, 0x0231, 0x0292, 0x02E5, 0x0324, 0x034D, 0x035B, ++ 0x034E, 0x0329, 0x02EE, 0x02A2, 0x0246, 0x01DF, 0x016E, 0x00F7, 0x007D, ++ 0x0004, 0xFF8C, 0xFF1B, 0xFEB4, 0xFE58, 0xFE0B, 0xFDD1, 0xFDAC, 0xFD9F, ++ 0xFDA7, 0xFDC0, 0xFDE7, 0xFE19, 0xFE56, 0xFE9A, 0xFEE5, 0xFF34, 0xFF84, ++ 0xFFD5, 0x0024, 0x006F, 0x00B3, 0x00F0, 0x0123, 0x0149, 0x0162, 0x016A, ++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0276, 0x0268, ++ 0x0251, 0x0233, 0x020E, 0x01E5, 0x01B8, 0x0188, 0x0157, 0x0125, 0x00F3, ++ 0x00C3, 0x0096, 0x006D, 0x0049, 0x002A, 0x0014, 0x0005, 0xFFFF, 0x00E6, ++ 0x02E1, 0x04DD, 0x05C3, 0x0575, 0x04AB, 0x0397, 0x026A, 0x0156, 0x008C, ++ 0x003D, 0x004E, 0x007E, 0x00C8, 0x012A, 0x019E, 0x0223, 0x02B3, 0x034A, ++ 0x03E5, 0x0481, 0x0518, 0x05A8, 0x062C, 0x06A1, 0x0703, 0x074D, 0x077D, ++ 0x078E, 0x0782, 0x0761, 0x072D, 0x06EA, 0x0699, 0x063D, 0x05D9, 0x0570, ++ 0x0504, 0x0499, 0x0430, 0x03CC, 0x0370, 0x031F, 0x02DB, 0x02A8, 0x0287, ++ 0x027B, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, ++ 0xCC8A, 0xCB26, 0xC952, 0xC71E, 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, ++ 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, ++ 0xA929, 0xAE85, 0xB602, 0xBE6F, 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, ++ 0xE304, 0xE410, 0xE40B, 0xE3FE, 0xE3E8, 0xE3C7, 0xE39C, 0xE366, 0xE324, ++ 0xE2D6, 0xE27B, 0xE214, 0xE19E, 0xE11A, 0xE087, 0xDFE5, 0xDF33, 0xDE70, ++ 0xDD9D, 0xDCB8, 0xDBC1, 0xDABC, 0xD9AB, 0xD893, 0xD777, 0xD65A, 0xD540, ++ 0xD42C, 0xD322, 0xD225, 0xD139, 0xD061, 0xCFA1, 0xCEFB, 0xCE75, 0xCE11, ++ 0xCDD2, 0xCDBC, + }; + diff --git a/assets/anims/anim_51.inc.c b/assets/anims/anim_51.inc.c index 386b7c31..36d53474 100644 --- a/assets/anims/anim_51.inc.c +++ b/assets/anims/anim_51.inc.c @@ -1,9 +1,9 @@ static const struct Animation anim_51[] = { - 1, - 189, - 0, - 0, - 0x0E, + 1, + 0, + 0, + 1, + 49, ANIMINDEX_NUMPARTS(anim_51_indices), anim_51_values, anim_51_indices, @@ -12,91 +12,299 @@ static const struct Animation anim_51[] = { static const u16 anim_51_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x01E7, - 0x000E, 0x01BD, 0x000E, 0x01CB, 0x000E, 0x01D9, - 0x000E, 0x0193, 0x000E, 0x01A1, 0x000E, 0x01AF, - 0x0001, 0x018F, 0x0001, 0x0190, 0x0001, 0x0191, - 0x000E, 0x003B, 0x000E, 0x0049, 0x000E, 0x0057, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x002D, - 0x000E, 0x0003, 0x000E, 0x0011, 0x000E, 0x001F, - 0x0001, 0x018B, 0x0001, 0x018C, 0x0001, 0x018D, - 0x000E, 0x009D, 0x000E, 0x00AB, 0x000E, 0x00B9, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x008F, - 0x000E, 0x0065, 0x000E, 0x0073, 0x000E, 0x0081, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x018E, - 0x000E, 0x0161, 0x000E, 0x016F, 0x000E, 0x017D, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x0153, - 0x000E, 0x0129, 0x000E, 0x0137, 0x000E, 0x0145, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0192, - 0x000E, 0x00FF, 0x000E, 0x010D, 0x000E, 0x011B, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x00F1, - 0x000E, 0x00C7, 0x000E, 0x00D5, 0x000E, 0x00E3, + 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0017, + 0x0004, 0x0001, 0x001B, 0x0001, 0x001C, 0x0001, 0x001D, 0x0017, 0x001E, + 0x0032, 0x0035, 0x0032, 0x0067, 0x0032, 0x0099, 0x0032, 0x00CB, 0x0032, + 0x00FD, 0x0032, 0x012F, 0x0032, 0x0161, 0x0032, 0x0193, 0x0032, 0x01C5, + 0x0025, 0x01F7, 0x0025, 0x021C, 0x0025, 0x0241, 0x0032, 0x0266, 0x0032, + 0x0298, 0x0032, 0x02CA, 0x0032, 0x02FC, 0x0031, 0x032E, 0x0032, 0x035F, + 0x0017, 0x0391, 0x0017, 0x03A8, 0x0017, 0x03BF, 0x0031, 0x03D6, 0x0032, + 0x0407, 0x0032, 0x0439, 0x0032, 0x046B, 0x0032, 0x049D, 0x0032, 0x04CF, + 0x0025, 0x0501, 0x0025, 0x0526, 0x0025, 0x054B, 0x0014, 0x0570, 0x0017, + 0x0584, 0x0016, 0x059B, 0x0032, 0x05B1, 0x002B, 0x05E3, 0x002F, 0x060E, + 0x0031, 0x063D, 0x0030, 0x066E, 0x0032, 0x069E, 0x0032, 0x06D0, 0x0031, + 0x0702, 0x0032, 0x0733, 0x0032, 0x0765, 0x0032, 0x0797, 0x0032, 0x07C9, + 0x0032, 0x07FB, 0x0032, 0x082D, 0x0032, 0x085F, 0x0032, 0x0891, 0x0032, + 0x08C3, 0x0032, 0x08F5, 0x0032, 0x0927, 0x0032, 0x0959, 0x0032, 0x098B, }; static const s16 anim_51_values[] = { - 0x0000, 0x00AA, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0007, 0x001A, 0x0035, 0x0054, 0x0072, 0x008D, 0x00A0, - 0x00A8, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF983, 0xF984, 0xF984, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED5E, 0xECE6, 0xEC3D, - 0xEB7B, 0xEAB9, 0xEA10, 0xE999, 0xE96B, 0xF385, 0xF22A, 0xEEEE, - 0xEB12, 0xE7D7, 0xE67B, 0xE533, 0xE1D0, 0xDD06, 0xD78A, 0xD20D, - 0xCD43, 0xC9E0, 0xC898, 0xD757, 0xD5F8, 0xD2B2, 0xCECA, 0xCB84, - 0xCA25, 0xCD31, 0xD538, 0xE092, 0xED96, 0xFA99, 0x05F2, 0x0DFA, - 0x1106, 0xEFC6, 0xED2E, 0xE700, 0xDFA0, 0xD972, 0xD6DA, 0xD787, - 0xD94F, 0xDBD3, 0xDEB6, 0xE199, 0xE41D, 0xE5E5, 0xE692, 0xCF2C, - 0xD401, 0xDF88, 0xED49, 0xF8D0, 0xFDA5, 0xFA7C, 0xF229, 0xE664, - 0xD8E6, 0xCB68, 0xBFA2, 0xB74F, 0xB427, 0x020B, 0x020B, 0x020B, - 0x020B, 0x020B, 0x020B, 0x01F5, 0x01B9, 0x0165, 0x0105, 0x00A5, - 0x0051, 0x0016, 0x0000, 0x03A9, 0x03A9, 0x03A9, 0x03A9, 0x03A9, - 0x03A9, 0x0381, 0x0317, 0x0280, 0x01D4, 0x0128, 0x0092, 0x0028, - 0x0000, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF521, - 0xF43B, 0xF2F6, 0xF182, 0xF00D, 0xEEC9, 0xEDE3, 0xED8C, 0xF3BE, - 0xF128, 0xEAFE, 0xE3A3, 0xDD79, 0xDAE3, 0xDA04, 0xD7B6, 0xD474, - 0xD0B9, 0xCCFD, 0xC9BB, 0xC76E, 0xC68E, 0x1AB9, 0x1E2D, 0x2669, - 0x303D, 0x3879, 0x3BED, 0x38D6, 0x30B1, 0x252E, 0x17FB, 0x0AC8, - 0xFF46, 0xF721, 0xF40A, 0x1465, 0x169A, 0x1BDF, 0x2228, 0x276D, - 0x29A2, 0x2926, 0x27E1, 0x2614, 0x2404, 0x21F4, 0x2028, 0x1EE2, - 0x1E67, 0xC825, 0xCCD7, 0xD80A, 0xE567, 0xF09A, 0xF54C, 0xF286, - 0xEB36, 0xE0DF, 0xD505, 0xC92A, 0xBED3, 0xB783, 0xB4BD, 0xFFC5, - 0xFFBF, 0xFFB0, 0xFFA0, 0xFF95, 0xFF94, 0xFF9F, 0xFFB1, 0xFFC7, - 0xFFDF, 0xFFF6, 0x0009, 0x0016, 0x001B, 0xFF39, 0xFF31, 0xFF23, - 0xFF1A, 0xFF25, 0xFF4F, 0xFF9F, 0x000D, 0x008D, 0x0112, 0x018F, - 0x01F8, 0x0241, 0x025B, 0xD5A9, 0xD6E5, 0xD9C7, 0xDD1C, 0xDFAC, - 0xE042, 0xDEBB, 0xDC0C, 0xD8A1, 0xD4E4, 0xD142, 0xCE24, 0xCBF7, - 0xCB25, 0x41BC, 0x3B93, 0x2D02, 0x1BE7, 0x0E1D, 0x0982, 0x0E7F, - 0x186D, 0x2591, 0x3432, 0x4294, 0x4EFD, 0x57B4, 0x5AFE, 0x0768, - 0x0737, 0x06B9, 0x0610, 0x055D, 0x04C0, 0x042B, 0x0380, 0x02CE, - 0x0220, 0x0183, 0x0103, 0x00AD, 0x008D, 0x0954, 0x087D, 0x0671, - 0x03E1, 0x0181, 0x0005, 0xFF59, 0xFEEB, 0xFEAF, 0xFE99, 0xFE9D, - 0xFEAE, 0xFEC2, 0xFECB, 0xA3E7, 0xA47F, 0xA5C2, 0xA6EA, 0xA72F, - 0xA5CB, 0xA26E, 0x9DAC, 0x9817, 0x9241, 0x8CB9, 0x8812, 0x84DE, - 0x83AC, 0x0000, 0xFFFF, 0xFFFB, 0xFFF8, 0xFFF9, 0x0000, 0x000F, - 0x0024, 0x003C, 0x0056, 0x006E, 0x0082, 0x0090, 0x0095, 0x0000, - 0x0003, 0x0009, 0x000D, 0x000C, 0x0000, 0xFFE7, 0xFFC4, 0xFF9C, - 0xFF72, 0xFF4A, 0xFF28, 0xFF11, 0xFF09, 0xBA5D, 0xBDB3, 0xC5BF, - 0xCF8C, 0xD825, 0xDC96, 0xDCF0, 0xDB95, 0xD908, 0xD5CD, 0xD265, - 0xCF54, 0xCD1C, 0xCC42, 0x4CBC, 0x45FF, 0x35FA, 0x22F8, 0x1345, - 0x0D2D, 0x10F9, 0x19A5, 0x2589, 0x32FC, 0x4056, 0x4BED, 0x5418, - 0x5730, 0xF894, 0xF924, 0xFA84, 0xFC3C, 0xFDD5, 0xFED6, 0xFF4B, - 0xFF98, 0xFFC3, 0xFFD4, 0xFFD4, 0xFFCB, 0xFFBF, 0xFFBA, 0xF606, - 0xF706, 0xF976, 0xFC7C, 0xFF3D, 0x00DF, 0x0174, 0x01AD, 0x01A0, - 0x0163, 0x010D, 0x00B3, 0x006E, 0x0051, 0x98E7, 0x9A74, 0x9E10, - 0xA22A, 0xA52F, 0xA590, 0xA313, 0x9EF3, 0x99CC, 0x9439, 0x8ED4, - 0x8A3A, 0x8705, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x7FFF, - 0x7FFF, 0x4171, 0xBF5F, 0x0081, 0x0081, 0x0082, 0x0081, 0x007E, - 0x0076, 0x0069, 0x0058, 0x0045, 0x0031, 0x001E, 0x000E, 0x0004, - 0x0000, 0x0214, 0x021B, 0x0228, 0x0233, 0x0230, 0x0216, 0x01E0, - 0x0195, 0x013D, 0x00E2, 0x008C, 0x0044, 0x0012, 0x0000, 0x035A, - 0x02CA, 0x01A0, 0x00A9, 0x00B3, 0x028A, 0x068D, 0x0C26, 0x12AD, - 0x197B, 0x1FE9, 0x2550, 0x2908, 0x2A6B, 0x0000, 0xFFFF, 0xFFFC, - 0xFFF7, 0xFFF4, 0xFFF3, 0xFFF3, 0xFFF5, 0xFFF7, 0xFFFA, 0xFFFC, - 0xFFFE, 0x0000, 0x0000, 0xFF53, 0xFF51, 0xFF4D, 0xFF4A, 0xFF4B, - 0xFF54, 0xFF65, 0xFF7E, 0xFF9A, 0xFFB7, 0xFFD3, 0xFFEB, 0xFFFB, - 0x0000, 0x0D24, 0x0D73, 0x0E34, 0x0F20, 0x0FF2, 0x1066, 0x107E, - 0x1073, 0x104D, 0x1019, 0x0FDE, 0x0FA8, 0x0F80, 0x0F71, 0x40A1, - 0x4036, 0x4048, 0x42D9, 0x49E7, 0x5772, 0x70F5, 0x8A78, 0xA3FB, - 0xBD7F, 0xD702, 0xF085, 0x0A08, 0x238B, + 0x0000, 0x00BF, 0x0000, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, + 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3F82, 0x3E6F, 0x3D5B, 0x3CDE, + 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, + 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, + 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3CD0, 0x3B53, 0x39D6, 0x3929, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFF5, 0xFFDE, 0xFFC2, 0xFFAC, 0xFFA2, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, + 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, + 0xFFA2, 0xFFA5, 0xFFAB, 0xFFB2, 0xFFBA, 0xFFC3, 0xFFCC, 0xFFD5, 0xFFDD, + 0xFFE4, 0xFFE9, 0xFFED, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFF96, 0xFF4E, 0xFF2D, + 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, + 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF41, 0xFF33, 0xFF1E, 0xFF03, + 0xFEE4, 0xFEC2, 0xFE9F, 0xFE7E, 0xFE5F, 0xFE43, 0xFE2E, 0xFE20, 0xFE1B, + 0x0000, 0x0006, 0x0015, 0x002E, 0x004E, 0x0074, 0x00A0, 0x00D0, 0x0102, + 0x0135, 0x0168, 0x019A, 0x01C9, 0x01F5, 0x021C, 0x023C, 0x0254, 0x0264, + 0x026A, 0x00DD, 0xFD3E, 0xF919, 0xF5FA, 0xF4C0, 0xF493, 0xF547, 0xF5FA, + 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, + 0xF493, 0xF4D7, 0xF595, 0xF6B6, 0xF824, 0xF9C9, 0xFB8F, 0xFD61, 0xFF27, + 0x00CD, 0x023B, 0x035C, 0x0419, 0x045E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFF6, 0xFFDE, 0xFFB5, + 0xFF81, 0xFF4A, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF59, 0xFF81, + 0xFF59, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF33, 0xFF3A, 0xFF46, + 0xFF54, 0xFF64, 0xFF76, 0xFF88, 0xFF9A, 0xFFAA, 0xFFB8, 0xFFC4, 0xFFCB, + 0xFFCE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0x0000, 0x0006, 0x001C, 0x0045, 0x0083, 0x00CC, 0x00F0, 0x00BA, + 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, + 0x00BA, 0x00F0, 0x00EC, 0x00E0, 0x00CE, 0x00B6, 0x009B, 0x007E, 0x0061, + 0x0044, 0x0029, 0x0012, 0xFFFE, 0xFFF2, 0xFFEE, 0x2081, 0x2091, 0x20BC, + 0x20FB, 0x2146, 0x2194, 0x21DF, 0x221E, 0x2249, 0x2259, 0x2259, 0x2259, + 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x21DB, 0x1E64, 0x15A3, + 0x0A36, 0x0088, 0xFBDC, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFDB2, + 0x0088, 0xFDB2, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFB13, 0xFBAA, + 0xFC92, 0xFDB6, 0xFF08, 0x0074, 0x01E9, 0x0354, 0x04A5, 0x05CA, 0x06B1, + 0x0749, 0x077F, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, + 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, + 0xFDA3, 0xFDA3, 0xFE16, 0x0079, 0x058F, 0x0AF2, 0x0D73, 0x0D73, 0x0D73, + 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, + 0x0D73, 0x0D73, 0x0D73, 0x0DB2, 0x0E62, 0x0F6E, 0x10C1, 0x1248, 0x13EE, + 0x159D, 0x1743, 0x18C9, 0x1A1D, 0x1B29, 0x1BD8, 0x1C17, 0xAE9E, 0xAE9E, + 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, + 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAA8E, 0xA67F, + 0xB684, 0xD443, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, + 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE45E, + 0xE49C, 0xE4FA, 0xE572, 0xE5FD, 0xE692, 0xE72A, 0xE7BF, 0xE849, 0xE8C1, + 0xE920, 0xE95E, 0xE975, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, + 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, + 0xC519, 0xC519, 0xC519, 0xC4B5, 0xC28D, 0xBDE4, 0xB8F0, 0xB6A2, 0xB6A2, + 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, + 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB679, 0xB605, 0xB556, 0xB477, 0xB376, + 0xB262, 0xB146, 0xB032, 0xAF31, 0xAE52, 0xADA2, 0xAD2F, 0xAD06, 0xFFFF, + 0xFFF2, 0xFFD0, 0xFF9F, 0xFF65, 0xFF27, 0xFEED, 0xFEBC, 0xFE9A, 0xFE8D, + 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xF73B, + 0xEF76, 0xEF08, 0xEEFF, 0xEE91, 0xECE5, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, + 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, + 0xE029, 0xDFC7, 0xDEC1, 0xDD47, 0xDB86, 0xD9AE, 0xD7ED, 0xD672, 0xD56D, + 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, + 0xD6CC, 0xDD3F, 0xE8FA, 0xF5C3, 0xFE2F, 0x00C5, 0x0123, 0xFFA9, 0xFE2F, + 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, + 0x0123, 0x0468, 0x0478, 0x04A1, 0x04DD, 0x0524, 0x056F, 0x05B6, 0x05F2, + 0x061C, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, + 0x062B, 0x0D45, 0x1460, 0x0C5A, 0xFD72, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, + 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, + 0xF5AB, 0xF5EA, 0xF7D3, 0xF7DB, 0xF7F0, 0xF80E, 0xF831, 0xF857, 0xF87A, + 0xF898, 0xF8AD, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, + 0xF8B5, 0xF8B5, 0xF996, 0xFFC0, 0x0F3F, 0x2278, 0x303E, 0x34E7, 0x3592, + 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, + 0x303E, 0x32E8, 0x3592, 0x350B, 0x3392, 0x3155, 0x2E7E, 0x2B3A, 0x27B4, + 0x2418, 0x2092, 0x1D4E, 0x1A77, 0x183A, 0x16C2, 0x163B, 0xF504, 0xF4E5, + 0xF492, 0xF419, 0xF38A, 0xF2F4, 0xF266, 0xF1ED, 0xF19A, 0xF17B, 0xF17B, + 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF166, 0xF0D4, + 0xE9C6, 0xDDB4, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD82A, 0xD906, + 0xD82A, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD801, 0xD906, 0xD99F, + 0xDA21, 0xDA8D, 0xDAE6, 0xDB2C, 0xDB64, 0xDB8D, 0xDBAB, 0xDBBF, 0xDBCB, + 0xDBD1, 0xDBD3, 0xDBD4, 0xF662, 0xF662, 0xF663, 0xF663, 0xF664, 0xF664, + 0xF665, 0xF665, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, + 0xF666, 0xF666, 0xF666, 0xF5DD, 0xF220, 0xE88A, 0xDBEE, 0xD149, 0xCC47, + 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, + 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCBC6, 0xCD32, 0xCF5D, 0xD21D, 0xD546, + 0xD8B0, 0xDC2E, 0xDF97, 0xE2C1, 0xE581, 0xE7AC, 0xE918, 0xE99B, 0xEF0B, + 0xEF2F, 0xEF92, 0xF021, 0xF0CA, 0xF17C, 0xF225, 0xF2B4, 0xF317, 0xF33C, + 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF34A, + 0xF3AB, 0xF4AB, 0xF614, 0xF77A, 0xF87B, 0xF8DB, 0xF82B, 0xF77A, 0xF82B, + 0xF8DB, 0xF82B, 0xF77A, 0xF82B, 0xF8DB, 0xF82B, 0xF77A, 0xF7E5, 0xF8DB, + 0xF9FC, 0xFB2E, 0xFC6B, 0xFDAC, 0xFEE9, 0x001D, 0x013E, 0x0246, 0x032E, + 0x03EF, 0x0481, 0x04DE, 0x04FF, 0xFB82, 0xFB38, 0xFA6F, 0xF94D, 0xF7F5, + 0xF68B, 0xF533, 0xF411, 0xF348, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, + 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2E4, 0xF233, 0xF06D, 0xEE09, 0xEBDC, + 0xEA93, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, + 0xEA2E, 0xEB05, 0xEBDC, 0xEB1C, 0xEA2E, 0xE9D8, 0xE98F, 0xE952, 0xE920, + 0xE8F8, 0xE8D9, 0xE8C2, 0xE8B1, 0xE8A6, 0xE89F, 0xE89B, 0xE89A, 0xF92D, + 0xF916, 0xF8D8, 0xF87F, 0xF815, 0xF7A5, 0xF73B, 0xF6E2, 0xF6A4, 0xF68D, + 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF66D, + 0xF58D, 0xF347, 0xF01F, 0xED17, 0xEB0E, 0xEA56, 0xEBB7, 0xED17, 0xEBB7, + 0xEA56, 0xEBB7, 0xED17, 0xEBB7, 0xEA56, 0xEBB7, 0xED17, 0xEC34, 0xEA56, + 0xE877, 0xE6C9, 0xE54A, 0xE3F8, 0xE2D1, 0xE1D4, 0xE0FE, 0xE04E, 0xDFC2, + 0xDF58, 0xDF0F, 0xDEE4, 0xDED6, 0xFFFE, 0x0003, 0x000E, 0x001E, 0x0031, + 0x0045, 0x0059, 0x0069, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x009E, 0x01A7, 0x0418, 0x06C7, 0x080A, + 0x0001, 0x007A, 0x01BE, 0x0393, 0x05C0, 0x0809, 0x0A35, 0x0C0B, 0x0D4F, + 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, + 0x0CCC, 0x05E7, 0xF59C, 0xE3C0, 0xDB58, 0xC170, 0xC171, 0xC173, 0xC176, + 0xC179, 0xC17C, 0xC180, 0xC182, 0xC184, 0xC185, 0xC185, 0xC185, 0xC185, + 0xC185, 0xC185, 0xC185, 0xC185, 0xC185, 0xC12B, 0xBEB7, 0xB8EA, 0xB28E, + 0xAF90, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, + 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, + 0xFCE7, 0xFD58, 0x006D, 0x0AA8, 0x1A78, 0x2961, 0xB22F, 0xB4D8, 0x2F1D, + 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, + 0x2EDE, 0xB4D8, 0xB5C1, 0xB686, 0xB72A, 0xB7B1, 0xB81D, 0xB871, 0xB8B0, + 0xB8DD, 0xB8FB, 0xB90E, 0xB917, 0xB91B, 0x73C6, 0x73C6, 0x73C6, 0x73C6, + 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, + 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x733A, 0x6FCF, 0x67E6, 0x5E12, + 0x55EF, 0x2DDF, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x53A5, 0x55EF, + 0x53A5, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x2E93, 0x2E65, 0x2E1E, + 0x2DC5, 0x2D5F, 0x2CF0, 0x2C7F, 0x2C10, 0x2BAA, 0x2B51, 0x2B0A, 0x2ADC, + 0x2ACC, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, + 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, + 0xFE97, 0xFD2B, 0xFBBF, 0x08C8, 0x22E8, 0x36AF, 0xBC96, 0xBD6E, 0x3A0E, + 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, + 0x397A, 0xBD6E, 0xBF91, 0xC161, 0xC2E3, 0xC41F, 0xC51D, 0xC5E2, 0xC676, + 0xC6E1, 0xC728, 0xC753, 0xC769, 0xC771, 0xC772, 0x09D1, 0x09C3, 0x099E, + 0x0969, 0x092A, 0x08E8, 0x08A9, 0x0874, 0x084F, 0x0842, 0x0842, 0x0842, + 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x07D8, 0x04F7, 0xFD25, + 0xF250, 0xE88F, 0xE318, 0xE18D, 0xE50E, 0xE88F, 0xE50E, 0xE18D, 0xE50E, + 0xE88F, 0xE50E, 0xE18D, 0xE50E, 0xE88F, 0xE564, 0xE18D, 0xE04F, 0xDF42, + 0xDE62, 0xDDAA, 0xDD17, 0xDCA5, 0xDC4F, 0xDC11, 0xDBE8, 0xDBCF, 0xDBC2, + 0xDBBD, 0xDBBC, 0x0214, 0x024C, 0x02E3, 0x03BD, 0x04C0, 0x05D0, 0x06D3, + 0x07AD, 0x0844, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, + 0x087C, 0x087C, 0x0E32, 0x195D, 0x2282, 0x2811, 0x29F1, 0x29E7, 0x29DD, + 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, + 0x29F1, 0x29EE, 0x29DD, 0x298F, 0x28E8, 0x27FA, 0x26D4, 0x2587, 0x2424, + 0x22BB, 0x215C, 0x2018, 0x1F00, 0x1E23, 0x1D93, 0x1D5F, 0xF623, 0xF626, + 0xF62D, 0xF637, 0xF643, 0xF64F, 0xF65B, 0xF666, 0xF66C, 0xF66F, 0xF66F, + 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF7C5, 0xF91A, + 0xF2FE, 0xE60F, 0xDA65, 0xD589, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, + 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD507, + 0xD58E, 0xD65C, 0xD760, 0xD88C, 0xD9CF, 0xDB1A, 0xDC5D, 0xDD89, 0xDE8D, + 0xDF5B, 0xDFE2, 0xE012, 0x10DE, 0x1076, 0x0F62, 0x0DD1, 0x0BF6, 0x0A02, + 0x0827, 0x0697, 0x0582, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, + 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x03F0, + 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, + 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x04B1, 0x0560, 0x0735, 0x09DC, 0x0D01, + 0x1051, 0x1376, 0x161D, 0x17F2, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, + 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, + 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, + 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0xF95F, 0xF916, 0xF853, 0xF737, + 0xF5E8, 0xF487, 0xF337, 0xF21C, 0xF158, 0xF10F, 0xF10F, 0xF10F, 0xF10F, + 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, + 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, + 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0051, 0x003F, 0x001C, 0xFFFE, 0xFFF4, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, + 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFFC, 0xFFF2, + 0xFFC7, 0xFF6D, 0xFEEF, 0xFE53, 0xFDA3, 0xFCE8, 0xFC2A, 0xFB71, 0xFAC7, + 0xFA34, 0xF9C0, 0xF974, 0xF959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x001D, 0x001C, 0x0015, 0x0001, + 0xFF55, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, + 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFEB7, 0xFEB6, 0xFEB6, 0xFEB5, + 0xFEB5, 0xFEB4, 0x217F, 0x21B4, 0x224A, 0x2336, 0x246C, 0x25DE, 0x2781, + 0x2949, 0x2B29, 0x2D15, 0x2F01, 0x30E2, 0x32A9, 0x344C, 0x35BF, 0x36F4, + 0x37E0, 0x3876, 0x38AB, 0x26D2, 0x3B1B, 0x62F8, 0x7EF0, 0x85AA, 0x86A0, + 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, + 0x7EF0, 0x82C5, 0x86A0, 0x86AB, 0x86B5, 0x86BD, 0x86C3, 0x86C9, 0x86CD, + 0x86D0, 0x86D2, 0x86D4, 0x86D5, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, + 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, + 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, + 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, + 0xF7B1, 0xF7A8, 0xF79E, 0xF7A4, 0xF7B1, 0xF7BD, 0xF7C9, 0xF7D3, 0xF7DC, + 0xF7E4, 0xF7EB, 0xF7F1, 0xF7F6, 0xF7FA, 0xF7FD, 0xF7FF, 0xF800, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00AB, + 0x00C4, 0x00AB, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00A8, 0x00C4, + 0x00CE, 0x00D7, 0x00DE, 0x00E4, 0x00E9, 0x00ED, 0x00F0, 0x00F2, 0x00F3, + 0x00F4, 0x00F5, 0x3F9E, 0x3F9E, 0x3F9D, 0x3F9C, 0x3F9A, 0x3F97, 0x3F92, + 0x3F8B, 0x3F82, 0x3F76, 0x3F67, 0x3F55, 0x3F3F, 0x3F26, 0x3F08, 0x3EE5, + 0x3EBE, 0x3E91, 0x3E5F, 0x37C4, 0x2981, 0x1B4C, 0x14D9, 0x1634, 0x178F, + 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, + 0x14D9, 0x15F2, 0x178F, 0x1884, 0x1953, 0x19FF, 0x1A8D, 0x1AFE, 0x1B56, + 0x1B98, 0x1BC7, 0x1BE7, 0x1BFB, 0x1C04, 0x1C08, 0x1C09, 0xF7D1, 0xF7ED, + 0xF83E, 0xF8BE, 0xF965, 0xFA2D, 0xFB0F, 0xFC05, 0xFD09, 0xFE13, 0xFF1D, + 0x0021, 0x0117, 0x01F9, 0x02C1, 0x0368, 0x03E8, 0x0439, 0x0456, 0x01FD, + 0x029C, 0x03C2, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0445, 0x042A, + 0x0445, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0457, 0x042A, 0x03C3, + 0x0326, 0x025D, 0x0174, 0x0076, 0xFF6C, 0xFE64, 0xFD66, 0xFC7E, 0xFBB7, + 0xFB1C, 0xFAB6, 0xFA92, 0x08F7, 0x08F7, 0x08F4, 0x08EC, 0x08DD, 0x08C5, + 0x08A0, 0x086C, 0x0828, 0x07D0, 0x0762, 0x06DC, 0x063B, 0x057D, 0x049F, + 0x039F, 0x027B, 0x012F, 0xFFBA, 0xF95E, 0xFA68, 0xFC9D, 0xFEA3, 0xFF80, + 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, + 0xFF22, 0xFEA3, 0xFF16, 0xFFA0, 0xFFC9, 0xFFEB, 0x0009, 0x0021, 0x0034, + 0x0043, 0x004E, 0x0056, 0x005B, 0x005E, 0x0060, 0x0061, 0xBE26, 0xBE28, + 0xBE3A, 0xBE6B, 0xBECB, 0xBF69, 0xC054, 0xC19C, 0xC351, 0xC582, 0xC83F, + 0xCB97, 0xCF99, 0xD455, 0xD9DC, 0xE03B, 0xE783, 0xEFC3, 0xF90B, 0x1CC6, + 0x16F9, 0x0A64, 0xFE41, 0xF81C, 0xF6B7, 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, + 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, 0xFA7C, 0xFE41, 0xFBE9, 0xF6B7, 0xF0F7, + 0xEB32, 0xE57D, 0xDFED, 0xDA98, 0xD593, 0xD0F4, 0xCCD0, 0xC93C, 0xC64F, + 0xC41D, 0xC2BC, 0xC241, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFE7, 0xFFA6, 0xFF43, 0xFEC6, 0xFE35, + 0xFD99, 0xFCF9, 0xFC5E, 0xFBCD, 0xFB4F, 0xFAEC, 0xFAAB, 0xFA94, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0xFFDC, 0xFF77, 0xFEDE, 0xFE1D, 0xFD3E, 0xFC4D, 0xFB57, 0xFA66, 0xF987, + 0xF8C6, 0xF82D, 0xF7C8, 0xF7A4, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, + 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, + 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE705, 0xE68E, 0xE618, 0xE5E3, + 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, + 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE56F, 0xE42E, 0xE243, 0xDFD6, + 0xDD0B, 0xDA08, 0xD6F3, 0xD3F0, 0xD125, 0xCEB8, 0xCCCE, 0xCB8C, 0xCB19, + 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, + 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, + 0xFCCC, 0xFD43, 0xFDBB, 0xFE0F, 0xFE77, 0xFF09, 0xFF5A, 0xFEE8, 0xFE77, + 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, + 0xFF5A, 0xFF57, 0xFF4F, 0xFF44, 0xFF35, 0xFF24, 0xFF12, 0xFF00, 0xFEEE, + 0xFEDD, 0xFECE, 0xFEC3, 0xFEBB, 0xFEB9, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, + 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, + 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xFA42, 0xFBA6, 0xFD62, + 0xFF23, 0x008D, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0023, 0xFF23, + 0x0023, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0119, 0x00FE, 0x00D4, + 0x009F, 0x0062, 0x0021, 0xFFDD, 0xFF9B, 0xFF5E, 0xFF2A, 0xFF00, 0xFEE5, + 0xFEDB, 0x398E, 0x39C5, 0x3A61, 0x3B57, 0x3C98, 0x3E18, 0x3FCC, 0x41A5, + 0x4398, 0x4597, 0x4797, 0x4989, 0x4B63, 0x4D16, 0x4E97, 0x4FD8, 0x50CD, + 0x5169, 0x51A0, 0x43AB, 0x5D15, 0x8DE0, 0xACDC, 0xB1BC, 0xB26E, 0xAFA5, + 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, + 0xAFA5, 0xB26E, 0xB236, 0xB199, 0xB0AB, 0xAF7C, 0xAE21, 0xACA9, 0xAB29, + 0xA9B2, 0xA856, 0xA727, 0xA639, 0xA59C, 0xA564, 0xFFC9, 0xFFC9, 0xFFCA, + 0xFFCB, 0xFFCC, 0xFFCE, 0xFFD0, 0xFFD2, 0xFFD4, 0xFFD6, 0xFFD9, 0xFFDB, + 0xFFDD, 0xFFDF, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE4, 0xFFDC, 0xFFCB, + 0xFFBB, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, + 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFBB, 0xFFD0, 0xFFEB, 0x000A, + 0x002C, 0x004F, 0x0074, 0x0097, 0x00BA, 0x00DA, 0x00F7, 0x010F, 0x0121, + 0x012D, 0x0131, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9C, 0xFF9D, + 0xFF9E, 0xFF9F, 0xFFA1, 0xFFA3, 0xFFA6, 0xFFA9, 0xFFAD, 0xFFB2, 0xFFB7, + 0xFFBD, 0xFFC4, 0xFFCB, 0x00ED, 0x035D, 0x05CD, 0x06EB, 0x06EE, 0x06EE, + 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, + 0x06EB, 0x06EC, 0x06EE, 0x06FC, 0x0719, 0x0743, 0x0777, 0x07B1, 0x07F0, + 0x0830, 0x086E, 0x08A7, 0x08D9, 0x0900, 0x0919, 0x0922, 0x427D, 0x427D, + 0x427C, 0x427B, 0x4279, 0x4276, 0x4271, 0x426A, 0x4261, 0x4256, 0x4247, + 0x4235, 0x4220, 0x4206, 0x41E9, 0x41C7, 0x41A0, 0x4174, 0x4143, 0x3A86, + 0x2BF7, 0x1D75, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x17E3, 0x18E6, + 0x17E3, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x1780, 0x18E6, 0x1A77, + 0x1C10, 0x1DA9, 0x1F3C, 0x20C1, 0x2232, 0x2388, 0x24BC, 0x25C8, 0x26A4, + 0x274A, 0x27B2, 0x27D6, 0x02A5, 0x02A7, 0x02AE, 0x02B8, 0x02C6, 0x02D6, + 0x02E9, 0x02FD, 0x0312, 0x0327, 0x033D, 0x0352, 0x0366, 0x0379, 0x0389, + 0x0396, 0x03A1, 0x03A7, 0x03AA, 0xFF8D, 0x003F, 0x01C4, 0x034B, 0x042B, + 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, + 0x03DB, 0x034B, 0x03A9, 0x046B, 0x0525, 0x05C2, 0x0646, 0x06B2, 0x0709, + 0x074D, 0x0780, 0x07A5, 0x07BF, 0x07CE, 0x07D6, 0x07D9, 0x07DA, 0x0390, + 0x0390, 0x038E, 0x0389, 0x0380, 0x0370, 0x0358, 0x0337, 0x030B, 0x02D3, + 0x028D, 0x0237, 0x01D0, 0x0157, 0x00C9, 0x0026, 0xFF6A, 0xFE96, 0xFDA8, + 0xF9CD, 0xFA8A, 0xFBF2, 0xFCCF, 0xFCEA, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, + 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCD5, 0xFCEE, + 0xFD20, 0xFD6A, 0xFDC7, 0xFE32, 0xFEA5, 0xFF1D, 0xFF95, 0x0008, 0x0070, + 0x00C9, 0x010F, 0x013C, 0x014C, 0xCAC9, 0xCACB, 0xCADA, 0xCB02, 0xCB51, + 0xCBD3, 0xCC94, 0xCDA2, 0xCF0A, 0xD0D8, 0xD318, 0xD5D9, 0xD925, 0xDD0B, + 0xE197, 0xE6D6, 0xECD4, 0xF39E, 0xFB42, 0x1F5A, 0x19BA, 0x0D41, 0x0088, + 0xF8E3, 0xF692, 0xFB8C, 0x0088, 0xFB8C, 0xF692, 0xFB8C, 0x0088, 0xFB8C, + 0xF692, 0xFB8C, 0x0088, 0xFD52, 0xF692, 0xEFDD, 0xE9E4, 0xE49E, 0xE002, + 0xDC07, 0xD8A5, 0xD5D3, 0xD388, 0xD1BC, 0xD065, 0xCF7B, 0xCEF5, 0xCECA, }; diff --git a/assets/anims/anim_51.inc.c.rej b/assets/anims/anim_51.inc.c.rej new file mode 100644 index 00000000..58a5fc29 --- /dev/null +++ b/assets/anims/anim_51.inc.c.rej @@ -0,0 +1,399 @@ +diff a/assets/anims/anim_51.inc.c b/assets/anims/anim_51.inc.c (rejected hunks) +@@ -1,9 +1,9 @@ + static const struct Animation anim_51[] = { +- 1, +- 189, +- 0, +- 0, +- 0x0E, ++ 1, ++ 0, ++ 0, ++ 1, ++ 49, + ANIMINDEX_NUMPARTS(anim_51_indices), + anim_51_values, + anim_51_indices, +@@ -12,91 +12,299 @@ static const struct Animation anim_51[] = { + + + static const u16 anim_51_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x01E7, +- 0x000E, 0x01BD, 0x000E, 0x01CB, 0x000E, 0x01D9, +- 0x000E, 0x0193, 0x000E, 0x01A1, 0x000E, 0x01AF, +- 0x0001, 0x018F, 0x0001, 0x0190, 0x0001, 0x0191, +- 0x000E, 0x003B, 0x000E, 0x0049, 0x000E, 0x0057, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x002D, +- 0x000E, 0x0003, 0x000E, 0x0011, 0x000E, 0x001F, +- 0x0001, 0x018B, 0x0001, 0x018C, 0x0001, 0x018D, +- 0x000E, 0x009D, 0x000E, 0x00AB, 0x000E, 0x00B9, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x008F, +- 0x000E, 0x0065, 0x000E, 0x0073, 0x000E, 0x0081, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x018E, +- 0x000E, 0x0161, 0x000E, 0x016F, 0x000E, 0x017D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x0153, +- 0x000E, 0x0129, 0x000E, 0x0137, 0x000E, 0x0145, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0192, +- 0x000E, 0x00FF, 0x000E, 0x010D, 0x000E, 0x011B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x00F1, +- 0x000E, 0x00C7, 0x000E, 0x00D5, 0x000E, 0x00E3, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0017, ++ 0x0004, 0x0001, 0x001B, 0x0001, 0x001C, 0x0001, 0x001D, 0x0017, 0x001E, ++ 0x0032, 0x0035, 0x0032, 0x0067, 0x0032, 0x0099, 0x0032, 0x00CB, 0x0032, ++ 0x00FD, 0x0032, 0x012F, 0x0032, 0x0161, 0x0032, 0x0193, 0x0032, 0x01C5, ++ 0x0025, 0x01F7, 0x0025, 0x021C, 0x0025, 0x0241, 0x0032, 0x0266, 0x0032, ++ 0x0298, 0x0032, 0x02CA, 0x0032, 0x02FC, 0x0031, 0x032E, 0x0032, 0x035F, ++ 0x0017, 0x0391, 0x0017, 0x03A8, 0x0017, 0x03BF, 0x0031, 0x03D6, 0x0032, ++ 0x0407, 0x0032, 0x0439, 0x0032, 0x046B, 0x0032, 0x049D, 0x0032, 0x04CF, ++ 0x0025, 0x0501, 0x0025, 0x0526, 0x0025, 0x054B, 0x0014, 0x0570, 0x0017, ++ 0x0584, 0x0016, 0x059B, 0x0032, 0x05B1, 0x002B, 0x05E3, 0x002F, 0x060E, ++ 0x0031, 0x063D, 0x0030, 0x066E, 0x0032, 0x069E, 0x0032, 0x06D0, 0x0031, ++ 0x0702, 0x0032, 0x0733, 0x0032, 0x0765, 0x0032, 0x0797, 0x0032, 0x07C9, ++ 0x0032, 0x07FB, 0x0032, 0x082D, 0x0032, 0x085F, 0x0032, 0x0891, 0x0032, ++ 0x08C3, 0x0032, 0x08F5, 0x0032, 0x0927, 0x0032, 0x0959, 0x0032, 0x098B, + }; + + static const s16 anim_51_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0007, 0x001A, 0x0035, 0x0054, 0x0072, 0x008D, 0x00A0, +- 0x00A8, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF983, 0xF984, 0xF984, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED5E, 0xECE6, 0xEC3D, +- 0xEB7B, 0xEAB9, 0xEA10, 0xE999, 0xE96B, 0xF385, 0xF22A, 0xEEEE, +- 0xEB12, 0xE7D7, 0xE67B, 0xE533, 0xE1D0, 0xDD06, 0xD78A, 0xD20D, +- 0xCD43, 0xC9E0, 0xC898, 0xD757, 0xD5F8, 0xD2B2, 0xCECA, 0xCB84, +- 0xCA25, 0xCD31, 0xD538, 0xE092, 0xED96, 0xFA99, 0x05F2, 0x0DFA, +- 0x1106, 0xEFC6, 0xED2E, 0xE700, 0xDFA0, 0xD972, 0xD6DA, 0xD787, +- 0xD94F, 0xDBD3, 0xDEB6, 0xE199, 0xE41D, 0xE5E5, 0xE692, 0xCF2C, +- 0xD401, 0xDF88, 0xED49, 0xF8D0, 0xFDA5, 0xFA7C, 0xF229, 0xE664, +- 0xD8E6, 0xCB68, 0xBFA2, 0xB74F, 0xB427, 0x020B, 0x020B, 0x020B, +- 0x020B, 0x020B, 0x020B, 0x01F5, 0x01B9, 0x0165, 0x0105, 0x00A5, +- 0x0051, 0x0016, 0x0000, 0x03A9, 0x03A9, 0x03A9, 0x03A9, 0x03A9, +- 0x03A9, 0x0381, 0x0317, 0x0280, 0x01D4, 0x0128, 0x0092, 0x0028, +- 0x0000, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF521, +- 0xF43B, 0xF2F6, 0xF182, 0xF00D, 0xEEC9, 0xEDE3, 0xED8C, 0xF3BE, +- 0xF128, 0xEAFE, 0xE3A3, 0xDD79, 0xDAE3, 0xDA04, 0xD7B6, 0xD474, +- 0xD0B9, 0xCCFD, 0xC9BB, 0xC76E, 0xC68E, 0x1AB9, 0x1E2D, 0x2669, +- 0x303D, 0x3879, 0x3BED, 0x38D6, 0x30B1, 0x252E, 0x17FB, 0x0AC8, +- 0xFF46, 0xF721, 0xF40A, 0x1465, 0x169A, 0x1BDF, 0x2228, 0x276D, +- 0x29A2, 0x2926, 0x27E1, 0x2614, 0x2404, 0x21F4, 0x2028, 0x1EE2, +- 0x1E67, 0xC825, 0xCCD7, 0xD80A, 0xE567, 0xF09A, 0xF54C, 0xF286, +- 0xEB36, 0xE0DF, 0xD505, 0xC92A, 0xBED3, 0xB783, 0xB4BD, 0xFFC5, +- 0xFFBF, 0xFFB0, 0xFFA0, 0xFF95, 0xFF94, 0xFF9F, 0xFFB1, 0xFFC7, +- 0xFFDF, 0xFFF6, 0x0009, 0x0016, 0x001B, 0xFF39, 0xFF31, 0xFF23, +- 0xFF1A, 0xFF25, 0xFF4F, 0xFF9F, 0x000D, 0x008D, 0x0112, 0x018F, +- 0x01F8, 0x0241, 0x025B, 0xD5A9, 0xD6E5, 0xD9C7, 0xDD1C, 0xDFAC, +- 0xE042, 0xDEBB, 0xDC0C, 0xD8A1, 0xD4E4, 0xD142, 0xCE24, 0xCBF7, +- 0xCB25, 0x41BC, 0x3B93, 0x2D02, 0x1BE7, 0x0E1D, 0x0982, 0x0E7F, +- 0x186D, 0x2591, 0x3432, 0x4294, 0x4EFD, 0x57B4, 0x5AFE, 0x0768, +- 0x0737, 0x06B9, 0x0610, 0x055D, 0x04C0, 0x042B, 0x0380, 0x02CE, +- 0x0220, 0x0183, 0x0103, 0x00AD, 0x008D, 0x0954, 0x087D, 0x0671, +- 0x03E1, 0x0181, 0x0005, 0xFF59, 0xFEEB, 0xFEAF, 0xFE99, 0xFE9D, +- 0xFEAE, 0xFEC2, 0xFECB, 0xA3E7, 0xA47F, 0xA5C2, 0xA6EA, 0xA72F, +- 0xA5CB, 0xA26E, 0x9DAC, 0x9817, 0x9241, 0x8CB9, 0x8812, 0x84DE, +- 0x83AC, 0x0000, 0xFFFF, 0xFFFB, 0xFFF8, 0xFFF9, 0x0000, 0x000F, +- 0x0024, 0x003C, 0x0056, 0x006E, 0x0082, 0x0090, 0x0095, 0x0000, +- 0x0003, 0x0009, 0x000D, 0x000C, 0x0000, 0xFFE7, 0xFFC4, 0xFF9C, +- 0xFF72, 0xFF4A, 0xFF28, 0xFF11, 0xFF09, 0xBA5D, 0xBDB3, 0xC5BF, +- 0xCF8C, 0xD825, 0xDC96, 0xDCF0, 0xDB95, 0xD908, 0xD5CD, 0xD265, +- 0xCF54, 0xCD1C, 0xCC42, 0x4CBC, 0x45FF, 0x35FA, 0x22F8, 0x1345, +- 0x0D2D, 0x10F9, 0x19A5, 0x2589, 0x32FC, 0x4056, 0x4BED, 0x5418, +- 0x5730, 0xF894, 0xF924, 0xFA84, 0xFC3C, 0xFDD5, 0xFED6, 0xFF4B, +- 0xFF98, 0xFFC3, 0xFFD4, 0xFFD4, 0xFFCB, 0xFFBF, 0xFFBA, 0xF606, +- 0xF706, 0xF976, 0xFC7C, 0xFF3D, 0x00DF, 0x0174, 0x01AD, 0x01A0, +- 0x0163, 0x010D, 0x00B3, 0x006E, 0x0051, 0x98E7, 0x9A74, 0x9E10, +- 0xA22A, 0xA52F, 0xA590, 0xA313, 0x9EF3, 0x99CC, 0x9439, 0x8ED4, +- 0x8A3A, 0x8705, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x7FFF, +- 0x7FFF, 0x4171, 0xBF5F, 0x0081, 0x0081, 0x0082, 0x0081, 0x007E, +- 0x0076, 0x0069, 0x0058, 0x0045, 0x0031, 0x001E, 0x000E, 0x0004, +- 0x0000, 0x0214, 0x021B, 0x0228, 0x0233, 0x0230, 0x0216, 0x01E0, +- 0x0195, 0x013D, 0x00E2, 0x008C, 0x0044, 0x0012, 0x0000, 0x035A, +- 0x02CA, 0x01A0, 0x00A9, 0x00B3, 0x028A, 0x068D, 0x0C26, 0x12AD, +- 0x197B, 0x1FE9, 0x2550, 0x2908, 0x2A6B, 0x0000, 0xFFFF, 0xFFFC, +- 0xFFF7, 0xFFF4, 0xFFF3, 0xFFF3, 0xFFF5, 0xFFF7, 0xFFFA, 0xFFFC, +- 0xFFFE, 0x0000, 0x0000, 0xFF53, 0xFF51, 0xFF4D, 0xFF4A, 0xFF4B, +- 0xFF54, 0xFF65, 0xFF7E, 0xFF9A, 0xFFB7, 0xFFD3, 0xFFEB, 0xFFFB, +- 0x0000, 0x0D24, 0x0D73, 0x0E34, 0x0F20, 0x0FF2, 0x1066, 0x107E, +- 0x1073, 0x104D, 0x1019, 0x0FDE, 0x0FA8, 0x0F80, 0x0F71, 0x40A1, +- 0x4036, 0x4048, 0x42D9, 0x49E7, 0x5772, 0x70F5, 0x8A78, 0xA3FB, +- 0xBD7F, 0xD702, 0xF085, 0x0A08, 0x238B, ++ 0x0000, 0x00BF, 0x0000, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3F82, 0x3E6F, 0x3D5B, 0x3CDE, ++ 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, ++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, ++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3CD0, 0x3B53, 0x39D6, 0x3929, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFF5, 0xFFDE, 0xFFC2, 0xFFAC, 0xFFA2, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, ++ 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, ++ 0xFFA2, 0xFFA5, 0xFFAB, 0xFFB2, 0xFFBA, 0xFFC3, 0xFFCC, 0xFFD5, 0xFFDD, ++ 0xFFE4, 0xFFE9, 0xFFED, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFF96, 0xFF4E, 0xFF2D, ++ 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, ++ 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF41, 0xFF33, 0xFF1E, 0xFF03, ++ 0xFEE4, 0xFEC2, 0xFE9F, 0xFE7E, 0xFE5F, 0xFE43, 0xFE2E, 0xFE20, 0xFE1B, ++ 0x0000, 0x0006, 0x0015, 0x002E, 0x004E, 0x0074, 0x00A0, 0x00D0, 0x0102, ++ 0x0135, 0x0168, 0x019A, 0x01C9, 0x01F5, 0x021C, 0x023C, 0x0254, 0x0264, ++ 0x026A, 0x00DD, 0xFD3E, 0xF919, 0xF5FA, 0xF4C0, 0xF493, 0xF547, 0xF5FA, ++ 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, ++ 0xF493, 0xF4D7, 0xF595, 0xF6B6, 0xF824, 0xF9C9, 0xFB8F, 0xFD61, 0xFF27, ++ 0x00CD, 0x023B, 0x035C, 0x0419, 0x045E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFF6, 0xFFDE, 0xFFB5, ++ 0xFF81, 0xFF4A, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF59, 0xFF81, ++ 0xFF59, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF33, 0xFF3A, 0xFF46, ++ 0xFF54, 0xFF64, 0xFF76, 0xFF88, 0xFF9A, 0xFFAA, 0xFFB8, 0xFFC4, 0xFFCB, ++ 0xFFCE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x0000, 0x0006, 0x001C, 0x0045, 0x0083, 0x00CC, 0x00F0, 0x00BA, ++ 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, ++ 0x00BA, 0x00F0, 0x00EC, 0x00E0, 0x00CE, 0x00B6, 0x009B, 0x007E, 0x0061, ++ 0x0044, 0x0029, 0x0012, 0xFFFE, 0xFFF2, 0xFFEE, 0x2081, 0x2091, 0x20BC, ++ 0x20FB, 0x2146, 0x2194, 0x21DF, 0x221E, 0x2249, 0x2259, 0x2259, 0x2259, ++ 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x21DB, 0x1E64, 0x15A3, ++ 0x0A36, 0x0088, 0xFBDC, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFDB2, ++ 0x0088, 0xFDB2, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFB13, 0xFBAA, ++ 0xFC92, 0xFDB6, 0xFF08, 0x0074, 0x01E9, 0x0354, 0x04A5, 0x05CA, 0x06B1, ++ 0x0749, 0x077F, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, ++ 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, ++ 0xFDA3, 0xFDA3, 0xFE16, 0x0079, 0x058F, 0x0AF2, 0x0D73, 0x0D73, 0x0D73, ++ 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, ++ 0x0D73, 0x0D73, 0x0D73, 0x0DB2, 0x0E62, 0x0F6E, 0x10C1, 0x1248, 0x13EE, ++ 0x159D, 0x1743, 0x18C9, 0x1A1D, 0x1B29, 0x1BD8, 0x1C17, 0xAE9E, 0xAE9E, ++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, ++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAA8E, 0xA67F, ++ 0xB684, 0xD443, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, ++ 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE45E, ++ 0xE49C, 0xE4FA, 0xE572, 0xE5FD, 0xE692, 0xE72A, 0xE7BF, 0xE849, 0xE8C1, ++ 0xE920, 0xE95E, 0xE975, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, ++ 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, ++ 0xC519, 0xC519, 0xC519, 0xC4B5, 0xC28D, 0xBDE4, 0xB8F0, 0xB6A2, 0xB6A2, ++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, ++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB679, 0xB605, 0xB556, 0xB477, 0xB376, ++ 0xB262, 0xB146, 0xB032, 0xAF31, 0xAE52, 0xADA2, 0xAD2F, 0xAD06, 0xFFFF, ++ 0xFFF2, 0xFFD0, 0xFF9F, 0xFF65, 0xFF27, 0xFEED, 0xFEBC, 0xFE9A, 0xFE8D, ++ 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xF73B, ++ 0xEF76, 0xEF08, 0xEEFF, 0xEE91, 0xECE5, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, ++ 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, ++ 0xE029, 0xDFC7, 0xDEC1, 0xDD47, 0xDB86, 0xD9AE, 0xD7ED, 0xD672, 0xD56D, ++ 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, ++ 0xD6CC, 0xDD3F, 0xE8FA, 0xF5C3, 0xFE2F, 0x00C5, 0x0123, 0xFFA9, 0xFE2F, ++ 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, ++ 0x0123, 0x0468, 0x0478, 0x04A1, 0x04DD, 0x0524, 0x056F, 0x05B6, 0x05F2, ++ 0x061C, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, ++ 0x062B, 0x0D45, 0x1460, 0x0C5A, 0xFD72, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, ++ 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, ++ 0xF5AB, 0xF5EA, 0xF7D3, 0xF7DB, 0xF7F0, 0xF80E, 0xF831, 0xF857, 0xF87A, ++ 0xF898, 0xF8AD, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, ++ 0xF8B5, 0xF8B5, 0xF996, 0xFFC0, 0x0F3F, 0x2278, 0x303E, 0x34E7, 0x3592, ++ 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, ++ 0x303E, 0x32E8, 0x3592, 0x350B, 0x3392, 0x3155, 0x2E7E, 0x2B3A, 0x27B4, ++ 0x2418, 0x2092, 0x1D4E, 0x1A77, 0x183A, 0x16C2, 0x163B, 0xF504, 0xF4E5, ++ 0xF492, 0xF419, 0xF38A, 0xF2F4, 0xF266, 0xF1ED, 0xF19A, 0xF17B, 0xF17B, ++ 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF166, 0xF0D4, ++ 0xE9C6, 0xDDB4, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD82A, 0xD906, ++ 0xD82A, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD801, 0xD906, 0xD99F, ++ 0xDA21, 0xDA8D, 0xDAE6, 0xDB2C, 0xDB64, 0xDB8D, 0xDBAB, 0xDBBF, 0xDBCB, ++ 0xDBD1, 0xDBD3, 0xDBD4, 0xF662, 0xF662, 0xF663, 0xF663, 0xF664, 0xF664, ++ 0xF665, 0xF665, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, ++ 0xF666, 0xF666, 0xF666, 0xF5DD, 0xF220, 0xE88A, 0xDBEE, 0xD149, 0xCC47, ++ 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, ++ 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCBC6, 0xCD32, 0xCF5D, 0xD21D, 0xD546, ++ 0xD8B0, 0xDC2E, 0xDF97, 0xE2C1, 0xE581, 0xE7AC, 0xE918, 0xE99B, 0xEF0B, ++ 0xEF2F, 0xEF92, 0xF021, 0xF0CA, 0xF17C, 0xF225, 0xF2B4, 0xF317, 0xF33C, ++ 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF34A, ++ 0xF3AB, 0xF4AB, 0xF614, 0xF77A, 0xF87B, 0xF8DB, 0xF82B, 0xF77A, 0xF82B, ++ 0xF8DB, 0xF82B, 0xF77A, 0xF82B, 0xF8DB, 0xF82B, 0xF77A, 0xF7E5, 0xF8DB, ++ 0xF9FC, 0xFB2E, 0xFC6B, 0xFDAC, 0xFEE9, 0x001D, 0x013E, 0x0246, 0x032E, ++ 0x03EF, 0x0481, 0x04DE, 0x04FF, 0xFB82, 0xFB38, 0xFA6F, 0xF94D, 0xF7F5, ++ 0xF68B, 0xF533, 0xF411, 0xF348, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, ++ 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2E4, 0xF233, 0xF06D, 0xEE09, 0xEBDC, ++ 0xEA93, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, ++ 0xEA2E, 0xEB05, 0xEBDC, 0xEB1C, 0xEA2E, 0xE9D8, 0xE98F, 0xE952, 0xE920, ++ 0xE8F8, 0xE8D9, 0xE8C2, 0xE8B1, 0xE8A6, 0xE89F, 0xE89B, 0xE89A, 0xF92D, ++ 0xF916, 0xF8D8, 0xF87F, 0xF815, 0xF7A5, 0xF73B, 0xF6E2, 0xF6A4, 0xF68D, ++ 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF66D, ++ 0xF58D, 0xF347, 0xF01F, 0xED17, 0xEB0E, 0xEA56, 0xEBB7, 0xED17, 0xEBB7, ++ 0xEA56, 0xEBB7, 0xED17, 0xEBB7, 0xEA56, 0xEBB7, 0xED17, 0xEC34, 0xEA56, ++ 0xE877, 0xE6C9, 0xE54A, 0xE3F8, 0xE2D1, 0xE1D4, 0xE0FE, 0xE04E, 0xDFC2, ++ 0xDF58, 0xDF0F, 0xDEE4, 0xDED6, 0xFFFE, 0x0003, 0x000E, 0x001E, 0x0031, ++ 0x0045, 0x0059, 0x0069, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, ++ 0x0078, 0x0078, 0x0078, 0x0078, 0x009E, 0x01A7, 0x0418, 0x06C7, 0x080A, ++ 0x0001, 0x007A, 0x01BE, 0x0393, 0x05C0, 0x0809, 0x0A35, 0x0C0B, 0x0D4F, ++ 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, ++ 0x0CCC, 0x05E7, 0xF59C, 0xE3C0, 0xDB58, 0xC170, 0xC171, 0xC173, 0xC176, ++ 0xC179, 0xC17C, 0xC180, 0xC182, 0xC184, 0xC185, 0xC185, 0xC185, 0xC185, ++ 0xC185, 0xC185, 0xC185, 0xC185, 0xC185, 0xC12B, 0xBEB7, 0xB8EA, 0xB28E, ++ 0xAF90, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, ++ 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, ++ 0xFCE7, 0xFD58, 0x006D, 0x0AA8, 0x1A78, 0x2961, 0xB22F, 0xB4D8, 0x2F1D, ++ 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, ++ 0x2EDE, 0xB4D8, 0xB5C1, 0xB686, 0xB72A, 0xB7B1, 0xB81D, 0xB871, 0xB8B0, ++ 0xB8DD, 0xB8FB, 0xB90E, 0xB917, 0xB91B, 0x73C6, 0x73C6, 0x73C6, 0x73C6, ++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, ++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x733A, 0x6FCF, 0x67E6, 0x5E12, ++ 0x55EF, 0x2DDF, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x53A5, 0x55EF, ++ 0x53A5, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x2E93, 0x2E65, 0x2E1E, ++ 0x2DC5, 0x2D5F, 0x2CF0, 0x2C7F, 0x2C10, 0x2BAA, 0x2B51, 0x2B0A, 0x2ADC, ++ 0x2ACC, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, ++ 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, ++ 0xFE97, 0xFD2B, 0xFBBF, 0x08C8, 0x22E8, 0x36AF, 0xBC96, 0xBD6E, 0x3A0E, ++ 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, ++ 0x397A, 0xBD6E, 0xBF91, 0xC161, 0xC2E3, 0xC41F, 0xC51D, 0xC5E2, 0xC676, ++ 0xC6E1, 0xC728, 0xC753, 0xC769, 0xC771, 0xC772, 0x09D1, 0x09C3, 0x099E, ++ 0x0969, 0x092A, 0x08E8, 0x08A9, 0x0874, 0x084F, 0x0842, 0x0842, 0x0842, ++ 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x07D8, 0x04F7, 0xFD25, ++ 0xF250, 0xE88F, 0xE318, 0xE18D, 0xE50E, 0xE88F, 0xE50E, 0xE18D, 0xE50E, ++ 0xE88F, 0xE50E, 0xE18D, 0xE50E, 0xE88F, 0xE564, 0xE18D, 0xE04F, 0xDF42, ++ 0xDE62, 0xDDAA, 0xDD17, 0xDCA5, 0xDC4F, 0xDC11, 0xDBE8, 0xDBCF, 0xDBC2, ++ 0xDBBD, 0xDBBC, 0x0214, 0x024C, 0x02E3, 0x03BD, 0x04C0, 0x05D0, 0x06D3, ++ 0x07AD, 0x0844, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, ++ 0x087C, 0x087C, 0x0E32, 0x195D, 0x2282, 0x2811, 0x29F1, 0x29E7, 0x29DD, ++ 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, ++ 0x29F1, 0x29EE, 0x29DD, 0x298F, 0x28E8, 0x27FA, 0x26D4, 0x2587, 0x2424, ++ 0x22BB, 0x215C, 0x2018, 0x1F00, 0x1E23, 0x1D93, 0x1D5F, 0xF623, 0xF626, ++ 0xF62D, 0xF637, 0xF643, 0xF64F, 0xF65B, 0xF666, 0xF66C, 0xF66F, 0xF66F, ++ 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF7C5, 0xF91A, ++ 0xF2FE, 0xE60F, 0xDA65, 0xD589, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, ++ 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD507, ++ 0xD58E, 0xD65C, 0xD760, 0xD88C, 0xD9CF, 0xDB1A, 0xDC5D, 0xDD89, 0xDE8D, ++ 0xDF5B, 0xDFE2, 0xE012, 0x10DE, 0x1076, 0x0F62, 0x0DD1, 0x0BF6, 0x0A02, ++ 0x0827, 0x0697, 0x0582, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, ++ 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x03F0, ++ 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, ++ 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x04B1, 0x0560, 0x0735, 0x09DC, 0x0D01, ++ 0x1051, 0x1376, 0x161D, 0x17F2, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, ++ 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, ++ 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, ++ 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0xF95F, 0xF916, 0xF853, 0xF737, ++ 0xF5E8, 0xF487, 0xF337, 0xF21C, 0xF158, 0xF10F, 0xF10F, 0xF10F, 0xF10F, ++ 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, ++ 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, ++ 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0051, 0x003F, 0x001C, 0xFFFE, 0xFFF4, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, ++ 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFFC, 0xFFF2, ++ 0xFFC7, 0xFF6D, 0xFEEF, 0xFE53, 0xFDA3, 0xFCE8, 0xFC2A, 0xFB71, 0xFAC7, ++ 0xFA34, 0xF9C0, 0xF974, 0xF959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x001D, 0x001C, 0x0015, 0x0001, ++ 0xFF55, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, ++ 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFEB7, 0xFEB6, 0xFEB6, 0xFEB5, ++ 0xFEB5, 0xFEB4, 0x217F, 0x21B4, 0x224A, 0x2336, 0x246C, 0x25DE, 0x2781, ++ 0x2949, 0x2B29, 0x2D15, 0x2F01, 0x30E2, 0x32A9, 0x344C, 0x35BF, 0x36F4, ++ 0x37E0, 0x3876, 0x38AB, 0x26D2, 0x3B1B, 0x62F8, 0x7EF0, 0x85AA, 0x86A0, ++ 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, ++ 0x7EF0, 0x82C5, 0x86A0, 0x86AB, 0x86B5, 0x86BD, 0x86C3, 0x86C9, 0x86CD, ++ 0x86D0, 0x86D2, 0x86D4, 0x86D5, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, ++ 0xF7B1, 0xF7A8, 0xF79E, 0xF7A4, 0xF7B1, 0xF7BD, 0xF7C9, 0xF7D3, 0xF7DC, ++ 0xF7E4, 0xF7EB, 0xF7F1, 0xF7F6, 0xF7FA, 0xF7FD, 0xF7FF, 0xF800, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00AB, ++ 0x00C4, 0x00AB, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00A8, 0x00C4, ++ 0x00CE, 0x00D7, 0x00DE, 0x00E4, 0x00E9, 0x00ED, 0x00F0, 0x00F2, 0x00F3, ++ 0x00F4, 0x00F5, 0x3F9E, 0x3F9E, 0x3F9D, 0x3F9C, 0x3F9A, 0x3F97, 0x3F92, ++ 0x3F8B, 0x3F82, 0x3F76, 0x3F67, 0x3F55, 0x3F3F, 0x3F26, 0x3F08, 0x3EE5, ++ 0x3EBE, 0x3E91, 0x3E5F, 0x37C4, 0x2981, 0x1B4C, 0x14D9, 0x1634, 0x178F, ++ 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, ++ 0x14D9, 0x15F2, 0x178F, 0x1884, 0x1953, 0x19FF, 0x1A8D, 0x1AFE, 0x1B56, ++ 0x1B98, 0x1BC7, 0x1BE7, 0x1BFB, 0x1C04, 0x1C08, 0x1C09, 0xF7D1, 0xF7ED, ++ 0xF83E, 0xF8BE, 0xF965, 0xFA2D, 0xFB0F, 0xFC05, 0xFD09, 0xFE13, 0xFF1D, ++ 0x0021, 0x0117, 0x01F9, 0x02C1, 0x0368, 0x03E8, 0x0439, 0x0456, 0x01FD, ++ 0x029C, 0x03C2, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0445, 0x042A, ++ 0x0445, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0457, 0x042A, 0x03C3, ++ 0x0326, 0x025D, 0x0174, 0x0076, 0xFF6C, 0xFE64, 0xFD66, 0xFC7E, 0xFBB7, ++ 0xFB1C, 0xFAB6, 0xFA92, 0x08F7, 0x08F7, 0x08F4, 0x08EC, 0x08DD, 0x08C5, ++ 0x08A0, 0x086C, 0x0828, 0x07D0, 0x0762, 0x06DC, 0x063B, 0x057D, 0x049F, ++ 0x039F, 0x027B, 0x012F, 0xFFBA, 0xF95E, 0xFA68, 0xFC9D, 0xFEA3, 0xFF80, ++ 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, ++ 0xFF22, 0xFEA3, 0xFF16, 0xFFA0, 0xFFC9, 0xFFEB, 0x0009, 0x0021, 0x0034, ++ 0x0043, 0x004E, 0x0056, 0x005B, 0x005E, 0x0060, 0x0061, 0xBE26, 0xBE28, ++ 0xBE3A, 0xBE6B, 0xBECB, 0xBF69, 0xC054, 0xC19C, 0xC351, 0xC582, 0xC83F, ++ 0xCB97, 0xCF99, 0xD455, 0xD9DC, 0xE03B, 0xE783, 0xEFC3, 0xF90B, 0x1CC6, ++ 0x16F9, 0x0A64, 0xFE41, 0xF81C, 0xF6B7, 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, ++ 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, 0xFA7C, 0xFE41, 0xFBE9, 0xF6B7, 0xF0F7, ++ 0xEB32, 0xE57D, 0xDFED, 0xDA98, 0xD593, 0xD0F4, 0xCCD0, 0xC93C, 0xC64F, ++ 0xC41D, 0xC2BC, 0xC241, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFE7, 0xFFA6, 0xFF43, 0xFEC6, 0xFE35, ++ 0xFD99, 0xFCF9, 0xFC5E, 0xFBCD, 0xFB4F, 0xFAEC, 0xFAAB, 0xFA94, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0xFFDC, 0xFF77, 0xFEDE, 0xFE1D, 0xFD3E, 0xFC4D, 0xFB57, 0xFA66, 0xF987, ++ 0xF8C6, 0xF82D, 0xF7C8, 0xF7A4, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, ++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, ++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE705, 0xE68E, 0xE618, 0xE5E3, ++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, ++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE56F, 0xE42E, 0xE243, 0xDFD6, ++ 0xDD0B, 0xDA08, 0xD6F3, 0xD3F0, 0xD125, 0xCEB8, 0xCCCE, 0xCB8C, 0xCB19, ++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, ++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, ++ 0xFCCC, 0xFD43, 0xFDBB, 0xFE0F, 0xFE77, 0xFF09, 0xFF5A, 0xFEE8, 0xFE77, ++ 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, ++ 0xFF5A, 0xFF57, 0xFF4F, 0xFF44, 0xFF35, 0xFF24, 0xFF12, 0xFF00, 0xFEEE, ++ 0xFEDD, 0xFECE, 0xFEC3, 0xFEBB, 0xFEB9, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, ++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, ++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xFA42, 0xFBA6, 0xFD62, ++ 0xFF23, 0x008D, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0023, 0xFF23, ++ 0x0023, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0119, 0x00FE, 0x00D4, ++ 0x009F, 0x0062, 0x0021, 0xFFDD, 0xFF9B, 0xFF5E, 0xFF2A, 0xFF00, 0xFEE5, ++ 0xFEDB, 0x398E, 0x39C5, 0x3A61, 0x3B57, 0x3C98, 0x3E18, 0x3FCC, 0x41A5, ++ 0x4398, 0x4597, 0x4797, 0x4989, 0x4B63, 0x4D16, 0x4E97, 0x4FD8, 0x50CD, ++ 0x5169, 0x51A0, 0x43AB, 0x5D15, 0x8DE0, 0xACDC, 0xB1BC, 0xB26E, 0xAFA5, ++ 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, ++ 0xAFA5, 0xB26E, 0xB236, 0xB199, 0xB0AB, 0xAF7C, 0xAE21, 0xACA9, 0xAB29, ++ 0xA9B2, 0xA856, 0xA727, 0xA639, 0xA59C, 0xA564, 0xFFC9, 0xFFC9, 0xFFCA, ++ 0xFFCB, 0xFFCC, 0xFFCE, 0xFFD0, 0xFFD2, 0xFFD4, 0xFFD6, 0xFFD9, 0xFFDB, ++ 0xFFDD, 0xFFDF, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE4, 0xFFDC, 0xFFCB, ++ 0xFFBB, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, ++ 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFBB, 0xFFD0, 0xFFEB, 0x000A, ++ 0x002C, 0x004F, 0x0074, 0x0097, 0x00BA, 0x00DA, 0x00F7, 0x010F, 0x0121, ++ 0x012D, 0x0131, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9C, 0xFF9D, ++ 0xFF9E, 0xFF9F, 0xFFA1, 0xFFA3, 0xFFA6, 0xFFA9, 0xFFAD, 0xFFB2, 0xFFB7, ++ 0xFFBD, 0xFFC4, 0xFFCB, 0x00ED, 0x035D, 0x05CD, 0x06EB, 0x06EE, 0x06EE, ++ 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, ++ 0x06EB, 0x06EC, 0x06EE, 0x06FC, 0x0719, 0x0743, 0x0777, 0x07B1, 0x07F0, ++ 0x0830, 0x086E, 0x08A7, 0x08D9, 0x0900, 0x0919, 0x0922, 0x427D, 0x427D, ++ 0x427C, 0x427B, 0x4279, 0x4276, 0x4271, 0x426A, 0x4261, 0x4256, 0x4247, ++ 0x4235, 0x4220, 0x4206, 0x41E9, 0x41C7, 0x41A0, 0x4174, 0x4143, 0x3A86, ++ 0x2BF7, 0x1D75, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x17E3, 0x18E6, ++ 0x17E3, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x1780, 0x18E6, 0x1A77, ++ 0x1C10, 0x1DA9, 0x1F3C, 0x20C1, 0x2232, 0x2388, 0x24BC, 0x25C8, 0x26A4, ++ 0x274A, 0x27B2, 0x27D6, 0x02A5, 0x02A7, 0x02AE, 0x02B8, 0x02C6, 0x02D6, ++ 0x02E9, 0x02FD, 0x0312, 0x0327, 0x033D, 0x0352, 0x0366, 0x0379, 0x0389, ++ 0x0396, 0x03A1, 0x03A7, 0x03AA, 0xFF8D, 0x003F, 0x01C4, 0x034B, 0x042B, ++ 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, ++ 0x03DB, 0x034B, 0x03A9, 0x046B, 0x0525, 0x05C2, 0x0646, 0x06B2, 0x0709, ++ 0x074D, 0x0780, 0x07A5, 0x07BF, 0x07CE, 0x07D6, 0x07D9, 0x07DA, 0x0390, ++ 0x0390, 0x038E, 0x0389, 0x0380, 0x0370, 0x0358, 0x0337, 0x030B, 0x02D3, ++ 0x028D, 0x0237, 0x01D0, 0x0157, 0x00C9, 0x0026, 0xFF6A, 0xFE96, 0xFDA8, ++ 0xF9CD, 0xFA8A, 0xFBF2, 0xFCCF, 0xFCEA, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, ++ 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCD5, 0xFCEE, ++ 0xFD20, 0xFD6A, 0xFDC7, 0xFE32, 0xFEA5, 0xFF1D, 0xFF95, 0x0008, 0x0070, ++ 0x00C9, 0x010F, 0x013C, 0x014C, 0xCAC9, 0xCACB, 0xCADA, 0xCB02, 0xCB51, ++ 0xCBD3, 0xCC94, 0xCDA2, 0xCF0A, 0xD0D8, 0xD318, 0xD5D9, 0xD925, 0xDD0B, ++ 0xE197, 0xE6D6, 0xECD4, 0xF39E, 0xFB42, 0x1F5A, 0x19BA, 0x0D41, 0x0088, ++ 0xF8E3, 0xF692, 0xFB8C, 0x0088, 0xFB8C, 0xF692, 0xFB8C, 0x0088, 0xFB8C, ++ 0xF692, 0xFB8C, 0x0088, 0xFD52, 0xF692, 0xEFDD, 0xE9E4, 0xE49E, 0xE002, ++ 0xDC07, 0xD8A5, 0xD5D3, 0xD388, 0xD1BC, 0xD065, 0xCF7B, 0xCEF5, 0xCECA, + }; + diff --git a/assets/anims/anim_54.inc.c b/assets/anims/anim_54.inc.c index 701d3fcf..d4cda207 100644 --- a/assets/anims/anim_54.inc.c +++ b/assets/anims/anim_54.inc.c @@ -1,9 +1,9 @@ static const struct Animation anim_54[] = { - 1, - 189, - 0, - 0, - 0x1E, + 0, + 0, + 0, + 1, + 71, ANIMINDEX_NUMPARTS(anim_54_indices), anim_54_values, anim_54_indices, @@ -12,111 +12,163 @@ static const struct Animation anim_54[] = { static const u16 anim_54_indices[] = { - 0x0001, 0x0000, 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F, 0x0001, 0x0000, - 0x0001, 0x028E, 0x0001, 0x028F, 0x0001, 0x0290, - 0x001E, 0x0234, 0x001E, 0x0252, 0x001E, 0x0270, - 0x001E, 0x01DA, 0x001E, 0x01F8, 0x001E, 0x0216, - 0x0001, 0x01D6, 0x0001, 0x01D7, 0x0001, 0x01D8, - 0x0001, 0x0024, 0x0001, 0x0025, 0x0001, 0x0026, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023, - 0x0001, 0x0020, 0x0001, 0x0021, 0x0001, 0x0022, - 0x0001, 0x01D2, 0x0001, 0x01D3, 0x0001, 0x01D4, - 0x0001, 0x002B, 0x0001, 0x002C, 0x0001, 0x002D, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x002A, - 0x0001, 0x0027, 0x0001, 0x0028, 0x0001, 0x0029, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D5, - 0x001E, 0x0178, 0x001E, 0x0196, 0x001E, 0x01B4, - 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x015A, - 0x001E, 0x0100, 0x001E, 0x011E, 0x001E, 0x013C, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D9, - 0x001E, 0x00A6, 0x001E, 0x00C4, 0x001E, 0x00E2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x0088, - 0x001E, 0x002E, 0x001E, 0x004C, 0x001E, 0x006A, +0x0001, 0x0000, 0x0046, 0x0001, 0x0001, 0x0047, 0x0001, 0x0048, 0x0001, + 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, + 0x0001, 0x004E, 0x0001, 0x004F, 0x0048, 0x0050, 0x0001, 0x0098, 0x0001, + 0x0099, 0x0048, 0x009A, 0x0001, 0x00E2, 0x0001, 0x00E3, 0x0001, 0x00E4, + 0x0048, 0x00E5, 0x0048, 0x012D, 0x0048, 0x0175, 0x0001, 0x01BD, 0x0001, + 0x01BE, 0x0001, 0x01BF, 0x0001, 0x01C0, 0x0001, 0x01C1, 0x0001, 0x01C2, + 0x0001, 0x01C3, 0x0001, 0x01C4, 0x0001, 0x01C5, 0x0048, 0x01C6, 0x0048, + 0x020E, 0x0048, 0x0256, 0x0001, 0x029E, 0x0001, 0x029F, 0x0001, 0x02A0, + 0x0001, 0x02A1, 0x0001, 0x02A2, 0x0001, 0x02A3, 0x0001, 0x02A4, 0x0001, + 0x02A5, 0x0001, 0x02A6, 0x0001, 0x02A7, 0x0001, 0x02A8, 0x0048, 0x02A9, + 0x0001, 0x02F1, 0x0001, 0x02F2, 0x0001, 0x02F3, 0x0048, 0x02F4, 0x0048, + 0x033C, 0x0048, 0x0384, 0x0001, 0x03CC, 0x0001, 0x03CD, 0x0001, 0x03CE, + 0x0001, 0x03CF, 0x0001, 0x03D0, 0x0048, 0x03D1, 0x0001, 0x0419, 0x0001, + 0x041A, 0x0001, 0x041B, 0x0048, 0x041C, 0x0047, 0x0464, 0x0048, 0x04AB, }; static const s16 anim_54_values[] = { - 0x0000, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A7, 0x00A4, 0x00A2, - 0x009F, 0x009C, 0x0099, 0x0097, 0x0095, 0x0093, 0x0092, 0x0092, - 0x0092, 0x0093, 0x0094, 0x0096, 0x0099, 0x009B, 0x009E, 0x00A0, - 0x00A3, 0x00A5, 0x00A7, 0x00A9, 0x00AB, 0x00AC, 0x00AC, 0x3FFF, - 0xE441, 0xF273, 0xFBD8, 0xE392, 0xD5A2, 0xEA6D, 0xE897, 0x13E1, - 0x08D0, 0xF6A5, 0xE501, 0x87F6, 0x5359, 0x4901, 0x26DE, 0x26DA, - 0x26D0, 0x26C0, 0x26AB, 0x2693, 0x2679, 0x265E, 0x2643, 0x2629, - 0x2611, 0x25FC, 0x25EC, 0x25E2, 0x25DE, 0x25E1, 0x25EA, 0x25F8, - 0x260B, 0x2620, 0x2638, 0x2651, 0x266B, 0x2684, 0x269C, 0x26B1, - 0x26C4, 0x26D2, 0x26DB, 0x26DE, 0x0E76, 0x0E82, 0x0EA5, 0x0EDA, - 0x0F1D, 0x0F6C, 0x0FC2, 0x101C, 0x1076, 0x10CC, 0x111A, 0x115E, - 0x1193, 0x11B5, 0x11C2, 0x11B7, 0x1199, 0x116A, 0x112E, 0x10E7, - 0x1099, 0x1046, 0x0FF2, 0x0F9F, 0x0F51, 0x0F0A, 0x0ECE, 0x0E9F, - 0x0E81, 0x0E76, 0xC8E8, 0xC8DE, 0xC8C3, 0xC899, 0xC864, 0xC826, - 0xC7E2, 0xC79B, 0xC754, 0xC711, 0xC6D3, 0xC69D, 0xC674, 0xC658, - 0xC64F, 0xC657, 0xC66F, 0xC694, 0xC6C3, 0xC6FB, 0xC739, 0xC77A, - 0xC7BC, 0xC7FE, 0xC83B, 0xC873, 0xC8A2, 0xC8C7, 0xC8DF, 0xC8E8, - 0x28E1, 0x2947, 0x2A64, 0x2C1A, 0x2E4B, 0x30D7, 0x33A0, 0x3687, - 0x396F, 0x3C38, 0x3EC4, 0x40F4, 0x42AA, 0x43C8, 0x442E, 0x43D4, - 0x42DA, 0x4157, 0x3F64, 0x3D1A, 0x3A92, 0x37E4, 0x352B, 0x327D, - 0x2FF5, 0x2DAB, 0x2BB8, 0x2A35, 0x293A, 0x28E1, 0x160C, 0x15F9, - 0x15C5, 0x1574, 0x150D, 0x1494, 0x1411, 0x1387, 0x12FE, 0x127B, - 0x1202, 0x119B, 0x114A, 0x1115, 0x1103, 0x1113, 0x1141, 0x1189, - 0x11E5, 0x1251, 0x12C9, 0x1347, 0x13C8, 0x1446, 0x14BE, 0x152A, - 0x1586, 0x15CE, 0x15FC, 0x160C, 0x0C9B, 0x0CBA, 0x0D14, 0x0D9D, - 0x0E4C, 0x0F18, 0x0FF8, 0x10E0, 0x11C9, 0x12A8, 0x1375, 0x1424, - 0x14AD, 0x1506, 0x1526, 0x150A, 0x14BC, 0x1443, 0x13A7, 0x12EF, - 0x1224, 0x114E, 0x1073, 0x0F9D, 0x0ED2, 0x0E1A, 0x0D7E, 0x0D05, - 0x0CB6, 0x0C9B, 0xAE77, 0xAE3E, 0xAD9D, 0xACA7, 0xAB6C, 0xA9FE, - 0xA86D, 0xA6CC, 0xA52A, 0xA399, 0xA22B, 0xA0F0, 0x9FFA, 0x9F59, - 0x9F20, 0x9F52, 0x9FDF, 0xA0B9, 0xA1D1, 0xA31A, 0xA486, 0xA607, - 0xA790, 0xA911, 0xAA7D, 0xABC6, 0xACDE, 0xADB8, 0xAE45, 0xAE77, - 0xDECF, 0xDED1, 0xDED6, 0xDEDD, 0xDEE7, 0xDEF3, 0xDEFF, 0xDF0C, - 0xDF1A, 0xDF26, 0xDF32, 0xDF3C, 0xDF43, 0xDF48, 0xDF4A, 0xDF49, - 0xDF44, 0xDF3D, 0xDF35, 0xDF2A, 0xDF1F, 0xDF13, 0xDF06, 0xDEFA, - 0xDEEF, 0xDEE4, 0xDEDC, 0xDED5, 0xDED0, 0xDECF, 0xF348, 0xF343, - 0xF334, 0xF31C, 0xF2FE, 0xF2DA, 0xF2B4, 0xF28C, 0xF264, 0xF23D, - 0xF21A, 0xF1FC, 0xF1E4, 0xF1D5, 0xF1CF, 0xF1D4, 0xF1E1, 0xF1F6, - 0xF211, 0xF231, 0xF254, 0xF279, 0xF29F, 0xF2C4, 0xF2E7, 0xF306, - 0xF321, 0xF336, 0xF344, 0xF348, 0xC276, 0xC271, 0xC261, 0xC249, - 0xC22B, 0xC207, 0xC1E0, 0xC1B8, 0xC190, 0xC169, 0xC145, 0xC127, - 0xC10F, 0xC0FF, 0xC0FA, 0xC0FF, 0xC10C, 0xC121, 0xC13C, 0xC15C, - 0xC180, 0xC1A5, 0xC1CB, 0xC1F0, 0xC214, 0xC234, 0xC24F, 0xC264, - 0xC271, 0xC276, 0x3B81, 0x3BC7, 0x3C8A, 0x3DB7, 0x3F38, 0x40F7, - 0x42E1, 0x44E0, 0x46DE, 0x48C8, 0x4A87, 0x4C08, 0x4D35, 0x4DF9, - 0x4E3E, 0x4E01, 0x4D55, 0x4C4C, 0x4AF5, 0x4963, 0x47A6, 0x45CF, - 0x43F0, 0x4219, 0x405D, 0x3ECA, 0x3D74, 0x3C6A, 0x3BBE, 0x3B81, - 0x0F41, 0x0F3E, 0x0F36, 0x0F29, 0x0F1A, 0x0F07, 0x0EF3, 0x0EDE, - 0x0EC9, 0x0EB5, 0x0EA3, 0x0E93, 0x0E87, 0x0E7F, 0x0E7C, 0x0E7E, - 0x0E85, 0x0E90, 0x0E9E, 0x0EAF, 0x0EC1, 0x0ED4, 0x0EE8, 0x0EFB, - 0x0F0E, 0x0F1E, 0x0F2C, 0x0F37, 0x0F3E, 0x0F41, 0x027B, 0x0283, - 0x0298, 0x02B9, 0x02E3, 0x0314, 0x0349, 0x0381, 0x03B9, 0x03EE, - 0x041F, 0x0449, 0x046A, 0x047F, 0x0487, 0x0480, 0x046D, 0x0450, - 0x042B, 0x03FF, 0x03CF, 0x039B, 0x0367, 0x0334, 0x0303, 0x02D7, - 0x02B2, 0x0295, 0x0282, 0x027B, 0x97AD, 0x9784, 0x9710, 0x965F, - 0x957D, 0x9475, 0x9355, 0x9228, 0x90FB, 0x8FDB, 0x8ED3, 0x8DF1, - 0x8D40, 0x8CCC, 0x8CA3, 0x8CC7, 0x8D2C, 0x8DC9, 0x8E93, 0x8F80, - 0x9086, 0x919B, 0x92B5, 0x93CA, 0x94D0, 0x95BD, 0x9687, 0x9724, - 0x9789, 0x97AD, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, - 0x4171, 0xBF5F, 0x12F7, 0x12F7, 0x12F7, 0x12F7, 0x12F8, 0x12F8, - 0x12F9, 0x12F9, 0x12FA, 0x12FB, 0x12FB, 0x12FC, 0x12FC, 0x12FC, - 0x12FC, 0x12FC, 0x12FC, 0x12FC, 0x12FB, 0x12FB, 0x12FA, 0x12FA, - 0x12F9, 0x12F9, 0x12F8, 0x12F8, 0x12F7, 0x12F7, 0x12F7, 0x12F7, - 0xFEE7, 0xFEEE, 0xFEFF, 0xFF19, 0xFF3B, 0xFF62, 0xFF8D, 0xFFBA, - 0xFFE7, 0x0011, 0x0039, 0x005A, 0x0075, 0x0086, 0x008C, 0x0087, - 0x0078, 0x0060, 0x0042, 0x001F, 0xFFF9, 0xFFCF, 0xFFA5, 0xFF7C, - 0xFF55, 0xFF31, 0xFF13, 0xFEFC, 0xFEED, 0xFEE7, 0x05CC, 0x05C0, - 0x059E, 0x0569, 0x0526, 0x04D8, 0x0482, 0x0429, 0x03CF, 0x037A, - 0x032B, 0x02E8, 0x02B4, 0x0291, 0x0285, 0x0290, 0x02AE, 0x02DC, - 0x0318, 0x035F, 0x03AD, 0x03FF, 0x0453, 0x04A5, 0x04F3, 0x0539, - 0x0575, 0x05A4, 0x05C2, 0x05CC, 0x1510, 0x150C, 0x1503, 0x14F5, - 0x14E3, 0x14CE, 0x14B6, 0x149E, 0x1486, 0x146F, 0x145A, 0x1448, - 0x143A, 0x1430, 0x142D, 0x1430, 0x1438, 0x1445, 0x1455, 0x1468, - 0x147D, 0x1493, 0x14AA, 0x14C0, 0x14D5, 0x14E8, 0x14F8, 0x1505, - 0x150D, 0x1510, 0xF6F7, 0xF6ED, 0xF6CF, 0xF6A0, 0xF665, 0xF621, - 0xF5D6, 0xF588, 0xF539, 0xF4EE, 0xF4AA, 0xF46F, 0xF441, 0xF423, - 0xF418, 0xF421, 0xF43C, 0xF464, 0xF499, 0xF4D7, 0xF51B, 0xF563, - 0xF5AC, 0xF5F4, 0xF639, 0xF676, 0xF6AB, 0xF6D4, 0xF6EE, 0xF6F7, - 0xFE90, 0xFE99, 0xFEB1, 0xFED7, 0xFF07, 0xFF3E, 0xFF7C, 0xFFBB, - 0xFFFB, 0x0037, 0x006F, 0x009F, 0x00C4, 0x00DD, 0x00E6, 0x00DE, - 0x00C9, 0x00A7, 0x007D, 0x004A, 0x0013, 0xFFD9, 0xFF9D, 0xFF63, - 0xFF2B, 0xFEF9, 0xFECE, 0xFEAD, 0xFE98, 0xFE90, 0xD96B, 0x06DD, - 0x4534, +0x0000, 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, + 0x00B9, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, 0x00B2, + 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BE, + 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00B9, + 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B3, 0x00B2, 0x00B2, + 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x0000, + 0x3FFA, 0x38E3, 0x3FFA, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, 0x0ED5, + 0x0ED8, 0x0EE0, 0x0EED, 0x0EFD, 0x0F11, 0x0F27, 0x0F3F, 0x0F58, 0x0F71, + 0x0F8A, 0x0FA2, 0x0FB8, 0x0FCC, 0x0FDC, 0x0FE9, 0x0FF1, 0x0FF4, 0x0FF1, + 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, + 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0x0ED8, + 0x0EDF, 0x0EEB, 0x0EF9, 0x0F0B, 0x0F20, 0x0F36, 0x0F4D, 0x0F64, 0x0F7C, + 0x0F93, 0x0FA9, 0x0FBE, 0x0FD0, 0x0FDE, 0x0FEA, 0x0FF1, 0x0FF4, 0x0FF1, + 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, + 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0xFFFF, + 0x0000, 0xED48, 0xED4F, 0xED61, 0xED7F, 0xEDA5, 0xEDD3, 0xEE06, 0xEE3D, + 0xEE77, 0xEEB1, 0xEEEB, 0xEF22, 0xEF55, 0xEF83, 0xEFA9, 0xEFC7, 0xEFD9, + 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, + 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, + 0xED48, 0xED4E, 0xED5F, 0xED79, 0xED9C, 0xEDC5, 0xEDF4, 0xEE27, 0xEE5D, + 0xEE94, 0xEECB, 0xEF01, 0xEF34, 0xEF63, 0xEF8C, 0xEFAF, 0xEFC9, 0xEFDA, + 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, + 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, + 0xED48, 0xFFFE, 0x0001, 0xC170, 0x242B, 0x2429, 0x2423, 0x241B, 0x240F, + 0x2401, 0x23F2, 0x23E1, 0x23D0, 0x23BE, 0x23AD, 0x239C, 0x238D, 0x237F, + 0x2374, 0x236B, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, + 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, + 0x241C, 0x2424, 0x2429, 0x242B, 0x2429, 0x2424, 0x241C, 0x2412, 0x2405, + 0x23F7, 0x23E8, 0x23D8, 0x23C7, 0x23B7, 0x23A7, 0x2397, 0x2389, 0x237D, + 0x2372, 0x236A, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, + 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, + 0x241C, 0x2424, 0x2429, 0x242B, 0xE53D, 0xE542, 0xE550, 0xE565, 0xE582, + 0xE5A4, 0xE5CA, 0xE5F3, 0xE61E, 0xE64A, 0xE675, 0xE69E, 0xE6C5, 0xE6E7, + 0xE703, 0xE719, 0xE727, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, + 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, + 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE541, 0xE54E, 0xE561, 0xE57B, 0xE59A, + 0xE5BD, 0xE5E3, 0xE60B, 0xE634, 0xE65D, 0xE685, 0xE6AC, 0xE6CF, 0xE6ED, + 0xE707, 0xE71B, 0xE728, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, + 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, + 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE6CA, 0xE6C4, 0xE6B1, 0xE695, 0xE670, + 0xE644, 0xE613, 0xE5DD, 0xE5A5, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, + 0xE47D, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, + 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, + 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69A, 0xE679, 0xE651, + 0xE624, 0xE5F2, 0xE5BE, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE499, + 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, + 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, + 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xF989, 0x0344, 0xF9BC, 0xB507, 0xEAA7, + 0x0B25, 0xFFFE, 0x0001, 0xC170, 0xDBD4, 0xDBD6, 0xDBDC, 0xDBE4, 0xDBF0, + 0xDBFE, 0xDC0D, 0xDC1E, 0xDC2F, 0xDC41, 0xDC52, 0xDC62, 0xDC72, 0xDC80, + 0xDC8B, 0xDC94, 0xDC99, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, + 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, + 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0xDBD6, 0xDBDB, 0xDBE3, 0xDBED, 0xDBFA, + 0xDC08, 0xDC17, 0xDC27, 0xDC38, 0xDC48, 0xDC58, 0xDC68, 0xDC76, 0xDC82, + 0xDC8D, 0xDC95, 0xDC9A, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, + 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, + 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0x1AC2, 0x1ABD, 0x1AAF, 0x1A99, 0x1A7D, + 0x1A5B, 0x1A35, 0x1A0C, 0x19E1, 0x19B5, 0x198A, 0x1961, 0x193A, 0x1918, + 0x18FC, 0x18E6, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, + 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, + 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0x1ABE, 0x1AB1, 0x1A9E, 0x1A84, 0x1A65, + 0x1A42, 0x1A1C, 0x19F4, 0x19CB, 0x19A2, 0x197A, 0x1954, 0x1931, 0x1912, + 0x18F8, 0x18E4, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, + 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, + 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0xE6CA, 0xE6C4, 0xE6B2, 0xE695, 0xE670, + 0xE644, 0xE613, 0xE5DD, 0xE5A6, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, + 0xE47E, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, + 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, + 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69B, 0xE679, 0xE651, + 0xE624, 0xE5F3, 0xE5BF, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE49A, + 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, + 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, + 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0x066C, 0xFCF0, 0xF9BE, 0x4ABB, 0x154E, + 0x0B14, 0xFFFF, 0x0000, 0xF4F0, 0xFAF3, 0x0199, 0x925A, 0x9255, 0x9246, + 0x922E, 0x920F, 0x91EB, 0x91C1, 0x9195, 0x9167, 0x9137, 0x9109, 0x90DD, + 0x90B3, 0x908F, 0x9070, 0x9058, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, + 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, + 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0x9255, 0x9248, 0x9233, + 0x9217, 0x91F5, 0x91D0, 0x91A7, 0x917B, 0x914F, 0x9123, 0x90F7, 0x90CE, + 0x90A9, 0x9087, 0x906B, 0x9056, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, + 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, + 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0xF54D, 0xFF0D, 0x56C9, + 0xFF72, 0xFF75, 0xFF7D, 0xFF8A, 0xFF9A, 0xFFAD, 0xFFC3, 0xFFDB, 0xFFF4, + 0x000E, 0x0027, 0x003E, 0x0054, 0x0068, 0x0078, 0x0085, 0x008D, 0x0090, + 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, + 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, + 0xFF75, 0xFF7C, 0xFF87, 0xFF96, 0xFFA8, 0xFFBC, 0xFFD2, 0xFFE9, 0x0001, + 0x0019, 0x0030, 0x0046, 0x005A, 0x006C, 0x007B, 0x0086, 0x008D, 0x0090, + 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, + 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, + 0x03AD, 0x03AB, 0x03A8, 0x03A3, 0x039C, 0x0394, 0x038B, 0x0382, 0x0378, + 0x036D, 0x0363, 0x035A, 0x0351, 0x0349, 0x0342, 0x033D, 0x033A, 0x0339, + 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, + 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, + 0x03AC, 0x03A9, 0x03A4, 0x039E, 0x0397, 0x038F, 0x0386, 0x037C, 0x0373, + 0x0369, 0x0360, 0x0357, 0x034E, 0x0347, 0x0341, 0x033D, 0x033A, 0x0339, + 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, + 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, + 0xC483, 0xC493, 0xC4C3, 0xC50D, 0xC56E, 0xC5E1, 0xC662, 0xC6EE, 0xC780, + 0xC814, 0xC8A5, 0xC931, 0xC9B3, 0xCA26, 0xCA86, 0xCAD0, 0xCB00, 0xCB11, + 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, + 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, + 0xC492, 0xC4BC, 0xC4FF, 0xC556, 0xC5BF, 0xC636, 0xC6B7, 0xC73E, 0xC7CA, + 0xC855, 0xC8DD, 0xC95E, 0xC9D4, 0xCA3D, 0xCA94, 0xCAD7, 0xCB02, 0xCB11, + 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, + 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, + 0x0000, 0xFFFF, 0x0193, 0xFB78, 0xFD16, 0xB8F1, 0xB8EC, 0xB8DE, 0xB8C9, + 0xB8AD, 0xB88B, 0xB866, 0xB83D, 0xB813, 0xB7E8, 0xB7BE, 0xB795, 0xB770, + 0xB74E, 0xB732, 0xB71D, 0xB70F, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, + 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, + 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0xB8EC, 0xB8E0, 0xB8CD, 0xB8B3, + 0xB895, 0xB873, 0xB84D, 0xB826, 0xB7FD, 0xB7D5, 0xB7AE, 0xB788, 0xB766, + 0xB747, 0xB72E, 0xB71B, 0xB70E, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, + 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, + 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0x03B5, 0xFDFE, 0x114E, 0x0265, + 0x0264, 0x0261, 0x025C, 0x0256, 0x024F, 0x0247, 0x023E, 0x0235, 0x022B, + 0x0222, 0x0219, 0x0211, 0x020A, 0x0204, 0x01FF, 0x01FC, 0x01FB, 0x01FC, + 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, + 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x0264, + 0x0261, 0x025D, 0x0258, 0x0251, 0x024A, 0x0241, 0x0239, 0x0230, 0x0227, + 0x021E, 0x0216, 0x020F, 0x0208, 0x0203, 0x01FE, 0x01FC, 0x01FB, 0x01FC, + 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, + 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x03F7, + 0x03F7, 0x03F4, 0x03F0, 0x03EB, 0x03E4, 0x03DD, 0x03D6, 0x03CE, 0x03C6, + 0x03BE, 0x03B6, 0x03AF, 0x03A9, 0x03A4, 0x03A0, 0x039D, 0x039C, 0x039D, + 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, + 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0x03F7, 0x03F7, + 0x03F4, 0x03F1, 0x03EC, 0x03E6, 0x03E0, 0x03D9, 0x03D1, 0x03CA, 0x03C2, + 0x03BB, 0x03B4, 0x03AE, 0x03A8, 0x03A3, 0x03A0, 0x039D, 0x039C, 0x039D, + 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, + 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0xD10C, 0xD0FB, + 0xD0C9, 0xD07A, 0xD014, 0xCF9A, 0xCF12, 0xCE7E, 0xCDE4, 0xCD48, 0xCCAD, + 0xCC1A, 0xCB91, 0xCB17, 0xCAB1, 0xCA63, 0xCA31, 0xCA1F, 0xCA2F, 0xCA5C, + 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, + 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, 0xD0FD, 0xD0D0, + 0xD089, 0xD02D, 0xCFBE, 0xCF41, 0xCEB8, 0xCE29, 0xCD96, 0xCD02, 0xCC73, + 0xCBEB, 0xCB6D, 0xCAFF, 0xCAA2, 0xCA5C, 0xCA2F, 0xCA1F, 0xCA2F, 0xCA5C, + 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, + 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, }; diff --git a/assets/anims/anim_54.inc.c.rej b/assets/anims/anim_54.inc.c.rej new file mode 100644 index 00000000..23c65500 --- /dev/null +++ b/assets/anims/anim_54.inc.c.rej @@ -0,0 +1,283 @@ +diff a/assets/anims/anim_54.inc.c b/assets/anims/anim_54.inc.c (rejected hunks) +@@ -1,9 +1,9 @@ + static const struct Animation anim_54[] = { +- 1, +- 189, +- 0, +- 0, +- 0x1E, ++ 0, ++ 0, ++ 0, ++ 1, ++ 71, + ANIMINDEX_NUMPARTS(anim_54_indices), + anim_54_values, + anim_54_indices, +@@ -12,111 +12,163 @@ static const struct Animation anim_54[] = { + + + static const u16 anim_54_indices[] = { +- 0x0001, 0x0000, 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F, 0x0001, 0x0000, +- 0x0001, 0x028E, 0x0001, 0x028F, 0x0001, 0x0290, +- 0x001E, 0x0234, 0x001E, 0x0252, 0x001E, 0x0270, +- 0x001E, 0x01DA, 0x001E, 0x01F8, 0x001E, 0x0216, +- 0x0001, 0x01D6, 0x0001, 0x01D7, 0x0001, 0x01D8, +- 0x0001, 0x0024, 0x0001, 0x0025, 0x0001, 0x0026, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023, +- 0x0001, 0x0020, 0x0001, 0x0021, 0x0001, 0x0022, +- 0x0001, 0x01D2, 0x0001, 0x01D3, 0x0001, 0x01D4, +- 0x0001, 0x002B, 0x0001, 0x002C, 0x0001, 0x002D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x002A, +- 0x0001, 0x0027, 0x0001, 0x0028, 0x0001, 0x0029, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D5, +- 0x001E, 0x0178, 0x001E, 0x0196, 0x001E, 0x01B4, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x015A, +- 0x001E, 0x0100, 0x001E, 0x011E, 0x001E, 0x013C, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D9, +- 0x001E, 0x00A6, 0x001E, 0x00C4, 0x001E, 0x00E2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x0088, +- 0x001E, 0x002E, 0x001E, 0x004C, 0x001E, 0x006A, ++0x0001, 0x0000, 0x0046, 0x0001, 0x0001, 0x0047, 0x0001, 0x0048, 0x0001, ++ 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, ++ 0x0001, 0x004E, 0x0001, 0x004F, 0x0048, 0x0050, 0x0001, 0x0098, 0x0001, ++ 0x0099, 0x0048, 0x009A, 0x0001, 0x00E2, 0x0001, 0x00E3, 0x0001, 0x00E4, ++ 0x0048, 0x00E5, 0x0048, 0x012D, 0x0048, 0x0175, 0x0001, 0x01BD, 0x0001, ++ 0x01BE, 0x0001, 0x01BF, 0x0001, 0x01C0, 0x0001, 0x01C1, 0x0001, 0x01C2, ++ 0x0001, 0x01C3, 0x0001, 0x01C4, 0x0001, 0x01C5, 0x0048, 0x01C6, 0x0048, ++ 0x020E, 0x0048, 0x0256, 0x0001, 0x029E, 0x0001, 0x029F, 0x0001, 0x02A0, ++ 0x0001, 0x02A1, 0x0001, 0x02A2, 0x0001, 0x02A3, 0x0001, 0x02A4, 0x0001, ++ 0x02A5, 0x0001, 0x02A6, 0x0001, 0x02A7, 0x0001, 0x02A8, 0x0048, 0x02A9, ++ 0x0001, 0x02F1, 0x0001, 0x02F2, 0x0001, 0x02F3, 0x0048, 0x02F4, 0x0048, ++ 0x033C, 0x0048, 0x0384, 0x0001, 0x03CC, 0x0001, 0x03CD, 0x0001, 0x03CE, ++ 0x0001, 0x03CF, 0x0001, 0x03D0, 0x0048, 0x03D1, 0x0001, 0x0419, 0x0001, ++ 0x041A, 0x0001, 0x041B, 0x0048, 0x041C, 0x0047, 0x0464, 0x0048, 0x04AB, + }; + + static const s16 anim_54_values[] = { +- 0x0000, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A7, 0x00A4, 0x00A2, +- 0x009F, 0x009C, 0x0099, 0x0097, 0x0095, 0x0093, 0x0092, 0x0092, +- 0x0092, 0x0093, 0x0094, 0x0096, 0x0099, 0x009B, 0x009E, 0x00A0, +- 0x00A3, 0x00A5, 0x00A7, 0x00A9, 0x00AB, 0x00AC, 0x00AC, 0x3FFF, +- 0xE441, 0xF273, 0xFBD8, 0xE392, 0xD5A2, 0xEA6D, 0xE897, 0x13E1, +- 0x08D0, 0xF6A5, 0xE501, 0x87F6, 0x5359, 0x4901, 0x26DE, 0x26DA, +- 0x26D0, 0x26C0, 0x26AB, 0x2693, 0x2679, 0x265E, 0x2643, 0x2629, +- 0x2611, 0x25FC, 0x25EC, 0x25E2, 0x25DE, 0x25E1, 0x25EA, 0x25F8, +- 0x260B, 0x2620, 0x2638, 0x2651, 0x266B, 0x2684, 0x269C, 0x26B1, +- 0x26C4, 0x26D2, 0x26DB, 0x26DE, 0x0E76, 0x0E82, 0x0EA5, 0x0EDA, +- 0x0F1D, 0x0F6C, 0x0FC2, 0x101C, 0x1076, 0x10CC, 0x111A, 0x115E, +- 0x1193, 0x11B5, 0x11C2, 0x11B7, 0x1199, 0x116A, 0x112E, 0x10E7, +- 0x1099, 0x1046, 0x0FF2, 0x0F9F, 0x0F51, 0x0F0A, 0x0ECE, 0x0E9F, +- 0x0E81, 0x0E76, 0xC8E8, 0xC8DE, 0xC8C3, 0xC899, 0xC864, 0xC826, +- 0xC7E2, 0xC79B, 0xC754, 0xC711, 0xC6D3, 0xC69D, 0xC674, 0xC658, +- 0xC64F, 0xC657, 0xC66F, 0xC694, 0xC6C3, 0xC6FB, 0xC739, 0xC77A, +- 0xC7BC, 0xC7FE, 0xC83B, 0xC873, 0xC8A2, 0xC8C7, 0xC8DF, 0xC8E8, +- 0x28E1, 0x2947, 0x2A64, 0x2C1A, 0x2E4B, 0x30D7, 0x33A0, 0x3687, +- 0x396F, 0x3C38, 0x3EC4, 0x40F4, 0x42AA, 0x43C8, 0x442E, 0x43D4, +- 0x42DA, 0x4157, 0x3F64, 0x3D1A, 0x3A92, 0x37E4, 0x352B, 0x327D, +- 0x2FF5, 0x2DAB, 0x2BB8, 0x2A35, 0x293A, 0x28E1, 0x160C, 0x15F9, +- 0x15C5, 0x1574, 0x150D, 0x1494, 0x1411, 0x1387, 0x12FE, 0x127B, +- 0x1202, 0x119B, 0x114A, 0x1115, 0x1103, 0x1113, 0x1141, 0x1189, +- 0x11E5, 0x1251, 0x12C9, 0x1347, 0x13C8, 0x1446, 0x14BE, 0x152A, +- 0x1586, 0x15CE, 0x15FC, 0x160C, 0x0C9B, 0x0CBA, 0x0D14, 0x0D9D, +- 0x0E4C, 0x0F18, 0x0FF8, 0x10E0, 0x11C9, 0x12A8, 0x1375, 0x1424, +- 0x14AD, 0x1506, 0x1526, 0x150A, 0x14BC, 0x1443, 0x13A7, 0x12EF, +- 0x1224, 0x114E, 0x1073, 0x0F9D, 0x0ED2, 0x0E1A, 0x0D7E, 0x0D05, +- 0x0CB6, 0x0C9B, 0xAE77, 0xAE3E, 0xAD9D, 0xACA7, 0xAB6C, 0xA9FE, +- 0xA86D, 0xA6CC, 0xA52A, 0xA399, 0xA22B, 0xA0F0, 0x9FFA, 0x9F59, +- 0x9F20, 0x9F52, 0x9FDF, 0xA0B9, 0xA1D1, 0xA31A, 0xA486, 0xA607, +- 0xA790, 0xA911, 0xAA7D, 0xABC6, 0xACDE, 0xADB8, 0xAE45, 0xAE77, +- 0xDECF, 0xDED1, 0xDED6, 0xDEDD, 0xDEE7, 0xDEF3, 0xDEFF, 0xDF0C, +- 0xDF1A, 0xDF26, 0xDF32, 0xDF3C, 0xDF43, 0xDF48, 0xDF4A, 0xDF49, +- 0xDF44, 0xDF3D, 0xDF35, 0xDF2A, 0xDF1F, 0xDF13, 0xDF06, 0xDEFA, +- 0xDEEF, 0xDEE4, 0xDEDC, 0xDED5, 0xDED0, 0xDECF, 0xF348, 0xF343, +- 0xF334, 0xF31C, 0xF2FE, 0xF2DA, 0xF2B4, 0xF28C, 0xF264, 0xF23D, +- 0xF21A, 0xF1FC, 0xF1E4, 0xF1D5, 0xF1CF, 0xF1D4, 0xF1E1, 0xF1F6, +- 0xF211, 0xF231, 0xF254, 0xF279, 0xF29F, 0xF2C4, 0xF2E7, 0xF306, +- 0xF321, 0xF336, 0xF344, 0xF348, 0xC276, 0xC271, 0xC261, 0xC249, +- 0xC22B, 0xC207, 0xC1E0, 0xC1B8, 0xC190, 0xC169, 0xC145, 0xC127, +- 0xC10F, 0xC0FF, 0xC0FA, 0xC0FF, 0xC10C, 0xC121, 0xC13C, 0xC15C, +- 0xC180, 0xC1A5, 0xC1CB, 0xC1F0, 0xC214, 0xC234, 0xC24F, 0xC264, +- 0xC271, 0xC276, 0x3B81, 0x3BC7, 0x3C8A, 0x3DB7, 0x3F38, 0x40F7, +- 0x42E1, 0x44E0, 0x46DE, 0x48C8, 0x4A87, 0x4C08, 0x4D35, 0x4DF9, +- 0x4E3E, 0x4E01, 0x4D55, 0x4C4C, 0x4AF5, 0x4963, 0x47A6, 0x45CF, +- 0x43F0, 0x4219, 0x405D, 0x3ECA, 0x3D74, 0x3C6A, 0x3BBE, 0x3B81, +- 0x0F41, 0x0F3E, 0x0F36, 0x0F29, 0x0F1A, 0x0F07, 0x0EF3, 0x0EDE, +- 0x0EC9, 0x0EB5, 0x0EA3, 0x0E93, 0x0E87, 0x0E7F, 0x0E7C, 0x0E7E, +- 0x0E85, 0x0E90, 0x0E9E, 0x0EAF, 0x0EC1, 0x0ED4, 0x0EE8, 0x0EFB, +- 0x0F0E, 0x0F1E, 0x0F2C, 0x0F37, 0x0F3E, 0x0F41, 0x027B, 0x0283, +- 0x0298, 0x02B9, 0x02E3, 0x0314, 0x0349, 0x0381, 0x03B9, 0x03EE, +- 0x041F, 0x0449, 0x046A, 0x047F, 0x0487, 0x0480, 0x046D, 0x0450, +- 0x042B, 0x03FF, 0x03CF, 0x039B, 0x0367, 0x0334, 0x0303, 0x02D7, +- 0x02B2, 0x0295, 0x0282, 0x027B, 0x97AD, 0x9784, 0x9710, 0x965F, +- 0x957D, 0x9475, 0x9355, 0x9228, 0x90FB, 0x8FDB, 0x8ED3, 0x8DF1, +- 0x8D40, 0x8CCC, 0x8CA3, 0x8CC7, 0x8D2C, 0x8DC9, 0x8E93, 0x8F80, +- 0x9086, 0x919B, 0x92B5, 0x93CA, 0x94D0, 0x95BD, 0x9687, 0x9724, +- 0x9789, 0x97AD, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x12F7, 0x12F7, 0x12F7, 0x12F7, 0x12F8, 0x12F8, +- 0x12F9, 0x12F9, 0x12FA, 0x12FB, 0x12FB, 0x12FC, 0x12FC, 0x12FC, +- 0x12FC, 0x12FC, 0x12FC, 0x12FC, 0x12FB, 0x12FB, 0x12FA, 0x12FA, +- 0x12F9, 0x12F9, 0x12F8, 0x12F8, 0x12F7, 0x12F7, 0x12F7, 0x12F7, +- 0xFEE7, 0xFEEE, 0xFEFF, 0xFF19, 0xFF3B, 0xFF62, 0xFF8D, 0xFFBA, +- 0xFFE7, 0x0011, 0x0039, 0x005A, 0x0075, 0x0086, 0x008C, 0x0087, +- 0x0078, 0x0060, 0x0042, 0x001F, 0xFFF9, 0xFFCF, 0xFFA5, 0xFF7C, +- 0xFF55, 0xFF31, 0xFF13, 0xFEFC, 0xFEED, 0xFEE7, 0x05CC, 0x05C0, +- 0x059E, 0x0569, 0x0526, 0x04D8, 0x0482, 0x0429, 0x03CF, 0x037A, +- 0x032B, 0x02E8, 0x02B4, 0x0291, 0x0285, 0x0290, 0x02AE, 0x02DC, +- 0x0318, 0x035F, 0x03AD, 0x03FF, 0x0453, 0x04A5, 0x04F3, 0x0539, +- 0x0575, 0x05A4, 0x05C2, 0x05CC, 0x1510, 0x150C, 0x1503, 0x14F5, +- 0x14E3, 0x14CE, 0x14B6, 0x149E, 0x1486, 0x146F, 0x145A, 0x1448, +- 0x143A, 0x1430, 0x142D, 0x1430, 0x1438, 0x1445, 0x1455, 0x1468, +- 0x147D, 0x1493, 0x14AA, 0x14C0, 0x14D5, 0x14E8, 0x14F8, 0x1505, +- 0x150D, 0x1510, 0xF6F7, 0xF6ED, 0xF6CF, 0xF6A0, 0xF665, 0xF621, +- 0xF5D6, 0xF588, 0xF539, 0xF4EE, 0xF4AA, 0xF46F, 0xF441, 0xF423, +- 0xF418, 0xF421, 0xF43C, 0xF464, 0xF499, 0xF4D7, 0xF51B, 0xF563, +- 0xF5AC, 0xF5F4, 0xF639, 0xF676, 0xF6AB, 0xF6D4, 0xF6EE, 0xF6F7, +- 0xFE90, 0xFE99, 0xFEB1, 0xFED7, 0xFF07, 0xFF3E, 0xFF7C, 0xFFBB, +- 0xFFFB, 0x0037, 0x006F, 0x009F, 0x00C4, 0x00DD, 0x00E6, 0x00DE, +- 0x00C9, 0x00A7, 0x007D, 0x004A, 0x0013, 0xFFD9, 0xFF9D, 0xFF63, +- 0xFF2B, 0xFEF9, 0xFECE, 0xFEAD, 0xFE98, 0xFE90, 0xD96B, 0x06DD, +- 0x4534, ++0x0000, 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, ++ 0x00B9, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, 0x00B2, ++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00B9, ++ 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B3, 0x00B2, 0x00B2, ++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x0000, ++ 0x3FFA, 0x38E3, 0x3FFA, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, 0x0ED5, ++ 0x0ED8, 0x0EE0, 0x0EED, 0x0EFD, 0x0F11, 0x0F27, 0x0F3F, 0x0F58, 0x0F71, ++ 0x0F8A, 0x0FA2, 0x0FB8, 0x0FCC, 0x0FDC, 0x0FE9, 0x0FF1, 0x0FF4, 0x0FF1, ++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, ++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0x0ED8, ++ 0x0EDF, 0x0EEB, 0x0EF9, 0x0F0B, 0x0F20, 0x0F36, 0x0F4D, 0x0F64, 0x0F7C, ++ 0x0F93, 0x0FA9, 0x0FBE, 0x0FD0, 0x0FDE, 0x0FEA, 0x0FF1, 0x0FF4, 0x0FF1, ++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, ++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0xFFFF, ++ 0x0000, 0xED48, 0xED4F, 0xED61, 0xED7F, 0xEDA5, 0xEDD3, 0xEE06, 0xEE3D, ++ 0xEE77, 0xEEB1, 0xEEEB, 0xEF22, 0xEF55, 0xEF83, 0xEFA9, 0xEFC7, 0xEFD9, ++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, ++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, ++ 0xED48, 0xED4E, 0xED5F, 0xED79, 0xED9C, 0xEDC5, 0xEDF4, 0xEE27, 0xEE5D, ++ 0xEE94, 0xEECB, 0xEF01, 0xEF34, 0xEF63, 0xEF8C, 0xEFAF, 0xEFC9, 0xEFDA, ++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, ++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, ++ 0xED48, 0xFFFE, 0x0001, 0xC170, 0x242B, 0x2429, 0x2423, 0x241B, 0x240F, ++ 0x2401, 0x23F2, 0x23E1, 0x23D0, 0x23BE, 0x23AD, 0x239C, 0x238D, 0x237F, ++ 0x2374, 0x236B, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, ++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, ++ 0x241C, 0x2424, 0x2429, 0x242B, 0x2429, 0x2424, 0x241C, 0x2412, 0x2405, ++ 0x23F7, 0x23E8, 0x23D8, 0x23C7, 0x23B7, 0x23A7, 0x2397, 0x2389, 0x237D, ++ 0x2372, 0x236A, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, ++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, ++ 0x241C, 0x2424, 0x2429, 0x242B, 0xE53D, 0xE542, 0xE550, 0xE565, 0xE582, ++ 0xE5A4, 0xE5CA, 0xE5F3, 0xE61E, 0xE64A, 0xE675, 0xE69E, 0xE6C5, 0xE6E7, ++ 0xE703, 0xE719, 0xE727, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, ++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, ++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE541, 0xE54E, 0xE561, 0xE57B, 0xE59A, ++ 0xE5BD, 0xE5E3, 0xE60B, 0xE634, 0xE65D, 0xE685, 0xE6AC, 0xE6CF, 0xE6ED, ++ 0xE707, 0xE71B, 0xE728, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, ++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, ++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE6CA, 0xE6C4, 0xE6B1, 0xE695, 0xE670, ++ 0xE644, 0xE613, 0xE5DD, 0xE5A5, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, ++ 0xE47D, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, ++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69A, 0xE679, 0xE651, ++ 0xE624, 0xE5F2, 0xE5BE, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE499, ++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, ++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xF989, 0x0344, 0xF9BC, 0xB507, 0xEAA7, ++ 0x0B25, 0xFFFE, 0x0001, 0xC170, 0xDBD4, 0xDBD6, 0xDBDC, 0xDBE4, 0xDBF0, ++ 0xDBFE, 0xDC0D, 0xDC1E, 0xDC2F, 0xDC41, 0xDC52, 0xDC62, 0xDC72, 0xDC80, ++ 0xDC8B, 0xDC94, 0xDC99, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, ++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, ++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0xDBD6, 0xDBDB, 0xDBE3, 0xDBED, 0xDBFA, ++ 0xDC08, 0xDC17, 0xDC27, 0xDC38, 0xDC48, 0xDC58, 0xDC68, 0xDC76, 0xDC82, ++ 0xDC8D, 0xDC95, 0xDC9A, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, ++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, ++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0x1AC2, 0x1ABD, 0x1AAF, 0x1A99, 0x1A7D, ++ 0x1A5B, 0x1A35, 0x1A0C, 0x19E1, 0x19B5, 0x198A, 0x1961, 0x193A, 0x1918, ++ 0x18FC, 0x18E6, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, ++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, ++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0x1ABE, 0x1AB1, 0x1A9E, 0x1A84, 0x1A65, ++ 0x1A42, 0x1A1C, 0x19F4, 0x19CB, 0x19A2, 0x197A, 0x1954, 0x1931, 0x1912, ++ 0x18F8, 0x18E4, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, ++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, ++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0xE6CA, 0xE6C4, 0xE6B2, 0xE695, 0xE670, ++ 0xE644, 0xE613, 0xE5DD, 0xE5A6, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, ++ 0xE47E, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, ++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69B, 0xE679, 0xE651, ++ 0xE624, 0xE5F3, 0xE5BF, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE49A, ++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, ++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0x066C, 0xFCF0, 0xF9BE, 0x4ABB, 0x154E, ++ 0x0B14, 0xFFFF, 0x0000, 0xF4F0, 0xFAF3, 0x0199, 0x925A, 0x9255, 0x9246, ++ 0x922E, 0x920F, 0x91EB, 0x91C1, 0x9195, 0x9167, 0x9137, 0x9109, 0x90DD, ++ 0x90B3, 0x908F, 0x9070, 0x9058, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, ++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, ++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0x9255, 0x9248, 0x9233, ++ 0x9217, 0x91F5, 0x91D0, 0x91A7, 0x917B, 0x914F, 0x9123, 0x90F7, 0x90CE, ++ 0x90A9, 0x9087, 0x906B, 0x9056, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, ++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, ++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0xF54D, 0xFF0D, 0x56C9, ++ 0xFF72, 0xFF75, 0xFF7D, 0xFF8A, 0xFF9A, 0xFFAD, 0xFFC3, 0xFFDB, 0xFFF4, ++ 0x000E, 0x0027, 0x003E, 0x0054, 0x0068, 0x0078, 0x0085, 0x008D, 0x0090, ++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, ++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, ++ 0xFF75, 0xFF7C, 0xFF87, 0xFF96, 0xFFA8, 0xFFBC, 0xFFD2, 0xFFE9, 0x0001, ++ 0x0019, 0x0030, 0x0046, 0x005A, 0x006C, 0x007B, 0x0086, 0x008D, 0x0090, ++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, ++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, ++ 0x03AD, 0x03AB, 0x03A8, 0x03A3, 0x039C, 0x0394, 0x038B, 0x0382, 0x0378, ++ 0x036D, 0x0363, 0x035A, 0x0351, 0x0349, 0x0342, 0x033D, 0x033A, 0x0339, ++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, ++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, ++ 0x03AC, 0x03A9, 0x03A4, 0x039E, 0x0397, 0x038F, 0x0386, 0x037C, 0x0373, ++ 0x0369, 0x0360, 0x0357, 0x034E, 0x0347, 0x0341, 0x033D, 0x033A, 0x0339, ++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, ++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, ++ 0xC483, 0xC493, 0xC4C3, 0xC50D, 0xC56E, 0xC5E1, 0xC662, 0xC6EE, 0xC780, ++ 0xC814, 0xC8A5, 0xC931, 0xC9B3, 0xCA26, 0xCA86, 0xCAD0, 0xCB00, 0xCB11, ++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, ++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, ++ 0xC492, 0xC4BC, 0xC4FF, 0xC556, 0xC5BF, 0xC636, 0xC6B7, 0xC73E, 0xC7CA, ++ 0xC855, 0xC8DD, 0xC95E, 0xC9D4, 0xCA3D, 0xCA94, 0xCAD7, 0xCB02, 0xCB11, ++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, ++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, ++ 0x0000, 0xFFFF, 0x0193, 0xFB78, 0xFD16, 0xB8F1, 0xB8EC, 0xB8DE, 0xB8C9, ++ 0xB8AD, 0xB88B, 0xB866, 0xB83D, 0xB813, 0xB7E8, 0xB7BE, 0xB795, 0xB770, ++ 0xB74E, 0xB732, 0xB71D, 0xB70F, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, ++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, ++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0xB8EC, 0xB8E0, 0xB8CD, 0xB8B3, ++ 0xB895, 0xB873, 0xB84D, 0xB826, 0xB7FD, 0xB7D5, 0xB7AE, 0xB788, 0xB766, ++ 0xB747, 0xB72E, 0xB71B, 0xB70E, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, ++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, ++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0x03B5, 0xFDFE, 0x114E, 0x0265, ++ 0x0264, 0x0261, 0x025C, 0x0256, 0x024F, 0x0247, 0x023E, 0x0235, 0x022B, ++ 0x0222, 0x0219, 0x0211, 0x020A, 0x0204, 0x01FF, 0x01FC, 0x01FB, 0x01FC, ++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, ++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x0264, ++ 0x0261, 0x025D, 0x0258, 0x0251, 0x024A, 0x0241, 0x0239, 0x0230, 0x0227, ++ 0x021E, 0x0216, 0x020F, 0x0208, 0x0203, 0x01FE, 0x01FC, 0x01FB, 0x01FC, ++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, ++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x03F7, ++ 0x03F7, 0x03F4, 0x03F0, 0x03EB, 0x03E4, 0x03DD, 0x03D6, 0x03CE, 0x03C6, ++ 0x03BE, 0x03B6, 0x03AF, 0x03A9, 0x03A4, 0x03A0, 0x039D, 0x039C, 0x039D, ++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, ++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0x03F7, 0x03F7, ++ 0x03F4, 0x03F1, 0x03EC, 0x03E6, 0x03E0, 0x03D9, 0x03D1, 0x03CA, 0x03C2, ++ 0x03BB, 0x03B4, 0x03AE, 0x03A8, 0x03A3, 0x03A0, 0x039D, 0x039C, 0x039D, ++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, ++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0xD10C, 0xD0FB, ++ 0xD0C9, 0xD07A, 0xD014, 0xCF9A, 0xCF12, 0xCE7E, 0xCDE4, 0xCD48, 0xCCAD, ++ 0xCC1A, 0xCB91, 0xCB17, 0xCAB1, 0xCA63, 0xCA31, 0xCA1F, 0xCA2F, 0xCA5C, ++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, ++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, 0xD0FD, 0xD0D0, ++ 0xD089, 0xD02D, 0xCFBE, 0xCF41, 0xCEB8, 0xCE29, 0xCD96, 0xCD02, 0xCC73, ++ 0xCBEB, 0xCB6D, 0xCAFF, 0xCAA2, 0xCA5C, 0xCA2F, 0xCA1F, 0xCA2F, 0xCA5C, ++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, ++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, + }; + diff --git a/assets/anims/anim_6F_70.inc.c b/assets/anims/anim_6F_70.inc.c index aa21be55..7bb982f6 100644 --- a/assets/anims/anim_6F_70.inc.c +++ b/assets/anims/anim_6F_70.inc.c @@ -24,35 +24,46 @@ static const struct Animation anim_70[] = { static const u16 anim_6F_70_indices[] = { - 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x000A, 0x0027, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0026, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0025, - 0x0001, 0x0021, 0x0001, 0x0022, 0x0001, 0x0023, - 0x0001, 0x0007, 0x0001, 0x0008, 0x0001, 0x0009, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0006, - 0x0001, 0x0003, 0x0001, 0x0004, 0x0001, 0x0005, - 0x0001, 0x001D, 0x0001, 0x001E, 0x0001, 0x001F, - 0x0001, 0x000C, 0x0001, 0x000D, 0x0001, 0x000E, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000B, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000A, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0020, - 0x0001, 0x001A, 0x0001, 0x001B, 0x0001, 0x001C, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0019, - 0x0001, 0x0016, 0x0001, 0x0017, 0x0001, 0x0018, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0024, - 0x0001, 0x0013, 0x0001, 0x0014, 0x0001, 0x0015, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0012, - 0x0001, 0x000F, 0x0001, 0x0010, 0x0001, 0x0011, + 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, + 0x0004, 0x0001, 0x0005, 0x000A, 0x0006, 0x0003, 0x0010, 0x000A, 0x0013, + 0x0008, 0x001D, 0x000A, 0x0025, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, + 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, + 0x0001, 0x0036, 0x0001, 0x0037, 0x0001, 0x0038, 0x000A, 0x0039, 0x0006, + 0x0043, 0x0001, 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, + 0x0001, 0x004D, 0x0001, 0x004E, 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, + 0x0051, 0x0001, 0x0052, 0x0009, 0x0053, 0x0009, 0x005C, 0x0001, 0x0065, + 0x000A, 0x0066, 0x000A, 0x0070, 0x0001, 0x007A, 0x0007, 0x007B, 0x000A, + 0x0082, 0x0001, 0x008C, 0x0001, 0x008D, 0x0001, 0x008E, 0x0001, 0x008F, + 0x000A, 0x0090, 0x000A, 0x009A, 0x0001, 0x00A4, 0x0001, 0x00A5, 0x0001, + 0x00A6, 0x0001, 0x00A7, 0x000A, 0x00A8, 0x000A, 0x00B2, 0x0001, 0x00BC, + 0x0001, 0x00BD, 0x0001, 0x00BE, 0x0001, 0x00BF, 0x0009, 0x00C0, 0x0008, + 0x00C9, 0x0001, 0x00D1, 0x0001, 0x00D2, 0x0001, 0x00D3, 0x0001, 0x00D4, }; static const s16 anim_6F_70_values[] = { - 0x0000, 0x0090, 0x3FFF, 0x00A8, 0xF984, 0xE96B, 0xC898, 0x1106, - 0xE692, 0xB427, 0xED8C, 0xC68E, 0xF40A, 0x1E67, 0xB4BD, 0x001B, - 0x025B, 0xCB25, 0x5AFE, 0x008D, 0xFECB, 0x83AC, 0x0095, 0xFF09, - 0xCC42, 0x5730, 0xFFBA, 0x0051, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, - 0xBF5F, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x2A6B, 0x0F71, 0x3FFF, - 0x5948, 0x7290, 0x8BD8, 0xA521, 0xBE69, 0xD7B2, 0xF0FA, 0x0A43, - 0x238B, + 0x0000, 0x0090, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x3FFF, 0x5998, 0x7332, 0x8CCB, 0xA665, 0xBFFE, 0xD998, 0xF331, + 0x0CCC, 0x2665, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0F71, 0x0001, 0x0001, 0xF600, 0xFFFE, 0x0001, 0xC170, + 0x1105, 0xE691, 0xA0E5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xC897, 0x00A8, 0xF983, 0xE96A, 0xFFFE, 0x0001, 0xC170, 0xF408, + 0x1E67, 0xA17A, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xC68D, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xED8B, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, 0xFFB9, 0x0051, 0x7778, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x5730, 0x00F3, 0xFF26, 0xA56A, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, + 0x008D, 0xFECA, 0x7553, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x5AFE, 0xFEE3, 0x0264, 0xA441, }; diff --git a/assets/anims/anim_6F_70.inc.c.rej b/assets/anims/anim_6F_70.inc.c.rej new file mode 100644 index 00000000..bfd86036 --- /dev/null +++ b/assets/anims/anim_6F_70.inc.c.rej @@ -0,0 +1,75 @@ +diff a/assets/anims/anim_6F_70.inc.c b/assets/anims/anim_6F_70.inc.c (rejected hunks) +@@ -24,35 +24,46 @@ static const struct Animation anim_70[] = { + + + static const u16 anim_6F_70_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000A, 0x0027, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0026, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0025, +- 0x0001, 0x0021, 0x0001, 0x0022, 0x0001, 0x0023, +- 0x0001, 0x0007, 0x0001, 0x0008, 0x0001, 0x0009, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0006, +- 0x0001, 0x0003, 0x0001, 0x0004, 0x0001, 0x0005, +- 0x0001, 0x001D, 0x0001, 0x001E, 0x0001, 0x001F, +- 0x0001, 0x000C, 0x0001, 0x000D, 0x0001, 0x000E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0020, +- 0x0001, 0x001A, 0x0001, 0x001B, 0x0001, 0x001C, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0019, +- 0x0001, 0x0016, 0x0001, 0x0017, 0x0001, 0x0018, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0024, +- 0x0001, 0x0013, 0x0001, 0x0014, 0x0001, 0x0015, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0012, +- 0x0001, 0x000F, 0x0001, 0x0010, 0x0001, 0x0011, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x000A, 0x0006, 0x0003, 0x0010, 0x000A, 0x0013, ++ 0x0008, 0x001D, 0x000A, 0x0025, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, ++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, ++ 0x0001, 0x0036, 0x0001, 0x0037, 0x0001, 0x0038, 0x000A, 0x0039, 0x0006, ++ 0x0043, 0x0001, 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, ++ 0x0001, 0x004D, 0x0001, 0x004E, 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, ++ 0x0051, 0x0001, 0x0052, 0x0009, 0x0053, 0x0009, 0x005C, 0x0001, 0x0065, ++ 0x000A, 0x0066, 0x000A, 0x0070, 0x0001, 0x007A, 0x0007, 0x007B, 0x000A, ++ 0x0082, 0x0001, 0x008C, 0x0001, 0x008D, 0x0001, 0x008E, 0x0001, 0x008F, ++ 0x000A, 0x0090, 0x000A, 0x009A, 0x0001, 0x00A4, 0x0001, 0x00A5, 0x0001, ++ 0x00A6, 0x0001, 0x00A7, 0x000A, 0x00A8, 0x000A, 0x00B2, 0x0001, 0x00BC, ++ 0x0001, 0x00BD, 0x0001, 0x00BE, 0x0001, 0x00BF, 0x0009, 0x00C0, 0x0008, ++ 0x00C9, 0x0001, 0x00D1, 0x0001, 0x00D2, 0x0001, 0x00D3, 0x0001, 0x00D4, + }; + + static const s16 anim_6F_70_values[] = { +- 0x0000, 0x0090, 0x3FFF, 0x00A8, 0xF984, 0xE96B, 0xC898, 0x1106, +- 0xE692, 0xB427, 0xED8C, 0xC68E, 0xF40A, 0x1E67, 0xB4BD, 0x001B, +- 0x025B, 0xCB25, 0x5AFE, 0x008D, 0xFECB, 0x83AC, 0x0095, 0xFF09, +- 0xCC42, 0x5730, 0xFFBA, 0x0051, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, +- 0xBF5F, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x2A6B, 0x0F71, 0x3FFF, +- 0x5948, 0x7290, 0x8BD8, 0xA521, 0xBE69, 0xD7B2, 0xF0FA, 0x0A43, +- 0x238B, ++ 0x0000, 0x0090, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x3FFF, 0x5998, 0x7332, 0x8CCB, 0xA665, 0xBFFE, 0xD998, 0xF331, ++ 0x0CCC, 0x2665, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0F71, 0x0001, 0x0001, 0xF600, 0xFFFE, 0x0001, 0xC170, ++ 0x1105, 0xE691, 0xA0E5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xC897, 0x00A8, 0xF983, 0xE96A, 0xFFFE, 0x0001, 0xC170, 0xF408, ++ 0x1E67, 0xA17A, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xC68D, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xED8B, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, 0xFFB9, 0x0051, 0x7778, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x5730, 0x00F3, 0xFF26, 0xA56A, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, ++ 0x008D, 0xFECA, 0x7553, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x5AFE, 0xFEE3, 0x0264, 0xA441, + }; + diff --git a/assets/anims/anim_72_73.inc.c b/assets/anims/anim_72_73.inc.c index 411baabb..6efe1d8a 100644 --- a/assets/anims/anim_72_73.inc.c +++ b/assets/anims/anim_72_73.inc.c @@ -1,53 +1,53 @@ static const struct Animation anim_72[] = { - 0, - 189, - 0, - 0, - 0x48, - ANIMINDEX_NUMPARTS(anim_72_73_indices), - anim_72_73_values, - anim_72_73_indices, - 0, + 0, + 189, + 0, + 0, + 0x48, + ANIMINDEX_NUMPARTS(anim_72_73_indices), + anim_72_73_values, + anim_72_73_indices, + 0, }; static const struct Animation anim_73[] = { - 0, - 189, - 0, - 0, - 0x48, - ANIMINDEX_NUMPARTS(anim_72_73_indices), - anim_72_73_values, - anim_72_73_indices, - 0, + 0, + 189, + 0, + 0, + 0x48, + ANIMINDEX_NUMPARTS(anim_72_73_indices), + anim_72_73_values, + anim_72_73_indices, + 0, }; static const u16 anim_72_73_indices[] = { - 0x0001, 0x0000, 0x0048, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0049, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0833, - 0x0048, 0x07A3, 0x0001, 0x0000, 0x0048, 0x07EB, - 0x0048, 0x0713, 0x0001, 0x0000, 0x0048, 0x075B, - 0x0001, 0x070F, 0x0001, 0x0710, 0x0001, 0x0711, - 0x0048, 0x0123, 0x0048, 0x016B, 0x0048, 0x01B3, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x00DB, - 0x0048, 0x004A, 0x0048, 0x0092, 0x0001, 0x00DA, - 0x0001, 0x067C, 0x0001, 0x067D, 0x0001, 0x067E, - 0x0048, 0x031B, 0x0048, 0x0363, 0x0048, 0x03AB, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x02D3, - 0x0048, 0x01FB, 0x0048, 0x0243, 0x0048, 0x028B, - 0x0001, 0x0000, 0x0048, 0x067F, 0x0048, 0x06C7, - 0x0048, 0x05A4, 0x0048, 0x05EC, 0x0048, 0x0634, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x055C, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0514, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0712, - 0x0001, 0x0483, 0x0048, 0x0484, 0x0048, 0x04CC, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x043B, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x03F3, + 0x0001, 0x0000, 0x0048, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0049, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0833, + 0x0048, 0x07A3, 0x0001, 0x0000, 0x0048, 0x07EB, + 0x0048, 0x0713, 0x0001, 0x0000, 0x0048, 0x075B, + 0x0001, 0x070F, 0x0001, 0x0710, 0x0001, 0x0711, + 0x0048, 0x0123, 0x0048, 0x016B, 0x0048, 0x01B3, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x00DB, + 0x0048, 0x004A, 0x0048, 0x0092, 0x0001, 0x00DA, + 0x0001, 0x067C, 0x0001, 0x067D, 0x0001, 0x067E, + 0x0048, 0x031B, 0x0048, 0x0363, 0x0048, 0x03AB, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x02D3, + 0x0048, 0x01FB, 0x0048, 0x0243, 0x0048, 0x028B, + 0x0001, 0x0000, 0x0048, 0x067F, 0x0048, 0x06C7, + 0x0048, 0x05A4, 0x0048, 0x05EC, 0x0048, 0x0634, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x055C, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0514, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0712, + 0x0001, 0x0483, 0x0048, 0x0484, 0x0048, 0x04CC, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x043B, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x03F3, }; static const s16 anim_72_73_values[] = { - 0x0000, 0x00C0, 0x00BD, 0x00B8, 0x00B4, 0x00B1, 0x00AF, 0x00AD, + 0x0000, 0x00C0, 0x00BD, 0x00B8, 0x00B4, 0x00B1, 0x00AF, 0x00AD, 0x00AB, 0x00AC, 0x00AE, 0x00B0, 0x00B3, 0x00B7, 0x00BA, 0x00BE, 0x00C2, 0x00C5, 0x00C8, 0x00CB, 0x00CE, 0x00D1, 0x00D3, 0x00D6, 0x00D8, 0x00D9, 0x00D9, 0x00D9, 0x00D8, 0x00D7, 0x00D5, 0x00D2, diff --git a/assets/anims/anim_81.inc.c b/assets/anims/anim_81.inc.c index f82ba32e..c6bbe814 100644 --- a/assets/anims/anim_81.inc.c +++ b/assets/anims/anim_81.inc.c @@ -3,7 +3,7 @@ static const struct Animation anim_81[] = { 189, 0, 0, - 0x32, + 97, ANIMINDEX_NUMPARTS(anim_81_indices), anim_81_values, anim_81_indices, @@ -12,298 +12,332 @@ static const struct Animation anim_81[] = { static const u16 anim_81_indices[] = { - 0x0001, 0x0000, 0x0032, 0x0001, 0x0032, 0x0033, 0x0001, 0x0000, 0x0001, 0x0065, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0838, - 0x0032, 0x07A2, 0x0032, 0x07D4, 0x0032, 0x0806, - 0x0032, 0x070C, 0x0032, 0x073E, 0x0032, 0x0770, - 0x0032, 0x0675, 0x0032, 0x06A7, 0x0032, 0x06D9, - 0x0032, 0x012E, 0x0032, 0x0160, 0x0032, 0x0192, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00FC, - 0x0032, 0x0066, 0x0032, 0x0098, 0x0032, 0x00CA, - 0x0032, 0x05DE, 0x0032, 0x0610, 0x0032, 0x0642, - 0x0032, 0x028C, 0x0032, 0x02BE, 0x0032, 0x02F0, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x025A, - 0x0032, 0x01C4, 0x0032, 0x01F6, 0x0032, 0x0228, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0674, - 0x0032, 0x0548, 0x0032, 0x057A, 0x0032, 0x05AC, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0516, - 0x0032, 0x0480, 0x0032, 0x04B2, 0x0032, 0x04E4, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x070B, - 0x0032, 0x03EA, 0x0032, 0x041C, 0x0032, 0x044E, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x03B8, - 0x0032, 0x0322, 0x0032, 0x0354, 0x0032, 0x0386, + 0x0001, 0x0000, 0x0010, 0x0001, 0x0001, 0x0011, 0x0011, 0x0012, 0x0011, + 0x0023, 0x0011, 0x0034, 0x0010, 0x0045, 0x0011, 0x0055, 0x0001, 0x0066, + 0x0062, 0x0067, 0x0062, 0x00C9, 0x0061, 0x012B, 0x0059, 0x018C, 0x0059, + 0x01E5, 0x0059, 0x023E, 0x0001, 0x0297, 0x0001, 0x0298, 0x0001, 0x0299, + 0x0059, 0x029A, 0x0058, 0x02F3, 0x0059, 0x034B, 0x0011, 0x03A4, 0x0011, + 0x03B5, 0x0011, 0x03C6, 0x0011, 0x03D7, 0x0011, 0x03E8, 0x0011, 0x03F9, + 0x0011, 0x040A, 0x0011, 0x041B, 0x0010, 0x042C, 0x0059, 0x043C, 0x0059, + 0x0495, 0x0059, 0x04EE, 0x0011, 0x0547, 0x0011, 0x0558, 0x0011, 0x0569, + 0x0011, 0x057A, 0x0011, 0x058B, 0x0011, 0x059C, 0x0011, 0x05AD, 0x000D, + 0x05BE, 0x0001, 0x05CB, 0x0011, 0x05CC, 0x0011, 0x05DD, 0x0011, 0x05EE, + 0x0011, 0x05FF, 0x0011, 0x0610, 0x0011, 0x0621, 0x0011, 0x0632, 0x0011, + 0x0643, 0x0011, 0x0654, 0x0059, 0x0665, 0x0059, 0x06BE, 0x0057, 0x0717, + 0x0062, 0x076E, 0x0062, 0x07D0, 0x0062, 0x0832, 0x0062, 0x0894, 0x0062, + 0x08F6, 0x0062, 0x0958, 0x0062, 0x09BA, 0x0062, 0x0A1C, 0x0062, 0x0A7E, }; static const s16 anim_81_values[] = { - 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, - 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, - 0x00AB, 0x00AB, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3FFF, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0001, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, - 0x0009, 0x000A, 0x000B, 0x000D, 0x000E, 0x0010, 0x0011, 0x0013, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, - 0xF97B, 0xF97B, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, - 0xF979, 0xF979, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, - 0xED8B, 0xED8A, 0xED88, 0xED85, 0xED82, 0xED7D, 0xED79, 0xED73, - 0xED6D, 0xED67, 0xED60, 0xED58, 0xED51, 0xED48, 0xED40, 0xED37, - 0xED2E, 0xED24, 0xED1B, 0xED11, 0xCA4F, 0xCA42, 0xCA1E, 0xC9EA, - 0xC9AC, 0xC969, 0xC929, 0xC8F0, 0xC8C7, 0xC8B1, 0xC8B6, 0xC8DC, - 0xC929, 0xC9A2, 0xCA4F, 0xCB44, 0xCC88, 0xCE0F, 0xCFC9, 0xD1AB, - 0xD3A6, 0xD5AC, 0xD7B0, 0xD9A5, 0xDB7D, 0xDD29, 0xDE9E, 0xDFCC, - 0xE0A7, 0xE120, 0xE161, 0xE19B, 0xE1CF, 0xE1FD, 0xE225, 0xE246, - 0xE262, 0xE279, 0xE28B, 0xE297, 0xE29F, 0xE2A3, 0xE2A2, 0xE29C, - 0xE293, 0xE286, 0xE276, 0xE263, 0xE24C, 0xE232, 0xFB1D, 0xFB2B, - 0xFB52, 0xFB8F, 0xFBDC, 0xFC36, 0xFC98, 0xFCFE, 0xFD65, 0xFDC7, - 0xFE21, 0xFE6E, 0xFEAA, 0xFED1, 0xFEDF, 0xFED4, 0xFEB3, 0xFE81, - 0xFE3F, 0xFDF2, 0xFD9D, 0xFD42, 0xFCE5, 0xFC88, 0xFC2F, 0xFBDE, - 0xFB97, 0xFB5D, 0xFB33, 0xFB1D, 0xFB0D, 0xFAF4, 0xFAD2, 0xFAA9, - 0xFA77, 0xFA3E, 0xF9FF, 0xF9B8, 0xF96C, 0xF91A, 0xF8C3, 0xF867, - 0xF806, 0xF7A2, 0xF739, 0xF6CE, 0xF660, 0xF5F0, 0xF57D, 0xF50A, - 0xD2DC, 0xD2FE, 0xD35F, 0xD3F3, 0xD4B1, 0xD58D, 0xD67F, 0xD77A, - 0xD876, 0xD967, 0xDA44, 0xDB01, 0xDB95, 0xDBF6, 0xDC18, 0xDBFC, - 0xDBAC, 0xDB30, 0xDA8F, 0xD9D2, 0xD900, 0xD820, 0xD73B, 0xD658, - 0xD57E, 0xD4B6, 0xD407, 0xD378, 0xD312, 0xD2DC, 0xD2C0, 0xD2A4, - 0xD288, 0xD26C, 0xD250, 0xD234, 0xD217, 0xD1FB, 0xD1DF, 0xD1C4, - 0xD1A8, 0xD18D, 0xD172, 0xD157, 0xD13D, 0xD123, 0xD10A, 0xD0F1, - 0xD0D9, 0xD0C1, 0xD4B4, 0xD4A4, 0xD478, 0xD434, 0xD3DD, 0xD378, - 0xD309, 0xD296, 0xD223, 0xD1B4, 0xD14F, 0xD0F8, 0xD0B4, 0xD088, - 0xD078, 0xD085, 0xD0AA, 0xD0E3, 0xD12C, 0xD183, 0xD1E3, 0xD24A, - 0xD2B3, 0xD31B, 0xD37F, 0xD3DA, 0xD42B, 0xD46C, 0xD49B, 0xD4B4, - 0xD4C6, 0xD4E4, 0xD50C, 0xD53F, 0xD57B, 0xD5C0, 0xD60E, 0xD664, - 0xD6C1, 0xD726, 0xD791, 0xD802, 0xD879, 0xD8F5, 0xD975, 0xD9F9, - 0xDA80, 0xDB0B, 0xDB98, 0xDC26, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xFFFD, 0xFFF4, 0xFFE4, 0xFFCF, 0xFFB5, 0xFF95, - 0xFF71, 0xFF49, 0xFF1C, 0xFEEC, 0xFEB9, 0xFE83, 0xFE4A, 0xFE0E, - 0xFDD1, 0xFD92, 0xFD52, 0xFD11, 0xFCCF, 0xFC8D, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, - 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF548, 0xF546, 0xF545, 0xF543, 0xF541, 0xF53F, 0xF53C, 0xF539, - 0xF536, 0xF533, 0xF530, 0xF52D, 0xF529, 0xF526, 0xF522, 0xF51E, - 0xF51A, 0xF517, 0xC7DD, 0xC7D7, 0xC7C5, 0xC7AB, 0xC78C, 0xC76A, - 0xC74A, 0xC72E, 0xC719, 0xC70E, 0xC711, 0xC724, 0xC74A, 0xC787, - 0xC7DD, 0xC858, 0xC8F9, 0xC9BB, 0xCA97, 0xCB86, 0xCC82, 0xCD84, - 0xCE85, 0xCF7F, 0xD06A, 0xD141, 0xD1FC, 0xD295, 0xD305, 0xD346, - 0xD36D, 0xD394, 0xD3BC, 0xD3E3, 0xD40B, 0xD432, 0xD45A, 0xD481, - 0xD4A8, 0xD4CF, 0xD4F5, 0xD51B, 0xD540, 0xD564, 0xD588, 0xD5AA, - 0xD5CC, 0xD5ED, 0xD60C, 0xD62B, 0x054B, 0x0539, 0x0505, 0x04B7, - 0x0454, 0x03E5, 0x036E, 0x02F8, 0x0287, 0x0224, 0x01D4, 0x019E, - 0x0189, 0x019B, 0x01DB, 0x0252, 0x02FF, 0x03D9, 0x04D7, 0x05F1, - 0x071E, 0x0856, 0x098F, 0x0AC1, 0x0BE2, 0x0CEC, 0x0DD3, 0x0E91, - 0x0F1B, 0x0F6A, 0x0F96, 0x0FC0, 0x0FE6, 0x100A, 0x102B, 0x1049, - 0x1065, 0x107E, 0x1094, 0x10A8, 0x10BA, 0x10C9, 0x10D7, 0x10E2, - 0x10EB, 0x10F3, 0x10F8, 0x10FC, 0x10FE, 0x10FE, 0x2BD6, 0x2BD6, - 0x2BD4, 0x2BCE, 0x2BC3, 0x2BB3, 0x2B9A, 0x2B78, 0x2B4B, 0x2B11, - 0x2ACA, 0x2A73, 0x2A0B, 0x2991, 0x2903, 0x2852, 0x2775, 0x2673, - 0x2555, 0x2423, 0x22E4, 0x219F, 0x205E, 0x1F28, 0x1E04, 0x1CFB, - 0x1C14, 0x1B57, 0x1ACC, 0x1A7B, 0x1A4C, 0x1A1F, 0x19F6, 0x19CF, - 0x19AC, 0x198C, 0x196E, 0x1953, 0x193B, 0x1925, 0x1912, 0x1901, - 0x18F3, 0x18E7, 0x18DD, 0x18D4, 0x18CE, 0x18CA, 0x18C8, 0x18C7, - 0xCCF6, 0xCCEC, 0xCCD0, 0xCCA6, 0xCC72, 0xCC39, 0xCBFF, 0xCBC6, - 0xCB94, 0xCB6D, 0xCB54, 0xCB4E, 0xCB5F, 0xCB8A, 0xCBD4, 0xCC46, - 0xCCE2, 0xCDA1, 0xCE7C, 0xCF6C, 0xD069, 0xD16E, 0xD273, 0xD370, - 0xD460, 0xD53B, 0xD5FA, 0xD697, 0xD709, 0xD74B, 0xD770, 0xD793, - 0xD7B4, 0xD7D2, 0xD7ED, 0xD807, 0xD81E, 0xD833, 0xD846, 0xD856, - 0xD865, 0xD872, 0xD87D, 0xD886, 0xD88E, 0xD894, 0xD898, 0xD89B, - 0xD89C, 0xD89C, 0x0000, 0x0006, 0x0017, 0x0032, 0x0054, 0x007B, - 0x00A7, 0x00D4, 0x0101, 0x012D, 0x0154, 0x0176, 0x0191, 0x01A2, - 0x01A8, 0x01A3, 0x0194, 0x017E, 0x0160, 0x013D, 0x0117, 0x00EE, - 0x00C4, 0x009B, 0x0074, 0x0050, 0x0031, 0x0018, 0x0007, 0x0000, - 0xFFFE, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFF0, 0xFFEE, - 0xFFEB, 0xFFE9, 0xFFE7, 0xFFE6, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, - 0xFFDD, 0xFFDB, 0xFFDA, 0xFFD8, 0xFF30, 0xFF30, 0xFF30, 0xFF31, - 0xFF31, 0xFF32, 0xFF32, 0xFF33, 0xFF34, 0xFF34, 0xFF35, 0xFF36, - 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF35, 0xFF35, - 0xFF34, 0xFF33, 0xFF33, 0xFF32, 0xFF32, 0xFF31, 0xFF31, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, - 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, - 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xC9D8, 0xC9D4, - 0xC9C7, 0xC9B3, 0xC99A, 0xC97D, 0xC95D, 0xC93C, 0xC91A, 0xC8FB, - 0xC8DD, 0xC8C4, 0xC8B1, 0xC8A4, 0xC89F, 0xC8A3, 0xC8AE, 0xC8BF, - 0xC8D5, 0xC8EE, 0xC90B, 0xC929, 0xC947, 0xC966, 0xC983, 0xC99D, - 0xC9B4, 0xC9C6, 0xC9D2, 0xC9D8, 0xC9DA, 0xC9DC, 0xC9DF, 0xC9E2, - 0xC9E5, 0xC9E8, 0xC9EB, 0xC9EE, 0xC9F2, 0xC9F6, 0xC9FA, 0xC9FE, - 0xCA03, 0xCA07, 0xCA0C, 0xCA11, 0xCA16, 0xCA1B, 0xCA20, 0xCA26, - 0x1E4A, 0x1E50, 0x1E61, 0x1E7B, 0x1E9C, 0x1EC3, 0x1EEE, 0x1F1A, - 0x1F47, 0x1F71, 0x1F98, 0x1FBA, 0x1FD4, 0x1FE5, 0x1FEB, 0x1FE6, - 0x1FD7, 0x1FC1, 0x1FA4, 0x1F81, 0x1F5C, 0x1F33, 0x1F0A, 0x1EE2, - 0x1EBB, 0x1E98, 0x1E7A, 0x1E62, 0x1E51, 0x1E4A, 0x1E47, 0x1E43, - 0x1E3E, 0x1E39, 0x1E33, 0x1E2C, 0x1E25, 0x1E1C, 0x1E14, 0x1E0A, - 0x1E00, 0x1DF5, 0x1DEA, 0x1DDE, 0x1DD1, 0x1DC4, 0x1DB6, 0x1DA8, - 0x1D99, 0x1D8A, 0x1B09, 0x1B07, 0x1B02, 0x1AFB, 0x1AF2, 0x1AE7, - 0x1ADC, 0x1AD0, 0x1AC3, 0x1AB8, 0x1AAD, 0x1AA4, 0x1A9D, 0x1A98, - 0x1A96, 0x1A98, 0x1A9C, 0x1AA2, 0x1AAA, 0x1AB3, 0x1ABE, 0x1AC9, - 0x1AD4, 0x1ADF, 0x1AEA, 0x1AF3, 0x1AFC, 0x1B02, 0x1B07, 0x1B09, - 0x1B0A, 0x1B0B, 0x1B0D, 0x1B0F, 0x1B11, 0x1B14, 0x1B17, 0x1B1A, - 0x1B1E, 0x1B21, 0x1B26, 0x1B2A, 0x1B2F, 0x1B34, 0x1B3A, 0x1B3F, - 0x1B45, 0x1B4B, 0x1B52, 0x1B58, 0x1144, 0x1147, 0x114F, 0x115B, - 0x116A, 0x117C, 0x1190, 0x11A4, 0x11B8, 0x11CC, 0x11DE, 0x11ED, - 0x11F9, 0x1201, 0x1204, 0x1201, 0x11FB, 0x11F0, 0x11E3, 0x11D3, - 0x11C2, 0x11B0, 0x119D, 0x118A, 0x1179, 0x1168, 0x115B, 0x114F, - 0x1148, 0x1144, 0x1143, 0x1142, 0x1141, 0x1140, 0x113F, 0x113E, - 0x113D, 0x113C, 0x113B, 0x113A, 0x1139, 0x1138, 0x1137, 0x1136, - 0x1136, 0x1135, 0x1134, 0x1133, 0x1133, 0x1132, 0xAC44, 0xAC40, - 0xAC35, 0xAC24, 0xAC0E, 0xABF4, 0xABD9, 0xABBC, 0xAB9F, 0xAB83, - 0xAB69, 0xAB53, 0xAB42, 0xAB37, 0xAB33, 0xAB37, 0xAB40, 0xAB4F, - 0xAB62, 0xAB78, 0xAB91, 0xABAB, 0xABC6, 0xABE0, 0xABF9, 0xAC10, - 0xAC24, 0xAC34, 0xAC3F, 0xAC44, 0xAC46, 0xAC49, 0xAC4C, 0xAC50, - 0xAC54, 0xAC59, 0xAC5F, 0xAC65, 0xAC6C, 0xAC73, 0xAC7B, 0xAC84, - 0xAC8C, 0xAC96, 0xACA0, 0xACAA, 0xACB4, 0xACBF, 0xACCB, 0xACD7, - 0x0000, 0xFFFA, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5C, 0xFF30, - 0xFF04, 0xFED9, 0xFEB2, 0xFE91, 0xFE76, 0xFE65, 0xFE5F, 0xFE65, - 0xFE75, 0xFE8D, 0xFEAC, 0xFED1, 0xFEF9, 0xFF24, 0xFF4F, 0xFF79, - 0xFFA0, 0xFFC2, 0xFFDF, 0xFFF4, 0x0000, 0x0000, 0xFFFB, 0xFFF5, - 0xFFEE, 0xFFE7, 0xFFDF, 0xFFD7, 0xFFCE, 0xFFC4, 0xFFBA, 0xFFB0, - 0xFFA5, 0xFF99, 0xFF8E, 0xFF81, 0xFF75, 0xFF68, 0xFF5A, 0xFF4D, - 0xFF3F, 0xFF30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFB, 0xFFF9, 0xFFF8, - 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFC, 0x0000, - 0x0005, 0x000A, 0x000F, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, - 0x0034, 0x003B, 0x0042, 0x0049, 0x0050, 0x0057, 0x005E, 0x0066, - 0x006D, 0x0075, 0x007D, 0x0084, 0xBF40, 0xBF40, 0xBF40, 0xBF40, - 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, - 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF3E, 0xBF3C, 0xBF39, 0xBF36, - 0xBF33, 0xBF30, 0xBF2E, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2E, 0xBF32, - 0xBF38, 0xBF40, 0xBF4A, 0xBF54, 0xBF5E, 0xBF68, 0xBF73, 0xBF7F, - 0xBF8A, 0xBF96, 0xBFA2, 0xBFAF, 0xBFBB, 0xBFC8, 0xBFD5, 0xBFE3, - 0xBFF0, 0xBFFE, 0xC00C, 0xC01A, 0xC028, 0xC037, 0x2537, 0x253D, - 0x254E, 0x2568, 0x2589, 0x25B0, 0x25DB, 0x2607, 0x2634, 0x265E, - 0x2685, 0x26A7, 0x26C1, 0x26D2, 0x26D8, 0x26D3, 0x26C4, 0x26AE, - 0x2691, 0x266F, 0x2649, 0x2621, 0x25F8, 0x25CF, 0x25A9, 0x2585, - 0x2567, 0x254F, 0x253E, 0x2537, 0x2534, 0x2530, 0x252C, 0x2527, - 0x2522, 0x251C, 0x2516, 0x250F, 0x2507, 0x24FF, 0x24F7, 0x24EE, - 0x24E4, 0x24DA, 0x24D0, 0x24C5, 0x24BA, 0x24AE, 0x24A2, 0x2495, - 0xD64A, 0xD64C, 0xD651, 0xD658, 0xD662, 0xD66D, 0xD67A, 0xD686, - 0xD693, 0xD69F, 0xD6AB, 0xD6B4, 0xD6BC, 0xD6C1, 0xD6C2, 0xD6C1, - 0xD6BD, 0xD6B6, 0xD6AE, 0xD6A4, 0xD699, 0xD68E, 0xD682, 0xD676, - 0xD66B, 0xD661, 0xD658, 0xD651, 0xD64C, 0xD64A, 0xD649, 0xD647, - 0xD645, 0xD642, 0xD63E, 0xD63A, 0xD635, 0xD630, 0xD62A, 0xD623, - 0xD61C, 0xD614, 0xD60C, 0xD603, 0xD5FA, 0xD5F1, 0xD5E7, 0xD5DC, - 0xD5D1, 0xD5C6, 0xEC41, 0xEC3C, 0xEC2D, 0xEC17, 0xEBFA, 0xEBD9, - 0xEBB5, 0xEB8F, 0xEB69, 0xEB45, 0xEB24, 0xEB08, 0xEAF1, 0xEAE3, - 0xEADE, 0xEAE2, 0xEAEE, 0xEB02, 0xEB1A, 0xEB37, 0xEB58, 0xEB7A, - 0xEB9D, 0xEBBF, 0xEBE0, 0xEBFE, 0xEC18, 0xEC2C, 0xEC3A, 0xEC41, - 0xEC43, 0xEC45, 0xEC47, 0xEC49, 0xEC4A, 0xEC4C, 0xEC4D, 0xEC4F, - 0xEC50, 0xEC51, 0xEC52, 0xEC53, 0xEC54, 0xEC54, 0xEC55, 0xEC56, - 0xEC56, 0xEC56, 0xEC57, 0xEC57, 0xB59E, 0xB59B, 0xB590, 0xB581, - 0xB56D, 0xB555, 0xB53C, 0xB521, 0xB507, 0xB4ED, 0xB4D6, 0xB4C2, - 0xB4B2, 0xB4A8, 0xB4A4, 0xB4A7, 0xB4B0, 0xB4BE, 0xB4CF, 0xB4E3, - 0xB4FA, 0xB512, 0xB52B, 0xB543, 0xB55A, 0xB56F, 0xB581, 0xB590, - 0xB59A, 0xB59E, 0xB5A0, 0xB5A3, 0xB5A7, 0xB5AB, 0xB5B1, 0xB5B7, - 0xB5BE, 0xB5C6, 0xB5CE, 0xB5D7, 0xB5E1, 0xB5EC, 0xB5F7, 0xB603, - 0xB610, 0xB61D, 0xB62B, 0xB639, 0xB648, 0xB658, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFD, 0x7FFA, 0x7FF4, 0x7FEC, - 0x7FE3, 0x7FD7, 0x7FCA, 0x7FBB, 0x7FAB, 0x7F9A, 0x7F87, 0x7F74, - 0x7F60, 0x7F4B, 0x7F35, 0x7F1F, 0x7F09, 0x7EF2, 0x7EDC, 0x7EC5, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, - 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x8000, 0x8006, - 0x800E, 0x801A, 0x8028, 0x8039, 0x804D, 0x8062, 0x807A, 0x8094, - 0x80AF, 0x80CC, 0x80EA, 0x8109, 0x8129, 0x814A, 0x816B, 0x818C, - 0x81AE, 0x81CF, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, - 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, - 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, - 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, - 0x416C, 0x4160, 0x414C, 0x4130, 0x410E, 0x40E5, 0x40B6, 0x4082, - 0x4049, 0x400C, 0x3FCB, 0x3F86, 0x3F3E, 0x3EF3, 0x3EA7, 0x3E59, - 0x3E0A, 0x3DBA, 0x3D6A, 0x3D1B, 0xBF5F, 0x7FFF, 0x7FF5, 0x7FDA, - 0x7FB4, 0x7F86, 0x7F56, 0x7F26, 0x7EFD, 0x7EDE, 0x7ECE, 0x7ED2, - 0x7EEE, 0x7F26, 0x7F80, 0x7FFF, 0x80B2, 0x81A0, 0x82BF, 0x8404, - 0x8565, 0x86D9, 0x8856, 0x89D1, 0x8B40, 0x8C9A, 0x8DD5, 0x8EE6, - 0x8FC4, 0x9065, 0x90BE, 0x90EE, 0x911C, 0x9148, 0x9170, 0x9196, - 0x91B9, 0x91DA, 0x91F9, 0x9215, 0x922F, 0x9246, 0x925B, 0x926E, - 0x927F, 0x928F, 0x929C, 0x92A7, 0x92B0, 0x92B8, 0x92BE, 0x7FFF, - 0x8002, 0x800C, 0x801B, 0x802D, 0x8040, 0x8052, 0x8062, 0x806E, - 0x8074, 0x8072, 0x8068, 0x8052, 0x8030, 0x7FFF, 0x7FB9, 0x7F5D, - 0x7EEE, 0x7E71, 0x7DE8, 0x7D59, 0x7CC6, 0x7C34, 0x7BA6, 0x7B20, - 0x7AA6, 0x7A3D, 0x79E7, 0x79A9, 0x7987, 0x7974, 0x7962, 0x7951, - 0x7942, 0x7933, 0x7925, 0x7919, 0x790D, 0x7902, 0x78F8, 0x78EF, - 0x78E7, 0x78E0, 0x78D9, 0x78D3, 0x78CE, 0x78CA, 0x78C6, 0x78C3, - 0x78C1, 0x4171, 0x416B, 0x415B, 0x4144, 0x4128, 0x410B, 0x40EE, - 0x40D5, 0x40C3, 0x40B9, 0x40BB, 0x40CC, 0x40EE, 0x4124, 0x4171, - 0x41DD, 0x426D, 0x431A, 0x43DE, 0x44B3, 0x4594, 0x4679, 0x475E, - 0x483C, 0x490D, 0x49CB, 0x4A70, 0x4AF5, 0x4B56, 0x4B8C, 0x4BAA, - 0x4BC5, 0x4BDF, 0x4BF8, 0x4C0F, 0x4C24, 0x4C38, 0x4C4A, 0x4C5B, - 0x4C6B, 0x4C79, 0x4C86, 0x4C91, 0x4C9C, 0x4CA5, 0x4CAD, 0x4CB3, - 0x4CB9, 0x4CBE, 0x4CC1, 0xBF5F, 0x0000, 0x0000, 0xFFFF, 0xFFFE, - 0xFFFD, 0xFFFB, 0xFFFA, 0xFFF8, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF8, - 0xFFFA, 0xFFFC, 0x0000, 0x0008, 0x0017, 0x002B, 0x0043, 0x005D, - 0x0078, 0x0092, 0x00A9, 0x00BC, 0x00CA, 0x00D1, 0x00CF, 0x00C3, - 0x00AC, 0x0087, 0x0054, 0x0014, 0xFFC8, 0xFF72, 0xFF13, 0xFEAD, - 0xFE42, 0xFDD4, 0xFD64, 0xFCF4, 0xFC86, 0xFC1B, 0xFBB5, 0xFB57, - 0xFB00, 0xFAB5, 0xFA75, 0xFA42, 0xFA20, 0xFA0E, 0x0000, 0x0000, - 0xFFFE, 0xFFFB, 0xFFF8, 0xFFF4, 0xFFF1, 0xFFEE, 0xFFEC, 0xFFEA, - 0xFFEB, 0xFFED, 0xFFF1, 0xFFF7, 0x0000, 0x000C, 0x001B, 0x002D, - 0x0040, 0x0056, 0x006D, 0x0084, 0x009D, 0x00B5, 0x00CD, 0x00E5, - 0x00FB, 0x0110, 0x0124, 0x0135, 0x0146, 0x015A, 0x016F, 0x0187, - 0x019F, 0x01B8, 0x01D0, 0x01E9, 0x0200, 0x0215, 0x0229, 0x023A, - 0x0248, 0x0252, 0x0258, 0x025A, 0x0257, 0x024E, 0x023E, 0x0228, - 0xFC62, 0xFC5F, 0xFC57, 0xFC4B, 0xFC3C, 0xFC2C, 0xFC1A, 0xFC09, - 0xFBFA, 0xFBED, 0xFBE4, 0xFBDF, 0xFBE0, 0xFBE9, 0xFBF9, 0xFC13, - 0xFC36, 0xFC61, 0xFC92, 0xFCC9, 0xFD03, 0xFD3F, 0xFD7B, 0xFDB7, - 0xFDF0, 0xFE25, 0xFE55, 0xFE7E, 0xFE9F, 0xFEB7, 0xFEC4, 0xFEC9, - 0xFEC7, 0xFEBF, 0xFEB1, 0xFEA0, 0xFE8B, 0xFE75, 0xFE5F, 0xFE48, - 0xFE33, 0xFE21, 0xFE12, 0xFE08, 0xFE04, 0xFE06, 0xFE11, 0xFE25, - 0xFE43, 0xFE6C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFD, - 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, - 0xFFF4, 0xFFF2, 0xFFF1, 0xFFF0, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, - 0x0017, 0x001C, 0x0020, 0x0023, 0x0024, 0x0023, 0x001F, 0x0018, - 0x000E, 0x0000, 0xFFEF, 0xFFDB, 0xFFC6, 0xFFAE, 0xFF94, 0xFF78, - 0xFF5B, 0xFF3D, 0xFF1D, 0xFEFB, 0xFED9, 0xFEB5, 0xFE91, 0xFE6C, - 0xFE46, 0xFE1F, 0xFDF8, 0xFDD1, 0xFDAA, 0xFD82, 0x0884, 0x0890, - 0x08B2, 0x08E4, 0x0922, 0x0966, 0x09AC, 0x09EF, 0x0A29, 0x0A55, - 0x0A70, 0x0A72, 0x0A59, 0x0A1E, 0x09BD, 0x0925, 0x0850, 0x0749, - 0x061C, 0x04D2, 0x0376, 0x0213, 0x00B5, 0xFF65, 0xFE2F, 0xFD1C, - 0xFC39, 0xFB8F, 0xFB29, 0xFB13, 0xFB2B, 0xFB4C, 0xFB74, 0xFBA4, - 0xFBDA, 0xFC17, 0xFC5A, 0xFCA4, 0xFCF3, 0xFD47, 0xFDA1, 0xFE00, - 0xFE63, 0xFECA, 0xFF36, 0xFFA5, 0x0016, 0x008C, 0x0104, 0x017F, - 0x40A1, 0x40A7, 0x40B8, 0x40D2, 0x40F4, 0x411B, 0x4145, 0x4172, - 0x419E, 0x41C9, 0x41F0, 0x4211, 0x422B, 0x423C, 0x4242, 0x423D, - 0x422F, 0x4219, 0x41FC, 0x41DA, 0x41B4, 0x418D, 0x4164, 0x413B, - 0x4115, 0x40F2, 0x40D3, 0x40BB, 0x40A9, 0x40A1, 0x409E, 0x409A, - 0x4097, 0x4094, 0x4091, 0x408E, 0x408C, 0x4089, 0x4087, 0x4084, - 0x4082, 0x4080, 0x407E, 0x407C, 0x407B, 0x4079, 0x4077, 0x4076, - 0x4075, 0x4073, +0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AC, 0x00AE, 0x00AF, 0x00B1, + 0x00B3, 0x00B5, 0x00B7, 0x00B9, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF, + 0x0000, 0x0000, 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, + 0xDCD0, 0xD68A, 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x3FFF, + 0x3FFF, 0x3FE8, 0x3FA6, 0x3F42, 0x3EC0, 0x3E27, 0x3D7E, 0x3CCC, 0x3C16, + 0x3B64, 0x3ABB, 0x3A22, 0x39A1, 0x393C, 0x38FB, 0x38E3, 0x0000, 0x0000, + 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, 0xDCD0, 0xD68A, + 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFFF4, 0xFFD5, 0xFFA4, + 0xFF65, 0xFF19, 0xFEC5, 0xFE69, 0xFE0A, 0xFDA9, 0xFD4A, 0xFCEF, 0xFC9A, + 0xFC4F, 0xFC11, 0xFBE1, 0xFBBB, 0xFB96, 0xFB73, 0xFB51, 0xFB31, 0xFB13, + 0xFAF5, 0xFAD9, 0xFABF, 0xFAA6, 0xFA8E, 0xFA77, 0xFA62, 0xFA4D, 0xFA3A, + 0xFA28, 0xFA17, 0xFA07, 0xF9F7, 0xF9E9, 0xF9DC, 0xF9CF, 0xF9C3, 0xF9B8, + 0xF9AE, 0xF9A4, 0xF99B, 0xF993, 0xF98B, 0xF984, 0xF97D, 0xF977, 0xF971, + 0xF96B, 0xF966, 0xF961, 0xF95C, 0xF958, 0xF953, 0xF94F, 0xF94B, 0xF947, + 0xF943, 0xF93F, 0xF93B, 0xF936, 0xF932, 0xF92D, 0xF928, 0xF923, 0xF91E, + 0xF918, 0xF912, 0xF90B, 0xF904, 0xF8FD, 0xF8F5, 0xF8EC, 0xF8E3, 0xF8D9, + 0xF8CE, 0xF8C3, 0xF8B7, 0xF8AA, 0xF89C, 0xF88D, 0xF87E, 0xF86D, 0xF85C, + 0xF849, 0xF835, 0xF821, 0xF80B, 0xF7F6, 0xF7DF, 0xF7C8, 0xF7B0, 0xF798, + 0xF780, 0xF768, 0xF74F, 0xFFFF, 0xFFFF, 0x0002, 0x0006, 0x000E, 0x0017, + 0x0023, 0x0030, 0x003F, 0x004E, 0x005E, 0x006E, 0x007E, 0x008E, 0x009C, + 0x00A9, 0x00B4, 0x00BF, 0x00C9, 0x00D2, 0x00DB, 0x00E4, 0x00EC, 0x00F4, + 0x00FB, 0x0102, 0x0109, 0x010F, 0x0116, 0x011B, 0x0121, 0x0126, 0x012B, + 0x0130, 0x0134, 0x0139, 0x013C, 0x0140, 0x0144, 0x0147, 0x014A, 0x014D, + 0x0150, 0x0152, 0x0154, 0x0157, 0x0159, 0x015B, 0x015C, 0x015E, 0x0160, + 0x0161, 0x0163, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016A, 0x016B, + 0x016C, 0x016D, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, 0x0175, 0x0176, + 0x0178, 0x017A, 0x017B, 0x017D, 0x017F, 0x0181, 0x0184, 0x0186, 0x0189, + 0x018B, 0x018E, 0x0192, 0x0195, 0x0199, 0x019C, 0x01A0, 0x01A5, 0x01A9, + 0x01AE, 0x01B3, 0x01B8, 0x01BE, 0x01C3, 0x01C9, 0x01CF, 0x01D4, 0x01DA, + 0x01E0, 0x01E6, 0x0884, 0x0884, 0x08B7, 0x0945, 0x0A22, 0x0B3E, 0x0C8B, + 0x0DFC, 0x0F82, 0x110F, 0x1295, 0x1406, 0x1553, 0x166F, 0x174C, 0x17DA, + 0x180D, 0x180C, 0x1808, 0x1802, 0x17FA, 0x17F0, 0x17E4, 0x17D6, 0x17C6, + 0x17B4, 0x17A0, 0x178A, 0x1773, 0x175B, 0x1740, 0x1725, 0x1707, 0x16E9, + 0x16C9, 0x16A9, 0x1687, 0x1664, 0x1640, 0x161B, 0x15F5, 0x15CF, 0x15A8, + 0x1580, 0x1558, 0x152F, 0x1506, 0x14DC, 0x14B2, 0x1488, 0x145E, 0x1434, + 0x140A, 0x13DF, 0x13B5, 0x138B, 0x1362, 0x1338, 0x1310, 0x12E7, 0x12BF, + 0x1298, 0x1271, 0x124B, 0x1226, 0x1202, 0x11DF, 0x11BD, 0x119C, 0x117C, + 0x115D, 0x1140, 0x1123, 0x1109, 0x10F0, 0x10D8, 0x10C2, 0x10AE, 0x109B, + 0x108B, 0x107C, 0x106F, 0x1064, 0x105C, 0x1055, 0x1051, 0x104E, 0x104C, + 0x104A, 0x1048, 0x1046, 0x1044, 0x1043, 0x1042, 0x1041, 0x1041, 0x1040, + 0x0000, 0x0000, 0xFFE4, 0xFF96, 0xFF1F, 0xFE85, 0xFDD0, 0xFD09, 0xFC35, + 0xFB5E, 0xFA8B, 0xF9C3, 0xF90E, 0xF874, 0xF7FD, 0xF7B0, 0xF794, 0xF794, + 0xF794, 0xF794, 0xF795, 0xF795, 0xF795, 0xF795, 0xF795, 0xF796, 0xF796, + 0xF796, 0xF796, 0xF797, 0xF797, 0xF797, 0xF797, 0xF798, 0xF798, 0xF798, + 0xF799, 0xF799, 0xF799, 0xF799, 0xF79A, 0xF79A, 0xF79A, 0xF79A, 0xF79A, + 0xF79A, 0xF79A, 0xF79A, 0xF794, 0xF780, 0xF760, 0xF735, 0xF6FF, 0xF6BE, + 0xF674, 0xF621, 0xF5C6, 0xF563, 0xF4F9, 0xF489, 0xF414, 0xF399, 0xF31A, + 0xF298, 0xF212, 0xF18A, 0xF101, 0xF077, 0xEFEC, 0xEF61, 0xEED8, 0xEE50, + 0xEDCB, 0xED48, 0xECC9, 0xEC4F, 0xEBD9, 0xEB69, 0xEAFF, 0xEA9C, 0xEA41, + 0xE9EE, 0xE9A4, 0xE964, 0xE92D, 0xE902, 0xE8E2, 0xE8CF, 0xE8C8, 0xFFFF, + 0xFFFF, 0xFFF9, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5B, 0xFF2D, 0xFEFD, + 0xFECD, 0xFE9F, 0xFE74, 0xFE4E, 0xFE2F, 0xFE17, 0xFE09, 0xFE00, 0xFDF8, + 0xFDF1, 0xFDE9, 0xFDE3, 0xFDDD, 0xFDD7, 0xFDD2, 0xFDCD, 0xFDC9, 0xFDC5, + 0xFDC1, 0xFDBE, 0xFDBB, 0xFDB9, 0xFDB7, 0xFDB5, 0xFDB3, 0xFDB1, 0xFDB0, + 0xFDAF, 0xFDAE, 0xFDAE, 0xFDAD, 0xFDAD, 0xFDAC, 0xFDAC, 0xFDAC, 0xFDAC, + 0xFDAC, 0xFDAC, 0xFDAD, 0xFDAF, 0xFDB3, 0xFDB7, 0xFDBD, 0xFDC5, 0xFDCD, + 0xFDD6, 0xFDE1, 0xFDEC, 0xFDF8, 0xFE04, 0xFE11, 0xFE1F, 0xFE2D, 0xFE3C, + 0xFE4B, 0xFE5A, 0xFE6A, 0xFE79, 0xFE89, 0xFE98, 0xFEA8, 0xFEB7, 0xFEC6, + 0xFED5, 0xFEE3, 0xFEF1, 0xFEFE, 0xFF0A, 0xFF16, 0xFF21, 0xFF2C, 0xFF35, + 0xFF3D, 0xFF44, 0xFF4A, 0xFF4F, 0xFF53, 0xFF55, 0xFF56, 0xFC61, 0xFC61, + 0xFC48, 0xFC01, 0xFB94, 0xFB08, 0xFA63, 0xF9AC, 0xF8EB, 0xF826, 0xF765, + 0xF6AF, 0xF60A, 0xF57D, 0xF510, 0xF4C9, 0xF4B0, 0xF4B3, 0xF4BB, 0xF4C8, + 0xF4DA, 0xF4EF, 0xF509, 0xF526, 0xF546, 0xF569, 0xF58E, 0xF5B5, 0xF5DE, + 0xF608, 0xF633, 0xF65F, 0xF68B, 0xF6B6, 0xF6E1, 0xF70B, 0xF734, 0xF75C, + 0xF781, 0xF7A4, 0xF7C4, 0xF7E1, 0xF7FA, 0xF810, 0xF822, 0xF82F, 0xF837, + 0xF839, 0xF836, 0xF82B, 0xF819, 0xF801, 0xF7E3, 0xF7C0, 0xF797, 0xF769, + 0xF736, 0xF700, 0xF6C5, 0xF687, 0xF646, 0xF602, 0xF5BC, 0xF574, 0xF52A, + 0xF4DF, 0xF493, 0xF446, 0xF3F9, 0xF3AD, 0xF361, 0xF316, 0xF2CC, 0xF284, + 0xF23D, 0xF1FA, 0xF1B9, 0xF17B, 0xF140, 0xF109, 0xF0D7, 0xF0A9, 0xF080, + 0xF05C, 0xF03E, 0xF027, 0xF015, 0xF00A, 0xF006, 0xFFFE, 0x0001, 0xC170, + 0xFB1C, 0xFB1C, 0xFB3F, 0xFBA3, 0xFC3D, 0xFD04, 0xFDED, 0xFEEE, 0xFFFF, + 0x0115, 0x0226, 0x0328, 0x0411, 0x04D7, 0x0571, 0x05D5, 0x05F8, 0x05F8, + 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, + 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, + 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, + 0x05F8, 0x05F8, 0x05F8, 0x05F9, 0x05FA, 0x05FD, 0x0600, 0x0605, 0x060A, + 0x0610, 0x0616, 0x061E, 0x0626, 0x062E, 0x0637, 0x0640, 0x064A, 0x0654, + 0x065F, 0x0669, 0x0674, 0x067F, 0x068A, 0x0695, 0x06A0, 0x06AB, 0x06B6, + 0x06C0, 0x06CB, 0x06D5, 0x06DF, 0x06E8, 0x06F1, 0x06F9, 0x0701, 0x0709, + 0x070F, 0x0715, 0x071A, 0x071F, 0x0722, 0x0724, 0x0726, 0x0727, 0xD2DB, + 0xD2DB, 0xD2EA, 0xD315, 0xD358, 0xD3AD, 0xD412, 0xD481, 0xD4F6, 0xD56E, + 0xD5E3, 0xD652, 0xD6B7, 0xD70C, 0xD74F, 0xD77A, 0xD789, 0xD789, 0xD789, + 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, + 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, + 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, + 0xD789, 0xD789, 0xD789, 0xD78A, 0xD78B, 0xD78D, 0xD78F, 0xD791, 0xD794, + 0xD797, 0xD79B, 0xD79E, 0xD7A2, 0xD7A7, 0xD7AB, 0xD7B0, 0xD7B4, 0xD7B9, + 0xD7BE, 0xD7C3, 0xD7C9, 0xD7CE, 0xD7D3, 0xD7D8, 0xD7DD, 0xD7E3, 0xD7E8, + 0xD7EC, 0xD7F1, 0xD7F6, 0xD7FA, 0xD7FE, 0xD802, 0xD806, 0xD80A, 0xD80D, + 0xD810, 0xD812, 0xD814, 0xD816, 0xD817, 0xD818, 0xD4B3, 0xD4B3, 0xD4B7, + 0xD4C2, 0xD4D4, 0xD4EA, 0xD504, 0xD521, 0xD53F, 0xD55E, 0xD57D, 0xD59A, + 0xD5B4, 0xD5CA, 0xD5DC, 0xD5E7, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, + 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, + 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, + 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, + 0xD5EF, 0xD5FC, 0xD610, 0xD62D, 0xD650, 0xD67A, 0xD6AA, 0xD6E0, 0xD71B, + 0xD75C, 0xD7A1, 0xD7EA, 0xD836, 0xD886, 0xD8D9, 0xD92D, 0xD984, 0xD9DD, + 0xDA36, 0xDA90, 0xDAEB, 0xDB45, 0xDB9E, 0xDBF7, 0xDC4E, 0xDCA3, 0xDCF5, + 0xDD45, 0xDD92, 0xDDDB, 0xDE1F, 0xDE60, 0xDE9B, 0xDED1, 0xDF01, 0xDF2B, + 0xDF4F, 0xDF6B, 0xDF7F, 0xDF8C, 0xDF90, 0xFFFF, 0xFFFF, 0xFF9F, 0xFE92, + 0xFCF2, 0xFADA, 0xF864, 0xF5AB, 0xF2CB, 0xEFDD, 0xECFC, 0xEA44, 0xE7CE, + 0xE5B6, 0xE416, 0xE309, 0xE2A9, 0x0000, 0x0000, 0x0025, 0x008C, 0x012B, + 0x01F8, 0x02E9, 0x03F3, 0x050D, 0x062C, 0x0746, 0x0850, 0x0941, 0x0A0E, + 0x0AAD, 0x0B14, 0x0B39, 0xCA4E, 0xCA4E, 0xC9DE, 0xC8A4, 0xC6BE, 0xC44C, + 0xC16C, 0xBE3F, 0xBAE3, 0xB777, 0xB41A, 0xB0ED, 0xAE0E, 0xAB9B, 0xA9B5, + 0xA87B, 0xA80B, 0x0000, 0x0000, 0x0079, 0x01CF, 0x03DE, 0x0686, 0x09A5, + 0x0D18, 0x10BD, 0x1474, 0x181A, 0x1B8D, 0x1EAC, 0x2153, 0x2363, 0x24B8, + 0x2532, 0xF97B, 0xF97B, 0xF929, 0xF844, 0xF6E1, 0xF517, 0xF2FE, 0xF0AC, + 0xEE38, 0xEBB8, 0xE944, 0xE6F1, 0xE4D8, 0xE30F, 0xE1AC, 0xE0C6, 0xE074, + 0xED8B, 0xED8B, 0xEDD6, 0xEEAA, 0xEFF2, 0xF198, 0xF387, 0xF5AB, 0xF7EF, + 0xFA3D, 0xFC81, 0xFEA5, 0x0095, 0x023B, 0x0383, 0x0457, 0x04A2, 0xFFFE, + 0xFFFE, 0xFFE7, 0xFFA7, 0xFF45, 0xFEC5, 0xFE30, 0xFD8A, 0xFCDC, 0xFC2A, + 0xFB7B, 0xFAD5, 0xFA40, 0xF9C1, 0xF95E, 0xF91E, 0xF907, 0x0001, 0x0001, + 0x0006, 0x0013, 0x0027, 0x0042, 0x0061, 0x0083, 0x00A7, 0x00CC, 0x00F1, + 0x0113, 0x0132, 0x014C, 0x0161, 0x016E, 0x0173, 0xC170, 0xC170, 0xC170, + 0xC16F, 0xC16D, 0xC16B, 0xC168, 0xC165, 0xC162, 0xC15F, 0xC15C, 0xC159, + 0xC156, 0xC154, 0xC152, 0xC151, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, + 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054C, + 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, + 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, + 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, + 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054D, 0x0552, + 0x055A, 0x0564, 0x0572, 0x0582, 0x0594, 0x05A8, 0x05BE, 0x05D7, 0x05F1, + 0x060C, 0x0629, 0x0647, 0x0666, 0x0686, 0x06A7, 0x06C8, 0x06EA, 0x070C, + 0x072E, 0x0750, 0x0772, 0x0793, 0x07B4, 0x07D4, 0x07F3, 0x0811, 0x082E, + 0x0849, 0x0863, 0x087B, 0x0892, 0x08A6, 0x08B8, 0x08C8, 0x08D5, 0x08E0, + 0x08E8, 0x08ED, 0x08EE, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, + 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, + 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, + 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, + 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, + 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD5, 0x2BD4, 0x2BD2, + 0x2BCF, 0x2BCB, 0x2BC7, 0x2BC2, 0x2BBC, 0x2BB6, 0x2BAF, 0x2BA8, 0x2BA0, + 0x2B98, 0x2B90, 0x2B88, 0x2B7F, 0x2B76, 0x2B6C, 0x2B63, 0x2B5A, 0x2B50, + 0x2B47, 0x2B3E, 0x2B34, 0x2B2B, 0x2B22, 0x2B1A, 0x2B11, 0x2B09, 0x2B02, + 0x2AFB, 0x2AF4, 0x2AEE, 0x2AE8, 0x2AE3, 0x2ADF, 0x2ADB, 0x2AD8, 0x2AD6, + 0x2AD5, 0x2AD4, 0xCCF5, 0xCCF5, 0xCD18, 0xCD7A, 0xCE11, 0xCED4, 0xCFB9, + 0xD0B7, 0xD1C2, 0xD2D3, 0xD3DF, 0xD4DC, 0xD5C1, 0xD684, 0xD71C, 0xD77E, + 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, + 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, + 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, + 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A7, 0xD7B8, 0xD7D6, 0xD7FE, + 0xD830, 0xD86B, 0xD8AF, 0xD8FC, 0xD950, 0xD9AB, 0xDA0C, 0xDA73, 0xDAE0, + 0xDB50, 0xDBC5, 0xDC3E, 0xDCB9, 0xDD36, 0xDDB4, 0xDE34, 0xDEB4, 0xDF33, + 0xDFB2, 0xE02F, 0xE0AA, 0xE122, 0xE197, 0xE208, 0xE274, 0xE2DB, 0xE33D, + 0xE398, 0xE3EC, 0xE438, 0xE47C, 0xE4B8, 0xE4EA, 0xE512, 0xE52F, 0xE541, + 0xE547, 0x0000, 0x0000, 0x0072, 0x01B2, 0x03A0, 0x061D, 0x090A, 0x0C45, + 0x0FB0, 0x132C, 0x1697, 0x19D2, 0x1CBF, 0x1F3C, 0x212A, 0x226A, 0x22DC, + 0x0000, 0x0000, 0xFFE0, 0xFF89, 0xFF02, 0xFE55, 0xFD89, 0xFCA8, 0xFBBA, + 0xFAC8, 0xF9D9, 0xF8F8, 0xF82D, 0xF77F, 0xF6F9, 0xF6A2, 0xF683, 0xC7DC, + 0xC7DC, 0xC780, 0xC67C, 0xC4EA, 0xC2E3, 0xC083, 0xBDE2, 0xBB1A, 0xB846, + 0xB57E, 0xB2DD, 0xB07D, 0xAE77, 0xACE5, 0xABE1, 0xAB84, 0xFFFF, 0xFFFF, + 0xFF76, 0xFDF5, 0xFBA2, 0xF8A3, 0xF51E, 0xF139, 0xED1C, 0xE8EB, 0xE4CD, + 0xE0E9, 0xDD64, 0xDA65, 0xD811, 0xD690, 0xD607, 0x0000, 0x0000, 0x005A, + 0x0156, 0x02DC, 0x04D3, 0x0722, 0x09AF, 0x0C61, 0x0F20, 0x11D3, 0x1460, + 0x16AF, 0x18A5, 0x1A2C, 0x1B28, 0x1B82, 0xF548, 0xF548, 0xF582, 0xF626, + 0xF724, 0xF86A, 0xF9EA, 0xFB92, 0xFD52, 0xFF1B, 0x00DC, 0x0284, 0x0404, + 0x054A, 0x0648, 0x06EB, 0x0726, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xD649, + 0xD649, 0xD6CD, 0xD841, 0xDA80, 0xDD65, 0xE0CC, 0xE48E, 0xE888, 0xEC94, + 0xF08E, 0xF450, 0xF7B6, 0xFA9B, 0xFCDA, 0xFE4E, 0xFED2, 0xEC40, 0xEC40, + 0xEC7B, 0xED22, 0xEE23, 0xEF6E, 0xF0F3, 0xF2A2, 0xF469, 0xF638, 0xF7FF, + 0xF9AE, 0xFB33, 0xFC7E, 0xFD7F, 0xFE26, 0xFE61, 0xB59D, 0xB59D, 0xB5EB, + 0xB6C6, 0xB819, 0xB9CD, 0xBBCE, 0xBE05, 0xC05C, 0xC2BF, 0xC516, 0xC74D, + 0xC94D, 0xCB02, 0xCC55, 0xCD30, 0xCD7E, 0x0000, 0x0000, 0xFFFD, 0xFFF7, + 0xFFEE, 0xFFE3, 0xFFD5, 0xFFC6, 0xFFB7, 0xFFA6, 0xFF97, 0xFF88, 0xFF7A, + 0xFF6F, 0xFF66, 0xFF60, 0xFF5E, 0xFFFF, 0xFFFF, 0x0005, 0x0011, 0x0025, + 0x003F, 0x005C, 0x007E, 0x00A1, 0x00C4, 0x00E7, 0x0108, 0x0126, 0x0140, + 0x0153, 0x0160, 0x0165, 0x2537, 0x2537, 0x24CF, 0x23A9, 0x21E4, 0x1F9B, + 0x1CED, 0x19F5, 0x16D3, 0x13A1, 0x107E, 0x0D87, 0x0AD9, 0x0890, 0x06CB, + 0x05A5, 0x053D, 0xFFFF, 0xFFFF, 0xFFF0, 0xFFC4, 0xFF81, 0xFF2B, 0xFEC6, + 0xFE56, 0xFDE0, 0xFD67, 0xFCF1, 0xFC81, 0xFC1C, 0xFBC6, 0xFB83, 0xFB58, + 0xFB48, 0x0000, 0x0000, 0xFFD3, 0xFF58, 0xFE9A, 0xFDA6, 0xFC86, 0xFB48, + 0xF9F8, 0xF8A2, 0xF752, 0xF614, 0xF4F4, 0xF3FF, 0xF342, 0xF2C7, 0xF29B, + 0xBF3F, 0xBF3F, 0xBF51, 0xBF84, 0xBFD3, 0xC038, 0xC0AF, 0xC132, 0xC1BD, + 0xC24B, 0xC2D6, 0xC359, 0xC3D0, 0xC435, 0xC484, 0xC4B6, 0xC4C8, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, 0x001A, 0x0022, + 0x002C, 0x0036, 0x0042, 0x004E, 0x005B, 0x0069, 0x0077, 0x0086, 0x0095, + 0x00A5, 0x00B4, 0x00C4, 0x00D5, 0x00E5, 0x00F5, 0x0105, 0x0115, 0x0124, + 0x0133, 0x0142, 0x0150, 0x015E, 0x016B, 0x0177, 0x0183, 0x018D, 0x0197, + 0x01A0, 0x01A7, 0x01AD, 0x01B2, 0x01B6, 0x01B8, 0x01B9, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFB, 0xFFEE, 0xFFD9, 0xFFBD, 0xFF9A, 0xFF71, 0xFF41, 0xFF0B, + 0xFED0, 0xFE90, 0xFE4C, 0xFE03, 0xFDB7, 0xFD68, 0xFD16, 0xFCC1, 0xFC6B, + 0xFC13, 0xFBBA, 0xFB60, 0xFB07, 0xFAAD, 0xFA54, 0xF9FC, 0xF9A6, 0xF951, + 0xF8FF, 0xF8B0, 0xF864, 0xF81B, 0xF7D7, 0xF797, 0xF75C, 0xF726, 0xF6F6, + 0xF6CD, 0xF6AA, 0xF68E, 0xF679, 0xF66C, 0xF668, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, + 0xBF5E, 0xBF5E, 0xBF5D, 0xBF5D, 0xBF5C, 0xBF5B, 0xBF5A, 0xBF59, 0xBF58, + 0xBF56, 0xBF55, 0xBF53, 0xBF52, 0xBF50, 0xBF4E, 0xBF4D, 0xBF4B, 0xBF49, + 0xBF47, 0xBF45, 0xBF43, 0xBF41, 0xBF3F, 0xBF3E, 0xBF3C, 0xBF3A, 0xBF38, + 0xBF36, 0xBF35, 0xBF33, 0xBF32, 0xBF30, 0xBF2F, 0xBF2E, 0xBF2D, 0xBF2C, + 0xBF2B, 0xBF2B, 0xBF2A, 0x1B09, 0x1B09, 0x1AA6, 0x198E, 0x17DF, 0x15B3, + 0x1326, 0x1054, 0x0D58, 0x0A4E, 0x0752, 0x0480, 0x01F3, 0xFFC6, 0xFE16, + 0xFCFF, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, + 0xFCA2, 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, + 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, 0xFCA2, + 0xFCA2, 0xFCA1, 0x1144, 0x1144, 0x1104, 0x104E, 0x0F36, 0x0DCD, 0x0C26, + 0x0A51, 0x0861, 0x0668, 0x0479, 0x02A4, 0x00FC, 0xFF92, 0xFE7A, 0xFDC5, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, + 0xFD84, 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, + 0xFD5D, 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, + 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, + 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, 0xFD81, + 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, 0xFD5F, + 0xFD65, 0xAC43, 0xAC43, 0xAC8D, 0xAD5B, 0xAE9B, 0xB037, 0xB21A, 0xB431, + 0xB666, 0xB8A6, 0xBADB, 0xBCF2, 0xBED6, 0xC071, 0xC1B1, 0xC27F, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2AA, + 0xC255, 0xC1D7, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, + 0xBEA9, 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, + 0xC1D8, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, + 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, 0xC1D8, + 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, 0xBF49, + 0xFFFF, 0xFFFF, 0xFFFD, 0xFFF9, 0xFFF2, 0xFFE9, 0xFFDF, 0xFFD3, 0xFFC7, + 0xFFBB, 0xFFAE, 0xFFA3, 0xFF99, 0xFF90, 0xFF89, 0xFF84, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, + 0xFF8B, 0xFF90, 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA9, + 0xFFA9, 0xFFA9, 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA7, 0xFFA6, 0xFFA6, 0xFFA5, + 0xFFA4, 0xFFA3, 0xFFA2, 0xFFA1, 0xFFA0, 0xFF9F, 0xFF9E, 0xFF9D, 0xFF9C, + 0xFF9B, 0xFF9A, 0xFF98, 0xFF97, 0xFF96, 0xFF95, 0xFF94, 0xFF92, 0xFF91, + 0xFF90, 0xFF8F, 0xFF8E, 0xFF8D, 0xFF8C, 0xFF8B, 0xFF8A, 0xFF89, 0xFFFF, + 0xFFFF, 0x0008, 0x001F, 0x0042, 0x006F, 0x00A4, 0x00DF, 0x011D, 0x015C, + 0x019A, 0x01D4, 0x0209, 0x0237, 0x025A, 0x0270, 0x0278, 0x0278, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, 0x0274, 0x026E, + 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, 0x024B, 0x024B, + 0x024B, 0x024C, 0x024C, 0x024D, 0x024E, 0x024E, 0x024F, 0x0250, 0x0251, + 0x0252, 0x0253, 0x0254, 0x0255, 0x0257, 0x0258, 0x0259, 0x025B, 0x025C, + 0x025D, 0x025F, 0x0260, 0x0262, 0x0263, 0x0264, 0x0266, 0x0267, 0x0269, + 0x026A, 0x026B, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x1E4A, 0x1E4A, + 0x1DF9, 0x1D16, 0x1BB6, 0x19F1, 0x17DD, 0x1591, 0x1323, 0x10A9, 0x0E3B, + 0x0BEF, 0x09DB, 0x0816, 0x06B7, 0x05D3, 0x0582, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, + 0x0714, 0x078B, 0x07F8, 0x0852, 0x088F, 0x08A5, 0x08A4, 0x08A1, 0x089C, + 0x0896, 0x088D, 0x0883, 0x0877, 0x086A, 0x085B, 0x084B, 0x083A, 0x0828, + 0x0815, 0x0800, 0x07EB, 0x07D5, 0x07BF, 0x07A7, 0x0790, 0x0777, 0x075F, + 0x0746, 0x072D, 0x0714, 0x06FB, 0x06E2, 0x06C9, 0x06B0, 0x0698, 0x0680, + 0x0669, 0x0653, 0x063D, 0x0627, 0x0613, 0x0600, 0xFFFF, 0xFFFF, 0x0014, + 0x004E, 0x00A7, 0x011A, 0x01A0, 0x0235, 0x02D3, 0x0373, 0x0411, 0x04A6, + 0x052D, 0x059F, 0x05F8, 0x0632, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, + 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, + 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, + 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, 0x0637, + 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, 0x0609, + 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0xFF2F, 0xFF2F, 0xFF61, 0xFFEF, + 0x00CB, 0x01E5, 0x0330, 0x049E, 0x0622, 0x07AC, 0x092F, 0x0A9E, 0x0BE9, + 0x0D03, 0x0DDE, 0x0E6B, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, + 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, + 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, + 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, + 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, + 0x1559, 0x158B, 0x1529, 0x142B, 0xC9D7, 0xC9D7, 0xC9EA, 0xCA1E, 0xCA6F, + 0xCAD8, 0xCB52, 0xCBDA, 0xCC69, 0xCCFB, 0xCD8B, 0xCE12, 0xCE8D, 0xCEF5, + 0xCF46, 0xCF7B, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, + 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, + 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, + 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, + 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, 0xC328, + 0xC2CC, 0xC381, 0xC553, }; diff --git a/assets/anims/anim_81.inc.c.rej b/assets/anims/anim_81.inc.c.rej new file mode 100644 index 00000000..2f035d75 --- /dev/null +++ b/assets/anims/anim_81.inc.c.rej @@ -0,0 +1,633 @@ +diff a/assets/anims/anim_81.inc.c b/assets/anims/anim_81.inc.c (rejected hunks) +@@ -3,7 +3,7 @@ static const struct Animation anim_81[] = { + 189, + 0, + 0, +- 0x32, ++ 97, + ANIMINDEX_NUMPARTS(anim_81_indices), + anim_81_values, + anim_81_indices, +@@ -12,298 +12,332 @@ static const struct Animation anim_81[] = { + + + static const u16 anim_81_indices[] = { +- 0x0001, 0x0000, 0x0032, 0x0001, 0x0032, 0x0033, 0x0001, 0x0000, 0x0001, 0x0065, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0838, +- 0x0032, 0x07A2, 0x0032, 0x07D4, 0x0032, 0x0806, +- 0x0032, 0x070C, 0x0032, 0x073E, 0x0032, 0x0770, +- 0x0032, 0x0675, 0x0032, 0x06A7, 0x0032, 0x06D9, +- 0x0032, 0x012E, 0x0032, 0x0160, 0x0032, 0x0192, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00FC, +- 0x0032, 0x0066, 0x0032, 0x0098, 0x0032, 0x00CA, +- 0x0032, 0x05DE, 0x0032, 0x0610, 0x0032, 0x0642, +- 0x0032, 0x028C, 0x0032, 0x02BE, 0x0032, 0x02F0, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x025A, +- 0x0032, 0x01C4, 0x0032, 0x01F6, 0x0032, 0x0228, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0674, +- 0x0032, 0x0548, 0x0032, 0x057A, 0x0032, 0x05AC, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0516, +- 0x0032, 0x0480, 0x0032, 0x04B2, 0x0032, 0x04E4, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x070B, +- 0x0032, 0x03EA, 0x0032, 0x041C, 0x0032, 0x044E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x03B8, +- 0x0032, 0x0322, 0x0032, 0x0354, 0x0032, 0x0386, ++ 0x0001, 0x0000, 0x0010, 0x0001, 0x0001, 0x0011, 0x0011, 0x0012, 0x0011, ++ 0x0023, 0x0011, 0x0034, 0x0010, 0x0045, 0x0011, 0x0055, 0x0001, 0x0066, ++ 0x0062, 0x0067, 0x0062, 0x00C9, 0x0061, 0x012B, 0x0059, 0x018C, 0x0059, ++ 0x01E5, 0x0059, 0x023E, 0x0001, 0x0297, 0x0001, 0x0298, 0x0001, 0x0299, ++ 0x0059, 0x029A, 0x0058, 0x02F3, 0x0059, 0x034B, 0x0011, 0x03A4, 0x0011, ++ 0x03B5, 0x0011, 0x03C6, 0x0011, 0x03D7, 0x0011, 0x03E8, 0x0011, 0x03F9, ++ 0x0011, 0x040A, 0x0011, 0x041B, 0x0010, 0x042C, 0x0059, 0x043C, 0x0059, ++ 0x0495, 0x0059, 0x04EE, 0x0011, 0x0547, 0x0011, 0x0558, 0x0011, 0x0569, ++ 0x0011, 0x057A, 0x0011, 0x058B, 0x0011, 0x059C, 0x0011, 0x05AD, 0x000D, ++ 0x05BE, 0x0001, 0x05CB, 0x0011, 0x05CC, 0x0011, 0x05DD, 0x0011, 0x05EE, ++ 0x0011, 0x05FF, 0x0011, 0x0610, 0x0011, 0x0621, 0x0011, 0x0632, 0x0011, ++ 0x0643, 0x0011, 0x0654, 0x0059, 0x0665, 0x0059, 0x06BE, 0x0057, 0x0717, ++ 0x0062, 0x076E, 0x0062, 0x07D0, 0x0062, 0x0832, 0x0062, 0x0894, 0x0062, ++ 0x08F6, 0x0062, 0x0958, 0x0062, 0x09BA, 0x0062, 0x0A1C, 0x0062, 0x0A7E, + }; + + static const s16 anim_81_values[] = { +- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, +- 0x00AB, 0x00AB, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +- 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3FFF, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, +- 0x0009, 0x000A, 0x000B, 0x000D, 0x000E, 0x0010, 0x0011, 0x0013, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, +- 0xF97B, 0xF97B, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, +- 0xF979, 0xF979, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8B, 0xED8A, 0xED88, 0xED85, 0xED82, 0xED7D, 0xED79, 0xED73, +- 0xED6D, 0xED67, 0xED60, 0xED58, 0xED51, 0xED48, 0xED40, 0xED37, +- 0xED2E, 0xED24, 0xED1B, 0xED11, 0xCA4F, 0xCA42, 0xCA1E, 0xC9EA, +- 0xC9AC, 0xC969, 0xC929, 0xC8F0, 0xC8C7, 0xC8B1, 0xC8B6, 0xC8DC, +- 0xC929, 0xC9A2, 0xCA4F, 0xCB44, 0xCC88, 0xCE0F, 0xCFC9, 0xD1AB, +- 0xD3A6, 0xD5AC, 0xD7B0, 0xD9A5, 0xDB7D, 0xDD29, 0xDE9E, 0xDFCC, +- 0xE0A7, 0xE120, 0xE161, 0xE19B, 0xE1CF, 0xE1FD, 0xE225, 0xE246, +- 0xE262, 0xE279, 0xE28B, 0xE297, 0xE29F, 0xE2A3, 0xE2A2, 0xE29C, +- 0xE293, 0xE286, 0xE276, 0xE263, 0xE24C, 0xE232, 0xFB1D, 0xFB2B, +- 0xFB52, 0xFB8F, 0xFBDC, 0xFC36, 0xFC98, 0xFCFE, 0xFD65, 0xFDC7, +- 0xFE21, 0xFE6E, 0xFEAA, 0xFED1, 0xFEDF, 0xFED4, 0xFEB3, 0xFE81, +- 0xFE3F, 0xFDF2, 0xFD9D, 0xFD42, 0xFCE5, 0xFC88, 0xFC2F, 0xFBDE, +- 0xFB97, 0xFB5D, 0xFB33, 0xFB1D, 0xFB0D, 0xFAF4, 0xFAD2, 0xFAA9, +- 0xFA77, 0xFA3E, 0xF9FF, 0xF9B8, 0xF96C, 0xF91A, 0xF8C3, 0xF867, +- 0xF806, 0xF7A2, 0xF739, 0xF6CE, 0xF660, 0xF5F0, 0xF57D, 0xF50A, +- 0xD2DC, 0xD2FE, 0xD35F, 0xD3F3, 0xD4B1, 0xD58D, 0xD67F, 0xD77A, +- 0xD876, 0xD967, 0xDA44, 0xDB01, 0xDB95, 0xDBF6, 0xDC18, 0xDBFC, +- 0xDBAC, 0xDB30, 0xDA8F, 0xD9D2, 0xD900, 0xD820, 0xD73B, 0xD658, +- 0xD57E, 0xD4B6, 0xD407, 0xD378, 0xD312, 0xD2DC, 0xD2C0, 0xD2A4, +- 0xD288, 0xD26C, 0xD250, 0xD234, 0xD217, 0xD1FB, 0xD1DF, 0xD1C4, +- 0xD1A8, 0xD18D, 0xD172, 0xD157, 0xD13D, 0xD123, 0xD10A, 0xD0F1, +- 0xD0D9, 0xD0C1, 0xD4B4, 0xD4A4, 0xD478, 0xD434, 0xD3DD, 0xD378, +- 0xD309, 0xD296, 0xD223, 0xD1B4, 0xD14F, 0xD0F8, 0xD0B4, 0xD088, +- 0xD078, 0xD085, 0xD0AA, 0xD0E3, 0xD12C, 0xD183, 0xD1E3, 0xD24A, +- 0xD2B3, 0xD31B, 0xD37F, 0xD3DA, 0xD42B, 0xD46C, 0xD49B, 0xD4B4, +- 0xD4C6, 0xD4E4, 0xD50C, 0xD53F, 0xD57B, 0xD5C0, 0xD60E, 0xD664, +- 0xD6C1, 0xD726, 0xD791, 0xD802, 0xD879, 0xD8F5, 0xD975, 0xD9F9, +- 0xDA80, 0xDB0B, 0xDB98, 0xDC26, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xFFFD, 0xFFF4, 0xFFE4, 0xFFCF, 0xFFB5, 0xFF95, +- 0xFF71, 0xFF49, 0xFF1C, 0xFEEC, 0xFEB9, 0xFE83, 0xFE4A, 0xFE0E, +- 0xFDD1, 0xFD92, 0xFD52, 0xFD11, 0xFCCF, 0xFC8D, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF548, 0xF546, 0xF545, 0xF543, 0xF541, 0xF53F, 0xF53C, 0xF539, +- 0xF536, 0xF533, 0xF530, 0xF52D, 0xF529, 0xF526, 0xF522, 0xF51E, +- 0xF51A, 0xF517, 0xC7DD, 0xC7D7, 0xC7C5, 0xC7AB, 0xC78C, 0xC76A, +- 0xC74A, 0xC72E, 0xC719, 0xC70E, 0xC711, 0xC724, 0xC74A, 0xC787, +- 0xC7DD, 0xC858, 0xC8F9, 0xC9BB, 0xCA97, 0xCB86, 0xCC82, 0xCD84, +- 0xCE85, 0xCF7F, 0xD06A, 0xD141, 0xD1FC, 0xD295, 0xD305, 0xD346, +- 0xD36D, 0xD394, 0xD3BC, 0xD3E3, 0xD40B, 0xD432, 0xD45A, 0xD481, +- 0xD4A8, 0xD4CF, 0xD4F5, 0xD51B, 0xD540, 0xD564, 0xD588, 0xD5AA, +- 0xD5CC, 0xD5ED, 0xD60C, 0xD62B, 0x054B, 0x0539, 0x0505, 0x04B7, +- 0x0454, 0x03E5, 0x036E, 0x02F8, 0x0287, 0x0224, 0x01D4, 0x019E, +- 0x0189, 0x019B, 0x01DB, 0x0252, 0x02FF, 0x03D9, 0x04D7, 0x05F1, +- 0x071E, 0x0856, 0x098F, 0x0AC1, 0x0BE2, 0x0CEC, 0x0DD3, 0x0E91, +- 0x0F1B, 0x0F6A, 0x0F96, 0x0FC0, 0x0FE6, 0x100A, 0x102B, 0x1049, +- 0x1065, 0x107E, 0x1094, 0x10A8, 0x10BA, 0x10C9, 0x10D7, 0x10E2, +- 0x10EB, 0x10F3, 0x10F8, 0x10FC, 0x10FE, 0x10FE, 0x2BD6, 0x2BD6, +- 0x2BD4, 0x2BCE, 0x2BC3, 0x2BB3, 0x2B9A, 0x2B78, 0x2B4B, 0x2B11, +- 0x2ACA, 0x2A73, 0x2A0B, 0x2991, 0x2903, 0x2852, 0x2775, 0x2673, +- 0x2555, 0x2423, 0x22E4, 0x219F, 0x205E, 0x1F28, 0x1E04, 0x1CFB, +- 0x1C14, 0x1B57, 0x1ACC, 0x1A7B, 0x1A4C, 0x1A1F, 0x19F6, 0x19CF, +- 0x19AC, 0x198C, 0x196E, 0x1953, 0x193B, 0x1925, 0x1912, 0x1901, +- 0x18F3, 0x18E7, 0x18DD, 0x18D4, 0x18CE, 0x18CA, 0x18C8, 0x18C7, +- 0xCCF6, 0xCCEC, 0xCCD0, 0xCCA6, 0xCC72, 0xCC39, 0xCBFF, 0xCBC6, +- 0xCB94, 0xCB6D, 0xCB54, 0xCB4E, 0xCB5F, 0xCB8A, 0xCBD4, 0xCC46, +- 0xCCE2, 0xCDA1, 0xCE7C, 0xCF6C, 0xD069, 0xD16E, 0xD273, 0xD370, +- 0xD460, 0xD53B, 0xD5FA, 0xD697, 0xD709, 0xD74B, 0xD770, 0xD793, +- 0xD7B4, 0xD7D2, 0xD7ED, 0xD807, 0xD81E, 0xD833, 0xD846, 0xD856, +- 0xD865, 0xD872, 0xD87D, 0xD886, 0xD88E, 0xD894, 0xD898, 0xD89B, +- 0xD89C, 0xD89C, 0x0000, 0x0006, 0x0017, 0x0032, 0x0054, 0x007B, +- 0x00A7, 0x00D4, 0x0101, 0x012D, 0x0154, 0x0176, 0x0191, 0x01A2, +- 0x01A8, 0x01A3, 0x0194, 0x017E, 0x0160, 0x013D, 0x0117, 0x00EE, +- 0x00C4, 0x009B, 0x0074, 0x0050, 0x0031, 0x0018, 0x0007, 0x0000, +- 0xFFFE, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFF0, 0xFFEE, +- 0xFFEB, 0xFFE9, 0xFFE7, 0xFFE6, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, +- 0xFFDD, 0xFFDB, 0xFFDA, 0xFFD8, 0xFF30, 0xFF30, 0xFF30, 0xFF31, +- 0xFF31, 0xFF32, 0xFF32, 0xFF33, 0xFF34, 0xFF34, 0xFF35, 0xFF36, +- 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF35, 0xFF35, +- 0xFF34, 0xFF33, 0xFF33, 0xFF32, 0xFF32, 0xFF31, 0xFF31, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, +- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xC9D8, 0xC9D4, +- 0xC9C7, 0xC9B3, 0xC99A, 0xC97D, 0xC95D, 0xC93C, 0xC91A, 0xC8FB, +- 0xC8DD, 0xC8C4, 0xC8B1, 0xC8A4, 0xC89F, 0xC8A3, 0xC8AE, 0xC8BF, +- 0xC8D5, 0xC8EE, 0xC90B, 0xC929, 0xC947, 0xC966, 0xC983, 0xC99D, +- 0xC9B4, 0xC9C6, 0xC9D2, 0xC9D8, 0xC9DA, 0xC9DC, 0xC9DF, 0xC9E2, +- 0xC9E5, 0xC9E8, 0xC9EB, 0xC9EE, 0xC9F2, 0xC9F6, 0xC9FA, 0xC9FE, +- 0xCA03, 0xCA07, 0xCA0C, 0xCA11, 0xCA16, 0xCA1B, 0xCA20, 0xCA26, +- 0x1E4A, 0x1E50, 0x1E61, 0x1E7B, 0x1E9C, 0x1EC3, 0x1EEE, 0x1F1A, +- 0x1F47, 0x1F71, 0x1F98, 0x1FBA, 0x1FD4, 0x1FE5, 0x1FEB, 0x1FE6, +- 0x1FD7, 0x1FC1, 0x1FA4, 0x1F81, 0x1F5C, 0x1F33, 0x1F0A, 0x1EE2, +- 0x1EBB, 0x1E98, 0x1E7A, 0x1E62, 0x1E51, 0x1E4A, 0x1E47, 0x1E43, +- 0x1E3E, 0x1E39, 0x1E33, 0x1E2C, 0x1E25, 0x1E1C, 0x1E14, 0x1E0A, +- 0x1E00, 0x1DF5, 0x1DEA, 0x1DDE, 0x1DD1, 0x1DC4, 0x1DB6, 0x1DA8, +- 0x1D99, 0x1D8A, 0x1B09, 0x1B07, 0x1B02, 0x1AFB, 0x1AF2, 0x1AE7, +- 0x1ADC, 0x1AD0, 0x1AC3, 0x1AB8, 0x1AAD, 0x1AA4, 0x1A9D, 0x1A98, +- 0x1A96, 0x1A98, 0x1A9C, 0x1AA2, 0x1AAA, 0x1AB3, 0x1ABE, 0x1AC9, +- 0x1AD4, 0x1ADF, 0x1AEA, 0x1AF3, 0x1AFC, 0x1B02, 0x1B07, 0x1B09, +- 0x1B0A, 0x1B0B, 0x1B0D, 0x1B0F, 0x1B11, 0x1B14, 0x1B17, 0x1B1A, +- 0x1B1E, 0x1B21, 0x1B26, 0x1B2A, 0x1B2F, 0x1B34, 0x1B3A, 0x1B3F, +- 0x1B45, 0x1B4B, 0x1B52, 0x1B58, 0x1144, 0x1147, 0x114F, 0x115B, +- 0x116A, 0x117C, 0x1190, 0x11A4, 0x11B8, 0x11CC, 0x11DE, 0x11ED, +- 0x11F9, 0x1201, 0x1204, 0x1201, 0x11FB, 0x11F0, 0x11E3, 0x11D3, +- 0x11C2, 0x11B0, 0x119D, 0x118A, 0x1179, 0x1168, 0x115B, 0x114F, +- 0x1148, 0x1144, 0x1143, 0x1142, 0x1141, 0x1140, 0x113F, 0x113E, +- 0x113D, 0x113C, 0x113B, 0x113A, 0x1139, 0x1138, 0x1137, 0x1136, +- 0x1136, 0x1135, 0x1134, 0x1133, 0x1133, 0x1132, 0xAC44, 0xAC40, +- 0xAC35, 0xAC24, 0xAC0E, 0xABF4, 0xABD9, 0xABBC, 0xAB9F, 0xAB83, +- 0xAB69, 0xAB53, 0xAB42, 0xAB37, 0xAB33, 0xAB37, 0xAB40, 0xAB4F, +- 0xAB62, 0xAB78, 0xAB91, 0xABAB, 0xABC6, 0xABE0, 0xABF9, 0xAC10, +- 0xAC24, 0xAC34, 0xAC3F, 0xAC44, 0xAC46, 0xAC49, 0xAC4C, 0xAC50, +- 0xAC54, 0xAC59, 0xAC5F, 0xAC65, 0xAC6C, 0xAC73, 0xAC7B, 0xAC84, +- 0xAC8C, 0xAC96, 0xACA0, 0xACAA, 0xACB4, 0xACBF, 0xACCB, 0xACD7, +- 0x0000, 0xFFFA, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5C, 0xFF30, +- 0xFF04, 0xFED9, 0xFEB2, 0xFE91, 0xFE76, 0xFE65, 0xFE5F, 0xFE65, +- 0xFE75, 0xFE8D, 0xFEAC, 0xFED1, 0xFEF9, 0xFF24, 0xFF4F, 0xFF79, +- 0xFFA0, 0xFFC2, 0xFFDF, 0xFFF4, 0x0000, 0x0000, 0xFFFB, 0xFFF5, +- 0xFFEE, 0xFFE7, 0xFFDF, 0xFFD7, 0xFFCE, 0xFFC4, 0xFFBA, 0xFFB0, +- 0xFFA5, 0xFF99, 0xFF8E, 0xFF81, 0xFF75, 0xFF68, 0xFF5A, 0xFF4D, +- 0xFF3F, 0xFF30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFB, 0xFFF9, 0xFFF8, +- 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFC, 0x0000, +- 0x0005, 0x000A, 0x000F, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, +- 0x0034, 0x003B, 0x0042, 0x0049, 0x0050, 0x0057, 0x005E, 0x0066, +- 0x006D, 0x0075, 0x007D, 0x0084, 0xBF40, 0xBF40, 0xBF40, 0xBF40, +- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, +- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF3E, 0xBF3C, 0xBF39, 0xBF36, +- 0xBF33, 0xBF30, 0xBF2E, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2E, 0xBF32, +- 0xBF38, 0xBF40, 0xBF4A, 0xBF54, 0xBF5E, 0xBF68, 0xBF73, 0xBF7F, +- 0xBF8A, 0xBF96, 0xBFA2, 0xBFAF, 0xBFBB, 0xBFC8, 0xBFD5, 0xBFE3, +- 0xBFF0, 0xBFFE, 0xC00C, 0xC01A, 0xC028, 0xC037, 0x2537, 0x253D, +- 0x254E, 0x2568, 0x2589, 0x25B0, 0x25DB, 0x2607, 0x2634, 0x265E, +- 0x2685, 0x26A7, 0x26C1, 0x26D2, 0x26D8, 0x26D3, 0x26C4, 0x26AE, +- 0x2691, 0x266F, 0x2649, 0x2621, 0x25F8, 0x25CF, 0x25A9, 0x2585, +- 0x2567, 0x254F, 0x253E, 0x2537, 0x2534, 0x2530, 0x252C, 0x2527, +- 0x2522, 0x251C, 0x2516, 0x250F, 0x2507, 0x24FF, 0x24F7, 0x24EE, +- 0x24E4, 0x24DA, 0x24D0, 0x24C5, 0x24BA, 0x24AE, 0x24A2, 0x2495, +- 0xD64A, 0xD64C, 0xD651, 0xD658, 0xD662, 0xD66D, 0xD67A, 0xD686, +- 0xD693, 0xD69F, 0xD6AB, 0xD6B4, 0xD6BC, 0xD6C1, 0xD6C2, 0xD6C1, +- 0xD6BD, 0xD6B6, 0xD6AE, 0xD6A4, 0xD699, 0xD68E, 0xD682, 0xD676, +- 0xD66B, 0xD661, 0xD658, 0xD651, 0xD64C, 0xD64A, 0xD649, 0xD647, +- 0xD645, 0xD642, 0xD63E, 0xD63A, 0xD635, 0xD630, 0xD62A, 0xD623, +- 0xD61C, 0xD614, 0xD60C, 0xD603, 0xD5FA, 0xD5F1, 0xD5E7, 0xD5DC, +- 0xD5D1, 0xD5C6, 0xEC41, 0xEC3C, 0xEC2D, 0xEC17, 0xEBFA, 0xEBD9, +- 0xEBB5, 0xEB8F, 0xEB69, 0xEB45, 0xEB24, 0xEB08, 0xEAF1, 0xEAE3, +- 0xEADE, 0xEAE2, 0xEAEE, 0xEB02, 0xEB1A, 0xEB37, 0xEB58, 0xEB7A, +- 0xEB9D, 0xEBBF, 0xEBE0, 0xEBFE, 0xEC18, 0xEC2C, 0xEC3A, 0xEC41, +- 0xEC43, 0xEC45, 0xEC47, 0xEC49, 0xEC4A, 0xEC4C, 0xEC4D, 0xEC4F, +- 0xEC50, 0xEC51, 0xEC52, 0xEC53, 0xEC54, 0xEC54, 0xEC55, 0xEC56, +- 0xEC56, 0xEC56, 0xEC57, 0xEC57, 0xB59E, 0xB59B, 0xB590, 0xB581, +- 0xB56D, 0xB555, 0xB53C, 0xB521, 0xB507, 0xB4ED, 0xB4D6, 0xB4C2, +- 0xB4B2, 0xB4A8, 0xB4A4, 0xB4A7, 0xB4B0, 0xB4BE, 0xB4CF, 0xB4E3, +- 0xB4FA, 0xB512, 0xB52B, 0xB543, 0xB55A, 0xB56F, 0xB581, 0xB590, +- 0xB59A, 0xB59E, 0xB5A0, 0xB5A3, 0xB5A7, 0xB5AB, 0xB5B1, 0xB5B7, +- 0xB5BE, 0xB5C6, 0xB5CE, 0xB5D7, 0xB5E1, 0xB5EC, 0xB5F7, 0xB603, +- 0xB610, 0xB61D, 0xB62B, 0xB639, 0xB648, 0xB658, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFD, 0x7FFA, 0x7FF4, 0x7FEC, +- 0x7FE3, 0x7FD7, 0x7FCA, 0x7FBB, 0x7FAB, 0x7F9A, 0x7F87, 0x7F74, +- 0x7F60, 0x7F4B, 0x7F35, 0x7F1F, 0x7F09, 0x7EF2, 0x7EDC, 0x7EC5, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x8000, 0x8006, +- 0x800E, 0x801A, 0x8028, 0x8039, 0x804D, 0x8062, 0x807A, 0x8094, +- 0x80AF, 0x80CC, 0x80EA, 0x8109, 0x8129, 0x814A, 0x816B, 0x818C, +- 0x81AE, 0x81CF, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x416C, 0x4160, 0x414C, 0x4130, 0x410E, 0x40E5, 0x40B6, 0x4082, +- 0x4049, 0x400C, 0x3FCB, 0x3F86, 0x3F3E, 0x3EF3, 0x3EA7, 0x3E59, +- 0x3E0A, 0x3DBA, 0x3D6A, 0x3D1B, 0xBF5F, 0x7FFF, 0x7FF5, 0x7FDA, +- 0x7FB4, 0x7F86, 0x7F56, 0x7F26, 0x7EFD, 0x7EDE, 0x7ECE, 0x7ED2, +- 0x7EEE, 0x7F26, 0x7F80, 0x7FFF, 0x80B2, 0x81A0, 0x82BF, 0x8404, +- 0x8565, 0x86D9, 0x8856, 0x89D1, 0x8B40, 0x8C9A, 0x8DD5, 0x8EE6, +- 0x8FC4, 0x9065, 0x90BE, 0x90EE, 0x911C, 0x9148, 0x9170, 0x9196, +- 0x91B9, 0x91DA, 0x91F9, 0x9215, 0x922F, 0x9246, 0x925B, 0x926E, +- 0x927F, 0x928F, 0x929C, 0x92A7, 0x92B0, 0x92B8, 0x92BE, 0x7FFF, +- 0x8002, 0x800C, 0x801B, 0x802D, 0x8040, 0x8052, 0x8062, 0x806E, +- 0x8074, 0x8072, 0x8068, 0x8052, 0x8030, 0x7FFF, 0x7FB9, 0x7F5D, +- 0x7EEE, 0x7E71, 0x7DE8, 0x7D59, 0x7CC6, 0x7C34, 0x7BA6, 0x7B20, +- 0x7AA6, 0x7A3D, 0x79E7, 0x79A9, 0x7987, 0x7974, 0x7962, 0x7951, +- 0x7942, 0x7933, 0x7925, 0x7919, 0x790D, 0x7902, 0x78F8, 0x78EF, +- 0x78E7, 0x78E0, 0x78D9, 0x78D3, 0x78CE, 0x78CA, 0x78C6, 0x78C3, +- 0x78C1, 0x4171, 0x416B, 0x415B, 0x4144, 0x4128, 0x410B, 0x40EE, +- 0x40D5, 0x40C3, 0x40B9, 0x40BB, 0x40CC, 0x40EE, 0x4124, 0x4171, +- 0x41DD, 0x426D, 0x431A, 0x43DE, 0x44B3, 0x4594, 0x4679, 0x475E, +- 0x483C, 0x490D, 0x49CB, 0x4A70, 0x4AF5, 0x4B56, 0x4B8C, 0x4BAA, +- 0x4BC5, 0x4BDF, 0x4BF8, 0x4C0F, 0x4C24, 0x4C38, 0x4C4A, 0x4C5B, +- 0x4C6B, 0x4C79, 0x4C86, 0x4C91, 0x4C9C, 0x4CA5, 0x4CAD, 0x4CB3, +- 0x4CB9, 0x4CBE, 0x4CC1, 0xBF5F, 0x0000, 0x0000, 0xFFFF, 0xFFFE, +- 0xFFFD, 0xFFFB, 0xFFFA, 0xFFF8, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF8, +- 0xFFFA, 0xFFFC, 0x0000, 0x0008, 0x0017, 0x002B, 0x0043, 0x005D, +- 0x0078, 0x0092, 0x00A9, 0x00BC, 0x00CA, 0x00D1, 0x00CF, 0x00C3, +- 0x00AC, 0x0087, 0x0054, 0x0014, 0xFFC8, 0xFF72, 0xFF13, 0xFEAD, +- 0xFE42, 0xFDD4, 0xFD64, 0xFCF4, 0xFC86, 0xFC1B, 0xFBB5, 0xFB57, +- 0xFB00, 0xFAB5, 0xFA75, 0xFA42, 0xFA20, 0xFA0E, 0x0000, 0x0000, +- 0xFFFE, 0xFFFB, 0xFFF8, 0xFFF4, 0xFFF1, 0xFFEE, 0xFFEC, 0xFFEA, +- 0xFFEB, 0xFFED, 0xFFF1, 0xFFF7, 0x0000, 0x000C, 0x001B, 0x002D, +- 0x0040, 0x0056, 0x006D, 0x0084, 0x009D, 0x00B5, 0x00CD, 0x00E5, +- 0x00FB, 0x0110, 0x0124, 0x0135, 0x0146, 0x015A, 0x016F, 0x0187, +- 0x019F, 0x01B8, 0x01D0, 0x01E9, 0x0200, 0x0215, 0x0229, 0x023A, +- 0x0248, 0x0252, 0x0258, 0x025A, 0x0257, 0x024E, 0x023E, 0x0228, +- 0xFC62, 0xFC5F, 0xFC57, 0xFC4B, 0xFC3C, 0xFC2C, 0xFC1A, 0xFC09, +- 0xFBFA, 0xFBED, 0xFBE4, 0xFBDF, 0xFBE0, 0xFBE9, 0xFBF9, 0xFC13, +- 0xFC36, 0xFC61, 0xFC92, 0xFCC9, 0xFD03, 0xFD3F, 0xFD7B, 0xFDB7, +- 0xFDF0, 0xFE25, 0xFE55, 0xFE7E, 0xFE9F, 0xFEB7, 0xFEC4, 0xFEC9, +- 0xFEC7, 0xFEBF, 0xFEB1, 0xFEA0, 0xFE8B, 0xFE75, 0xFE5F, 0xFE48, +- 0xFE33, 0xFE21, 0xFE12, 0xFE08, 0xFE04, 0xFE06, 0xFE11, 0xFE25, +- 0xFE43, 0xFE6C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFD, +- 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, +- 0xFFF4, 0xFFF2, 0xFFF1, 0xFFF0, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, +- 0x0017, 0x001C, 0x0020, 0x0023, 0x0024, 0x0023, 0x001F, 0x0018, +- 0x000E, 0x0000, 0xFFEF, 0xFFDB, 0xFFC6, 0xFFAE, 0xFF94, 0xFF78, +- 0xFF5B, 0xFF3D, 0xFF1D, 0xFEFB, 0xFED9, 0xFEB5, 0xFE91, 0xFE6C, +- 0xFE46, 0xFE1F, 0xFDF8, 0xFDD1, 0xFDAA, 0xFD82, 0x0884, 0x0890, +- 0x08B2, 0x08E4, 0x0922, 0x0966, 0x09AC, 0x09EF, 0x0A29, 0x0A55, +- 0x0A70, 0x0A72, 0x0A59, 0x0A1E, 0x09BD, 0x0925, 0x0850, 0x0749, +- 0x061C, 0x04D2, 0x0376, 0x0213, 0x00B5, 0xFF65, 0xFE2F, 0xFD1C, +- 0xFC39, 0xFB8F, 0xFB29, 0xFB13, 0xFB2B, 0xFB4C, 0xFB74, 0xFBA4, +- 0xFBDA, 0xFC17, 0xFC5A, 0xFCA4, 0xFCF3, 0xFD47, 0xFDA1, 0xFE00, +- 0xFE63, 0xFECA, 0xFF36, 0xFFA5, 0x0016, 0x008C, 0x0104, 0x017F, +- 0x40A1, 0x40A7, 0x40B8, 0x40D2, 0x40F4, 0x411B, 0x4145, 0x4172, +- 0x419E, 0x41C9, 0x41F0, 0x4211, 0x422B, 0x423C, 0x4242, 0x423D, +- 0x422F, 0x4219, 0x41FC, 0x41DA, 0x41B4, 0x418D, 0x4164, 0x413B, +- 0x4115, 0x40F2, 0x40D3, 0x40BB, 0x40A9, 0x40A1, 0x409E, 0x409A, +- 0x4097, 0x4094, 0x4091, 0x408E, 0x408C, 0x4089, 0x4087, 0x4084, +- 0x4082, 0x4080, 0x407E, 0x407C, 0x407B, 0x4079, 0x4077, 0x4076, +- 0x4075, 0x4073, ++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AC, 0x00AE, 0x00AF, 0x00B1, ++ 0x00B3, 0x00B5, 0x00B7, 0x00B9, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF, ++ 0x0000, 0x0000, 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, ++ 0xDCD0, 0xD68A, 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x3FFF, ++ 0x3FFF, 0x3FE8, 0x3FA6, 0x3F42, 0x3EC0, 0x3E27, 0x3D7E, 0x3CCC, 0x3C16, ++ 0x3B64, 0x3ABB, 0x3A22, 0x39A1, 0x393C, 0x38FB, 0x38E3, 0x0000, 0x0000, ++ 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, 0xDCD0, 0xD68A, ++ 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFFF4, 0xFFD5, 0xFFA4, ++ 0xFF65, 0xFF19, 0xFEC5, 0xFE69, 0xFE0A, 0xFDA9, 0xFD4A, 0xFCEF, 0xFC9A, ++ 0xFC4F, 0xFC11, 0xFBE1, 0xFBBB, 0xFB96, 0xFB73, 0xFB51, 0xFB31, 0xFB13, ++ 0xFAF5, 0xFAD9, 0xFABF, 0xFAA6, 0xFA8E, 0xFA77, 0xFA62, 0xFA4D, 0xFA3A, ++ 0xFA28, 0xFA17, 0xFA07, 0xF9F7, 0xF9E9, 0xF9DC, 0xF9CF, 0xF9C3, 0xF9B8, ++ 0xF9AE, 0xF9A4, 0xF99B, 0xF993, 0xF98B, 0xF984, 0xF97D, 0xF977, 0xF971, ++ 0xF96B, 0xF966, 0xF961, 0xF95C, 0xF958, 0xF953, 0xF94F, 0xF94B, 0xF947, ++ 0xF943, 0xF93F, 0xF93B, 0xF936, 0xF932, 0xF92D, 0xF928, 0xF923, 0xF91E, ++ 0xF918, 0xF912, 0xF90B, 0xF904, 0xF8FD, 0xF8F5, 0xF8EC, 0xF8E3, 0xF8D9, ++ 0xF8CE, 0xF8C3, 0xF8B7, 0xF8AA, 0xF89C, 0xF88D, 0xF87E, 0xF86D, 0xF85C, ++ 0xF849, 0xF835, 0xF821, 0xF80B, 0xF7F6, 0xF7DF, 0xF7C8, 0xF7B0, 0xF798, ++ 0xF780, 0xF768, 0xF74F, 0xFFFF, 0xFFFF, 0x0002, 0x0006, 0x000E, 0x0017, ++ 0x0023, 0x0030, 0x003F, 0x004E, 0x005E, 0x006E, 0x007E, 0x008E, 0x009C, ++ 0x00A9, 0x00B4, 0x00BF, 0x00C9, 0x00D2, 0x00DB, 0x00E4, 0x00EC, 0x00F4, ++ 0x00FB, 0x0102, 0x0109, 0x010F, 0x0116, 0x011B, 0x0121, 0x0126, 0x012B, ++ 0x0130, 0x0134, 0x0139, 0x013C, 0x0140, 0x0144, 0x0147, 0x014A, 0x014D, ++ 0x0150, 0x0152, 0x0154, 0x0157, 0x0159, 0x015B, 0x015C, 0x015E, 0x0160, ++ 0x0161, 0x0163, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016A, 0x016B, ++ 0x016C, 0x016D, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, 0x0175, 0x0176, ++ 0x0178, 0x017A, 0x017B, 0x017D, 0x017F, 0x0181, 0x0184, 0x0186, 0x0189, ++ 0x018B, 0x018E, 0x0192, 0x0195, 0x0199, 0x019C, 0x01A0, 0x01A5, 0x01A9, ++ 0x01AE, 0x01B3, 0x01B8, 0x01BE, 0x01C3, 0x01C9, 0x01CF, 0x01D4, 0x01DA, ++ 0x01E0, 0x01E6, 0x0884, 0x0884, 0x08B7, 0x0945, 0x0A22, 0x0B3E, 0x0C8B, ++ 0x0DFC, 0x0F82, 0x110F, 0x1295, 0x1406, 0x1553, 0x166F, 0x174C, 0x17DA, ++ 0x180D, 0x180C, 0x1808, 0x1802, 0x17FA, 0x17F0, 0x17E4, 0x17D6, 0x17C6, ++ 0x17B4, 0x17A0, 0x178A, 0x1773, 0x175B, 0x1740, 0x1725, 0x1707, 0x16E9, ++ 0x16C9, 0x16A9, 0x1687, 0x1664, 0x1640, 0x161B, 0x15F5, 0x15CF, 0x15A8, ++ 0x1580, 0x1558, 0x152F, 0x1506, 0x14DC, 0x14B2, 0x1488, 0x145E, 0x1434, ++ 0x140A, 0x13DF, 0x13B5, 0x138B, 0x1362, 0x1338, 0x1310, 0x12E7, 0x12BF, ++ 0x1298, 0x1271, 0x124B, 0x1226, 0x1202, 0x11DF, 0x11BD, 0x119C, 0x117C, ++ 0x115D, 0x1140, 0x1123, 0x1109, 0x10F0, 0x10D8, 0x10C2, 0x10AE, 0x109B, ++ 0x108B, 0x107C, 0x106F, 0x1064, 0x105C, 0x1055, 0x1051, 0x104E, 0x104C, ++ 0x104A, 0x1048, 0x1046, 0x1044, 0x1043, 0x1042, 0x1041, 0x1041, 0x1040, ++ 0x0000, 0x0000, 0xFFE4, 0xFF96, 0xFF1F, 0xFE85, 0xFDD0, 0xFD09, 0xFC35, ++ 0xFB5E, 0xFA8B, 0xF9C3, 0xF90E, 0xF874, 0xF7FD, 0xF7B0, 0xF794, 0xF794, ++ 0xF794, 0xF794, 0xF795, 0xF795, 0xF795, 0xF795, 0xF795, 0xF796, 0xF796, ++ 0xF796, 0xF796, 0xF797, 0xF797, 0xF797, 0xF797, 0xF798, 0xF798, 0xF798, ++ 0xF799, 0xF799, 0xF799, 0xF799, 0xF79A, 0xF79A, 0xF79A, 0xF79A, 0xF79A, ++ 0xF79A, 0xF79A, 0xF79A, 0xF794, 0xF780, 0xF760, 0xF735, 0xF6FF, 0xF6BE, ++ 0xF674, 0xF621, 0xF5C6, 0xF563, 0xF4F9, 0xF489, 0xF414, 0xF399, 0xF31A, ++ 0xF298, 0xF212, 0xF18A, 0xF101, 0xF077, 0xEFEC, 0xEF61, 0xEED8, 0xEE50, ++ 0xEDCB, 0xED48, 0xECC9, 0xEC4F, 0xEBD9, 0xEB69, 0xEAFF, 0xEA9C, 0xEA41, ++ 0xE9EE, 0xE9A4, 0xE964, 0xE92D, 0xE902, 0xE8E2, 0xE8CF, 0xE8C8, 0xFFFF, ++ 0xFFFF, 0xFFF9, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5B, 0xFF2D, 0xFEFD, ++ 0xFECD, 0xFE9F, 0xFE74, 0xFE4E, 0xFE2F, 0xFE17, 0xFE09, 0xFE00, 0xFDF8, ++ 0xFDF1, 0xFDE9, 0xFDE3, 0xFDDD, 0xFDD7, 0xFDD2, 0xFDCD, 0xFDC9, 0xFDC5, ++ 0xFDC1, 0xFDBE, 0xFDBB, 0xFDB9, 0xFDB7, 0xFDB5, 0xFDB3, 0xFDB1, 0xFDB0, ++ 0xFDAF, 0xFDAE, 0xFDAE, 0xFDAD, 0xFDAD, 0xFDAC, 0xFDAC, 0xFDAC, 0xFDAC, ++ 0xFDAC, 0xFDAC, 0xFDAD, 0xFDAF, 0xFDB3, 0xFDB7, 0xFDBD, 0xFDC5, 0xFDCD, ++ 0xFDD6, 0xFDE1, 0xFDEC, 0xFDF8, 0xFE04, 0xFE11, 0xFE1F, 0xFE2D, 0xFE3C, ++ 0xFE4B, 0xFE5A, 0xFE6A, 0xFE79, 0xFE89, 0xFE98, 0xFEA8, 0xFEB7, 0xFEC6, ++ 0xFED5, 0xFEE3, 0xFEF1, 0xFEFE, 0xFF0A, 0xFF16, 0xFF21, 0xFF2C, 0xFF35, ++ 0xFF3D, 0xFF44, 0xFF4A, 0xFF4F, 0xFF53, 0xFF55, 0xFF56, 0xFC61, 0xFC61, ++ 0xFC48, 0xFC01, 0xFB94, 0xFB08, 0xFA63, 0xF9AC, 0xF8EB, 0xF826, 0xF765, ++ 0xF6AF, 0xF60A, 0xF57D, 0xF510, 0xF4C9, 0xF4B0, 0xF4B3, 0xF4BB, 0xF4C8, ++ 0xF4DA, 0xF4EF, 0xF509, 0xF526, 0xF546, 0xF569, 0xF58E, 0xF5B5, 0xF5DE, ++ 0xF608, 0xF633, 0xF65F, 0xF68B, 0xF6B6, 0xF6E1, 0xF70B, 0xF734, 0xF75C, ++ 0xF781, 0xF7A4, 0xF7C4, 0xF7E1, 0xF7FA, 0xF810, 0xF822, 0xF82F, 0xF837, ++ 0xF839, 0xF836, 0xF82B, 0xF819, 0xF801, 0xF7E3, 0xF7C0, 0xF797, 0xF769, ++ 0xF736, 0xF700, 0xF6C5, 0xF687, 0xF646, 0xF602, 0xF5BC, 0xF574, 0xF52A, ++ 0xF4DF, 0xF493, 0xF446, 0xF3F9, 0xF3AD, 0xF361, 0xF316, 0xF2CC, 0xF284, ++ 0xF23D, 0xF1FA, 0xF1B9, 0xF17B, 0xF140, 0xF109, 0xF0D7, 0xF0A9, 0xF080, ++ 0xF05C, 0xF03E, 0xF027, 0xF015, 0xF00A, 0xF006, 0xFFFE, 0x0001, 0xC170, ++ 0xFB1C, 0xFB1C, 0xFB3F, 0xFBA3, 0xFC3D, 0xFD04, 0xFDED, 0xFEEE, 0xFFFF, ++ 0x0115, 0x0226, 0x0328, 0x0411, 0x04D7, 0x0571, 0x05D5, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F9, 0x05FA, 0x05FD, 0x0600, 0x0605, 0x060A, ++ 0x0610, 0x0616, 0x061E, 0x0626, 0x062E, 0x0637, 0x0640, 0x064A, 0x0654, ++ 0x065F, 0x0669, 0x0674, 0x067F, 0x068A, 0x0695, 0x06A0, 0x06AB, 0x06B6, ++ 0x06C0, 0x06CB, 0x06D5, 0x06DF, 0x06E8, 0x06F1, 0x06F9, 0x0701, 0x0709, ++ 0x070F, 0x0715, 0x071A, 0x071F, 0x0722, 0x0724, 0x0726, 0x0727, 0xD2DB, ++ 0xD2DB, 0xD2EA, 0xD315, 0xD358, 0xD3AD, 0xD412, 0xD481, 0xD4F6, 0xD56E, ++ 0xD5E3, 0xD652, 0xD6B7, 0xD70C, 0xD74F, 0xD77A, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD78A, 0xD78B, 0xD78D, 0xD78F, 0xD791, 0xD794, ++ 0xD797, 0xD79B, 0xD79E, 0xD7A2, 0xD7A7, 0xD7AB, 0xD7B0, 0xD7B4, 0xD7B9, ++ 0xD7BE, 0xD7C3, 0xD7C9, 0xD7CE, 0xD7D3, 0xD7D8, 0xD7DD, 0xD7E3, 0xD7E8, ++ 0xD7EC, 0xD7F1, 0xD7F6, 0xD7FA, 0xD7FE, 0xD802, 0xD806, 0xD80A, 0xD80D, ++ 0xD810, 0xD812, 0xD814, 0xD816, 0xD817, 0xD818, 0xD4B3, 0xD4B3, 0xD4B7, ++ 0xD4C2, 0xD4D4, 0xD4EA, 0xD504, 0xD521, 0xD53F, 0xD55E, 0xD57D, 0xD59A, ++ 0xD5B4, 0xD5CA, 0xD5DC, 0xD5E7, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EF, 0xD5FC, 0xD610, 0xD62D, 0xD650, 0xD67A, 0xD6AA, 0xD6E0, 0xD71B, ++ 0xD75C, 0xD7A1, 0xD7EA, 0xD836, 0xD886, 0xD8D9, 0xD92D, 0xD984, 0xD9DD, ++ 0xDA36, 0xDA90, 0xDAEB, 0xDB45, 0xDB9E, 0xDBF7, 0xDC4E, 0xDCA3, 0xDCF5, ++ 0xDD45, 0xDD92, 0xDDDB, 0xDE1F, 0xDE60, 0xDE9B, 0xDED1, 0xDF01, 0xDF2B, ++ 0xDF4F, 0xDF6B, 0xDF7F, 0xDF8C, 0xDF90, 0xFFFF, 0xFFFF, 0xFF9F, 0xFE92, ++ 0xFCF2, 0xFADA, 0xF864, 0xF5AB, 0xF2CB, 0xEFDD, 0xECFC, 0xEA44, 0xE7CE, ++ 0xE5B6, 0xE416, 0xE309, 0xE2A9, 0x0000, 0x0000, 0x0025, 0x008C, 0x012B, ++ 0x01F8, 0x02E9, 0x03F3, 0x050D, 0x062C, 0x0746, 0x0850, 0x0941, 0x0A0E, ++ 0x0AAD, 0x0B14, 0x0B39, 0xCA4E, 0xCA4E, 0xC9DE, 0xC8A4, 0xC6BE, 0xC44C, ++ 0xC16C, 0xBE3F, 0xBAE3, 0xB777, 0xB41A, 0xB0ED, 0xAE0E, 0xAB9B, 0xA9B5, ++ 0xA87B, 0xA80B, 0x0000, 0x0000, 0x0079, 0x01CF, 0x03DE, 0x0686, 0x09A5, ++ 0x0D18, 0x10BD, 0x1474, 0x181A, 0x1B8D, 0x1EAC, 0x2153, 0x2363, 0x24B8, ++ 0x2532, 0xF97B, 0xF97B, 0xF929, 0xF844, 0xF6E1, 0xF517, 0xF2FE, 0xF0AC, ++ 0xEE38, 0xEBB8, 0xE944, 0xE6F1, 0xE4D8, 0xE30F, 0xE1AC, 0xE0C6, 0xE074, ++ 0xED8B, 0xED8B, 0xEDD6, 0xEEAA, 0xEFF2, 0xF198, 0xF387, 0xF5AB, 0xF7EF, ++ 0xFA3D, 0xFC81, 0xFEA5, 0x0095, 0x023B, 0x0383, 0x0457, 0x04A2, 0xFFFE, ++ 0xFFFE, 0xFFE7, 0xFFA7, 0xFF45, 0xFEC5, 0xFE30, 0xFD8A, 0xFCDC, 0xFC2A, ++ 0xFB7B, 0xFAD5, 0xFA40, 0xF9C1, 0xF95E, 0xF91E, 0xF907, 0x0001, 0x0001, ++ 0x0006, 0x0013, 0x0027, 0x0042, 0x0061, 0x0083, 0x00A7, 0x00CC, 0x00F1, ++ 0x0113, 0x0132, 0x014C, 0x0161, 0x016E, 0x0173, 0xC170, 0xC170, 0xC170, ++ 0xC16F, 0xC16D, 0xC16B, 0xC168, 0xC165, 0xC162, 0xC15F, 0xC15C, 0xC159, ++ 0xC156, 0xC154, 0xC152, 0xC151, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, ++ 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054D, 0x0552, ++ 0x055A, 0x0564, 0x0572, 0x0582, 0x0594, 0x05A8, 0x05BE, 0x05D7, 0x05F1, ++ 0x060C, 0x0629, 0x0647, 0x0666, 0x0686, 0x06A7, 0x06C8, 0x06EA, 0x070C, ++ 0x072E, 0x0750, 0x0772, 0x0793, 0x07B4, 0x07D4, 0x07F3, 0x0811, 0x082E, ++ 0x0849, 0x0863, 0x087B, 0x0892, 0x08A6, 0x08B8, 0x08C8, 0x08D5, 0x08E0, ++ 0x08E8, 0x08ED, 0x08EE, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD5, 0x2BD4, 0x2BD2, ++ 0x2BCF, 0x2BCB, 0x2BC7, 0x2BC2, 0x2BBC, 0x2BB6, 0x2BAF, 0x2BA8, 0x2BA0, ++ 0x2B98, 0x2B90, 0x2B88, 0x2B7F, 0x2B76, 0x2B6C, 0x2B63, 0x2B5A, 0x2B50, ++ 0x2B47, 0x2B3E, 0x2B34, 0x2B2B, 0x2B22, 0x2B1A, 0x2B11, 0x2B09, 0x2B02, ++ 0x2AFB, 0x2AF4, 0x2AEE, 0x2AE8, 0x2AE3, 0x2ADF, 0x2ADB, 0x2AD8, 0x2AD6, ++ 0x2AD5, 0x2AD4, 0xCCF5, 0xCCF5, 0xCD18, 0xCD7A, 0xCE11, 0xCED4, 0xCFB9, ++ 0xD0B7, 0xD1C2, 0xD2D3, 0xD3DF, 0xD4DC, 0xD5C1, 0xD684, 0xD71C, 0xD77E, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A7, 0xD7B8, 0xD7D6, 0xD7FE, ++ 0xD830, 0xD86B, 0xD8AF, 0xD8FC, 0xD950, 0xD9AB, 0xDA0C, 0xDA73, 0xDAE0, ++ 0xDB50, 0xDBC5, 0xDC3E, 0xDCB9, 0xDD36, 0xDDB4, 0xDE34, 0xDEB4, 0xDF33, ++ 0xDFB2, 0xE02F, 0xE0AA, 0xE122, 0xE197, 0xE208, 0xE274, 0xE2DB, 0xE33D, ++ 0xE398, 0xE3EC, 0xE438, 0xE47C, 0xE4B8, 0xE4EA, 0xE512, 0xE52F, 0xE541, ++ 0xE547, 0x0000, 0x0000, 0x0072, 0x01B2, 0x03A0, 0x061D, 0x090A, 0x0C45, ++ 0x0FB0, 0x132C, 0x1697, 0x19D2, 0x1CBF, 0x1F3C, 0x212A, 0x226A, 0x22DC, ++ 0x0000, 0x0000, 0xFFE0, 0xFF89, 0xFF02, 0xFE55, 0xFD89, 0xFCA8, 0xFBBA, ++ 0xFAC8, 0xF9D9, 0xF8F8, 0xF82D, 0xF77F, 0xF6F9, 0xF6A2, 0xF683, 0xC7DC, ++ 0xC7DC, 0xC780, 0xC67C, 0xC4EA, 0xC2E3, 0xC083, 0xBDE2, 0xBB1A, 0xB846, ++ 0xB57E, 0xB2DD, 0xB07D, 0xAE77, 0xACE5, 0xABE1, 0xAB84, 0xFFFF, 0xFFFF, ++ 0xFF76, 0xFDF5, 0xFBA2, 0xF8A3, 0xF51E, 0xF139, 0xED1C, 0xE8EB, 0xE4CD, ++ 0xE0E9, 0xDD64, 0xDA65, 0xD811, 0xD690, 0xD607, 0x0000, 0x0000, 0x005A, ++ 0x0156, 0x02DC, 0x04D3, 0x0722, 0x09AF, 0x0C61, 0x0F20, 0x11D3, 0x1460, ++ 0x16AF, 0x18A5, 0x1A2C, 0x1B28, 0x1B82, 0xF548, 0xF548, 0xF582, 0xF626, ++ 0xF724, 0xF86A, 0xF9EA, 0xFB92, 0xFD52, 0xFF1B, 0x00DC, 0x0284, 0x0404, ++ 0x054A, 0x0648, 0x06EB, 0x0726, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xD649, ++ 0xD649, 0xD6CD, 0xD841, 0xDA80, 0xDD65, 0xE0CC, 0xE48E, 0xE888, 0xEC94, ++ 0xF08E, 0xF450, 0xF7B6, 0xFA9B, 0xFCDA, 0xFE4E, 0xFED2, 0xEC40, 0xEC40, ++ 0xEC7B, 0xED22, 0xEE23, 0xEF6E, 0xF0F3, 0xF2A2, 0xF469, 0xF638, 0xF7FF, ++ 0xF9AE, 0xFB33, 0xFC7E, 0xFD7F, 0xFE26, 0xFE61, 0xB59D, 0xB59D, 0xB5EB, ++ 0xB6C6, 0xB819, 0xB9CD, 0xBBCE, 0xBE05, 0xC05C, 0xC2BF, 0xC516, 0xC74D, ++ 0xC94D, 0xCB02, 0xCC55, 0xCD30, 0xCD7E, 0x0000, 0x0000, 0xFFFD, 0xFFF7, ++ 0xFFEE, 0xFFE3, 0xFFD5, 0xFFC6, 0xFFB7, 0xFFA6, 0xFF97, 0xFF88, 0xFF7A, ++ 0xFF6F, 0xFF66, 0xFF60, 0xFF5E, 0xFFFF, 0xFFFF, 0x0005, 0x0011, 0x0025, ++ 0x003F, 0x005C, 0x007E, 0x00A1, 0x00C4, 0x00E7, 0x0108, 0x0126, 0x0140, ++ 0x0153, 0x0160, 0x0165, 0x2537, 0x2537, 0x24CF, 0x23A9, 0x21E4, 0x1F9B, ++ 0x1CED, 0x19F5, 0x16D3, 0x13A1, 0x107E, 0x0D87, 0x0AD9, 0x0890, 0x06CB, ++ 0x05A5, 0x053D, 0xFFFF, 0xFFFF, 0xFFF0, 0xFFC4, 0xFF81, 0xFF2B, 0xFEC6, ++ 0xFE56, 0xFDE0, 0xFD67, 0xFCF1, 0xFC81, 0xFC1C, 0xFBC6, 0xFB83, 0xFB58, ++ 0xFB48, 0x0000, 0x0000, 0xFFD3, 0xFF58, 0xFE9A, 0xFDA6, 0xFC86, 0xFB48, ++ 0xF9F8, 0xF8A2, 0xF752, 0xF614, 0xF4F4, 0xF3FF, 0xF342, 0xF2C7, 0xF29B, ++ 0xBF3F, 0xBF3F, 0xBF51, 0xBF84, 0xBFD3, 0xC038, 0xC0AF, 0xC132, 0xC1BD, ++ 0xC24B, 0xC2D6, 0xC359, 0xC3D0, 0xC435, 0xC484, 0xC4B6, 0xC4C8, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, 0x001A, 0x0022, ++ 0x002C, 0x0036, 0x0042, 0x004E, 0x005B, 0x0069, 0x0077, 0x0086, 0x0095, ++ 0x00A5, 0x00B4, 0x00C4, 0x00D5, 0x00E5, 0x00F5, 0x0105, 0x0115, 0x0124, ++ 0x0133, 0x0142, 0x0150, 0x015E, 0x016B, 0x0177, 0x0183, 0x018D, 0x0197, ++ 0x01A0, 0x01A7, 0x01AD, 0x01B2, 0x01B6, 0x01B8, 0x01B9, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFB, 0xFFEE, 0xFFD9, 0xFFBD, 0xFF9A, 0xFF71, 0xFF41, 0xFF0B, ++ 0xFED0, 0xFE90, 0xFE4C, 0xFE03, 0xFDB7, 0xFD68, 0xFD16, 0xFCC1, 0xFC6B, ++ 0xFC13, 0xFBBA, 0xFB60, 0xFB07, 0xFAAD, 0xFA54, 0xF9FC, 0xF9A6, 0xF951, ++ 0xF8FF, 0xF8B0, 0xF864, 0xF81B, 0xF7D7, 0xF797, 0xF75C, 0xF726, 0xF6F6, ++ 0xF6CD, 0xF6AA, 0xF68E, 0xF679, 0xF66C, 0xF668, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5D, 0xBF5D, 0xBF5C, 0xBF5B, 0xBF5A, 0xBF59, 0xBF58, ++ 0xBF56, 0xBF55, 0xBF53, 0xBF52, 0xBF50, 0xBF4E, 0xBF4D, 0xBF4B, 0xBF49, ++ 0xBF47, 0xBF45, 0xBF43, 0xBF41, 0xBF3F, 0xBF3E, 0xBF3C, 0xBF3A, 0xBF38, ++ 0xBF36, 0xBF35, 0xBF33, 0xBF32, 0xBF30, 0xBF2F, 0xBF2E, 0xBF2D, 0xBF2C, ++ 0xBF2B, 0xBF2B, 0xBF2A, 0x1B09, 0x1B09, 0x1AA6, 0x198E, 0x17DF, 0x15B3, ++ 0x1326, 0x1054, 0x0D58, 0x0A4E, 0x0752, 0x0480, 0x01F3, 0xFFC6, 0xFE16, ++ 0xFCFF, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, ++ 0xFCA2, 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, ++ 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, 0xFCA2, ++ 0xFCA2, 0xFCA1, 0x1144, 0x1144, 0x1104, 0x104E, 0x0F36, 0x0DCD, 0x0C26, ++ 0x0A51, 0x0861, 0x0668, 0x0479, 0x02A4, 0x00FC, 0xFF92, 0xFE7A, 0xFDC5, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD84, 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, ++ 0xFD5D, 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, ++ 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, ++ 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, 0xFD81, ++ 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, 0xFD5F, ++ 0xFD65, 0xAC43, 0xAC43, 0xAC8D, 0xAD5B, 0xAE9B, 0xB037, 0xB21A, 0xB431, ++ 0xB666, 0xB8A6, 0xBADB, 0xBCF2, 0xBED6, 0xC071, 0xC1B1, 0xC27F, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2AA, ++ 0xC255, 0xC1D7, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, ++ 0xBEA9, 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, ++ 0xC1D8, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, ++ 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, 0xC1D8, ++ 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, 0xBF49, ++ 0xFFFF, 0xFFFF, 0xFFFD, 0xFFF9, 0xFFF2, 0xFFE9, 0xFFDF, 0xFFD3, 0xFFC7, ++ 0xFFBB, 0xFFAE, 0xFFA3, 0xFF99, 0xFF90, 0xFF89, 0xFF84, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, ++ 0xFF8B, 0xFF90, 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA9, ++ 0xFFA9, 0xFFA9, 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA7, 0xFFA6, 0xFFA6, 0xFFA5, ++ 0xFFA4, 0xFFA3, 0xFFA2, 0xFFA1, 0xFFA0, 0xFF9F, 0xFF9E, 0xFF9D, 0xFF9C, ++ 0xFF9B, 0xFF9A, 0xFF98, 0xFF97, 0xFF96, 0xFF95, 0xFF94, 0xFF92, 0xFF91, ++ 0xFF90, 0xFF8F, 0xFF8E, 0xFF8D, 0xFF8C, 0xFF8B, 0xFF8A, 0xFF89, 0xFFFF, ++ 0xFFFF, 0x0008, 0x001F, 0x0042, 0x006F, 0x00A4, 0x00DF, 0x011D, 0x015C, ++ 0x019A, 0x01D4, 0x0209, 0x0237, 0x025A, 0x0270, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, 0x0274, 0x026E, ++ 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, 0x024B, 0x024B, ++ 0x024B, 0x024C, 0x024C, 0x024D, 0x024E, 0x024E, 0x024F, 0x0250, 0x0251, ++ 0x0252, 0x0253, 0x0254, 0x0255, 0x0257, 0x0258, 0x0259, 0x025B, 0x025C, ++ 0x025D, 0x025F, 0x0260, 0x0262, 0x0263, 0x0264, 0x0266, 0x0267, 0x0269, ++ 0x026A, 0x026B, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x1E4A, 0x1E4A, ++ 0x1DF9, 0x1D16, 0x1BB6, 0x19F1, 0x17DD, 0x1591, 0x1323, 0x10A9, 0x0E3B, ++ 0x0BEF, 0x09DB, 0x0816, 0x06B7, 0x05D3, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, ++ 0x0714, 0x078B, 0x07F8, 0x0852, 0x088F, 0x08A5, 0x08A4, 0x08A1, 0x089C, ++ 0x0896, 0x088D, 0x0883, 0x0877, 0x086A, 0x085B, 0x084B, 0x083A, 0x0828, ++ 0x0815, 0x0800, 0x07EB, 0x07D5, 0x07BF, 0x07A7, 0x0790, 0x0777, 0x075F, ++ 0x0746, 0x072D, 0x0714, 0x06FB, 0x06E2, 0x06C9, 0x06B0, 0x0698, 0x0680, ++ 0x0669, 0x0653, 0x063D, 0x0627, 0x0613, 0x0600, 0xFFFF, 0xFFFF, 0x0014, ++ 0x004E, 0x00A7, 0x011A, 0x01A0, 0x0235, 0x02D3, 0x0373, 0x0411, 0x04A6, ++ 0x052D, 0x059F, 0x05F8, 0x0632, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, ++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, ++ 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, ++ 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, 0x0637, ++ 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, 0x0609, ++ 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0xFF2F, 0xFF2F, 0xFF61, 0xFFEF, ++ 0x00CB, 0x01E5, 0x0330, 0x049E, 0x0622, 0x07AC, 0x092F, 0x0A9E, 0x0BE9, ++ 0x0D03, 0x0DDE, 0x0E6B, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, ++ 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, ++ 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, ++ 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, ++ 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, ++ 0x1559, 0x158B, 0x1529, 0x142B, 0xC9D7, 0xC9D7, 0xC9EA, 0xCA1E, 0xCA6F, ++ 0xCAD8, 0xCB52, 0xCBDA, 0xCC69, 0xCCFB, 0xCD8B, 0xCE12, 0xCE8D, 0xCEF5, ++ 0xCF46, 0xCF7B, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, ++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, ++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, ++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, ++ 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, 0xC328, ++ 0xC2CC, 0xC381, 0xC553, + }; + diff --git a/assets/anims/anim_84.inc.c b/assets/anims/anim_84.inc.c index 21f981af..65050659 100644 --- a/assets/anims/anim_84.inc.c +++ b/assets/anims/anim_84.inc.c @@ -3,7 +3,7 @@ static const struct Animation anim_84[] = { 189, 0, 0, - 0x40, + 97, ANIMINDEX_NUMPARTS(anim_84_indices), anim_84_values, anim_84_indices, @@ -12,326 +12,584 @@ static const struct Animation anim_84[] = { static const u16 anim_84_indices[] = { - 0x0001, 0x0000, 0x0040, 0x0001, 0x0040, 0x0041, 0x0001, 0x0000, 0x0001, 0x0081, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x090A, - 0x0040, 0x084A, 0x0040, 0x088A, 0x0040, 0x08CA, - 0x0040, 0x078A, 0x0040, 0x07CA, 0x0040, 0x080A, - 0x0001, 0x0786, 0x0001, 0x0787, 0x0001, 0x0788, - 0x0040, 0x0182, 0x0040, 0x01C2, 0x0040, 0x0202, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0142, - 0x0040, 0x0082, 0x0040, 0x00C2, 0x0040, 0x0102, - 0x0001, 0x0782, 0x0001, 0x0783, 0x0001, 0x0784, - 0x0040, 0x0342, 0x0040, 0x0382, 0x0040, 0x03C2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0302, - 0x0040, 0x0242, 0x0040, 0x0282, 0x0040, 0x02C2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0785, - 0x0040, 0x06C2, 0x0040, 0x0702, 0x0040, 0x0742, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0682, - 0x0040, 0x05C2, 0x0040, 0x0602, 0x0040, 0x0642, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0789, - 0x0040, 0x0502, 0x0040, 0x0542, 0x0040, 0x0582, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x04C2, - 0x0040, 0x0402, 0x0040, 0x0442, 0x0040, 0x0482, +0x0001, 0x0000, 0x005D, 0x0001, 0x0001, 0x005E, 0x003C, 0x005F, 0x003B, + 0x009B, 0x005D, 0x00D6, 0x005B, 0x0133, 0x005D, 0x018E, 0x0001, 0x01EB, + 0x0062, 0x01EC, 0x0062, 0x024E, 0x0062, 0x02B0, 0x0062, 0x0312, 0x0062, + 0x0374, 0x0062, 0x03D6, 0x005D, 0x0438, 0x005D, 0x0495, 0x005D, 0x04F2, + 0x003C, 0x054F, 0x003C, 0x058B, 0x003C, 0x05C7, 0x003C, 0x0603, 0x003C, + 0x063F, 0x003C, 0x067B, 0x005D, 0x06B7, 0x005D, 0x0714, 0x005D, 0x0771, + 0x003B, 0x07CE, 0x003B, 0x0809, 0x0039, 0x0844, 0x0062, 0x087D, 0x0062, + 0x08DF, 0x0062, 0x0941, 0x005D, 0x09A3, 0x005D, 0x0A00, 0x005D, 0x0A5D, + 0x005A, 0x0ABA, 0x005A, 0x0B14, 0x005A, 0x0B6E, 0x005D, 0x0BC8, 0x005D, + 0x0C25, 0x0001, 0x0C82, 0x005D, 0x0C83, 0x005D, 0x0CE0, 0x005D, 0x0D3D, + 0x005D, 0x0D9A, 0x005D, 0x0DF7, 0x005D, 0x0E54, 0x005D, 0x0EB1, 0x005D, + 0x0F0E, 0x005D, 0x0F6B, 0x003A, 0x0FC8, 0x003C, 0x1002, 0x003C, 0x103E, + 0x005D, 0x107A, 0x005D, 0x10D7, 0x005D, 0x1134, 0x005D, 0x1191, 0x005D, + 0x11EE, 0x005D, 0x124B, 0x005D, 0x12A8, 0x005D, 0x1305, 0x005D, 0x1362, }; static const s16 anim_84_values[] = { - 0x0000, 0x00AB, 0x00AA, 0x00A7, 0x00A3, 0x009F, 0x0099, 0x0092, - 0x008B, 0x0084, 0x007C, 0x0073, 0x0068, 0x005B, 0x004E, 0x0043, - 0x0039, 0x0032, 0x002F, 0x002D, 0x002E, 0x002F, 0x0031, 0x0033, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0xFFFF, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, 0xFFEA, 0xFFE2, - 0xFFD9, 0xFFD0, 0xFFC7, 0xFFBB, 0xFFAC, 0xFF9B, 0xFF8A, 0xFF7A, - 0xFF6D, 0xFF63, 0xFF5D, 0xFF5A, 0xFF58, 0xFF57, 0xFF58, 0xFF58, - 0xFF59, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, - 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, - 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, - 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, - 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, - 0xFF5A, 0x3FFF, 0xFE50, 0xFE40, 0xFE17, 0xFDE1, 0xFDAC, 0xFD83, - 0xFD73, 0xFD87, 0xFDCD, 0xFE50, 0xFF66, 0x0122, 0x0333, 0x0543, - 0x0700, 0x0816, 0x0899, 0x08DF, 0x08F3, 0x08E3, 0x08BA, 0x0885, - 0x084F, 0x0826, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0xF9B4, 0xF9DB, 0xFA3C, 0xFABB, 0xFB39, 0xFB9A, - 0xFBC1, 0xFB91, 0xFAEB, 0xF9B4, 0xF722, 0xF302, 0xEE1C, 0xE937, - 0xE517, 0xE285, 0xE14D, 0xE0A8, 0xE078, 0xE09E, 0xE100, 0xE17E, - 0xE1FC, 0xE25E, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, - 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, - 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, - 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, - 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, - 0xE285, 0xE285, 0xF845, 0xF85D, 0xF898, 0xF8E4, 0xF931, 0xF96C, - 0xF984, 0xF966, 0xF902, 0xF845, 0xF6B5, 0xF434, 0xF13A, 0xEE40, - 0xEBBF, 0xEA2F, 0xE972, 0xE90D, 0xE8F0, 0xE907, 0xE943, 0xE98F, - 0xE9DC, 0xEA17, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, - 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, - 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, - 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, - 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, - 0xEA2F, 0xEA2F, 0xE4CB, 0xE3E1, 0xE352, 0xE310, 0xE30D, 0xE33B, - 0xE38C, 0xE3F4, 0xE462, 0xE4CB, 0xE552, 0xE61A, 0xE714, 0xE82D, - 0xE956, 0xEA7F, 0xEBC9, 0xED4F, 0xEEF8, 0xF0A8, 0xF245, 0xF3B4, - 0xF4DB, 0xF5A0, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, - 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, - 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, - 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, - 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, - 0xF5E7, 0xF5E7, 0x896F, 0x8A49, 0x8B9F, 0x8D40, 0x8EFB, 0x909E, - 0x91F8, 0x92D8, 0x930B, 0x9262, 0x8FF5, 0x8B93, 0x861C, 0x8071, - 0x7B72, 0x7800, 0x75CB, 0x73EC, 0x725E, 0x711B, 0x701E, 0x6F62, - 0x6EE3, 0x6E9A, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, - 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, - 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, - 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, - 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, - 0x6E83, 0x6E83, 0xA3B0, 0xA309, 0xA3C2, 0xA581, 0xA7EE, 0xAAAE, - 0xAD69, 0xAFC6, 0xB16B, 0xB1FE, 0xB0F8, 0xAE7A, 0xAB26, 0xA7A1, - 0xA490, 0xA296, 0xA187, 0xA0C0, 0xA036, 0x9FDF, 0x9FB0, 0x9F9E, - 0x9F9F, 0x9FA7, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, - 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, - 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, - 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, - 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, - 0x9FAC, 0x9FAC, 0x384A, 0x37DB, 0x36B9, 0x351E, 0x3344, 0x3163, - 0x2FB7, 0x2E77, 0x2DDF, 0x2E27, 0x3005, 0x338F, 0x380F, 0x3CD2, - 0x4120, 0x4446, 0x468F, 0x48BB, 0x4AC0, 0x4C92, 0x4E27, 0x4F75, - 0x5070, 0x510E, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, - 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, - 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, - 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, - 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, - 0x5146, 0x5146, 0x0BDE, 0x0A32, 0x0973, 0x096A, 0x09DD, 0x0A97, - 0x0B5E, 0x0BFD, 0x0C3A, 0x0BDE, 0x0AC6, 0x0918, 0x070C, 0x04DA, - 0x02B9, 0x00E0, 0xFF1F, 0xFD30, 0xFB2C, 0xF930, 0xF755, 0xF5B5, - 0xF46C, 0xF393, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, - 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, - 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, - 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, - 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, - 0xF345, 0xF345, 0x04C8, 0x0445, 0x0386, 0x02B4, 0x01F6, 0x0172, - 0x0151, 0x01BA, 0x02D5, 0x04C8, 0x08E3, 0x0F81, 0x1757, 0x1F1D, - 0x2588, 0x294E, 0x2AB3, 0x2B00, 0x2A74, 0x294F, 0x27D1, 0x2638, - 0x24C6, 0x23B9, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, - 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, - 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, - 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, - 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, - 0x2351, 0x2351, 0xFA2D, 0xFA60, 0xFA9F, 0xFADE, 0xFB14, 0xFB35, - 0xFB3A, 0xFB16, 0xFABF, 0xFA2D, 0xF925, 0xF795, 0xF5AA, 0xF392, - 0xF17A, 0xEF8F, 0xED9D, 0xEB66, 0xE90C, 0xE6B1, 0xE477, 0xE281, - 0xE0F0, 0xDFE6, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, - 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, - 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, - 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, - 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, - 0xDF86, 0xDF86, 0xF09C, 0xF145, 0xF19F, 0xF1BA, 0xF1A5, 0xF170, - 0xF12B, 0xF0E6, 0xF0B1, 0xF09C, 0xF085, 0xF052, 0xF01F, 0xF008, - 0xF029, 0xF09C, 0xF175, 0xF2A1, 0xF402, 0xF57D, 0xF6F3, 0xF849, - 0xF961, 0xFA1E, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, - 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, - 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, - 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, - 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, - 0xFA63, 0xFA63, 0x12E8, 0x1350, 0x13AD, 0x1401, 0x144E, 0x1494, - 0x14D6, 0x1515, 0x1552, 0x1590, 0x15D4, 0x161C, 0x165E, 0x168F, - 0x16A3, 0x1690, 0x1651, 0x15EE, 0x1574, 0x14EC, 0x1464, 0x13E6, - 0x137D, 0x1336, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, - 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, - 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, - 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, - 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, - 0x131C, 0x131C, 0x0693, 0x0694, 0x07E5, 0x0A22, 0x0CE5, 0x0FC7, - 0x1262, 0x1452, 0x1531, 0x1497, 0x1145, 0x0B1F, 0x0373, 0xFB95, - 0xF4D4, 0xF080, 0xEE3E, 0xECBC, 0xEBD9, 0xEB72, 0xEB69, 0xEB9B, - 0xEBE7, 0xEC2D, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, - 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, - 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, - 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, - 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, - 0xEC4C, 0xEC4C, 0xCABB, 0xCBF3, 0xCD03, 0xCDF1, 0xCEC7, 0xCF8D, - 0xD04C, 0xD10C, 0xD1D7, 0xD2B4, 0xD3A3, 0xD499, 0xD593, 0xD68F, - 0xD787, 0xD879, 0xD97D, 0xDAA1, 0xDBD7, 0xDD0B, 0xDE2D, 0xDF2D, - 0xDFF8, 0xE07F, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, - 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, - 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, - 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, - 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, - 0xE0B0, 0xE0B0, 0x0000, 0x0002, 0x0007, 0x000E, 0x0016, 0x0020, - 0x0029, 0x0032, 0x0039, 0x003F, 0x0043, 0x0046, 0x0048, 0x0048, - 0x0045, 0x003F, 0x0033, 0x0023, 0x000F, 0xFFFC, 0xFFE8, 0xFFD5, - 0xFFC6, 0xFFBC, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, - 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, - 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, - 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, - 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, - 0xFFB8, 0xFFB8, 0xFF30, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF35, - 0xFF36, 0xFF38, 0xFF39, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, - 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3B, 0xFF3B, 0xFF3C, 0xFF3C, - 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, - 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, - 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, - 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, - 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, - 0xFF3D, 0xFF3D, 0xC9D8, 0xC96E, 0xC871, 0xC705, 0xC54E, 0xC36F, - 0xC18D, 0xBFCB, 0xBE4D, 0xBD36, 0xBC62, 0xBBAC, 0xBB3F, 0xBB41, - 0xBBDB, 0xBD36, 0xBF8B, 0xC2C4, 0xC690, 0xCAA1, 0xCEA7, 0xD253, - 0xD554, 0xD75C, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, - 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, - 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, - 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, - 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, - 0xD81B, 0xD81B, 0x1E4A, 0x1FB6, 0x231D, 0x27F8, 0x2DBF, 0x33E9, - 0x39EE, 0x3F46, 0x4369, 0x45CF, 0x45F1, 0x4401, 0x408D, 0x3C24, - 0x3753, 0x32A9, 0x2D8E, 0x275D, 0x2088, 0x1983, 0x12C1, 0x0CB6, - 0x07D7, 0x0495, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, - 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, - 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, - 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, - 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, - 0x0366, 0x0366, 0x1B09, 0x1A7E, 0x1933, 0x1753, 0x150A, 0x1281, - 0x0FE4, 0x0D5E, 0x0B18, 0x093E, 0x07A8, 0x0625, 0x04D2, 0x03CE, - 0x0334, 0x0324, 0x03AB, 0x04AA, 0x05FD, 0x0781, 0x090F, 0x0A85, - 0x0BBD, 0x0C93, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, - 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, - 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, - 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, - 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, - 0x0CE2, 0x0CE2, 0x1144, 0x1142, 0x113D, 0x1136, 0x1131, 0x112E, - 0x1130, 0x1139, 0x114B, 0x1168, 0x11AB, 0x121A, 0x1299, 0x130B, - 0x1354, 0x1357, 0x1310, 0x1299, 0x1200, 0x1154, 0x10A5, 0x1003, - 0x0F7C, 0x0F20, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, - 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, - 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, - 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, - 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, - 0x0EFE, 0x0EFE, 0xAC44, 0xAB52, 0xA915, 0xA5D5, 0xA1D9, 0x9D68, - 0x98CC, 0x944C, 0x902F, 0x8CBE, 0x898A, 0x8631, 0x8314, 0x8092, - 0x7F0A, 0x7EDC, 0x8026, 0x828C, 0x85B8, 0x8953, 0x8D08, 0x9080, - 0x9364, 0x9560, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, - 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, - 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, - 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, - 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, - 0x961D, 0x961D, 0x0000, 0x0008, 0x000D, 0x000E, 0x000D, 0x000A, - 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xFFFC, 0xFFFA, 0xFFF9, 0xFFFA, 0xFFFB, - 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xBF40, 0xBF38, 0xBF34, 0xBF33, 0xBF34, 0xBF36, - 0xBF39, 0xBF3D, 0xBF3F, 0xBF40, 0xBF1C, 0xBECB, 0xBE7B, 0xBE57, - 0xBE8A, 0xBF40, 0xC098, 0xC273, 0xC4A2, 0xC6FA, 0xC94B, 0xCB67, - 0xCD22, 0xCE4E, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, - 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, - 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, - 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, - 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, - 0xCEBC, 0xCEBC, 0x2537, 0x266B, 0x2950, 0x2D6B, 0x3244, 0x3760, - 0x3C47, 0x407F, 0x438F, 0x44FE, 0x440B, 0x40C9, 0x3BFE, 0x3671, - 0x30E6, 0x2C24, 0x279F, 0x227D, 0x1D0D, 0x179B, 0x1277, 0x0DF0, - 0x0A53, 0x07EE, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, - 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, - 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, - 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, - 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, - 0x0710, 0x0710, 0xD64A, 0xD74E, 0xD9B7, 0xDD32, 0xE167, 0xE602, - 0xEAAD, 0xEF13, 0xF2DD, 0xF5B7, 0xF789, 0xF893, 0xF903, 0xF906, - 0xF8CA, 0xF87B, 0xF803, 0xF73E, 0xF644, 0xF52E, 0xF413, 0xF30D, - 0xF234, 0xF1A0, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, - 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, - 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, - 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, - 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, - 0xF169, 0xF169, 0xEC41, 0xEC5A, 0xEC97, 0xECEE, 0xED56, 0xEDC4, - 0xEE30, 0xEE8F, 0xEEDA, 0xEF05, 0xEEF4, 0xEEA8, 0xEE41, 0xEDE0, - 0xEDA5, 0xEDB1, 0xEE09, 0xEE92, 0xEF3C, 0xEFF8, 0xF0B5, 0xF163, - 0xF1F3, 0xF255, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, - 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, - 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, - 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, - 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, - 0xF279, 0xF279, 0xB59E, 0xB448, 0xB119, 0xAC80, 0xA6ED, 0xA0CE, - 0x9A92, 0x94A9, 0x8F81, 0x8B8A, 0x88B4, 0x869F, 0x8540, 0x848B, - 0x8477, 0x84F7, 0x8634, 0x8835, 0x8ABC, 0x8D8A, 0x9061, 0x9303, - 0x9532, 0x96AE, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, - 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, - 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, - 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, - 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, - 0x973B, 0x973B, 0x9524, 0x5D21, 0x475E, 0xBF5F, 0x90BE, 0x7987, - 0x4B8C, 0xBF5F, 0x0015, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, - 0x0016, 0x0016, 0x0016, 0x0015, 0x0017, 0x001C, 0x0021, 0x0023, - 0x0020, 0x0015, 0x0003, 0xFFEC, 0xFFD0, 0xFFB1, 0xFF93, 0xFF75, - 0xFF5A, 0xFF44, 0xFF35, 0xFF2C, 0xFF2A, 0xFF2B, 0xFF30, 0xFF36, - 0xFF3C, 0xFF41, 0xFF42, 0xFF3E, 0xFF35, 0xFF26, 0xFF16, 0xFF05, - 0xFEF2, 0xFEDD, 0xFEC8, 0xFEB2, 0xFE9C, 0xFE85, 0xFE6D, 0xFE56, - 0xFE3F, 0xFE28, 0xFE12, 0xFDFC, 0xFDE8, 0xFDD4, 0xFDC2, 0xFDB1, - 0xFDA2, 0xFD95, 0xFD89, 0xFD80, 0xFD7A, 0xFD75, 0xFD72, 0xFD71, - 0xFD71, 0xFD73, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, - 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4B, 0xFD4B, 0xFD4A, - 0xFD4B, 0xFD4C, 0xFD4F, 0xFD52, 0xFD56, 0xFD5A, 0xFD5E, 0xFD62, - 0xFD65, 0xFD68, 0xFD6A, 0xFD6B, 0xFD69, 0xFD65, 0xFD61, 0xFD5D, - 0xFD5A, 0xFD5A, 0xFD5B, 0xFD61, 0xFD6A, 0xFD78, 0xFD86, 0xFD97, - 0xFDA8, 0xFDBB, 0xFDCF, 0xFDE3, 0xFDF8, 0xFE0E, 0xFE23, 0xFE39, - 0xFE4E, 0xFE63, 0xFE78, 0xFE8C, 0xFE9F, 0xFEB0, 0xFEC1, 0xFECF, - 0xFEDD, 0xFEE8, 0xFEF1, 0xFEF8, 0xFEFC, 0xFEFE, 0xFEFF, 0xFEFD, - 0xFEF9, 0xFEF4, 0xF588, 0xF577, 0xF56E, 0xF56C, 0xF56E, 0xF573, - 0xF57A, 0xF580, 0xF586, 0xF588, 0xF568, 0xF522, 0xF4DC, 0xF4BC, - 0xF4E9, 0xF588, 0xF6A1, 0xF811, 0xF9BE, 0xFB8D, 0xFD64, 0xFF29, - 0x00C0, 0x0210, 0x0300, 0x0379, 0x038E, 0x0359, 0x02F7, 0x0283, - 0x0219, 0x01D5, 0x01D2, 0x022C, 0x0300, 0x042D, 0x0581, 0x06F6, - 0x088A, 0x0A37, 0x0BF9, 0x0DCD, 0x0FAD, 0x1197, 0x1385, 0x1574, - 0x175F, 0x1942, 0x1B19, 0x1CE0, 0x1E93, 0x202D, 0x21AB, 0x2307, - 0x243E, 0x254C, 0x262D, 0x26DC, 0x2757, 0x27A3, 0x27C2, 0x27BA, - 0x278D, 0x2740, 0xFD9F, 0xFDCE, 0xFE05, 0xFE42, 0xFE83, 0xFEC4, - 0xFF03, 0xFF3E, 0xFF71, 0xFF9B, 0xFFB7, 0xFFC5, 0xFFCA, 0xFFC8, - 0xFFC2, 0xFFBE, 0xFFB9, 0xFFB0, 0xFFA4, 0xFF98, 0xFF8B, 0xFF7F, - 0xFF75, 0xFF6F, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, - 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, - 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, - 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, - 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, - 0xFF6C, 0xFF6C, 0x04A4, 0x0441, 0x03D0, 0x0356, 0x02D7, 0x0259, - 0x01DF, 0x0170, 0x0110, 0x00C4, 0x0098, 0x008F, 0x009C, 0x00B3, - 0x00C9, 0x00D2, 0x00CF, 0x00C9, 0x00C3, 0x00BC, 0x00B4, 0x00AE, - 0x00A8, 0x00A4, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, - 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, - 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, - 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, - 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, - 0x00A3, 0x00A3, 0x0FC6, 0x113B, 0x128D, 0x13C1, 0x14E0, 0x15F1, - 0x16FA, 0x1803, 0x1913, 0x1A30, 0x1B99, 0x1D52, 0x1F0B, 0x2075, - 0x2140, 0x211E, 0x1FF6, 0x1E0E, 0x1BA3, 0x18F1, 0x1635, 0x13AB, - 0x1190, 0x1020, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, - 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, - 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, - 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, - 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, - 0x0F98, 0x0F98, 0x40A1, 0x40C8, 0x4129, 0x41A8, 0x4227, 0x4288, - 0x42AF, 0x427E, 0x41D9, 0x40A1, 0x3E0E, 0x39EC, 0x3504, 0x301D, - 0x2BFB, 0x2968, 0x2830, 0x278B, 0x275A, 0x2781, 0x27E2, 0x2861, - 0x28E0, 0x2941, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, - 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, - 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, - 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, - 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, - 0x2968, 0x2968, + 0x0000, 0x00BD, 0x00BD, 0x00BD, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, + 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, + 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, + 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00C2, + 0x00C9, 0x00D2, 0x00DB, 0x00E1, 0x00E4, 0x00DD, 0x00C9, 0x00AD, 0x008E, + 0x006E, 0x0052, 0x003F, 0x0037, 0xFFFF, 0xC005, 0xC005, 0xC005, 0xC005, + 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, 0xC016, 0xC022, + 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, + 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, 0xC08C, 0xC0C1, + 0xC0FF, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, 0xC380, 0xC3EF, + 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, 0xC778, 0xC7E0, + 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CC, 0xCA02, 0xCA2C, 0xCA4C, + 0xCA5F, 0xCA66, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, + 0x38E3, 0x38E3, 0x38E3, 0x38E4, 0x38E5, 0x38E7, 0x38E7, 0x38E7, 0x38E7, + 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, + 0x38E7, 0x38E8, 0x38EA, 0x38EE, 0x38F2, 0x38F8, 0x38FF, 0x3907, 0x3910, + 0x391A, 0x3924, 0x392F, 0x393A, 0x3946, 0x3953, 0x395F, 0x396C, 0x3979, + 0x3986, 0x3992, 0x399F, 0x39AB, 0x39B7, 0x39C3, 0x39CE, 0x39D8, 0x39E2, + 0x39EB, 0x39F2, 0x39F9, 0x39FF, 0x3A04, 0x3A08, 0x3A0A, 0xC005, 0xC005, + 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, + 0xC016, 0xC022, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, + 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, + 0xC08C, 0xC0C1, 0xC100, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, + 0xC380, 0xC3EF, 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, + 0xC778, 0xC7E0, 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CD, 0xCA02, + 0xCA2C, 0xCA4C, 0xCA5F, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, + 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, + 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCB55, 0xCDF2, 0xD1F4, 0xD716, + 0xDD0F, 0xE396, 0xEA66, 0xF135, 0xF7BD, 0xFDB6, 0x02D8, 0x06DB, 0x0978, + 0x0A67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x40A1, 0xF721, 0xF709, 0xF6F2, + 0xF6DB, 0xF6C5, 0xF6B0, 0xF69B, 0xF687, 0xF674, 0xF662, 0xF650, 0xF640, + 0xF630, 0xF621, 0xF613, 0xF606, 0xF5FA, 0xF5F0, 0xF5E6, 0xF5DE, 0xF5D6, + 0xF5D0, 0xF5CC, 0xF5C8, 0xF5C6, 0xF5C5, 0xF5CD, 0xF5E4, 0xF609, 0xF63C, + 0xF67A, 0xF6C4, 0xF719, 0xF776, 0xF7DD, 0xF84A, 0xF8BF, 0xF939, 0xF9B8, + 0xFA3A, 0xFAC0, 0xFB47, 0xFBCF, 0xFC57, 0xFCDF, 0xFD64, 0xFDE7, 0xFE66, + 0xFEE0, 0xFF54, 0xFFC2, 0x0029, 0x0087, 0x00DB, 0x0125, 0x0164, 0x0196, + 0x01BB, 0x01D2, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, + 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, + 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01F8, 0x024B, 0x02CA, 0x036F, 0x042F, + 0x0504, 0x05E3, 0x06C5, 0x07A2, 0x0870, 0x0928, 0x09C0, 0x0A27, 0x0A4E, + 0x0A4C, 0x0A47, 0x0A41, 0x0A3A, 0x0A35, 0x01F4, 0x01F9, 0x01FF, 0x0204, + 0x0209, 0x020E, 0x0213, 0x0218, 0x021C, 0x0221, 0x0225, 0x0229, 0x022D, + 0x0230, 0x0234, 0x0237, 0x023A, 0x023C, 0x023F, 0x0241, 0x0242, 0x0244, + 0x0245, 0x0246, 0x0246, 0x0247, 0x0245, 0x0240, 0x0239, 0x022E, 0x0221, + 0x0212, 0x0200, 0x01ED, 0x01D8, 0x01C1, 0x01A9, 0x018F, 0x0175, 0x015A, + 0x013E, 0x0122, 0x0106, 0x00EA, 0x00CE, 0x00B2, 0x0097, 0x007D, 0x0063, + 0x004B, 0x0034, 0x001F, 0x000C, 0xFFF9, 0xFFEA, 0xFFDD, 0xFFD3, 0xFFCB, + 0xFFC6, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, + 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, + 0xFFC4, 0xFFC4, 0xFFC4, 0xFF37, 0xFDB2, 0xFB68, 0xF88D, 0xF554, 0xF1F1, + 0xEE97, 0xEB7A, 0xE8CE, 0xE6C5, 0xE593, 0xE516, 0xE4E9, 0xE4DD, 0xE4CB, + 0xE4AF, 0xE48F, 0xE471, 0xE45B, 0x1040, 0x1040, 0x1040, 0x1040, 0x1040, + 0x1040, 0x1040, 0x1040, 0x1040, 0x103F, 0x103F, 0x103F, 0x103E, 0x103D, + 0x103D, 0x103C, 0x103B, 0x103A, 0x1039, 0x1038, 0x1036, 0x1035, 0x1033, + 0x1031, 0x102F, 0x102D, 0x1023, 0x100A, 0x0FE4, 0x0FB1, 0x0F72, 0x0F28, + 0x0ED4, 0x0E77, 0x0E12, 0x0DA5, 0x0D32, 0x0CB9, 0x0C3C, 0x0BBC, 0x0B39, + 0x0AB4, 0x0A2E, 0x09A8, 0x0923, 0x08A0, 0x0820, 0x07A3, 0x072C, 0x06BA, + 0x064E, 0x05EA, 0x058E, 0x053B, 0x04F3, 0x04B6, 0x0484, 0x0460, 0x0449, + 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, + 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, + 0x0442, 0x0442, 0x0442, 0x0445, 0x044B, 0x0458, 0x046D, 0x048D, 0x04B9, + 0x04F4, 0x053F, 0x059D, 0x0611, 0x07A3, 0x0A0A, 0x0B48, 0x0AEB, 0x0A01, + 0x08D1, 0x07A1, 0x06B8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, + 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8CA, 0xE8CE, 0xE8D3, 0xE8D4, 0xE8D4, + 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, + 0xE8D4, 0xE8D4, 0xE8EA, 0xE92B, 0xE993, 0xEA20, 0xEAD1, 0xEBA3, 0xEC93, + 0xED9F, 0xEEC5, 0xF003, 0xF155, 0xF2BB, 0xF430, 0xF5B4, 0xF743, 0xF8DC, + 0xFA7B, 0xFC1F, 0xFDC5, 0xFF6B, 0x0110, 0x02AF, 0x0446, 0x05D5, 0x0757, + 0x08CA, 0x0A2E, 0x0B7E, 0x0CB9, 0x0DDC, 0x0EE5, 0x0FD2, 0x10A0, 0x114D, + 0x11DE, 0x125A, 0x12C3, 0x131B, 0x1362, 0x139C, 0x13C8, 0x13EA, 0x1402, + 0x1412, 0x141C, 0x1421, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, + 0x1423, 0x1401, 0x139C, 0x12F4, 0x1208, 0x10DA, 0x0F68, 0x0DB3, 0x0BBC, + 0x0982, 0x0706, 0x0447, 0x015F, 0xFECD, 0xFD2A, 0xFC58, 0xFBCC, 0xFB76, + 0xFB4B, 0xFB3B, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, + 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, + 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, + 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF57, 0xFF57, + 0xFF57, 0xFF58, 0xFF58, 0xFF59, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, + 0xFF5E, 0xFF60, 0xFF61, 0xFF63, 0xFF65, 0xFF67, 0xFF6A, 0xFF6C, 0xFF6F, + 0xFF72, 0xFF75, 0xFF79, 0xFF7C, 0xFF80, 0xFF84, 0xFF89, 0xFF8E, 0xFF98, + 0xFFAC, 0xFFC9, 0xFFEC, 0x0015, 0x0040, 0x006C, 0x0098, 0x00C2, 0x00E8, + 0x0109, 0x0122, 0x0133, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, + 0x0109, 0x0085, 0xFFBE, 0xFEC5, 0xFDAB, 0xFC81, 0xFB57, 0xFA40, 0xF94A, + 0xF889, 0xF80C, 0xF7D7, 0xF7B8, 0xF770, 0xF6D2, 0xF5F4, 0xF501, 0xF420, + 0xF37B, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, + 0xF006, 0xF006, 0xF007, 0xF00A, 0xF00C, 0xF00D, 0xF00D, 0xF00D, 0xF00D, + 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, + 0xF014, 0xF028, 0xF048, 0xF074, 0xF0AA, 0xF0EA, 0xF133, 0xF184, 0xF1DD, + 0xF23D, 0xF2A2, 0xF30C, 0xF37A, 0xF3EB, 0xF460, 0xF4D5, 0xF54C, 0xF5C3, + 0xF639, 0xF6AD, 0xF71F, 0xF78E, 0xF7F9, 0xF85F, 0xF8C0, 0xF91A, 0xF96D, + 0xF9B8, 0xF9FA, 0xFA32, 0xFA60, 0xFA82, 0xFA99, 0xFAA2, 0xFAA5, 0xFAA7, + 0xFAA9, 0xFAAA, 0xFAAC, 0xFAAD, 0xFAAD, 0xFAAE, 0xFAAE, 0xFAAF, 0xFAAF, + 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAB9, + 0xFADF, 0xFB2B, 0xFBA6, 0xFC5B, 0xFD53, 0xFE98, 0x0036, 0x0235, 0x049F, + 0x077E, 0x0AB4, 0x0D7E, 0x0EF0, 0x0F54, 0x0F98, 0x0FC1, 0x0FD6, 0x0FDE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, + 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFFA, 0xFFFA, + 0xFFF9, 0xFFF9, 0xFFF9, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF7, 0xFFF7, + 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, + 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, + 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFC8, 0xFF45, + 0xFE7B, 0xFD7A, 0xFC4E, 0xFB06, 0xF9B0, 0xF85A, 0xF713, 0xF5E7, 0xF4E5, + 0xF41C, 0xF399, 0xF36A, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, + 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x000B, 0x001C, 0x0037, 0x0058, 0x007F, 0x00AA, 0x00D7, 0x0103, + 0x012E, 0x0155, 0x0177, 0x0191, 0x01A2, 0x01A8, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC173, 0xC179, 0xC184, 0xC193, + 0xC1A6, 0xC1BB, 0xC1D4, 0xC1F0, 0xC20E, 0xC22E, 0xC250, 0xC274, 0xC29A, + 0xC2C0, 0xC2E7, 0xC30F, 0xC337, 0xC35F, 0xC387, 0xC3AF, 0xC3D5, 0xC3FA, + 0xC41E, 0xC441, 0xC461, 0xC47F, 0xC49B, 0xC4B3, 0xC4C9, 0xC4DC, 0xC4EA, + 0xC4F5, 0xC4FC, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, + 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, + 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4F2, 0xC4CE, 0xC498, 0xC453, 0xC402, + 0xC3A9, 0xC34D, 0xC2F1, 0xC299, 0xC248, 0xC202, 0xC1CC, 0xC1A9, 0xC19C, + 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, + 0x0727, 0x0726, 0x0723, 0x0721, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, + 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x071F, + 0x071B, 0x0715, 0x070D, 0x0703, 0x06F7, 0x06EA, 0x06DB, 0x06CB, 0x06B9, + 0x06A7, 0x0693, 0x067F, 0x066A, 0x0655, 0x063F, 0x0629, 0x0614, 0x05FE, + 0x05E9, 0x05D4, 0x05C0, 0x05AC, 0x059A, 0x0588, 0x0578, 0x0569, 0x055B, + 0x0550, 0x0546, 0x053E, 0x0538, 0x0534, 0x0533, 0xD818, 0xD818, 0xD818, + 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD817, 0xD816, + 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, + 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD814, 0xD813, 0xD810, 0xD80D, + 0xD808, 0xD803, 0xD7FD, 0xD7F7, 0xD7F0, 0xD7E8, 0xD7E0, 0xD7D8, 0xD7CF, + 0xD7C6, 0xD7BD, 0xD7B3, 0xD7AA, 0xD7A0, 0xD797, 0xD78E, 0xD784, 0xD77C, + 0xD773, 0xD76B, 0xD763, 0xD75C, 0xD756, 0xD750, 0xD74B, 0xD747, 0xD743, + 0xD740, 0xD73F, 0xD73E, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, + 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF8E, 0xDF8C, 0xDF8B, 0xDF8B, + 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, + 0xDF8B, 0xDF8B, 0xDF8A, 0xDF86, 0xDF81, 0xDF7A, 0xDF71, 0xDF66, 0xDF5A, + 0xDF4C, 0xDF3E, 0xDF2E, 0xDF1D, 0xDF0B, 0xDEF9, 0xDEE6, 0xDED3, 0xDEC0, + 0xDEAC, 0xDE98, 0xDE85, 0xDE72, 0xDE5F, 0xDE4D, 0xDE3B, 0xDE2A, 0xDE1A, + 0xDE0C, 0xDDFE, 0xDDF2, 0xDDE7, 0xDDDE, 0xDDD7, 0xDDD2, 0xDDCE, 0xDDCD, + 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, + 0xE2A9, 0xE2AB, 0xE2B1, 0xE2B6, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, + 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2BC, + 0xE2C5, 0xE2D3, 0xE2E7, 0xE2FF, 0xE31C, 0xE33D, 0xE361, 0xE389, 0xE3B4, + 0xE3E1, 0xE410, 0xE442, 0xE474, 0xE4A8, 0xE4DD, 0xE512, 0xE547, 0xE57C, + 0xE5B0, 0xE5E2, 0xE614, 0xE643, 0xE670, 0xE69B, 0xE6C3, 0xE6E7, 0xE708, + 0xE725, 0xE73D, 0xE751, 0xE75F, 0xE768, 0xE76B, 0x0B39, 0x0B39, 0x0B39, + 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B38, 0x0B36, + 0x0B34, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, + 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B32, 0x0B2E, 0x0B29, 0x0B21, + 0x0B18, 0x0B0D, 0x0B00, 0x0AF2, 0x0AE3, 0x0AD3, 0x0AC1, 0x0AAF, 0x0A9C, + 0x0A89, 0x0A75, 0x0A61, 0x0A4D, 0x0A38, 0x0A24, 0x0A11, 0x09FD, 0x09EA, + 0x09D8, 0x09C7, 0x09B6, 0x09A7, 0x0999, 0x098D, 0x0982, 0x0978, 0x0971, + 0x096B, 0x0968, 0x0967, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, + 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80E, 0xA814, 0xA81B, 0xA81D, 0xA81D, + 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, + 0xA81D, 0xA81D, 0xA821, 0xA82B, 0xA83C, 0xA853, 0xA870, 0xA891, 0xA8B8, + 0xA8E2, 0xA911, 0xA942, 0xA977, 0xA9AF, 0xA9E8, 0xAA24, 0xAA60, 0xAA9E, + 0xAADC, 0xAB1A, 0xAB57, 0xAB94, 0xABCF, 0xAC09, 0xAC40, 0xAC75, 0xACA7, + 0xACD5, 0xAD00, 0xAD26, 0xAD48, 0xAD64, 0xAD7B, 0xAD8C, 0xAD96, 0xAD9A, + 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, + 0x2532, 0x252F, 0x2528, 0x2521, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, + 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251A, + 0x250F, 0x24FC, 0x24E3, 0x24C5, 0x24A0, 0x2476, 0x2448, 0x2416, 0x23E0, + 0x23A6, 0x236A, 0x232B, 0x22EB, 0x22A9, 0x2267, 0x2223, 0x21E0, 0x219D, + 0x215C, 0x211B, 0x20DD, 0x20A1, 0x2067, 0x2031, 0x1FFF, 0x1FD0, 0x1FA7, + 0x1F82, 0x1F63, 0x1F4B, 0x1F38, 0x1F2D, 0x1F29, 0x1F29, 0x1F29, 0x1F29, + 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, + 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F53, 0x1FCA, + 0x2080, 0x2169, 0x2278, 0x23A0, 0x24D6, 0x260B, 0x2733, 0x2842, 0x292B, + 0x29E1, 0x2A58, 0x2A82, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, + 0xE074, 0xE074, 0xE074, 0xE074, 0xE077, 0xE07B, 0xE080, 0xE082, 0xE082, + 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, + 0xE082, 0xE082, 0xE084, 0xE08C, 0xE098, 0xE0A9, 0xE0BE, 0xE0D6, 0xE0F2, + 0xE112, 0xE133, 0xE158, 0xE17F, 0xE1A7, 0xE1D1, 0xE1FC, 0xE229, 0xE256, + 0xE283, 0xE2B0, 0xE2DD, 0xE309, 0xE335, 0xE35F, 0xE387, 0xE3AE, 0xE3D2, + 0xE3F4, 0xE413, 0xE42F, 0xE448, 0xE45D, 0xE46D, 0xE47A, 0xE481, 0xE484, + 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, + 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, + 0xE484, 0xE461, 0xE402, 0xE36E, 0xE2B2, 0xE1D6, 0xE0E6, 0xDFEC, 0xDEF2, + 0xDE02, 0xDD27, 0xDC6A, 0xDBD7, 0xDB77, 0xDB54, 0x04A2, 0x04A2, 0x04A2, + 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A0, 0x049C, + 0x0497, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, + 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0493, 0x048C, 0x0481, 0x0471, + 0x045E, 0x0447, 0x042E, 0x0411, 0x03F2, 0x03D0, 0x03AC, 0x0387, 0x0360, + 0x0338, 0x030F, 0x02E6, 0x02BC, 0x0293, 0x0269, 0x0240, 0x0218, 0x01F2, + 0x01CC, 0x01A9, 0x0187, 0x0168, 0x014B, 0x0131, 0x011B, 0x0107, 0x00F8, + 0x00ED, 0x00E6, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, + 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, + 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00DB, 0x00C2, 0x009D, 0x006E, 0x0037, + 0xFFFA, 0xFFBB, 0xFF7C, 0xFF3F, 0xFF08, 0xFED9, 0xFEB4, 0xFE9C, 0xFE93, + 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, + 0xF907, 0xF908, 0xF909, 0xF90A, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, + 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90C, + 0xF90E, 0xF911, 0xF916, 0xF91C, 0xF922, 0xF92A, 0xF933, 0xF93C, 0xF946, + 0xF951, 0xF95D, 0xF968, 0xF974, 0xF981, 0xF98D, 0xF99A, 0xF9A6, 0xF9B3, + 0xF9BF, 0xF9CB, 0xF9D7, 0xF9E2, 0xF9ED, 0xF9F7, 0xFA00, 0xFA09, 0xFA11, + 0xFA18, 0xFA1D, 0xFA22, 0xFA26, 0xFA28, 0x0173, 0x0173, 0x0173, 0x0173, + 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0172, + 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, + 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0171, 0x0170, 0x016F, + 0x016D, 0x016C, 0x016A, 0x0168, 0x0166, 0x0164, 0x0161, 0x015F, 0x015C, + 0x015A, 0x0157, 0x0155, 0x0152, 0x014F, 0x014D, 0x014A, 0x0148, 0x0146, + 0x0143, 0x0141, 0x013F, 0x013D, 0x013C, 0x013A, 0x0139, 0x0138, 0x0138, + 0x0137, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, + 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, + 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, + 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, + 0xC152, 0xC152, 0xC152, 0xC152, 0xC152, 0xC153, 0xC153, 0xC153, 0xC153, + 0xC154, 0xC154, 0xC154, 0xC154, 0xC154, 0xC155, 0xC155, 0xC155, 0xC155, + 0xC155, 0xC155, 0xC155, 0xC156, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, + 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08ED, 0x08ED, 0x08EC, + 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, + 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EB, 0x08EA, 0x08E9, + 0x08E8, 0x08E7, 0x08E6, 0x08E4, 0x08E3, 0x08E1, 0x08E0, 0x08DE, 0x08DD, + 0x08DB, 0x08D9, 0x08D8, 0x08D6, 0x08D4, 0x08D3, 0x08D1, 0x08D0, 0x08CE, + 0x08CD, 0x08CB, 0x08CA, 0x08C9, 0x08C8, 0x08C8, 0x08C7, 0x08C6, 0x08C6, + 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, + 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, + 0x08C6, 0x08C6, 0x0AB9, 0x1032, 0x189D, 0x2369, 0x3003, 0x3DD8, 0x4C57, + 0x5AEC, 0x6905, 0x7611, 0x817C, 0x8AA8, 0x90C9, 0x9304, 0x92EA, 0x92A9, + 0x9255, 0x9200, 0x91BF, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, + 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD5, 0x2AD5, 0x2AD5, + 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, + 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD4, 0x2AD3, 0x2AD2, 0x2AD0, 0x2ACE, 0x2ACC, + 0x2ACA, 0x2AC7, 0x2AC5, 0x2AC2, 0x2ABF, 0x2ABB, 0x2AB8, 0x2AB5, 0x2AB1, + 0x2AAE, 0x2AAB, 0x2AA7, 0x2AA4, 0x2AA1, 0x2A9D, 0x2A9A, 0x2A97, 0x2A95, + 0x2A92, 0x2A90, 0x2A8E, 0x2A8C, 0x2A8A, 0x2A89, 0x2A88, 0x2A88, 0x2A87, + 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, + 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, + 0x2A87, 0x2A49, 0x299E, 0x289E, 0x2761, 0x25FE, 0x248D, 0x2326, 0x21E0, + 0x20D4, 0x2018, 0x1FC5, 0x1FBA, 0x1FBA, 0x1FAF, 0x1F85, 0x1F41, 0x1EF1, + 0x1EA4, 0x1E6B, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, + 0xE547, 0xE547, 0xE547, 0xE545, 0xE540, 0xE53C, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, + 0xE60A, 0xE855, 0xEBE8, 0xF08C, 0xF60C, 0xFC34, 0x02CE, 0x09A4, 0x1082, + 0x1732, 0x1D7F, 0x2314, 0x271F, 0x28AE, 0x2869, 0x27BC, 0x26DB, 0x25FA, + 0x254C, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, + 0x22DC, 0x22DC, 0x22D9, 0x22D3, 0x22CC, 0x22C9, 0x22C9, 0x22C9, 0x22C9, + 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, + 0x22C6, 0x22BB, 0x22AA, 0x2293, 0x2276, 0x2254, 0x222D, 0x2201, 0x21D2, + 0x219F, 0x2169, 0x2131, 0x20F6, 0x20BA, 0x207C, 0x203E, 0x1FFF, 0x1FC0, + 0x1F81, 0x1F44, 0x1F07, 0x1ECD, 0x1E94, 0x1E5E, 0x1E2C, 0x1DFC, 0x1DD1, + 0x1DAA, 0x1D88, 0x1D6B, 0x1D54, 0x1D43, 0x1D38, 0x1D34, 0x1D34, 0x1D34, + 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, + 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, + 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, + 0x1D34, 0x1D3E, 0x1D51, 0x1D5B, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, + 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF685, 0xF687, 0xF688, + 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, + 0xF688, 0xF688, 0xF688, 0xF689, 0xF68C, 0xF690, 0xF697, 0xF69E, 0xF6A8, + 0xF6B2, 0xF6BE, 0xF6CB, 0xF6D9, 0xF6E8, 0xF6F7, 0xF707, 0xF717, 0xF728, + 0xF739, 0xF74A, 0xF75B, 0xF76C, 0xF77D, 0xF78E, 0xF79D, 0xF7AD, 0xF7BB, + 0xF7C9, 0xF7D6, 0xF7E2, 0xF7ED, 0xF7F6, 0xF7FE, 0xF804, 0xF809, 0xF80C, + 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, + 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, + 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, + 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF792, 0xF6AF, 0xF634, 0xAB84, 0xAB84, + 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB86, + 0xAB8C, 0xAB91, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, + 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB96, 0xAB9F, 0xABAD, + 0xABC0, 0xABD7, 0xABF3, 0xAC13, 0xAC36, 0xAC5C, 0xAC86, 0xACB1, 0xACDF, + 0xAD0F, 0xAD40, 0xAD72, 0xADA5, 0xADD8, 0xAE0B, 0xAE3E, 0xAE70, 0xAEA1, + 0xAED1, 0xAEFF, 0xAF2B, 0xAF54, 0xAF7A, 0xAF9E, 0xAFBD, 0xAFD9, 0xAFF1, + 0xB004, 0xB012, 0xB01A, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, + 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, + 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, + 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB035, 0xB062, + 0xB07A, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, + 0xD607, 0xD607, 0xD60B, 0xD613, 0xD61A, 0xD61E, 0xD61E, 0xD61E, 0xD61E, + 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, + 0xD622, 0xD62F, 0xD644, 0xD660, 0xD683, 0xD6AC, 0xD6DB, 0xD70F, 0xD748, + 0xD785, 0xD7C6, 0xD80A, 0xD850, 0xD899, 0xD8E3, 0xD92E, 0xD97A, 0xD9C6, + 0xDA11, 0xDA5B, 0xDAA4, 0xDAEB, 0xDB2F, 0xDB6F, 0xDBAD, 0xDBE5, 0xDC1A, + 0xDC49, 0xDC72, 0xDC95, 0xDCB1, 0xDCC5, 0xDCD2, 0xDCD6, 0xDCD6, 0xDCD6, + 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, + 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDF85, + 0xE6E0, 0xF1DE, 0xFF74, 0x0E9A, 0x1E44, 0x2D69, 0x3B00, 0x45FD, 0x4D58, + 0x5007, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, + 0x1B82, 0x1B82, 0x1B7F, 0x1B7A, 0x1B75, 0x1B73, 0x1B73, 0x1B73, 0x1B73, + 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, + 0x1B70, 0x1B68, 0x1B5A, 0x1B48, 0x1B31, 0x1B16, 0x1AF7, 0x1AD5, 0x1AB0, + 0x1A88, 0x1A5D, 0x1A31, 0x1A03, 0x19D3, 0x19A2, 0x1971, 0x193F, 0x190E, + 0x18DC, 0x18AC, 0x187C, 0x184E, 0x1821, 0x17F7, 0x17CF, 0x17A9, 0x1787, + 0x1768, 0x174D, 0x1737, 0x1724, 0x1717, 0x170E, 0x170B, 0x170B, 0x170B, + 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, + 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x1775, + 0x1896, 0x1A45, 0x1C5B, 0x1EAE, 0x2115, 0x2368, 0x257E, 0x272D, 0x284E, + 0x28B8, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, + 0x0726, 0x0726, 0x0724, 0x0721, 0x071E, 0x071C, 0x071C, 0x071C, 0x071C, + 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, + 0x071A, 0x0715, 0x070C, 0x0700, 0x06F1, 0x06E0, 0x06CC, 0x06B6, 0x069D, + 0x0683, 0x0668, 0x064B, 0x062D, 0x060E, 0x05EE, 0x05CE, 0x05AE, 0x058E, + 0x056E, 0x054E, 0x052F, 0x0511, 0x04F4, 0x04D9, 0x04BF, 0x04A6, 0x0490, + 0x047C, 0x046B, 0x045C, 0x0450, 0x0447, 0x0442, 0x0440, 0x0440, 0x0440, + 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, + 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x04CF, + 0x0658, 0x08A3, 0x0B79, 0x0EA2, 0x11E7, 0x1510, 0x17E6, 0x1A31, 0x1BBA, + 0x1C49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xFED2, + 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, + 0xFECF, 0xFEC8, 0xFEC0, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, + 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEB8, 0xFEAC, + 0xFE98, 0xFE7D, 0xFE5B, 0xFE34, 0xFE06, 0xFDD4, 0xFD9D, 0xFD62, 0xFD23, + 0xFCE2, 0xFC9E, 0xFC57, 0xFC10, 0xFBC7, 0xFB7E, 0xFB35, 0xFAEC, 0xFAA4, + 0xFA5E, 0xFA1A, 0xF9D8, 0xF99A, 0xF95F, 0xF928, 0xF8F5, 0xF8C8, 0xF8A0, + 0xF87F, 0xF863, 0xF850, 0xF843, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, + 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, + 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF82C, 0xF7DE, 0xF736, + 0xF615, 0xF45A, 0xF1E6, 0xEEB0, 0xEB02, 0xE73E, 0xE3C4, 0xE0F6, 0xDF1C, + 0xDE21, 0xDDD8, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, + 0xFE61, 0xFE61, 0xFE61, 0xFE5F, 0xFE5C, 0xFE59, 0xFE57, 0xFE57, 0xFE57, + 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, + 0xFE57, 0xFE55, 0xFE50, 0xFE47, 0xFE3B, 0xFE2C, 0xFE1A, 0xFE06, 0xFDEF, + 0xFDD6, 0xFDBC, 0xFDA0, 0xFD83, 0xFD64, 0xFD45, 0xFD25, 0xFD04, 0xFCE4, + 0xFCC3, 0xFCA2, 0xFC82, 0xFC63, 0xFC44, 0xFC27, 0xFC0B, 0xFBF1, 0xFBD8, + 0xFBC2, 0xFBAD, 0xFB9B, 0xFB8C, 0xFB80, 0xFB77, 0xFB72, 0xFB70, 0xFB70, + 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, + 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, + 0xFB4C, 0xFAF2, 0xFA7C, 0xFA07, 0xF9AC, 0xF987, 0xF987, 0xF987, 0xF987, + 0xF987, 0xF986, 0xF975, 0xF955, 0xF944, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, + 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7C, 0xCD77, 0xCD73, + 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, + 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD6E, 0xCD67, 0xCD5B, 0xCD4B, 0xCD37, + 0xCD20, 0xCD05, 0xCCE8, 0xCCC7, 0xCCA5, 0xCC80, 0xCC59, 0xCC31, 0xCC08, + 0xCBDD, 0xCBB2, 0xCB87, 0xCB5C, 0xCB31, 0xCB07, 0xCADE, 0xCAB6, 0xCA8F, + 0xCA6A, 0xCA47, 0xCA27, 0xCA09, 0xC9EF, 0xC9D7, 0xC9C3, 0xC9B3, 0xC9A8, + 0xC9A0, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, + 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, + 0xC99E, 0xC99E, 0xC99E, 0xCA41, 0xCBE9, 0xCE32, 0xD0B9, 0xD31A, 0xD4F1, + 0xD606, 0xD68D, 0xD6C7, 0xD6F5, 0xD759, 0xD814, 0xD8D6, 0xD92F, 0xFF5E, + 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, + 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, + 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5F, + 0xFF5F, 0xFF5F, 0xFF60, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, + 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6F, + 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF74, 0xFF75, 0xFF76, 0xFF77, + 0xFF77, 0xFF77, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, + 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, + 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0x0060, 0x02E2, 0x06B3, + 0x0B87, 0x1111, 0x1705, 0x1D1B, 0x231B, 0x28D1, 0x2E07, 0x328B, 0x3623, + 0x3885, 0x3961, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, + 0x0165, 0x0165, 0x0165, 0x0165, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0163, 0x0163, 0x0162, 0x0161, 0x015F, 0x015E, 0x015C, + 0x015A, 0x0158, 0x0156, 0x0154, 0x0151, 0x014F, 0x014C, 0x014A, 0x0147, + 0x0145, 0x0142, 0x0140, 0x013D, 0x013B, 0x0139, 0x0137, 0x0135, 0x0133, + 0x0131, 0x012F, 0x012E, 0x012D, 0x012C, 0x012B, 0x012B, 0x012B, 0x012B, + 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, + 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, + 0x00F5, 0x006E, 0xFFBD, 0xFF0E, 0xFE86, 0xFE50, 0xFFD3, 0x038E, 0x0848, + 0x0CCB, 0x0FE1, 0x1144, 0x11C7, 0x11DA, 0x053D, 0x053D, 0x053D, 0x053D, + 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x0540, 0x0546, 0x054C, + 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, + 0x054E, 0x054E, 0x054E, 0x054E, 0x0552, 0x055B, 0x056B, 0x0580, 0x059B, + 0x05BA, 0x05DE, 0x0606, 0x0631, 0x0660, 0x0691, 0x06C5, 0x06FB, 0x0732, + 0x076B, 0x07A4, 0x07DE, 0x0817, 0x0851, 0x0889, 0x08C1, 0x08F6, 0x092A, + 0x095C, 0x098A, 0x09B5, 0x09DD, 0x0A01, 0x0A20, 0x0A3B, 0x0A50, 0x0A60, + 0x0A6A, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, + 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, + 0x0A6D, 0x0A6D, 0x0A6D, 0x0BE3, 0x0FCD, 0x1577, 0x1C2D, 0x233B, 0x29EE, + 0x2FB7, 0x34A7, 0x38F3, 0x3CD2, 0x407A, 0x43F7, 0x46A5, 0x47B7, 0xFB48, + 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, + 0xFB49, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, + 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4D, + 0xFB4F, 0xFB52, 0xFB56, 0xFB5B, 0xFB60, 0xFB66, 0xFB6C, 0xFB73, 0xFB7A, + 0xFB82, 0xFB8A, 0xFB92, 0xFB9A, 0xFBA3, 0xFBAB, 0xFBB4, 0xFBBC, 0xFBC5, + 0xFBCD, 0xFBD5, 0xFBDC, 0xFBE4, 0xFBEB, 0xFBF1, 0xFBF7, 0xFBFC, 0xFC01, + 0xFC05, 0xFC08, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, + 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, + 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFB9F, 0xFA6E, 0xF89A, + 0xF643, 0xF389, 0xF08F, 0xED74, 0xEA59, 0xE75E, 0xE4A5, 0xE24E, 0xE079, + 0xDF48, 0xDEDC, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, + 0xF29B, 0xF29B, 0xF29B, 0xF29C, 0xF29F, 0xF2A1, 0xF2A2, 0xF2A2, 0xF2A2, + 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, + 0xF2A2, 0xF2A4, 0xF2A8, 0xF2AE, 0xF2B7, 0xF2C2, 0xF2CF, 0xF2DE, 0xF2EF, + 0xF301, 0xF315, 0xF329, 0xF33F, 0xF356, 0xF36D, 0xF384, 0xF39C, 0xF3B5, + 0xF3CD, 0xF3E5, 0xF3FC, 0xF414, 0xF42A, 0xF440, 0xF455, 0xF468, 0xF47A, + 0xF48B, 0xF49A, 0xF4A7, 0xF4B2, 0xF4BB, 0xF4C2, 0xF4C6, 0xF4C7, 0xF4C7, + 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, + 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, + 0xF45C, 0xF32F, 0xF161, 0xEF12, 0xEC63, 0xE973, 0xE663, 0xE353, 0xE064, + 0xDDB4, 0xDB65, 0xD998, 0xD86B, 0xD800, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, + 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C7, 0xC4C6, + 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, + 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C5, 0xC4C3, 0xC4C1, 0xC4BD, 0xC4B8, + 0xC4B3, 0xC4AD, 0xC4A6, 0xC49E, 0xC496, 0xC48E, 0xC485, 0xC47B, 0xC472, + 0xC468, 0xC45E, 0xC454, 0xC44A, 0xC440, 0xC436, 0xC42D, 0xC423, 0xC41A, + 0xC412, 0xC40A, 0xC402, 0xC3FB, 0xC3F5, 0xC3F0, 0xC3EB, 0xC3E8, 0xC3E5, + 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, + 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, + 0xC3E3, 0xC3E3, 0xC3E3, 0xC435, 0xC51D, 0xC681, 0xC849, 0xCA5B, 0xCC9F, + 0xCEFC, 0xD158, 0xD39C, 0xD5AE, 0xD776, 0xD8DA, 0xD9C2, 0xDA15, 0x01B9, + 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, + 0x01B9, 0x01B9, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, + 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, + 0x01B7, 0x01B6, 0x01B4, 0x01B2, 0x01B0, 0x01AE, 0x01AC, 0x01AA, 0x01A7, + 0x01A4, 0x01A1, 0x019E, 0x019B, 0x0198, 0x0195, 0x0192, 0x018F, 0x018C, + 0x0189, 0x0186, 0x0183, 0x0180, 0x017E, 0x017B, 0x0179, 0x0177, 0x0176, + 0x0174, 0x0173, 0x0172, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, + 0xF668, 0xF668, 0xF668, 0xF668, 0xF669, 0xF66B, 0xF66C, 0xF66D, 0xF66D, + 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, + 0xF66D, 0xF66D, 0xF66E, 0xF671, 0xF676, 0xF67C, 0xF684, 0xF68E, 0xF698, + 0xF6A4, 0xF6B1, 0xF6BF, 0xF6CE, 0xF6DE, 0xF6EE, 0xF6FE, 0xF70F, 0xF721, + 0xF732, 0xF743, 0xF754, 0xF765, 0xF776, 0xF786, 0xF796, 0xF7A4, 0xF7B2, + 0xF7BF, 0xF7CB, 0xF7D6, 0xF7DF, 0xF7E7, 0xF7EE, 0xF7F2, 0xF7F5, 0xF7F6, + 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, + 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, + 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, + 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2C, 0xBF2C, + 0xBF2C, 0xBF2D, 0xBF2D, 0xBF2D, 0xBF2E, 0xBF2E, 0xBF2E, 0xBF2F, 0xBF2F, + 0xBF2F, 0xBF30, 0xBF30, 0xBF30, 0xBF31, 0xBF31, 0xBF31, 0xBF32, 0xBF32, + 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF33, 0xFCA2, 0xFC9F, 0xFC9E, + 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, + 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9F, 0xFCA8, 0xFCB7, 0xFCCC, + 0xFCE5, 0xFD03, 0xFD25, 0xFD4B, 0xFD74, 0xFDA1, 0xFDD0, 0xFE01, 0xFE34, + 0xFE69, 0xFE9F, 0xFED6, 0xFF0D, 0xFF44, 0xFF7B, 0xFFB0, 0xFFE5, 0x0019, + 0x004B, 0x007A, 0x00A6, 0x00D0, 0x00F6, 0x0118, 0x0136, 0x014F, 0x0163, + 0x0172, 0x017B, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, + 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, + 0x017F, 0x017F, 0x017F, 0x017F, 0x0176, 0x0143, 0x00C4, 0xFFD2, 0xFE4B, + 0xFC0C, 0xF906, 0xF584, 0xF1E8, 0xEE92, 0xEBE5, 0xEA28, 0xE942, 0xE901, + 0xFD5F, 0xFD62, 0xFD69, 0xFD72, 0xFD7B, 0xFD82, 0xFD85, 0xFD85, 0xFD85, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, + 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD87, + 0xFD8D, 0xFD97, 0xFDA4, 0xFDB4, 0xFDC8, 0xFDDE, 0xFDF6, 0xFE11, 0xFE2E, + 0xFE4C, 0xFE6C, 0xFE8E, 0xFEB0, 0xFED3, 0xFEF6, 0xFF1A, 0xFF3E, 0xFF61, + 0xFF84, 0xFFA7, 0xFFC8, 0xFFE8, 0x0008, 0x0024, 0x003F, 0x0058, 0x006E, + 0x0081, 0x0092, 0x009F, 0x00A9, 0x00AF, 0x00B1, 0x00B1, 0x00B1, 0x00B1, + 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, + 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x0053, 0xFF43, + 0xFD8F, 0xFB45, 0xF872, 0xF524, 0xF171, 0xED90, 0xE9C0, 0xE641, 0xE352, + 0xE128, 0xDFD6, 0xDF63, 0xBEA9, 0xBF5F, 0xC03F, 0xC129, 0xC1F9, 0xC28F, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, + 0xC2C9, 0xC2C9, 0xC2C7, 0xC2C0, 0xC2B5, 0xC2A5, 0xC293, 0xC27D, 0xC263, + 0xC247, 0xC229, 0xC208, 0xC1E5, 0xC1C0, 0xC19B, 0xC173, 0xC14C, 0xC123, + 0xC0FA, 0xC0D2, 0xC0A9, 0xC081, 0xC05A, 0xC034, 0xC010, 0xBFED, 0xBFCC, + 0xBFAD, 0xBF91, 0xBF78, 0xBF62, 0xBF4F, 0xBF40, 0xBF35, 0xBF2E, 0xBF2C, + 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, + 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, + 0xBF2C, 0xBFAE, 0xC0F4, 0xC29C, 0xC444, 0xC58A, 0xC60C, 0xC5E5, 0xC586, + 0xC515, 0xC4B7, 0xC48F, 0xC4BF, 0xC518, 0xC548, 0xFF8A, 0xFF89, 0xFF88, + 0xFF87, 0xFF86, 0xFF86, 0xFF85, 0xFF84, 0xFF84, 0xFF84, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, + 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, 0xFF8B, 0xFF90, + 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA7, 0xFFA2, 0xFF9A, + 0xFF92, 0xFF8A, 0xFF85, 0xFF83, 0xFF83, 0xFF85, 0xFF88, 0xFF8C, 0xFF91, + 0xFF95, 0xFF9A, 0xFFA0, 0xFFA5, 0xFFA9, 0xFFAD, 0xFFB1, 0xFFB4, 0xFFB6, + 0xFFB8, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, + 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, + 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0x0075, 0x024A, 0x04AB, 0x070C, 0x08E0, + 0x099C, 0x08DC, 0x0712, 0x04F0, 0x0327, 0x0267, 0x027F, 0x02AB, 0x02C3, + 0x0270, 0x0272, 0x0273, 0x0275, 0x0276, 0x0276, 0x0277, 0x0277, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, + 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, + 0x0274, 0x026E, 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, + 0x024D, 0x0254, 0x025D, 0x0266, 0x026F, 0x0276, 0x0278, 0x0278, 0x0276, + 0x0274, 0x0271, 0x026D, 0x0268, 0x0262, 0x025B, 0x0254, 0x024B, 0x0242, + 0x0238, 0x022F, 0x0226, 0x0220, 0x021B, 0x0219, 0x0219, 0x0219, 0x0219, + 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, + 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0238, 0x02A7, + 0x0382, 0x04E5, 0x06ED, 0x09B5, 0x0D45, 0x114D, 0x1568, 0x1932, 0x1C44, + 0x1E52, 0x1F6F, 0x1FC5, 0x0613, 0x05FA, 0x05E4, 0x05D1, 0x05C0, 0x05B1, + 0x05A5, 0x059B, 0x0593, 0x058C, 0x0588, 0x0585, 0x0583, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, 0x0714, 0x078B, 0x07F8, + 0x0852, 0x088F, 0x08A5, 0x0879, 0x0806, 0x0769, 0x06BE, 0x0622, 0x05AF, + 0x0582, 0x058B, 0x05A6, 0x05D2, 0x060F, 0x065B, 0x06B5, 0x071E, 0x0794, + 0x0817, 0x08A5, 0x093E, 0x09D8, 0x0A6A, 0x0AED, 0x0B55, 0x0B9A, 0x0BB4, + 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, + 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, + 0x0BB4, 0x0D09, 0x1060, 0x14BE, 0x1927, 0x1C9F, 0x1E2B, 0x1E57, 0x1E62, + 0x1E63, 0x1E6E, 0x1E9A, 0x1F5F, 0x2088, 0x2122, 0x05FC, 0x060F, 0x0620, + 0x062F, 0x063C, 0x0643, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, + 0x061F, 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, + 0x0628, 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, + 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, + 0x0637, 0x0642, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, + 0x0646, 0x0646, 0x0646, 0x0646, 0x0633, 0x05FF, 0x05AE, 0x0547, 0x04CE, + 0x044B, 0x03C1, 0x0338, 0x02B4, 0x023C, 0x01D5, 0x0184, 0x014F, 0x013C, + 0x1529, 0x14AD, 0x1376, 0x11E3, 0x1050, 0x0F1A, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, + 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, + 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, + 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, + 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, + 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E01, 0x0C48, + 0x09A4, 0x0644, 0x0256, 0xFE08, 0xF98C, 0xF511, 0xF0C4, 0xECD6, 0xE976, + 0xE6D2, 0xE519, 0xE47C, 0xC381, 0xC465, 0xC6A1, 0xC987, 0xCC6E, 0xCEA9, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, + 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, + 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, + 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, + 0xCF8D, 0xCF80, 0xCF5C, 0xCF24, 0xCEDC, 0xCE89, 0xCE2E, 0xCDCF, 0xCD71, + 0xCD16, 0xCCC2, 0xCC7B, 0xCC43, 0xCC1F, 0xCC12, }; diff --git a/assets/anims/anim_84.inc.c.rej b/assets/anims/anim_84.inc.c.rej new file mode 100644 index 00000000..21063d7a --- /dev/null +++ b/assets/anims/anim_84.inc.c.rej @@ -0,0 +1,913 @@ +diff a/assets/anims/anim_84.inc.c b/assets/anims/anim_84.inc.c (rejected hunks) +@@ -3,7 +3,7 @@ static const struct Animation anim_84[] = { + 189, + 0, + 0, +- 0x40, ++ 97, + ANIMINDEX_NUMPARTS(anim_84_indices), + anim_84_values, + anim_84_indices, +@@ -12,326 +12,584 @@ static const struct Animation anim_84[] = { + + + static const u16 anim_84_indices[] = { +- 0x0001, 0x0000, 0x0040, 0x0001, 0x0040, 0x0041, 0x0001, 0x0000, 0x0001, 0x0081, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x090A, +- 0x0040, 0x084A, 0x0040, 0x088A, 0x0040, 0x08CA, +- 0x0040, 0x078A, 0x0040, 0x07CA, 0x0040, 0x080A, +- 0x0001, 0x0786, 0x0001, 0x0787, 0x0001, 0x0788, +- 0x0040, 0x0182, 0x0040, 0x01C2, 0x0040, 0x0202, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0142, +- 0x0040, 0x0082, 0x0040, 0x00C2, 0x0040, 0x0102, +- 0x0001, 0x0782, 0x0001, 0x0783, 0x0001, 0x0784, +- 0x0040, 0x0342, 0x0040, 0x0382, 0x0040, 0x03C2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0302, +- 0x0040, 0x0242, 0x0040, 0x0282, 0x0040, 0x02C2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0785, +- 0x0040, 0x06C2, 0x0040, 0x0702, 0x0040, 0x0742, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0682, +- 0x0040, 0x05C2, 0x0040, 0x0602, 0x0040, 0x0642, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0789, +- 0x0040, 0x0502, 0x0040, 0x0542, 0x0040, 0x0582, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x04C2, +- 0x0040, 0x0402, 0x0040, 0x0442, 0x0040, 0x0482, ++0x0001, 0x0000, 0x005D, 0x0001, 0x0001, 0x005E, 0x003C, 0x005F, 0x003B, ++ 0x009B, 0x005D, 0x00D6, 0x005B, 0x0133, 0x005D, 0x018E, 0x0001, 0x01EB, ++ 0x0062, 0x01EC, 0x0062, 0x024E, 0x0062, 0x02B0, 0x0062, 0x0312, 0x0062, ++ 0x0374, 0x0062, 0x03D6, 0x005D, 0x0438, 0x005D, 0x0495, 0x005D, 0x04F2, ++ 0x003C, 0x054F, 0x003C, 0x058B, 0x003C, 0x05C7, 0x003C, 0x0603, 0x003C, ++ 0x063F, 0x003C, 0x067B, 0x005D, 0x06B7, 0x005D, 0x0714, 0x005D, 0x0771, ++ 0x003B, 0x07CE, 0x003B, 0x0809, 0x0039, 0x0844, 0x0062, 0x087D, 0x0062, ++ 0x08DF, 0x0062, 0x0941, 0x005D, 0x09A3, 0x005D, 0x0A00, 0x005D, 0x0A5D, ++ 0x005A, 0x0ABA, 0x005A, 0x0B14, 0x005A, 0x0B6E, 0x005D, 0x0BC8, 0x005D, ++ 0x0C25, 0x0001, 0x0C82, 0x005D, 0x0C83, 0x005D, 0x0CE0, 0x005D, 0x0D3D, ++ 0x005D, 0x0D9A, 0x005D, 0x0DF7, 0x005D, 0x0E54, 0x005D, 0x0EB1, 0x005D, ++ 0x0F0E, 0x005D, 0x0F6B, 0x003A, 0x0FC8, 0x003C, 0x1002, 0x003C, 0x103E, ++ 0x005D, 0x107A, 0x005D, 0x10D7, 0x005D, 0x1134, 0x005D, 0x1191, 0x005D, ++ 0x11EE, 0x005D, 0x124B, 0x005D, 0x12A8, 0x005D, 0x1305, 0x005D, 0x1362, + }; + + static const s16 anim_84_values[] = { +- 0x0000, 0x00AB, 0x00AA, 0x00A7, 0x00A3, 0x009F, 0x0099, 0x0092, +- 0x008B, 0x0084, 0x007C, 0x0073, 0x0068, 0x005B, 0x004E, 0x0043, +- 0x0039, 0x0032, 0x002F, 0x002D, 0x002E, 0x002F, 0x0031, 0x0033, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0xFFFF, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, 0xFFEA, 0xFFE2, +- 0xFFD9, 0xFFD0, 0xFFC7, 0xFFBB, 0xFFAC, 0xFF9B, 0xFF8A, 0xFF7A, +- 0xFF6D, 0xFF63, 0xFF5D, 0xFF5A, 0xFF58, 0xFF57, 0xFF58, 0xFF58, +- 0xFF59, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0x3FFF, 0xFE50, 0xFE40, 0xFE17, 0xFDE1, 0xFDAC, 0xFD83, +- 0xFD73, 0xFD87, 0xFDCD, 0xFE50, 0xFF66, 0x0122, 0x0333, 0x0543, +- 0x0700, 0x0816, 0x0899, 0x08DF, 0x08F3, 0x08E3, 0x08BA, 0x0885, +- 0x084F, 0x0826, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0xF9B4, 0xF9DB, 0xFA3C, 0xFABB, 0xFB39, 0xFB9A, +- 0xFBC1, 0xFB91, 0xFAEB, 0xF9B4, 0xF722, 0xF302, 0xEE1C, 0xE937, +- 0xE517, 0xE285, 0xE14D, 0xE0A8, 0xE078, 0xE09E, 0xE100, 0xE17E, +- 0xE1FC, 0xE25E, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xF845, 0xF85D, 0xF898, 0xF8E4, 0xF931, 0xF96C, +- 0xF984, 0xF966, 0xF902, 0xF845, 0xF6B5, 0xF434, 0xF13A, 0xEE40, +- 0xEBBF, 0xEA2F, 0xE972, 0xE90D, 0xE8F0, 0xE907, 0xE943, 0xE98F, +- 0xE9DC, 0xEA17, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xE4CB, 0xE3E1, 0xE352, 0xE310, 0xE30D, 0xE33B, +- 0xE38C, 0xE3F4, 0xE462, 0xE4CB, 0xE552, 0xE61A, 0xE714, 0xE82D, +- 0xE956, 0xEA7F, 0xEBC9, 0xED4F, 0xEEF8, 0xF0A8, 0xF245, 0xF3B4, +- 0xF4DB, 0xF5A0, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0x896F, 0x8A49, 0x8B9F, 0x8D40, 0x8EFB, 0x909E, +- 0x91F8, 0x92D8, 0x930B, 0x9262, 0x8FF5, 0x8B93, 0x861C, 0x8071, +- 0x7B72, 0x7800, 0x75CB, 0x73EC, 0x725E, 0x711B, 0x701E, 0x6F62, +- 0x6EE3, 0x6E9A, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0xA3B0, 0xA309, 0xA3C2, 0xA581, 0xA7EE, 0xAAAE, +- 0xAD69, 0xAFC6, 0xB16B, 0xB1FE, 0xB0F8, 0xAE7A, 0xAB26, 0xA7A1, +- 0xA490, 0xA296, 0xA187, 0xA0C0, 0xA036, 0x9FDF, 0x9FB0, 0x9F9E, +- 0x9F9F, 0x9FA7, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x384A, 0x37DB, 0x36B9, 0x351E, 0x3344, 0x3163, +- 0x2FB7, 0x2E77, 0x2DDF, 0x2E27, 0x3005, 0x338F, 0x380F, 0x3CD2, +- 0x4120, 0x4446, 0x468F, 0x48BB, 0x4AC0, 0x4C92, 0x4E27, 0x4F75, +- 0x5070, 0x510E, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x0BDE, 0x0A32, 0x0973, 0x096A, 0x09DD, 0x0A97, +- 0x0B5E, 0x0BFD, 0x0C3A, 0x0BDE, 0x0AC6, 0x0918, 0x070C, 0x04DA, +- 0x02B9, 0x00E0, 0xFF1F, 0xFD30, 0xFB2C, 0xF930, 0xF755, 0xF5B5, +- 0xF46C, 0xF393, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0x04C8, 0x0445, 0x0386, 0x02B4, 0x01F6, 0x0172, +- 0x0151, 0x01BA, 0x02D5, 0x04C8, 0x08E3, 0x0F81, 0x1757, 0x1F1D, +- 0x2588, 0x294E, 0x2AB3, 0x2B00, 0x2A74, 0x294F, 0x27D1, 0x2638, +- 0x24C6, 0x23B9, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0xFA2D, 0xFA60, 0xFA9F, 0xFADE, 0xFB14, 0xFB35, +- 0xFB3A, 0xFB16, 0xFABF, 0xFA2D, 0xF925, 0xF795, 0xF5AA, 0xF392, +- 0xF17A, 0xEF8F, 0xED9D, 0xEB66, 0xE90C, 0xE6B1, 0xE477, 0xE281, +- 0xE0F0, 0xDFE6, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xF09C, 0xF145, 0xF19F, 0xF1BA, 0xF1A5, 0xF170, +- 0xF12B, 0xF0E6, 0xF0B1, 0xF09C, 0xF085, 0xF052, 0xF01F, 0xF008, +- 0xF029, 0xF09C, 0xF175, 0xF2A1, 0xF402, 0xF57D, 0xF6F3, 0xF849, +- 0xF961, 0xFA1E, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0x12E8, 0x1350, 0x13AD, 0x1401, 0x144E, 0x1494, +- 0x14D6, 0x1515, 0x1552, 0x1590, 0x15D4, 0x161C, 0x165E, 0x168F, +- 0x16A3, 0x1690, 0x1651, 0x15EE, 0x1574, 0x14EC, 0x1464, 0x13E6, +- 0x137D, 0x1336, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x0693, 0x0694, 0x07E5, 0x0A22, 0x0CE5, 0x0FC7, +- 0x1262, 0x1452, 0x1531, 0x1497, 0x1145, 0x0B1F, 0x0373, 0xFB95, +- 0xF4D4, 0xF080, 0xEE3E, 0xECBC, 0xEBD9, 0xEB72, 0xEB69, 0xEB9B, +- 0xEBE7, 0xEC2D, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xCABB, 0xCBF3, 0xCD03, 0xCDF1, 0xCEC7, 0xCF8D, +- 0xD04C, 0xD10C, 0xD1D7, 0xD2B4, 0xD3A3, 0xD499, 0xD593, 0xD68F, +- 0xD787, 0xD879, 0xD97D, 0xDAA1, 0xDBD7, 0xDD0B, 0xDE2D, 0xDF2D, +- 0xDFF8, 0xE07F, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0x0000, 0x0002, 0x0007, 0x000E, 0x0016, 0x0020, +- 0x0029, 0x0032, 0x0039, 0x003F, 0x0043, 0x0046, 0x0048, 0x0048, +- 0x0045, 0x003F, 0x0033, 0x0023, 0x000F, 0xFFFC, 0xFFE8, 0xFFD5, +- 0xFFC6, 0xFFBC, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFF30, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF35, +- 0xFF36, 0xFF38, 0xFF39, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, +- 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3B, 0xFF3B, 0xFF3C, 0xFF3C, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xC9D8, 0xC96E, 0xC871, 0xC705, 0xC54E, 0xC36F, +- 0xC18D, 0xBFCB, 0xBE4D, 0xBD36, 0xBC62, 0xBBAC, 0xBB3F, 0xBB41, +- 0xBBDB, 0xBD36, 0xBF8B, 0xC2C4, 0xC690, 0xCAA1, 0xCEA7, 0xD253, +- 0xD554, 0xD75C, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0x1E4A, 0x1FB6, 0x231D, 0x27F8, 0x2DBF, 0x33E9, +- 0x39EE, 0x3F46, 0x4369, 0x45CF, 0x45F1, 0x4401, 0x408D, 0x3C24, +- 0x3753, 0x32A9, 0x2D8E, 0x275D, 0x2088, 0x1983, 0x12C1, 0x0CB6, +- 0x07D7, 0x0495, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x1B09, 0x1A7E, 0x1933, 0x1753, 0x150A, 0x1281, +- 0x0FE4, 0x0D5E, 0x0B18, 0x093E, 0x07A8, 0x0625, 0x04D2, 0x03CE, +- 0x0334, 0x0324, 0x03AB, 0x04AA, 0x05FD, 0x0781, 0x090F, 0x0A85, +- 0x0BBD, 0x0C93, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x1144, 0x1142, 0x113D, 0x1136, 0x1131, 0x112E, +- 0x1130, 0x1139, 0x114B, 0x1168, 0x11AB, 0x121A, 0x1299, 0x130B, +- 0x1354, 0x1357, 0x1310, 0x1299, 0x1200, 0x1154, 0x10A5, 0x1003, +- 0x0F7C, 0x0F20, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0xAC44, 0xAB52, 0xA915, 0xA5D5, 0xA1D9, 0x9D68, +- 0x98CC, 0x944C, 0x902F, 0x8CBE, 0x898A, 0x8631, 0x8314, 0x8092, +- 0x7F0A, 0x7EDC, 0x8026, 0x828C, 0x85B8, 0x8953, 0x8D08, 0x9080, +- 0x9364, 0x9560, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x0000, 0x0008, 0x000D, 0x000E, 0x000D, 0x000A, +- 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFFFC, 0xFFFA, 0xFFF9, 0xFFFA, 0xFFFB, +- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xBF40, 0xBF38, 0xBF34, 0xBF33, 0xBF34, 0xBF36, +- 0xBF39, 0xBF3D, 0xBF3F, 0xBF40, 0xBF1C, 0xBECB, 0xBE7B, 0xBE57, +- 0xBE8A, 0xBF40, 0xC098, 0xC273, 0xC4A2, 0xC6FA, 0xC94B, 0xCB67, +- 0xCD22, 0xCE4E, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0x2537, 0x266B, 0x2950, 0x2D6B, 0x3244, 0x3760, +- 0x3C47, 0x407F, 0x438F, 0x44FE, 0x440B, 0x40C9, 0x3BFE, 0x3671, +- 0x30E6, 0x2C24, 0x279F, 0x227D, 0x1D0D, 0x179B, 0x1277, 0x0DF0, +- 0x0A53, 0x07EE, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0xD64A, 0xD74E, 0xD9B7, 0xDD32, 0xE167, 0xE602, +- 0xEAAD, 0xEF13, 0xF2DD, 0xF5B7, 0xF789, 0xF893, 0xF903, 0xF906, +- 0xF8CA, 0xF87B, 0xF803, 0xF73E, 0xF644, 0xF52E, 0xF413, 0xF30D, +- 0xF234, 0xF1A0, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xEC41, 0xEC5A, 0xEC97, 0xECEE, 0xED56, 0xEDC4, +- 0xEE30, 0xEE8F, 0xEEDA, 0xEF05, 0xEEF4, 0xEEA8, 0xEE41, 0xEDE0, +- 0xEDA5, 0xEDB1, 0xEE09, 0xEE92, 0xEF3C, 0xEFF8, 0xF0B5, 0xF163, +- 0xF1F3, 0xF255, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xB59E, 0xB448, 0xB119, 0xAC80, 0xA6ED, 0xA0CE, +- 0x9A92, 0x94A9, 0x8F81, 0x8B8A, 0x88B4, 0x869F, 0x8540, 0x848B, +- 0x8477, 0x84F7, 0x8634, 0x8835, 0x8ABC, 0x8D8A, 0x9061, 0x9303, +- 0x9532, 0x96AE, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x9524, 0x5D21, 0x475E, 0xBF5F, 0x90BE, 0x7987, +- 0x4B8C, 0xBF5F, 0x0015, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, +- 0x0016, 0x0016, 0x0016, 0x0015, 0x0017, 0x001C, 0x0021, 0x0023, +- 0x0020, 0x0015, 0x0003, 0xFFEC, 0xFFD0, 0xFFB1, 0xFF93, 0xFF75, +- 0xFF5A, 0xFF44, 0xFF35, 0xFF2C, 0xFF2A, 0xFF2B, 0xFF30, 0xFF36, +- 0xFF3C, 0xFF41, 0xFF42, 0xFF3E, 0xFF35, 0xFF26, 0xFF16, 0xFF05, +- 0xFEF2, 0xFEDD, 0xFEC8, 0xFEB2, 0xFE9C, 0xFE85, 0xFE6D, 0xFE56, +- 0xFE3F, 0xFE28, 0xFE12, 0xFDFC, 0xFDE8, 0xFDD4, 0xFDC2, 0xFDB1, +- 0xFDA2, 0xFD95, 0xFD89, 0xFD80, 0xFD7A, 0xFD75, 0xFD72, 0xFD71, +- 0xFD71, 0xFD73, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, +- 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4B, 0xFD4B, 0xFD4A, +- 0xFD4B, 0xFD4C, 0xFD4F, 0xFD52, 0xFD56, 0xFD5A, 0xFD5E, 0xFD62, +- 0xFD65, 0xFD68, 0xFD6A, 0xFD6B, 0xFD69, 0xFD65, 0xFD61, 0xFD5D, +- 0xFD5A, 0xFD5A, 0xFD5B, 0xFD61, 0xFD6A, 0xFD78, 0xFD86, 0xFD97, +- 0xFDA8, 0xFDBB, 0xFDCF, 0xFDE3, 0xFDF8, 0xFE0E, 0xFE23, 0xFE39, +- 0xFE4E, 0xFE63, 0xFE78, 0xFE8C, 0xFE9F, 0xFEB0, 0xFEC1, 0xFECF, +- 0xFEDD, 0xFEE8, 0xFEF1, 0xFEF8, 0xFEFC, 0xFEFE, 0xFEFF, 0xFEFD, +- 0xFEF9, 0xFEF4, 0xF588, 0xF577, 0xF56E, 0xF56C, 0xF56E, 0xF573, +- 0xF57A, 0xF580, 0xF586, 0xF588, 0xF568, 0xF522, 0xF4DC, 0xF4BC, +- 0xF4E9, 0xF588, 0xF6A1, 0xF811, 0xF9BE, 0xFB8D, 0xFD64, 0xFF29, +- 0x00C0, 0x0210, 0x0300, 0x0379, 0x038E, 0x0359, 0x02F7, 0x0283, +- 0x0219, 0x01D5, 0x01D2, 0x022C, 0x0300, 0x042D, 0x0581, 0x06F6, +- 0x088A, 0x0A37, 0x0BF9, 0x0DCD, 0x0FAD, 0x1197, 0x1385, 0x1574, +- 0x175F, 0x1942, 0x1B19, 0x1CE0, 0x1E93, 0x202D, 0x21AB, 0x2307, +- 0x243E, 0x254C, 0x262D, 0x26DC, 0x2757, 0x27A3, 0x27C2, 0x27BA, +- 0x278D, 0x2740, 0xFD9F, 0xFDCE, 0xFE05, 0xFE42, 0xFE83, 0xFEC4, +- 0xFF03, 0xFF3E, 0xFF71, 0xFF9B, 0xFFB7, 0xFFC5, 0xFFCA, 0xFFC8, +- 0xFFC2, 0xFFBE, 0xFFB9, 0xFFB0, 0xFFA4, 0xFF98, 0xFF8B, 0xFF7F, +- 0xFF75, 0xFF6F, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0x04A4, 0x0441, 0x03D0, 0x0356, 0x02D7, 0x0259, +- 0x01DF, 0x0170, 0x0110, 0x00C4, 0x0098, 0x008F, 0x009C, 0x00B3, +- 0x00C9, 0x00D2, 0x00CF, 0x00C9, 0x00C3, 0x00BC, 0x00B4, 0x00AE, +- 0x00A8, 0x00A4, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x0FC6, 0x113B, 0x128D, 0x13C1, 0x14E0, 0x15F1, +- 0x16FA, 0x1803, 0x1913, 0x1A30, 0x1B99, 0x1D52, 0x1F0B, 0x2075, +- 0x2140, 0x211E, 0x1FF6, 0x1E0E, 0x1BA3, 0x18F1, 0x1635, 0x13AB, +- 0x1190, 0x1020, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x40A1, 0x40C8, 0x4129, 0x41A8, 0x4227, 0x4288, +- 0x42AF, 0x427E, 0x41D9, 0x40A1, 0x3E0E, 0x39EC, 0x3504, 0x301D, +- 0x2BFB, 0x2968, 0x2830, 0x278B, 0x275A, 0x2781, 0x27E2, 0x2861, +- 0x28E0, 0x2941, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, ++ 0x0000, 0x00BD, 0x00BD, 0x00BD, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00C2, ++ 0x00C9, 0x00D2, 0x00DB, 0x00E1, 0x00E4, 0x00DD, 0x00C9, 0x00AD, 0x008E, ++ 0x006E, 0x0052, 0x003F, 0x0037, 0xFFFF, 0xC005, 0xC005, 0xC005, 0xC005, ++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, 0xC016, 0xC022, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, 0xC08C, 0xC0C1, ++ 0xC0FF, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, 0xC380, 0xC3EF, ++ 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, 0xC778, 0xC7E0, ++ 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CC, 0xCA02, 0xCA2C, 0xCA4C, ++ 0xCA5F, 0xCA66, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, ++ 0x38E3, 0x38E3, 0x38E3, 0x38E4, 0x38E5, 0x38E7, 0x38E7, 0x38E7, 0x38E7, ++ 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, ++ 0x38E7, 0x38E8, 0x38EA, 0x38EE, 0x38F2, 0x38F8, 0x38FF, 0x3907, 0x3910, ++ 0x391A, 0x3924, 0x392F, 0x393A, 0x3946, 0x3953, 0x395F, 0x396C, 0x3979, ++ 0x3986, 0x3992, 0x399F, 0x39AB, 0x39B7, 0x39C3, 0x39CE, 0x39D8, 0x39E2, ++ 0x39EB, 0x39F2, 0x39F9, 0x39FF, 0x3A04, 0x3A08, 0x3A0A, 0xC005, 0xC005, ++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, ++ 0xC016, 0xC022, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, ++ 0xC08C, 0xC0C1, 0xC100, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, ++ 0xC380, 0xC3EF, 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, ++ 0xC778, 0xC7E0, 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CD, 0xCA02, ++ 0xCA2C, 0xCA4C, 0xCA5F, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, ++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, ++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCB55, 0xCDF2, 0xD1F4, 0xD716, ++ 0xDD0F, 0xE396, 0xEA66, 0xF135, 0xF7BD, 0xFDB6, 0x02D8, 0x06DB, 0x0978, ++ 0x0A67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x40A1, 0xF721, 0xF709, 0xF6F2, ++ 0xF6DB, 0xF6C5, 0xF6B0, 0xF69B, 0xF687, 0xF674, 0xF662, 0xF650, 0xF640, ++ 0xF630, 0xF621, 0xF613, 0xF606, 0xF5FA, 0xF5F0, 0xF5E6, 0xF5DE, 0xF5D6, ++ 0xF5D0, 0xF5CC, 0xF5C8, 0xF5C6, 0xF5C5, 0xF5CD, 0xF5E4, 0xF609, 0xF63C, ++ 0xF67A, 0xF6C4, 0xF719, 0xF776, 0xF7DD, 0xF84A, 0xF8BF, 0xF939, 0xF9B8, ++ 0xFA3A, 0xFAC0, 0xFB47, 0xFBCF, 0xFC57, 0xFCDF, 0xFD64, 0xFDE7, 0xFE66, ++ 0xFEE0, 0xFF54, 0xFFC2, 0x0029, 0x0087, 0x00DB, 0x0125, 0x0164, 0x0196, ++ 0x01BB, 0x01D2, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, ++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, ++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01F8, 0x024B, 0x02CA, 0x036F, 0x042F, ++ 0x0504, 0x05E3, 0x06C5, 0x07A2, 0x0870, 0x0928, 0x09C0, 0x0A27, 0x0A4E, ++ 0x0A4C, 0x0A47, 0x0A41, 0x0A3A, 0x0A35, 0x01F4, 0x01F9, 0x01FF, 0x0204, ++ 0x0209, 0x020E, 0x0213, 0x0218, 0x021C, 0x0221, 0x0225, 0x0229, 0x022D, ++ 0x0230, 0x0234, 0x0237, 0x023A, 0x023C, 0x023F, 0x0241, 0x0242, 0x0244, ++ 0x0245, 0x0246, 0x0246, 0x0247, 0x0245, 0x0240, 0x0239, 0x022E, 0x0221, ++ 0x0212, 0x0200, 0x01ED, 0x01D8, 0x01C1, 0x01A9, 0x018F, 0x0175, 0x015A, ++ 0x013E, 0x0122, 0x0106, 0x00EA, 0x00CE, 0x00B2, 0x0097, 0x007D, 0x0063, ++ 0x004B, 0x0034, 0x001F, 0x000C, 0xFFF9, 0xFFEA, 0xFFDD, 0xFFD3, 0xFFCB, ++ 0xFFC6, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, ++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, ++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFF37, 0xFDB2, 0xFB68, 0xF88D, 0xF554, 0xF1F1, ++ 0xEE97, 0xEB7A, 0xE8CE, 0xE6C5, 0xE593, 0xE516, 0xE4E9, 0xE4DD, 0xE4CB, ++ 0xE4AF, 0xE48F, 0xE471, 0xE45B, 0x1040, 0x1040, 0x1040, 0x1040, 0x1040, ++ 0x1040, 0x1040, 0x1040, 0x1040, 0x103F, 0x103F, 0x103F, 0x103E, 0x103D, ++ 0x103D, 0x103C, 0x103B, 0x103A, 0x1039, 0x1038, 0x1036, 0x1035, 0x1033, ++ 0x1031, 0x102F, 0x102D, 0x1023, 0x100A, 0x0FE4, 0x0FB1, 0x0F72, 0x0F28, ++ 0x0ED4, 0x0E77, 0x0E12, 0x0DA5, 0x0D32, 0x0CB9, 0x0C3C, 0x0BBC, 0x0B39, ++ 0x0AB4, 0x0A2E, 0x09A8, 0x0923, 0x08A0, 0x0820, 0x07A3, 0x072C, 0x06BA, ++ 0x064E, 0x05EA, 0x058E, 0x053B, 0x04F3, 0x04B6, 0x0484, 0x0460, 0x0449, ++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, ++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, ++ 0x0442, 0x0442, 0x0442, 0x0445, 0x044B, 0x0458, 0x046D, 0x048D, 0x04B9, ++ 0x04F4, 0x053F, 0x059D, 0x0611, 0x07A3, 0x0A0A, 0x0B48, 0x0AEB, 0x0A01, ++ 0x08D1, 0x07A1, 0x06B8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, ++ 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8CA, 0xE8CE, 0xE8D3, 0xE8D4, 0xE8D4, ++ 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, ++ 0xE8D4, 0xE8D4, 0xE8EA, 0xE92B, 0xE993, 0xEA20, 0xEAD1, 0xEBA3, 0xEC93, ++ 0xED9F, 0xEEC5, 0xF003, 0xF155, 0xF2BB, 0xF430, 0xF5B4, 0xF743, 0xF8DC, ++ 0xFA7B, 0xFC1F, 0xFDC5, 0xFF6B, 0x0110, 0x02AF, 0x0446, 0x05D5, 0x0757, ++ 0x08CA, 0x0A2E, 0x0B7E, 0x0CB9, 0x0DDC, 0x0EE5, 0x0FD2, 0x10A0, 0x114D, ++ 0x11DE, 0x125A, 0x12C3, 0x131B, 0x1362, 0x139C, 0x13C8, 0x13EA, 0x1402, ++ 0x1412, 0x141C, 0x1421, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, ++ 0x1423, 0x1401, 0x139C, 0x12F4, 0x1208, 0x10DA, 0x0F68, 0x0DB3, 0x0BBC, ++ 0x0982, 0x0706, 0x0447, 0x015F, 0xFECD, 0xFD2A, 0xFC58, 0xFBCC, 0xFB76, ++ 0xFB4B, 0xFB3B, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF57, 0xFF57, ++ 0xFF57, 0xFF58, 0xFF58, 0xFF59, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, ++ 0xFF5E, 0xFF60, 0xFF61, 0xFF63, 0xFF65, 0xFF67, 0xFF6A, 0xFF6C, 0xFF6F, ++ 0xFF72, 0xFF75, 0xFF79, 0xFF7C, 0xFF80, 0xFF84, 0xFF89, 0xFF8E, 0xFF98, ++ 0xFFAC, 0xFFC9, 0xFFEC, 0x0015, 0x0040, 0x006C, 0x0098, 0x00C2, 0x00E8, ++ 0x0109, 0x0122, 0x0133, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, ++ 0x0109, 0x0085, 0xFFBE, 0xFEC5, 0xFDAB, 0xFC81, 0xFB57, 0xFA40, 0xF94A, ++ 0xF889, 0xF80C, 0xF7D7, 0xF7B8, 0xF770, 0xF6D2, 0xF5F4, 0xF501, 0xF420, ++ 0xF37B, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, ++ 0xF006, 0xF006, 0xF007, 0xF00A, 0xF00C, 0xF00D, 0xF00D, 0xF00D, 0xF00D, ++ 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, ++ 0xF014, 0xF028, 0xF048, 0xF074, 0xF0AA, 0xF0EA, 0xF133, 0xF184, 0xF1DD, ++ 0xF23D, 0xF2A2, 0xF30C, 0xF37A, 0xF3EB, 0xF460, 0xF4D5, 0xF54C, 0xF5C3, ++ 0xF639, 0xF6AD, 0xF71F, 0xF78E, 0xF7F9, 0xF85F, 0xF8C0, 0xF91A, 0xF96D, ++ 0xF9B8, 0xF9FA, 0xFA32, 0xFA60, 0xFA82, 0xFA99, 0xFAA2, 0xFAA5, 0xFAA7, ++ 0xFAA9, 0xFAAA, 0xFAAC, 0xFAAD, 0xFAAD, 0xFAAE, 0xFAAE, 0xFAAF, 0xFAAF, ++ 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAB9, ++ 0xFADF, 0xFB2B, 0xFBA6, 0xFC5B, 0xFD53, 0xFE98, 0x0036, 0x0235, 0x049F, ++ 0x077E, 0x0AB4, 0x0D7E, 0x0EF0, 0x0F54, 0x0F98, 0x0FC1, 0x0FD6, 0x0FDE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, ++ 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFFA, 0xFFFA, ++ 0xFFF9, 0xFFF9, 0xFFF9, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF7, 0xFFF7, ++ 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, ++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, ++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFC8, 0xFF45, ++ 0xFE7B, 0xFD7A, 0xFC4E, 0xFB06, 0xF9B0, 0xF85A, 0xF713, 0xF5E7, 0xF4E5, ++ 0xF41C, 0xF399, 0xF36A, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, ++ 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x000B, 0x001C, 0x0037, 0x0058, 0x007F, 0x00AA, 0x00D7, 0x0103, ++ 0x012E, 0x0155, 0x0177, 0x0191, 0x01A2, 0x01A8, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC173, 0xC179, 0xC184, 0xC193, ++ 0xC1A6, 0xC1BB, 0xC1D4, 0xC1F0, 0xC20E, 0xC22E, 0xC250, 0xC274, 0xC29A, ++ 0xC2C0, 0xC2E7, 0xC30F, 0xC337, 0xC35F, 0xC387, 0xC3AF, 0xC3D5, 0xC3FA, ++ 0xC41E, 0xC441, 0xC461, 0xC47F, 0xC49B, 0xC4B3, 0xC4C9, 0xC4DC, 0xC4EA, ++ 0xC4F5, 0xC4FC, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, ++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, ++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4F2, 0xC4CE, 0xC498, 0xC453, 0xC402, ++ 0xC3A9, 0xC34D, 0xC2F1, 0xC299, 0xC248, 0xC202, 0xC1CC, 0xC1A9, 0xC19C, ++ 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, ++ 0x0727, 0x0726, 0x0723, 0x0721, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, ++ 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x071F, ++ 0x071B, 0x0715, 0x070D, 0x0703, 0x06F7, 0x06EA, 0x06DB, 0x06CB, 0x06B9, ++ 0x06A7, 0x0693, 0x067F, 0x066A, 0x0655, 0x063F, 0x0629, 0x0614, 0x05FE, ++ 0x05E9, 0x05D4, 0x05C0, 0x05AC, 0x059A, 0x0588, 0x0578, 0x0569, 0x055B, ++ 0x0550, 0x0546, 0x053E, 0x0538, 0x0534, 0x0533, 0xD818, 0xD818, 0xD818, ++ 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD817, 0xD816, ++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, ++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD814, 0xD813, 0xD810, 0xD80D, ++ 0xD808, 0xD803, 0xD7FD, 0xD7F7, 0xD7F0, 0xD7E8, 0xD7E0, 0xD7D8, 0xD7CF, ++ 0xD7C6, 0xD7BD, 0xD7B3, 0xD7AA, 0xD7A0, 0xD797, 0xD78E, 0xD784, 0xD77C, ++ 0xD773, 0xD76B, 0xD763, 0xD75C, 0xD756, 0xD750, 0xD74B, 0xD747, 0xD743, ++ 0xD740, 0xD73F, 0xD73E, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, ++ 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF8E, 0xDF8C, 0xDF8B, 0xDF8B, ++ 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, ++ 0xDF8B, 0xDF8B, 0xDF8A, 0xDF86, 0xDF81, 0xDF7A, 0xDF71, 0xDF66, 0xDF5A, ++ 0xDF4C, 0xDF3E, 0xDF2E, 0xDF1D, 0xDF0B, 0xDEF9, 0xDEE6, 0xDED3, 0xDEC0, ++ 0xDEAC, 0xDE98, 0xDE85, 0xDE72, 0xDE5F, 0xDE4D, 0xDE3B, 0xDE2A, 0xDE1A, ++ 0xDE0C, 0xDDFE, 0xDDF2, 0xDDE7, 0xDDDE, 0xDDD7, 0xDDD2, 0xDDCE, 0xDDCD, ++ 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, ++ 0xE2A9, 0xE2AB, 0xE2B1, 0xE2B6, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, ++ 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2BC, ++ 0xE2C5, 0xE2D3, 0xE2E7, 0xE2FF, 0xE31C, 0xE33D, 0xE361, 0xE389, 0xE3B4, ++ 0xE3E1, 0xE410, 0xE442, 0xE474, 0xE4A8, 0xE4DD, 0xE512, 0xE547, 0xE57C, ++ 0xE5B0, 0xE5E2, 0xE614, 0xE643, 0xE670, 0xE69B, 0xE6C3, 0xE6E7, 0xE708, ++ 0xE725, 0xE73D, 0xE751, 0xE75F, 0xE768, 0xE76B, 0x0B39, 0x0B39, 0x0B39, ++ 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B38, 0x0B36, ++ 0x0B34, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, ++ 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B32, 0x0B2E, 0x0B29, 0x0B21, ++ 0x0B18, 0x0B0D, 0x0B00, 0x0AF2, 0x0AE3, 0x0AD3, 0x0AC1, 0x0AAF, 0x0A9C, ++ 0x0A89, 0x0A75, 0x0A61, 0x0A4D, 0x0A38, 0x0A24, 0x0A11, 0x09FD, 0x09EA, ++ 0x09D8, 0x09C7, 0x09B6, 0x09A7, 0x0999, 0x098D, 0x0982, 0x0978, 0x0971, ++ 0x096B, 0x0968, 0x0967, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, ++ 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80E, 0xA814, 0xA81B, 0xA81D, 0xA81D, ++ 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, ++ 0xA81D, 0xA81D, 0xA821, 0xA82B, 0xA83C, 0xA853, 0xA870, 0xA891, 0xA8B8, ++ 0xA8E2, 0xA911, 0xA942, 0xA977, 0xA9AF, 0xA9E8, 0xAA24, 0xAA60, 0xAA9E, ++ 0xAADC, 0xAB1A, 0xAB57, 0xAB94, 0xABCF, 0xAC09, 0xAC40, 0xAC75, 0xACA7, ++ 0xACD5, 0xAD00, 0xAD26, 0xAD48, 0xAD64, 0xAD7B, 0xAD8C, 0xAD96, 0xAD9A, ++ 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, ++ 0x2532, 0x252F, 0x2528, 0x2521, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, ++ 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251A, ++ 0x250F, 0x24FC, 0x24E3, 0x24C5, 0x24A0, 0x2476, 0x2448, 0x2416, 0x23E0, ++ 0x23A6, 0x236A, 0x232B, 0x22EB, 0x22A9, 0x2267, 0x2223, 0x21E0, 0x219D, ++ 0x215C, 0x211B, 0x20DD, 0x20A1, 0x2067, 0x2031, 0x1FFF, 0x1FD0, 0x1FA7, ++ 0x1F82, 0x1F63, 0x1F4B, 0x1F38, 0x1F2D, 0x1F29, 0x1F29, 0x1F29, 0x1F29, ++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, ++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F53, 0x1FCA, ++ 0x2080, 0x2169, 0x2278, 0x23A0, 0x24D6, 0x260B, 0x2733, 0x2842, 0x292B, ++ 0x29E1, 0x2A58, 0x2A82, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, ++ 0xE074, 0xE074, 0xE074, 0xE074, 0xE077, 0xE07B, 0xE080, 0xE082, 0xE082, ++ 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, ++ 0xE082, 0xE082, 0xE084, 0xE08C, 0xE098, 0xE0A9, 0xE0BE, 0xE0D6, 0xE0F2, ++ 0xE112, 0xE133, 0xE158, 0xE17F, 0xE1A7, 0xE1D1, 0xE1FC, 0xE229, 0xE256, ++ 0xE283, 0xE2B0, 0xE2DD, 0xE309, 0xE335, 0xE35F, 0xE387, 0xE3AE, 0xE3D2, ++ 0xE3F4, 0xE413, 0xE42F, 0xE448, 0xE45D, 0xE46D, 0xE47A, 0xE481, 0xE484, ++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, ++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, ++ 0xE484, 0xE461, 0xE402, 0xE36E, 0xE2B2, 0xE1D6, 0xE0E6, 0xDFEC, 0xDEF2, ++ 0xDE02, 0xDD27, 0xDC6A, 0xDBD7, 0xDB77, 0xDB54, 0x04A2, 0x04A2, 0x04A2, ++ 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A0, 0x049C, ++ 0x0497, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, ++ 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0493, 0x048C, 0x0481, 0x0471, ++ 0x045E, 0x0447, 0x042E, 0x0411, 0x03F2, 0x03D0, 0x03AC, 0x0387, 0x0360, ++ 0x0338, 0x030F, 0x02E6, 0x02BC, 0x0293, 0x0269, 0x0240, 0x0218, 0x01F2, ++ 0x01CC, 0x01A9, 0x0187, 0x0168, 0x014B, 0x0131, 0x011B, 0x0107, 0x00F8, ++ 0x00ED, 0x00E6, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, ++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, ++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00DB, 0x00C2, 0x009D, 0x006E, 0x0037, ++ 0xFFFA, 0xFFBB, 0xFF7C, 0xFF3F, 0xFF08, 0xFED9, 0xFEB4, 0xFE9C, 0xFE93, ++ 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, ++ 0xF907, 0xF908, 0xF909, 0xF90A, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, ++ 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90C, ++ 0xF90E, 0xF911, 0xF916, 0xF91C, 0xF922, 0xF92A, 0xF933, 0xF93C, 0xF946, ++ 0xF951, 0xF95D, 0xF968, 0xF974, 0xF981, 0xF98D, 0xF99A, 0xF9A6, 0xF9B3, ++ 0xF9BF, 0xF9CB, 0xF9D7, 0xF9E2, 0xF9ED, 0xF9F7, 0xFA00, 0xFA09, 0xFA11, ++ 0xFA18, 0xFA1D, 0xFA22, 0xFA26, 0xFA28, 0x0173, 0x0173, 0x0173, 0x0173, ++ 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0172, ++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, ++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0171, 0x0170, 0x016F, ++ 0x016D, 0x016C, 0x016A, 0x0168, 0x0166, 0x0164, 0x0161, 0x015F, 0x015C, ++ 0x015A, 0x0157, 0x0155, 0x0152, 0x014F, 0x014D, 0x014A, 0x0148, 0x0146, ++ 0x0143, 0x0141, 0x013F, 0x013D, 0x013C, 0x013A, 0x0139, 0x0138, 0x0138, ++ 0x0137, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC152, 0xC152, 0xC152, 0xC152, 0xC152, 0xC153, 0xC153, 0xC153, 0xC153, ++ 0xC154, 0xC154, 0xC154, 0xC154, 0xC154, 0xC155, 0xC155, 0xC155, 0xC155, ++ 0xC155, 0xC155, 0xC155, 0xC156, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, ++ 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08ED, 0x08ED, 0x08EC, ++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, ++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EB, 0x08EA, 0x08E9, ++ 0x08E8, 0x08E7, 0x08E6, 0x08E4, 0x08E3, 0x08E1, 0x08E0, 0x08DE, 0x08DD, ++ 0x08DB, 0x08D9, 0x08D8, 0x08D6, 0x08D4, 0x08D3, 0x08D1, 0x08D0, 0x08CE, ++ 0x08CD, 0x08CB, 0x08CA, 0x08C9, 0x08C8, 0x08C8, 0x08C7, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x0AB9, 0x1032, 0x189D, 0x2369, 0x3003, 0x3DD8, 0x4C57, ++ 0x5AEC, 0x6905, 0x7611, 0x817C, 0x8AA8, 0x90C9, 0x9304, 0x92EA, 0x92A9, ++ 0x9255, 0x9200, 0x91BF, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, ++ 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD5, 0x2AD5, 0x2AD5, ++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, ++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD4, 0x2AD3, 0x2AD2, 0x2AD0, 0x2ACE, 0x2ACC, ++ 0x2ACA, 0x2AC7, 0x2AC5, 0x2AC2, 0x2ABF, 0x2ABB, 0x2AB8, 0x2AB5, 0x2AB1, ++ 0x2AAE, 0x2AAB, 0x2AA7, 0x2AA4, 0x2AA1, 0x2A9D, 0x2A9A, 0x2A97, 0x2A95, ++ 0x2A92, 0x2A90, 0x2A8E, 0x2A8C, 0x2A8A, 0x2A89, 0x2A88, 0x2A88, 0x2A87, ++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, ++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, ++ 0x2A87, 0x2A49, 0x299E, 0x289E, 0x2761, 0x25FE, 0x248D, 0x2326, 0x21E0, ++ 0x20D4, 0x2018, 0x1FC5, 0x1FBA, 0x1FBA, 0x1FAF, 0x1F85, 0x1F41, 0x1EF1, ++ 0x1EA4, 0x1E6B, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, ++ 0xE547, 0xE547, 0xE547, 0xE545, 0xE540, 0xE53C, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE60A, 0xE855, 0xEBE8, 0xF08C, 0xF60C, 0xFC34, 0x02CE, 0x09A4, 0x1082, ++ 0x1732, 0x1D7F, 0x2314, 0x271F, 0x28AE, 0x2869, 0x27BC, 0x26DB, 0x25FA, ++ 0x254C, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, ++ 0x22DC, 0x22DC, 0x22D9, 0x22D3, 0x22CC, 0x22C9, 0x22C9, 0x22C9, 0x22C9, ++ 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, ++ 0x22C6, 0x22BB, 0x22AA, 0x2293, 0x2276, 0x2254, 0x222D, 0x2201, 0x21D2, ++ 0x219F, 0x2169, 0x2131, 0x20F6, 0x20BA, 0x207C, 0x203E, 0x1FFF, 0x1FC0, ++ 0x1F81, 0x1F44, 0x1F07, 0x1ECD, 0x1E94, 0x1E5E, 0x1E2C, 0x1DFC, 0x1DD1, ++ 0x1DAA, 0x1D88, 0x1D6B, 0x1D54, 0x1D43, 0x1D38, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D3E, 0x1D51, 0x1D5B, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, ++ 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF685, 0xF687, 0xF688, ++ 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, ++ 0xF688, 0xF688, 0xF688, 0xF689, 0xF68C, 0xF690, 0xF697, 0xF69E, 0xF6A8, ++ 0xF6B2, 0xF6BE, 0xF6CB, 0xF6D9, 0xF6E8, 0xF6F7, 0xF707, 0xF717, 0xF728, ++ 0xF739, 0xF74A, 0xF75B, 0xF76C, 0xF77D, 0xF78E, 0xF79D, 0xF7AD, 0xF7BB, ++ 0xF7C9, 0xF7D6, 0xF7E2, 0xF7ED, 0xF7F6, 0xF7FE, 0xF804, 0xF809, 0xF80C, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF792, 0xF6AF, 0xF634, 0xAB84, 0xAB84, ++ 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB86, ++ 0xAB8C, 0xAB91, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, ++ 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB96, 0xAB9F, 0xABAD, ++ 0xABC0, 0xABD7, 0xABF3, 0xAC13, 0xAC36, 0xAC5C, 0xAC86, 0xACB1, 0xACDF, ++ 0xAD0F, 0xAD40, 0xAD72, 0xADA5, 0xADD8, 0xAE0B, 0xAE3E, 0xAE70, 0xAEA1, ++ 0xAED1, 0xAEFF, 0xAF2B, 0xAF54, 0xAF7A, 0xAF9E, 0xAFBD, 0xAFD9, 0xAFF1, ++ 0xB004, 0xB012, 0xB01A, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB035, 0xB062, ++ 0xB07A, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, ++ 0xD607, 0xD607, 0xD60B, 0xD613, 0xD61A, 0xD61E, 0xD61E, 0xD61E, 0xD61E, ++ 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, ++ 0xD622, 0xD62F, 0xD644, 0xD660, 0xD683, 0xD6AC, 0xD6DB, 0xD70F, 0xD748, ++ 0xD785, 0xD7C6, 0xD80A, 0xD850, 0xD899, 0xD8E3, 0xD92E, 0xD97A, 0xD9C6, ++ 0xDA11, 0xDA5B, 0xDAA4, 0xDAEB, 0xDB2F, 0xDB6F, 0xDBAD, 0xDBE5, 0xDC1A, ++ 0xDC49, 0xDC72, 0xDC95, 0xDCB1, 0xDCC5, 0xDCD2, 0xDCD6, 0xDCD6, 0xDCD6, ++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, ++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDF85, ++ 0xE6E0, 0xF1DE, 0xFF74, 0x0E9A, 0x1E44, 0x2D69, 0x3B00, 0x45FD, 0x4D58, ++ 0x5007, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, ++ 0x1B82, 0x1B82, 0x1B7F, 0x1B7A, 0x1B75, 0x1B73, 0x1B73, 0x1B73, 0x1B73, ++ 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, ++ 0x1B70, 0x1B68, 0x1B5A, 0x1B48, 0x1B31, 0x1B16, 0x1AF7, 0x1AD5, 0x1AB0, ++ 0x1A88, 0x1A5D, 0x1A31, 0x1A03, 0x19D3, 0x19A2, 0x1971, 0x193F, 0x190E, ++ 0x18DC, 0x18AC, 0x187C, 0x184E, 0x1821, 0x17F7, 0x17CF, 0x17A9, 0x1787, ++ 0x1768, 0x174D, 0x1737, 0x1724, 0x1717, 0x170E, 0x170B, 0x170B, 0x170B, ++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, ++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x1775, ++ 0x1896, 0x1A45, 0x1C5B, 0x1EAE, 0x2115, 0x2368, 0x257E, 0x272D, 0x284E, ++ 0x28B8, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, ++ 0x0726, 0x0726, 0x0724, 0x0721, 0x071E, 0x071C, 0x071C, 0x071C, 0x071C, ++ 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, ++ 0x071A, 0x0715, 0x070C, 0x0700, 0x06F1, 0x06E0, 0x06CC, 0x06B6, 0x069D, ++ 0x0683, 0x0668, 0x064B, 0x062D, 0x060E, 0x05EE, 0x05CE, 0x05AE, 0x058E, ++ 0x056E, 0x054E, 0x052F, 0x0511, 0x04F4, 0x04D9, 0x04BF, 0x04A6, 0x0490, ++ 0x047C, 0x046B, 0x045C, 0x0450, 0x0447, 0x0442, 0x0440, 0x0440, 0x0440, ++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, ++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x04CF, ++ 0x0658, 0x08A3, 0x0B79, 0x0EA2, 0x11E7, 0x1510, 0x17E6, 0x1A31, 0x1BBA, ++ 0x1C49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xFED2, ++ 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, ++ 0xFECF, 0xFEC8, 0xFEC0, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, ++ 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEB8, 0xFEAC, ++ 0xFE98, 0xFE7D, 0xFE5B, 0xFE34, 0xFE06, 0xFDD4, 0xFD9D, 0xFD62, 0xFD23, ++ 0xFCE2, 0xFC9E, 0xFC57, 0xFC10, 0xFBC7, 0xFB7E, 0xFB35, 0xFAEC, 0xFAA4, ++ 0xFA5E, 0xFA1A, 0xF9D8, 0xF99A, 0xF95F, 0xF928, 0xF8F5, 0xF8C8, 0xF8A0, ++ 0xF87F, 0xF863, 0xF850, 0xF843, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, ++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, ++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF82C, 0xF7DE, 0xF736, ++ 0xF615, 0xF45A, 0xF1E6, 0xEEB0, 0xEB02, 0xE73E, 0xE3C4, 0xE0F6, 0xDF1C, ++ 0xDE21, 0xDDD8, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, ++ 0xFE61, 0xFE61, 0xFE61, 0xFE5F, 0xFE5C, 0xFE59, 0xFE57, 0xFE57, 0xFE57, ++ 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, ++ 0xFE57, 0xFE55, 0xFE50, 0xFE47, 0xFE3B, 0xFE2C, 0xFE1A, 0xFE06, 0xFDEF, ++ 0xFDD6, 0xFDBC, 0xFDA0, 0xFD83, 0xFD64, 0xFD45, 0xFD25, 0xFD04, 0xFCE4, ++ 0xFCC3, 0xFCA2, 0xFC82, 0xFC63, 0xFC44, 0xFC27, 0xFC0B, 0xFBF1, 0xFBD8, ++ 0xFBC2, 0xFBAD, 0xFB9B, 0xFB8C, 0xFB80, 0xFB77, 0xFB72, 0xFB70, 0xFB70, ++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, ++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, ++ 0xFB4C, 0xFAF2, 0xFA7C, 0xFA07, 0xF9AC, 0xF987, 0xF987, 0xF987, 0xF987, ++ 0xF987, 0xF986, 0xF975, 0xF955, 0xF944, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, ++ 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7C, 0xCD77, 0xCD73, ++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, ++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD6E, 0xCD67, 0xCD5B, 0xCD4B, 0xCD37, ++ 0xCD20, 0xCD05, 0xCCE8, 0xCCC7, 0xCCA5, 0xCC80, 0xCC59, 0xCC31, 0xCC08, ++ 0xCBDD, 0xCBB2, 0xCB87, 0xCB5C, 0xCB31, 0xCB07, 0xCADE, 0xCAB6, 0xCA8F, ++ 0xCA6A, 0xCA47, 0xCA27, 0xCA09, 0xC9EF, 0xC9D7, 0xC9C3, 0xC9B3, 0xC9A8, ++ 0xC9A0, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, ++ 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, ++ 0xC99E, 0xC99E, 0xC99E, 0xCA41, 0xCBE9, 0xCE32, 0xD0B9, 0xD31A, 0xD4F1, ++ 0xD606, 0xD68D, 0xD6C7, 0xD6F5, 0xD759, 0xD814, 0xD8D6, 0xD92F, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5F, ++ 0xFF5F, 0xFF5F, 0xFF60, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, ++ 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6F, ++ 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF74, 0xFF75, 0xFF76, 0xFF77, ++ 0xFF77, 0xFF77, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, ++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, ++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0x0060, 0x02E2, 0x06B3, ++ 0x0B87, 0x1111, 0x1705, 0x1D1B, 0x231B, 0x28D1, 0x2E07, 0x328B, 0x3623, ++ 0x3885, 0x3961, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, ++ 0x0165, 0x0165, 0x0165, 0x0165, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, ++ 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, ++ 0x0164, 0x0164, 0x0163, 0x0163, 0x0162, 0x0161, 0x015F, 0x015E, 0x015C, ++ 0x015A, 0x0158, 0x0156, 0x0154, 0x0151, 0x014F, 0x014C, 0x014A, 0x0147, ++ 0x0145, 0x0142, 0x0140, 0x013D, 0x013B, 0x0139, 0x0137, 0x0135, 0x0133, ++ 0x0131, 0x012F, 0x012E, 0x012D, 0x012C, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x00F5, 0x006E, 0xFFBD, 0xFF0E, 0xFE86, 0xFE50, 0xFFD3, 0x038E, 0x0848, ++ 0x0CCB, 0x0FE1, 0x1144, 0x11C7, 0x11DA, 0x053D, 0x053D, 0x053D, 0x053D, ++ 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x0540, 0x0546, 0x054C, ++ 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, ++ 0x054E, 0x054E, 0x054E, 0x054E, 0x0552, 0x055B, 0x056B, 0x0580, 0x059B, ++ 0x05BA, 0x05DE, 0x0606, 0x0631, 0x0660, 0x0691, 0x06C5, 0x06FB, 0x0732, ++ 0x076B, 0x07A4, 0x07DE, 0x0817, 0x0851, 0x0889, 0x08C1, 0x08F6, 0x092A, ++ 0x095C, 0x098A, 0x09B5, 0x09DD, 0x0A01, 0x0A20, 0x0A3B, 0x0A50, 0x0A60, ++ 0x0A6A, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, ++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, ++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0BE3, 0x0FCD, 0x1577, 0x1C2D, 0x233B, 0x29EE, ++ 0x2FB7, 0x34A7, 0x38F3, 0x3CD2, 0x407A, 0x43F7, 0x46A5, 0x47B7, 0xFB48, ++ 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, ++ 0xFB49, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, ++ 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4D, ++ 0xFB4F, 0xFB52, 0xFB56, 0xFB5B, 0xFB60, 0xFB66, 0xFB6C, 0xFB73, 0xFB7A, ++ 0xFB82, 0xFB8A, 0xFB92, 0xFB9A, 0xFBA3, 0xFBAB, 0xFBB4, 0xFBBC, 0xFBC5, ++ 0xFBCD, 0xFBD5, 0xFBDC, 0xFBE4, 0xFBEB, 0xFBF1, 0xFBF7, 0xFBFC, 0xFC01, ++ 0xFC05, 0xFC08, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, ++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, ++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFB9F, 0xFA6E, 0xF89A, ++ 0xF643, 0xF389, 0xF08F, 0xED74, 0xEA59, 0xE75E, 0xE4A5, 0xE24E, 0xE079, ++ 0xDF48, 0xDEDC, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, ++ 0xF29B, 0xF29B, 0xF29B, 0xF29C, 0xF29F, 0xF2A1, 0xF2A2, 0xF2A2, 0xF2A2, ++ 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, ++ 0xF2A2, 0xF2A4, 0xF2A8, 0xF2AE, 0xF2B7, 0xF2C2, 0xF2CF, 0xF2DE, 0xF2EF, ++ 0xF301, 0xF315, 0xF329, 0xF33F, 0xF356, 0xF36D, 0xF384, 0xF39C, 0xF3B5, ++ 0xF3CD, 0xF3E5, 0xF3FC, 0xF414, 0xF42A, 0xF440, 0xF455, 0xF468, 0xF47A, ++ 0xF48B, 0xF49A, 0xF4A7, 0xF4B2, 0xF4BB, 0xF4C2, 0xF4C6, 0xF4C7, 0xF4C7, ++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, ++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, ++ 0xF45C, 0xF32F, 0xF161, 0xEF12, 0xEC63, 0xE973, 0xE663, 0xE353, 0xE064, ++ 0xDDB4, 0xDB65, 0xD998, 0xD86B, 0xD800, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, ++ 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C7, 0xC4C6, ++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, ++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C5, 0xC4C3, 0xC4C1, 0xC4BD, 0xC4B8, ++ 0xC4B3, 0xC4AD, 0xC4A6, 0xC49E, 0xC496, 0xC48E, 0xC485, 0xC47B, 0xC472, ++ 0xC468, 0xC45E, 0xC454, 0xC44A, 0xC440, 0xC436, 0xC42D, 0xC423, 0xC41A, ++ 0xC412, 0xC40A, 0xC402, 0xC3FB, 0xC3F5, 0xC3F0, 0xC3EB, 0xC3E8, 0xC3E5, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC435, 0xC51D, 0xC681, 0xC849, 0xCA5B, 0xCC9F, ++ 0xCEFC, 0xD158, 0xD39C, 0xD5AE, 0xD776, 0xD8DA, 0xD9C2, 0xDA15, 0x01B9, ++ 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, ++ 0x01B9, 0x01B9, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B7, 0x01B6, 0x01B4, 0x01B2, 0x01B0, 0x01AE, 0x01AC, 0x01AA, 0x01A7, ++ 0x01A4, 0x01A1, 0x019E, 0x019B, 0x0198, 0x0195, 0x0192, 0x018F, 0x018C, ++ 0x0189, 0x0186, 0x0183, 0x0180, 0x017E, 0x017B, 0x0179, 0x0177, 0x0176, ++ 0x0174, 0x0173, 0x0172, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, ++ 0xF668, 0xF668, 0xF668, 0xF668, 0xF669, 0xF66B, 0xF66C, 0xF66D, 0xF66D, ++ 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, ++ 0xF66D, 0xF66D, 0xF66E, 0xF671, 0xF676, 0xF67C, 0xF684, 0xF68E, 0xF698, ++ 0xF6A4, 0xF6B1, 0xF6BF, 0xF6CE, 0xF6DE, 0xF6EE, 0xF6FE, 0xF70F, 0xF721, ++ 0xF732, 0xF743, 0xF754, 0xF765, 0xF776, 0xF786, 0xF796, 0xF7A4, 0xF7B2, ++ 0xF7BF, 0xF7CB, 0xF7D6, 0xF7DF, 0xF7E7, 0xF7EE, 0xF7F2, 0xF7F5, 0xF7F6, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBF2D, 0xBF2D, 0xBF2D, 0xBF2E, 0xBF2E, 0xBF2E, 0xBF2F, 0xBF2F, ++ 0xBF2F, 0xBF30, 0xBF30, 0xBF30, 0xBF31, 0xBF31, 0xBF31, 0xBF32, 0xBF32, ++ 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF33, 0xFCA2, 0xFC9F, 0xFC9E, ++ 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9F, 0xFCA8, 0xFCB7, 0xFCCC, ++ 0xFCE5, 0xFD03, 0xFD25, 0xFD4B, 0xFD74, 0xFDA1, 0xFDD0, 0xFE01, 0xFE34, ++ 0xFE69, 0xFE9F, 0xFED6, 0xFF0D, 0xFF44, 0xFF7B, 0xFFB0, 0xFFE5, 0x0019, ++ 0x004B, 0x007A, 0x00A6, 0x00D0, 0x00F6, 0x0118, 0x0136, 0x014F, 0x0163, ++ 0x0172, 0x017B, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, ++ 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, ++ 0x017F, 0x017F, 0x017F, 0x017F, 0x0176, 0x0143, 0x00C4, 0xFFD2, 0xFE4B, ++ 0xFC0C, 0xF906, 0xF584, 0xF1E8, 0xEE92, 0xEBE5, 0xEA28, 0xE942, 0xE901, ++ 0xFD5F, 0xFD62, 0xFD69, 0xFD72, 0xFD7B, 0xFD82, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD87, ++ 0xFD8D, 0xFD97, 0xFDA4, 0xFDB4, 0xFDC8, 0xFDDE, 0xFDF6, 0xFE11, 0xFE2E, ++ 0xFE4C, 0xFE6C, 0xFE8E, 0xFEB0, 0xFED3, 0xFEF6, 0xFF1A, 0xFF3E, 0xFF61, ++ 0xFF84, 0xFFA7, 0xFFC8, 0xFFE8, 0x0008, 0x0024, 0x003F, 0x0058, 0x006E, ++ 0x0081, 0x0092, 0x009F, 0x00A9, 0x00AF, 0x00B1, 0x00B1, 0x00B1, 0x00B1, ++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, ++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x0053, 0xFF43, ++ 0xFD8F, 0xFB45, 0xF872, 0xF524, 0xF171, 0xED90, 0xE9C0, 0xE641, 0xE352, ++ 0xE128, 0xDFD6, 0xDF63, 0xBEA9, 0xBF5F, 0xC03F, 0xC129, 0xC1F9, 0xC28F, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C7, 0xC2C0, 0xC2B5, 0xC2A5, 0xC293, 0xC27D, 0xC263, ++ 0xC247, 0xC229, 0xC208, 0xC1E5, 0xC1C0, 0xC19B, 0xC173, 0xC14C, 0xC123, ++ 0xC0FA, 0xC0D2, 0xC0A9, 0xC081, 0xC05A, 0xC034, 0xC010, 0xBFED, 0xBFCC, ++ 0xBFAD, 0xBF91, 0xBF78, 0xBF62, 0xBF4F, 0xBF40, 0xBF35, 0xBF2E, 0xBF2C, ++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBFAE, 0xC0F4, 0xC29C, 0xC444, 0xC58A, 0xC60C, 0xC5E5, 0xC586, ++ 0xC515, 0xC4B7, 0xC48F, 0xC4BF, 0xC518, 0xC548, 0xFF8A, 0xFF89, 0xFF88, ++ 0xFF87, 0xFF86, 0xFF86, 0xFF85, 0xFF84, 0xFF84, 0xFF84, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, 0xFF8B, 0xFF90, ++ 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA7, 0xFFA2, 0xFF9A, ++ 0xFF92, 0xFF8A, 0xFF85, 0xFF83, 0xFF83, 0xFF85, 0xFF88, 0xFF8C, 0xFF91, ++ 0xFF95, 0xFF9A, 0xFFA0, 0xFFA5, 0xFFA9, 0xFFAD, 0xFFB1, 0xFFB4, 0xFFB6, ++ 0xFFB8, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, ++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, ++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0x0075, 0x024A, 0x04AB, 0x070C, 0x08E0, ++ 0x099C, 0x08DC, 0x0712, 0x04F0, 0x0327, 0x0267, 0x027F, 0x02AB, 0x02C3, ++ 0x0270, 0x0272, 0x0273, 0x0275, 0x0276, 0x0276, 0x0277, 0x0277, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, ++ 0x0274, 0x026E, 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, ++ 0x024D, 0x0254, 0x025D, 0x0266, 0x026F, 0x0276, 0x0278, 0x0278, 0x0276, ++ 0x0274, 0x0271, 0x026D, 0x0268, 0x0262, 0x025B, 0x0254, 0x024B, 0x0242, ++ 0x0238, 0x022F, 0x0226, 0x0220, 0x021B, 0x0219, 0x0219, 0x0219, 0x0219, ++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, ++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0238, 0x02A7, ++ 0x0382, 0x04E5, 0x06ED, 0x09B5, 0x0D45, 0x114D, 0x1568, 0x1932, 0x1C44, ++ 0x1E52, 0x1F6F, 0x1FC5, 0x0613, 0x05FA, 0x05E4, 0x05D1, 0x05C0, 0x05B1, ++ 0x05A5, 0x059B, 0x0593, 0x058C, 0x0588, 0x0585, 0x0583, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, 0x0714, 0x078B, 0x07F8, ++ 0x0852, 0x088F, 0x08A5, 0x0879, 0x0806, 0x0769, 0x06BE, 0x0622, 0x05AF, ++ 0x0582, 0x058B, 0x05A6, 0x05D2, 0x060F, 0x065B, 0x06B5, 0x071E, 0x0794, ++ 0x0817, 0x08A5, 0x093E, 0x09D8, 0x0A6A, 0x0AED, 0x0B55, 0x0B9A, 0x0BB4, ++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, ++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, ++ 0x0BB4, 0x0D09, 0x1060, 0x14BE, 0x1927, 0x1C9F, 0x1E2B, 0x1E57, 0x1E62, ++ 0x1E63, 0x1E6E, 0x1E9A, 0x1F5F, 0x2088, 0x2122, 0x05FC, 0x060F, 0x0620, ++ 0x062F, 0x063C, 0x0643, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, ++ 0x061F, 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, ++ 0x0628, 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, ++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, ++ 0x0637, 0x0642, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0633, 0x05FF, 0x05AE, 0x0547, 0x04CE, ++ 0x044B, 0x03C1, 0x0338, 0x02B4, 0x023C, 0x01D5, 0x0184, 0x014F, 0x013C, ++ 0x1529, 0x14AD, 0x1376, 0x11E3, 0x1050, 0x0F1A, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, ++ 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, ++ 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, ++ 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, ++ 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E01, 0x0C48, ++ 0x09A4, 0x0644, 0x0256, 0xFE08, 0xF98C, 0xF511, 0xF0C4, 0xECD6, 0xE976, ++ 0xE6D2, 0xE519, 0xE47C, 0xC381, 0xC465, 0xC6A1, 0xC987, 0xCC6E, 0xCEA9, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, ++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, ++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, ++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF80, 0xCF5C, 0xCF24, 0xCEDC, 0xCE89, 0xCE2E, 0xCDCF, 0xCD71, ++ 0xCD16, 0xCCC2, 0xCC7B, 0xCC43, 0xCC1F, 0xCC12, + }; + diff --git a/assets/anims/anim_87.inc.c b/assets/anims/anim_87.inc.c index 894a15c0..a928b5d7 100644 --- a/assets/anims/anim_87.inc.c +++ b/assets/anims/anim_87.inc.c @@ -3,7 +3,7 @@ static const struct Animation anim_87[] = { 189, 0, 0, - 0x32, + 37, ANIMINDEX_NUMPARTS(anim_87_indices), anim_87_values, anim_87_indices, @@ -12,126 +12,140 @@ static const struct Animation anim_87[] = { static const u16 anim_87_indices[] = { - 0x0001, 0x0000, 0x0032, 0x0001, 0x0001, 0x0033, 0x0001, 0x0000, 0x0001, 0x0034, 0x0001, 0x0000, - 0x0001, 0x030B, 0x0001, 0x030C, 0x0001, 0x030D, - 0x0032, 0x0275, 0x0032, 0x02A7, 0x0032, 0x02D9, - 0x0032, 0x01DF, 0x0032, 0x0211, 0x0032, 0x0243, - 0x0001, 0x01DB, 0x0001, 0x01DC, 0x0001, 0x01DD, - 0x0032, 0x0039, 0x0032, 0x006B, 0x0032, 0x009D, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0038, - 0x0001, 0x0035, 0x0001, 0x0036, 0x0001, 0x0037, - 0x0001, 0x01D7, 0x0001, 0x01D8, 0x0001, 0x01D9, - 0x0001, 0x00D3, 0x0001, 0x00D4, 0x0001, 0x00D5, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D2, - 0x0001, 0x00CF, 0x0001, 0x00D0, 0x0001, 0x00D1, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DA, - 0x0032, 0x0141, 0x0032, 0x0173, 0x0032, 0x01A5, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x010F, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00DD, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DE, - 0x0001, 0x00DA, 0x0001, 0x00DB, 0x0001, 0x00DC, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D9, - 0x0001, 0x00D6, 0x0001, 0x00D7, 0x0001, 0x00D8, + 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, + 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0001, 0x0008, + 0x0026, 0x0009, 0x0026, 0x002F, 0x0026, 0x0055, 0x0026, 0x007B, 0x0026, + 0x00A1, 0x0026, 0x00C7, 0x0001, 0x00ED, 0x0001, 0x00EE, 0x0001, 0x00EF, + 0x0001, 0x00F0, 0x0001, 0x00F1, 0x0001, 0x00F2, 0x0001, 0x00F3, 0x0001, + 0x00F4, 0x0001, 0x00F5, 0x0026, 0x00F6, 0x0026, 0x011C, 0x0026, 0x0142, + 0x0001, 0x0168, 0x0001, 0x0169, 0x0001, 0x016A, 0x0001, 0x016B, 0x0001, + 0x016C, 0x0001, 0x016D, 0x0001, 0x016E, 0x0001, 0x016F, 0x0001, 0x0170, + 0x0026, 0x0171, 0x0026, 0x0197, 0x0026, 0x01BD, 0x0001, 0x01E3, 0x0001, + 0x01E4, 0x0001, 0x01E5, 0x0026, 0x01E6, 0x0026, 0x020C, 0x0026, 0x0232, + 0x0001, 0x0258, 0x0001, 0x0259, 0x0001, 0x025A, 0x0026, 0x025B, 0x0026, + 0x0281, 0x0026, 0x02A7, 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, + 0x0026, 0x02D0, 0x0026, 0x02F6, 0x0026, 0x031C, 0x0026, 0x0342, 0x0026, + 0x0368, 0x0026, 0x038E, 0x0026, 0x03B4, 0x0026, 0x03DA, 0x0026, 0x0400, }; static const s16 anim_87_values[] = { - 0x0000, 0x0066, 0x0066, 0x0066, 0x0067, 0x0067, 0x0067, 0x0067, - 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, - 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, - 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, - 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0xFF5A, 0x3FFF, 0xF772, 0xF00D, 0xE2ED, - 0xC0C8, 0x7347, 0x7389, 0x73BB, 0x73E0, 0x73F7, 0x7402, 0x7403, - 0x73FA, 0x73E9, 0x73D1, 0x73B3, 0x7390, 0x736B, 0x7343, 0x731A, - 0x72F1, 0x72CA, 0x72A5, 0x7285, 0x7269, 0x7254, 0x7247, 0x7242, - 0x7243, 0x7246, 0x724B, 0x7251, 0x7259, 0x7263, 0x726D, 0x7279, - 0x7286, 0x7293, 0x72A1, 0x72AF, 0x72BD, 0x72CC, 0x72DA, 0x72E8, - 0x72F6, 0x7303, 0x7310, 0x731B, 0x7326, 0x732F, 0x7338, 0x733E, - 0x7343, 0x7346, 0x7347, 0x88D4, 0x8871, 0x882F, 0x880A, 0x8800, - 0x880F, 0x8833, 0x886A, 0x88B1, 0x8905, 0x8964, 0x89CC, 0x8A38, - 0x8AA7, 0x8B16, 0x8B82, 0x8BE8, 0x8C47, 0x8C9A, 0x8CDF, 0x8D14, - 0x8D36, 0x8D41, 0x8D3D, 0x8D30, 0x8D1B, 0x8CFE, 0x8CDB, 0x8CB2, - 0x8C84, 0x8C52, 0x8C1C, 0x8BE2, 0x8BA6, 0x8B69, 0x8B2A, 0x8AEB, - 0x8AAD, 0x8A6F, 0x8A33, 0x89FA, 0x89C3, 0x8991, 0x8963, 0x893A, - 0x8917, 0x88FB, 0x88E6, 0x88D8, 0x88D4, 0x5E7C, 0x5E67, 0x5E5B, - 0x5E58, 0x5E5E, 0x5E6B, 0x5E7E, 0x5E97, 0x5EB4, 0x5ED6, 0x5EFA, - 0x5F21, 0x5F48, 0x5F70, 0x5F98, 0x5FBE, 0x5FE2, 0x6002, 0x601F, - 0x6037, 0x6049, 0x6054, 0x6058, 0x6056, 0x6051, 0x6048, 0x603C, - 0x602D, 0x601C, 0x6009, 0x5FF4, 0x5FDD, 0x5FC5, 0x5FAC, 0x5F92, - 0x5F77, 0x5F5D, 0x5F43, 0x5F29, 0x5F10, 0x5EF8, 0x5EE1, 0x5ECC, - 0x5EB8, 0x5EA7, 0x5E98, 0x5E8C, 0x5E84, 0x5E7E, 0x5E7C, 0xF852, - 0x1329, 0xC27F, 0xC6F6, 0x7A64, 0x3394, 0x0265, 0xFFEF, 0xFF31, - 0xCD1B, 0x4D24, 0x01C0, 0x089B, 0x9AAE, 0xD266, 0xD25A, 0xD24E, - 0xD243, 0xD23A, 0xD231, 0xD229, 0xD222, 0xD21C, 0xD217, 0xD213, - 0xD20F, 0xD20C, 0xD209, 0xD208, 0xD207, 0xD206, 0xD206, 0xD207, - 0xD208, 0xD20A, 0xD20C, 0xD20E, 0xD211, 0xD214, 0xD217, 0xD21B, - 0xD21E, 0xD222, 0xD226, 0xD22B, 0xD22F, 0xD233, 0xD238, 0xD23C, - 0xD241, 0xD245, 0xD249, 0xD24D, 0xD251, 0xD255, 0xD258, 0xD25B, - 0xD25E, 0xD260, 0xD262, 0xD264, 0xD265, 0xD266, 0xD266, 0x4224, - 0x4244, 0x4261, 0x427C, 0x4294, 0x42AA, 0x42BD, 0x42CE, 0x42DD, - 0x42EB, 0x42F6, 0x42FF, 0x4307, 0x430C, 0x4311, 0x4313, 0x4314, - 0x4314, 0x4313, 0x4310, 0x430C, 0x4307, 0x4301, 0x42FA, 0x42F3, - 0x42EB, 0x42E2, 0x42D8, 0x42CE, 0x42C4, 0x42B9, 0x42AF, 0x42A4, - 0x4298, 0x428E, 0x4283, 0x4278, 0x426D, 0x4263, 0x425A, 0x4251, - 0x4248, 0x4240, 0x4239, 0x4233, 0x422E, 0x422A, 0x4227, 0x4225, - 0x4224, 0xD9F3, 0xD9F2, 0xD9F1, 0xD9F0, 0xD9EF, 0xD9EE, 0xD9EE, - 0xD9ED, 0xD9ED, 0xD9EC, 0xD9EC, 0xD9EC, 0xD9EB, 0xD9EB, 0xD9EB, - 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, - 0xD9EC, 0xD9EC, 0xD9EC, 0xD9ED, 0xD9ED, 0xD9ED, 0xD9EE, 0xD9EE, - 0xD9EE, 0xD9EF, 0xD9EF, 0xD9EF, 0xD9F0, 0xD9F0, 0xD9F1, 0xD9F1, - 0xD9F1, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F3, 0xD9F3, 0xD9F3, - 0xD9F3, 0xD9F3, 0xD9F3, 0x087E, 0x0877, 0x0872, 0x086C, 0x0867, - 0x0863, 0x085F, 0x085C, 0x0859, 0x0856, 0x0854, 0x0852, 0x0850, - 0x084F, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084F, - 0x0850, 0x0851, 0x0853, 0x0854, 0x0856, 0x0858, 0x085A, 0x085C, - 0x085E, 0x0860, 0x0862, 0x0864, 0x0866, 0x0869, 0x086B, 0x086D, - 0x086F, 0x0871, 0x0873, 0x0875, 0x0876, 0x0878, 0x0879, 0x087B, - 0x087C, 0x087D, 0x087D, 0x087E, 0x087E, 0xC0C7, 0xC0C2, 0xC0BD, - 0xC0B9, 0xC0B5, 0xC0B2, 0xC0AF, 0xC0AC, 0xC0AA, 0xC0A8, 0xC0A6, - 0xC0A5, 0xC0A4, 0xC0A3, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, - 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, 0xC0A9, - 0xC0AB, 0xC0AC, 0xC0AE, 0xC0B0, 0xC0B1, 0xC0B3, 0xC0B5, 0xC0B6, - 0xC0B8, 0xC0BA, 0xC0BB, 0xC0BD, 0xC0BE, 0xC0C0, 0xC0C1, 0xC0C2, - 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, 0xC0C6, 0xC0C6, 0xC0C7, 0x9527, - 0x5D21, 0x475E, 0xBF5F, 0x90C1, 0x7987, 0x4B8C, 0xBF5F, 0xFC93, - 0xFCF2, 0xFD46, 0xFD8E, 0xFDCB, 0xFDFF, 0xFE29, 0xFE4B, 0xFE65, - 0xFE78, 0xFE84, 0xFE8B, 0xFE8C, 0xFE89, 0xFE83, 0xFE79, 0xFE6D, - 0xFE60, 0xFE51, 0xFE42, 0xFE34, 0xFE26, 0xFE1B, 0xFE12, 0xFE0C, - 0xFE09, 0xFE08, 0xFE05, 0xFE00, 0xFDF9, 0xFDF1, 0xFDE6, 0xFDDB, - 0xFDCD, 0xFDBF, 0xFDAF, 0xFD9E, 0xFD8D, 0xFD7A, 0xFD67, 0xFD53, - 0xFD3E, 0xFD29, 0xFD14, 0xFCFE, 0xFCE8, 0xFCD3, 0xFCBD, 0xFCA8, - 0xFC93, 0xFCBF, 0xFCD5, 0xFCE8, 0xFCF8, 0xFD07, 0xFD13, 0xFD1D, - 0xFD26, 0xFD2C, 0xFD32, 0xFD35, 0xFD38, 0xFD39, 0xFD3A, 0xFD39, - 0xFD38, 0xFD37, 0xFD35, 0xFD32, 0xFD30, 0xFD2D, 0xFD2B, 0xFD29, - 0xFD27, 0xFD26, 0xFD26, 0xFD25, 0xFD23, 0xFD21, 0xFD1D, 0xFD19, - 0xFD14, 0xFD0E, 0xFD08, 0xFD01, 0xFCFB, 0xFCF4, 0xFCED, 0xFCE6, - 0xFCE0, 0xFCD9, 0xFCD3, 0xFCCE, 0xFCC9, 0xFCC5, 0xFCC2, 0xFCBF, - 0xFCBE, 0xFCBE, 0xFCBF, 0x1A73, 0x1AA2, 0x1AD7, 0x1B12, 0x1B50, - 0x1B92, 0x1BD8, 0x1C20, 0x1C69, 0x1CB4, 0x1D00, 0x1D4B, 0x1D95, - 0x1DDE, 0x1E25, 0x1E6A, 0x1EAA, 0x1EE7, 0x1F1F, 0x1F52, 0x1F7E, - 0x1FA5, 0x1FC3, 0x1FDA, 0x1FE8, 0x1FED, 0x1FE6, 0x1FD0, 0x1FAF, - 0x1F81, 0x1F4A, 0x1F0A, 0x1EC3, 0x1E76, 0x1E24, 0x1DCE, 0x1D75, - 0x1D1C, 0x1CC3, 0x1C6C, 0x1C18, 0x1BC7, 0x1B7C, 0x1B38, 0x1AFC, - 0x1AC9, 0x1AA0, 0x1A84, 0x1A74, 0x1A73, 0x1603, 0x15DB, 0x15AC, - 0x1577, 0x153E, 0x1500, 0x14BE, 0x1479, 0x1432, 0x13EA, 0x13A0, - 0x1357, 0x130D, 0x12C5, 0x127F, 0x123B, 0x11FA, 0x11BE, 0x1186, - 0x1153, 0x1126, 0x1100, 0x10E1, 0x10CA, 0x10BB, 0x10B6, 0x10BD, - 0x10CE, 0x10EB, 0x1111, 0x1140, 0x1177, 0x11B5, 0x11F8, 0x1240, - 0x128B, 0x12DA, 0x132A, 0x137A, 0x13CB, 0x141A, 0x1467, 0x14B0, - 0x14F6, 0x1536, 0x156F, 0x15A2, 0x15CC, 0x15ED, 0x1603, 0xFC95, - 0xFC77, 0xFC58, 0xFC37, 0xFC16, 0xFBF5, 0xFBD3, 0xFBB1, 0xFB90, - 0xFB6E, 0xFB4D, 0xFB2D, 0xFB0D, 0xFAEF, 0xFAD2, 0xFAB6, 0xFA9D, - 0xFA85, 0xFA6F, 0xFA5B, 0xFA4A, 0xFA3B, 0xFA30, 0xFA27, 0xFA22, - 0xFA20, 0xFA23, 0xFA2B, 0xFA39, 0xFA4B, 0xFA61, 0xFA7A, 0xFA97, - 0xFAB7, 0xFAD8, 0xFAFC, 0xFB20, 0xFB45, 0xFB6B, 0xFB91, 0xFBB5, - 0xFBD9, 0xFBFB, 0xFC1B, 0xFC39, 0xFC53, 0xFC6A, 0xFC7D, 0xFC8B, - 0xFC95, 0x1A0F, 0x1A21, 0x1A2D, 0x1A32, 0x1A32, 0x1A2C, 0x1A21, - 0x1A12, 0x19FF, 0x19E9, 0x19D0, 0x19B5, 0x1998, 0x197A, 0x195C, - 0x193D, 0x191F, 0x1902, 0x18E6, 0x18CD, 0x18B5, 0x18A1, 0x1891, - 0x1884, 0x187C, 0x187A, 0x187B, 0x187E, 0x1884, 0x188C, 0x1896, - 0x18A2, 0x18AF, 0x18BE, 0x18CE, 0x18E0, 0x18F3, 0x1906, 0x191B, - 0x1930, 0x1946, 0x195C, 0x1973, 0x198A, 0x19A1, 0x19B8, 0x19CE, - 0x19E4, 0x19FA, 0x1A0F, 0xB079, 0x3A85, 0xEE75, + 0x0000, 0x0037, 0xFFFF, 0xCA66, 0x3A0A, 0x0A67, 0xFFFF, 0x0000, 0x40A1, + 0x0A33, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, + 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, + 0x0A3E, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, + 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, + 0x0A3E, 0x0A33, 0xE452, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, + 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, + 0xE439, 0xE446, 0xE44F, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, + 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, + 0xE439, 0xE446, 0xE44F, 0xE452, 0x065A, 0x065A, 0x0649, 0x061D, 0x05E1, + 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, + 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0x0649, 0x061D, 0x05E1, + 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, + 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0xFB38, 0xFB38, 0xFB46, + 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, + 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xFB46, + 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, + 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xF33B, + 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, + 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, + 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, + 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, + 0xF33B, 0x0FDF, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, + 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, + 0x0FF9, 0x0FE6, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, + 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, + 0x0FF9, 0x0FE6, 0x0FDF, 0xF36A, 0x01A8, 0xC19C, 0x0533, 0xD73E, 0xDDCD, + 0xE76B, 0x0967, 0xAD9A, 0x2A82, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, + 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, + 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, + 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, + 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0xDB54, 0xDB54, 0xDB9B, 0xDC53, + 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, + 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xDB9B, 0xDC53, + 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, + 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xFE93, 0xFE93, + 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, + 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, + 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, + 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, + 0xFA28, 0x0137, 0xC156, 0x91A5, 0x1E55, 0x2507, 0x1D5B, 0xF634, 0xB07A, + 0x5007, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, + 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, + 0x4FEC, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, + 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, + 0x4FEC, 0x5007, 0x28B8, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, + 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, + 0x2877, 0x2899, 0x28AF, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, + 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, + 0x2877, 0x2899, 0x28AF, 0x28B8, 0x1C49, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, + 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, + 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, + 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, + 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0xFFFF, 0xFFFF, 0xBF5E, + 0xDDD8, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, + 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, + 0xDDDB, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, + 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, + 0xDDDB, 0xDDD8, 0xF944, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, + 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, + 0xF977, 0xF95C, 0xF94B, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, + 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, + 0xF977, 0xF95C, 0xF94B, 0xF944, 0xD92F, 0xD92F, 0xD92D, 0xD928, 0xD922, + 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, + 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0xD92D, 0xD928, 0xD922, + 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, + 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0x3961, 0x11DA, 0x47B7, + 0xDEDB, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, + 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, + 0xDEE8, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, + 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, + 0xDEE8, 0xDEDB, 0xD800, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, + 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, + 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, + 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, + 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xDA15, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, + 0xD7E2, 0xD72C, 0xD6A8, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, + 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, + 0xD7E2, 0xD72C, 0xD6A7, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, + 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0x0172, 0xF7F6, 0xBF33, + 0xE901, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, + 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, + 0xE900, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, + 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, + 0xE900, 0xE901, 0xDF63, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, + 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, + 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, + 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, + 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xC548, 0xC548, 0xC546, 0xC543, 0xC53E, + 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, + 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0xC546, 0xC543, 0xC53E, + 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, + 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0x02C3, 0x02C3, 0x0282, + 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, + 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x0282, + 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, + 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x1FC5, + 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, + 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, + 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, + 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, + 0x1FC5, 0x2122, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, + 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, + 0x20A1, 0x20FF, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, + 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, + 0x20A1, 0x20FF, 0x2122, 0x013C, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, + 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, + 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, + 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, + 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0xE47C, 0xE47C, 0xE510, 0xE69E, + 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, + 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xE510, 0xE69E, + 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, + 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xCC12, 0xCC12, + 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, + 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, + 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, + 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, }; diff --git a/assets/anims/anim_87.inc.c.rej b/assets/anims/anim_87.inc.c.rej new file mode 100644 index 00000000..f9e3a95a --- /dev/null +++ b/assets/anims/anim_87.inc.c.rej @@ -0,0 +1,269 @@ +diff a/assets/anims/anim_87.inc.c b/assets/anims/anim_87.inc.c (rejected hunks) +@@ -3,7 +3,7 @@ static const struct Animation anim_87[] = { + 189, + 0, + 0, +- 0x32, ++ 37, + ANIMINDEX_NUMPARTS(anim_87_indices), + anim_87_values, + anim_87_indices, +@@ -12,126 +12,140 @@ static const struct Animation anim_87[] = { + + + static const u16 anim_87_indices[] = { +- 0x0001, 0x0000, 0x0032, 0x0001, 0x0001, 0x0033, 0x0001, 0x0000, 0x0001, 0x0034, 0x0001, 0x0000, +- 0x0001, 0x030B, 0x0001, 0x030C, 0x0001, 0x030D, +- 0x0032, 0x0275, 0x0032, 0x02A7, 0x0032, 0x02D9, +- 0x0032, 0x01DF, 0x0032, 0x0211, 0x0032, 0x0243, +- 0x0001, 0x01DB, 0x0001, 0x01DC, 0x0001, 0x01DD, +- 0x0032, 0x0039, 0x0032, 0x006B, 0x0032, 0x009D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0038, +- 0x0001, 0x0035, 0x0001, 0x0036, 0x0001, 0x0037, +- 0x0001, 0x01D7, 0x0001, 0x01D8, 0x0001, 0x01D9, +- 0x0001, 0x00D3, 0x0001, 0x00D4, 0x0001, 0x00D5, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D2, +- 0x0001, 0x00CF, 0x0001, 0x00D0, 0x0001, 0x00D1, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DA, +- 0x0032, 0x0141, 0x0032, 0x0173, 0x0032, 0x01A5, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x010F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00DD, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DE, +- 0x0001, 0x00DA, 0x0001, 0x00DB, 0x0001, 0x00DC, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D9, +- 0x0001, 0x00D6, 0x0001, 0x00D7, 0x0001, 0x00D8, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0001, 0x0008, ++ 0x0026, 0x0009, 0x0026, 0x002F, 0x0026, 0x0055, 0x0026, 0x007B, 0x0026, ++ 0x00A1, 0x0026, 0x00C7, 0x0001, 0x00ED, 0x0001, 0x00EE, 0x0001, 0x00EF, ++ 0x0001, 0x00F0, 0x0001, 0x00F1, 0x0001, 0x00F2, 0x0001, 0x00F3, 0x0001, ++ 0x00F4, 0x0001, 0x00F5, 0x0026, 0x00F6, 0x0026, 0x011C, 0x0026, 0x0142, ++ 0x0001, 0x0168, 0x0001, 0x0169, 0x0001, 0x016A, 0x0001, 0x016B, 0x0001, ++ 0x016C, 0x0001, 0x016D, 0x0001, 0x016E, 0x0001, 0x016F, 0x0001, 0x0170, ++ 0x0026, 0x0171, 0x0026, 0x0197, 0x0026, 0x01BD, 0x0001, 0x01E3, 0x0001, ++ 0x01E4, 0x0001, 0x01E5, 0x0026, 0x01E6, 0x0026, 0x020C, 0x0026, 0x0232, ++ 0x0001, 0x0258, 0x0001, 0x0259, 0x0001, 0x025A, 0x0026, 0x025B, 0x0026, ++ 0x0281, 0x0026, 0x02A7, 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, ++ 0x0026, 0x02D0, 0x0026, 0x02F6, 0x0026, 0x031C, 0x0026, 0x0342, 0x0026, ++ 0x0368, 0x0026, 0x038E, 0x0026, 0x03B4, 0x0026, 0x03DA, 0x0026, 0x0400, + }; + + static const s16 anim_87_values[] = { +- 0x0000, 0x0066, 0x0066, 0x0066, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0066, +- 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, +- 0x0066, 0x0066, 0x0066, 0xFF5A, 0x3FFF, 0xF772, 0xF00D, 0xE2ED, +- 0xC0C8, 0x7347, 0x7389, 0x73BB, 0x73E0, 0x73F7, 0x7402, 0x7403, +- 0x73FA, 0x73E9, 0x73D1, 0x73B3, 0x7390, 0x736B, 0x7343, 0x731A, +- 0x72F1, 0x72CA, 0x72A5, 0x7285, 0x7269, 0x7254, 0x7247, 0x7242, +- 0x7243, 0x7246, 0x724B, 0x7251, 0x7259, 0x7263, 0x726D, 0x7279, +- 0x7286, 0x7293, 0x72A1, 0x72AF, 0x72BD, 0x72CC, 0x72DA, 0x72E8, +- 0x72F6, 0x7303, 0x7310, 0x731B, 0x7326, 0x732F, 0x7338, 0x733E, +- 0x7343, 0x7346, 0x7347, 0x88D4, 0x8871, 0x882F, 0x880A, 0x8800, +- 0x880F, 0x8833, 0x886A, 0x88B1, 0x8905, 0x8964, 0x89CC, 0x8A38, +- 0x8AA7, 0x8B16, 0x8B82, 0x8BE8, 0x8C47, 0x8C9A, 0x8CDF, 0x8D14, +- 0x8D36, 0x8D41, 0x8D3D, 0x8D30, 0x8D1B, 0x8CFE, 0x8CDB, 0x8CB2, +- 0x8C84, 0x8C52, 0x8C1C, 0x8BE2, 0x8BA6, 0x8B69, 0x8B2A, 0x8AEB, +- 0x8AAD, 0x8A6F, 0x8A33, 0x89FA, 0x89C3, 0x8991, 0x8963, 0x893A, +- 0x8917, 0x88FB, 0x88E6, 0x88D8, 0x88D4, 0x5E7C, 0x5E67, 0x5E5B, +- 0x5E58, 0x5E5E, 0x5E6B, 0x5E7E, 0x5E97, 0x5EB4, 0x5ED6, 0x5EFA, +- 0x5F21, 0x5F48, 0x5F70, 0x5F98, 0x5FBE, 0x5FE2, 0x6002, 0x601F, +- 0x6037, 0x6049, 0x6054, 0x6058, 0x6056, 0x6051, 0x6048, 0x603C, +- 0x602D, 0x601C, 0x6009, 0x5FF4, 0x5FDD, 0x5FC5, 0x5FAC, 0x5F92, +- 0x5F77, 0x5F5D, 0x5F43, 0x5F29, 0x5F10, 0x5EF8, 0x5EE1, 0x5ECC, +- 0x5EB8, 0x5EA7, 0x5E98, 0x5E8C, 0x5E84, 0x5E7E, 0x5E7C, 0xF852, +- 0x1329, 0xC27F, 0xC6F6, 0x7A64, 0x3394, 0x0265, 0xFFEF, 0xFF31, +- 0xCD1B, 0x4D24, 0x01C0, 0x089B, 0x9AAE, 0xD266, 0xD25A, 0xD24E, +- 0xD243, 0xD23A, 0xD231, 0xD229, 0xD222, 0xD21C, 0xD217, 0xD213, +- 0xD20F, 0xD20C, 0xD209, 0xD208, 0xD207, 0xD206, 0xD206, 0xD207, +- 0xD208, 0xD20A, 0xD20C, 0xD20E, 0xD211, 0xD214, 0xD217, 0xD21B, +- 0xD21E, 0xD222, 0xD226, 0xD22B, 0xD22F, 0xD233, 0xD238, 0xD23C, +- 0xD241, 0xD245, 0xD249, 0xD24D, 0xD251, 0xD255, 0xD258, 0xD25B, +- 0xD25E, 0xD260, 0xD262, 0xD264, 0xD265, 0xD266, 0xD266, 0x4224, +- 0x4244, 0x4261, 0x427C, 0x4294, 0x42AA, 0x42BD, 0x42CE, 0x42DD, +- 0x42EB, 0x42F6, 0x42FF, 0x4307, 0x430C, 0x4311, 0x4313, 0x4314, +- 0x4314, 0x4313, 0x4310, 0x430C, 0x4307, 0x4301, 0x42FA, 0x42F3, +- 0x42EB, 0x42E2, 0x42D8, 0x42CE, 0x42C4, 0x42B9, 0x42AF, 0x42A4, +- 0x4298, 0x428E, 0x4283, 0x4278, 0x426D, 0x4263, 0x425A, 0x4251, +- 0x4248, 0x4240, 0x4239, 0x4233, 0x422E, 0x422A, 0x4227, 0x4225, +- 0x4224, 0xD9F3, 0xD9F2, 0xD9F1, 0xD9F0, 0xD9EF, 0xD9EE, 0xD9EE, +- 0xD9ED, 0xD9ED, 0xD9EC, 0xD9EC, 0xD9EC, 0xD9EB, 0xD9EB, 0xD9EB, +- 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, +- 0xD9EC, 0xD9EC, 0xD9EC, 0xD9ED, 0xD9ED, 0xD9ED, 0xD9EE, 0xD9EE, +- 0xD9EE, 0xD9EF, 0xD9EF, 0xD9EF, 0xD9F0, 0xD9F0, 0xD9F1, 0xD9F1, +- 0xD9F1, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F3, 0xD9F3, 0xD9F3, +- 0xD9F3, 0xD9F3, 0xD9F3, 0x087E, 0x0877, 0x0872, 0x086C, 0x0867, +- 0x0863, 0x085F, 0x085C, 0x0859, 0x0856, 0x0854, 0x0852, 0x0850, +- 0x084F, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084F, +- 0x0850, 0x0851, 0x0853, 0x0854, 0x0856, 0x0858, 0x085A, 0x085C, +- 0x085E, 0x0860, 0x0862, 0x0864, 0x0866, 0x0869, 0x086B, 0x086D, +- 0x086F, 0x0871, 0x0873, 0x0875, 0x0876, 0x0878, 0x0879, 0x087B, +- 0x087C, 0x087D, 0x087D, 0x087E, 0x087E, 0xC0C7, 0xC0C2, 0xC0BD, +- 0xC0B9, 0xC0B5, 0xC0B2, 0xC0AF, 0xC0AC, 0xC0AA, 0xC0A8, 0xC0A6, +- 0xC0A5, 0xC0A4, 0xC0A3, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, +- 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, 0xC0A9, +- 0xC0AB, 0xC0AC, 0xC0AE, 0xC0B0, 0xC0B1, 0xC0B3, 0xC0B5, 0xC0B6, +- 0xC0B8, 0xC0BA, 0xC0BB, 0xC0BD, 0xC0BE, 0xC0C0, 0xC0C1, 0xC0C2, +- 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, 0xC0C6, 0xC0C6, 0xC0C7, 0x9527, +- 0x5D21, 0x475E, 0xBF5F, 0x90C1, 0x7987, 0x4B8C, 0xBF5F, 0xFC93, +- 0xFCF2, 0xFD46, 0xFD8E, 0xFDCB, 0xFDFF, 0xFE29, 0xFE4B, 0xFE65, +- 0xFE78, 0xFE84, 0xFE8B, 0xFE8C, 0xFE89, 0xFE83, 0xFE79, 0xFE6D, +- 0xFE60, 0xFE51, 0xFE42, 0xFE34, 0xFE26, 0xFE1B, 0xFE12, 0xFE0C, +- 0xFE09, 0xFE08, 0xFE05, 0xFE00, 0xFDF9, 0xFDF1, 0xFDE6, 0xFDDB, +- 0xFDCD, 0xFDBF, 0xFDAF, 0xFD9E, 0xFD8D, 0xFD7A, 0xFD67, 0xFD53, +- 0xFD3E, 0xFD29, 0xFD14, 0xFCFE, 0xFCE8, 0xFCD3, 0xFCBD, 0xFCA8, +- 0xFC93, 0xFCBF, 0xFCD5, 0xFCE8, 0xFCF8, 0xFD07, 0xFD13, 0xFD1D, +- 0xFD26, 0xFD2C, 0xFD32, 0xFD35, 0xFD38, 0xFD39, 0xFD3A, 0xFD39, +- 0xFD38, 0xFD37, 0xFD35, 0xFD32, 0xFD30, 0xFD2D, 0xFD2B, 0xFD29, +- 0xFD27, 0xFD26, 0xFD26, 0xFD25, 0xFD23, 0xFD21, 0xFD1D, 0xFD19, +- 0xFD14, 0xFD0E, 0xFD08, 0xFD01, 0xFCFB, 0xFCF4, 0xFCED, 0xFCE6, +- 0xFCE0, 0xFCD9, 0xFCD3, 0xFCCE, 0xFCC9, 0xFCC5, 0xFCC2, 0xFCBF, +- 0xFCBE, 0xFCBE, 0xFCBF, 0x1A73, 0x1AA2, 0x1AD7, 0x1B12, 0x1B50, +- 0x1B92, 0x1BD8, 0x1C20, 0x1C69, 0x1CB4, 0x1D00, 0x1D4B, 0x1D95, +- 0x1DDE, 0x1E25, 0x1E6A, 0x1EAA, 0x1EE7, 0x1F1F, 0x1F52, 0x1F7E, +- 0x1FA5, 0x1FC3, 0x1FDA, 0x1FE8, 0x1FED, 0x1FE6, 0x1FD0, 0x1FAF, +- 0x1F81, 0x1F4A, 0x1F0A, 0x1EC3, 0x1E76, 0x1E24, 0x1DCE, 0x1D75, +- 0x1D1C, 0x1CC3, 0x1C6C, 0x1C18, 0x1BC7, 0x1B7C, 0x1B38, 0x1AFC, +- 0x1AC9, 0x1AA0, 0x1A84, 0x1A74, 0x1A73, 0x1603, 0x15DB, 0x15AC, +- 0x1577, 0x153E, 0x1500, 0x14BE, 0x1479, 0x1432, 0x13EA, 0x13A0, +- 0x1357, 0x130D, 0x12C5, 0x127F, 0x123B, 0x11FA, 0x11BE, 0x1186, +- 0x1153, 0x1126, 0x1100, 0x10E1, 0x10CA, 0x10BB, 0x10B6, 0x10BD, +- 0x10CE, 0x10EB, 0x1111, 0x1140, 0x1177, 0x11B5, 0x11F8, 0x1240, +- 0x128B, 0x12DA, 0x132A, 0x137A, 0x13CB, 0x141A, 0x1467, 0x14B0, +- 0x14F6, 0x1536, 0x156F, 0x15A2, 0x15CC, 0x15ED, 0x1603, 0xFC95, +- 0xFC77, 0xFC58, 0xFC37, 0xFC16, 0xFBF5, 0xFBD3, 0xFBB1, 0xFB90, +- 0xFB6E, 0xFB4D, 0xFB2D, 0xFB0D, 0xFAEF, 0xFAD2, 0xFAB6, 0xFA9D, +- 0xFA85, 0xFA6F, 0xFA5B, 0xFA4A, 0xFA3B, 0xFA30, 0xFA27, 0xFA22, +- 0xFA20, 0xFA23, 0xFA2B, 0xFA39, 0xFA4B, 0xFA61, 0xFA7A, 0xFA97, +- 0xFAB7, 0xFAD8, 0xFAFC, 0xFB20, 0xFB45, 0xFB6B, 0xFB91, 0xFBB5, +- 0xFBD9, 0xFBFB, 0xFC1B, 0xFC39, 0xFC53, 0xFC6A, 0xFC7D, 0xFC8B, +- 0xFC95, 0x1A0F, 0x1A21, 0x1A2D, 0x1A32, 0x1A32, 0x1A2C, 0x1A21, +- 0x1A12, 0x19FF, 0x19E9, 0x19D0, 0x19B5, 0x1998, 0x197A, 0x195C, +- 0x193D, 0x191F, 0x1902, 0x18E6, 0x18CD, 0x18B5, 0x18A1, 0x1891, +- 0x1884, 0x187C, 0x187A, 0x187B, 0x187E, 0x1884, 0x188C, 0x1896, +- 0x18A2, 0x18AF, 0x18BE, 0x18CE, 0x18E0, 0x18F3, 0x1906, 0x191B, +- 0x1930, 0x1946, 0x195C, 0x1973, 0x198A, 0x19A1, 0x19B8, 0x19CE, +- 0x19E4, 0x19FA, 0x1A0F, 0xB079, 0x3A85, 0xEE75, ++ 0x0000, 0x0037, 0xFFFF, 0xCA66, 0x3A0A, 0x0A67, 0xFFFF, 0x0000, 0x40A1, ++ 0x0A33, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, ++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, ++ 0x0A3E, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, ++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, ++ 0x0A3E, 0x0A33, 0xE452, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, ++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, ++ 0xE439, 0xE446, 0xE44F, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, ++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, ++ 0xE439, 0xE446, 0xE44F, 0xE452, 0x065A, 0x065A, 0x0649, 0x061D, 0x05E1, ++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, ++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0x0649, 0x061D, 0x05E1, ++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, ++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0xFB38, 0xFB38, 0xFB46, ++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, ++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xFB46, ++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, ++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xF33B, ++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, ++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, ++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, ++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, ++ 0xF33B, 0x0FDF, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, ++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, ++ 0x0FF9, 0x0FE6, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, ++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, ++ 0x0FF9, 0x0FE6, 0x0FDF, 0xF36A, 0x01A8, 0xC19C, 0x0533, 0xD73E, 0xDDCD, ++ 0xE76B, 0x0967, 0xAD9A, 0x2A82, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, ++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, ++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, ++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, ++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0xDB54, 0xDB54, 0xDB9B, 0xDC53, ++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, ++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xDB9B, 0xDC53, ++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, ++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xFE93, 0xFE93, ++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, ++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, ++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, ++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, ++ 0xFA28, 0x0137, 0xC156, 0x91A5, 0x1E55, 0x2507, 0x1D5B, 0xF634, 0xB07A, ++ 0x5007, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, ++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, ++ 0x4FEC, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, ++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, ++ 0x4FEC, 0x5007, 0x28B8, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, ++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, ++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, ++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, ++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x1C49, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, ++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, ++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, ++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, ++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0xFFFF, 0xFFFF, 0xBF5E, ++ 0xDDD8, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, ++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, ++ 0xDDDB, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, ++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, ++ 0xDDDB, 0xDDD8, 0xF944, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, ++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, ++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, ++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, ++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xD92F, 0xD92F, 0xD92D, 0xD928, 0xD922, ++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, ++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0xD92D, 0xD928, 0xD922, ++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, ++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0x3961, 0x11DA, 0x47B7, ++ 0xDEDB, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, ++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, ++ 0xDEE8, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, ++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, ++ 0xDEE8, 0xDEDB, 0xD800, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, ++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, ++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, ++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, ++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xDA15, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, ++ 0xD7E2, 0xD72C, 0xD6A8, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, ++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, ++ 0xD7E2, 0xD72C, 0xD6A7, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, ++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0x0172, 0xF7F6, 0xBF33, ++ 0xE901, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, ++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, ++ 0xE900, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, ++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, ++ 0xE900, 0xE901, 0xDF63, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, ++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, ++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, ++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, ++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xC548, 0xC548, 0xC546, 0xC543, 0xC53E, ++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, ++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0xC546, 0xC543, 0xC53E, ++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, ++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0x02C3, 0x02C3, 0x0282, ++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, ++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x0282, ++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, ++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x1FC5, ++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, ++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, ++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, ++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, ++ 0x1FC5, 0x2122, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, ++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, ++ 0x20A1, 0x20FF, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, ++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, ++ 0x20A1, 0x20FF, 0x2122, 0x013C, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, ++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, ++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, ++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, ++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0xE47C, 0xE47C, 0xE510, 0xE69E, ++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, ++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xE510, 0xE69E, ++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, ++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xCC12, 0xCC12, ++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, ++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, ++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, ++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, + }; + diff --git a/assets/anims/anim_CD.inc.c b/assets/anims/anim_CD.inc.c index 89172b25..d10bed1e 100644 --- a/assets/anims/anim_CD.inc.c +++ b/assets/anims/anim_CD.inc.c @@ -1,9 +1,9 @@ static const struct Animation anim_CD[] = { - 1, - 189, - 0, - 0, - 0x3F, + 1, + 0, + 0, + 1, + 91, ANIMINDEX_NUMPARTS(anim_CD_indices), anim_CD_values, anim_CD_indices, @@ -12,352 +12,309 @@ static const struct Animation anim_CD[] = { static const u16 anim_CD_indices[] = { - 0x003F, 0x0001, 0x003F, 0x0040, 0x003F, 0x007F, 0x0001, 0x0000, 0x0001, 0x00BE, 0x0001, 0x0000, - 0x003F, 0x0963, 0x003F, 0x09A2, 0x003F, 0x09E1, - 0x003F, 0x08A6, 0x003F, 0x08E5, 0x003F, 0x0924, - 0x003F, 0x07E9, 0x003F, 0x0828, 0x003F, 0x0867, - 0x0001, 0x07E5, 0x0001, 0x07E6, 0x0001, 0x07E7, - 0x003F, 0x01BB, 0x003F, 0x01FA, 0x003F, 0x0239, - 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x017C, - 0x003F, 0x00BF, 0x003F, 0x00FE, 0x003F, 0x013D, - 0x0001, 0x07A3, 0x0001, 0x07A4, 0x0001, 0x07A5, - 0x003F, 0x0374, 0x003F, 0x03B3, 0x003F, 0x03F2, - 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x0335, - 0x003F, 0x0278, 0x003F, 0x02B7, 0x003F, 0x02F6, - 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x07A6, - 0x003F, 0x06E6, 0x003F, 0x0725, 0x003F, 0x0764, - 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x06A7, - 0x003F, 0x05EA, 0x003F, 0x0629, 0x003F, 0x0668, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x07E8, - 0x003F, 0x052D, 0x003F, 0x056C, 0x003F, 0x05AB, - 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x04EE, - 0x003F, 0x0431, 0x003F, 0x0470, 0x003F, 0x04AF, + 0x0001, 0x0000, 0x0029, 0x0001, 0x0001, 0x002A, 0x0029, 0x002B, 0x0033, + 0x0054, 0x0013, 0x0087, 0x002C, 0x009A, 0x0032, 0x00C6, 0x0001, 0x00F8, + 0x0035, 0x00F9, 0x0035, 0x012E, 0x0036, 0x0163, 0x0029, 0x0199, 0x0029, + 0x01C2, 0x0029, 0x01EB, 0x0001, 0x0214, 0x0001, 0x0215, 0x0001, 0x0216, + 0x0029, 0x0217, 0x0029, 0x0240, 0x0029, 0x0269, 0x0029, 0x0292, 0x0029, + 0x02BB, 0x0029, 0x02E4, 0x0029, 0x030D, 0x0029, 0x0336, 0x0029, 0x035F, + 0x001A, 0x0388, 0x001A, 0x03A2, 0x001A, 0x03BC, 0x0029, 0x03D6, 0x0029, + 0x03FF, 0x0029, 0x0428, 0x005A, 0x0451, 0x005A, 0x04AB, 0x005A, 0x0505, + 0x005C, 0x055F, 0x005C, 0x05BB, 0x005C, 0x0617, 0x0021, 0x0673, 0x0020, + 0x0694, 0x0021, 0x06B4, 0x0021, 0x06D5, 0x0021, 0x06F6, 0x0021, 0x0717, + 0x0029, 0x0738, 0x0029, 0x0761, 0x0029, 0x078A, 0x0029, 0x07B3, 0x0029, + 0x07DC, 0x0029, 0x0805, 0x0032, 0x082E, 0x0030, 0x0860, 0x0001, 0x0890, + 0x0029, 0x0891, 0x0029, 0x08BA, 0x0029, 0x08E3, 0x0029, 0x090C, 0x0029, + 0x0935, 0x0029, 0x095E, 0x0029, 0x0987, 0x0029, 0x09B0, 0x0029, 0x09D9, }; static const s16 anim_CD_values[] = { - 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0002, 0x0003, 0x0000, - 0xFFFA, 0xFFF3, 0xFFE5, 0xFFCB, 0xFFAA, 0xFF8A, 0xFF75, 0xFF75, - 0xFF79, 0xFF7E, 0xFF82, 0xFF8B, 0xFF9A, 0xFFB5, 0xFFF3, 0xFFFF, - 0x0000, 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x00AA, 0x00A9, 0x00A6, 0x00A2, 0x009F, 0x009C, 0x009C, 0x00B0, - 0x00C8, 0x00DB, 0x00E5, 0x00EB, 0x00EF, 0x00F2, 0x00F1, 0x00EF, - 0x00EC, 0x00E7, 0x00DE, 0x00CB, 0x00B7, 0x00AE, 0x00A3, 0x0076, - 0x007D, 0x0077, 0x0071, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0071, 0x0071, 0x0071, 0x0072, 0x0072, 0x0072, 0x0073, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0074, 0x0073, 0x0073, 0x0073, - 0x0073, 0x0073, 0x0073, 0x0072, 0x0072, 0x0072, 0x0072, 0x0071, - 0x0071, 0x0071, 0x0071, 0x0071, 0x0070, 0x0070, 0x0070, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0004, 0x000A, 0x0014, - 0x001E, 0x0028, 0x002E, 0x002F, 0x0028, 0x0019, 0x0007, 0xFFF6, - 0xFFE9, 0xFFE4, 0xFFEC, 0xFFFF, 0x0018, 0x0034, 0x005B, 0x0086, - 0x00A9, 0x00BC, 0x00BF, 0x00C0, 0x00C2, 0x00C3, 0x00C3, 0x00C3, - 0x00C3, 0x00C3, 0x00C2, 0x00C2, 0x00C1, 0x00C0, 0x00BF, 0x00BE, - 0x00BD, 0x00BD, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, - 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, - 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x3FFF, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0012, 0x0044, 0x008D, 0x00E7, 0x0148, 0x01A9, 0x0202, 0x024C, - 0x027E, 0x0290, 0x027B, 0x0237, 0x01BB, 0x0101, 0x0000, 0xFDFA, - 0xFA8F, 0xF641, 0xF194, 0xED0C, 0xE92D, 0xE67A, 0xE576, 0xE576, - 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, - 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, - 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, - 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF983, - 0xF996, 0xF9B3, 0xF9D6, 0xF9FC, 0xFA22, 0xFA45, 0xFA62, 0xFA76, - 0xFA7D, 0xFA75, 0xFA5A, 0xFA2A, 0xF9E1, 0xF97C, 0xF8B1, 0xF75A, - 0xF5AA, 0xF3D5, 0xF20F, 0xF08A, 0xEF7C, 0xEF16, 0xEF16, 0xEF16, - 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, - 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, - 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xED8C, 0xED8C, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, - 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8E, 0xED96, - 0xEDA1, 0xEDAE, 0xEDBD, 0xEDCB, 0xEDD9, 0xEDE4, 0xEDEB, 0xEDEE, - 0xEDEB, 0xEDE1, 0xEDCE, 0xEDB2, 0xED8C, 0xED3E, 0xECBA, 0xEC15, - 0xEB61, 0xEAB3, 0xEA1E, 0xE9B6, 0xE98F, 0xE98F, 0xE98F, 0xE98F, - 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, - 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, - 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xCA4F, 0xCCDE, 0xD36C, 0xDC49, - 0xE5C8, 0xEE3A, 0xF3F0, 0xF65C, 0xF6A9, 0xF5C1, 0xF48B, 0xF3F0, - 0xF40B, 0xF441, 0xF469, 0xF45B, 0xF3F0, 0xF348, 0xF29F, 0xF1F3, - 0xF140, 0xF084, 0xEFBC, 0xEEE6, 0xEDFF, 0xED04, 0xEBF3, 0xEAC9, - 0xE983, 0xE81F, 0xE413, 0xDE24, 0xD857, 0xD1BA, 0xCAC6, 0xC3F8, - 0xBDCA, 0xB8B8, 0xB53D, 0xB3D3, 0xB59B, 0xBA9B, 0xC1A7, 0xC994, - 0xD134, 0xD75C, 0xDAE0, 0xDC7E, 0xDDC0, 0xDEB0, 0xDF55, 0xDFBA, - 0xDFE7, 0xDFE6, 0xDFBE, 0xDF7A, 0xDF21, 0xDEBE, 0xDE58, 0xDDFA, - 0xDDAB, 0xDD75, 0xDD62, 0xFB1D, 0xFB8D, 0xFC39, 0xFC27, 0xFA60, - 0xF5E9, 0xEDCC, 0xDEE3, 0xC966, 0xB168, 0x9AFB, 0x8A34, 0x7F67, - 0x77E4, 0x7322, 0x709A, 0x6FC7, 0x703C, 0x71C8, 0x743F, 0x7774, - 0x7B3D, 0x7F6C, 0x83D9, 0x8851, 0x8DBB, 0x948E, 0x9BFE, 0xA341, - 0xA98B, 0xA98B, 0xB1A9, 0xB96E, 0xC239, 0xCB67, 0xD457, 0xDC66, - 0xE2F1, 0xE755, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, - 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, - 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, - 0xE8F0, 0xE8F0, 0xD2DC, 0xD582, 0xDBEE, 0xE3D8, 0xEAFB, 0xEF0E, - 0xEDC9, 0xE38C, 0xD18F, 0xBCD5, 0xAA60, 0x9F31, 0x9D39, 0xA120, - 0xA800, 0xAEEF, 0xB306, 0xB4A0, 0xB5FC, 0xB70A, 0xB7B6, 0xB7F1, - 0xB7A7, 0xB6C7, 0xB53F, 0xB1FB, 0xACA3, 0xA642, 0x9FE4, 0x9A92, - 0x9A92, 0xA159, 0xA7D5, 0xAF2D, 0xB6D8, 0xBE4E, 0xC508, 0xCA7F, - 0xCE29, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, - 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, - 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, - 0xCF80, 0xD4B4, 0xD4F4, 0xD5C2, 0xD734, 0xD95D, 0xDC52, 0xE027, - 0xE5A2, 0xECDD, 0xF4F1, 0xFCF5, 0x0400, 0x0A9B, 0x1160, 0x1785, - 0x1C3F, 0x1EC2, 0x1F5D, 0x1F01, 0x1DDE, 0x1C23, 0x19FD, 0x179C, - 0x152D, 0x12E0, 0x1037, 0x0CD9, 0x092D, 0x0596, 0x027B, 0x027B, - 0xFD63, 0xF883, 0xF2FD, 0xED39, 0xE79C, 0xE28D, 0xDE72, 0xDBB0, - 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, - 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, - 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xFFF7, 0xFFDE, 0xFFB8, 0xFF8B, 0xFF5A, 0xFF28, 0xFEFB, - 0xFED6, 0xFEBC, 0xFEB3, 0xFEBD, 0xFEE0, 0xFF1F, 0xFF7E, 0x0000, - 0x009A, 0x0194, 0x036C, 0x06A4, 0x0BBB, 0x1745, 0x2715, 0x318D, - 0x3284, 0x2F10, 0x2B6E, 0x2BDD, 0x33E4, 0x4074, 0x4BE8, 0x509A, - 0x4F81, 0x4D72, 0x4A95, 0x4710, 0x430B, 0x3EAD, 0x3A1E, 0x3585, - 0x3109, 0x2CD1, 0x2906, 0x25CE, 0x2351, 0x21B6, 0x2124, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xFFF4, 0xFFD2, 0xFFA0, 0xFF62, 0xFF20, 0xFEDE, 0xFEA0, 0xFE6E, - 0xFE4C, 0xFE3F, 0xFE4E, 0xFE7D, 0xFED1, 0xFF50, 0x0000, 0x011D, - 0x0307, 0x05F6, 0x0A24, 0x0FC9, 0x1AE9, 0x29B1, 0x339A, 0x3595, - 0x33F9, 0x3153, 0x3034, 0x318C, 0x33E8, 0x363F, 0x3789, 0x37E9, - 0x3833, 0x3868, 0x388D, 0x38A2, 0x38AA, 0x38A8, 0x389E, 0x388D, - 0x3879, 0x3863, 0x384E, 0x383D, 0x3830, 0x382C, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, - 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF544, - 0xF536, 0xF520, 0xF506, 0xF4EA, 0xF4CE, 0xF4B4, 0xF49F, 0xF491, - 0xF48B, 0xF491, 0xF4A5, 0xF4C9, 0xF4FF, 0xF549, 0xF5F7, 0xF730, - 0xF8BE, 0xFA68, 0xFBF8, 0xFDA4, 0xFF6D, 0x00C8, 0x0046, 0xFEA0, - 0xFE8C, 0x02C3, 0x0F97, 0x2263, 0x336B, 0x3AF6, 0x3A7F, 0x38C8, - 0x3600, 0x3258, 0x2E02, 0x292E, 0x240E, 0x1ED0, 0x19A8, 0x14C5, - 0x1057, 0x0C91, 0x09A3, 0x07BC, 0x0710, 0xC7DD, 0xC75C, 0xC650, - 0xC571, 0xC572, 0xC70A, 0xCAEE, 0xD3CD, 0xE173, 0xF044, 0xFCA3, - 0xFCA3, 0xFCB5, 0xFCE8, 0xFD34, 0xFD92, 0xFDFC, 0xFE6A, 0xFED6, - 0xFF39, 0xFF8C, 0xFFC8, 0xFFE6, 0xFFDF, 0xFFAC, 0xFF47, 0xFEA8, - 0xFDC9, 0xFCA3, 0xF777, 0xED63, 0xE2AB, 0xD70D, 0xC952, 0xBC4D, - 0xB2CE, 0xAFAA, 0xBED4, 0xDA68, 0xEA6F, 0xEC81, 0xEE34, 0xEF90, - 0xF09B, 0xF15B, 0xF1D8, 0xF217, 0xF220, 0xF1F9, 0xF1A8, 0xF134, - 0xF0A3, 0xEFFD, 0xEF48, 0xEE89, 0xEDC9, 0xED0D, 0xEC5B, 0xEBBC, - 0xEB34, 0xEACB, 0xEA87, 0xEA6F, 0x054B, 0x028E, 0xFB6C, 0xF184, - 0xE676, 0xDBE2, 0xD368, 0xCD48, 0xC861, 0xC440, 0xC072, 0xC072, - 0xC29F, 0xC512, 0xC7B7, 0xCA78, 0xCD3F, 0xCFF9, 0xD291, 0xD4F0, - 0xD703, 0xD8B4, 0xD9EF, 0xDA9D, 0xDA28, 0xD849, 0xD566, 0xD1E7, - 0xCE30, 0xCAAA, 0xC7BA, 0xC688, 0xC6A9, 0xC6DE, 0xC76E, 0xC8A1, - 0xCA5F, 0xCC58, 0xCE83, 0xD0D4, 0xD33F, 0xD5B9, 0xD837, 0xDAAD, - 0xDD12, 0xDF58, 0xE175, 0xE35E, 0xE507, 0xE665, 0xE76E, 0xE814, - 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, - 0xE84E, 0xE84E, 0xE84E, 0x2BD6, 0x288C, 0x2079, 0x164D, 0x0CBC, - 0x0675, 0x062A, 0x10EE, 0x256A, 0x3CAF, 0x4FCD, 0x4FCD, 0x4EDF, - 0x4DC5, 0x4C8D, 0x4B44, 0x49F8, 0x48B7, 0x478E, 0x468C, 0x45BD, - 0x4530, 0x44F3, 0x4512, 0x45EB, 0x47AB, 0x4A16, 0x4CF3, 0x5007, - 0x5316, 0x55E7, 0x59FE, 0x5D4C, 0x60D7, 0x636C, 0x63DA, 0x6299, - 0x60FD, 0x5F14, 0x5CEB, 0x5A91, 0x5814, 0x5584, 0x52ED, 0x5060, - 0x4DE9, 0x4B98, 0x497A, 0x479F, 0x4614, 0x44E9, 0x442A, 0x43E8, - 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, - 0x43E8, 0x43E8, 0xCCF6, 0xC92A, 0xBF55, 0xB1CA, 0xA2DD, 0x94E2, - 0x8A2E, 0x8399, 0x7F91, 0x7CCF, 0x7A07, 0x7A07, 0x7C40, 0x7EC0, - 0x8175, 0x8444, 0x8719, 0x89E1, 0x8C86, 0x8EF2, 0x9111, 0x92CD, - 0x9411, 0x94C8, 0x944F, 0x925D, 0x8F62, 0x8BCD, 0x880F, 0x8496, - 0x81D3, 0x82AE, 0x8523, 0x87DF, 0x8A92, 0x8CEC, 0x8F18, 0x916E, - 0x93E4, 0x9672, 0x990C, 0x9BA9, 0x9E40, 0xA0C5, 0xA331, 0xA579, - 0xA792, 0xA974, 0xAB14, 0xAC69, 0xAD68, 0xAE09, 0xAE41, 0xAE41, - 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, - 0xAE41, 0x0000, 0x0024, 0x0082, 0x00FE, 0x0180, 0x01EE, 0x022D, - 0x0230, 0x0208, 0x01C9, 0x018B, 0x0164, 0x0155, 0x0150, 0x0151, - 0x0159, 0x0164, 0x0178, 0x0196, 0x01B7, 0x01D4, 0x01E5, 0x01F8, - 0x0229, 0x022C, 0x022C, 0x022B, 0x0228, 0x0224, 0x0221, 0x021E, - 0x021D, 0x021C, 0x021C, 0x021B, 0x021B, 0x021A, 0x021A, 0x021A, - 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, - 0x021A, 0x021A, 0x021A, 0x021B, 0x021B, 0x021B, 0x021B, 0x021C, - 0x021C, 0x021C, 0x021C, 0x021C, 0x021D, 0x021D, 0x021D, 0x021D, - 0xFF30, 0xFF3E, 0xFF62, 0xFF8E, 0xFFB7, 0xFFD0, 0xFFCD, 0xFF9F, - 0xFF4B, 0xFEE8, 0xFE8D, 0xFE50, 0xFE34, 0xFE2A, 0xFE2E, 0xFE3C, - 0xFE50, 0xFE67, 0xFE88, 0xFEBF, 0xFF16, 0x0003, 0x00D4, 0xFFAC, - 0xFF8B, 0xFF77, 0xFF6D, 0xFF69, 0xFF6B, 0xFF6E, 0xFF71, 0xFF70, - 0xFF6D, 0xFF6A, 0xFF68, 0xFF67, 0xFF66, 0xFF65, 0xFF65, 0xFF64, - 0xFF64, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF66, - 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, - 0xFF6D, 0xFF6E, 0xFF6E, 0xFF6F, 0xFF6F, 0xFF70, 0xFF70, 0xC9D8, - 0xC8B6, 0xC5F4, 0xC289, 0xBF6E, 0xBD98, 0xBE00, 0xC203, 0xC91B, - 0xD169, 0xD90E, 0xDE29, 0xE085, 0xE161, 0xE10F, 0xDFE1, 0xDE29, - 0xDC17, 0xD91C, 0xD46E, 0xCD46, 0xBAA7, 0xAA38, 0xC071, 0xC2E0, - 0xC462, 0xC528, 0xC565, 0xC54A, 0xC50C, 0xC4DB, 0xC4EA, 0xC525, - 0xC554, 0xC579, 0xC595, 0xC5A9, 0xC5B7, 0xC5BF, 0xC5C2, 0xC5C3, - 0xC5C1, 0xC5BE, 0xC5BC, 0xC5BB, 0xC5B9, 0xC5B4, 0xC5AB, 0xC5A1, - 0xC594, 0xC585, 0xC575, 0xC564, 0xC553, 0xC541, 0xC530, 0xC520, - 0xC512, 0xC505, 0xC4FA, 0xC4F2, 0xC4EC, 0xC4EA, 0x1E4A, 0x1FA0, - 0x22FA, 0x275B, 0x2BC3, 0x2F36, 0x30B6, 0x2F67, 0x2BE5, 0x276B, - 0x232F, 0x206A, 0x1EA4, 0x1D0C, 0x1C58, 0x1D3B, 0x206A, 0x2810, - 0x33AB, 0x3FED, 0x4984, 0x4EE3, 0x517C, 0x5287, 0x5300, 0x531F, - 0x52FA, 0x52A3, 0x522E, 0x51B0, 0x513C, 0x50E6, 0x509F, 0x504D, - 0x4FF4, 0x4F96, 0x4F36, 0x4ED6, 0x4E7A, 0x4E24, 0x4DD8, 0x4D98, - 0x4D66, 0x4D46, 0x4D3B, 0x4D43, 0x4D5B, 0x4D81, 0x4DB1, 0x4DEC, - 0x4E2E, 0x4E76, 0x4EC2, 0x4F10, 0x4F5E, 0x4FAA, 0x4FF2, 0x5035, - 0x506F, 0x50A0, 0x50C6, 0x50DD, 0x50E6, 0x1B09, 0x1AA1, 0x19A0, - 0x1858, 0x171C, 0x163E, 0x1610, 0x16F1, 0x18AF, 0x1ACA, 0x1CBF, - 0x1E0B, 0x1ED7, 0x1F7C, 0x1FBA, 0x1F53, 0x1E0B, 0x1ABB, 0x15AA, - 0x10B9, 0x0DC9, 0x0EE7, 0x1278, 0x14E6, 0x156A, 0x15AD, 0x15BC, - 0x15A8, 0x157E, 0x154F, 0x152A, 0x151C, 0x1520, 0x1524, 0x1527, - 0x152A, 0x152D, 0x152F, 0x1531, 0x1533, 0x1535, 0x1536, 0x1537, - 0x1538, 0x1538, 0x1537, 0x1537, 0x1536, 0x1534, 0x1533, 0x1531, - 0x152F, 0x152C, 0x152A, 0x1528, 0x1526, 0x1523, 0x1522, 0x1520, - 0x151E, 0x151D, 0x151D, 0x151C, 0x1144, 0x11C7, 0x1302, 0x1483, - 0x15D7, 0x168B, 0x162D, 0x140C, 0x1066, 0x0C29, 0x0846, 0x05AB, - 0x0454, 0x03A1, 0x0399, 0x0445, 0x05AB, 0x0930, 0x0E9D, 0x138F, - 0x15A4, 0x118C, 0x09C6, 0x04AC, 0x035E, 0x02A9, 0x026C, 0x0284, - 0x02CD, 0x0325, 0x0369, 0x0378, 0x035F, 0x0347, 0x0330, 0x031A, - 0x0305, 0x02F1, 0x02E0, 0x02D0, 0x02C2, 0x02B7, 0x02AF, 0x02AA, - 0x02A9, 0x02AA, 0x02B0, 0x02B8, 0x02C3, 0x02D0, 0x02DE, 0x02EE, - 0x02FF, 0x0310, 0x0321, 0x0332, 0x0342, 0x0351, 0x035E, 0x0368, - 0x0371, 0x0376, 0x0378, 0xAC44, 0xAB62, 0xA93B, 0xA68A, 0xA40C, - 0xA27D, 0xA299, 0xA55E, 0xAA62, 0xB04C, 0xB5BF, 0xB962, 0xBB64, - 0xBCAE, 0xBCF5, 0xBBF4, 0xB962, 0xB28C, 0xA804, 0x9E69, 0x9A5A, - 0xA245, 0xB14F, 0xBB2D, 0xBDAE, 0xBF05, 0xBF75, 0xBF41, 0xBEAC, - 0xBDFB, 0xBD70, 0xBD50, 0xBD7B, 0xBDA5, 0xBDCE, 0xBDF5, 0xBE1A, - 0xBE3C, 0xBE5B, 0xBE77, 0xBE8E, 0xBEA1, 0xBEAF, 0xBEB8, 0xBEBB, - 0xBEB8, 0xBEAF, 0xBEA0, 0xBE8D, 0xBE77, 0xBE5D, 0xBE41, 0xBE24, - 0xBE05, 0xBDE7, 0xBDCA, 0xBDAE, 0xBD94, 0xBD7E, 0xBD6B, 0xBD5C, - 0xBD53, 0xBD50, 0x0000, 0xFE3D, 0xF9D4, 0xF419, 0xEE5D, 0xE9F4, - 0xE831, 0xEDB4, 0xF881, 0x0000, 0x01D9, 0x01F8, 0x012C, 0x003F, - 0x0000, 0x007B, 0x012B, 0x01F7, 0x02C9, 0x038D, 0x0453, 0x0524, - 0x05DB, 0x0655, 0x0665, 0x061E, 0x05B8, 0x0525, 0x0475, 0x0410, - 0x03F8, 0x03E9, 0x03E0, 0x03DE, 0x03E0, 0x03E6, 0x03EE, 0x03F7, - 0x0400, 0x0408, 0x040E, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, - 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, - 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, - 0x0410, 0x0000, 0xFF71, 0xFE0A, 0xFC38, 0xFA65, 0xF8FF, 0xF86F, - 0xFA30, 0xFD9F, 0x0000, 0x009A, 0x00AB, 0x0070, 0x0023, 0x0000, - 0x0007, 0x0012, 0x001E, 0x002B, 0x0037, 0x0043, 0x004F, 0x005A, - 0x0060, 0x005D, 0x0053, 0x004B, 0x0049, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0xBF40, 0xBEEC, 0xBE45, 0xBDCE, 0xBE0C, 0xBF7F, 0xC2AB, 0xCD35, - 0xDC97, 0xE517, 0xE3A9, 0xDE6C, 0xD75F, 0xD082, 0xCBD4, 0xC99F, - 0xC88C, 0xC830, 0xC81C, 0xC7E4, 0xC7A7, 0xC7B0, 0xC7D6, 0xC7F1, - 0xC7F2, 0xC7F6, 0xC811, 0xC85F, 0xC8C3, 0xC8FE, 0xC90B, 0xC914, - 0xC918, 0xC91A, 0xC918, 0xC915, 0xC911, 0xC90C, 0xC906, 0xC902, - 0xC8FF, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, - 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, - 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0x2537, - 0x24DD, 0x2414, 0x2346, 0x22DA, 0x233A, 0x24CE, 0x2C10, 0x3680, - 0x3A0D, 0x32D4, 0x2667, 0x18DC, 0x0E4A, 0x0ACA, 0x114F, 0x1F1F, - 0x2FCC, 0x3EE7, 0x4801, 0x499C, 0x46AC, 0x4170, 0x3C25, 0x3909, - 0x3B7C, 0x3F1F, 0x3F83, 0x3F0B, 0x3E88, 0x3E40, 0x3DEF, 0x3D97, - 0x3D3B, 0x3CDE, 0x3C84, 0x3C30, 0x3BE3, 0x3BA3, 0x3B71, 0x3B51, - 0x3B45, 0x3B5D, 0x3B9C, 0x3BFA, 0x3C6B, 0x3CE7, 0x3D62, 0x3DD4, - 0x3E31, 0x3E70, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, - 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0xD64A, 0xD69C, - 0xD798, 0xD946, 0xDBAF, 0xDED9, 0xE2CF, 0xE86C, 0xEFD6, 0xF803, - 0xFFE8, 0x067A, 0x0AB1, 0x0C88, 0x0CEC, 0x0C3A, 0x0ACC, 0x0900, - 0x0730, 0x05B9, 0x040E, 0x01C9, 0xFF83, 0xFDD4, 0xFD34, 0xFD47, - 0xFD67, 0xFD58, 0xFD4E, 0xFD49, 0xFD46, 0xFD46, 0xFD47, 0xFD4B, - 0xFD51, 0xFD57, 0xFD5D, 0xFD63, 0xFD68, 0xFD6B, 0xFD6D, 0xFD6E, - 0xFD6E, 0xFD6E, 0xFD6E, 0xFD6D, 0xFD6C, 0xFD6C, 0xFD6B, 0xFD6B, - 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, - 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xEC41, 0xEC2C, 0xEBE9, - 0xEB76, 0xEACD, 0xE9E9, 0xE8C8, 0xE6AD, 0xE378, 0xE009, 0xDD41, - 0xDC00, 0xDD28, 0xE11C, 0xE72D, 0xEE9C, 0xF6AD, 0xFEA1, 0x05BA, - 0x0B3C, 0x0E2E, 0x0EE0, 0x0E80, 0x0E3D, 0x0DEB, 0x0D18, 0x0C86, - 0x0C6D, 0x0C77, 0x0C92, 0x0CAE, 0x0CB9, 0x0CB2, 0x0CA6, 0x0C97, - 0x0C87, 0x0C76, 0x0C66, 0x0C59, 0x0C51, 0x0C4C, 0x0C49, 0x0C49, - 0x0C49, 0x0C4B, 0x0C4D, 0x0C4F, 0x0C50, 0x0C51, 0x0C51, 0x0C51, - 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, - 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0xB59E, 0xB71E, 0xBAB7, 0xBF0E, - 0xC2C8, 0xC489, 0xC2F7, 0xBCA3, 0xB259, 0xA616, 0x99D9, 0x8F9F, - 0x8967, 0x878F, 0x887D, 0x8B38, 0x8EC9, 0x9237, 0x9489, 0x94C8, - 0x9135, 0x8A64, 0x82DC, 0x7D21, 0x7A6C, 0x7970, 0x78FA, 0x788A, - 0x7859, 0x7851, 0x785B, 0x7860, 0x785E, 0x7864, 0x786F, 0x787E, - 0x788D, 0x789C, 0x78A9, 0x78B1, 0x78B4, 0x78B6, 0x78B7, 0x78B6, - 0x78B5, 0x78B4, 0x78B2, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, - 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, - 0x78B1, 0x78B1, 0x78B1, 0x8001, 0x8001, 0x4171, 0xBF5F, 0xBF5F, - 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, - 0xBF60, 0xBF61, 0xBF61, 0xBF61, 0xBF5F, 0xBF5A, 0xBF53, 0xBF4B, - 0xBF43, 0xBF3D, 0xBF36, 0xBF2F, 0xBF29, 0xBF22, 0xBF1E, 0xBF1C, - 0xBF1E, 0xBF23, 0xBF34, 0xBF5F, 0xBFA2, 0xBFF0, 0xC047, 0xC0A2, - 0xC0FF, 0xC15A, 0xC1B0, 0xC1FE, 0xC241, 0xC274, 0xC296, 0xC2A1, - 0xC28A, 0xC24B, 0xC1ED, 0xC17C, 0xC100, 0xC085, 0xC013, 0xBFB6, - 0xBF76, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, - 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x8001, 0x8001, 0x4171, - 0xBF5F, 0x0000, 0xFE18, 0xF962, 0xF363, 0xED9E, 0xE998, 0xE8D4, - 0xEDB2, 0xF783, 0x0334, 0x0DB7, 0x154D, 0x13F5, 0x11D8, 0x0F19, - 0x0BDB, 0x0843, 0x0384, 0xFD86, 0xF77C, 0xF29B, 0xF017, 0xF7A3, - 0x01BC, 0x05F7, 0x0A32, 0x0E41, 0x11F6, 0x1525, 0x17A1, 0x193C, - 0x19C9, 0x18E0, 0x1660, 0x1286, 0x0D90, 0x07BD, 0x014A, 0xF375, - 0xE461, 0xDE7B, 0xDCAD, 0xDBD7, 0xDB3C, 0xDAD6, 0xDA9B, 0xDA83, - 0xDA86, 0xDA9D, 0xDABF, 0xDAF3, 0xDB43, 0xDBAA, 0xDC21, 0xDCA4, - 0xDD2C, 0xDDB4, 0xDE37, 0xDEAE, 0xDF14, 0xDF65, 0xDF99, 0xDFAB, - 0x0000, 0x000D, 0x002B, 0x004D, 0x0065, 0x0066, 0x0041, 0xFFDA, - 0xFF31, 0xFE6B, 0xFDAD, 0xFCE0, 0xFCBE, 0xFCA3, 0xFC9A, 0xFCAB, - 0xFCE0, 0xFD2B, 0xFD85, 0xFE04, 0xFEBE, 0xFFC8, 0x02C3, 0x056E, - 0x05E4, 0x0621, 0x0632, 0x0623, 0x0602, 0x05DA, 0x05B9, 0x05AD, - 0x05AB, 0x05A6, 0x059E, 0x0594, 0x0589, 0x057F, 0x0571, 0x055B, - 0x056A, 0x0513, 0x040C, 0x02D2, 0x017C, 0x0021, 0xFEDB, 0xFDBF, - 0xFCE6, 0xFC67, 0xFC34, 0xFC28, 0xFC3F, 0xFC71, 0xFCB8, 0xFD0F, - 0xFD6F, 0xFDD1, 0xFE2F, 0xFE83, 0xFEC7, 0xFEF5, 0xFF05, 0xFC62, - 0xFB4A, 0xF885, 0xF4D6, 0xF100, 0xEDC6, 0xEBEB, 0xEC2E, 0xEE26, - 0xF0D3, 0xF338, 0xF588, 0xF5E9, 0xF635, 0xF64F, 0xF61F, 0xF588, - 0xF474, 0xF2F4, 0xF12B, 0xEF3D, 0xED4A, 0xEA46, 0xE829, 0xE830, - 0xE872, 0xE8E5, 0xE97A, 0xEA26, 0xEADD, 0xEB92, 0xEC39, 0xECDE, - 0xED92, 0xEE51, 0xEF18, 0xEFE2, 0xF0AC, 0xF191, 0xF279, 0xF370, - 0xF3EA, 0xF3AA, 0xF348, 0xF2CE, 0xF24B, 0xF1CB, 0xF15A, 0xF107, - 0xF0DD, 0xF0D6, 0xF0E0, 0xF0F9, 0xF11D, 0xF14A, 0xF17D, 0xF1B2, - 0xF1E7, 0xF219, 0xF245, 0xF268, 0xF27F, 0xF288, 0x0000, 0x0371, - 0x0BF4, 0x16CE, 0x2145, 0x289E, 0x2A1F, 0x2143, 0x0F5E, 0xFA82, - 0xE8BA, 0xE305, 0xDF18, 0xDAD6, 0xD701, 0xD45C, 0xD3A9, 0xD72A, - 0xDE28, 0xE4EB, 0xE7BB, 0xE6BF, 0xE4BF, 0xE1FA, 0xDEAB, 0xDB11, - 0xD768, 0xD3EE, 0xD0E1, 0xCE7E, 0xCF29, 0xD1FB, 0xD36E, 0xD40A, - 0xD535, 0xD856, 0xDED2, 0xF03F, 0x0867, 0x1707, 0x1AAC, 0x1CE6, - 0x1DF4, 0x1E11, 0x1D7B, 0x1C6F, 0x1B2B, 0x19EC, 0x18EE, 0x186F, - 0x1833, 0x17DA, 0x176A, 0x16E9, 0x165D, 0x15CB, 0x153A, 0x14AF, - 0x1430, 0x13C3, 0x136E, 0x1336, 0x1323, 0x0000, 0xFFAD, 0xFEDC, - 0xFDCC, 0xFCBD, 0xFBED, 0xFB9B, 0xFC23, 0xFD65, 0xFEDF, 0x0011, - 0x0011, 0x01B3, 0x03AC, 0x05A4, 0x0741, 0x082D, 0x07BF, 0x063D, - 0x04B5, 0x0432, 0x04AD, 0x0564, 0x0649, 0x0751, 0x086E, 0x0993, - 0x0AB4, 0x0BC5, 0x0CB9, 0x0D85, 0x0DD7, 0x0E2B, 0x0EDB, 0x0F35, - 0x0E89, 0x0C26, 0x043A, 0xF8D2, 0xF206, 0xF0A6, 0xF000, 0xEFF3, - 0xF05C, 0xF118, 0xF204, 0xF300, 0xF3E7, 0xF499, 0xF4F1, 0xF50D, - 0xF51F, 0xF52A, 0xF52F, 0xF52E, 0xF529, 0xF521, 0xF517, 0xF50D, - 0xF502, 0xF4F9, 0xF4F3, 0xF4F1, 0x0884, 0x09A5, 0x0C7A, 0x1032, - 0x13F8, 0x16F9, 0x1861, 0x1715, 0x138A, 0x0F4A, 0x0BDD, 0x0BDD, - 0x08DA, 0x052E, 0x018B, 0xFEA4, 0xFD2A, 0xFE26, 0x0124, 0x04A2, - 0x071A, 0x087A, 0x09B6, 0x0AD3, 0x0BD5, 0x0CC3, 0x0DA1, 0x0E74, - 0x0F42, 0x1010, 0x1054, 0x1006, 0x0FF7, 0x1026, 0x1023, 0x0F7E, - 0x0DC6, 0x08AE, 0x016B, 0xFCD2, 0xFB5D, 0xFA47, 0xF981, 0xF8FD, - 0xF8AD, 0xF883, 0xF86F, 0xF864, 0xF853, 0xF82F, 0xF803, 0xF7E5, - 0xF7D3, 0xF7CC, 0xF7CD, 0xF7D5, 0xF7E2, 0xF7F2, 0xF803, 0xF813, - 0xF821, 0xF82B, 0xF82F, 0x0000, 0x0010, 0x0034, 0x0059, 0x0069, - 0x0052, 0x0000, 0x003B, 0x00B3, 0xFFA8, 0xFB5A, 0xDF68, 0xC869, - 0xB1CD, 0x9C4A, 0x8898, 0x766D, 0x652C, 0x54FB, 0x4603, 0x386D, - 0x2C73, 0x2261, 0x1A7C, 0x150C, 0x1198, 0x0F4A, 0x0DD9, 0x0CFD, - 0x0C70, 0x0BE8, 0x0B1F, 0x0AA2, 0x0AC9, 0x0AF8, 0x0AF8, 0x0AF8, - 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, - 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, - 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, - 0x0AF8, 0x0AF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0033, 0x0099, - 0x00E5, 0x00CC, 0x0000, 0xFDC3, 0xFA56, 0xF6F0, 0xF4C8, 0xF4F5, - 0xF69F, 0xF80F, 0xF8CE, 0xF984, 0xFA33, 0xFAD9, 0xFB78, 0xFC0E, - 0xFC9B, 0xFD1F, 0xFD76, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, - 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, - 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, - 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, - 0xFD90, 0x40A1, 0x4107, 0x4202, 0x433D, 0x4462, 0x451E, 0x451C, - 0x43B9, 0x411E, 0x3E2B, 0x3BBD, 0x3BBD, 0x3BB4, 0x3BA1, 0x3B93, - 0x3B98, 0x3BBD, 0x3BBF, 0x3BB3, 0x3C32, 0x3DD2, 0x4257, 0x4885, - 0x4C78, 0x4DB9, 0x4E7C, 0x4EDC, 0x4EF5, 0x4EE3, 0x4EC1, 0x4EAC, - 0x4EBE, 0x4EC5, 0x4E9F, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, - 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, - 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, - 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AD, 0x00AF, 0x00B2, 0x00B4, + 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, 0x00C7, 0x00C9, 0x00CB, 0x00CD, + 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, 0x00C0, 0x00BA, 0x00B5, 0x00B1, + 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, + 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, 0x00A2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, + 0x3218, 0x30FC, 0x3995, 0x51D5, 0x7769, 0xA7FE, 0xE142, 0x20E3, 0x648D, + 0xA9EF, 0xEEB4, 0x308D, 0x6D25, 0xA2A4, 0xD11D, 0xF91E, 0x1B35, 0x37EC, + 0x4FD4, 0x6378, 0x7366, 0x802B, 0x8A4A, 0x921A, 0x97E6, 0x9BFA, 0x9EA2, + 0xA02A, 0xA0DD, 0xA108, 0x9857, 0x839B, 0x6ADD, 0x5622, 0x4D70, 0x4D77, + 0x4D8A, 0x4DA5, 0x4DC6, 0x4DEA, 0x4E0E, 0x4E30, 0x4E4B, 0x4E5D, 0x4E64, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFC7C, + 0xF4C4, 0xED0B, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, + 0xF384, 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, + 0x096B, 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, + 0x0DDE, 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, + 0x0223, 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, + 0x0D87, 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFF, 0x01FD, 0x065D, + 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, 0x0901, 0x06BD, 0x045A, + 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, 0xFEA1, 0xFED1, 0xFF0A, + 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, 0x00D8, 0x0108, 0x012D, + 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, 0x00E7, 0x0091, 0x0049, + 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, 0x0076, 0x007A, 0x007D, + 0x007F, 0x0081, 0x0081, 0x0082, 0x0884, 0x0884, 0x0C6F, 0x150F, 0x1DAE, + 0x2199, 0x2199, 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, + 0x0564, 0x026D, 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, + 0x029D, 0x02E9, 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, + 0x0482, 0x0482, 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, + 0xFEA1, 0xFEA8, 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, + 0xFDD2, 0xFDB9, 0xFDA9, 0xFDA2, 0x0000, 0x0000, 0xFEA3, 0xFBA6, 0xF8A9, + 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, 0x1216, 0x1955, + 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, 0x1054, 0x0862, + 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, 0xC514, 0xC174, + 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, 0xF13A, 0xF6EC, + 0xFFFF, 0xFFFF, 0x002B, 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, + 0x00F5, 0x00CE, 0x0099, 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, + 0xFE2B, 0xFDC7, 0xFD6C, 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, + 0x0051, 0x0270, 0x0490, 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, + 0x069F, 0x02CE, 0xFE3F, 0xFA6E, 0xF8D4, 0xFC61, 0xFC61, 0xFD74, 0xFFD2, + 0x0231, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, 0x0185, + 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, 0xFF15, + 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, 0xFFB0, + 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, 0xFE47, + 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFB1C, 0x0B49, 0x2EDD, 0xD270, + 0xE29C, 0xE29C, 0xE29C, 0xE199, 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, + 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, + 0x0450, 0x0004, 0xFC31, 0xF8DB, 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, + 0xEF74, 0xEF74, 0xEF74, 0xEF74, 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, + 0xD2DB, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, + 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, + 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, + 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, + 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xD4B3, 0xD4B3, 0xC63D, 0xA66B, + 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, 0xFADF, 0xFE0F, 0x0243, 0x0751, + 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, + 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, 0xE523, 0xE8D3, 0xEBCF, 0xEE06, + 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEA00, 0xDBFF, 0xCB47, 0xBD46, + 0xB766, 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, + 0xF44D, 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, + 0xF4CE, 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, + 0xF58A, 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, + 0xF5C1, 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0xFE75, + 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, 0xF663, 0xF6AF, 0xF714, + 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, 0xFBC6, 0xFC97, 0xFD6A, + 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, 0x0272, 0x02EE, 0x0354, + 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, 0x0905, 0x154B, 0x23F2, + 0x3038, 0x4AA2, 0xCA4E, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, + 0xE97C, 0xE992, 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, + 0xEF07, 0xF016, 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, + 0xF8A8, 0xF986, 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, + 0xFC3F, 0xFC3F, 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xFFFF, 0xFFFF, + 0xFEF0, 0xFC9B, 0xFA46, 0xF937, 0xF937, 0xF937, 0xF920, 0xF8DE, 0xF875, + 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, 0xF166, 0xF043, + 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, 0xE827, 0xE77A, + 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, 0xF137, 0x0B8C, + 0x2AFA, 0x454E, 0xD059, 0xF97B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, + 0xF50D, 0xF50D, 0xF513, 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, + 0xF62A, 0xF66A, 0xF6AC, 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, + 0xF88C, 0xF8C7, 0xF8FE, 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, + 0xF9A9, 0xF9A9, 0xF9A9, 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xED8B, + 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, 0xED0B, + 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, 0xF646, + 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, 0x01B5, + 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, 0xFA5A, + 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0xFF5A, 0xFD96, 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, + 0xEB34, 0xE970, 0xE8CA, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, + 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, + 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, + 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, 0xD02E, 0xD346, 0xD5D2, 0xD78C, + 0xD830, 0x054B, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, + 0x1FDB, 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, + 0xD7A7, 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, + 0x428B, 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, + 0x18CE, 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2BD6, 0x2BD6, 0x26DD, + 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, 0x0E26, 0x1092, 0x13B1, + 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, 0x4FF0, 0x4CD2, 0x4A66, + 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, 0x53CD, 0x5249, 0x50C6, + 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, 0x4D5C, 0x4B71, 0x4928, + 0x38C3, 0x3990, 0xCCF5, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, + 0xEB39, 0xE9F9, 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, + 0xABA7, 0xA28E, 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, + 0x1C7F, 0x1A7D, 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, + 0x0B86, 0x0B86, 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, + 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, 0x0FD7, 0x0FE2, + 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, 0x12E9, 0x13D5, + 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, 0x1BF2, 0x1813, + 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x1086, 0x1A5F, + 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, 0x2879, + 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, 0x289F, + 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, + 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, + 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B1, 0x28AD, 0x28A7, 0x289F, 0x2897, + 0x288E, 0x2885, 0x287C, 0x2875, 0x286F, 0x286B, 0x2869, 0x0000, 0x0000, + 0x034A, 0x0A88, 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, + 0x0FF9, 0x0DAE, 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, + 0x03F7, 0x0A45, 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, + 0x1DEF, 0x1C26, 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, + 0x0DD1, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, + 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, + 0x0BBC, 0x0B90, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, + 0x0CF7, 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, + 0x0BFC, 0x0BBC, 0x0B90, 0x0B80, 0x0B89, 0x0BA3, 0x0BCA, 0x0BFC, 0x0C34, + 0x0C6F, 0x0CAA, 0x0CE2, 0x0D13, 0x0D3A, 0x0D54, 0x0D5E, 0xC7DC, 0xC7DC, + 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, 0xF004, 0xF0DA, 0xF21D, + 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, 0xFDF0, 0xFEC6, 0xFF13, + 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, 0xDC50, 0xE73B, 0xF628, + 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, 0x247F, 0x29D3, 0x35C0, + 0x422D, 0x4902, 0x4AD0, 0x4C43, 0x4D63, 0x4E3C, 0x4ED7, 0x4F3F, 0x4F7E, + 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, 0x4ABC, + 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, 0x4B5A, 0x4C57, 0x4D53, + 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, + 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4923, 0x4980, 0x4A0C, 0x4ABC, 0x4B84, + 0x4C57, 0x4D2A, 0x4DF2, 0x4EA1, 0x4F2E, 0x4F8A, 0x4FAC, 0xFFFF, 0xFFFF, + 0x0015, 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, + 0xFF80, 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, + 0xF893, 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, + 0xF21D, 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, + 0x2ABD, 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, + 0x6709, 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, + 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, + 0x6611, 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x669A, + 0x6640, 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x64FF, 0x651E, 0x654D, + 0x6588, 0x65CB, 0x6611, 0x6658, 0x669A, 0x66D5, 0x6704, 0x6723, 0x672E, + 0xFFFF, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, 0x068E, 0x06A4, + 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, 0x0C0E, 0x0D1B, + 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, 0x159B, 0x1677, + 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, 0x192B, 0x192B, + 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, 0x0E70, 0x0EFC, + 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, 0x1231, + 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E12, 0x0E70, + 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, + 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E07, + 0x0E4B, 0x0EB2, 0x0F32, 0x0FC4, 0x105F, 0x10F9, 0x118B, 0x120C, 0x1272, + 0x12B6, 0x12CF, 0xF548, 0xF548, 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, + 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, + 0xE666, 0xE829, 0xE9FD, 0xEBD9, 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, + 0xF66D, 0xF7DE, 0xF928, 0xFA43, 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, + 0xFC67, 0xFC67, 0xFE37, 0x02C6, 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, + 0x1705, 0x175E, 0x17A0, 0x17D0, 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, + 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, + 0x1613, 0x163B, 0x1676, 0x16BD, 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, + 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, + 0x1605, 0x160F, 0x162B, 0x1657, 0x168D, 0x16CA, 0x170B, 0x174C, 0x1789, + 0x17C0, 0x17EB, 0x1807, 0x1812, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, + 0x0057, 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, + 0x02D4, 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, + 0x05ED, 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, + 0x0772, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, 0xFFF9, + 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, 0xFFE7, 0xFFE4, 0xFFE0, + 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, 0xFFCC, 0xFFC9, 0xFFC7, + 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, 0xBF5E, 0xBF5E, 0xBF60, + 0xBF67, 0xBF71, 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, + 0xC028, 0xC048, 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, + 0xC150, 0xC16E, 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, + 0xC211, 0xC218, 0xC21A, 0xD649, 0xD649, 0xDA6F, 0xE390, 0xECB0, 0xF0D6, + 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, 0xEE3D, 0xED7A, + 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, 0xE6CB, 0xE605, + 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, 0xE227, 0xE218, + 0xEC40, 0xEC40, 0xEDD6, 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, + 0xF872, 0xFA77, 0xFCAB, 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, + 0x00B3, 0x00AD, 0x00A7, 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, + 0x0077, 0x0071, 0x006D, 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59D, 0xB418, + 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, 0xB4CB, + 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, 0xB745, + 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, 0xAEC3, + 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, + 0x00FB, 0x015D, 0x01C9, 0x023E, 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, + 0x0538, 0x05AD, 0x0619, 0x067B, 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, + 0x0731, 0x0677, 0x056A, 0x042C, 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, + 0xFF91, 0xFF91, 0xFF91, 0xFF82, 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, + 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, + 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, + 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, + 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, + 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x251B, 0x24CD, 0x2450, + 0x23AA, 0x22E0, 0x21F7, 0x20F5, 0x1FDE, 0x1EB7, 0x1D87, 0x1C51, 0x1B1B, + 0x19EA, 0x18C4, 0x17AD, 0x16AA, 0x15C2, 0x14F8, 0x1452, 0x13D5, 0x1386, + 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, 0x14EB, 0x1553, 0x15AB, 0x15E7, + 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, 0x1C02, 0x2111, 0x254E, 0x2715, + 0x0000, 0x0000, 0xFF75, 0xFDFB, 0xFBC6, 0xF90B, 0xF600, 0xF2DB, 0xEFD0, + 0xED15, 0xEAE0, 0xE966, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, + 0x0292, 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, + 0x0E2C, 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, + 0x045B, 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0xFFFF, 0xFF17, 0xFC9B, + 0xF8E5, 0xF44E, 0xEF31, 0xE9E6, 0xE4C9, 0xE032, 0xDC7C, 0xDA00, 0xD918, + 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, 0xF612, 0xFAF5, 0xFEE9, + 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, 0xFE27, 0xFCF8, 0xFBF9, + 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, 0xFABD, 0xFA7F, 0xFA4B, + 0xFA36, 0xBF3F, 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, + 0xC86E, 0xC9FB, 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, + 0xC6BD, 0xC4F7, 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, + 0xBFCA, 0xC012, 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, + 0xC11D, 0xBF09, 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x2505, + 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, + 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, 0xCB8B, 0xCD98, 0xD027, 0xD30C, + 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, 0xE26C, 0xE3E7, 0xE513, 0xE5F6, + 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, 0xE70A, 0xE5F8, 0xE36B, 0xE060, + 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1762, 0x1D80, 0x0A66, 0xF74B, 0xF74B, + 0xF74B, 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, + 0xF58C, 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, + 0x07D9, 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, + 0x1177, 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC43, + 0xB893, 0xD23C, 0xE988, 0xF37A, 0xF37A, 0xF37A, 0xEF6B, 0xE4B8, 0xD598, + 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, 0x99ED, 0x9F30, 0xA593, + 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, 0xC87D, 0xCA2A, 0xCB49, + 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC55, 0xCC05, + 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, + 0x0013, 0x0020, 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, + 0x019C, 0x01FB, 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, + 0x0842, 0x0C37, 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, + 0x2D6B, 0x2D6B, 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, 0xFFEE, 0xFFE6, + 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, 0xFF35, 0xFF0D, + 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, 0xFAB5, 0xF8FE, + 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, 0xF2E5, 0xF0C4, + 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4A, 0x1E0F, 0x1D66, 0x1C59, + 0x1AF4, 0x1942, 0x174E, 0x1523, 0x12CB, 0x1052, 0x0DC4, 0x0B2A, 0x0890, + 0x0601, 0x0388, 0x0131, 0xFF04, 0xFD10, 0xFB5E, 0xF9F9, 0xF8ED, 0xF843, + 0xF809, 0xF818, 0xF840, 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, + 0xF9C2, 0xF9C2, 0xF9C2, 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, + 0x0000, 0x0000, 0xFF92, 0xFEA2, 0xFDB3, 0xFD46, 0xFD46, 0xFD46, 0xFD6F, + 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, 0x095A, + 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, 0x1A9A, + 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, 0x1F95, + 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFDB7, 0xFA7C, + 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, + 0xFC59, 0xFE6E, 0x00B6, 0x0325, 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, + 0x1312, 0x15A0, 0x180E, 0x1A55, 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, + 0x22C4, 0x22FA, 0x22FA, 0x22FA, 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, + 0x12D1, 0xC9D7, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, + 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, + 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, + 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, + 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, + + }; diff --git a/assets/anims/anim_CD.inc.c.rej b/assets/anims/anim_CD.inc.c.rej new file mode 100644 index 00000000..d56f73c5 --- /dev/null +++ b/assets/anims/anim_CD.inc.c.rej @@ -0,0 +1,670 @@ +diff a/assets/anims/anim_CD.inc.c b/assets/anims/anim_CD.inc.c (rejected hunks) +@@ -1,9 +1,9 @@ + static const struct Animation anim_CD[] = { +- 1, +- 189, +- 0, +- 0, +- 0x3F, ++ 1, ++ 0, ++ 0, ++ 1, ++ 91, + ANIMINDEX_NUMPARTS(anim_CD_indices), + anim_CD_values, + anim_CD_indices, +@@ -12,352 +12,309 @@ static const struct Animation anim_CD[] = { + + + static const u16 anim_CD_indices[] = { +- 0x003F, 0x0001, 0x003F, 0x0040, 0x003F, 0x007F, 0x0001, 0x0000, 0x0001, 0x00BE, 0x0001, 0x0000, +- 0x003F, 0x0963, 0x003F, 0x09A2, 0x003F, 0x09E1, +- 0x003F, 0x08A6, 0x003F, 0x08E5, 0x003F, 0x0924, +- 0x003F, 0x07E9, 0x003F, 0x0828, 0x003F, 0x0867, +- 0x0001, 0x07E5, 0x0001, 0x07E6, 0x0001, 0x07E7, +- 0x003F, 0x01BB, 0x003F, 0x01FA, 0x003F, 0x0239, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x017C, +- 0x003F, 0x00BF, 0x003F, 0x00FE, 0x003F, 0x013D, +- 0x0001, 0x07A3, 0x0001, 0x07A4, 0x0001, 0x07A5, +- 0x003F, 0x0374, 0x003F, 0x03B3, 0x003F, 0x03F2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x0335, +- 0x003F, 0x0278, 0x003F, 0x02B7, 0x003F, 0x02F6, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x07A6, +- 0x003F, 0x06E6, 0x003F, 0x0725, 0x003F, 0x0764, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x06A7, +- 0x003F, 0x05EA, 0x003F, 0x0629, 0x003F, 0x0668, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x07E8, +- 0x003F, 0x052D, 0x003F, 0x056C, 0x003F, 0x05AB, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x04EE, +- 0x003F, 0x0431, 0x003F, 0x0470, 0x003F, 0x04AF, ++ 0x0001, 0x0000, 0x0029, 0x0001, 0x0001, 0x002A, 0x0029, 0x002B, 0x0033, ++ 0x0054, 0x0013, 0x0087, 0x002C, 0x009A, 0x0032, 0x00C6, 0x0001, 0x00F8, ++ 0x0035, 0x00F9, 0x0035, 0x012E, 0x0036, 0x0163, 0x0029, 0x0199, 0x0029, ++ 0x01C2, 0x0029, 0x01EB, 0x0001, 0x0214, 0x0001, 0x0215, 0x0001, 0x0216, ++ 0x0029, 0x0217, 0x0029, 0x0240, 0x0029, 0x0269, 0x0029, 0x0292, 0x0029, ++ 0x02BB, 0x0029, 0x02E4, 0x0029, 0x030D, 0x0029, 0x0336, 0x0029, 0x035F, ++ 0x001A, 0x0388, 0x001A, 0x03A2, 0x001A, 0x03BC, 0x0029, 0x03D6, 0x0029, ++ 0x03FF, 0x0029, 0x0428, 0x005A, 0x0451, 0x005A, 0x04AB, 0x005A, 0x0505, ++ 0x005C, 0x055F, 0x005C, 0x05BB, 0x005C, 0x0617, 0x0021, 0x0673, 0x0020, ++ 0x0694, 0x0021, 0x06B4, 0x0021, 0x06D5, 0x0021, 0x06F6, 0x0021, 0x0717, ++ 0x0029, 0x0738, 0x0029, 0x0761, 0x0029, 0x078A, 0x0029, 0x07B3, 0x0029, ++ 0x07DC, 0x0029, 0x0805, 0x0032, 0x082E, 0x0030, 0x0860, 0x0001, 0x0890, ++ 0x0029, 0x0891, 0x0029, 0x08BA, 0x0029, 0x08E3, 0x0029, 0x090C, 0x0029, ++ 0x0935, 0x0029, 0x095E, 0x0029, 0x0987, 0x0029, 0x09B0, 0x0029, 0x09D9, + }; + + static const s16 anim_CD_values[] = { +- 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0002, 0x0003, 0x0000, +- 0xFFFA, 0xFFF3, 0xFFE5, 0xFFCB, 0xFFAA, 0xFF8A, 0xFF75, 0xFF75, +- 0xFF79, 0xFF7E, 0xFF82, 0xFF8B, 0xFF9A, 0xFFB5, 0xFFF3, 0xFFFF, +- 0x0000, 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x00AA, 0x00A9, 0x00A6, 0x00A2, 0x009F, 0x009C, 0x009C, 0x00B0, +- 0x00C8, 0x00DB, 0x00E5, 0x00EB, 0x00EF, 0x00F2, 0x00F1, 0x00EF, +- 0x00EC, 0x00E7, 0x00DE, 0x00CB, 0x00B7, 0x00AE, 0x00A3, 0x0076, +- 0x007D, 0x0077, 0x0071, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, +- 0x0070, 0x0071, 0x0071, 0x0071, 0x0072, 0x0072, 0x0072, 0x0073, +- 0x0073, 0x0073, 0x0073, 0x0073, 0x0074, 0x0073, 0x0073, 0x0073, +- 0x0073, 0x0073, 0x0073, 0x0072, 0x0072, 0x0072, 0x0072, 0x0071, +- 0x0071, 0x0071, 0x0071, 0x0071, 0x0070, 0x0070, 0x0070, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0004, 0x000A, 0x0014, +- 0x001E, 0x0028, 0x002E, 0x002F, 0x0028, 0x0019, 0x0007, 0xFFF6, +- 0xFFE9, 0xFFE4, 0xFFEC, 0xFFFF, 0x0018, 0x0034, 0x005B, 0x0086, +- 0x00A9, 0x00BC, 0x00BF, 0x00C0, 0x00C2, 0x00C3, 0x00C3, 0x00C3, +- 0x00C3, 0x00C3, 0x00C2, 0x00C2, 0x00C1, 0x00C0, 0x00BF, 0x00BE, +- 0x00BD, 0x00BD, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, +- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, +- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x3FFF, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0012, 0x0044, 0x008D, 0x00E7, 0x0148, 0x01A9, 0x0202, 0x024C, +- 0x027E, 0x0290, 0x027B, 0x0237, 0x01BB, 0x0101, 0x0000, 0xFDFA, +- 0xFA8F, 0xF641, 0xF194, 0xED0C, 0xE92D, 0xE67A, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF983, +- 0xF996, 0xF9B3, 0xF9D6, 0xF9FC, 0xFA22, 0xFA45, 0xFA62, 0xFA76, +- 0xFA7D, 0xFA75, 0xFA5A, 0xFA2A, 0xF9E1, 0xF97C, 0xF8B1, 0xF75A, +- 0xF5AA, 0xF3D5, 0xF20F, 0xF08A, 0xEF7C, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8E, 0xED96, +- 0xEDA1, 0xEDAE, 0xEDBD, 0xEDCB, 0xEDD9, 0xEDE4, 0xEDEB, 0xEDEE, +- 0xEDEB, 0xEDE1, 0xEDCE, 0xEDB2, 0xED8C, 0xED3E, 0xECBA, 0xEC15, +- 0xEB61, 0xEAB3, 0xEA1E, 0xE9B6, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xCA4F, 0xCCDE, 0xD36C, 0xDC49, +- 0xE5C8, 0xEE3A, 0xF3F0, 0xF65C, 0xF6A9, 0xF5C1, 0xF48B, 0xF3F0, +- 0xF40B, 0xF441, 0xF469, 0xF45B, 0xF3F0, 0xF348, 0xF29F, 0xF1F3, +- 0xF140, 0xF084, 0xEFBC, 0xEEE6, 0xEDFF, 0xED04, 0xEBF3, 0xEAC9, +- 0xE983, 0xE81F, 0xE413, 0xDE24, 0xD857, 0xD1BA, 0xCAC6, 0xC3F8, +- 0xBDCA, 0xB8B8, 0xB53D, 0xB3D3, 0xB59B, 0xBA9B, 0xC1A7, 0xC994, +- 0xD134, 0xD75C, 0xDAE0, 0xDC7E, 0xDDC0, 0xDEB0, 0xDF55, 0xDFBA, +- 0xDFE7, 0xDFE6, 0xDFBE, 0xDF7A, 0xDF21, 0xDEBE, 0xDE58, 0xDDFA, +- 0xDDAB, 0xDD75, 0xDD62, 0xFB1D, 0xFB8D, 0xFC39, 0xFC27, 0xFA60, +- 0xF5E9, 0xEDCC, 0xDEE3, 0xC966, 0xB168, 0x9AFB, 0x8A34, 0x7F67, +- 0x77E4, 0x7322, 0x709A, 0x6FC7, 0x703C, 0x71C8, 0x743F, 0x7774, +- 0x7B3D, 0x7F6C, 0x83D9, 0x8851, 0x8DBB, 0x948E, 0x9BFE, 0xA341, +- 0xA98B, 0xA98B, 0xB1A9, 0xB96E, 0xC239, 0xCB67, 0xD457, 0xDC66, +- 0xE2F1, 0xE755, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xD2DC, 0xD582, 0xDBEE, 0xE3D8, 0xEAFB, 0xEF0E, +- 0xEDC9, 0xE38C, 0xD18F, 0xBCD5, 0xAA60, 0x9F31, 0x9D39, 0xA120, +- 0xA800, 0xAEEF, 0xB306, 0xB4A0, 0xB5FC, 0xB70A, 0xB7B6, 0xB7F1, +- 0xB7A7, 0xB6C7, 0xB53F, 0xB1FB, 0xACA3, 0xA642, 0x9FE4, 0x9A92, +- 0x9A92, 0xA159, 0xA7D5, 0xAF2D, 0xB6D8, 0xBE4E, 0xC508, 0xCA7F, +- 0xCE29, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xD4B4, 0xD4F4, 0xD5C2, 0xD734, 0xD95D, 0xDC52, 0xE027, +- 0xE5A2, 0xECDD, 0xF4F1, 0xFCF5, 0x0400, 0x0A9B, 0x1160, 0x1785, +- 0x1C3F, 0x1EC2, 0x1F5D, 0x1F01, 0x1DDE, 0x1C23, 0x19FD, 0x179C, +- 0x152D, 0x12E0, 0x1037, 0x0CD9, 0x092D, 0x0596, 0x027B, 0x027B, +- 0xFD63, 0xF883, 0xF2FD, 0xED39, 0xE79C, 0xE28D, 0xDE72, 0xDBB0, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xFFF7, 0xFFDE, 0xFFB8, 0xFF8B, 0xFF5A, 0xFF28, 0xFEFB, +- 0xFED6, 0xFEBC, 0xFEB3, 0xFEBD, 0xFEE0, 0xFF1F, 0xFF7E, 0x0000, +- 0x009A, 0x0194, 0x036C, 0x06A4, 0x0BBB, 0x1745, 0x2715, 0x318D, +- 0x3284, 0x2F10, 0x2B6E, 0x2BDD, 0x33E4, 0x4074, 0x4BE8, 0x509A, +- 0x4F81, 0x4D72, 0x4A95, 0x4710, 0x430B, 0x3EAD, 0x3A1E, 0x3585, +- 0x3109, 0x2CD1, 0x2906, 0x25CE, 0x2351, 0x21B6, 0x2124, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0xFFF4, 0xFFD2, 0xFFA0, 0xFF62, 0xFF20, 0xFEDE, 0xFEA0, 0xFE6E, +- 0xFE4C, 0xFE3F, 0xFE4E, 0xFE7D, 0xFED1, 0xFF50, 0x0000, 0x011D, +- 0x0307, 0x05F6, 0x0A24, 0x0FC9, 0x1AE9, 0x29B1, 0x339A, 0x3595, +- 0x33F9, 0x3153, 0x3034, 0x318C, 0x33E8, 0x363F, 0x3789, 0x37E9, +- 0x3833, 0x3868, 0x388D, 0x38A2, 0x38AA, 0x38A8, 0x389E, 0x388D, +- 0x3879, 0x3863, 0x384E, 0x383D, 0x3830, 0x382C, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF544, +- 0xF536, 0xF520, 0xF506, 0xF4EA, 0xF4CE, 0xF4B4, 0xF49F, 0xF491, +- 0xF48B, 0xF491, 0xF4A5, 0xF4C9, 0xF4FF, 0xF549, 0xF5F7, 0xF730, +- 0xF8BE, 0xFA68, 0xFBF8, 0xFDA4, 0xFF6D, 0x00C8, 0x0046, 0xFEA0, +- 0xFE8C, 0x02C3, 0x0F97, 0x2263, 0x336B, 0x3AF6, 0x3A7F, 0x38C8, +- 0x3600, 0x3258, 0x2E02, 0x292E, 0x240E, 0x1ED0, 0x19A8, 0x14C5, +- 0x1057, 0x0C91, 0x09A3, 0x07BC, 0x0710, 0xC7DD, 0xC75C, 0xC650, +- 0xC571, 0xC572, 0xC70A, 0xCAEE, 0xD3CD, 0xE173, 0xF044, 0xFCA3, +- 0xFCA3, 0xFCB5, 0xFCE8, 0xFD34, 0xFD92, 0xFDFC, 0xFE6A, 0xFED6, +- 0xFF39, 0xFF8C, 0xFFC8, 0xFFE6, 0xFFDF, 0xFFAC, 0xFF47, 0xFEA8, +- 0xFDC9, 0xFCA3, 0xF777, 0xED63, 0xE2AB, 0xD70D, 0xC952, 0xBC4D, +- 0xB2CE, 0xAFAA, 0xBED4, 0xDA68, 0xEA6F, 0xEC81, 0xEE34, 0xEF90, +- 0xF09B, 0xF15B, 0xF1D8, 0xF217, 0xF220, 0xF1F9, 0xF1A8, 0xF134, +- 0xF0A3, 0xEFFD, 0xEF48, 0xEE89, 0xEDC9, 0xED0D, 0xEC5B, 0xEBBC, +- 0xEB34, 0xEACB, 0xEA87, 0xEA6F, 0x054B, 0x028E, 0xFB6C, 0xF184, +- 0xE676, 0xDBE2, 0xD368, 0xCD48, 0xC861, 0xC440, 0xC072, 0xC072, +- 0xC29F, 0xC512, 0xC7B7, 0xCA78, 0xCD3F, 0xCFF9, 0xD291, 0xD4F0, +- 0xD703, 0xD8B4, 0xD9EF, 0xDA9D, 0xDA28, 0xD849, 0xD566, 0xD1E7, +- 0xCE30, 0xCAAA, 0xC7BA, 0xC688, 0xC6A9, 0xC6DE, 0xC76E, 0xC8A1, +- 0xCA5F, 0xCC58, 0xCE83, 0xD0D4, 0xD33F, 0xD5B9, 0xD837, 0xDAAD, +- 0xDD12, 0xDF58, 0xE175, 0xE35E, 0xE507, 0xE665, 0xE76E, 0xE814, +- 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, +- 0xE84E, 0xE84E, 0xE84E, 0x2BD6, 0x288C, 0x2079, 0x164D, 0x0CBC, +- 0x0675, 0x062A, 0x10EE, 0x256A, 0x3CAF, 0x4FCD, 0x4FCD, 0x4EDF, +- 0x4DC5, 0x4C8D, 0x4B44, 0x49F8, 0x48B7, 0x478E, 0x468C, 0x45BD, +- 0x4530, 0x44F3, 0x4512, 0x45EB, 0x47AB, 0x4A16, 0x4CF3, 0x5007, +- 0x5316, 0x55E7, 0x59FE, 0x5D4C, 0x60D7, 0x636C, 0x63DA, 0x6299, +- 0x60FD, 0x5F14, 0x5CEB, 0x5A91, 0x5814, 0x5584, 0x52ED, 0x5060, +- 0x4DE9, 0x4B98, 0x497A, 0x479F, 0x4614, 0x44E9, 0x442A, 0x43E8, +- 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, +- 0x43E8, 0x43E8, 0xCCF6, 0xC92A, 0xBF55, 0xB1CA, 0xA2DD, 0x94E2, +- 0x8A2E, 0x8399, 0x7F91, 0x7CCF, 0x7A07, 0x7A07, 0x7C40, 0x7EC0, +- 0x8175, 0x8444, 0x8719, 0x89E1, 0x8C86, 0x8EF2, 0x9111, 0x92CD, +- 0x9411, 0x94C8, 0x944F, 0x925D, 0x8F62, 0x8BCD, 0x880F, 0x8496, +- 0x81D3, 0x82AE, 0x8523, 0x87DF, 0x8A92, 0x8CEC, 0x8F18, 0x916E, +- 0x93E4, 0x9672, 0x990C, 0x9BA9, 0x9E40, 0xA0C5, 0xA331, 0xA579, +- 0xA792, 0xA974, 0xAB14, 0xAC69, 0xAD68, 0xAE09, 0xAE41, 0xAE41, +- 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, +- 0xAE41, 0x0000, 0x0024, 0x0082, 0x00FE, 0x0180, 0x01EE, 0x022D, +- 0x0230, 0x0208, 0x01C9, 0x018B, 0x0164, 0x0155, 0x0150, 0x0151, +- 0x0159, 0x0164, 0x0178, 0x0196, 0x01B7, 0x01D4, 0x01E5, 0x01F8, +- 0x0229, 0x022C, 0x022C, 0x022B, 0x0228, 0x0224, 0x0221, 0x021E, +- 0x021D, 0x021C, 0x021C, 0x021B, 0x021B, 0x021A, 0x021A, 0x021A, +- 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, +- 0x021A, 0x021A, 0x021A, 0x021B, 0x021B, 0x021B, 0x021B, 0x021C, +- 0x021C, 0x021C, 0x021C, 0x021C, 0x021D, 0x021D, 0x021D, 0x021D, +- 0xFF30, 0xFF3E, 0xFF62, 0xFF8E, 0xFFB7, 0xFFD0, 0xFFCD, 0xFF9F, +- 0xFF4B, 0xFEE8, 0xFE8D, 0xFE50, 0xFE34, 0xFE2A, 0xFE2E, 0xFE3C, +- 0xFE50, 0xFE67, 0xFE88, 0xFEBF, 0xFF16, 0x0003, 0x00D4, 0xFFAC, +- 0xFF8B, 0xFF77, 0xFF6D, 0xFF69, 0xFF6B, 0xFF6E, 0xFF71, 0xFF70, +- 0xFF6D, 0xFF6A, 0xFF68, 0xFF67, 0xFF66, 0xFF65, 0xFF65, 0xFF64, +- 0xFF64, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF66, +- 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, +- 0xFF6D, 0xFF6E, 0xFF6E, 0xFF6F, 0xFF6F, 0xFF70, 0xFF70, 0xC9D8, +- 0xC8B6, 0xC5F4, 0xC289, 0xBF6E, 0xBD98, 0xBE00, 0xC203, 0xC91B, +- 0xD169, 0xD90E, 0xDE29, 0xE085, 0xE161, 0xE10F, 0xDFE1, 0xDE29, +- 0xDC17, 0xD91C, 0xD46E, 0xCD46, 0xBAA7, 0xAA38, 0xC071, 0xC2E0, +- 0xC462, 0xC528, 0xC565, 0xC54A, 0xC50C, 0xC4DB, 0xC4EA, 0xC525, +- 0xC554, 0xC579, 0xC595, 0xC5A9, 0xC5B7, 0xC5BF, 0xC5C2, 0xC5C3, +- 0xC5C1, 0xC5BE, 0xC5BC, 0xC5BB, 0xC5B9, 0xC5B4, 0xC5AB, 0xC5A1, +- 0xC594, 0xC585, 0xC575, 0xC564, 0xC553, 0xC541, 0xC530, 0xC520, +- 0xC512, 0xC505, 0xC4FA, 0xC4F2, 0xC4EC, 0xC4EA, 0x1E4A, 0x1FA0, +- 0x22FA, 0x275B, 0x2BC3, 0x2F36, 0x30B6, 0x2F67, 0x2BE5, 0x276B, +- 0x232F, 0x206A, 0x1EA4, 0x1D0C, 0x1C58, 0x1D3B, 0x206A, 0x2810, +- 0x33AB, 0x3FED, 0x4984, 0x4EE3, 0x517C, 0x5287, 0x5300, 0x531F, +- 0x52FA, 0x52A3, 0x522E, 0x51B0, 0x513C, 0x50E6, 0x509F, 0x504D, +- 0x4FF4, 0x4F96, 0x4F36, 0x4ED6, 0x4E7A, 0x4E24, 0x4DD8, 0x4D98, +- 0x4D66, 0x4D46, 0x4D3B, 0x4D43, 0x4D5B, 0x4D81, 0x4DB1, 0x4DEC, +- 0x4E2E, 0x4E76, 0x4EC2, 0x4F10, 0x4F5E, 0x4FAA, 0x4FF2, 0x5035, +- 0x506F, 0x50A0, 0x50C6, 0x50DD, 0x50E6, 0x1B09, 0x1AA1, 0x19A0, +- 0x1858, 0x171C, 0x163E, 0x1610, 0x16F1, 0x18AF, 0x1ACA, 0x1CBF, +- 0x1E0B, 0x1ED7, 0x1F7C, 0x1FBA, 0x1F53, 0x1E0B, 0x1ABB, 0x15AA, +- 0x10B9, 0x0DC9, 0x0EE7, 0x1278, 0x14E6, 0x156A, 0x15AD, 0x15BC, +- 0x15A8, 0x157E, 0x154F, 0x152A, 0x151C, 0x1520, 0x1524, 0x1527, +- 0x152A, 0x152D, 0x152F, 0x1531, 0x1533, 0x1535, 0x1536, 0x1537, +- 0x1538, 0x1538, 0x1537, 0x1537, 0x1536, 0x1534, 0x1533, 0x1531, +- 0x152F, 0x152C, 0x152A, 0x1528, 0x1526, 0x1523, 0x1522, 0x1520, +- 0x151E, 0x151D, 0x151D, 0x151C, 0x1144, 0x11C7, 0x1302, 0x1483, +- 0x15D7, 0x168B, 0x162D, 0x140C, 0x1066, 0x0C29, 0x0846, 0x05AB, +- 0x0454, 0x03A1, 0x0399, 0x0445, 0x05AB, 0x0930, 0x0E9D, 0x138F, +- 0x15A4, 0x118C, 0x09C6, 0x04AC, 0x035E, 0x02A9, 0x026C, 0x0284, +- 0x02CD, 0x0325, 0x0369, 0x0378, 0x035F, 0x0347, 0x0330, 0x031A, +- 0x0305, 0x02F1, 0x02E0, 0x02D0, 0x02C2, 0x02B7, 0x02AF, 0x02AA, +- 0x02A9, 0x02AA, 0x02B0, 0x02B8, 0x02C3, 0x02D0, 0x02DE, 0x02EE, +- 0x02FF, 0x0310, 0x0321, 0x0332, 0x0342, 0x0351, 0x035E, 0x0368, +- 0x0371, 0x0376, 0x0378, 0xAC44, 0xAB62, 0xA93B, 0xA68A, 0xA40C, +- 0xA27D, 0xA299, 0xA55E, 0xAA62, 0xB04C, 0xB5BF, 0xB962, 0xBB64, +- 0xBCAE, 0xBCF5, 0xBBF4, 0xB962, 0xB28C, 0xA804, 0x9E69, 0x9A5A, +- 0xA245, 0xB14F, 0xBB2D, 0xBDAE, 0xBF05, 0xBF75, 0xBF41, 0xBEAC, +- 0xBDFB, 0xBD70, 0xBD50, 0xBD7B, 0xBDA5, 0xBDCE, 0xBDF5, 0xBE1A, +- 0xBE3C, 0xBE5B, 0xBE77, 0xBE8E, 0xBEA1, 0xBEAF, 0xBEB8, 0xBEBB, +- 0xBEB8, 0xBEAF, 0xBEA0, 0xBE8D, 0xBE77, 0xBE5D, 0xBE41, 0xBE24, +- 0xBE05, 0xBDE7, 0xBDCA, 0xBDAE, 0xBD94, 0xBD7E, 0xBD6B, 0xBD5C, +- 0xBD53, 0xBD50, 0x0000, 0xFE3D, 0xF9D4, 0xF419, 0xEE5D, 0xE9F4, +- 0xE831, 0xEDB4, 0xF881, 0x0000, 0x01D9, 0x01F8, 0x012C, 0x003F, +- 0x0000, 0x007B, 0x012B, 0x01F7, 0x02C9, 0x038D, 0x0453, 0x0524, +- 0x05DB, 0x0655, 0x0665, 0x061E, 0x05B8, 0x0525, 0x0475, 0x0410, +- 0x03F8, 0x03E9, 0x03E0, 0x03DE, 0x03E0, 0x03E6, 0x03EE, 0x03F7, +- 0x0400, 0x0408, 0x040E, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0000, 0xFF71, 0xFE0A, 0xFC38, 0xFA65, 0xF8FF, 0xF86F, +- 0xFA30, 0xFD9F, 0x0000, 0x009A, 0x00AB, 0x0070, 0x0023, 0x0000, +- 0x0007, 0x0012, 0x001E, 0x002B, 0x0037, 0x0043, 0x004F, 0x005A, +- 0x0060, 0x005D, 0x0053, 0x004B, 0x0049, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0xBF40, 0xBEEC, 0xBE45, 0xBDCE, 0xBE0C, 0xBF7F, 0xC2AB, 0xCD35, +- 0xDC97, 0xE517, 0xE3A9, 0xDE6C, 0xD75F, 0xD082, 0xCBD4, 0xC99F, +- 0xC88C, 0xC830, 0xC81C, 0xC7E4, 0xC7A7, 0xC7B0, 0xC7D6, 0xC7F1, +- 0xC7F2, 0xC7F6, 0xC811, 0xC85F, 0xC8C3, 0xC8FE, 0xC90B, 0xC914, +- 0xC918, 0xC91A, 0xC918, 0xC915, 0xC911, 0xC90C, 0xC906, 0xC902, +- 0xC8FF, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, +- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, +- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0x2537, +- 0x24DD, 0x2414, 0x2346, 0x22DA, 0x233A, 0x24CE, 0x2C10, 0x3680, +- 0x3A0D, 0x32D4, 0x2667, 0x18DC, 0x0E4A, 0x0ACA, 0x114F, 0x1F1F, +- 0x2FCC, 0x3EE7, 0x4801, 0x499C, 0x46AC, 0x4170, 0x3C25, 0x3909, +- 0x3B7C, 0x3F1F, 0x3F83, 0x3F0B, 0x3E88, 0x3E40, 0x3DEF, 0x3D97, +- 0x3D3B, 0x3CDE, 0x3C84, 0x3C30, 0x3BE3, 0x3BA3, 0x3B71, 0x3B51, +- 0x3B45, 0x3B5D, 0x3B9C, 0x3BFA, 0x3C6B, 0x3CE7, 0x3D62, 0x3DD4, +- 0x3E31, 0x3E70, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, +- 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0xD64A, 0xD69C, +- 0xD798, 0xD946, 0xDBAF, 0xDED9, 0xE2CF, 0xE86C, 0xEFD6, 0xF803, +- 0xFFE8, 0x067A, 0x0AB1, 0x0C88, 0x0CEC, 0x0C3A, 0x0ACC, 0x0900, +- 0x0730, 0x05B9, 0x040E, 0x01C9, 0xFF83, 0xFDD4, 0xFD34, 0xFD47, +- 0xFD67, 0xFD58, 0xFD4E, 0xFD49, 0xFD46, 0xFD46, 0xFD47, 0xFD4B, +- 0xFD51, 0xFD57, 0xFD5D, 0xFD63, 0xFD68, 0xFD6B, 0xFD6D, 0xFD6E, +- 0xFD6E, 0xFD6E, 0xFD6E, 0xFD6D, 0xFD6C, 0xFD6C, 0xFD6B, 0xFD6B, +- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, +- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xEC41, 0xEC2C, 0xEBE9, +- 0xEB76, 0xEACD, 0xE9E9, 0xE8C8, 0xE6AD, 0xE378, 0xE009, 0xDD41, +- 0xDC00, 0xDD28, 0xE11C, 0xE72D, 0xEE9C, 0xF6AD, 0xFEA1, 0x05BA, +- 0x0B3C, 0x0E2E, 0x0EE0, 0x0E80, 0x0E3D, 0x0DEB, 0x0D18, 0x0C86, +- 0x0C6D, 0x0C77, 0x0C92, 0x0CAE, 0x0CB9, 0x0CB2, 0x0CA6, 0x0C97, +- 0x0C87, 0x0C76, 0x0C66, 0x0C59, 0x0C51, 0x0C4C, 0x0C49, 0x0C49, +- 0x0C49, 0x0C4B, 0x0C4D, 0x0C4F, 0x0C50, 0x0C51, 0x0C51, 0x0C51, +- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, +- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0xB59E, 0xB71E, 0xBAB7, 0xBF0E, +- 0xC2C8, 0xC489, 0xC2F7, 0xBCA3, 0xB259, 0xA616, 0x99D9, 0x8F9F, +- 0x8967, 0x878F, 0x887D, 0x8B38, 0x8EC9, 0x9237, 0x9489, 0x94C8, +- 0x9135, 0x8A64, 0x82DC, 0x7D21, 0x7A6C, 0x7970, 0x78FA, 0x788A, +- 0x7859, 0x7851, 0x785B, 0x7860, 0x785E, 0x7864, 0x786F, 0x787E, +- 0x788D, 0x789C, 0x78A9, 0x78B1, 0x78B4, 0x78B6, 0x78B7, 0x78B6, +- 0x78B5, 0x78B4, 0x78B2, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, +- 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, +- 0x78B1, 0x78B1, 0x78B1, 0x8001, 0x8001, 0x4171, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF60, 0xBF61, 0xBF61, 0xBF61, 0xBF5F, 0xBF5A, 0xBF53, 0xBF4B, +- 0xBF43, 0xBF3D, 0xBF36, 0xBF2F, 0xBF29, 0xBF22, 0xBF1E, 0xBF1C, +- 0xBF1E, 0xBF23, 0xBF34, 0xBF5F, 0xBFA2, 0xBFF0, 0xC047, 0xC0A2, +- 0xC0FF, 0xC15A, 0xC1B0, 0xC1FE, 0xC241, 0xC274, 0xC296, 0xC2A1, +- 0xC28A, 0xC24B, 0xC1ED, 0xC17C, 0xC100, 0xC085, 0xC013, 0xBFB6, +- 0xBF76, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x8001, 0x8001, 0x4171, +- 0xBF5F, 0x0000, 0xFE18, 0xF962, 0xF363, 0xED9E, 0xE998, 0xE8D4, +- 0xEDB2, 0xF783, 0x0334, 0x0DB7, 0x154D, 0x13F5, 0x11D8, 0x0F19, +- 0x0BDB, 0x0843, 0x0384, 0xFD86, 0xF77C, 0xF29B, 0xF017, 0xF7A3, +- 0x01BC, 0x05F7, 0x0A32, 0x0E41, 0x11F6, 0x1525, 0x17A1, 0x193C, +- 0x19C9, 0x18E0, 0x1660, 0x1286, 0x0D90, 0x07BD, 0x014A, 0xF375, +- 0xE461, 0xDE7B, 0xDCAD, 0xDBD7, 0xDB3C, 0xDAD6, 0xDA9B, 0xDA83, +- 0xDA86, 0xDA9D, 0xDABF, 0xDAF3, 0xDB43, 0xDBAA, 0xDC21, 0xDCA4, +- 0xDD2C, 0xDDB4, 0xDE37, 0xDEAE, 0xDF14, 0xDF65, 0xDF99, 0xDFAB, +- 0x0000, 0x000D, 0x002B, 0x004D, 0x0065, 0x0066, 0x0041, 0xFFDA, +- 0xFF31, 0xFE6B, 0xFDAD, 0xFCE0, 0xFCBE, 0xFCA3, 0xFC9A, 0xFCAB, +- 0xFCE0, 0xFD2B, 0xFD85, 0xFE04, 0xFEBE, 0xFFC8, 0x02C3, 0x056E, +- 0x05E4, 0x0621, 0x0632, 0x0623, 0x0602, 0x05DA, 0x05B9, 0x05AD, +- 0x05AB, 0x05A6, 0x059E, 0x0594, 0x0589, 0x057F, 0x0571, 0x055B, +- 0x056A, 0x0513, 0x040C, 0x02D2, 0x017C, 0x0021, 0xFEDB, 0xFDBF, +- 0xFCE6, 0xFC67, 0xFC34, 0xFC28, 0xFC3F, 0xFC71, 0xFCB8, 0xFD0F, +- 0xFD6F, 0xFDD1, 0xFE2F, 0xFE83, 0xFEC7, 0xFEF5, 0xFF05, 0xFC62, +- 0xFB4A, 0xF885, 0xF4D6, 0xF100, 0xEDC6, 0xEBEB, 0xEC2E, 0xEE26, +- 0xF0D3, 0xF338, 0xF588, 0xF5E9, 0xF635, 0xF64F, 0xF61F, 0xF588, +- 0xF474, 0xF2F4, 0xF12B, 0xEF3D, 0xED4A, 0xEA46, 0xE829, 0xE830, +- 0xE872, 0xE8E5, 0xE97A, 0xEA26, 0xEADD, 0xEB92, 0xEC39, 0xECDE, +- 0xED92, 0xEE51, 0xEF18, 0xEFE2, 0xF0AC, 0xF191, 0xF279, 0xF370, +- 0xF3EA, 0xF3AA, 0xF348, 0xF2CE, 0xF24B, 0xF1CB, 0xF15A, 0xF107, +- 0xF0DD, 0xF0D6, 0xF0E0, 0xF0F9, 0xF11D, 0xF14A, 0xF17D, 0xF1B2, +- 0xF1E7, 0xF219, 0xF245, 0xF268, 0xF27F, 0xF288, 0x0000, 0x0371, +- 0x0BF4, 0x16CE, 0x2145, 0x289E, 0x2A1F, 0x2143, 0x0F5E, 0xFA82, +- 0xE8BA, 0xE305, 0xDF18, 0xDAD6, 0xD701, 0xD45C, 0xD3A9, 0xD72A, +- 0xDE28, 0xE4EB, 0xE7BB, 0xE6BF, 0xE4BF, 0xE1FA, 0xDEAB, 0xDB11, +- 0xD768, 0xD3EE, 0xD0E1, 0xCE7E, 0xCF29, 0xD1FB, 0xD36E, 0xD40A, +- 0xD535, 0xD856, 0xDED2, 0xF03F, 0x0867, 0x1707, 0x1AAC, 0x1CE6, +- 0x1DF4, 0x1E11, 0x1D7B, 0x1C6F, 0x1B2B, 0x19EC, 0x18EE, 0x186F, +- 0x1833, 0x17DA, 0x176A, 0x16E9, 0x165D, 0x15CB, 0x153A, 0x14AF, +- 0x1430, 0x13C3, 0x136E, 0x1336, 0x1323, 0x0000, 0xFFAD, 0xFEDC, +- 0xFDCC, 0xFCBD, 0xFBED, 0xFB9B, 0xFC23, 0xFD65, 0xFEDF, 0x0011, +- 0x0011, 0x01B3, 0x03AC, 0x05A4, 0x0741, 0x082D, 0x07BF, 0x063D, +- 0x04B5, 0x0432, 0x04AD, 0x0564, 0x0649, 0x0751, 0x086E, 0x0993, +- 0x0AB4, 0x0BC5, 0x0CB9, 0x0D85, 0x0DD7, 0x0E2B, 0x0EDB, 0x0F35, +- 0x0E89, 0x0C26, 0x043A, 0xF8D2, 0xF206, 0xF0A6, 0xF000, 0xEFF3, +- 0xF05C, 0xF118, 0xF204, 0xF300, 0xF3E7, 0xF499, 0xF4F1, 0xF50D, +- 0xF51F, 0xF52A, 0xF52F, 0xF52E, 0xF529, 0xF521, 0xF517, 0xF50D, +- 0xF502, 0xF4F9, 0xF4F3, 0xF4F1, 0x0884, 0x09A5, 0x0C7A, 0x1032, +- 0x13F8, 0x16F9, 0x1861, 0x1715, 0x138A, 0x0F4A, 0x0BDD, 0x0BDD, +- 0x08DA, 0x052E, 0x018B, 0xFEA4, 0xFD2A, 0xFE26, 0x0124, 0x04A2, +- 0x071A, 0x087A, 0x09B6, 0x0AD3, 0x0BD5, 0x0CC3, 0x0DA1, 0x0E74, +- 0x0F42, 0x1010, 0x1054, 0x1006, 0x0FF7, 0x1026, 0x1023, 0x0F7E, +- 0x0DC6, 0x08AE, 0x016B, 0xFCD2, 0xFB5D, 0xFA47, 0xF981, 0xF8FD, +- 0xF8AD, 0xF883, 0xF86F, 0xF864, 0xF853, 0xF82F, 0xF803, 0xF7E5, +- 0xF7D3, 0xF7CC, 0xF7CD, 0xF7D5, 0xF7E2, 0xF7F2, 0xF803, 0xF813, +- 0xF821, 0xF82B, 0xF82F, 0x0000, 0x0010, 0x0034, 0x0059, 0x0069, +- 0x0052, 0x0000, 0x003B, 0x00B3, 0xFFA8, 0xFB5A, 0xDF68, 0xC869, +- 0xB1CD, 0x9C4A, 0x8898, 0x766D, 0x652C, 0x54FB, 0x4603, 0x386D, +- 0x2C73, 0x2261, 0x1A7C, 0x150C, 0x1198, 0x0F4A, 0x0DD9, 0x0CFD, +- 0x0C70, 0x0BE8, 0x0B1F, 0x0AA2, 0x0AC9, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0033, 0x0099, +- 0x00E5, 0x00CC, 0x0000, 0xFDC3, 0xFA56, 0xF6F0, 0xF4C8, 0xF4F5, +- 0xF69F, 0xF80F, 0xF8CE, 0xF984, 0xFA33, 0xFAD9, 0xFB78, 0xFC0E, +- 0xFC9B, 0xFD1F, 0xFD76, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0x40A1, 0x4107, 0x4202, 0x433D, 0x4462, 0x451E, 0x451C, +- 0x43B9, 0x411E, 0x3E2B, 0x3BBD, 0x3BBD, 0x3BB4, 0x3BA1, 0x3B93, +- 0x3B98, 0x3BBD, 0x3BBF, 0x3BB3, 0x3C32, 0x3DD2, 0x4257, 0x4885, +- 0x4C78, 0x4DB9, 0x4E7C, 0x4EDC, 0x4EF5, 0x4EE3, 0x4EC1, 0x4EAC, +- 0x4EBE, 0x4EC5, 0x4E9F, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, ++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AD, 0x00AF, 0x00B2, 0x00B4, ++ 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, 0x00C7, 0x00C9, 0x00CB, 0x00CD, ++ 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, 0x00C0, 0x00BA, 0x00B5, 0x00B1, ++ 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, ++ 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, 0x00A2, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, ++ 0x3218, 0x30FC, 0x3995, 0x51D5, 0x7769, 0xA7FE, 0xE142, 0x20E3, 0x648D, ++ 0xA9EF, 0xEEB4, 0x308D, 0x6D25, 0xA2A4, 0xD11D, 0xF91E, 0x1B35, 0x37EC, ++ 0x4FD4, 0x6378, 0x7366, 0x802B, 0x8A4A, 0x921A, 0x97E6, 0x9BFA, 0x9EA2, ++ 0xA02A, 0xA0DD, 0xA108, 0x9857, 0x839B, 0x6ADD, 0x5622, 0x4D70, 0x4D77, ++ 0x4D8A, 0x4DA5, 0x4DC6, 0x4DEA, 0x4E0E, 0x4E30, 0x4E4B, 0x4E5D, 0x4E64, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFC7C, ++ 0xF4C4, 0xED0B, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, ++ 0xF384, 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, ++ 0x096B, 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, ++ 0x0DDE, 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, ++ 0x0223, 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, ++ 0x0D87, 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFF, 0x01FD, 0x065D, ++ 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, 0x0901, 0x06BD, 0x045A, ++ 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, 0xFEA1, 0xFED1, 0xFF0A, ++ 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, 0x00D8, 0x0108, 0x012D, ++ 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, 0x00E7, 0x0091, 0x0049, ++ 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, 0x0076, 0x007A, 0x007D, ++ 0x007F, 0x0081, 0x0081, 0x0082, 0x0884, 0x0884, 0x0C6F, 0x150F, 0x1DAE, ++ 0x2199, 0x2199, 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, ++ 0x0564, 0x026D, 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, ++ 0x029D, 0x02E9, 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, ++ 0x0482, 0x0482, 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, ++ 0xFEA1, 0xFEA8, 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, ++ 0xFDD2, 0xFDB9, 0xFDA9, 0xFDA2, 0x0000, 0x0000, 0xFEA3, 0xFBA6, 0xF8A9, ++ 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, 0x1216, 0x1955, ++ 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, 0x1054, 0x0862, ++ 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, 0xC514, 0xC174, ++ 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, 0xF13A, 0xF6EC, ++ 0xFFFF, 0xFFFF, 0x002B, 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, ++ 0x00F5, 0x00CE, 0x0099, 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, ++ 0xFE2B, 0xFDC7, 0xFD6C, 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, ++ 0x0051, 0x0270, 0x0490, 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, ++ 0x069F, 0x02CE, 0xFE3F, 0xFA6E, 0xF8D4, 0xFC61, 0xFC61, 0xFD74, 0xFFD2, ++ 0x0231, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, 0x0185, ++ 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, 0xFF15, ++ 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, 0xFFB0, ++ 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, 0xFE47, ++ 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFB1C, 0x0B49, 0x2EDD, 0xD270, ++ 0xE29C, 0xE29C, 0xE29C, 0xE199, 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, ++ 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, ++ 0x0450, 0x0004, 0xFC31, 0xF8DB, 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, ++ 0xEF74, 0xEF74, 0xEF74, 0xEF74, 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, ++ 0xD2DB, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, ++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, ++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, ++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, ++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xD4B3, 0xD4B3, 0xC63D, 0xA66B, ++ 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, 0xFADF, 0xFE0F, 0x0243, 0x0751, ++ 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, ++ 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, 0xE523, 0xE8D3, 0xEBCF, 0xEE06, ++ 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEA00, 0xDBFF, 0xCB47, 0xBD46, ++ 0xB766, 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, ++ 0xF44D, 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, ++ 0xF4CE, 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, ++ 0xF58A, 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, ++ 0xF5C1, 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0xFE75, ++ 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, 0xF663, 0xF6AF, 0xF714, ++ 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, 0xFBC6, 0xFC97, 0xFD6A, ++ 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, 0x0272, 0x02EE, 0x0354, ++ 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, 0x0905, 0x154B, 0x23F2, ++ 0x3038, 0x4AA2, 0xCA4E, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, ++ 0xE97C, 0xE992, 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, ++ 0xEF07, 0xF016, 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, ++ 0xF8A8, 0xF986, 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, ++ 0xFC3F, 0xFC3F, 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xFFFF, 0xFFFF, ++ 0xFEF0, 0xFC9B, 0xFA46, 0xF937, 0xF937, 0xF937, 0xF920, 0xF8DE, 0xF875, ++ 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, 0xF166, 0xF043, ++ 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, 0xE827, 0xE77A, ++ 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, 0xF137, 0x0B8C, ++ 0x2AFA, 0x454E, 0xD059, 0xF97B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, ++ 0xF50D, 0xF50D, 0xF513, 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, ++ 0xF62A, 0xF66A, 0xF6AC, 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, ++ 0xF88C, 0xF8C7, 0xF8FE, 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, ++ 0xF9A9, 0xF9A9, 0xF9A9, 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xED8B, ++ 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, 0xED0B, ++ 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, 0xF646, ++ 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, 0x01B5, ++ 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, 0xFA5A, ++ 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0xFF5A, 0xFD96, 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, ++ 0xEB34, 0xE970, 0xE8CA, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, ++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, 0xD02E, 0xD346, 0xD5D2, 0xD78C, ++ 0xD830, 0x054B, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, ++ 0x1FDB, 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, ++ 0xD7A7, 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, ++ 0x428B, 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, ++ 0x18CE, 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2BD6, 0x2BD6, 0x26DD, ++ 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, 0x0E26, 0x1092, 0x13B1, ++ 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, 0x4FF0, 0x4CD2, 0x4A66, ++ 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, 0x53CD, 0x5249, 0x50C6, ++ 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, 0x4D5C, 0x4B71, 0x4928, ++ 0x38C3, 0x3990, 0xCCF5, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, ++ 0xEB39, 0xE9F9, 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, ++ 0xABA7, 0xA28E, 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, ++ 0x1C7F, 0x1A7D, 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, ++ 0x0B86, 0x0B86, 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, ++ 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, 0x0FD7, 0x0FE2, ++ 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, 0x12E9, 0x13D5, ++ 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, 0x1BF2, 0x1813, ++ 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x1086, 0x1A5F, ++ 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, 0x2879, ++ 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, 0x289F, ++ 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, ++ 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, ++ 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B1, 0x28AD, 0x28A7, 0x289F, 0x2897, ++ 0x288E, 0x2885, 0x287C, 0x2875, 0x286F, 0x286B, 0x2869, 0x0000, 0x0000, ++ 0x034A, 0x0A88, 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, ++ 0x0FF9, 0x0DAE, 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, ++ 0x03F7, 0x0A45, 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, ++ 0x1DEF, 0x1C26, 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, ++ 0x0DD1, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, ++ 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, ++ 0x0BBC, 0x0B90, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, ++ 0x0CF7, 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, ++ 0x0BFC, 0x0BBC, 0x0B90, 0x0B80, 0x0B89, 0x0BA3, 0x0BCA, 0x0BFC, 0x0C34, ++ 0x0C6F, 0x0CAA, 0x0CE2, 0x0D13, 0x0D3A, 0x0D54, 0x0D5E, 0xC7DC, 0xC7DC, ++ 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, 0xF004, 0xF0DA, 0xF21D, ++ 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, 0xFDF0, 0xFEC6, 0xFF13, ++ 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, 0xDC50, 0xE73B, 0xF628, ++ 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, 0x247F, 0x29D3, 0x35C0, ++ 0x422D, 0x4902, 0x4AD0, 0x4C43, 0x4D63, 0x4E3C, 0x4ED7, 0x4F3F, 0x4F7E, ++ 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, 0x4ABC, ++ 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, 0x4B5A, 0x4C57, 0x4D53, ++ 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, ++ 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4923, 0x4980, 0x4A0C, 0x4ABC, 0x4B84, ++ 0x4C57, 0x4D2A, 0x4DF2, 0x4EA1, 0x4F2E, 0x4F8A, 0x4FAC, 0xFFFF, 0xFFFF, ++ 0x0015, 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, ++ 0xFF80, 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, ++ 0xF893, 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, ++ 0xF21D, 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, ++ 0x2ABD, 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, ++ 0x6709, 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, ++ 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, ++ 0x6611, 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x669A, ++ 0x6640, 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x64FF, 0x651E, 0x654D, ++ 0x6588, 0x65CB, 0x6611, 0x6658, 0x669A, 0x66D5, 0x6704, 0x6723, 0x672E, ++ 0xFFFF, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, 0x068E, 0x06A4, ++ 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, 0x0C0E, 0x0D1B, ++ 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, 0x159B, 0x1677, ++ 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, 0x192B, 0x192B, ++ 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, 0x0E70, 0x0EFC, ++ 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, 0x1231, ++ 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E12, 0x0E70, ++ 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, ++ 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E07, ++ 0x0E4B, 0x0EB2, 0x0F32, 0x0FC4, 0x105F, 0x10F9, 0x118B, 0x120C, 0x1272, ++ 0x12B6, 0x12CF, 0xF548, 0xF548, 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, ++ 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, ++ 0xE666, 0xE829, 0xE9FD, 0xEBD9, 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, ++ 0xF66D, 0xF7DE, 0xF928, 0xFA43, 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, ++ 0xFC67, 0xFC67, 0xFE37, 0x02C6, 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, ++ 0x1705, 0x175E, 0x17A0, 0x17D0, 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, ++ 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, ++ 0x1613, 0x163B, 0x1676, 0x16BD, 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, ++ 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, ++ 0x1605, 0x160F, 0x162B, 0x1657, 0x168D, 0x16CA, 0x170B, 0x174C, 0x1789, ++ 0x17C0, 0x17EB, 0x1807, 0x1812, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, ++ 0x0057, 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, ++ 0x02D4, 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, ++ 0x05ED, 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, ++ 0x0772, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, 0xFFF9, ++ 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, 0xFFE7, 0xFFE4, 0xFFE0, ++ 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, 0xFFCC, 0xFFC9, 0xFFC7, ++ 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, 0xBF5E, 0xBF5E, 0xBF60, ++ 0xBF67, 0xBF71, 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, ++ 0xC028, 0xC048, 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, ++ 0xC150, 0xC16E, 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, ++ 0xC211, 0xC218, 0xC21A, 0xD649, 0xD649, 0xDA6F, 0xE390, 0xECB0, 0xF0D6, ++ 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, 0xEE3D, 0xED7A, ++ 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, 0xE6CB, 0xE605, ++ 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, 0xE227, 0xE218, ++ 0xEC40, 0xEC40, 0xEDD6, 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, ++ 0xF872, 0xFA77, 0xFCAB, 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, ++ 0x00B3, 0x00AD, 0x00A7, 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, ++ 0x0077, 0x0071, 0x006D, 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59D, 0xB418, ++ 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, 0xB4CB, ++ 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, 0xB745, ++ 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, 0xAEC3, ++ 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, ++ 0x00FB, 0x015D, 0x01C9, 0x023E, 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, ++ 0x0538, 0x05AD, 0x0619, 0x067B, 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, ++ 0x0731, 0x0677, 0x056A, 0x042C, 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, ++ 0xFF91, 0xFF91, 0xFF91, 0xFF82, 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, ++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, ++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, ++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, ++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, ++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x251B, 0x24CD, 0x2450, ++ 0x23AA, 0x22E0, 0x21F7, 0x20F5, 0x1FDE, 0x1EB7, 0x1D87, 0x1C51, 0x1B1B, ++ 0x19EA, 0x18C4, 0x17AD, 0x16AA, 0x15C2, 0x14F8, 0x1452, 0x13D5, 0x1386, ++ 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, 0x14EB, 0x1553, 0x15AB, 0x15E7, ++ 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, 0x1C02, 0x2111, 0x254E, 0x2715, ++ 0x0000, 0x0000, 0xFF75, 0xFDFB, 0xFBC6, 0xF90B, 0xF600, 0xF2DB, 0xEFD0, ++ 0xED15, 0xEAE0, 0xE966, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, ++ 0x0292, 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, ++ 0x0E2C, 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, ++ 0x045B, 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0xFFFF, 0xFF17, 0xFC9B, ++ 0xF8E5, 0xF44E, 0xEF31, 0xE9E6, 0xE4C9, 0xE032, 0xDC7C, 0xDA00, 0xD918, ++ 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, 0xF612, 0xFAF5, 0xFEE9, ++ 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, 0xFE27, 0xFCF8, 0xFBF9, ++ 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, 0xFABD, 0xFA7F, 0xFA4B, ++ 0xFA36, 0xBF3F, 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, ++ 0xC86E, 0xC9FB, 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, ++ 0xC6BD, 0xC4F7, 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, ++ 0xBFCA, 0xC012, 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, ++ 0xC11D, 0xBF09, 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x2505, ++ 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, ++ 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, 0xCB8B, 0xCD98, 0xD027, 0xD30C, ++ 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, 0xE26C, 0xE3E7, 0xE513, 0xE5F6, ++ 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, 0xE70A, 0xE5F8, 0xE36B, 0xE060, ++ 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1762, 0x1D80, 0x0A66, 0xF74B, 0xF74B, ++ 0xF74B, 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, ++ 0xF58C, 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, ++ 0x07D9, 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, ++ 0x1177, 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC43, ++ 0xB893, 0xD23C, 0xE988, 0xF37A, 0xF37A, 0xF37A, 0xEF6B, 0xE4B8, 0xD598, ++ 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, 0x99ED, 0x9F30, 0xA593, ++ 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, 0xC87D, 0xCA2A, 0xCB49, ++ 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC55, 0xCC05, ++ 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, ++ 0x0013, 0x0020, 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, ++ 0x019C, 0x01FB, 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, ++ 0x0842, 0x0C37, 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, ++ 0x2D6B, 0x2D6B, 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, 0xFFEE, 0xFFE6, ++ 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, 0xFF35, 0xFF0D, ++ 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, 0xFAB5, 0xF8FE, ++ 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, 0xF2E5, 0xF0C4, ++ 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4A, 0x1E0F, 0x1D66, 0x1C59, ++ 0x1AF4, 0x1942, 0x174E, 0x1523, 0x12CB, 0x1052, 0x0DC4, 0x0B2A, 0x0890, ++ 0x0601, 0x0388, 0x0131, 0xFF04, 0xFD10, 0xFB5E, 0xF9F9, 0xF8ED, 0xF843, ++ 0xF809, 0xF818, 0xF840, 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, ++ 0xF9C2, 0xF9C2, 0xF9C2, 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, ++ 0x0000, 0x0000, 0xFF92, 0xFEA2, 0xFDB3, 0xFD46, 0xFD46, 0xFD46, 0xFD6F, ++ 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, 0x095A, ++ 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, 0x1A9A, ++ 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, 0x1F95, ++ 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFDB7, 0xFA7C, ++ 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, ++ 0xFC59, 0xFE6E, 0x00B6, 0x0325, 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, ++ 0x1312, 0x15A0, 0x180E, 0x1A55, 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, ++ 0x22C4, 0x22FA, 0x22FA, 0x22FA, 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, ++ 0x12D1, 0xC9D7, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, ++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, ++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, ++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, ++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, ++ ++ + }; + diff --git a/bin/cave.c b/bin/cave.c index a2e358f3..56658cd6 100644 --- a/bin/cave.c +++ b/bin/cave.c @@ -1,89 +1,88 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture cave_09000000[] = { +ALIGNED8 const u8 cave_09000000[] = { #include "textures/cave/hmc_textures.00000.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture cave_09001000[] = { +ALIGNED8 const u8 cave_09001000[] = { #include "textures/cave/hmc_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture cave_09001800[] = { +ALIGNED8 const u8 cave_09001800[] = { #include "textures/cave/hmc_textures.01800.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture cave_09002800[] = { +ALIGNED8 const u8 cave_09002800[] = { #include "textures/cave/hmc_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture cave_09003000[] = { +ALIGNED8 const u8 cave_09003000[] = { #include "textures/cave/hmc_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture cave_09003800[] = { +ALIGNED8 const u8 cave_09003800[] = { #include "textures/cave/hmc_textures.03800.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture cave_09004800[] = { +ALIGNED8 const u8 cave_09004800[] = { #include "textures/cave/hmc_textures.04800.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture cave_09005800[] = { +ALIGNED8 const u8 cave_09005800[] = { #include "textures/cave/hmc_textures.05800.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture cave_09006800[] = { +ALIGNED8 const u8 cave_09006800[] = { #include "textures/cave/hmc_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture cave_09007000[] = { +ALIGNED8 const u8 cave_09007000[] = { #include "textures/cave/hmc_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture cave_09007800[] = { +ALIGNED8 const u8 cave_09007800[] = { #include "textures/cave/hmc_textures.07800.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture cave_09008800[] = { +ALIGNED8 const u8 cave_09008800[] = { #include "textures/cave/hmc_textures.08800.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture cave_09009800[] = { +ALIGNED8 const u8 cave_09009800[] = { #include "textures/cave/hmc_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture cave_0900A000[] = { +ALIGNED8 const u8 cave_0900A000[] = { #include "textures/cave/hmc_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture cave_0900A800[] = { +ALIGNED8 const u8 cave_0900A800[] = { #include "textures/cave/hmc_textures.0A800.rgba16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture cave_0900B800[] = { +ALIGNED8 const u8 cave_0900B800[] = { #include "textures/cave/hmc_textures.0B800.ia16.inc.c" }; // 0x0900C000 -ALIGNED8 const Texture cave_0900C000[] = { +ALIGNED8 const u8 cave_0900C000[] = { #include "textures/cave/hmc_textures.0C000.ia16.inc.c" }; diff --git a/bin/cave.c.rej b/bin/cave.c.rej new file mode 100644 index 00000000..63fc24bd --- /dev/null +++ b/bin/cave.c.rej @@ -0,0 +1,109 @@ +diff a/bin/cave.c b/bin/cave.c (rejected hunks) +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture cave_09000000[] = { ++ALIGNED8 const u8 cave_09000000[] = { + #include "textures/cave/hmc_textures.00000.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture cave_09001000[] = { ++ALIGNED8 const u8 cave_09001000[] = { + #include "textures/cave/hmc_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture cave_09001800[] = { ++ALIGNED8 const u8 cave_09001800[] = { + #include "textures/cave/hmc_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture cave_09002800[] = { ++ALIGNED8 const u8 cave_09002800[] = { + #include "textures/cave/hmc_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture cave_09003000[] = { ++ALIGNED8 const u8 cave_09003000[] = { + #include "textures/cave/hmc_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture cave_09003800[] = { ++ALIGNED8 const u8 cave_09003800[] = { + #include "textures/cave/hmc_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture cave_09004800[] = { ++ALIGNED8 const u8 cave_09004800[] = { + #include "textures/cave/hmc_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture cave_09005800[] = { ++ALIGNED8 const u8 cave_09005800[] = { + #include "textures/cave/hmc_textures.05800.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture cave_09006800[] = { ++ALIGNED8 const u8 cave_09006800[] = { + #include "textures/cave/hmc_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture cave_09007000[] = { ++ALIGNED8 const u8 cave_09007000[] = { + #include "textures/cave/hmc_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture cave_09007800[] = { ++ALIGNED8 const u8 cave_09007800[] = { + #include "textures/cave/hmc_textures.07800.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture cave_09008800[] = { ++ALIGNED8 const u8 cave_09008800[] = { + #include "textures/cave/hmc_textures.08800.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture cave_09009800[] = { ++ALIGNED8 const u8 cave_09009800[] = { + #include "textures/cave/hmc_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture cave_0900A000[] = { ++ALIGNED8 const u8 cave_0900A000[] = { + #include "textures/cave/hmc_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture cave_0900A800[] = { ++ALIGNED8 const u8 cave_0900A800[] = { + #include "textures/cave/hmc_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture cave_0900B800[] = { ++ALIGNED8 const u8 cave_0900B800[] = { + #include "textures/cave/hmc_textures.0B800.ia16.inc.c" + }; + + // 0x0900C000 +-ALIGNED8 const Texture cave_0900C000[] = { ++ALIGNED8 const u8 cave_0900C000[] = { + #include "textures/cave/hmc_textures.0C000.ia16.inc.c" + }; diff --git a/bin/debug_level_select.c b/bin/debug_level_select.c index 345203a6..bc79a0b3 100644 --- a/bin/debug_level_select.c +++ b/bin/debug_level_select.c @@ -5,8 +5,8 @@ // 0x07000000 - 0x07000018 static const Lights1 debug_level_select_lights_07000000 = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ); // 0x07000018 - 0x07000108 @@ -221,8 +221,8 @@ const Gfx debug_level_select_dl_07000858[] = { // 0x07000A28 - 0x07000A40 static const Lights1 debug_level_select_lights_07000A28 = gdSPDefLights1( - 0x00, 0x00, 0x7f, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ); // 0x07000A40 - 0x07000B30 @@ -404,8 +404,8 @@ const Gfx debug_level_select_dl_07001100[] = { // 0x07001288 - 0x070012A0 static const Lights1 debug_level_select_lights_07001288 = gdSPDefLights1( - 0x00, 0x56, 0x00, - 0x00, 0xad, 0x00, 0x00, 0x00, 0x50 + 0x00, 0x56, 0x00, + 0x00, 0xad, 0x00, 0x00, 0x00, 0x50 ); // 0x070012A0 - 0x07001390 @@ -640,8 +640,8 @@ const Gfx debug_level_select_dl_07001BA0[] = { // 0x07001D98 - 0x07001DB0 static const Lights1 debug_level_select_lights_07001D98 = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ); // 0x07001DB0 - 0x07001EA0 @@ -856,8 +856,8 @@ const Gfx debug_level_select_dl_070025F0[] = { // 0x070027C0 - 0x070027D8 static const Lights1 debug_level_select_lights_070027C0 = gdSPDefLights1( - 0x00, 0x00, 0x7f, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ); // 0x070027D8 - 0x070028C8 @@ -1131,8 +1131,8 @@ const Gfx debug_level_select_dl_07003258[] = { // 0x070034A0 - 0x070034B8 static const Lights1 debug_level_select_lights_070034A0 = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ); // 0x070034B8 - 0x070035A8 @@ -1367,8 +1367,8 @@ const Gfx debug_level_select_dl_07003DB8[] = { // 0x07003FB0 - 0x07003FC8 static const Lights1 debug_level_select_lights_07003FB0 = gdSPDefLights1( - 0x00, 0x00, 0x7f, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ); // 0x07003FC8 - 0x070040B8 @@ -1603,8 +1603,8 @@ const Gfx debug_level_select_dl_070048C8[] = { // 0x07004AC0 - 0x07004AD8 static const Lights1 debug_level_select_lights_07004AC0 = gdSPDefLights1( - 0x00, 0x59, 0x00, - 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50 + 0x00, 0x59, 0x00, + 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50 ); // 0x07004AD8 - 0x07004BC8 @@ -1878,8 +1878,8 @@ const Gfx debug_level_select_dl_07005558[] = { // 0x070057A0 - 0x070057B8 static const Lights1 debug_level_select_lights_070057A0 = gdSPDefLights1( - 0x7f, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ); // 0x070057B8 - 0x070058A8 @@ -1949,8 +1949,8 @@ const Gfx debug_level_select_dl_070059F8[] = { // 0x07005A98 - 0x07005AB0 static const Lights1 debug_level_select_lights_07005A98 = gdSPDefLights1( - 0x00, 0x00, 0x7f, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ); // 0x07005AB0 - 0x07005BA0 diff --git a/bin/effect.c b/bin/effect.c index 1b8091b1..fd6af43c 100644 --- a/bin/effect.c +++ b/bin/effect.c @@ -1,8 +1,5 @@ -#include -#include - -#include "macros.h" -#include "types.h" +#include +#include "sm64.h" #include "make_const_nonconst.h" @@ -10,27 +7,27 @@ UNUSED static const u64 effect_unused_0 = 0; // Flower (Unused) // 0x0B000008 -ALIGNED8 static const Texture effect_0B000008[] = { +ALIGNED8 static const u8 effect_0B000008[] = { #include "textures/effect/flower.00008.rgba16.inc.c" }; // 0x0B000808 -ALIGNED8 static const Texture effect_0B000808[] = { +ALIGNED8 static const u8 effect_0B000808[] = { #include "textures/effect/flower.00808.rgba16.inc.c" }; // 0x0B001008 -ALIGNED8 static const Texture effect_0B001008[] = { +ALIGNED8 static const u8 effect_0B001008[] = { #include "textures/effect/flower.01008.rgba16.inc.c" }; // 0x0B001808 -ALIGNED8 static const Texture effect_0B001808[] = { +ALIGNED8 static const u8 effect_0B001808[] = { #include "textures/effect/flower.01808.rgba16.inc.c" }; // 0x0B002008 -const Texture *const flower_bubbles_textures_ptr_0B002008[] = { +const u8 *const flower_bubbles_textures_ptr_0B002008[] = { effect_0B000008, effect_0B000808, effect_0B001008, @@ -41,47 +38,47 @@ const Texture *const flower_bubbles_textures_ptr_0B002008[] = { // Lava Bubble // 0x0B002020 -ALIGNED8 static const Texture effect_0B002020[] = { +ALIGNED8 static const u8 effect_0B002020[] = { #include "textures/effect/lava_bubble.02020.rgba16.inc.c" }; // 0x0B002820 -ALIGNED8 static const Texture effect_0B002820[] = { +ALIGNED8 static const u8 effect_0B002820[] = { #include "textures/effect/lava_bubble.02820.rgba16.inc.c" }; // 0x0B003020 -ALIGNED8 static const Texture effect_0B003020[] = { +ALIGNED8 static const u8 effect_0B003020[] = { #include "textures/effect/lava_bubble.03020.rgba16.inc.c" }; // 0x0B003820 -ALIGNED8 static const Texture effect_0B003820[] = { +ALIGNED8 static const u8 effect_0B003820[] = { #include "textures/effect/lava_bubble.03820.rgba16.inc.c" }; // 0x0B004020 -ALIGNED8 static const Texture effect_0B004020[] = { +ALIGNED8 static const u8 effect_0B004020[] = { #include "textures/effect/lava_bubble.04020.rgba16.inc.c" }; // 0x0B004820 -ALIGNED8 static const Texture effect_0B004820[] = { +ALIGNED8 static const u8 effect_0B004820[] = { #include "textures/effect/lava_bubble.04820.rgba16.inc.c" }; // 0x0B005020 -ALIGNED8 static const Texture effect_0B005020[] = { +ALIGNED8 static const u8 effect_0B005020[] = { #include "textures/effect/lava_bubble.05020.rgba16.inc.c" }; // 0x0B005820 -ALIGNED8 static const Texture effect_0B005820[] = { +ALIGNED8 static const u8 effect_0B005820[] = { #include "textures/effect/lava_bubble.05820.rgba16.inc.c" }; // 0x0B006020 -const Texture *const lava_bubble_ptr_0B006020[] = { +const u8 *const lava_bubble_ptr_0B006020[] = { effect_0B002020, effect_0B002820, effect_0B003020, @@ -96,18 +93,18 @@ const Texture *const lava_bubble_ptr_0B006020[] = { // Bubble // 0x0B006048 -ALIGNED8 static const Texture effect_0B006048[] = { +ALIGNED8 static const u8 effect_0B006048[] = { #include "textures/effect/bubble.06048.rgba16.inc.c" }; // 0x0B006848 -const Texture *const bubble_ptr_0B006848[] = { +const u8 *const bubble_ptr_0B006848[] = { effect_0B006048, }; // Tiny Bubble // 0x0B00684C -ALIGNED8 const Texture effect_0B00684C[] = { +ALIGNED8 static const u8 effect_0B00684C[] = { #include "textures/effect/tiny_bubble.0684C.rgba16.inc.c" }; @@ -137,7 +134,7 @@ const Gfx tiny_bubble_dl_0B006AB0[] = { }; // 0x0B006AD8 -ALIGNED8 static const Texture effect_0B006AD8[] = { +ALIGNED8 static const u8 effect_0B006AD8[] = { #include "textures/effect/tiny_bubble.06AD8.rgba16.inc.c" }; diff --git a/bin/effect.c.rej b/bin/effect.c.rej new file mode 100644 index 00000000..eee2ad9b --- /dev/null +++ b/bin/effect.c.rej @@ -0,0 +1,133 @@ +diff a/bin/effect.c b/bin/effect.c (rejected hunks) +@@ -1,8 +1,5 @@ +-#include +-#include +- +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" + + #include "make_const_nonconst.h" + +@@ -10,27 +7,27 @@ UNUSED static const u64 effect_unused_0 = 0; + + // Flower (Unused) + // 0x0B000008 +-ALIGNED8 static const Texture effect_0B000008[] = { ++ALIGNED8 static const u8 effect_0B000008[] = { + #include "textures/effect/flower.00008.rgba16.inc.c" + }; + + // 0x0B000808 +-ALIGNED8 static const Texture effect_0B000808[] = { ++ALIGNED8 static const u8 effect_0B000808[] = { + #include "textures/effect/flower.00808.rgba16.inc.c" + }; + + // 0x0B001008 +-ALIGNED8 static const Texture effect_0B001008[] = { ++ALIGNED8 static const u8 effect_0B001008[] = { + #include "textures/effect/flower.01008.rgba16.inc.c" + }; + + // 0x0B001808 +-ALIGNED8 static const Texture effect_0B001808[] = { ++ALIGNED8 static const u8 effect_0B001808[] = { + #include "textures/effect/flower.01808.rgba16.inc.c" + }; + + // 0x0B002008 +-const Texture *const flower_bubbles_textures_ptr_0B002008[] = { ++const u8 *const flower_bubbles_textures_ptr_0B002008[] = { + effect_0B000008, + effect_0B000808, + effect_0B001008, +@@ -41,47 +38,47 @@ const Texture *const flower_bubbles_textures_ptr_0B002008[] = { + + // Lava Bubble + // 0x0B002020 +-ALIGNED8 static const Texture effect_0B002020[] = { ++ALIGNED8 static const u8 effect_0B002020[] = { + #include "textures/effect/lava_bubble.02020.rgba16.inc.c" + }; + + // 0x0B002820 +-ALIGNED8 static const Texture effect_0B002820[] = { ++ALIGNED8 static const u8 effect_0B002820[] = { + #include "textures/effect/lava_bubble.02820.rgba16.inc.c" + }; + + // 0x0B003020 +-ALIGNED8 static const Texture effect_0B003020[] = { ++ALIGNED8 static const u8 effect_0B003020[] = { + #include "textures/effect/lava_bubble.03020.rgba16.inc.c" + }; + + // 0x0B003820 +-ALIGNED8 static const Texture effect_0B003820[] = { ++ALIGNED8 static const u8 effect_0B003820[] = { + #include "textures/effect/lava_bubble.03820.rgba16.inc.c" + }; + + // 0x0B004020 +-ALIGNED8 static const Texture effect_0B004020[] = { ++ALIGNED8 static const u8 effect_0B004020[] = { + #include "textures/effect/lava_bubble.04020.rgba16.inc.c" + }; + + // 0x0B004820 +-ALIGNED8 static const Texture effect_0B004820[] = { ++ALIGNED8 static const u8 effect_0B004820[] = { + #include "textures/effect/lava_bubble.04820.rgba16.inc.c" + }; + + // 0x0B005020 +-ALIGNED8 static const Texture effect_0B005020[] = { ++ALIGNED8 static const u8 effect_0B005020[] = { + #include "textures/effect/lava_bubble.05020.rgba16.inc.c" + }; + + // 0x0B005820 +-ALIGNED8 static const Texture effect_0B005820[] = { ++ALIGNED8 static const u8 effect_0B005820[] = { + #include "textures/effect/lava_bubble.05820.rgba16.inc.c" + }; + + // 0x0B006020 +-const Texture *const lava_bubble_ptr_0B006020[] = { ++const u8 *const lava_bubble_ptr_0B006020[] = { + effect_0B002020, + effect_0B002820, + effect_0B003020, +@@ -96,18 +93,18 @@ const Texture *const lava_bubble_ptr_0B006020[] = { + + // Bubble + // 0x0B006048 +-ALIGNED8 static const Texture effect_0B006048[] = { ++ALIGNED8 static const u8 effect_0B006048[] = { + #include "textures/effect/bubble.06048.rgba16.inc.c" + }; + + // 0x0B006848 +-const Texture *const bubble_ptr_0B006848[] = { ++const u8 *const bubble_ptr_0B006848[] = { + effect_0B006048, + }; + + // Tiny Bubble + // 0x0B00684C +-ALIGNED8 const Texture effect_0B00684C[] = { ++ALIGNED8 static const u8 effect_0B00684C[] = { + #include "textures/effect/tiny_bubble.0684C.rgba16.inc.c" + }; + +@@ -137,7 +134,7 @@ const Gfx tiny_bubble_dl_0B006AB0[] = { + }; + + // 0x0B006AD8 +-ALIGNED8 static const Texture effect_0B006AD8[] = { ++ALIGNED8 static const u8 effect_0B006AD8[] = { + #include "textures/effect/tiny_bubble.06AD8.rgba16.inc.c" + }; + diff --git a/bin/eu/translation_de.c b/bin/eu/translation_de.c index d7c1f597..6be959e0 100644 --- a/bin/eu/translation_de.c +++ b/bin/eu/translation_de.c @@ -1,7 +1,5 @@ // SM64 (EU) Segment 19 - Deutsch -#include "macros.h" - #include "game/ingame_menu.h" #include "make_const_nonconst.h" diff --git a/bin/eu/translation_de.c.rej b/bin/eu/translation_de.c.rej new file mode 100644 index 00000000..b0f6d6c7 --- /dev/null +++ b/bin/eu/translation_de.c.rej @@ -0,0 +1,9 @@ +diff a/bin/eu/translation_de.c b/bin/eu/translation_de.c (rejected hunks) +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - Deutsch + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" diff --git a/bin/eu/translation_en.c b/bin/eu/translation_en.c index 9817bc5a..e6f2cacd 100644 --- a/bin/eu/translation_en.c +++ b/bin/eu/translation_en.c @@ -1,7 +1,5 @@ // SM64 (EU) Segment 19 - English -#include "macros.h" - #include "game/ingame_menu.h" #include "make_const_nonconst.h" diff --git a/bin/eu/translation_en.c.rej b/bin/eu/translation_en.c.rej new file mode 100644 index 00000000..72e93e4e --- /dev/null +++ b/bin/eu/translation_en.c.rej @@ -0,0 +1,9 @@ +diff a/bin/eu/translation_en.c b/bin/eu/translation_en.c (rejected hunks) +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - English + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" diff --git a/bin/eu/translation_fr.c b/bin/eu/translation_fr.c index 119839c9..ed0d0572 100644 --- a/bin/eu/translation_fr.c +++ b/bin/eu/translation_fr.c @@ -1,7 +1,5 @@ // SM64 (EU) Segment 19 - Français -#include "macros.h" - #include "game/ingame_menu.h" #include "make_const_nonconst.h" diff --git a/bin/eu/translation_fr.c.rej b/bin/eu/translation_fr.c.rej new file mode 100644 index 00000000..399eb939 --- /dev/null +++ b/bin/eu/translation_fr.c.rej @@ -0,0 +1,9 @@ +diff a/bin/eu/translation_fr.c b/bin/eu/translation_fr.c (rejected hunks) +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - Français + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" diff --git a/bin/fire.c b/bin/fire.c index 72e230cf..ea0f5ec2 100644 --- a/bin/fire.c +++ b/bin/fire.c @@ -1,124 +1,123 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture fire_09000000[] = { +ALIGNED8 const u8 fire_09000000[] = { #include "textures/fire/lll_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture fire_09000800[] = { +ALIGNED8 const u8 fire_09000800[] = { #include "textures/fire/lll_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture fire_09001000[] = { +ALIGNED8 const u8 fire_09001000[] = { #include "textures/fire/lll_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture fire_09001800[] = { +ALIGNED8 const u8 fire_09001800[] = { #include "textures/fire/lll_textures.01800.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture fire_09002000[] = { +ALIGNED8 const u8 fire_09002000[] = { #include "textures/fire/lll_textures.02000.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture fire_09002800[] = { +ALIGNED8 const u8 fire_09002800[] = { #include "textures/fire/lll_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture fire_09003000[] = { +ALIGNED8 const u8 fire_09003000[] = { #include "textures/fire/lll_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture fire_09003800[] = { +ALIGNED8 const u8 fire_09003800[] = { #include "textures/fire/lll_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture fire_09004000[] = { +ALIGNED8 const u8 fire_09004000[] = { #include "textures/fire/lll_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture fire_09004800[] = { +ALIGNED8 const u8 fire_09004800[] = { #include "textures/fire/lll_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture fire_09005000[] = { +ALIGNED8 const u8 fire_09005000[] = { #include "textures/fire/lll_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture fire_09005800[] = { +ALIGNED8 const u8 fire_09005800[] = { #include "textures/fire/lll_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture fire_09006000[] = { +ALIGNED8 const u8 fire_09006000[] = { #include "textures/fire/lll_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture fire_09006800[] = { +ALIGNED8 const u8 fire_09006800[] = { #include "textures/fire/lll_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture fire_09007000[] = { +ALIGNED8 const u8 fire_09007000[] = { #include "textures/fire/lll_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture fire_09007800[] = { +ALIGNED8 const u8 fire_09007800[] = { #include "textures/fire/lll_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture fire_09008000[] = { +ALIGNED8 const u8 fire_09008000[] = { #include "textures/fire/lll_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture fire_09008800[] = { +ALIGNED8 const u8 fire_09008800[] = { #include "textures/fire/lll_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture fire_09009000[] = { +ALIGNED8 const u8 fire_09009000[] = { #include "textures/fire/lll_textures.09000.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture fire_09009800[] = { +ALIGNED8 const u8 fire_09009800[] = { #include "textures/fire/lll_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture fire_0900A000[] = { +ALIGNED8 const u8 fire_0900A000[] = { #include "textures/fire/lll_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture fire_0900A800[] = { +ALIGNED8 const u8 fire_0900A800[] = { #include "textures/fire/lll_textures.0A800.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture fire_0900B000[] = { +ALIGNED8 const u8 fire_0900B000[] = { #include "textures/fire/lll_textures.0B000.rgba16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture fire_0900B800[] = { +ALIGNED8 const u8 fire_0900B800[] = { #include "textures/fire/lll_textures.0B800.rgba16.inc.c" }; diff --git a/bin/fire.c.rej b/bin/fire.c.rej new file mode 100644 index 00000000..01e7c790 --- /dev/null +++ b/bin/fire.c.rej @@ -0,0 +1,151 @@ +diff a/bin/fire.c b/bin/fire.c (rejected hunks) +@@ -1,124 +1,123 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture fire_09000000[] = { ++ALIGNED8 const u8 fire_09000000[] = { + #include "textures/fire/lll_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture fire_09000800[] = { ++ALIGNED8 const u8 fire_09000800[] = { + #include "textures/fire/lll_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture fire_09001000[] = { ++ALIGNED8 const u8 fire_09001000[] = { + #include "textures/fire/lll_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture fire_09001800[] = { ++ALIGNED8 const u8 fire_09001800[] = { + #include "textures/fire/lll_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture fire_09002000[] = { ++ALIGNED8 const u8 fire_09002000[] = { + #include "textures/fire/lll_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture fire_09002800[] = { ++ALIGNED8 const u8 fire_09002800[] = { + #include "textures/fire/lll_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture fire_09003000[] = { ++ALIGNED8 const u8 fire_09003000[] = { + #include "textures/fire/lll_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture fire_09003800[] = { ++ALIGNED8 const u8 fire_09003800[] = { + #include "textures/fire/lll_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture fire_09004000[] = { ++ALIGNED8 const u8 fire_09004000[] = { + #include "textures/fire/lll_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture fire_09004800[] = { ++ALIGNED8 const u8 fire_09004800[] = { + #include "textures/fire/lll_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture fire_09005000[] = { ++ALIGNED8 const u8 fire_09005000[] = { + #include "textures/fire/lll_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture fire_09005800[] = { ++ALIGNED8 const u8 fire_09005800[] = { + #include "textures/fire/lll_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture fire_09006000[] = { ++ALIGNED8 const u8 fire_09006000[] = { + #include "textures/fire/lll_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture fire_09006800[] = { ++ALIGNED8 const u8 fire_09006800[] = { + #include "textures/fire/lll_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture fire_09007000[] = { ++ALIGNED8 const u8 fire_09007000[] = { + #include "textures/fire/lll_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture fire_09007800[] = { ++ALIGNED8 const u8 fire_09007800[] = { + #include "textures/fire/lll_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture fire_09008000[] = { ++ALIGNED8 const u8 fire_09008000[] = { + #include "textures/fire/lll_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture fire_09008800[] = { ++ALIGNED8 const u8 fire_09008800[] = { + #include "textures/fire/lll_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture fire_09009000[] = { ++ALIGNED8 const u8 fire_09009000[] = { + #include "textures/fire/lll_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture fire_09009800[] = { ++ALIGNED8 const u8 fire_09009800[] = { + #include "textures/fire/lll_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture fire_0900A000[] = { ++ALIGNED8 const u8 fire_0900A000[] = { + #include "textures/fire/lll_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture fire_0900A800[] = { ++ALIGNED8 const u8 fire_0900A800[] = { + #include "textures/fire/lll_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture fire_0900B000[] = { ++ALIGNED8 const u8 fire_0900B000[] = { + #include "textures/fire/lll_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture fire_0900B800[] = { ++ALIGNED8 const u8 fire_0900B800[] = { + #include "textures/fire/lll_textures.0B800.rgba16.inc.c" + }; diff --git a/bin/generic.c b/bin/generic.c index c90dea6c..4ce36975 100644 --- a/bin/generic.c +++ b/bin/generic.c @@ -1,114 +1,113 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture generic_09000000[] = { +ALIGNED8 const u8 generic_09000000[] = { #include "textures/generic/bob_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture generic_09000800[] = { +ALIGNED8 const u8 generic_09000800[] = { #include "textures/generic/bob_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture generic_09001000[] = { +ALIGNED8 const u8 generic_09001000[] = { #include "textures/generic/bob_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture generic_09001800[] = { +ALIGNED8 const u8 generic_09001800[] = { #include "textures/generic/bob_textures.01800.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture generic_09002000[] = { +ALIGNED8 const u8 generic_09002000[] = { #include "textures/generic/bob_textures.02000.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture generic_09002800[] = { +ALIGNED8 const u8 generic_09002800[] = { #include "textures/generic/bob_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture generic_09003000[] = { +ALIGNED8 const u8 generic_09003000[] = { #include "textures/generic/bob_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture generic_09003800[] = { +ALIGNED8 const u8 generic_09003800[] = { #include "textures/generic/bob_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture generic_09004000[] = { +ALIGNED8 const u8 generic_09004000[] = { #include "textures/generic/bob_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture generic_09004800[] = { +ALIGNED8 const u8 generic_09004800[] = { #include "textures/generic/bob_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture generic_09005000[] = { +ALIGNED8 const u8 generic_09005000[] = { #include "textures/generic/bob_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture generic_09005800[] = { +ALIGNED8 const u8 generic_09005800[] = { #include "textures/generic/bob_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture generic_09006000[] = { +ALIGNED8 const u8 generic_09006000[] = { #include "textures/generic/bob_textures.06000.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture generic_09007000[] = { +ALIGNED8 const u8 generic_09007000[] = { #include "textures/generic/bob_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture generic_09007800[] = { +ALIGNED8 const u8 generic_09007800[] = { #include "textures/generic/bob_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture generic_09008000[] = { +ALIGNED8 const u8 generic_09008000[] = { #include "textures/generic/bob_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture generic_09008800[] = { +ALIGNED8 const u8 generic_09008800[] = { #include "textures/generic/bob_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture generic_09009000[] = { +ALIGNED8 const u8 generic_09009000[] = { #include "textures/generic/bob_textures.09000.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture generic_09009800[] = { +ALIGNED8 const u8 generic_09009800[] = { #include "textures/generic/bob_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture generic_0900A000[] = { +ALIGNED8 const u8 generic_0900A000[] = { #include "textures/generic/bob_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture generic_0900A800[] = { +ALIGNED8 const u8 generic_0900A800[] = { #include "textures/generic/bob_textures.0A800.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture generic_0900B000[] = { +ALIGNED8 const u8 generic_0900B000[] = { #include "textures/generic/bob_textures.0B000.ia16.inc.c" }; diff --git a/bin/generic.c.rej b/bin/generic.c.rej new file mode 100644 index 00000000..691c0b80 --- /dev/null +++ b/bin/generic.c.rej @@ -0,0 +1,139 @@ +diff a/bin/generic.c b/bin/generic.c (rejected hunks) +@@ -1,114 +1,113 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture generic_09000000[] = { ++ALIGNED8 const u8 generic_09000000[] = { + #include "textures/generic/bob_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture generic_09000800[] = { ++ALIGNED8 const u8 generic_09000800[] = { + #include "textures/generic/bob_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture generic_09001000[] = { ++ALIGNED8 const u8 generic_09001000[] = { + #include "textures/generic/bob_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture generic_09001800[] = { ++ALIGNED8 const u8 generic_09001800[] = { + #include "textures/generic/bob_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture generic_09002000[] = { ++ALIGNED8 const u8 generic_09002000[] = { + #include "textures/generic/bob_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture generic_09002800[] = { ++ALIGNED8 const u8 generic_09002800[] = { + #include "textures/generic/bob_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture generic_09003000[] = { ++ALIGNED8 const u8 generic_09003000[] = { + #include "textures/generic/bob_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture generic_09003800[] = { ++ALIGNED8 const u8 generic_09003800[] = { + #include "textures/generic/bob_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture generic_09004000[] = { ++ALIGNED8 const u8 generic_09004000[] = { + #include "textures/generic/bob_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture generic_09004800[] = { ++ALIGNED8 const u8 generic_09004800[] = { + #include "textures/generic/bob_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture generic_09005000[] = { ++ALIGNED8 const u8 generic_09005000[] = { + #include "textures/generic/bob_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture generic_09005800[] = { ++ALIGNED8 const u8 generic_09005800[] = { + #include "textures/generic/bob_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture generic_09006000[] = { ++ALIGNED8 const u8 generic_09006000[] = { + #include "textures/generic/bob_textures.06000.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture generic_09007000[] = { ++ALIGNED8 const u8 generic_09007000[] = { + #include "textures/generic/bob_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture generic_09007800[] = { ++ALIGNED8 const u8 generic_09007800[] = { + #include "textures/generic/bob_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture generic_09008000[] = { ++ALIGNED8 const u8 generic_09008000[] = { + #include "textures/generic/bob_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture generic_09008800[] = { ++ALIGNED8 const u8 generic_09008800[] = { + #include "textures/generic/bob_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture generic_09009000[] = { ++ALIGNED8 const u8 generic_09009000[] = { + #include "textures/generic/bob_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture generic_09009800[] = { ++ALIGNED8 const u8 generic_09009800[] = { + #include "textures/generic/bob_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture generic_0900A000[] = { ++ALIGNED8 const u8 generic_0900A000[] = { + #include "textures/generic/bob_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture generic_0900A800[] = { ++ALIGNED8 const u8 generic_0900A800[] = { + #include "textures/generic/bob_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture generic_0900B000[] = { ++ALIGNED8 const u8 generic_0900B000[] = { + #include "textures/generic/bob_textures.0B000.ia16.inc.c" + }; diff --git a/bin/grass.c b/bin/grass.c index 24044538..3df488d5 100644 --- a/bin/grass.c +++ b/bin/grass.c @@ -1,124 +1,123 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture grass_09000000[] = { +ALIGNED8 const u8 grass_09000000[] = { #include "textures/grass/wf_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture grass_09000800[] = { +ALIGNED8 const u8 grass_09000800[] = { #include "textures/grass/wf_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture grass_09001000[] = { +ALIGNED8 const u8 grass_09001000[] = { #include "textures/grass/wf_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture grass_09001800[] = { +ALIGNED8 const u8 grass_09001800[] = { #include "textures/grass/wf_textures.01800.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture grass_09002000[] = { +ALIGNED8 const u8 grass_09002000[] = { #include "textures/grass/wf_textures.02000.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture grass_09002800[] = { +ALIGNED8 const u8 grass_09002800[] = { #include "textures/grass/wf_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture grass_09003000[] = { +ALIGNED8 const u8 grass_09003000[] = { #include "textures/grass/wf_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture grass_09003800[] = { +ALIGNED8 const u8 grass_09003800[] = { #include "textures/grass/wf_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture grass_09004000[] = { +ALIGNED8 const u8 grass_09004000[] = { #include "textures/grass/wf_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture grass_09004800[] = { +ALIGNED8 const u8 grass_09004800[] = { #include "textures/grass/wf_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture grass_09005000[] = { +ALIGNED8 const u8 grass_09005000[] = { #include "textures/grass/wf_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture grass_09005800[] = { +ALIGNED8 const u8 grass_09005800[] = { #include "textures/grass/wf_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture grass_09006000[] = { +ALIGNED8 const u8 grass_09006000[] = { #include "textures/grass/wf_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture grass_09006800[] = { +ALIGNED8 const u8 grass_09006800[] = { #include "textures/grass/wf_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture grass_09007000[] = { +ALIGNED8 const u8 grass_09007000[] = { #include "textures/grass/wf_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture grass_09007800[] = { +ALIGNED8 const u8 grass_09007800[] = { #include "textures/grass/wf_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture grass_09008000[] = { +ALIGNED8 const u8 grass_09008000[] = { #include "textures/grass/wf_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture grass_09008800[] = { +ALIGNED8 const u8 grass_09008800[] = { #include "textures/grass/wf_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture grass_09009000[] = { +ALIGNED8 const u8 grass_09009000[] = { #include "textures/grass/wf_textures.09000.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture grass_09009800[] = { +ALIGNED8 const u8 grass_09009800[] = { #include "textures/grass/wf_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture grass_0900A000[] = { +ALIGNED8 const u8 grass_0900A000[] = { #include "textures/grass/wf_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture grass_0900A800[] = { +ALIGNED8 const u8 grass_0900A800[] = { #include "textures/grass/wf_textures.0A800.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture grass_0900B000[] = { +ALIGNED8 const u8 grass_0900B000[] = { #include "textures/grass/wf_textures.0B000.ia16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture grass_0900B800[] = { +ALIGNED8 const u8 grass_0900B800[] = { #include "textures/grass/wf_textures.0B800.ia16.inc.c" }; diff --git a/bin/grass.c.rej b/bin/grass.c.rej new file mode 100644 index 00000000..5f3b20b6 --- /dev/null +++ b/bin/grass.c.rej @@ -0,0 +1,151 @@ +diff a/bin/grass.c b/bin/grass.c (rejected hunks) +@@ -1,124 +1,123 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture grass_09000000[] = { ++ALIGNED8 const u8 grass_09000000[] = { + #include "textures/grass/wf_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture grass_09000800[] = { ++ALIGNED8 const u8 grass_09000800[] = { + #include "textures/grass/wf_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture grass_09001000[] = { ++ALIGNED8 const u8 grass_09001000[] = { + #include "textures/grass/wf_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture grass_09001800[] = { ++ALIGNED8 const u8 grass_09001800[] = { + #include "textures/grass/wf_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture grass_09002000[] = { ++ALIGNED8 const u8 grass_09002000[] = { + #include "textures/grass/wf_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture grass_09002800[] = { ++ALIGNED8 const u8 grass_09002800[] = { + #include "textures/grass/wf_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture grass_09003000[] = { ++ALIGNED8 const u8 grass_09003000[] = { + #include "textures/grass/wf_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture grass_09003800[] = { ++ALIGNED8 const u8 grass_09003800[] = { + #include "textures/grass/wf_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture grass_09004000[] = { ++ALIGNED8 const u8 grass_09004000[] = { + #include "textures/grass/wf_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture grass_09004800[] = { ++ALIGNED8 const u8 grass_09004800[] = { + #include "textures/grass/wf_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture grass_09005000[] = { ++ALIGNED8 const u8 grass_09005000[] = { + #include "textures/grass/wf_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture grass_09005800[] = { ++ALIGNED8 const u8 grass_09005800[] = { + #include "textures/grass/wf_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture grass_09006000[] = { ++ALIGNED8 const u8 grass_09006000[] = { + #include "textures/grass/wf_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture grass_09006800[] = { ++ALIGNED8 const u8 grass_09006800[] = { + #include "textures/grass/wf_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture grass_09007000[] = { ++ALIGNED8 const u8 grass_09007000[] = { + #include "textures/grass/wf_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture grass_09007800[] = { ++ALIGNED8 const u8 grass_09007800[] = { + #include "textures/grass/wf_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture grass_09008000[] = { ++ALIGNED8 const u8 grass_09008000[] = { + #include "textures/grass/wf_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture grass_09008800[] = { ++ALIGNED8 const u8 grass_09008800[] = { + #include "textures/grass/wf_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture grass_09009000[] = { ++ALIGNED8 const u8 grass_09009000[] = { + #include "textures/grass/wf_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture grass_09009800[] = { ++ALIGNED8 const u8 grass_09009800[] = { + #include "textures/grass/wf_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture grass_0900A000[] = { ++ALIGNED8 const u8 grass_0900A000[] = { + #include "textures/grass/wf_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture grass_0900A800[] = { ++ALIGNED8 const u8 grass_0900A800[] = { + #include "textures/grass/wf_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture grass_0900B000[] = { ++ALIGNED8 const u8 grass_0900B000[] = { + #include "textures/grass/wf_textures.0B000.ia16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture grass_0900B800[] = { ++ALIGNED8 const u8 grass_0900B800[] = { + #include "textures/grass/wf_textures.0B800.ia16.inc.c" + }; diff --git a/bin/inside.c b/bin/inside.c index 5fe85a1e..d668af33 100644 --- a/bin/inside.c +++ b/bin/inside.c @@ -1,89 +1,88 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture inside_09000000[] = { +ALIGNED8 const u8 inside_09000000[] = { #include "textures/inside/inside_castle_textures.00000.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture inside_09001000[] = { +ALIGNED8 const u8 inside_09001000[] = { #include "textures/inside/inside_castle_textures.01000.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture inside_09002000[] = { +ALIGNED8 const u8 inside_09002000[] = { #include "textures/inside/inside_castle_textures.02000.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture inside_09003000[] = { +ALIGNED8 const u8 inside_09003000[] = { #include "textures/inside/inside_castle_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture inside_09003800[] = { +ALIGNED8 const u8 inside_09003800[] = { #include "textures/inside/inside_castle_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture inside_09004000[] = { +ALIGNED8 const u8 inside_09004000[] = { #include "textures/inside/inside_castle_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture inside_09004800[] = { +ALIGNED8 const u8 inside_09004800[] = { #include "textures/inside/inside_castle_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture inside_09005000[] = { +ALIGNED8 const u8 inside_09005000[] = { #include "textures/inside/inside_castle_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture inside_09005800[] = { +ALIGNED8 const u8 inside_09005800[] = { #include "textures/inside/inside_castle_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture inside_09006000[] = { +ALIGNED8 const u8 inside_09006000[] = { #include "textures/inside/inside_castle_textures.06000.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture inside_09007000[] = { +ALIGNED8 const u8 inside_09007000[] = { #include "textures/inside/inside_castle_textures.07000.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture inside_09008000[] = { +ALIGNED8 const u8 inside_09008000[] = { #include "textures/inside/inside_castle_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture inside_09008800[] = { +ALIGNED8 const u8 inside_09008800[] = { #include "textures/inside/inside_castle_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture inside_09009000[] = { +ALIGNED8 const u8 inside_09009000[] = { #include "textures/inside/inside_castle_textures.09000.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture inside_0900A000[] = { +ALIGNED8 const u8 inside_0900A000[] = { #include "textures/inside/inside_castle_textures.0A000.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture inside_0900B000[] = { +ALIGNED8 const u8 inside_0900B000[] = { #include "textures/inside/inside_castle_textures.0B000.rgba16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture inside_0900B800[] = { +ALIGNED8 const u8 inside_0900B800[] = { #include "textures/inside/inside_castle_textures.0B800.rgba16.inc.c" }; diff --git a/bin/inside.c.rej b/bin/inside.c.rej new file mode 100644 index 00000000..03c04dab --- /dev/null +++ b/bin/inside.c.rej @@ -0,0 +1,109 @@ +diff a/bin/inside.c b/bin/inside.c (rejected hunks) +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture inside_09000000[] = { ++ALIGNED8 const u8 inside_09000000[] = { + #include "textures/inside/inside_castle_textures.00000.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture inside_09001000[] = { ++ALIGNED8 const u8 inside_09001000[] = { + #include "textures/inside/inside_castle_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture inside_09002000[] = { ++ALIGNED8 const u8 inside_09002000[] = { + #include "textures/inside/inside_castle_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture inside_09003000[] = { ++ALIGNED8 const u8 inside_09003000[] = { + #include "textures/inside/inside_castle_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture inside_09003800[] = { ++ALIGNED8 const u8 inside_09003800[] = { + #include "textures/inside/inside_castle_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture inside_09004000[] = { ++ALIGNED8 const u8 inside_09004000[] = { + #include "textures/inside/inside_castle_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture inside_09004800[] = { ++ALIGNED8 const u8 inside_09004800[] = { + #include "textures/inside/inside_castle_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture inside_09005000[] = { ++ALIGNED8 const u8 inside_09005000[] = { + #include "textures/inside/inside_castle_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture inside_09005800[] = { ++ALIGNED8 const u8 inside_09005800[] = { + #include "textures/inside/inside_castle_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture inside_09006000[] = { ++ALIGNED8 const u8 inside_09006000[] = { + #include "textures/inside/inside_castle_textures.06000.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture inside_09007000[] = { ++ALIGNED8 const u8 inside_09007000[] = { + #include "textures/inside/inside_castle_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture inside_09008000[] = { ++ALIGNED8 const u8 inside_09008000[] = { + #include "textures/inside/inside_castle_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture inside_09008800[] = { ++ALIGNED8 const u8 inside_09008800[] = { + #include "textures/inside/inside_castle_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture inside_09009000[] = { ++ALIGNED8 const u8 inside_09009000[] = { + #include "textures/inside/inside_castle_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture inside_0900A000[] = { ++ALIGNED8 const u8 inside_0900A000[] = { + #include "textures/inside/inside_castle_textures.0A000.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture inside_0900B000[] = { ++ALIGNED8 const u8 inside_0900B000[] = { + #include "textures/inside/inside_castle_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture inside_0900B800[] = { ++ALIGNED8 const u8 inside_0900B800[] = { + #include "textures/inside/inside_castle_textures.0B800.rgba16.inc.c" + }; diff --git a/bin/machine.c b/bin/machine.c index f3f447fe..95afb459 100644 --- a/bin/machine.c +++ b/bin/machine.c @@ -1,89 +1,88 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture machine_09000000[] = { +ALIGNED8 const u8 machine_09000000[] = { #include "textures/machine/ttc_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture machine_09000800[] = { +ALIGNED8 const u8 machine_09000800[] = { #include "textures/machine/ttc_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture machine_09001000[] = { +ALIGNED8 const u8 machine_09001000[] = { #include "textures/machine/ttc_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture machine_09001800[] = { +ALIGNED8 const u8 machine_09001800[] = { #include "textures/machine/ttc_textures.01800.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture machine_09002000[] = { +ALIGNED8 const u8 machine_09002000[] = { #include "textures/machine/ttc_textures.02000.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture machine_09002800[] = { +ALIGNED8 const u8 machine_09002800[] = { #include "textures/machine/ttc_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture machine_09003000[] = { +ALIGNED8 const u8 machine_09003000[] = { #include "textures/machine/ttc_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture machine_09003800[] = { +ALIGNED8 const u8 machine_09003800[] = { #include "textures/machine/ttc_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture machine_09004000[] = { +ALIGNED8 const u8 machine_09004000[] = { #include "textures/machine/ttc_textures.04000.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture machine_09005000[] = { +ALIGNED8 const u8 machine_09005000[] = { #include "textures/machine/ttc_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture machine_09005800[] = { +ALIGNED8 const u8 machine_09005800[] = { #include "textures/machine/ttc_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture machine_09006000[] = { +ALIGNED8 const u8 machine_09006000[] = { #include "textures/machine/ttc_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture machine_09006800[] = { +ALIGNED8 const u8 machine_09006800[] = { #include "textures/machine/ttc_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture machine_09007000[] = { +ALIGNED8 const u8 machine_09007000[] = { #include "textures/machine/ttc_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture machine_09007800[] = { +ALIGNED8 const u8 machine_09007800[] = { #include "textures/machine/ttc_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture machine_09008000[] = { +ALIGNED8 const u8 machine_09008000[] = { #include "textures/machine/ttc_textures.08000.rgba16.inc.c" }; // 0x09008400 -ALIGNED8 const Texture machine_09008400[] = { +ALIGNED8 const u8 machine_09008400[] = { #include "textures/machine/ttc_textures.08400.rgba16.inc.c" }; diff --git a/bin/machine.c.rej b/bin/machine.c.rej new file mode 100644 index 00000000..374107e5 --- /dev/null +++ b/bin/machine.c.rej @@ -0,0 +1,109 @@ +diff a/bin/machine.c b/bin/machine.c (rejected hunks) +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture machine_09000000[] = { ++ALIGNED8 const u8 machine_09000000[] = { + #include "textures/machine/ttc_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture machine_09000800[] = { ++ALIGNED8 const u8 machine_09000800[] = { + #include "textures/machine/ttc_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture machine_09001000[] = { ++ALIGNED8 const u8 machine_09001000[] = { + #include "textures/machine/ttc_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture machine_09001800[] = { ++ALIGNED8 const u8 machine_09001800[] = { + #include "textures/machine/ttc_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture machine_09002000[] = { ++ALIGNED8 const u8 machine_09002000[] = { + #include "textures/machine/ttc_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture machine_09002800[] = { ++ALIGNED8 const u8 machine_09002800[] = { + #include "textures/machine/ttc_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture machine_09003000[] = { ++ALIGNED8 const u8 machine_09003000[] = { + #include "textures/machine/ttc_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture machine_09003800[] = { ++ALIGNED8 const u8 machine_09003800[] = { + #include "textures/machine/ttc_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture machine_09004000[] = { ++ALIGNED8 const u8 machine_09004000[] = { + #include "textures/machine/ttc_textures.04000.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture machine_09005000[] = { ++ALIGNED8 const u8 machine_09005000[] = { + #include "textures/machine/ttc_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture machine_09005800[] = { ++ALIGNED8 const u8 machine_09005800[] = { + #include "textures/machine/ttc_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture machine_09006000[] = { ++ALIGNED8 const u8 machine_09006000[] = { + #include "textures/machine/ttc_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture machine_09006800[] = { ++ALIGNED8 const u8 machine_09006800[] = { + #include "textures/machine/ttc_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture machine_09007000[] = { ++ALIGNED8 const u8 machine_09007000[] = { + #include "textures/machine/ttc_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture machine_09007800[] = { ++ALIGNED8 const u8 machine_09007800[] = { + #include "textures/machine/ttc_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture machine_09008000[] = { ++ALIGNED8 const u8 machine_09008000[] = { + #include "textures/machine/ttc_textures.08000.rgba16.inc.c" + }; + + // 0x09008400 +-ALIGNED8 const Texture machine_09008400[] = { ++ALIGNED8 const u8 machine_09008400[] = { + #include "textures/machine/ttc_textures.08400.rgba16.inc.c" + }; diff --git a/bin/mountain.c b/bin/mountain.c index 2f3ae947..8a675c39 100644 --- a/bin/mountain.c +++ b/bin/mountain.c @@ -1,109 +1,108 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture mountain_09000000[] = { +ALIGNED8 const u8 mountain_09000000[] = { #include "textures/mountain/ttm_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture mountain_09000800[] = { +ALIGNED8 const u8 mountain_09000800[] = { #include "textures/mountain/ttm_textures.00800.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture mountain_09001800[] = { +ALIGNED8 const u8 mountain_09001800[] = { #include "textures/mountain/ttm_textures.01800.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture mountain_09002800[] = { +ALIGNED8 const u8 mountain_09002800[] = { #include "textures/mountain/ttm_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture mountain_09003000[] = { +ALIGNED8 const u8 mountain_09003000[] = { #include "textures/mountain/ttm_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture mountain_09003800[] = { +ALIGNED8 const u8 mountain_09003800[] = { #include "textures/mountain/ttm_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture mountain_09004000[] = { +ALIGNED8 const u8 mountain_09004000[] = { #include "textures/mountain/ttm_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture mountain_09004800[] = { +ALIGNED8 const u8 mountain_09004800[] = { #include "textures/mountain/ttm_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture mountain_09005000[] = { +ALIGNED8 const u8 mountain_09005000[] = { #include "textures/mountain/ttm_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture mountain_09005800[] = { +ALIGNED8 const u8 mountain_09005800[] = { #include "textures/mountain/ttm_textures.05800.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture mountain_09006800[] = { +ALIGNED8 const u8 mountain_09006800[] = { #include "textures/mountain/ttm_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture mountain_09007000[] = { +ALIGNED8 const u8 mountain_09007000[] = { #include "textures/mountain/ttm_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture mountain_09007800[] = { +ALIGNED8 const u8 mountain_09007800[] = { #include "textures/mountain/ttm_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture mountain_09008000[] = { +ALIGNED8 const u8 mountain_09008000[] = { #include "textures/mountain/ttm_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture mountain_09008800[] = { +ALIGNED8 const u8 mountain_09008800[] = { #include "textures/mountain/ttm_textures.08800.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture mountain_09009800[] = { +ALIGNED8 const u8 mountain_09009800[] = { #include "textures/mountain/ttm_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture mountain_0900A000[] = { +ALIGNED8 const u8 mountain_0900A000[] = { #include "textures/mountain/ttm_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture mountain_0900A800[] = { +ALIGNED8 const u8 mountain_0900A800[] = { #include "textures/mountain/ttm_textures.0A800.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture mountain_0900B000[] = { +ALIGNED8 const u8 mountain_0900B000[] = { #include "textures/mountain/ttm_textures.0B000.rgba16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture mountain_0900B800[] = { +ALIGNED8 const u8 mountain_0900B800[] = { #include "textures/mountain/ttm_textures.0B800.rgba16.inc.c" }; // 0x0900C000 -ALIGNED8 const Texture mountain_0900C000[] = { +ALIGNED8 const u8 mountain_0900C000[] = { #include "textures/mountain/ttm_textures.0C000.rgba16.inc.c" }; diff --git a/bin/mountain.c.rej b/bin/mountain.c.rej new file mode 100644 index 00000000..14f0e97d --- /dev/null +++ b/bin/mountain.c.rej @@ -0,0 +1,133 @@ +diff a/bin/mountain.c b/bin/mountain.c (rejected hunks) +@@ -1,109 +1,108 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture mountain_09000000[] = { ++ALIGNED8 const u8 mountain_09000000[] = { + #include "textures/mountain/ttm_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture mountain_09000800[] = { ++ALIGNED8 const u8 mountain_09000800[] = { + #include "textures/mountain/ttm_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture mountain_09001800[] = { ++ALIGNED8 const u8 mountain_09001800[] = { + #include "textures/mountain/ttm_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture mountain_09002800[] = { ++ALIGNED8 const u8 mountain_09002800[] = { + #include "textures/mountain/ttm_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture mountain_09003000[] = { ++ALIGNED8 const u8 mountain_09003000[] = { + #include "textures/mountain/ttm_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture mountain_09003800[] = { ++ALIGNED8 const u8 mountain_09003800[] = { + #include "textures/mountain/ttm_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture mountain_09004000[] = { ++ALIGNED8 const u8 mountain_09004000[] = { + #include "textures/mountain/ttm_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture mountain_09004800[] = { ++ALIGNED8 const u8 mountain_09004800[] = { + #include "textures/mountain/ttm_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture mountain_09005000[] = { ++ALIGNED8 const u8 mountain_09005000[] = { + #include "textures/mountain/ttm_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture mountain_09005800[] = { ++ALIGNED8 const u8 mountain_09005800[] = { + #include "textures/mountain/ttm_textures.05800.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture mountain_09006800[] = { ++ALIGNED8 const u8 mountain_09006800[] = { + #include "textures/mountain/ttm_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture mountain_09007000[] = { ++ALIGNED8 const u8 mountain_09007000[] = { + #include "textures/mountain/ttm_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture mountain_09007800[] = { ++ALIGNED8 const u8 mountain_09007800[] = { + #include "textures/mountain/ttm_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture mountain_09008000[] = { ++ALIGNED8 const u8 mountain_09008000[] = { + #include "textures/mountain/ttm_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture mountain_09008800[] = { ++ALIGNED8 const u8 mountain_09008800[] = { + #include "textures/mountain/ttm_textures.08800.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture mountain_09009800[] = { ++ALIGNED8 const u8 mountain_09009800[] = { + #include "textures/mountain/ttm_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture mountain_0900A000[] = { ++ALIGNED8 const u8 mountain_0900A000[] = { + #include "textures/mountain/ttm_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture mountain_0900A800[] = { ++ALIGNED8 const u8 mountain_0900A800[] = { + #include "textures/mountain/ttm_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture mountain_0900B000[] = { ++ALIGNED8 const u8 mountain_0900B000[] = { + #include "textures/mountain/ttm_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture mountain_0900B800[] = { ++ALIGNED8 const u8 mountain_0900B800[] = { + #include "textures/mountain/ttm_textures.0B800.rgba16.inc.c" + }; + + // 0x0900C000 +-ALIGNED8 const Texture mountain_0900C000[] = { ++ALIGNED8 const u8 mountain_0900C000[] = { + #include "textures/mountain/ttm_textures.0C000.rgba16.inc.c" + }; diff --git a/bin/outside.c b/bin/outside.c index 50cae362..8de85134 100644 --- a/bin/outside.c +++ b/bin/outside.c @@ -1,109 +1,109 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture outside_09000000[] = { +ALIGNED8 const u8 outside_09000000[] = { #include "textures/outside/castle_grounds_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture outside_09000800[] = { +ALIGNED8 const u8 outside_09000800[] = { #include "textures/outside/castle_grounds_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture outside_09001000[] = { +ALIGNED8 const u8 outside_09001000[] = { #include "textures/outside/castle_grounds_textures.01000.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture outside_09002000[] = { +ALIGNED8 const u8 outside_09002000[] = { #include "textures/outside/castle_grounds_textures.02000.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture outside_09003000[] = { +ALIGNED8 const u8 outside_09003000[] = { #include "textures/outside/castle_grounds_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture outside_09003800[] = { +ALIGNED8 const u8 outside_09003800[] = { #include "textures/outside/castle_grounds_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture outside_09004000[] = { +ALIGNED8 const u8 outside_09004000[] = { #include "textures/outside/castle_grounds_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture outside_09004800[] = { +ALIGNED8 const u8 outside_09004800[] = { #include "textures/outside/castle_grounds_textures.04800.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture outside_09005800[] = { +ALIGNED8 const u8 outside_09005800[] = { #include "textures/outside/castle_grounds_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture outside_09006000[] = { +ALIGNED8 const u8 outside_09006000[] = { #include "textures/outside/castle_grounds_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture outside_09006800[] = { +ALIGNED8 const u8 outside_09006800[] = { #include "textures/outside/castle_grounds_textures.06800.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture outside_09007800[] = { +ALIGNED8 const u8 outside_09007800[] = { #include "textures/outside/castle_grounds_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture outside_09008000[] = { +ALIGNED8 const u8 outside_09008000[] = { #include "textures/outside/castle_grounds_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture outside_09008800[] = { +ALIGNED8 const u8 outside_09008800[] = { #include "textures/outside/castle_grounds_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture outside_09009000[] = { +ALIGNED8 const u8 outside_09009000[] = { #include "textures/outside/castle_grounds_textures.09000.rgba16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture outside_09009800[] = { +ALIGNED8 const u8 outside_09009800[] = { #include "textures/outside/castle_grounds_textures.09800.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture outside_0900A000[] = { +ALIGNED8 const u8 outside_0900A000[] = { #include "textures/outside/castle_grounds_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture outside_0900A800[] = { +ALIGNED8 const u8 outside_0900A800[] = { #include "textures/outside/castle_grounds_textures.0A800.rgba16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture outside_0900B000[] = { +ALIGNED8 const u8 outside_0900B000[] = { #include "textures/outside/castle_grounds_textures.0B000.rgba16.inc.c" }; // 0x0900B400 -ALIGNED8 const Texture outside_0900B400[] = { +ALIGNED8 const u8 outside_0900B400[] = { #include "textures/outside/castle_grounds_textures.0B400.rgba16.inc.c" }; // 0x0900BC00 -ALIGNED8 const Texture outside_0900BC00[] = { +ALIGNED8 const u8 outside_0900BC00[] = { #include "textures/outside/castle_grounds_textures.0BC00.ia16.inc.c" }; + diff --git a/bin/outside.c.rej b/bin/outside.c.rej new file mode 100644 index 00000000..2f45b3a1 --- /dev/null +++ b/bin/outside.c.rej @@ -0,0 +1,134 @@ +diff a/bin/outside.c b/bin/outside.c (rejected hunks) +@@ -1,109 +1,109 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture outside_09000000[] = { ++ALIGNED8 const u8 outside_09000000[] = { + #include "textures/outside/castle_grounds_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture outside_09000800[] = { ++ALIGNED8 const u8 outside_09000800[] = { + #include "textures/outside/castle_grounds_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture outside_09001000[] = { ++ALIGNED8 const u8 outside_09001000[] = { + #include "textures/outside/castle_grounds_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture outside_09002000[] = { ++ALIGNED8 const u8 outside_09002000[] = { + #include "textures/outside/castle_grounds_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture outside_09003000[] = { ++ALIGNED8 const u8 outside_09003000[] = { + #include "textures/outside/castle_grounds_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture outside_09003800[] = { ++ALIGNED8 const u8 outside_09003800[] = { + #include "textures/outside/castle_grounds_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture outside_09004000[] = { ++ALIGNED8 const u8 outside_09004000[] = { + #include "textures/outside/castle_grounds_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture outside_09004800[] = { ++ALIGNED8 const u8 outside_09004800[] = { + #include "textures/outside/castle_grounds_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture outside_09005800[] = { ++ALIGNED8 const u8 outside_09005800[] = { + #include "textures/outside/castle_grounds_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture outside_09006000[] = { ++ALIGNED8 const u8 outside_09006000[] = { + #include "textures/outside/castle_grounds_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture outside_09006800[] = { ++ALIGNED8 const u8 outside_09006800[] = { + #include "textures/outside/castle_grounds_textures.06800.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture outside_09007800[] = { ++ALIGNED8 const u8 outside_09007800[] = { + #include "textures/outside/castle_grounds_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture outside_09008000[] = { ++ALIGNED8 const u8 outside_09008000[] = { + #include "textures/outside/castle_grounds_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture outside_09008800[] = { ++ALIGNED8 const u8 outside_09008800[] = { + #include "textures/outside/castle_grounds_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture outside_09009000[] = { ++ALIGNED8 const u8 outside_09009000[] = { + #include "textures/outside/castle_grounds_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture outside_09009800[] = { ++ALIGNED8 const u8 outside_09009800[] = { + #include "textures/outside/castle_grounds_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture outside_0900A000[] = { ++ALIGNED8 const u8 outside_0900A000[] = { + #include "textures/outside/castle_grounds_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture outside_0900A800[] = { ++ALIGNED8 const u8 outside_0900A800[] = { + #include "textures/outside/castle_grounds_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture outside_0900B000[] = { ++ALIGNED8 const u8 outside_0900B000[] = { + #include "textures/outside/castle_grounds_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B400 +-ALIGNED8 const Texture outside_0900B400[] = { ++ALIGNED8 const u8 outside_0900B400[] = { + #include "textures/outside/castle_grounds_textures.0B400.rgba16.inc.c" + }; + + // 0x0900BC00 +-ALIGNED8 const Texture outside_0900BC00[] = { ++ALIGNED8 const u8 outside_0900BC00[] = { + #include "textures/outside/castle_grounds_textures.0BC00.ia16.inc.c" + }; ++ diff --git a/bin/segment2.c b/bin/segment2.c index eb2bdb3a..ca536e57 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -1,1811 +1,1807 @@ -#include -#include - -#include "config.h" -#include "macros.h" -#include "types.h" +#include +#include "sm64.h" #include "game/ingame_menu.h" #include "make_const_nonconst.h" -// SM64 (US/JP/EU/SH) Segment 02 +// SM64 (US/JP/EU) Segment 02 -ALIGNED8 static const Texture texture_hud_char_0[] = { +ALIGNED8 static const u8 texture_hud_char_0[] = { #include "textures/segment2/segment2.00000.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_1[] = { +ALIGNED8 static const u8 texture_hud_char_1[] = { #include "textures/segment2/segment2.00200.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_2[] = { +ALIGNED8 static const u8 texture_hud_char_2[] = { #include "textures/segment2/segment2.00400.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_3[] = { +ALIGNED8 static const u8 texture_hud_char_3[] = { #include "textures/segment2/segment2.00600.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_4[] = { +ALIGNED8 static const u8 texture_hud_char_4[] = { #include "textures/segment2/segment2.00800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_5[] = { +ALIGNED8 static const u8 texture_hud_char_5[] = { #include "textures/segment2/segment2.00A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_6[] = { +ALIGNED8 static const u8 texture_hud_char_6[] = { #include "textures/segment2/segment2.00C00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_7[] = { +ALIGNED8 static const u8 texture_hud_char_7[] = { #include "textures/segment2/segment2.00E00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_8[] = { +ALIGNED8 static const u8 texture_hud_char_8[] = { #include "textures/segment2/segment2.01000.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_9[] = { +ALIGNED8 static const u8 texture_hud_char_9[] = { #include "textures/segment2/segment2.01200.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_A[] = { +ALIGNED8 static const u8 texture_hud_char_A[] = { #include "textures/segment2/segment2.01400.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_B[] = { +ALIGNED8 static const u8 texture_hud_char_B[] = { #include "textures/segment2/segment2.01600.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_C[] = { +ALIGNED8 static const u8 texture_hud_char_C[] = { #include "textures/segment2/segment2.01800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_D[] = { +ALIGNED8 static const u8 texture_hud_char_D[] = { #include "textures/segment2/segment2.01A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_E[] = { +ALIGNED8 static const u8 texture_hud_char_E[] = { #include "textures/segment2/segment2.01C00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_F[] = { +ALIGNED8 static const u8 texture_hud_char_F[] = { #include "textures/segment2/segment2.01E00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_G[] = { +ALIGNED8 static const u8 texture_hud_char_G[] = { #include "textures/segment2/segment2.02000.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_H[] = { +ALIGNED8 static const u8 texture_hud_char_H[] = { #include "textures/segment2/segment2.02200.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_I[] = { +ALIGNED8 static const u8 texture_hud_char_I[] = { #include "textures/segment2/segment2.02400.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_J[] = { +ALIGNED8 static const u8 texture_hud_char_J[] = { #include "textures/segment2/segment2.02600.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_K[] = { +ALIGNED8 static const u8 texture_hud_char_K[] = { #include "textures/segment2/segment2.02800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_L[] = { +ALIGNED8 static const u8 texture_hud_char_L[] = { #include "textures/segment2/segment2.02A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_M[] = { +ALIGNED8 static const u8 texture_hud_char_M[] = { #include "textures/segment2/segment2.02C00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_N[] = { +ALIGNED8 static const u8 texture_hud_char_N[] = { #include "textures/segment2/segment2.02E00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_O[] = { +ALIGNED8 static const u8 texture_hud_char_O[] = { #include "textures/segment2/segment2.03000.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_P[] = { +ALIGNED8 static const u8 texture_hud_char_P[] = { #include "textures/segment2/segment2.03200.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_Q[] = { +ALIGNED8 static const u8 texture_hud_char_Q[] = { #include "textures/segment2/segment2.03400.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_R[] = { +ALIGNED8 static const u8 texture_hud_char_R[] = { #include "textures/segment2/segment2.03600.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_S[] = { +ALIGNED8 static const u8 texture_hud_char_S[] = { #include "textures/segment2/segment2.03800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_T[] = { +ALIGNED8 static const u8 texture_hud_char_T[] = { #include "textures/segment2/segment2.03A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_U[] = { +ALIGNED8 static const u8 texture_hud_char_U[] = { #include "textures/segment2/segment2.03C00.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_V[] = { +ALIGNED8 static const u8 texture_hud_char_V[] = { #include "textures/segment2/segment2.03E00.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_W[] = { +ALIGNED8 static const u8 texture_hud_char_W[] = { #include "textures/segment2/segment2.04000.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_X[] = { +ALIGNED8 static const u8 texture_hud_char_X[] = { #include "textures/segment2/segment2.04200.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_Y[] = { +ALIGNED8 static const u8 texture_hud_char_Y[] = { #include "textures/segment2/segment2.04400.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_Z[] = { +ALIGNED8 static const u8 texture_hud_char_Z[] = { #include "textures/segment2/segment2.04600.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_apostrophe[] = { +ALIGNED8 static const u8 texture_hud_char_apostrophe[] = { #include "textures/segment2/segment2.04800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_double_quote[] = { +ALIGNED8 static const u8 texture_hud_char_double_quote[] = { #include "textures/segment2/segment2.04A00.rgba16.inc.c" }; #ifdef VERSION_EU -ALIGNED8 static const Texture texture_hud_char_umlaut[] = { +ALIGNED8 static const u8 texture_hud_char_umlaut[] = { #include "textures/segment2/segment2.umlaut.rgba16.inc.c"// EU ¨ }; #endif #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_exclamation[] = { +ALIGNED8 static const u8 texture_hud_char_exclamation[] = { #include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP ! }; -ALIGNED8 static const Texture texture_hud_char_double_exclamation[] = { +ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = { #include "textures/segment2/segment2.04E00.rgba16.inc.c"// JP !! }; -ALIGNED8 static const Texture texture_hud_char_question[] = { +ALIGNED8 static const u8 texture_hud_char_question[] = { #include "textures/segment2/segment2.05000.rgba16.inc.c"// JP ? }; -ALIGNED8 static const Texture texture_hud_char_ampersand[] = { +ALIGNED8 static const u8 texture_hud_char_ampersand[] = { #include "textures/segment2/segment2.05200.rgba16.inc.c"// JP & }; -ALIGNED8 static const Texture texture_hud_char_percent[] = { +ALIGNED8 static const u8 texture_hud_char_percent[] = { #include "textures/segment2/segment2.05400.rgba16.inc.c"// JP % }; #endif -ALIGNED8 static const Texture texture_hud_char_multiply[] = { +ALIGNED8 static const u8 texture_hud_char_multiply[] = { #include "textures/segment2/segment2.05600.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_coin[] = { +ALIGNED8 static const u8 texture_hud_char_coin[] = { #include "textures/segment2/segment2.05800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_mario_head[] = { +ALIGNED8 static const u8 texture_hud_char_mario_head[] = { #include "textures/segment2/segment2.05A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_star[] = { +ALIGNED8 static const u8 texture_hud_char_star[] = { #include "textures/segment2/segment2.05C00.rgba16.inc.c" }; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_decimal_point[] = { +ALIGNED8 static const u8 texture_hud_char_decimal_point[] = { #include "textures/segment2/segment2.05E00.rgba16.inc.c" }; #endif #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_hud_char_beta_key[] = { +ALIGNED8 static const u8 texture_hud_char_beta_key[] = { #include "textures/segment2/segment2.06000.rgba16.inc.c" }; #endif -ALIGNED8 static const Texture texture_credits_char_3[] = { +ALIGNED8 static const u8 texture_credits_char_3[] = { #include "textures/segment2/segment2.06200.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_4[] = { +ALIGNED8 static const u8 texture_credits_char_4[] = { #include "textures/segment2/segment2.06280.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_6[] = { +ALIGNED8 static const u8 texture_credits_char_6[] = { #include "textures/segment2/segment2.06300.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_A[] = { +ALIGNED8 static const u8 texture_credits_char_A[] = { #include "textures/segment2/segment2.06380.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_B[] = { +ALIGNED8 static const u8 texture_credits_char_B[] = { #include "textures/segment2/segment2.06400.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_C[] = { +ALIGNED8 static const u8 texture_credits_char_C[] = { #include "textures/segment2/segment2.06480.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_D[] = { +ALIGNED8 static const u8 texture_credits_char_D[] = { #include "textures/segment2/segment2.06500.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_E[] = { +ALIGNED8 static const u8 texture_credits_char_E[] = { #include "textures/segment2/segment2.06580.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_F[] = { +ALIGNED8 static const u8 texture_credits_char_F[] = { #include "textures/segment2/segment2.06600.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_G[] = { +ALIGNED8 static const u8 texture_credits_char_G[] = { #include "textures/segment2/segment2.06680.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_H[] = { +ALIGNED8 static const u8 texture_credits_char_H[] = { #include "textures/segment2/segment2.06700.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_I[] = { +ALIGNED8 static const u8 texture_credits_char_I[] = { #include "textures/segment2/segment2.06780.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_J[] = { +ALIGNED8 static const u8 texture_credits_char_J[] = { #include "textures/segment2/segment2.06800.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_K[] = { +ALIGNED8 static const u8 texture_credits_char_K[] = { #include "textures/segment2/segment2.06880.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_L[] = { +ALIGNED8 static const u8 texture_credits_char_L[] = { #include "textures/segment2/segment2.06900.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_M[] = { +ALIGNED8 static const u8 texture_credits_char_M[] = { #include "textures/segment2/segment2.06980.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_N[] = { +ALIGNED8 static const u8 texture_credits_char_N[] = { #include "textures/segment2/segment2.06A00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_O[] = { +ALIGNED8 static const u8 texture_credits_char_O[] = { #include "textures/segment2/segment2.06A80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_P[] = { +ALIGNED8 static const u8 texture_credits_char_P[] = { #include "textures/segment2/segment2.06B00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_Q[] = { +ALIGNED8 static const u8 texture_credits_char_Q[] = { #include "textures/segment2/segment2.06B80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_R[] = { +ALIGNED8 static const u8 texture_credits_char_R[] = { #include "textures/segment2/segment2.06C00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_S[] = { +ALIGNED8 static const u8 texture_credits_char_S[] = { #include "textures/segment2/segment2.06C80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_T[] = { +ALIGNED8 static const u8 texture_credits_char_T[] = { #include "textures/segment2/segment2.06D00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_U[] = { +ALIGNED8 static const u8 texture_credits_char_U[] = { #include "textures/segment2/segment2.06D80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_V[] = { +ALIGNED8 static const u8 texture_credits_char_V[] = { #include "textures/segment2/segment2.06E00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_W[] = { +ALIGNED8 static const u8 texture_credits_char_W[] = { #include "textures/segment2/segment2.06E80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_X[] = { +ALIGNED8 static const u8 texture_credits_char_X[] = { #include "textures/segment2/segment2.06F00.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_Y[] = { +ALIGNED8 static const u8 texture_credits_char_Y[] = { #include "textures/segment2/segment2.06F80.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_Z[] = { +ALIGNED8 static const u8 texture_credits_char_Z[] = { #include "textures/segment2/segment2.07000.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_credits_char_period[] = { +ALIGNED8 static const u8 texture_credits_char_period[] = { #include "textures/segment2/segment2.07080.rgba16.inc.c" }; // JP Small Font #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const Texture texture_font_char_jp_0[] = { +ALIGNED8 static const u8 texture_font_char_jp_0[] = { #include "textures/segment2/segment2.07100.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_1[] = { +ALIGNED8 static const u8 texture_font_char_jp_1[] = { #include "textures/segment2/segment2.07110.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_2[] = { +ALIGNED8 static const u8 texture_font_char_jp_2[] = { #include "textures/segment2/segment2.07120.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_3[] = { +ALIGNED8 static const u8 texture_font_char_jp_3[] = { #include "textures/segment2/segment2.07130.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_4[] = { +ALIGNED8 static const u8 texture_font_char_jp_4[] = { #include "textures/segment2/segment2.07140.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_5[] = { +ALIGNED8 static const u8 texture_font_char_jp_5[] = { #include "textures/segment2/segment2.07150.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_6[] = { +ALIGNED8 static const u8 texture_font_char_jp_6[] = { #include "textures/segment2/segment2.07160.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_7[] = { +ALIGNED8 static const u8 texture_font_char_jp_7[] = { #include "textures/segment2/segment2.07170.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_8[] = { +ALIGNED8 static const u8 texture_font_char_jp_8[] = { #include "textures/segment2/segment2.07180.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_9[] = { +ALIGNED8 static const u8 texture_font_char_jp_9[] = { #include "textures/segment2/segment2.07190.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_A[] = { +ALIGNED8 static const u8 texture_font_char_jp_A[] = { #include "textures/segment2/segment2.071A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_B[] = { +ALIGNED8 static const u8 texture_font_char_jp_B[] = { #include "textures/segment2/segment2.071B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_C[] = { +ALIGNED8 static const u8 texture_font_char_jp_C[] = { #include "textures/segment2/segment2.071C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_D[] = { +ALIGNED8 static const u8 texture_font_char_jp_D[] = { #include "textures/segment2/segment2.071D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_E[] = { +ALIGNED8 static const u8 texture_font_char_jp_E[] = { #include "textures/segment2/segment2.071E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_F[] = { +ALIGNED8 static const u8 texture_font_char_jp_F[] = { #include "textures/segment2/segment2.071F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_G[] = { +ALIGNED8 static const u8 texture_font_char_jp_G[] = { #include "textures/segment2/segment2.07200.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_H[] = { +ALIGNED8 static const u8 texture_font_char_jp_H[] = { #include "textures/segment2/segment2.07210.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_I[] = { +ALIGNED8 static const u8 texture_font_char_jp_I[] = { #include "textures/segment2/segment2.07220.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_J[] = { +ALIGNED8 static const u8 texture_font_char_jp_J[] = { #include "textures/segment2/segment2.07230.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_K[] = { +ALIGNED8 static const u8 texture_font_char_jp_K[] = { #include "textures/segment2/segment2.07240.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_L[] = { +ALIGNED8 static const u8 texture_font_char_jp_L[] = { #include "textures/segment2/segment2.07250.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_M[] = { +ALIGNED8 static const u8 texture_font_char_jp_M[] = { #include "textures/segment2/segment2.07260.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_N[] = { +ALIGNED8 static const u8 texture_font_char_jp_N[] = { #include "textures/segment2/segment2.07270.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_O[] = { +ALIGNED8 static const u8 texture_font_char_jp_O[] = { #include "textures/segment2/segment2.07280.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_P[] = { +ALIGNED8 static const u8 texture_font_char_jp_P[] = { #include "textures/segment2/segment2.07290.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_Q[] = { +ALIGNED8 static const u8 texture_font_char_jp_Q[] = { #include "textures/segment2/segment2.072A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_R[] = { +ALIGNED8 static const u8 texture_font_char_jp_R[] = { #include "textures/segment2/segment2.072B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_S[] = { +ALIGNED8 static const u8 texture_font_char_jp_S[] = { #include "textures/segment2/segment2.072C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_T[] = { +ALIGNED8 static const u8 texture_font_char_jp_T[] = { #include "textures/segment2/segment2.072D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_U[] = { +ALIGNED8 static const u8 texture_font_char_jp_U[] = { #include "textures/segment2/segment2.072E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_V[] = { +ALIGNED8 static const u8 texture_font_char_jp_V[] = { #include "textures/segment2/segment2.072F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_W[] = { +ALIGNED8 static const u8 texture_font_char_jp_W[] = { #include "textures/segment2/segment2.07300.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_X[] = { +ALIGNED8 static const u8 texture_font_char_jp_X[] = { #include "textures/segment2/segment2.07310.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_Y[] = { +ALIGNED8 static const u8 texture_font_char_jp_Y[] = { #include "textures/segment2/segment2.07320.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_Z[] = { +ALIGNED8 static const u8 texture_font_char_jp_Z[] = { #include "textures/segment2/segment2.07330.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_long_vowel[] = { +ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = { #include "textures/segment2/segment2.07340.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_exclamation[] = { +ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = { #include "textures/segment2/segment2.07350.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_dakuten[] = { +ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = { #include "textures/segment2/segment2.07360.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_handakuten[] = { +ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = { #include "textures/segment2/segment2.07370.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_percent[] = { +ALIGNED8 static const u8 texture_font_char_jp_percent[] = { #include "textures/segment2/segment2.07380.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_question[] = { +ALIGNED8 static const u8 texture_font_char_jp_question[] = { #include "textures/segment2/segment2.07390.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_left_right_arrow[] = { +ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = { #include "textures/segment2/segment2.073A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = { #include "textures/segment2/segment2.073B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_close_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = { #include "textures/segment2/segment2.073C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_close_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = { #include "textures/segment2/segment2.073D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_coin[] = { +ALIGNED8 static const u8 texture_font_char_jp_coin[] = { #include "textures/segment2/segment2.073E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_multiply[] = { +ALIGNED8 static const u8 texture_font_char_jp_multiply[] = { #include "textures/segment2/segment2.073F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_star_filled[] = { +ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = { #include "textures/segment2/segment2.07400.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_star_hollow[] = { +ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = { #include "textures/segment2/segment2.07410.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_a[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = { #include "textures/segment2/segment2.07420.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_i[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = { #include "textures/segment2/segment2.07430.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_u[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = { #include "textures/segment2/segment2.07440.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_c[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = { #include "textures/segment2/segment2.07450.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_o[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = { #include "textures/segment2/segment2.07460.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ka[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = { #include "textures/segment2/segment2.07470.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ki[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = { #include "textures/segment2/segment2.07480.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ku[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = { #include "textures/segment2/segment2.07490.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ke[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = { #include "textures/segment2/segment2.074A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ko[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = { #include "textures/segment2/segment2.074B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_sa[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = { #include "textures/segment2/segment2.074C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_shi[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = { #include "textures/segment2/segment2.074D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_su[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = { #include "textures/segment2/segment2.074E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_se[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = { #include "textures/segment2/segment2.074F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_so[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = { #include "textures/segment2/segment2.07500.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ta[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = { #include "textures/segment2/segment2.07510.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_chi[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = { #include "textures/segment2/segment2.07520.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_tsu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = { #include "textures/segment2/segment2.07530.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_te[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = { #include "textures/segment2/segment2.07540.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_to[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = { #include "textures/segment2/segment2.07550.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_na[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = { #include "textures/segment2/segment2.07560.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ni[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = { #include "textures/segment2/segment2.07570.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_nu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = { #include "textures/segment2/segment2.07580.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ne[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = { #include "textures/segment2/segment2.07590.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_no[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = { #include "textures/segment2/segment2.075A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ha[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = { #include "textures/segment2/segment2.075B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_hi[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = { #include "textures/segment2/segment2.075C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_hu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = { #include "textures/segment2/segment2.075D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_he[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = { #include "textures/segment2/segment2.075E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ho[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = { #include "textures/segment2/segment2.075F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ma[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = { #include "textures/segment2/segment2.07600.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_mi[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = { #include "textures/segment2/segment2.07610.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_mu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = { #include "textures/segment2/segment2.07620.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_me[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = { #include "textures/segment2/segment2.07630.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_mo[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = { #include "textures/segment2/segment2.07640.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ya[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = { #include "textures/segment2/segment2.07650.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_yu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = { #include "textures/segment2/segment2.07660.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_yo[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = { #include "textures/segment2/segment2.07670.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ra[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = { #include "textures/segment2/segment2.07680.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ri[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = { #include "textures/segment2/segment2.07690.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ru[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = { #include "textures/segment2/segment2.076A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_re[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = { #include "textures/segment2/segment2.076B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_ro[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = { #include "textures/segment2/segment2.076C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_wa[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = { #include "textures/segment2/segment2.076D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_wo[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = { #include "textures/segment2/segment2.076E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_n[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = { #include "textures/segment2/segment2.076F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_e[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = { #include "textures/segment2/segment2.07700.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_tsu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = { #include "textures/segment2/segment2.07710.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_ya[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = { #include "textures/segment2/segment2.07720.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yu[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = { #include "textures/segment2/segment2.07730.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yo[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = { #include "textures/segment2/segment2.07740.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_a[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = { #include "textures/segment2/segment2.07750.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_i[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = { #include "textures/segment2/segment2.07760.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_o[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = { #include "textures/segment2/segment2.07770.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_u[] = { +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = { #include "textures/segment2/segment2.07780.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_interpunct[] = { +ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = { #include "textures/segment2/segment2.07790.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_comma[] = { +ALIGNED8 static const u8 texture_font_char_jp_comma[] = { #include "textures/segment2/segment2.077A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_a[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = { #include "textures/segment2/segment2.077B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_i[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = { #include "textures/segment2/segment2.077C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_u[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = { #include "textures/segment2/segment2.077D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_e[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = { #include "textures/segment2/segment2.077E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_o[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = { #include "textures/segment2/segment2.077F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ka[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = { #include "textures/segment2/segment2.07800.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ki[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = { #include "textures/segment2/segment2.07810.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ku[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = { #include "textures/segment2/segment2.07820.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ke[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = { #include "textures/segment2/segment2.07830.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ko[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = { #include "textures/segment2/segment2.07840.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_sa[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = { #include "textures/segment2/segment2.07850.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_shi[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = { #include "textures/segment2/segment2.07860.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_su[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = { #include "textures/segment2/segment2.07870.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_se[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = { #include "textures/segment2/segment2.07880.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_so[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = { #include "textures/segment2/segment2.07890.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ta[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = { #include "textures/segment2/segment2.078A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_chi[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = { #include "textures/segment2/segment2.078B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_tsu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = { #include "textures/segment2/segment2.078C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_te[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = { #include "textures/segment2/segment2.078D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_to[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = { #include "textures/segment2/segment2.078E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_na[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = { #include "textures/segment2/segment2.078F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ni[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = { #include "textures/segment2/segment2.07900.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_nu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = { #include "textures/segment2/segment2.07910.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ne[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = { #include "textures/segment2/segment2.07920.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_no[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = { #include "textures/segment2/segment2.07930.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ha[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = { #include "textures/segment2/segment2.07940.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_hi[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = { #include "textures/segment2/segment2.07950.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_hu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = { #include "textures/segment2/segment2.07960.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_he[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = { #include "textures/segment2/segment2.07970.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ho[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = { #include "textures/segment2/segment2.07980.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ma[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = { #include "textures/segment2/segment2.07990.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_mi[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = { #include "textures/segment2/segment2.079A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_mu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = { #include "textures/segment2/segment2.079B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_me[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = { #include "textures/segment2/segment2.079C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_mo[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = { #include "textures/segment2/segment2.079D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ya[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = { #include "textures/segment2/segment2.079E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_yu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = { #include "textures/segment2/segment2.079F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_yo[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = { #include "textures/segment2/segment2.07A00.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ra[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = { #include "textures/segment2/segment2.07A10.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ri[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = { #include "textures/segment2/segment2.07A20.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ru[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = { #include "textures/segment2/segment2.07A30.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_re[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = { #include "textures/segment2/segment2.07A40.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_ro[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = { #include "textures/segment2/segment2.07A50.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_wa[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = { #include "textures/segment2/segment2.07A60.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_n[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = { #include "textures/segment2/segment2.07A70.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_e[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = { #include "textures/segment2/segment2.07A80.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_tsu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = { #include "textures/segment2/segment2.07A90.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_ya[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = { #include "textures/segment2/segment2.07AA0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yu[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = { #include "textures/segment2/segment2.07AB0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yo[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = { #include "textures/segment2/segment2.07AC0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_a[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = { #include "textures/segment2/segment2.07AD0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_i[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = { #include "textures/segment2/segment2.07AE0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_u[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = { #include "textures/segment2/segment2.07AF0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_katakana_small_o[] = { +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = { #include "textures/segment2/segment2.07B00.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_double_quotation_open[] = { +ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = { #include "textures/segment2/segment2.07B10.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_double_quotation_close[] = { +ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = { #include "textures/segment2/segment2.07B20.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_wave_dash[] = { +ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = { #include "textures/segment2/segment2.07B30.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_jp_ellipsis[] = { +ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = { #include "textures/segment2/segment2.07B40.ia1.inc.c" }; // EU Small Font #elif defined(VERSION_EU) -ALIGNED8 static const Texture texture_font_char_eu_0[] = { +ALIGNED8 static const u8 texture_font_char_eu_0[] = { #include "textures/segment2/font_graphics.05F00.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_1[] = { +ALIGNED8 static const u8 texture_font_char_eu_1[] = { #include "textures/segment2/font_graphics.05F10.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_2[] = { +ALIGNED8 static const u8 texture_font_char_eu_2[] = { #include "textures/segment2/font_graphics.05F20.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_3[] = { +ALIGNED8 static const u8 texture_font_char_eu_3[] = { #include "textures/segment2/font_graphics.05F30.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_4[] = { +ALIGNED8 static const u8 texture_font_char_eu_4[] = { #include "textures/segment2/font_graphics.05F40.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_5[] = { +ALIGNED8 static const u8 texture_font_char_eu_5[] = { #include "textures/segment2/font_graphics.05F50.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_6[] = { +ALIGNED8 static const u8 texture_font_char_eu_6[] = { #include "textures/segment2/font_graphics.05F60.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_7[] = { +ALIGNED8 static const u8 texture_font_char_eu_7[] = { #include "textures/segment2/font_graphics.05F70.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_8[] = { +ALIGNED8 static const u8 texture_font_char_eu_8[] = { #include "textures/segment2/font_graphics.05F80.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_9[] = { +ALIGNED8 static const u8 texture_font_char_eu_9[] = { #include "textures/segment2/font_graphics.05F90.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_A[] = { +ALIGNED8 static const u8 texture_font_char_eu_A[] = { #include "textures/segment2/font_graphics.05FA0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_B[] = { +ALIGNED8 static const u8 texture_font_char_eu_B[] = { #include "textures/segment2/font_graphics.05FB0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_C[] = { +ALIGNED8 static const u8 texture_font_char_eu_C[] = { #include "textures/segment2/font_graphics.05FC0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_D[] = { +ALIGNED8 static const u8 texture_font_char_eu_D[] = { #include "textures/segment2/font_graphics.05FD0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_E[] = { +ALIGNED8 static const u8 texture_font_char_eu_E[] = { #include "textures/segment2/font_graphics.05FE0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_F[] = { +ALIGNED8 static const u8 texture_font_char_eu_F[] = { #include "textures/segment2/font_graphics.05FF0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_G[] = { +ALIGNED8 static const u8 texture_font_char_eu_G[] = { #include "textures/segment2/font_graphics.06000.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_H[] = { +ALIGNED8 static const u8 texture_font_char_eu_H[] = { #include "textures/segment2/font_graphics.06010.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_I[] = { +ALIGNED8 static const u8 texture_font_char_eu_I[] = { #include "textures/segment2/font_graphics.06020.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_J[] = { +ALIGNED8 static const u8 texture_font_char_eu_J[] = { #include "textures/segment2/font_graphics.06030.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_K[] = { +ALIGNED8 static const u8 texture_font_char_eu_K[] = { #include "textures/segment2/font_graphics.06040.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_L[] = { +ALIGNED8 static const u8 texture_font_char_eu_L[] = { #include "textures/segment2/font_graphics.06050.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_M[] = { +ALIGNED8 static const u8 texture_font_char_eu_M[] = { #include "textures/segment2/font_graphics.06060.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_N[] = { +ALIGNED8 static const u8 texture_font_char_eu_N[] = { #include "textures/segment2/font_graphics.06070.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_O[] = { +ALIGNED8 static const u8 texture_font_char_eu_O[] = { #include "textures/segment2/font_graphics.06080.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_P[] = { +ALIGNED8 static const u8 texture_font_char_eu_P[] = { #include "textures/segment2/font_graphics.06090.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_Q[] = { +ALIGNED8 static const u8 texture_font_char_eu_Q[] = { #include "textures/segment2/font_graphics.060A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_R[] = { +ALIGNED8 static const u8 texture_font_char_eu_R[] = { #include "textures/segment2/font_graphics.060B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_S[] = { +ALIGNED8 static const u8 texture_font_char_eu_S[] = { #include "textures/segment2/font_graphics.060C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_T[] = { +ALIGNED8 static const u8 texture_font_char_eu_T[] = { #include "textures/segment2/font_graphics.060D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_U[] = { +ALIGNED8 static const u8 texture_font_char_eu_U[] = { #include "textures/segment2/font_graphics.060E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_V[] = { +ALIGNED8 static const u8 texture_font_char_eu_V[] = { #include "textures/segment2/font_graphics.060F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_W[] = { +ALIGNED8 static const u8 texture_font_char_eu_W[] = { #include "textures/segment2/font_graphics.06100.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_X[] = { +ALIGNED8 static const u8 texture_font_char_eu_X[] = { #include "textures/segment2/font_graphics.06110.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_Y[] = { +ALIGNED8 static const u8 texture_font_char_eu_Y[] = { #include "textures/segment2/font_graphics.06120.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_Z[] = { +ALIGNED8 static const u8 texture_font_char_eu_Z[] = { #include "textures/segment2/font_graphics.06130.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_a[] = { +ALIGNED8 static const u8 texture_font_char_eu_a[] = { #include "textures/segment2/font_graphics.06140.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_b[] = { +ALIGNED8 static const u8 texture_font_char_eu_b[] = { #include "textures/segment2/font_graphics.06150.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_c[] = { +ALIGNED8 static const u8 texture_font_char_eu_c[] = { #include "textures/segment2/font_graphics.06160.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_d[] = { +ALIGNED8 static const u8 texture_font_char_eu_d[] = { #include "textures/segment2/font_graphics.06170.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_e[] = { +ALIGNED8 static const u8 texture_font_char_eu_e[] = { #include "textures/segment2/font_graphics.06180.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_f[] = { +ALIGNED8 static const u8 texture_font_char_eu_f[] = { #include "textures/segment2/font_graphics.06190.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_g[] = { +ALIGNED8 static const u8 texture_font_char_eu_g[] = { #include "textures/segment2/font_graphics.061A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_h[] = { +ALIGNED8 static const u8 texture_font_char_eu_h[] = { #include "textures/segment2/font_graphics.061B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_i[] = { +ALIGNED8 static const u8 texture_font_char_eu_i[] = { #include "textures/segment2/font_graphics.061C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_j[] = { +ALIGNED8 static const u8 texture_font_char_eu_j[] = { #include "textures/segment2/font_graphics.061D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_k[] = { +ALIGNED8 static const u8 texture_font_char_eu_k[] = { #include "textures/segment2/font_graphics.061E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_l[] = { +ALIGNED8 static const u8 texture_font_char_eu_l[] = { #include "textures/segment2/font_graphics.061F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_m[] = { +ALIGNED8 static const u8 texture_font_char_eu_m[] = { #include "textures/segment2/font_graphics.06200.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_n[] = { +ALIGNED8 static const u8 texture_font_char_eu_n[] = { #include "textures/segment2/font_graphics.06210.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_o[] = { +ALIGNED8 static const u8 texture_font_char_eu_o[] = { #include "textures/segment2/font_graphics.06220.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_p[] = { +ALIGNED8 static const u8 texture_font_char_eu_p[] = { #include "textures/segment2/font_graphics.06230.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_q[] = { +ALIGNED8 static const u8 texture_font_char_eu_q[] = { #include "textures/segment2/font_graphics.06240.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_r[] = { +ALIGNED8 static const u8 texture_font_char_eu_r[] = { #include "textures/segment2/font_graphics.06250.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_s[] = { +ALIGNED8 static const u8 texture_font_char_eu_s[] = { #include "textures/segment2/font_graphics.06260.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_t[] = { +ALIGNED8 static const u8 texture_font_char_eu_t[] = { #include "textures/segment2/font_graphics.06270.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_u[] = { +ALIGNED8 static const u8 texture_font_char_eu_u[] = { #include "textures/segment2/font_graphics.06280.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_v[] = { +ALIGNED8 static const u8 texture_font_char_eu_v[] = { #include "textures/segment2/font_graphics.06290.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_w[] = { +ALIGNED8 static const u8 texture_font_char_eu_w[] = { #include "textures/segment2/font_graphics.062A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_x[] = { +ALIGNED8 static const u8 texture_font_char_eu_x[] = { #include "textures/segment2/font_graphics.062B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_y[] = { +ALIGNED8 static const u8 texture_font_char_eu_y[] = { #include "textures/segment2/font_graphics.062C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_z[] = { +ALIGNED8 static const u8 texture_font_char_eu_z[] = { #include "textures/segment2/font_graphics.062D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_left_right_arrow[] = { +ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = { #include "textures/segment2/font_graphics.062E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_ampersand[] = { +ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = { #include "textures/segment2/font_graphics.062F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_exclamation[] = { +ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = { #include "textures/segment2/font_graphics.06300.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_coin[] = { +ALIGNED8 static const u8 texture_font_char_eu_coin[] = { #include "textures/segment2/font_graphics.06310.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_multiply[] = { +ALIGNED8 static const u8 texture_font_char_eu_multiply[] = { #include "textures/segment2/font_graphics.06320.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = { #include "textures/segment2/font_graphics.06330.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_close_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = { #include "textures/segment2/font_graphics.06340.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_close_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = { #include "textures/segment2/font_graphics.06350.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_tilde[] = { +ALIGNED8 static const u8 texture_font_char_eu_tilde[] = { #include "textures/segment2/font_graphics.06360.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_period[] = { +ALIGNED8 static const u8 texture_font_char_eu_period[] = { #include "textures/segment2/font_graphics.06370.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_percent[] = { +ALIGNED8 static const u8 texture_font_char_eu_percent[] = { #include "textures/segment2/font_graphics.06380.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_interpunct[] = { +ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = { #include "textures/segment2/font_graphics.06390.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_comma[] = { +ALIGNED8 static const u8 texture_font_char_eu_comma[] = { #include "textures/segment2/font_graphics.063A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_apostrophe[] = { +ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = { #include "textures/segment2/font_graphics.063B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_question[] = { +ALIGNED8 static const u8 texture_font_char_eu_question[] = { #include "textures/segment2/font_graphics.063C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_star_filled[] = { +ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = { #include "textures/segment2/font_graphics.063D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_star_hollow[] = { +ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = { #include "textures/segment2/font_graphics.063E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_double_quote_open[] = { +ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = { #include "textures/segment2/font_graphics.063F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_double_quote_close[] = { +ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = { #include "textures/segment2/font_graphics.06400.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_colon[] = { +ALIGNED8 static const u8 texture_font_char_eu_colon[] = { #include "textures/segment2/font_graphics.06410.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_EU_slash[] = { +ALIGNED8 static const u8 texture_font_char_EU_slash[] = { #include "textures/segment2/font_graphics.06420.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_A[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_A[] = { #include "textures/segment2/font_graphics.06430.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_B[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_B[] = { #include "textures/segment2/font_graphics.06440.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_C[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_C[] = { #include "textures/segment2/font_graphics.06450.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_Z[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = { #include "textures/segment2/font_graphics.06460.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_R[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_R[] = { #include "textures/segment2/font_graphics.06470.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_C_up[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = { #include "textures/segment2/font_graphics.06480.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_C_down[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = { #include "textures/segment2/font_graphics.06490.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_C_left[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = { #include "textures/segment2/font_graphics.064A0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_button_C_right[] = { +ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = { #include "textures/segment2/font_graphics.064B0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_umlaut[] = { +ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = { #include "textures/segment2/font_graphics.064C0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_circumflex[] = { +ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = { #include "textures/segment2/font_graphics.064D0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_grave[] = { +ALIGNED8 static const u8 texture_font_char_eu_grave[] = { #include "textures/segment2/font_graphics.064E0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_acute[] = { +ALIGNED8 static const u8 texture_font_char_eu_acute[] = { #include "textures/segment2/font_graphics.064F0.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_cedilla[] = { +ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = { #include "textures/segment2/font_graphics.06500.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_unknown[] = { +ALIGNED8 static const u8 texture_font_char_eu_unknown[] = { #include "textures/segment2/font_graphics.06510.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_Cedilla[] = { +ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = { #include "textures/segment2/font_graphics.06520.ia1.inc.c" }; -ALIGNED8 static const Texture texture_font_char_eu_eszeet[] = { +ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = { #include "textures/segment2/font_graphics.06530.ia1.inc.c" }; // US Small Font #else -ALIGNED8 static const Texture texture_font_char_us_0[] = { +ALIGNED8 static const u8 texture_font_char_us_0[] = { #include "textures/segment2/font_graphics.05900.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_1[] = { +ALIGNED8 static const u8 texture_font_char_us_1[] = { #include "textures/segment2/font_graphics.05940.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_2[] = { +ALIGNED8 static const u8 texture_font_char_us_2[] = { #include "textures/segment2/font_graphics.05980.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_3[] = { +ALIGNED8 static const u8 texture_font_char_us_3[] = { #include "textures/segment2/font_graphics.059C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_4[] = { +ALIGNED8 static const u8 texture_font_char_us_4[] = { #include "textures/segment2/font_graphics.05A00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_5[] = { +ALIGNED8 static const u8 texture_font_char_us_5[] = { #include "textures/segment2/font_graphics.05A40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_6[] = { +ALIGNED8 static const u8 texture_font_char_us_6[] = { #include "textures/segment2/font_graphics.05A80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_7[] = { +ALIGNED8 static const u8 texture_font_char_us_7[] = { #include "textures/segment2/font_graphics.05AC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_8[] = { +ALIGNED8 static const u8 texture_font_char_us_8[] = { #include "textures/segment2/font_graphics.05B00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_9[] = { +ALIGNED8 static const u8 texture_font_char_us_9[] = { #include "textures/segment2/font_graphics.05B40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_A[] = { +ALIGNED8 static const u8 texture_font_char_us_A[] = { #include "textures/segment2/font_graphics.05B80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_B[] = { +ALIGNED8 static const u8 texture_font_char_us_B[] = { #include "textures/segment2/font_graphics.05BC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_C[] = { +ALIGNED8 static const u8 texture_font_char_us_C[] = { #include "textures/segment2/font_graphics.05C00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_D[] = { +ALIGNED8 static const u8 texture_font_char_us_D[] = { #include "textures/segment2/font_graphics.05C40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_E[] = { +ALIGNED8 static const u8 texture_font_char_us_E[] = { #include "textures/segment2/font_graphics.05C80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_F[] = { +ALIGNED8 static const u8 texture_font_char_us_F[] = { #include "textures/segment2/font_graphics.05CC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_G[] = { +ALIGNED8 static const u8 texture_font_char_us_G[] = { #include "textures/segment2/font_graphics.05D00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_H[] = { +ALIGNED8 static const u8 texture_font_char_us_H[] = { #include "textures/segment2/font_graphics.05D40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_I[] = { +ALIGNED8 static const u8 texture_font_char_us_I[] = { #include "textures/segment2/font_graphics.05D80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_J[] = { +ALIGNED8 static const u8 texture_font_char_us_J[] = { #include "textures/segment2/font_graphics.05DC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_K[] = { +ALIGNED8 static const u8 texture_font_char_us_K[] = { #include "textures/segment2/font_graphics.05E00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_L[] = { +ALIGNED8 static const u8 texture_font_char_us_L[] = { #include "textures/segment2/font_graphics.05E40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_M[] = { +ALIGNED8 static const u8 texture_font_char_us_M[] = { #include "textures/segment2/font_graphics.05E80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_N[] = { +ALIGNED8 static const u8 texture_font_char_us_N[] = { #include "textures/segment2/font_graphics.05EC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_O[] = { +ALIGNED8 static const u8 texture_font_char_us_O[] = { #include "textures/segment2/font_graphics.05F00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_P[] = { +ALIGNED8 static const u8 texture_font_char_us_P[] = { #include "textures/segment2/font_graphics.05F40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_Q[] = { +ALIGNED8 static const u8 texture_font_char_us_Q[] = { #include "textures/segment2/font_graphics.05F80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_R[] = { +ALIGNED8 static const u8 texture_font_char_us_R[] = { #include "textures/segment2/font_graphics.05FC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_S[] = { +ALIGNED8 static const u8 texture_font_char_us_S[] = { #include "textures/segment2/font_graphics.06000.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_T[] = { +ALIGNED8 static const u8 texture_font_char_us_T[] = { #include "textures/segment2/font_graphics.06040.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_U[] = { +ALIGNED8 static const u8 texture_font_char_us_U[] = { #include "textures/segment2/font_graphics.06080.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_V[] = { +ALIGNED8 static const u8 texture_font_char_us_V[] = { #include "textures/segment2/font_graphics.060C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_W[] = { +ALIGNED8 static const u8 texture_font_char_us_W[] = { #include "textures/segment2/font_graphics.06100.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_X[] = { +ALIGNED8 static const u8 texture_font_char_us_X[] = { #include "textures/segment2/font_graphics.06140.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_Y[] = { +ALIGNED8 static const u8 texture_font_char_us_Y[] = { #include "textures/segment2/font_graphics.06180.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_Z[] = { +ALIGNED8 static const u8 texture_font_char_us_Z[] = { #include "textures/segment2/font_graphics.061C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_a[] = { +ALIGNED8 static const u8 texture_font_char_us_a[] = { #include "textures/segment2/font_graphics.06200.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_b[] = { +ALIGNED8 static const u8 texture_font_char_us_b[] = { #include "textures/segment2/font_graphics.06240.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_c[] = { +ALIGNED8 static const u8 texture_font_char_us_c[] = { #include "textures/segment2/font_graphics.06280.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_d[] = { +ALIGNED8 static const u8 texture_font_char_us_d[] = { #include "textures/segment2/font_graphics.062C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_e[] = { +ALIGNED8 static const u8 texture_font_char_us_e[] = { #include "textures/segment2/font_graphics.06300.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_f[] = { +ALIGNED8 static const u8 texture_font_char_us_f[] = { #include "textures/segment2/font_graphics.06340.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_g[] = { +ALIGNED8 static const u8 texture_font_char_us_g[] = { #include "textures/segment2/font_graphics.06380.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_h[] = { +ALIGNED8 static const u8 texture_font_char_us_h[] = { #include "textures/segment2/font_graphics.063C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_i[] = { +ALIGNED8 static const u8 texture_font_char_us_i[] = { #include "textures/segment2/font_graphics.06400.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_j[] = { +ALIGNED8 static const u8 texture_font_char_us_j[] = { #include "textures/segment2/font_graphics.06440.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_k[] = { +ALIGNED8 static const u8 texture_font_char_us_k[] = { #include "textures/segment2/font_graphics.06480.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_l[] = { +ALIGNED8 static const u8 texture_font_char_us_l[] = { #include "textures/segment2/font_graphics.064C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_m[] = { +ALIGNED8 static const u8 texture_font_char_us_m[] = { #include "textures/segment2/font_graphics.06500.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_n[] = { +ALIGNED8 static const u8 texture_font_char_us_n[] = { #include "textures/segment2/font_graphics.06540.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_o[] = { +ALIGNED8 static const u8 texture_font_char_us_o[] = { #include "textures/segment2/font_graphics.06580.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_p[] = { +ALIGNED8 static const u8 texture_font_char_us_p[] = { #include "textures/segment2/font_graphics.065C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_q[] = { +ALIGNED8 static const u8 texture_font_char_us_q[] = { #include "textures/segment2/font_graphics.06600.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_r[] = { +ALIGNED8 static const u8 texture_font_char_us_r[] = { #include "textures/segment2/font_graphics.06640.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_s[] = { +ALIGNED8 static const u8 texture_font_char_us_s[] = { #include "textures/segment2/font_graphics.06680.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_t[] = { +ALIGNED8 static const u8 texture_font_char_us_t[] = { #include "textures/segment2/font_graphics.066C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_u[] = { +ALIGNED8 static const u8 texture_font_char_us_u[] = { #include "textures/segment2/font_graphics.06700.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_v[] = { +ALIGNED8 static const u8 texture_font_char_us_v[] = { #include "textures/segment2/font_graphics.06740.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_w[] = { +ALIGNED8 static const u8 texture_font_char_us_w[] = { #include "textures/segment2/font_graphics.06780.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_x[] = { +ALIGNED8 static const u8 texture_font_char_us_x[] = { #include "textures/segment2/font_graphics.067C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_y[] = { +ALIGNED8 static const u8 texture_font_char_us_y[] = { #include "textures/segment2/font_graphics.06800.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_z[] = { +ALIGNED8 static const u8 texture_font_char_us_z[] = { #include "textures/segment2/font_graphics.06840.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_left_right_arrow[] = { +ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = { #include "textures/segment2/font_graphics.06880.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_exclamation[] = { +ALIGNED8 static const u8 texture_font_char_us_exclamation[] = { #include "textures/segment2/font_graphics.068C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_coin[] = { +ALIGNED8 static const u8 texture_font_char_us_coin[] = { #include "textures/segment2/font_graphics.06900.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_multiply[] = { +ALIGNED8 static const u8 texture_font_char_us_multiply[] = { #include "textures/segment2/font_graphics.06940.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = { #include "textures/segment2/font_graphics.06980.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_close_open_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = { #include "textures/segment2/font_graphics.069C0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_close_parentheses[] = { +ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = { #include "textures/segment2/font_graphics.06A00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_tilde[] = { +ALIGNED8 static const u8 texture_font_char_us_tilde[] = { #include "textures/segment2/font_graphics.06A40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_period[] = { +ALIGNED8 static const u8 texture_font_char_us_period[] = { #include "textures/segment2/font_graphics.06A80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_percent[] = { +ALIGNED8 static const u8 texture_font_char_us_percent[] = { #include "textures/segment2/font_graphics.06AC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_interpunct[] = { +ALIGNED8 static const u8 texture_font_char_us_interpunct[] = { #include "textures/segment2/font_graphics.06B00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_comma[] = { +ALIGNED8 static const u8 texture_font_char_us_comma[] = { #include "textures/segment2/font_graphics.06B40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_apostrophe[] = { +ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = { #include "textures/segment2/font_graphics.06B80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_question[] = { +ALIGNED8 static const u8 texture_font_char_us_question[] = { #include "textures/segment2/font_graphics.06BC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_star_filled[] = { +ALIGNED8 static const u8 texture_font_char_us_star_filled[] = { #include "textures/segment2/font_graphics.06C00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_star_hollow[] = { +ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = { #include "textures/segment2/font_graphics.06C40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_double_quote_open[] = { +ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = { #include "textures/segment2/font_graphics.06C80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_double_quote_close[] = { +ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = { #include "textures/segment2/font_graphics.06CC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_ellipsis[] = { +ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = { #include "textures/segment2/font_graphics.06D00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_slash[] = { +ALIGNED8 static const u8 texture_font_char_us_slash[] = { #include "textures/segment2/font_graphics.06D40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_ampersand[] = { +ALIGNED8 static const u8 texture_font_char_us_ampersand[] = { #include "textures/segment2/font_graphics.06D80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_A[] = { +ALIGNED8 static const u8 texture_font_char_us_button_A[] = { #include "textures/segment2/font_graphics.06DC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_B[] = { +ALIGNED8 static const u8 texture_font_char_us_button_B[] = { #include "textures/segment2/font_graphics.06E00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_C[] = { +ALIGNED8 static const u8 texture_font_char_us_button_C[] = { #include "textures/segment2/font_graphics.06E40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_Z[] = { +ALIGNED8 static const u8 texture_font_char_us_button_Z[] = { #include "textures/segment2/font_graphics.06E80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_R[] = { +ALIGNED8 static const u8 texture_font_char_us_button_R[] = { #include "textures/segment2/font_graphics.06EC0.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_C_up[] = { +ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = { #include "textures/segment2/font_graphics.06F00.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_C_down[] = { +ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = { #include "textures/segment2/font_graphics.06F40.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_C_left[] = { +ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = { #include "textures/segment2/font_graphics.06F80.ia4.inc.c" }; -ALIGNED8 static const Texture texture_font_char_us_button_C_right[] = { +ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = { #include "textures/segment2/font_graphics.06FC0.ia4.inc.c" }; #endif -ALIGNED8 static const Texture texture_hud_char_camera[] = { +ALIGNED8 static const u8 texture_hud_char_camera[] = { #include "textures/segment2/segment2.07B50.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_lakitu[] = { +ALIGNED8 static const u8 texture_hud_char_lakitu[] = { #include "textures/segment2/segment2.07D50.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_no_camera[] = { +ALIGNED8 static const u8 texture_hud_char_no_camera[] = { #include "textures/segment2/segment2.07F50.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_arrow_up[] = { +ALIGNED8 static const u8 texture_hud_char_arrow_up[] = { #include "textures/segment2/segment2.08150.rgba16.inc.c" }; -ALIGNED8 static const Texture texture_hud_char_arrow_down[] = { +ALIGNED8 static const u8 texture_hud_char_arrow_down[] = { #include "textures/segment2/segment2.081D0.rgba16.inc.c" }; // Main HUD print table 0x02008250-0x02008337 -const Texture *const main_hud_lut[] = { +const u8 *const main_hud_lut[] = { #ifdef VERSION_EU texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, @@ -1858,7 +1854,7 @@ const Texture *const main_hud_lut[] = { }; // Main small font print table 0x02008338-0x02008737 -const Texture *const main_font_lut[] = { +const u8 *const main_font_lut[] = { #ifdef VERSION_EU // EU Font Table texture_font_char_eu_0, texture_font_char_eu_1, texture_font_char_eu_2, texture_font_char_eu_3, texture_font_char_eu_4, texture_font_char_eu_5, texture_font_char_eu_6, texture_font_char_eu_7, @@ -2060,7 +2056,7 @@ const Texture *const main_font_lut[] = { }; // credits font LUT 0x02008738-0x020087CB -const Texture *const main_credits_font_lut[] = { +const u8 *const main_credits_font_lut[] = { 0x0, 0x0, 0x0, texture_credits_char_3, texture_credits_char_4, 0x0, texture_credits_char_6, 0x0, 0x0, 0x0, texture_credits_char_A, texture_credits_char_B, @@ -2074,7 +2070,7 @@ const Texture *const main_credits_font_lut[] = { }; // HUD camera table 0x020087CC-0x020087E3 -const Texture *const main_hud_camera_lut[] = { +const u8 *const main_hud_camera_lut[] = { texture_hud_char_camera, texture_hud_char_mario_head, texture_hud_char_lakitu, texture_hud_char_no_camera, texture_hud_char_arrow_up, texture_hud_char_arrow_down, }; @@ -2097,12 +2093,10 @@ const Gfx dl_hud_img_begin[] = { gsDPSetTexturePersp(G_TP_NONE), gsDPSetAlphaCompare(G_AC_THRESHOLD), gsDPSetBlendColor(255, 255, 255, 255), -#if defined(VERSION_EU) || defined(VERSION_SH) - gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), -#endif #ifdef VERSION_EU + gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), gsDPSetTextureFilter(G_TF_POINT), -#elif defined(VERSION_JP) || defined(VERSION_US) +#else gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), #endif gsSPEndDisplayList(), @@ -2126,9 +2120,9 @@ const Gfx dl_hud_img_end[] = { gsDPSetAlphaCompare(G_AC_NONE), #ifdef VERSION_EU gsDPSetTextureFilter(G_TF_BILERP), -#endif gsDPSetCycleType(G_CYC_1CYCLE), -#if defined(VERSION_JP) || defined(VERSION_US) +#else + gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), #endif gsSPEndDisplayList(), @@ -2189,16 +2183,16 @@ const Gfx dl_draw_text_bg_box[] = { #ifndef VERSION_EU // 0x0200EE28 - 0x0200EE68 static const Vtx vertex_ia8_char[] = { -#if defined(VERSION_JP) || defined(VERSION_SH) - {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, - {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, -#else +#ifndef VERSION_JP {{{ 0, 0, 0}, 0, { 0, 256}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 8, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 8, 16, 0}, 0, { 480, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}}, +#else + {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, #endif }; // !EU @@ -2453,47 +2447,47 @@ const Gfx dl_billboard_num_9[] = { gsSPEndDisplayList(), }; -ALIGNED8 static const Texture texture_shadow_quarter_circle[] = { +ALIGNED8 static const u8 texture_shadow_quarter_circle[] = { #include "textures/segment2/shadow_quarter_circle.ia8.inc.c" }; -ALIGNED8 static const Texture texture_shadow_quarter_square[] = { +ALIGNED8 static const u8 texture_shadow_quarter_square[] = { #include "textures/segment2/shadow_quarter_square.ia8.inc.c" }; -const Texture texture_transition_star_half[] = { +ALIGNED8 const u8 texture_transition_star_half[] = { #include "textures/segment2/segment2.0F458.ia8.inc.c" }; -const Texture texture_transition_circle_half[] = { +ALIGNED8 const u8 texture_transition_circle_half[] = { #include "textures/segment2/segment2.0FC58.ia8.inc.c" }; -const Texture texture_transition_mario[] = { +ALIGNED8 const u8 texture_transition_mario[] = { #include "textures/segment2/segment2.10458.ia8.inc.c" }; -const Texture texture_transition_bowser_half[] = { +ALIGNED8 const u8 texture_transition_bowser_half[] = { #include "textures/segment2/segment2.11458.ia8.inc.c" }; -const Texture texture_waterbox_water[] = { +ALIGNED8 const u8 texture_waterbox_water[] = { #include "textures/segment2/segment2.11C58.rgba16.inc.c" }; -const Texture texture_waterbox_jrb_water[] = { +ALIGNED8 const u8 texture_waterbox_jrb_water[] = { #include "textures/segment2/segment2.12458.rgba16.inc.c" }; -const Texture texture_waterbox_unknown_water[] = { +ALIGNED8 const u8 texture_waterbox_unknown_water[] = { #include "textures/segment2/segment2.12C58.rgba16.inc.c" }; -const Texture texture_waterbox_mist[] = { +ALIGNED8 const u8 texture_waterbox_mist[] = { #include "textures/segment2/segment2.13458.ia16.inc.c" }; -const Texture texture_waterbox_lava[] = { +ALIGNED8 const u8 texture_waterbox_lava[] = { #include "textures/segment2/segment2.13C58.rgba16.inc.c" }; @@ -2691,7 +2685,7 @@ const Gfx dl_waterbox_end[] = { }; // 0x02014838 - 0x02014878 -ALIGNED8 static const Texture texture_ia8_up_arrow[] = { +ALIGNED8 static const u8 texture_ia8_up_arrow[] = { #include "textures/segment2/segment2.14838.ia8.inc.c" }; diff --git a/bin/segment2.c.rej b/bin/segment2.c.rej new file mode 100644 index 00000000..4dcf8a79 --- /dev/null +++ b/bin/segment2.c.rej @@ -0,0 +1,2404 @@ +diff a/bin/segment2.c b/bin/segment2.c (rejected hunks) +@@ -1,1811 +1,1807 @@ +-#include +-#include +- +-#include "config.h" +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" + +-// SM64 (US/JP/EU/SH) Segment 02 ++// SM64 (US/JP/EU) Segment 02 + +-ALIGNED8 static const Texture texture_hud_char_0[] = { ++ALIGNED8 static const u8 texture_hud_char_0[] = { + #include "textures/segment2/segment2.00000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_1[] = { ++ALIGNED8 static const u8 texture_hud_char_1[] = { + #include "textures/segment2/segment2.00200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_2[] = { ++ALIGNED8 static const u8 texture_hud_char_2[] = { + #include "textures/segment2/segment2.00400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_3[] = { ++ALIGNED8 static const u8 texture_hud_char_3[] = { + #include "textures/segment2/segment2.00600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_4[] = { ++ALIGNED8 static const u8 texture_hud_char_4[] = { + #include "textures/segment2/segment2.00800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_5[] = { ++ALIGNED8 static const u8 texture_hud_char_5[] = { + #include "textures/segment2/segment2.00A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_6[] = { ++ALIGNED8 static const u8 texture_hud_char_6[] = { + #include "textures/segment2/segment2.00C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_7[] = { ++ALIGNED8 static const u8 texture_hud_char_7[] = { + #include "textures/segment2/segment2.00E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_8[] = { ++ALIGNED8 static const u8 texture_hud_char_8[] = { + #include "textures/segment2/segment2.01000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_9[] = { ++ALIGNED8 static const u8 texture_hud_char_9[] = { + #include "textures/segment2/segment2.01200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_A[] = { ++ALIGNED8 static const u8 texture_hud_char_A[] = { + #include "textures/segment2/segment2.01400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_B[] = { ++ALIGNED8 static const u8 texture_hud_char_B[] = { + #include "textures/segment2/segment2.01600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_C[] = { ++ALIGNED8 static const u8 texture_hud_char_C[] = { + #include "textures/segment2/segment2.01800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_D[] = { ++ALIGNED8 static const u8 texture_hud_char_D[] = { + #include "textures/segment2/segment2.01A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_E[] = { ++ALIGNED8 static const u8 texture_hud_char_E[] = { + #include "textures/segment2/segment2.01C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_F[] = { ++ALIGNED8 static const u8 texture_hud_char_F[] = { + #include "textures/segment2/segment2.01E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_G[] = { ++ALIGNED8 static const u8 texture_hud_char_G[] = { + #include "textures/segment2/segment2.02000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_H[] = { ++ALIGNED8 static const u8 texture_hud_char_H[] = { + #include "textures/segment2/segment2.02200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_I[] = { ++ALIGNED8 static const u8 texture_hud_char_I[] = { + #include "textures/segment2/segment2.02400.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_J[] = { ++ALIGNED8 static const u8 texture_hud_char_J[] = { + #include "textures/segment2/segment2.02600.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_K[] = { ++ALIGNED8 static const u8 texture_hud_char_K[] = { + #include "textures/segment2/segment2.02800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_L[] = { ++ALIGNED8 static const u8 texture_hud_char_L[] = { + #include "textures/segment2/segment2.02A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_M[] = { ++ALIGNED8 static const u8 texture_hud_char_M[] = { + #include "textures/segment2/segment2.02C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_N[] = { ++ALIGNED8 static const u8 texture_hud_char_N[] = { + #include "textures/segment2/segment2.02E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_O[] = { ++ALIGNED8 static const u8 texture_hud_char_O[] = { + #include "textures/segment2/segment2.03000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_P[] = { ++ALIGNED8 static const u8 texture_hud_char_P[] = { + #include "textures/segment2/segment2.03200.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_Q[] = { ++ALIGNED8 static const u8 texture_hud_char_Q[] = { + #include "textures/segment2/segment2.03400.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_R[] = { ++ALIGNED8 static const u8 texture_hud_char_R[] = { + #include "textures/segment2/segment2.03600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_S[] = { ++ALIGNED8 static const u8 texture_hud_char_S[] = { + #include "textures/segment2/segment2.03800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_T[] = { ++ALIGNED8 static const u8 texture_hud_char_T[] = { + #include "textures/segment2/segment2.03A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_U[] = { ++ALIGNED8 static const u8 texture_hud_char_U[] = { + #include "textures/segment2/segment2.03C00.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_V[] = { ++ALIGNED8 static const u8 texture_hud_char_V[] = { + #include "textures/segment2/segment2.03E00.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_W[] = { ++ALIGNED8 static const u8 texture_hud_char_W[] = { + #include "textures/segment2/segment2.04000.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_X[] = { ++ALIGNED8 static const u8 texture_hud_char_X[] = { + #include "textures/segment2/segment2.04200.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_Y[] = { ++ALIGNED8 static const u8 texture_hud_char_Y[] = { + #include "textures/segment2/segment2.04400.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_Z[] = { ++ALIGNED8 static const u8 texture_hud_char_Z[] = { + #include "textures/segment2/segment2.04600.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_apostrophe[] = { ++ALIGNED8 static const u8 texture_hud_char_apostrophe[] = { + #include "textures/segment2/segment2.04800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_double_quote[] = { ++ALIGNED8 static const u8 texture_hud_char_double_quote[] = { + #include "textures/segment2/segment2.04A00.rgba16.inc.c" + }; + + #ifdef VERSION_EU +-ALIGNED8 static const Texture texture_hud_char_umlaut[] = { ++ALIGNED8 static const u8 texture_hud_char_umlaut[] = { + #include "textures/segment2/segment2.umlaut.rgba16.inc.c"// EU ¨ + }; + #endif + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_exclamation[] = { ++ALIGNED8 static const u8 texture_hud_char_exclamation[] = { + #include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP ! + }; + +-ALIGNED8 static const Texture texture_hud_char_double_exclamation[] = { ++ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = { + #include "textures/segment2/segment2.04E00.rgba16.inc.c"// JP !! + }; + +-ALIGNED8 static const Texture texture_hud_char_question[] = { ++ALIGNED8 static const u8 texture_hud_char_question[] = { + #include "textures/segment2/segment2.05000.rgba16.inc.c"// JP ? + }; + +-ALIGNED8 static const Texture texture_hud_char_ampersand[] = { ++ALIGNED8 static const u8 texture_hud_char_ampersand[] = { + #include "textures/segment2/segment2.05200.rgba16.inc.c"// JP & + }; + +-ALIGNED8 static const Texture texture_hud_char_percent[] = { ++ALIGNED8 static const u8 texture_hud_char_percent[] = { + #include "textures/segment2/segment2.05400.rgba16.inc.c"// JP % + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_multiply[] = { ++ALIGNED8 static const u8 texture_hud_char_multiply[] = { + #include "textures/segment2/segment2.05600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_coin[] = { ++ALIGNED8 static const u8 texture_hud_char_coin[] = { + #include "textures/segment2/segment2.05800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_mario_head[] = { ++ALIGNED8 static const u8 texture_hud_char_mario_head[] = { + #include "textures/segment2/segment2.05A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_star[] = { ++ALIGNED8 static const u8 texture_hud_char_star[] = { + #include "textures/segment2/segment2.05C00.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_decimal_point[] = { ++ALIGNED8 static const u8 texture_hud_char_decimal_point[] = { + #include "textures/segment2/segment2.05E00.rgba16.inc.c" + }; + #endif + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_beta_key[] = { ++ALIGNED8 static const u8 texture_hud_char_beta_key[] = { + #include "textures/segment2/segment2.06000.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_credits_char_3[] = { ++ALIGNED8 static const u8 texture_credits_char_3[] = { + #include "textures/segment2/segment2.06200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_4[] = { ++ALIGNED8 static const u8 texture_credits_char_4[] = { + #include "textures/segment2/segment2.06280.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_6[] = { ++ALIGNED8 static const u8 texture_credits_char_6[] = { + #include "textures/segment2/segment2.06300.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_A[] = { ++ALIGNED8 static const u8 texture_credits_char_A[] = { + #include "textures/segment2/segment2.06380.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_B[] = { ++ALIGNED8 static const u8 texture_credits_char_B[] = { + #include "textures/segment2/segment2.06400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_C[] = { ++ALIGNED8 static const u8 texture_credits_char_C[] = { + #include "textures/segment2/segment2.06480.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_D[] = { ++ALIGNED8 static const u8 texture_credits_char_D[] = { + #include "textures/segment2/segment2.06500.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_E[] = { ++ALIGNED8 static const u8 texture_credits_char_E[] = { + #include "textures/segment2/segment2.06580.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_F[] = { ++ALIGNED8 static const u8 texture_credits_char_F[] = { + #include "textures/segment2/segment2.06600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_G[] = { ++ALIGNED8 static const u8 texture_credits_char_G[] = { + #include "textures/segment2/segment2.06680.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_H[] = { ++ALIGNED8 static const u8 texture_credits_char_H[] = { + #include "textures/segment2/segment2.06700.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_I[] = { ++ALIGNED8 static const u8 texture_credits_char_I[] = { + #include "textures/segment2/segment2.06780.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_J[] = { ++ALIGNED8 static const u8 texture_credits_char_J[] = { + #include "textures/segment2/segment2.06800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_K[] = { ++ALIGNED8 static const u8 texture_credits_char_K[] = { + #include "textures/segment2/segment2.06880.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_L[] = { ++ALIGNED8 static const u8 texture_credits_char_L[] = { + #include "textures/segment2/segment2.06900.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_M[] = { ++ALIGNED8 static const u8 texture_credits_char_M[] = { + #include "textures/segment2/segment2.06980.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_N[] = { ++ALIGNED8 static const u8 texture_credits_char_N[] = { + #include "textures/segment2/segment2.06A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_O[] = { ++ALIGNED8 static const u8 texture_credits_char_O[] = { + #include "textures/segment2/segment2.06A80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_P[] = { ++ALIGNED8 static const u8 texture_credits_char_P[] = { + #include "textures/segment2/segment2.06B00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Q[] = { ++ALIGNED8 static const u8 texture_credits_char_Q[] = { + #include "textures/segment2/segment2.06B80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_R[] = { ++ALIGNED8 static const u8 texture_credits_char_R[] = { + #include "textures/segment2/segment2.06C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_S[] = { ++ALIGNED8 static const u8 texture_credits_char_S[] = { + #include "textures/segment2/segment2.06C80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_T[] = { ++ALIGNED8 static const u8 texture_credits_char_T[] = { + #include "textures/segment2/segment2.06D00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_U[] = { ++ALIGNED8 static const u8 texture_credits_char_U[] = { + #include "textures/segment2/segment2.06D80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_V[] = { ++ALIGNED8 static const u8 texture_credits_char_V[] = { + #include "textures/segment2/segment2.06E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_W[] = { ++ALIGNED8 static const u8 texture_credits_char_W[] = { + #include "textures/segment2/segment2.06E80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_X[] = { ++ALIGNED8 static const u8 texture_credits_char_X[] = { + #include "textures/segment2/segment2.06F00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Y[] = { ++ALIGNED8 static const u8 texture_credits_char_Y[] = { + #include "textures/segment2/segment2.06F80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Z[] = { ++ALIGNED8 static const u8 texture_credits_char_Z[] = { + #include "textures/segment2/segment2.07000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_period[] = { ++ALIGNED8 static const u8 texture_credits_char_period[] = { + #include "textures/segment2/segment2.07080.rgba16.inc.c" + }; + + // JP Small Font + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_font_char_jp_0[] = { ++ALIGNED8 static const u8 texture_font_char_jp_0[] = { + #include "textures/segment2/segment2.07100.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_1[] = { ++ALIGNED8 static const u8 texture_font_char_jp_1[] = { + #include "textures/segment2/segment2.07110.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_2[] = { ++ALIGNED8 static const u8 texture_font_char_jp_2[] = { + #include "textures/segment2/segment2.07120.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_3[] = { ++ALIGNED8 static const u8 texture_font_char_jp_3[] = { + #include "textures/segment2/segment2.07130.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_4[] = { ++ALIGNED8 static const u8 texture_font_char_jp_4[] = { + #include "textures/segment2/segment2.07140.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_5[] = { ++ALIGNED8 static const u8 texture_font_char_jp_5[] = { + #include "textures/segment2/segment2.07150.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_6[] = { ++ALIGNED8 static const u8 texture_font_char_jp_6[] = { + #include "textures/segment2/segment2.07160.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_7[] = { ++ALIGNED8 static const u8 texture_font_char_jp_7[] = { + #include "textures/segment2/segment2.07170.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_8[] = { ++ALIGNED8 static const u8 texture_font_char_jp_8[] = { + #include "textures/segment2/segment2.07180.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_9[] = { ++ALIGNED8 static const u8 texture_font_char_jp_9[] = { + #include "textures/segment2/segment2.07190.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_A[] = { ++ALIGNED8 static const u8 texture_font_char_jp_A[] = { + #include "textures/segment2/segment2.071A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_B[] = { ++ALIGNED8 static const u8 texture_font_char_jp_B[] = { + #include "textures/segment2/segment2.071B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_C[] = { ++ALIGNED8 static const u8 texture_font_char_jp_C[] = { + #include "textures/segment2/segment2.071C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_D[] = { ++ALIGNED8 static const u8 texture_font_char_jp_D[] = { + #include "textures/segment2/segment2.071D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_E[] = { ++ALIGNED8 static const u8 texture_font_char_jp_E[] = { + #include "textures/segment2/segment2.071E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_F[] = { ++ALIGNED8 static const u8 texture_font_char_jp_F[] = { + #include "textures/segment2/segment2.071F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_G[] = { ++ALIGNED8 static const u8 texture_font_char_jp_G[] = { + #include "textures/segment2/segment2.07200.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_H[] = { ++ALIGNED8 static const u8 texture_font_char_jp_H[] = { + #include "textures/segment2/segment2.07210.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_I[] = { ++ALIGNED8 static const u8 texture_font_char_jp_I[] = { + #include "textures/segment2/segment2.07220.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_J[] = { ++ALIGNED8 static const u8 texture_font_char_jp_J[] = { + #include "textures/segment2/segment2.07230.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_K[] = { ++ALIGNED8 static const u8 texture_font_char_jp_K[] = { + #include "textures/segment2/segment2.07240.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_L[] = { ++ALIGNED8 static const u8 texture_font_char_jp_L[] = { + #include "textures/segment2/segment2.07250.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_M[] = { ++ALIGNED8 static const u8 texture_font_char_jp_M[] = { + #include "textures/segment2/segment2.07260.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_N[] = { ++ALIGNED8 static const u8 texture_font_char_jp_N[] = { + #include "textures/segment2/segment2.07270.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_O[] = { ++ALIGNED8 static const u8 texture_font_char_jp_O[] = { + #include "textures/segment2/segment2.07280.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_P[] = { ++ALIGNED8 static const u8 texture_font_char_jp_P[] = { + #include "textures/segment2/segment2.07290.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Q[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Q[] = { + #include "textures/segment2/segment2.072A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_R[] = { ++ALIGNED8 static const u8 texture_font_char_jp_R[] = { + #include "textures/segment2/segment2.072B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_S[] = { ++ALIGNED8 static const u8 texture_font_char_jp_S[] = { + #include "textures/segment2/segment2.072C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_T[] = { ++ALIGNED8 static const u8 texture_font_char_jp_T[] = { + #include "textures/segment2/segment2.072D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_U[] = { ++ALIGNED8 static const u8 texture_font_char_jp_U[] = { + #include "textures/segment2/segment2.072E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_V[] = { ++ALIGNED8 static const u8 texture_font_char_jp_V[] = { + #include "textures/segment2/segment2.072F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_W[] = { ++ALIGNED8 static const u8 texture_font_char_jp_W[] = { + #include "textures/segment2/segment2.07300.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_X[] = { ++ALIGNED8 static const u8 texture_font_char_jp_X[] = { + #include "textures/segment2/segment2.07310.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Y[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Y[] = { + #include "textures/segment2/segment2.07320.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Z[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Z[] = { + #include "textures/segment2/segment2.07330.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_long_vowel[] = { ++ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = { + #include "textures/segment2/segment2.07340.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = { + #include "textures/segment2/segment2.07350.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_dakuten[] = { ++ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = { + #include "textures/segment2/segment2.07360.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_handakuten[] = { ++ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = { + #include "textures/segment2/segment2.07370.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_percent[] = { ++ALIGNED8 static const u8 texture_font_char_jp_percent[] = { + #include "textures/segment2/segment2.07380.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_question[] = { ++ALIGNED8 static const u8 texture_font_char_jp_question[] = { + #include "textures/segment2/segment2.07390.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = { + #include "textures/segment2/segment2.073A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = { + #include "textures/segment2/segment2.073B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = { + #include "textures/segment2/segment2.073C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = { + #include "textures/segment2/segment2.073D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_coin[] = { ++ALIGNED8 static const u8 texture_font_char_jp_coin[] = { + #include "textures/segment2/segment2.073E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_jp_multiply[] = { + #include "textures/segment2/segment2.073F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = { + #include "textures/segment2/segment2.07400.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = { + #include "textures/segment2/segment2.07410.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = { + #include "textures/segment2/segment2.07420.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = { + #include "textures/segment2/segment2.07430.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = { + #include "textures/segment2/segment2.07440.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_c[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = { + #include "textures/segment2/segment2.07450.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = { + #include "textures/segment2/segment2.07460.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ka[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = { + #include "textures/segment2/segment2.07470.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ki[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = { + #include "textures/segment2/segment2.07480.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ku[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = { + #include "textures/segment2/segment2.07490.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ke[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = { + #include "textures/segment2/segment2.074A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ko[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = { + #include "textures/segment2/segment2.074B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_sa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = { + #include "textures/segment2/segment2.074C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_shi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = { + #include "textures/segment2/segment2.074D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_su[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = { + #include "textures/segment2/segment2.074E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_se[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = { + #include "textures/segment2/segment2.074F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_so[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = { + #include "textures/segment2/segment2.07500.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ta[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = { + #include "textures/segment2/segment2.07510.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_chi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = { + #include "textures/segment2/segment2.07520.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = { + #include "textures/segment2/segment2.07530.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_te[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = { + #include "textures/segment2/segment2.07540.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_to[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = { + #include "textures/segment2/segment2.07550.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_na[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = { + #include "textures/segment2/segment2.07560.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ni[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = { + #include "textures/segment2/segment2.07570.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_nu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = { + #include "textures/segment2/segment2.07580.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ne[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = { + #include "textures/segment2/segment2.07590.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_no[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = { + #include "textures/segment2/segment2.075A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ha[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = { + #include "textures/segment2/segment2.075B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = { + #include "textures/segment2/segment2.075C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = { + #include "textures/segment2/segment2.075D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_he[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = { + #include "textures/segment2/segment2.075E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ho[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = { + #include "textures/segment2/segment2.075F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = { + #include "textures/segment2/segment2.07600.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = { + #include "textures/segment2/segment2.07610.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = { + #include "textures/segment2/segment2.07620.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_me[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = { + #include "textures/segment2/segment2.07630.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = { + #include "textures/segment2/segment2.07640.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = { + #include "textures/segment2/segment2.07650.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = { + #include "textures/segment2/segment2.07660.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = { + #include "textures/segment2/segment2.07670.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ra[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = { + #include "textures/segment2/segment2.07680.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ri[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = { + #include "textures/segment2/segment2.07690.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ru[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = { + #include "textures/segment2/segment2.076A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_re[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = { + #include "textures/segment2/segment2.076B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ro[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = { + #include "textures/segment2/segment2.076C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = { + #include "textures/segment2/segment2.076D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = { + #include "textures/segment2/segment2.076E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_n[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = { + #include "textures/segment2/segment2.076F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = { + #include "textures/segment2/segment2.07700.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = { + #include "textures/segment2/segment2.07710.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = { + #include "textures/segment2/segment2.07720.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = { + #include "textures/segment2/segment2.07730.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = { + #include "textures/segment2/segment2.07740.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = { + #include "textures/segment2/segment2.07750.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = { + #include "textures/segment2/segment2.07760.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = { + #include "textures/segment2/segment2.07770.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = { + #include "textures/segment2/segment2.07780.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = { + #include "textures/segment2/segment2.07790.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_comma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_comma[] = { + #include "textures/segment2/segment2.077A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = { + #include "textures/segment2/segment2.077B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = { + #include "textures/segment2/segment2.077C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = { + #include "textures/segment2/segment2.077D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = { + #include "textures/segment2/segment2.077E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = { + #include "textures/segment2/segment2.077F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ka[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = { + #include "textures/segment2/segment2.07800.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ki[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = { + #include "textures/segment2/segment2.07810.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ku[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = { + #include "textures/segment2/segment2.07820.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ke[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = { + #include "textures/segment2/segment2.07830.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ko[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = { + #include "textures/segment2/segment2.07840.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_sa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = { + #include "textures/segment2/segment2.07850.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_shi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = { + #include "textures/segment2/segment2.07860.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_su[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = { + #include "textures/segment2/segment2.07870.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_se[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = { + #include "textures/segment2/segment2.07880.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_so[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = { + #include "textures/segment2/segment2.07890.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ta[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = { + #include "textures/segment2/segment2.078A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_chi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = { + #include "textures/segment2/segment2.078B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = { + #include "textures/segment2/segment2.078C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_te[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = { + #include "textures/segment2/segment2.078D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_to[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = { + #include "textures/segment2/segment2.078E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_na[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = { + #include "textures/segment2/segment2.078F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ni[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = { + #include "textures/segment2/segment2.07900.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_nu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = { + #include "textures/segment2/segment2.07910.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ne[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = { + #include "textures/segment2/segment2.07920.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_no[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = { + #include "textures/segment2/segment2.07930.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ha[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = { + #include "textures/segment2/segment2.07940.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_hi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = { + #include "textures/segment2/segment2.07950.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_hu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = { + #include "textures/segment2/segment2.07960.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_he[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = { + #include "textures/segment2/segment2.07970.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ho[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = { + #include "textures/segment2/segment2.07980.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = { + #include "textures/segment2/segment2.07990.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = { + #include "textures/segment2/segment2.079A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = { + #include "textures/segment2/segment2.079B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_me[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = { + #include "textures/segment2/segment2.079C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = { + #include "textures/segment2/segment2.079D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = { + #include "textures/segment2/segment2.079E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = { + #include "textures/segment2/segment2.079F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = { + #include "textures/segment2/segment2.07A00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ra[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = { + #include "textures/segment2/segment2.07A10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ri[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = { + #include "textures/segment2/segment2.07A20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ru[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = { + #include "textures/segment2/segment2.07A30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_re[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = { + #include "textures/segment2/segment2.07A40.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ro[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = { + #include "textures/segment2/segment2.07A50.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_wa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = { + #include "textures/segment2/segment2.07A60.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_n[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = { + #include "textures/segment2/segment2.07A70.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = { + #include "textures/segment2/segment2.07A80.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = { + #include "textures/segment2/segment2.07A90.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = { + #include "textures/segment2/segment2.07AA0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = { + #include "textures/segment2/segment2.07AB0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = { + #include "textures/segment2/segment2.07AC0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = { + #include "textures/segment2/segment2.07AD0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = { + #include "textures/segment2/segment2.07AE0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = { + #include "textures/segment2/segment2.07AF0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = { + #include "textures/segment2/segment2.07B00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_open[] = { ++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = { + #include "textures/segment2/segment2.07B10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_close[] = { ++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = { + #include "textures/segment2/segment2.07B20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_wave_dash[] = { ++ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = { + #include "textures/segment2/segment2.07B30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_ellipsis[] = { ++ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = { + #include "textures/segment2/segment2.07B40.ia1.inc.c" + }; + + // EU Small Font + #elif defined(VERSION_EU) + +-ALIGNED8 static const Texture texture_font_char_eu_0[] = { ++ALIGNED8 static const u8 texture_font_char_eu_0[] = { + #include "textures/segment2/font_graphics.05F00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_1[] = { ++ALIGNED8 static const u8 texture_font_char_eu_1[] = { + #include "textures/segment2/font_graphics.05F10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_2[] = { ++ALIGNED8 static const u8 texture_font_char_eu_2[] = { + #include "textures/segment2/font_graphics.05F20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_3[] = { ++ALIGNED8 static const u8 texture_font_char_eu_3[] = { + #include "textures/segment2/font_graphics.05F30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_4[] = { ++ALIGNED8 static const u8 texture_font_char_eu_4[] = { + #include "textures/segment2/font_graphics.05F40.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_5[] = { ++ALIGNED8 static const u8 texture_font_char_eu_5[] = { + #include "textures/segment2/font_graphics.05F50.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_6[] = { ++ALIGNED8 static const u8 texture_font_char_eu_6[] = { + #include "textures/segment2/font_graphics.05F60.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_7[] = { ++ALIGNED8 static const u8 texture_font_char_eu_7[] = { + #include "textures/segment2/font_graphics.05F70.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_8[] = { ++ALIGNED8 static const u8 texture_font_char_eu_8[] = { + #include "textures/segment2/font_graphics.05F80.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_9[] = { ++ALIGNED8 static const u8 texture_font_char_eu_9[] = { + #include "textures/segment2/font_graphics.05F90.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_A[] = { ++ALIGNED8 static const u8 texture_font_char_eu_A[] = { + #include "textures/segment2/font_graphics.05FA0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_B[] = { ++ALIGNED8 static const u8 texture_font_char_eu_B[] = { + #include "textures/segment2/font_graphics.05FB0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_C[] = { ++ALIGNED8 static const u8 texture_font_char_eu_C[] = { + #include "textures/segment2/font_graphics.05FC0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_D[] = { ++ALIGNED8 static const u8 texture_font_char_eu_D[] = { + #include "textures/segment2/font_graphics.05FD0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_E[] = { ++ALIGNED8 static const u8 texture_font_char_eu_E[] = { + #include "textures/segment2/font_graphics.05FE0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_F[] = { ++ALIGNED8 static const u8 texture_font_char_eu_F[] = { + #include "textures/segment2/font_graphics.05FF0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_G[] = { ++ALIGNED8 static const u8 texture_font_char_eu_G[] = { + #include "textures/segment2/font_graphics.06000.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_H[] = { ++ALIGNED8 static const u8 texture_font_char_eu_H[] = { + #include "textures/segment2/font_graphics.06010.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_I[] = { ++ALIGNED8 static const u8 texture_font_char_eu_I[] = { + #include "textures/segment2/font_graphics.06020.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_J[] = { ++ALIGNED8 static const u8 texture_font_char_eu_J[] = { + #include "textures/segment2/font_graphics.06030.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_K[] = { ++ALIGNED8 static const u8 texture_font_char_eu_K[] = { + #include "textures/segment2/font_graphics.06040.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_L[] = { ++ALIGNED8 static const u8 texture_font_char_eu_L[] = { + #include "textures/segment2/font_graphics.06050.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_M[] = { ++ALIGNED8 static const u8 texture_font_char_eu_M[] = { + #include "textures/segment2/font_graphics.06060.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_N[] = { ++ALIGNED8 static const u8 texture_font_char_eu_N[] = { + #include "textures/segment2/font_graphics.06070.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_O[] = { ++ALIGNED8 static const u8 texture_font_char_eu_O[] = { + #include "textures/segment2/font_graphics.06080.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_P[] = { ++ALIGNED8 static const u8 texture_font_char_eu_P[] = { + #include "textures/segment2/font_graphics.06090.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Q[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Q[] = { + #include "textures/segment2/font_graphics.060A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_R[] = { ++ALIGNED8 static const u8 texture_font_char_eu_R[] = { + #include "textures/segment2/font_graphics.060B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_S[] = { ++ALIGNED8 static const u8 texture_font_char_eu_S[] = { + #include "textures/segment2/font_graphics.060C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_T[] = { ++ALIGNED8 static const u8 texture_font_char_eu_T[] = { + #include "textures/segment2/font_graphics.060D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_U[] = { ++ALIGNED8 static const u8 texture_font_char_eu_U[] = { + #include "textures/segment2/font_graphics.060E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_V[] = { ++ALIGNED8 static const u8 texture_font_char_eu_V[] = { + #include "textures/segment2/font_graphics.060F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_W[] = { ++ALIGNED8 static const u8 texture_font_char_eu_W[] = { + #include "textures/segment2/font_graphics.06100.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_X[] = { ++ALIGNED8 static const u8 texture_font_char_eu_X[] = { + #include "textures/segment2/font_graphics.06110.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Y[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Y[] = { + #include "textures/segment2/font_graphics.06120.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Z[] = { + #include "textures/segment2/font_graphics.06130.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_a[] = { ++ALIGNED8 static const u8 texture_font_char_eu_a[] = { + #include "textures/segment2/font_graphics.06140.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_b[] = { ++ALIGNED8 static const u8 texture_font_char_eu_b[] = { + #include "textures/segment2/font_graphics.06150.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_c[] = { ++ALIGNED8 static const u8 texture_font_char_eu_c[] = { + #include "textures/segment2/font_graphics.06160.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_d[] = { ++ALIGNED8 static const u8 texture_font_char_eu_d[] = { + #include "textures/segment2/font_graphics.06170.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_e[] = { ++ALIGNED8 static const u8 texture_font_char_eu_e[] = { + #include "textures/segment2/font_graphics.06180.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_f[] = { ++ALIGNED8 static const u8 texture_font_char_eu_f[] = { + #include "textures/segment2/font_graphics.06190.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_g[] = { ++ALIGNED8 static const u8 texture_font_char_eu_g[] = { + #include "textures/segment2/font_graphics.061A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_h[] = { ++ALIGNED8 static const u8 texture_font_char_eu_h[] = { + #include "textures/segment2/font_graphics.061B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_i[] = { ++ALIGNED8 static const u8 texture_font_char_eu_i[] = { + #include "textures/segment2/font_graphics.061C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_j[] = { ++ALIGNED8 static const u8 texture_font_char_eu_j[] = { + #include "textures/segment2/font_graphics.061D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_k[] = { ++ALIGNED8 static const u8 texture_font_char_eu_k[] = { + #include "textures/segment2/font_graphics.061E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_l[] = { ++ALIGNED8 static const u8 texture_font_char_eu_l[] = { + #include "textures/segment2/font_graphics.061F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_m[] = { ++ALIGNED8 static const u8 texture_font_char_eu_m[] = { + #include "textures/segment2/font_graphics.06200.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_n[] = { ++ALIGNED8 static const u8 texture_font_char_eu_n[] = { + #include "textures/segment2/font_graphics.06210.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_o[] = { ++ALIGNED8 static const u8 texture_font_char_eu_o[] = { + #include "textures/segment2/font_graphics.06220.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_p[] = { ++ALIGNED8 static const u8 texture_font_char_eu_p[] = { + #include "textures/segment2/font_graphics.06230.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_q[] = { ++ALIGNED8 static const u8 texture_font_char_eu_q[] = { + #include "textures/segment2/font_graphics.06240.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_r[] = { ++ALIGNED8 static const u8 texture_font_char_eu_r[] = { + #include "textures/segment2/font_graphics.06250.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_s[] = { ++ALIGNED8 static const u8 texture_font_char_eu_s[] = { + #include "textures/segment2/font_graphics.06260.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_t[] = { ++ALIGNED8 static const u8 texture_font_char_eu_t[] = { + #include "textures/segment2/font_graphics.06270.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_u[] = { ++ALIGNED8 static const u8 texture_font_char_eu_u[] = { + #include "textures/segment2/font_graphics.06280.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_v[] = { ++ALIGNED8 static const u8 texture_font_char_eu_v[] = { + #include "textures/segment2/font_graphics.06290.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_w[] = { ++ALIGNED8 static const u8 texture_font_char_eu_w[] = { + #include "textures/segment2/font_graphics.062A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_x[] = { ++ALIGNED8 static const u8 texture_font_char_eu_x[] = { + #include "textures/segment2/font_graphics.062B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_y[] = { ++ALIGNED8 static const u8 texture_font_char_eu_y[] = { + #include "textures/segment2/font_graphics.062C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_z[] = { + #include "textures/segment2/font_graphics.062D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = { + #include "textures/segment2/font_graphics.062E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_ampersand[] = { ++ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = { + #include "textures/segment2/font_graphics.062F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = { + #include "textures/segment2/font_graphics.06300.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_coin[] = { ++ALIGNED8 static const u8 texture_font_char_eu_coin[] = { + #include "textures/segment2/font_graphics.06310.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_eu_multiply[] = { + #include "textures/segment2/font_graphics.06320.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = { + #include "textures/segment2/font_graphics.06330.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = { + #include "textures/segment2/font_graphics.06340.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = { + #include "textures/segment2/font_graphics.06350.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_tilde[] = { ++ALIGNED8 static const u8 texture_font_char_eu_tilde[] = { + #include "textures/segment2/font_graphics.06360.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_period[] = { ++ALIGNED8 static const u8 texture_font_char_eu_period[] = { + #include "textures/segment2/font_graphics.06370.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_percent[] = { ++ALIGNED8 static const u8 texture_font_char_eu_percent[] = { + #include "textures/segment2/font_graphics.06380.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = { + #include "textures/segment2/font_graphics.06390.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_comma[] = { ++ALIGNED8 static const u8 texture_font_char_eu_comma[] = { + #include "textures/segment2/font_graphics.063A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_apostrophe[] = { ++ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = { + #include "textures/segment2/font_graphics.063B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_question[] = { ++ALIGNED8 static const u8 texture_font_char_eu_question[] = { + #include "textures/segment2/font_graphics.063C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = { + #include "textures/segment2/font_graphics.063D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = { + #include "textures/segment2/font_graphics.063E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_double_quote_open[] = { ++ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = { + #include "textures/segment2/font_graphics.063F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_double_quote_close[] = { ++ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = { + #include "textures/segment2/font_graphics.06400.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_colon[] = { ++ALIGNED8 static const u8 texture_font_char_eu_colon[] = { + #include "textures/segment2/font_graphics.06410.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_EU_slash[] = { ++ALIGNED8 static const u8 texture_font_char_EU_slash[] = { + #include "textures/segment2/font_graphics.06420.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_A[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_A[] = { + #include "textures/segment2/font_graphics.06430.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_B[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_B[] = { + #include "textures/segment2/font_graphics.06440.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C[] = { + #include "textures/segment2/font_graphics.06450.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_Z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = { + #include "textures/segment2/font_graphics.06460.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_R[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_R[] = { + #include "textures/segment2/font_graphics.06470.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_up[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = { + #include "textures/segment2/font_graphics.06480.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_down[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = { + #include "textures/segment2/font_graphics.06490.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_left[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = { + #include "textures/segment2/font_graphics.064A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_right[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = { + #include "textures/segment2/font_graphics.064B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_umlaut[] = { ++ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = { + #include "textures/segment2/font_graphics.064C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_circumflex[] = { ++ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = { + #include "textures/segment2/font_graphics.064D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_grave[] = { ++ALIGNED8 static const u8 texture_font_char_eu_grave[] = { + #include "textures/segment2/font_graphics.064E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_acute[] = { ++ALIGNED8 static const u8 texture_font_char_eu_acute[] = { + #include "textures/segment2/font_graphics.064F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_cedilla[] = { ++ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = { + #include "textures/segment2/font_graphics.06500.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_unknown[] = { ++ALIGNED8 static const u8 texture_font_char_eu_unknown[] = { + #include "textures/segment2/font_graphics.06510.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Cedilla[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = { + #include "textures/segment2/font_graphics.06520.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_eszeet[] = { ++ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = { + #include "textures/segment2/font_graphics.06530.ia1.inc.c" + }; + + // US Small Font + #else +-ALIGNED8 static const Texture texture_font_char_us_0[] = { ++ALIGNED8 static const u8 texture_font_char_us_0[] = { + #include "textures/segment2/font_graphics.05900.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_1[] = { ++ALIGNED8 static const u8 texture_font_char_us_1[] = { + #include "textures/segment2/font_graphics.05940.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_2[] = { ++ALIGNED8 static const u8 texture_font_char_us_2[] = { + #include "textures/segment2/font_graphics.05980.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_3[] = { ++ALIGNED8 static const u8 texture_font_char_us_3[] = { + #include "textures/segment2/font_graphics.059C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_4[] = { ++ALIGNED8 static const u8 texture_font_char_us_4[] = { + #include "textures/segment2/font_graphics.05A00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_5[] = { ++ALIGNED8 static const u8 texture_font_char_us_5[] = { + #include "textures/segment2/font_graphics.05A40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_6[] = { ++ALIGNED8 static const u8 texture_font_char_us_6[] = { + #include "textures/segment2/font_graphics.05A80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_7[] = { ++ALIGNED8 static const u8 texture_font_char_us_7[] = { + #include "textures/segment2/font_graphics.05AC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_8[] = { ++ALIGNED8 static const u8 texture_font_char_us_8[] = { + #include "textures/segment2/font_graphics.05B00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_9[] = { ++ALIGNED8 static const u8 texture_font_char_us_9[] = { + #include "textures/segment2/font_graphics.05B40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_A[] = { ++ALIGNED8 static const u8 texture_font_char_us_A[] = { + #include "textures/segment2/font_graphics.05B80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_B[] = { ++ALIGNED8 static const u8 texture_font_char_us_B[] = { + #include "textures/segment2/font_graphics.05BC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_C[] = { ++ALIGNED8 static const u8 texture_font_char_us_C[] = { + #include "textures/segment2/font_graphics.05C00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_D[] = { ++ALIGNED8 static const u8 texture_font_char_us_D[] = { + #include "textures/segment2/font_graphics.05C40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_E[] = { ++ALIGNED8 static const u8 texture_font_char_us_E[] = { + #include "textures/segment2/font_graphics.05C80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_F[] = { ++ALIGNED8 static const u8 texture_font_char_us_F[] = { + #include "textures/segment2/font_graphics.05CC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_G[] = { ++ALIGNED8 static const u8 texture_font_char_us_G[] = { + #include "textures/segment2/font_graphics.05D00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_H[] = { ++ALIGNED8 static const u8 texture_font_char_us_H[] = { + #include "textures/segment2/font_graphics.05D40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_I[] = { ++ALIGNED8 static const u8 texture_font_char_us_I[] = { + #include "textures/segment2/font_graphics.05D80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_J[] = { ++ALIGNED8 static const u8 texture_font_char_us_J[] = { + #include "textures/segment2/font_graphics.05DC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_K[] = { ++ALIGNED8 static const u8 texture_font_char_us_K[] = { + #include "textures/segment2/font_graphics.05E00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_L[] = { ++ALIGNED8 static const u8 texture_font_char_us_L[] = { + #include "textures/segment2/font_graphics.05E40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_M[] = { ++ALIGNED8 static const u8 texture_font_char_us_M[] = { + #include "textures/segment2/font_graphics.05E80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_N[] = { ++ALIGNED8 static const u8 texture_font_char_us_N[] = { + #include "textures/segment2/font_graphics.05EC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_O[] = { ++ALIGNED8 static const u8 texture_font_char_us_O[] = { + #include "textures/segment2/font_graphics.05F00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_P[] = { ++ALIGNED8 static const u8 texture_font_char_us_P[] = { + #include "textures/segment2/font_graphics.05F40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Q[] = { ++ALIGNED8 static const u8 texture_font_char_us_Q[] = { + #include "textures/segment2/font_graphics.05F80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_R[] = { ++ALIGNED8 static const u8 texture_font_char_us_R[] = { + #include "textures/segment2/font_graphics.05FC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_S[] = { ++ALIGNED8 static const u8 texture_font_char_us_S[] = { + #include "textures/segment2/font_graphics.06000.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_T[] = { ++ALIGNED8 static const u8 texture_font_char_us_T[] = { + #include "textures/segment2/font_graphics.06040.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_U[] = { ++ALIGNED8 static const u8 texture_font_char_us_U[] = { + #include "textures/segment2/font_graphics.06080.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_V[] = { ++ALIGNED8 static const u8 texture_font_char_us_V[] = { + #include "textures/segment2/font_graphics.060C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_W[] = { ++ALIGNED8 static const u8 texture_font_char_us_W[] = { + #include "textures/segment2/font_graphics.06100.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_X[] = { ++ALIGNED8 static const u8 texture_font_char_us_X[] = { + #include "textures/segment2/font_graphics.06140.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Y[] = { ++ALIGNED8 static const u8 texture_font_char_us_Y[] = { + #include "textures/segment2/font_graphics.06180.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Z[] = { ++ALIGNED8 static const u8 texture_font_char_us_Z[] = { + #include "textures/segment2/font_graphics.061C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_a[] = { ++ALIGNED8 static const u8 texture_font_char_us_a[] = { + #include "textures/segment2/font_graphics.06200.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_b[] = { ++ALIGNED8 static const u8 texture_font_char_us_b[] = { + #include "textures/segment2/font_graphics.06240.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_c[] = { ++ALIGNED8 static const u8 texture_font_char_us_c[] = { + #include "textures/segment2/font_graphics.06280.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_d[] = { ++ALIGNED8 static const u8 texture_font_char_us_d[] = { + #include "textures/segment2/font_graphics.062C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_e[] = { ++ALIGNED8 static const u8 texture_font_char_us_e[] = { + #include "textures/segment2/font_graphics.06300.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_f[] = { ++ALIGNED8 static const u8 texture_font_char_us_f[] = { + #include "textures/segment2/font_graphics.06340.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_g[] = { ++ALIGNED8 static const u8 texture_font_char_us_g[] = { + #include "textures/segment2/font_graphics.06380.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_h[] = { ++ALIGNED8 static const u8 texture_font_char_us_h[] = { + #include "textures/segment2/font_graphics.063C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_i[] = { ++ALIGNED8 static const u8 texture_font_char_us_i[] = { + #include "textures/segment2/font_graphics.06400.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_j[] = { ++ALIGNED8 static const u8 texture_font_char_us_j[] = { + #include "textures/segment2/font_graphics.06440.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_k[] = { ++ALIGNED8 static const u8 texture_font_char_us_k[] = { + #include "textures/segment2/font_graphics.06480.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_l[] = { ++ALIGNED8 static const u8 texture_font_char_us_l[] = { + #include "textures/segment2/font_graphics.064C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_m[] = { ++ALIGNED8 static const u8 texture_font_char_us_m[] = { + #include "textures/segment2/font_graphics.06500.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_n[] = { ++ALIGNED8 static const u8 texture_font_char_us_n[] = { + #include "textures/segment2/font_graphics.06540.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_o[] = { ++ALIGNED8 static const u8 texture_font_char_us_o[] = { + #include "textures/segment2/font_graphics.06580.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_p[] = { ++ALIGNED8 static const u8 texture_font_char_us_p[] = { + #include "textures/segment2/font_graphics.065C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_q[] = { ++ALIGNED8 static const u8 texture_font_char_us_q[] = { + #include "textures/segment2/font_graphics.06600.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_r[] = { ++ALIGNED8 static const u8 texture_font_char_us_r[] = { + #include "textures/segment2/font_graphics.06640.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_s[] = { ++ALIGNED8 static const u8 texture_font_char_us_s[] = { + #include "textures/segment2/font_graphics.06680.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_t[] = { ++ALIGNED8 static const u8 texture_font_char_us_t[] = { + #include "textures/segment2/font_graphics.066C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_u[] = { ++ALIGNED8 static const u8 texture_font_char_us_u[] = { + #include "textures/segment2/font_graphics.06700.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_v[] = { ++ALIGNED8 static const u8 texture_font_char_us_v[] = { + #include "textures/segment2/font_graphics.06740.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_w[] = { ++ALIGNED8 static const u8 texture_font_char_us_w[] = { + #include "textures/segment2/font_graphics.06780.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_x[] = { ++ALIGNED8 static const u8 texture_font_char_us_x[] = { + #include "textures/segment2/font_graphics.067C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_y[] = { ++ALIGNED8 static const u8 texture_font_char_us_y[] = { + #include "textures/segment2/font_graphics.06800.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_z[] = { ++ALIGNED8 static const u8 texture_font_char_us_z[] = { + #include "textures/segment2/font_graphics.06840.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = { + #include "textures/segment2/font_graphics.06880.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_us_exclamation[] = { + #include "textures/segment2/font_graphics.068C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_coin[] = { ++ALIGNED8 static const u8 texture_font_char_us_coin[] = { + #include "textures/segment2/font_graphics.06900.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_us_multiply[] = { + #include "textures/segment2/font_graphics.06940.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = { + #include "textures/segment2/font_graphics.06980.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = { + #include "textures/segment2/font_graphics.069C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = { + #include "textures/segment2/font_graphics.06A00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_tilde[] = { ++ALIGNED8 static const u8 texture_font_char_us_tilde[] = { + #include "textures/segment2/font_graphics.06A40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_period[] = { ++ALIGNED8 static const u8 texture_font_char_us_period[] = { + #include "textures/segment2/font_graphics.06A80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_percent[] = { ++ALIGNED8 static const u8 texture_font_char_us_percent[] = { + #include "textures/segment2/font_graphics.06AC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_us_interpunct[] = { + #include "textures/segment2/font_graphics.06B00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_comma[] = { ++ALIGNED8 static const u8 texture_font_char_us_comma[] = { + #include "textures/segment2/font_graphics.06B40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_apostrophe[] = { ++ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = { + #include "textures/segment2/font_graphics.06B80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_question[] = { ++ALIGNED8 static const u8 texture_font_char_us_question[] = { + #include "textures/segment2/font_graphics.06BC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_us_star_filled[] = { + #include "textures/segment2/font_graphics.06C00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = { + #include "textures/segment2/font_graphics.06C40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_double_quote_open[] = { ++ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = { + #include "textures/segment2/font_graphics.06C80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_double_quote_close[] = { ++ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = { + #include "textures/segment2/font_graphics.06CC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_ellipsis[] = { ++ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = { + #include "textures/segment2/font_graphics.06D00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_slash[] = { ++ALIGNED8 static const u8 texture_font_char_us_slash[] = { + #include "textures/segment2/font_graphics.06D40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_ampersand[] = { ++ALIGNED8 static const u8 texture_font_char_us_ampersand[] = { + #include "textures/segment2/font_graphics.06D80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_A[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_A[] = { + #include "textures/segment2/font_graphics.06DC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_B[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_B[] = { + #include "textures/segment2/font_graphics.06E00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C[] = { + #include "textures/segment2/font_graphics.06E40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_Z[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_Z[] = { + #include "textures/segment2/font_graphics.06E80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_R[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_R[] = { + #include "textures/segment2/font_graphics.06EC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_up[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = { + #include "textures/segment2/font_graphics.06F00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_down[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = { + #include "textures/segment2/font_graphics.06F40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_left[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = { + #include "textures/segment2/font_graphics.06F80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_right[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = { + #include "textures/segment2/font_graphics.06FC0.ia4.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_camera[] = { ++ALIGNED8 static const u8 texture_hud_char_camera[] = { + #include "textures/segment2/segment2.07B50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_lakitu[] = { ++ALIGNED8 static const u8 texture_hud_char_lakitu[] = { + #include "textures/segment2/segment2.07D50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_no_camera[] = { ++ALIGNED8 static const u8 texture_hud_char_no_camera[] = { + #include "textures/segment2/segment2.07F50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_arrow_up[] = { ++ALIGNED8 static const u8 texture_hud_char_arrow_up[] = { + #include "textures/segment2/segment2.08150.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_arrow_down[] = { ++ALIGNED8 static const u8 texture_hud_char_arrow_down[] = { + #include "textures/segment2/segment2.081D0.rgba16.inc.c" + }; + + // Main HUD print table 0x02008250-0x02008337 +-const Texture *const main_hud_lut[] = { ++const u8 *const main_hud_lut[] = { + #ifdef VERSION_EU + texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, + texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, +@@ -1858,7 +1854,7 @@ const Texture *const main_hud_lut[] = { + }; + + // Main small font print table 0x02008338-0x02008737 +-const Texture *const main_font_lut[] = { ++const u8 *const main_font_lut[] = { + #ifdef VERSION_EU // EU Font Table + texture_font_char_eu_0, texture_font_char_eu_1, texture_font_char_eu_2, texture_font_char_eu_3, + texture_font_char_eu_4, texture_font_char_eu_5, texture_font_char_eu_6, texture_font_char_eu_7, +@@ -2060,7 +2056,7 @@ const Texture *const main_font_lut[] = { + }; + + // credits font LUT 0x02008738-0x020087CB +-const Texture *const main_credits_font_lut[] = { ++const u8 *const main_credits_font_lut[] = { + 0x0, 0x0, 0x0, texture_credits_char_3, + texture_credits_char_4, 0x0, texture_credits_char_6, 0x0, + 0x0, 0x0, texture_credits_char_A, texture_credits_char_B, +@@ -2074,7 +2070,7 @@ const Texture *const main_credits_font_lut[] = { + }; + + // HUD camera table 0x020087CC-0x020087E3 +-const Texture *const main_hud_camera_lut[] = { ++const u8 *const main_hud_camera_lut[] = { + texture_hud_char_camera, texture_hud_char_mario_head, texture_hud_char_lakitu, texture_hud_char_no_camera, + texture_hud_char_arrow_up, texture_hud_char_arrow_down, + }; +@@ -2097,12 +2093,10 @@ const Gfx dl_hud_img_begin[] = { + gsDPSetTexturePersp(G_TP_NONE), + gsDPSetAlphaCompare(G_AC_THRESHOLD), + gsDPSetBlendColor(255, 255, 255, 255), +-#if defined(VERSION_EU) || defined(VERSION_SH) +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +-#endif + #ifdef VERSION_EU ++ gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), + gsDPSetTextureFilter(G_TF_POINT), +-#elif defined(VERSION_JP) || defined(VERSION_US) ++#else + gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), + #endif + gsSPEndDisplayList(), +@@ -2126,9 +2120,9 @@ const Gfx dl_hud_img_end[] = { + gsDPSetAlphaCompare(G_AC_NONE), + #ifdef VERSION_EU + gsDPSetTextureFilter(G_TF_BILERP), +-#endif + gsDPSetCycleType(G_CYC_1CYCLE), +-#if defined(VERSION_JP) || defined(VERSION_US) ++#else ++ gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + #endif + gsSPEndDisplayList(), +@@ -2189,16 +2183,16 @@ const Gfx dl_draw_text_bg_box[] = { + #ifndef VERSION_EU + // 0x0200EE28 - 0x0200EE68 + static const Vtx vertex_ia8_char[] = { +-#if defined(VERSION_JP) || defined(VERSION_SH) +- {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, +-#else ++#ifndef VERSION_JP + {{{ 0, 0, 0}, 0, { 0, 256}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 16, 0}, 0, { 480, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}}, ++#else ++ {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + #endif + }; + // !EU +@@ -2453,47 +2447,47 @@ const Gfx dl_billboard_num_9[] = { + gsSPEndDisplayList(), + }; + +-ALIGNED8 static const Texture texture_shadow_quarter_circle[] = { ++ALIGNED8 static const u8 texture_shadow_quarter_circle[] = { + #include "textures/segment2/shadow_quarter_circle.ia8.inc.c" + }; + +-ALIGNED8 static const Texture texture_shadow_quarter_square[] = { ++ALIGNED8 static const u8 texture_shadow_quarter_square[] = { + #include "textures/segment2/shadow_quarter_square.ia8.inc.c" + }; + +-const Texture texture_transition_star_half[] = { ++ALIGNED8 const u8 texture_transition_star_half[] = { + #include "textures/segment2/segment2.0F458.ia8.inc.c" + }; + +-const Texture texture_transition_circle_half[] = { ++ALIGNED8 const u8 texture_transition_circle_half[] = { + #include "textures/segment2/segment2.0FC58.ia8.inc.c" + }; + +-const Texture texture_transition_mario[] = { ++ALIGNED8 const u8 texture_transition_mario[] = { + #include "textures/segment2/segment2.10458.ia8.inc.c" + }; + +-const Texture texture_transition_bowser_half[] = { ++ALIGNED8 const u8 texture_transition_bowser_half[] = { + #include "textures/segment2/segment2.11458.ia8.inc.c" + }; + +-const Texture texture_waterbox_water[] = { ++ALIGNED8 const u8 texture_waterbox_water[] = { + #include "textures/segment2/segment2.11C58.rgba16.inc.c" + }; + +-const Texture texture_waterbox_jrb_water[] = { ++ALIGNED8 const u8 texture_waterbox_jrb_water[] = { + #include "textures/segment2/segment2.12458.rgba16.inc.c" + }; + +-const Texture texture_waterbox_unknown_water[] = { ++ALIGNED8 const u8 texture_waterbox_unknown_water[] = { + #include "textures/segment2/segment2.12C58.rgba16.inc.c" + }; + +-const Texture texture_waterbox_mist[] = { ++ALIGNED8 const u8 texture_waterbox_mist[] = { + #include "textures/segment2/segment2.13458.ia16.inc.c" + }; + +-const Texture texture_waterbox_lava[] = { ++ALIGNED8 const u8 texture_waterbox_lava[] = { + #include "textures/segment2/segment2.13C58.rgba16.inc.c" + }; + +@@ -2691,7 +2685,7 @@ const Gfx dl_waterbox_end[] = { + }; + + // 0x02014838 - 0x02014878 +-ALIGNED8 static const Texture texture_ia8_up_arrow[] = { ++ALIGNED8 static const u8 texture_ia8_up_arrow[] = { + #include "textures/segment2/segment2.14838.ia8.inc.c" + }; + diff --git a/bin/sky.c b/bin/sky.c index 48c07830..861f7765 100644 --- a/bin/sky.c +++ b/bin/sky.c @@ -1,78 +1,77 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture sky_09000000[] = { +ALIGNED8 const u8 sky_09000000[] = { #include "textures/sky/rr_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture sky_09000800[] = { +ALIGNED8 const u8 sky_09000800[] = { #include "textures/sky/rr_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture sky_09001000[] = { +ALIGNED8 const u8 sky_09001000[] = { #include "textures/sky/rr_textures.01000.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture sky_09001800[] = { +ALIGNED8 const u8 sky_09001800[] = { #include "textures/sky/rr_textures.01800.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture sky_09002000[] = { +ALIGNED8 const u8 sky_09002000[] = { #include "textures/sky/rr_textures.02000.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture sky_09003000[] = { +ALIGNED8 const u8 sky_09003000[] = { #include "textures/sky/rr_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture sky_09003800[] = { +ALIGNED8 const u8 sky_09003800[] = { #include "textures/sky/rr_textures.03800.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture sky_09004800[] = { +ALIGNED8 const u8 sky_09004800[] = { #include "textures/sky/rr_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture sky_09005000[] = { +ALIGNED8 const u8 sky_09005000[] = { #include "textures/sky/rr_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture sky_09005800[] = { +ALIGNED8 const u8 sky_09005800[] = { #include "textures/sky/rr_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture sky_09006000[] = { +ALIGNED8 const u8 sky_09006000[] = { #include "textures/sky/rr_textures.06000.rgba16.inc.c" }; -ALIGNED8 const Texture texture_metal_hole[] = { +ALIGNED8 const u8 texture_metal_hole[] = { #include "textures/sky/metal_hole.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture sky_09007000[] = { +ALIGNED8 const u8 sky_09007000[] = { #include "textures/sky/rr_textures.07000.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture sky_09007800[] = { +ALIGNED8 const u8 sky_09007800[] = { #include "textures/sky/rr_textures.07800.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture sky_09008000[] = { +ALIGNED8 const u8 sky_09008000[] = { #include "textures/sky/rr_textures.08000.rgba16.inc.c" }; diff --git a/bin/sky.c.rej b/bin/sky.c.rej new file mode 100644 index 00000000..ba8eea4f --- /dev/null +++ b/bin/sky.c.rej @@ -0,0 +1,96 @@ +diff a/bin/sky.c b/bin/sky.c (rejected hunks) +@@ -1,78 +1,77 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture sky_09000000[] = { ++ALIGNED8 const u8 sky_09000000[] = { + #include "textures/sky/rr_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture sky_09000800[] = { ++ALIGNED8 const u8 sky_09000800[] = { + #include "textures/sky/rr_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture sky_09001000[] = { ++ALIGNED8 const u8 sky_09001000[] = { + #include "textures/sky/rr_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture sky_09001800[] = { ++ALIGNED8 const u8 sky_09001800[] = { + #include "textures/sky/rr_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture sky_09002000[] = { ++ALIGNED8 const u8 sky_09002000[] = { + #include "textures/sky/rr_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture sky_09003000[] = { ++ALIGNED8 const u8 sky_09003000[] = { + #include "textures/sky/rr_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture sky_09003800[] = { ++ALIGNED8 const u8 sky_09003800[] = { + #include "textures/sky/rr_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture sky_09004800[] = { ++ALIGNED8 const u8 sky_09004800[] = { + #include "textures/sky/rr_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture sky_09005000[] = { ++ALIGNED8 const u8 sky_09005000[] = { + #include "textures/sky/rr_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture sky_09005800[] = { ++ALIGNED8 const u8 sky_09005800[] = { + #include "textures/sky/rr_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture sky_09006000[] = { ++ALIGNED8 const u8 sky_09006000[] = { + #include "textures/sky/rr_textures.06000.rgba16.inc.c" + }; + +-ALIGNED8 const Texture texture_metal_hole[] = { ++ALIGNED8 const u8 texture_metal_hole[] = { + #include "textures/sky/metal_hole.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture sky_09007000[] = { ++ALIGNED8 const u8 sky_09007000[] = { + #include "textures/sky/rr_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture sky_09007800[] = { ++ALIGNED8 const u8 sky_09007800[] = { + #include "textures/sky/rr_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture sky_09008000[] = { ++ALIGNED8 const u8 sky_09008000[] = { + #include "textures/sky/rr_textures.08000.rgba16.inc.c" + }; diff --git a/bin/snow.c b/bin/snow.c index f89ebe0c..5e8999f7 100644 --- a/bin/snow.c +++ b/bin/snow.c @@ -1,94 +1,93 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture snow_09000000[] = { +ALIGNED8 const u8 snow_09000000[] = { #include "textures/snow/ccm_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture snow_09000800[] = { +ALIGNED8 const u8 snow_09000800[] = { #include "textures/snow/ccm_textures.00800.rgba16.inc.c" }; // 0x09001000 -ALIGNED8 const Texture snow_09001000[] = { +ALIGNED8 const u8 snow_09001000[] = { #include "textures/snow/ccm_textures.01000.rgba16.inc.c" }; // 0x09002000 -ALIGNED8 const Texture snow_09002000[] = { +ALIGNED8 const u8 snow_09002000[] = { #include "textures/snow/ccm_textures.02000.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture snow_09002800[] = { +ALIGNED8 const u8 snow_09002800[] = { #include "textures/snow/ccm_textures.02800.rgba16.inc.c" }; // 0x09003000 -ALIGNED8 const Texture snow_09003000[] = { +ALIGNED8 const u8 snow_09003000[] = { #include "textures/snow/ccm_textures.03000.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture snow_09003800[] = { +ALIGNED8 const u8 snow_09003800[] = { #include "textures/snow/ccm_textures.03800.rgba16.inc.c" }; // 0x09004000 -ALIGNED8 const Texture snow_09004000[] = { +ALIGNED8 const u8 snow_09004000[] = { #include "textures/snow/ccm_textures.04000.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture snow_09004800[] = { +ALIGNED8 const u8 snow_09004800[] = { #include "textures/snow/ccm_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture snow_09005000[] = { +ALIGNED8 const u8 snow_09005000[] = { #include "textures/snow/ccm_textures.05000.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture snow_09005800[] = { +ALIGNED8 const u8 snow_09005800[] = { #include "textures/snow/ccm_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture snow_09006000[] = { +ALIGNED8 const u8 snow_09006000[] = { #include "textures/snow/ccm_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture snow_09006800[] = { +ALIGNED8 const u8 snow_09006800[] = { #include "textures/snow/ccm_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture snow_09007000[] = { +ALIGNED8 const u8 snow_09007000[] = { #include "textures/snow/ccm_textures.07000.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture snow_09008000[] = { +ALIGNED8 const u8 snow_09008000[] = { #include "textures/snow/ccm_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture snow_09008800[] = { +ALIGNED8 const u8 snow_09008800[] = { #include "textures/snow/ccm_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture snow_09009000[] = { +ALIGNED8 const u8 snow_09009000[] = { #include "textures/snow/ccm_textures.09000.ia16.inc.c" }; // 0x09009800 -ALIGNED8 const Texture snow_09009800[] = { +ALIGNED8 const u8 snow_09009800[] = { #include "textures/snow/ccm_textures.09800.ia16.inc.c" }; diff --git a/bin/snow.c.rej b/bin/snow.c.rej new file mode 100644 index 00000000..8573e930 --- /dev/null +++ b/bin/snow.c.rej @@ -0,0 +1,115 @@ +diff a/bin/snow.c b/bin/snow.c (rejected hunks) +@@ -1,94 +1,93 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture snow_09000000[] = { ++ALIGNED8 const u8 snow_09000000[] = { + #include "textures/snow/ccm_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture snow_09000800[] = { ++ALIGNED8 const u8 snow_09000800[] = { + #include "textures/snow/ccm_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture snow_09001000[] = { ++ALIGNED8 const u8 snow_09001000[] = { + #include "textures/snow/ccm_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture snow_09002000[] = { ++ALIGNED8 const u8 snow_09002000[] = { + #include "textures/snow/ccm_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture snow_09002800[] = { ++ALIGNED8 const u8 snow_09002800[] = { + #include "textures/snow/ccm_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture snow_09003000[] = { ++ALIGNED8 const u8 snow_09003000[] = { + #include "textures/snow/ccm_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture snow_09003800[] = { ++ALIGNED8 const u8 snow_09003800[] = { + #include "textures/snow/ccm_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture snow_09004000[] = { ++ALIGNED8 const u8 snow_09004000[] = { + #include "textures/snow/ccm_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture snow_09004800[] = { ++ALIGNED8 const u8 snow_09004800[] = { + #include "textures/snow/ccm_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture snow_09005000[] = { ++ALIGNED8 const u8 snow_09005000[] = { + #include "textures/snow/ccm_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture snow_09005800[] = { ++ALIGNED8 const u8 snow_09005800[] = { + #include "textures/snow/ccm_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture snow_09006000[] = { ++ALIGNED8 const u8 snow_09006000[] = { + #include "textures/snow/ccm_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture snow_09006800[] = { ++ALIGNED8 const u8 snow_09006800[] = { + #include "textures/snow/ccm_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture snow_09007000[] = { ++ALIGNED8 const u8 snow_09007000[] = { + #include "textures/snow/ccm_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture snow_09008000[] = { ++ALIGNED8 const u8 snow_09008000[] = { + #include "textures/snow/ccm_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture snow_09008800[] = { ++ALIGNED8 const u8 snow_09008800[] = { + #include "textures/snow/ccm_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture snow_09009000[] = { ++ALIGNED8 const u8 snow_09009000[] = { + #include "textures/snow/ccm_textures.09000.ia16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture snow_09009800[] = { ++ALIGNED8 const u8 snow_09009800[] = { + #include "textures/snow/ccm_textures.09800.ia16.inc.c" + }; diff --git a/bin/spooky.c b/bin/spooky.c index c8616703..391519ef 100644 --- a/bin/spooky.c +++ b/bin/spooky.c @@ -1,90 +1,89 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture spooky_09000000[] = { +ALIGNED8 const u8 spooky_09000000[] = { #include "textures/spooky/bbh_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture spooky_09000800[] = { +ALIGNED8 const u8 spooky_09000800[] = { #include "textures/spooky/bbh_textures.00800.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture spooky_09001800[] = { +ALIGNED8 const u8 spooky_09001800[] = { #include "textures/spooky/bbh_textures.01800.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture spooky_09002800[] = { +ALIGNED8 const u8 spooky_09002800[] = { #include "textures/spooky/bbh_textures.02800.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture spooky_09003800[] = { +ALIGNED8 const u8 spooky_09003800[] = { #include "textures/spooky/bbh_textures.03800.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture spooky_09004800[] = { +ALIGNED8 const u8 spooky_09004800[] = { #include "textures/spooky/bbh_textures.04800.rgba16.inc.c" }; // 0x09005000 -ALIGNED8 const Texture spooky_09005000[] = { +ALIGNED8 const u8 spooky_09005000[] = { #include "textures/spooky/bbh_textures.05000.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture spooky_09006000[] = { +ALIGNED8 const u8 spooky_09006000[] = { #include "textures/spooky/bbh_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture spooky_09006800[] = { +ALIGNED8 const u8 spooky_09006800[] = { #include "textures/spooky/bbh_textures.06800.rgba16.inc.c" }; // 0x09007000 -ALIGNED8 const Texture spooky_09007000[] = { +ALIGNED8 const u8 spooky_09007000[] = { #include "textures/spooky/bbh_textures.07000.rgba16.inc.c" }; // 0x09008000 -ALIGNED8 const Texture spooky_09008000[] = { +ALIGNED8 const u8 spooky_09008000[] = { #include "textures/spooky/bbh_textures.08000.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture spooky_09008800[] = { +ALIGNED8 const u8 spooky_09008800[] = { #include "textures/spooky/bbh_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture spooky_09009000[] = { +ALIGNED8 const u8 spooky_09009000[] = { #include "textures/spooky/bbh_textures.09000.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture spooky_0900A000[] = { +ALIGNED8 const u8 spooky_0900A000[] = { #include "textures/spooky/bbh_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture spooky_0900A800[] = { +ALIGNED8 const u8 spooky_0900A800[] = { #include "textures/spooky/bbh_textures.0A800.ia16.inc.c" }; // 0x0900B000 -ALIGNED8 const Texture spooky_0900B000[] = { +ALIGNED8 const u8 spooky_0900B000[] = { #include "textures/spooky/bbh_textures.0B000.ia16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture spooky_0900B800[] = { +ALIGNED8 const u8 spooky_0900B800[] = { #include "textures/spooky/bbh_textures.0B800.ia16.inc.c" }; diff --git a/bin/spooky.c.rej b/bin/spooky.c.rej new file mode 100644 index 00000000..3ae2ead9 --- /dev/null +++ b/bin/spooky.c.rej @@ -0,0 +1,110 @@ +diff a/bin/spooky.c b/bin/spooky.c (rejected hunks) +@@ -1,90 +1,89 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture spooky_09000000[] = { ++ALIGNED8 const u8 spooky_09000000[] = { + #include "textures/spooky/bbh_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture spooky_09000800[] = { ++ALIGNED8 const u8 spooky_09000800[] = { + #include "textures/spooky/bbh_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture spooky_09001800[] = { ++ALIGNED8 const u8 spooky_09001800[] = { + #include "textures/spooky/bbh_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture spooky_09002800[] = { ++ALIGNED8 const u8 spooky_09002800[] = { + #include "textures/spooky/bbh_textures.02800.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture spooky_09003800[] = { ++ALIGNED8 const u8 spooky_09003800[] = { + #include "textures/spooky/bbh_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture spooky_09004800[] = { ++ALIGNED8 const u8 spooky_09004800[] = { + #include "textures/spooky/bbh_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture spooky_09005000[] = { ++ALIGNED8 const u8 spooky_09005000[] = { + #include "textures/spooky/bbh_textures.05000.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture spooky_09006000[] = { ++ALIGNED8 const u8 spooky_09006000[] = { + #include "textures/spooky/bbh_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture spooky_09006800[] = { ++ALIGNED8 const u8 spooky_09006800[] = { + #include "textures/spooky/bbh_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture spooky_09007000[] = { ++ALIGNED8 const u8 spooky_09007000[] = { + #include "textures/spooky/bbh_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture spooky_09008000[] = { ++ALIGNED8 const u8 spooky_09008000[] = { + #include "textures/spooky/bbh_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture spooky_09008800[] = { ++ALIGNED8 const u8 spooky_09008800[] = { + #include "textures/spooky/bbh_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture spooky_09009000[] = { ++ALIGNED8 const u8 spooky_09009000[] = { + #include "textures/spooky/bbh_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture spooky_0900A000[] = { ++ALIGNED8 const u8 spooky_0900A000[] = { + #include "textures/spooky/bbh_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture spooky_0900A800[] = { ++ALIGNED8 const u8 spooky_0900A800[] = { + #include "textures/spooky/bbh_textures.0A800.ia16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture spooky_0900B000[] = { ++ALIGNED8 const u8 spooky_0900B000[] = { + #include "textures/spooky/bbh_textures.0B000.ia16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture spooky_0900B800[] = { ++ALIGNED8 const u8 spooky_0900B800[] = { + #include "textures/spooky/bbh_textures.0B800.ia16.inc.c" + }; + diff --git a/bin/title_screen_bg.c b/bin/title_screen_bg.c index d6deb092..e63233ab 100644 --- a/bin/title_screen_bg.c +++ b/bin/title_screen_bg.c @@ -72,94 +72,53 @@ const Gfx title_screen_bg_dl_0A000190[] = { }; // 0x0A0001C0 -ALIGNED8 static const Texture title_texture_0A0001C0[] = { +ALIGNED8 static const u8 title_texture_0A0001C0[] = { #include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c" }; // 0x0A000E40 -ALIGNED8 static const Texture title_texture_0A000E40[] = { +ALIGNED8 static const u8 title_texture_0A000E40[] = { #include "textures/title_screen_bg/title_screen_bg.00E40.rgba16.inc.c" }; // 0x0A001AC0 -ALIGNED8 static const Texture title_texture_0A001AC0[] = { +ALIGNED8 static const u8 title_texture_0A001AC0[] = { #include "textures/title_screen_bg/title_screen_bg.01AC0.rgba16.inc.c" }; // 0x0A002740 -ALIGNED8 static const Texture title_texture_0A002740[] = { +ALIGNED8 static const u8 title_texture_0A002740[] = { #include "textures/title_screen_bg/title_screen_bg.02740.rgba16.inc.c" }; // 0x0A0033C0 -ALIGNED8 static const Texture title_texture_0A0033C0[] = { +ALIGNED8 static const u8 title_texture_0A0033C0[] = { #include "textures/title_screen_bg/title_screen_bg.033C0.rgba16.inc.c" }; // 0x0A004040 -ALIGNED8 static const Texture title_texture_0A004040[] = { +ALIGNED8 static const u8 title_texture_0A004040[] = { #include "textures/title_screen_bg/title_screen_bg.04040.rgba16.inc.c" }; // 0x0A004CC0 -ALIGNED8 static const Texture title_texture_0A004CC0[] = { +ALIGNED8 static const u8 title_texture_0A004CC0[] = { #include "textures/title_screen_bg/title_screen_bg.04CC0.rgba16.inc.c" }; // 0x0A005940 -ALIGNED8 static const Texture title_texture_0A005940[] = { +ALIGNED8 static const u8 title_texture_0A005940[] = { #include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c" }; // 0x0A0065C0 -const Texture *const mario_title_texture_table[] = { +const u8 *const mario_title_texture_table[] = { title_texture_0A0001C0, title_texture_0A000E40, title_texture_0A001AC0, title_texture_0A002740, }; // 0x0A0065D0 -const Texture *const game_over_texture_table[] = { +const u8 *const game_over_texture_table[] = { title_texture_0A0033C0, title_texture_0A004040, title_texture_0A004CC0, title_texture_0A005940, }; UNUSED static const u64 title_screen_bg_unused_0 = 0; - -#ifdef VERSION_SH -const Gfx title_screen_bg_dl_0A0065E8[] = { - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_COPY), - gsDPSetTexturePersp(G_TP_NONE), - gsDPSetTextureFilter(G_TF_POINT), - gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), - gsSPEndDisplayList(), -}; - -const Gfx title_screen_bg_dl_0A006618[] = { - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPEndDisplayList(), -}; - -ALIGNED8 static const u8 title_texture_rumble_pak[] = { -#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c" -}; - -const Gfx title_screen_bg_dl_0A007548[] = { - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_COPY), - gsDPSetTexturePersp(G_TP_NONE), - gsDPSetTextureFilter(G_TF_POINT), - gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), - gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239), - gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPEndDisplayList(), -}; -#endif diff --git a/bin/title_screen_bg.c.rej b/bin/title_screen_bg.c.rej new file mode 100644 index 00000000..6d85a318 --- /dev/null +++ b/bin/title_screen_bg.c.rej @@ -0,0 +1,106 @@ +diff a/bin/title_screen_bg.c b/bin/title_screen_bg.c (rejected hunks) +@@ -72,94 +72,53 @@ const Gfx title_screen_bg_dl_0A000190[] = { + }; + + // 0x0A0001C0 +-ALIGNED8 static const Texture title_texture_0A0001C0[] = { ++ALIGNED8 static const u8 title_texture_0A0001C0[] = { + #include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c" + }; + + // 0x0A000E40 +-ALIGNED8 static const Texture title_texture_0A000E40[] = { ++ALIGNED8 static const u8 title_texture_0A000E40[] = { + #include "textures/title_screen_bg/title_screen_bg.00E40.rgba16.inc.c" + }; + + // 0x0A001AC0 +-ALIGNED8 static const Texture title_texture_0A001AC0[] = { ++ALIGNED8 static const u8 title_texture_0A001AC0[] = { + #include "textures/title_screen_bg/title_screen_bg.01AC0.rgba16.inc.c" + }; + + // 0x0A002740 +-ALIGNED8 static const Texture title_texture_0A002740[] = { ++ALIGNED8 static const u8 title_texture_0A002740[] = { + #include "textures/title_screen_bg/title_screen_bg.02740.rgba16.inc.c" + }; + + // 0x0A0033C0 +-ALIGNED8 static const Texture title_texture_0A0033C0[] = { ++ALIGNED8 static const u8 title_texture_0A0033C0[] = { + #include "textures/title_screen_bg/title_screen_bg.033C0.rgba16.inc.c" + }; + + // 0x0A004040 +-ALIGNED8 static const Texture title_texture_0A004040[] = { ++ALIGNED8 static const u8 title_texture_0A004040[] = { + #include "textures/title_screen_bg/title_screen_bg.04040.rgba16.inc.c" + }; + + // 0x0A004CC0 +-ALIGNED8 static const Texture title_texture_0A004CC0[] = { ++ALIGNED8 static const u8 title_texture_0A004CC0[] = { + #include "textures/title_screen_bg/title_screen_bg.04CC0.rgba16.inc.c" + }; + + // 0x0A005940 +-ALIGNED8 static const Texture title_texture_0A005940[] = { ++ALIGNED8 static const u8 title_texture_0A005940[] = { + #include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c" + }; + + // 0x0A0065C0 +-const Texture *const mario_title_texture_table[] = { ++const u8 *const mario_title_texture_table[] = { + title_texture_0A0001C0, title_texture_0A000E40, title_texture_0A001AC0, title_texture_0A002740, + }; + + // 0x0A0065D0 +-const Texture *const game_over_texture_table[] = { ++const u8 *const game_over_texture_table[] = { + title_texture_0A0033C0, title_texture_0A004040, title_texture_0A004CC0, title_texture_0A005940, + }; + + UNUSED static const u64 title_screen_bg_unused_0 = 0; +- +-#ifdef VERSION_SH +-const Gfx title_screen_bg_dl_0A0065E8[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_COPY), +- gsDPSetTexturePersp(G_TP_NONE), +- gsDPSetTextureFilter(G_TF_POINT), +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +- gsSPEndDisplayList(), +-}; +- +-const Gfx title_screen_bg_dl_0A006618[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_1CYCLE), +- gsDPSetTexturePersp(G_TP_PERSP), +- gsDPSetTextureFilter(G_TF_BILERP), +- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), +- gsSPEndDisplayList(), +-}; +- +-ALIGNED8 static const u8 title_texture_rumble_pak[] = { +-#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c" +-}; +- +-const Gfx title_screen_bg_dl_0A007548[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_COPY), +- gsDPSetTexturePersp(G_TP_NONE), +- gsDPSetTextureFilter(G_TF_POINT), +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +- gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239), +- gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10), +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_1CYCLE), +- gsDPSetTexturePersp(G_TP_PERSP), +- gsDPSetTextureFilter(G_TF_BILERP), +- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), +- gsSPEndDisplayList(), +-}; +-#endif diff --git a/bin/water.c b/bin/water.c index ce612c98..a9588917 100644 --- a/bin/water.c +++ b/bin/water.c @@ -1,79 +1,78 @@ -#include "macros.h" -#include "types.h" +#include "sm64.h" #include "make_const_nonconst.h" // 0x09000000 -ALIGNED8 const Texture water_09000000[] = { +ALIGNED8 const u8 water_09000000[] = { #include "textures/water/jrb_textures.00000.rgba16.inc.c" }; // 0x09000800 -ALIGNED8 const Texture water_09000800[] = { +ALIGNED8 const u8 water_09000800[] = { #include "textures/water/jrb_textures.00800.rgba16.inc.c" }; // 0x09001800 -ALIGNED8 const Texture water_09001800[] = { +ALIGNED8 const u8 water_09001800[] = { #include "textures/water/jrb_textures.01800.rgba16.inc.c" }; // 0x09002800 -ALIGNED8 const Texture water_09002800[] = { +ALIGNED8 const u8 water_09002800[] = { #include "textures/water/jrb_textures.02800.rgba16.inc.c" }; // 0x09003800 -ALIGNED8 const Texture water_09003800[] = { +ALIGNED8 const u8 water_09003800[] = { #include "textures/water/jrb_textures.03800.rgba16.inc.c" }; // 0x09004800 -ALIGNED8 const Texture water_09004800[] = { +ALIGNED8 const u8 water_09004800[] = { #include "textures/water/jrb_textures.04800.rgba16.inc.c" }; // 0x09005800 -ALIGNED8 const Texture water_09005800[] = { +ALIGNED8 const u8 water_09005800[] = { #include "textures/water/jrb_textures.05800.rgba16.inc.c" }; // 0x09006000 -ALIGNED8 const Texture water_09006000[] = { +ALIGNED8 const u8 water_09006000[] = { #include "textures/water/jrb_textures.06000.rgba16.inc.c" }; // 0x09006800 -ALIGNED8 const Texture water_09006800[] = { +ALIGNED8 const u8 water_09006800[] = { #include "textures/water/jrb_textures.06800.rgba16.inc.c" }; // 0x09007800 -ALIGNED8 const Texture water_09007800[] = { +ALIGNED8 const u8 water_09007800[] = { #include "textures/water/jrb_textures.07800.rgba16.inc.c" }; // 0x09008800 -ALIGNED8 const Texture water_09008800[] = { +ALIGNED8 const u8 water_09008800[] = { #include "textures/water/jrb_textures.08800.rgba16.inc.c" }; // 0x09009000 -ALIGNED8 const Texture water_09009000[] = { +ALIGNED8 const u8 water_09009000[] = { #include "textures/water/jrb_textures.09000.rgba16.inc.c" }; // 0x0900A000 -ALIGNED8 const Texture water_0900A000[] = { +ALIGNED8 const u8 water_0900A000[] = { #include "textures/water/jrb_textures.0A000.rgba16.inc.c" }; // 0x0900A800 -ALIGNED8 const Texture water_0900A800[] = { +ALIGNED8 const u8 water_0900A800[] = { #include "textures/water/jrb_textures.0A800.rgba16.inc.c" }; // 0x0900B800 -ALIGNED8 const Texture water_0900B800[] = { +ALIGNED8 const u8 water_0900B800[] = { #include "textures/water/jrb_textures.0B800.rgba16.inc.c" }; diff --git a/bin/water.c.rej b/bin/water.c.rej new file mode 100644 index 00000000..fe43e87f --- /dev/null +++ b/bin/water.c.rej @@ -0,0 +1,97 @@ +diff a/bin/water.c b/bin/water.c (rejected hunks) +@@ -1,79 +1,78 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture water_09000000[] = { ++ALIGNED8 const u8 water_09000000[] = { + #include "textures/water/jrb_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture water_09000800[] = { ++ALIGNED8 const u8 water_09000800[] = { + #include "textures/water/jrb_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture water_09001800[] = { ++ALIGNED8 const u8 water_09001800[] = { + #include "textures/water/jrb_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture water_09002800[] = { ++ALIGNED8 const u8 water_09002800[] = { + #include "textures/water/jrb_textures.02800.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture water_09003800[] = { ++ALIGNED8 const u8 water_09003800[] = { + #include "textures/water/jrb_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture water_09004800[] = { ++ALIGNED8 const u8 water_09004800[] = { + #include "textures/water/jrb_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture water_09005800[] = { ++ALIGNED8 const u8 water_09005800[] = { + #include "textures/water/jrb_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture water_09006000[] = { ++ALIGNED8 const u8 water_09006000[] = { + #include "textures/water/jrb_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture water_09006800[] = { ++ALIGNED8 const u8 water_09006800[] = { + #include "textures/water/jrb_textures.06800.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture water_09007800[] = { ++ALIGNED8 const u8 water_09007800[] = { + #include "textures/water/jrb_textures.07800.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture water_09008800[] = { ++ALIGNED8 const u8 water_09008800[] = { + #include "textures/water/jrb_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture water_09009000[] = { ++ALIGNED8 const u8 water_09009000[] = { + #include "textures/water/jrb_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture water_0900A000[] = { ++ALIGNED8 const u8 water_0900A000[] = { + #include "textures/water/jrb_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture water_0900A800[] = { ++ALIGNED8 const u8 water_0900A800[] = { + #include "textures/water/jrb_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture water_0900B800[] = { ++ALIGNED8 const u8 water_0900B800[] = { + #include "textures/water/jrb_textures.0B800.rgba16.inc.c" + }; diff --git a/data/behavior_data.c b/data/behavior_data.c index 9d11492b..507f563a 100644 --- a/data/behavior_data.c +++ b/data/behavior_data.c @@ -1748,7 +1748,7 @@ const BehaviorScript bhvBreakableBox[] = { CALL_NATIVE(bhv_init_room), BEGIN_LOOP(), CALL_NATIVE(bhv_breakable_box_loop), - CALL_NATIVE(load_object_collision_model), + END_LOOP(), BREAK(), }; @@ -3229,6 +3229,41 @@ const BehaviorScript bhvSparkleParticleSpawner[] = { DEACTIVATE(), }; +const BehaviorScript bhvSonicTrailParticleSpawner[] = { + BEGIN(OBJ_LIST_DEFAULT), + PARENT_BIT_CLEAR(oActiveParticleFlags, ACTIVE_PARTICLE_SONIC_TRAIL), + BEGIN(OBJ_LIST_UNIMPORTANT), + BILLBOARD(), + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + SET_FLOAT(oGraphYOffset, 39), + SET_RANDOM_FLOAT(oMarioParticleFlags, /*Minimum*/ -0, /*Range*/ 0), + SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oMarioParticleFlags), + SET_INT(oAnimState, -1), + BEGIN_REPEAT(6), + ADD_INT(oAnimState, 1), + END_REPEAT(), + DEACTIVATE(), +}; + + +const BehaviorScript bhvSonicTrailParticleSpawnerRolling[] = { + BEGIN(OBJ_LIST_DEFAULT), + PARENT_BIT_CLEAR(oActiveParticleFlags, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING), + BEGIN(OBJ_LIST_UNIMPORTANT), + BILLBOARD(), + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + SET_FLOAT(oGraphYOffset, 50), + SET_RANDOM_FLOAT(oMarioParticleFlags, /*Minimum*/ -0, /*Range*/ 0), + SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oMarioParticleFlags), + SET_INT(oAnimState, -1), + BEGIN_REPEAT(6), + ADD_INT(oAnimState, 1), + END_REPEAT(), + DEACTIVATE(), +}; + + + const BehaviorScript bhvScuttlebug[] = { BEGIN(OBJ_LIST_GENACTOR), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), @@ -6105,5 +6140,37 @@ const BehaviorScript bhvIntroScene[] = { CALL_NATIVE(bhv_intro_scene_loop), END_LOOP(), }; +//sonic reticle +const BehaviorScript bhvReticle[] = { + BEGIN(OBJ_LIST_LEVEL), + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + BILLBOARD(), + SET_HOME(), + CALL_NATIVE(bhv_reticle_init), + BEGIN_LOOP(), + CALL_NATIVE(bhv_reticle_update), + END_LOOP(), +}; +//sonic emerald when super +const BehaviorScript bhvEmeraldCircle[] = { + BEGIN(OBJ_LIST_LEVEL), + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + SET_HOME(), + CALL_NATIVE(bhv_emerald_circle_init), + BEGIN_LOOP(), + CALL_NATIVE(bhv_emerald_circle_loop), + END_LOOP(), +}; +/* +const BehaviorScript bhvOrangeNumber[] = { + BEGIN(OBJ_LIST_LEVEL), + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + BILLBOARD(), + SET_HOME(), + CALL_NATIVE(bhv_orange_number_init), + BEGIN_LOOP(), + CALL_NATIVE(bhv_orange_number_loop), + END_LOOP(), +};*/ \ No newline at end of file diff --git a/data/behavior_data.c.rej b/data/behavior_data.c.rej new file mode 100644 index 00000000..ca198629 --- /dev/null +++ b/data/behavior_data.c.rej @@ -0,0 +1,48 @@ +diff a/data/behavior_data.c b/data/behavior_data.c (rejected hunks) +@@ -1748,7 +1748,7 @@ const BehaviorScript bhvBreakableBox[] = { + CALL_NATIVE(bhv_init_room), + BEGIN_LOOP(), + CALL_NATIVE(bhv_breakable_box_loop), +- CALL_NATIVE(load_object_collision_model), ++ + END_LOOP(), + BREAK(), + }; +@@ -6106,4 +6139,36 @@ const BehaviorScript bhvIntroScene[] = { + END_LOOP(), + }; + ++const BehaviorScript bhvReticle[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ BILLBOARD(), ++ SET_HOME(), ++ CALL_NATIVE(bhv_reticle_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_reticle_update), ++ END_LOOP(), ++}; + ++const BehaviorScript bhvEmeraldCircle[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ SET_HOME(), ++ CALL_NATIVE(bhv_emerald_circle_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_emerald_circle_loop), ++ END_LOOP(), ++}; ++ ++ ++/* ++const BehaviorScript bhvOrangeNumber[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ BILLBOARD(), ++ SET_HOME(), ++ CALL_NATIVE(bhv_orange_number_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_orange_number_loop), ++ END_LOOP(), ++};*/ +\ No newline at end of file diff --git a/include/behavior_data.h b/include/behavior_data.h index 7acb3309..0fbeef13 100644 --- a/include/behavior_data.h +++ b/include/behavior_data.h @@ -279,6 +279,9 @@ extern const BehaviorScript bhvTree[]; extern const BehaviorScript bhvSparkle[]; extern const BehaviorScript bhvSparkleSpawn[]; extern const BehaviorScript bhvSparkleParticleSpawner[]; +//sonic +extern const BehaviorScript bhvSonicTrailParticleSpawner[]; +extern const BehaviorScript bhvSonicTrailParticleSpawnerRolling[]; extern const BehaviorScript bhvSomeGfx[]; extern const BehaviorScript bhvScuttlebug[]; extern const BehaviorScript bhvScuttlebugSpawn[]; @@ -543,4 +546,8 @@ extern const BehaviorScript bhvEndBirds2[]; extern const BehaviorScript bhvIntroScene[]; extern const BehaviorScript bhvUnusedFakeStar[]; +//sonic +extern const BehaviorScript bhvReticle[]; +extern const BehaviorScript bhvEmeraldCircle[]; + #endif // BEHAVIOR_DATA_H diff --git a/include/behavior_data.h.rej b/include/behavior_data.h.rej new file mode 100644 index 00000000..a81ee9d5 --- /dev/null +++ b/include/behavior_data.h.rej @@ -0,0 +1,18 @@ +diff a/include/behavior_data.h b/include/behavior_data.h (rejected hunks) +@@ -279,6 +279,8 @@ extern const BehaviorScript bhvTree[]; + extern const BehaviorScript bhvSparkle[]; + extern const BehaviorScript bhvSparkleSpawn[]; + extern const BehaviorScript bhvSparkleParticleSpawner[]; ++extern const BehaviorScript bhvSonicTrailParticleSpawner[]; ++extern const BehaviorScript bhvSonicTrailParticleSpawnerRolling[]; + extern const BehaviorScript bhvSomeGfx[]; + extern const BehaviorScript bhvScuttlebug[]; + extern const BehaviorScript bhvScuttlebugSpawn[]; +@@ -542,5 +544,7 @@ extern const BehaviorScript bhvEndBirds1[]; + extern const BehaviorScript bhvEndBirds2[]; + extern const BehaviorScript bhvIntroScene[]; + extern const BehaviorScript bhvUnusedFakeStar[]; ++extern const BehaviorScript bhvReticle[]; ++extern const BehaviorScript bhvEmeraldCircle[]; + + #endif // BEHAVIOR_DATA_H diff --git a/include/config.h b/include/config.h index 211a086a..d1eb7212 100644 --- a/include/config.h +++ b/include/config.h @@ -30,9 +30,9 @@ // Border Height Define for NTSC Versions #ifdef TARGET_N64 #ifndef VERSION_EU -#define BORDER_HEIGHT 8 +#define BORDER_HEIGHT 0 #else -#define BORDER_HEIGHT 1 +#define BORDER_HEIGHT 0 #endif #else // What's the point of having a border? diff --git a/include/config.h.rej b/include/config.h.rej new file mode 100644 index 00000000..5740aaaf --- /dev/null +++ b/include/config.h.rej @@ -0,0 +1,13 @@ +diff a/include/config.h b/include/config.h (rejected hunks) +@@ -30,9 +30,9 @@ + // Border Height Define for NTSC Versions + #ifdef TARGET_N64 + #ifndef VERSION_EU +-#define BORDER_HEIGHT 8 ++#define BORDER_HEIGHT 0 + #else +-#define BORDER_HEIGHT 1 ++#define BORDER_HEIGHT 0 + #endif + #else + // What's the point of having a border? diff --git a/include/mario_animation_ids.h b/include/mario_animation_ids.h index 1d22d3d1..a8b6b0d4 100644 --- a/include/mario_animation_ids.h +++ b/include/mario_animation_ids.h @@ -61,7 +61,7 @@ enum MarioAnimID /* 0x35 */ MARIO_ANIM_HANG_ON_CEILING, /* 0x36 */ MARIO_ANIM_PUT_CAP_ON, /* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, - /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused + /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused SHADOW SKATE /* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND, /* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING, /* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, diff --git a/include/mario_animation_ids.h.rej b/include/mario_animation_ids.h.rej new file mode 100644 index 00000000..5e45fbd6 --- /dev/null +++ b/include/mario_animation_ids.h.rej @@ -0,0 +1,10 @@ +diff a/include/mario_animation_ids.h b/include/mario_animation_ids.h (rejected hunks) +@@ -61,7 +61,7 @@ enum MarioAnimID + /* 0x35 */ MARIO_ANIM_HANG_ON_CEILING, + /* 0x36 */ MARIO_ANIM_PUT_CAP_ON, + /* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, +- /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused ++ /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused SHADOW SKATE + /* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND, + /* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING, + /* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, diff --git a/include/model_ids.h b/include/model_ids.h index 1cd0a253..8d84c4df 100644 --- a/include/model_ids.h +++ b/include/model_ids.h @@ -23,8 +23,20 @@ /* Global models that are loaded for every level */ -#define MODEL_MARIO 0x01 // mario_geo -#define MODEL_LUIGI 0x02 // unused +#define MODEL_MARIO 0x01 // mario_geo +#define MODEL_LUIGI 0x02 // unused +#define MODEL_WATER_BOMB 0xE2 // water_bomb_geo +#define MODEL_WATER_BOMB_SHADOW 0xE3 // water_bomb_shadow_geo +#define MODEL_SONIC_BALL 0xE4 // sonic_ball_geo +#define MODEL_SONIC_TRAIL 0xE5 // sonic_trail_geo +#define MODEL_SUPER_SONIC 0xE6 // sonic_trail_geo +#define MODEL_SUPER_BALL 0xE7 // sonic_trail_geo +#define MODEL_SUPER_TRAIL 0xE8 // sonic_trail_geo +#define MODEL_RETICLE 0xE9 // sonic_trail_geo +#define MODEL_EMERALD 0xF0 // sonic_trail_geo +#define MODEL_EMERALD_CIRCLE 0xF1 // sonic_trail_geo + + /* Various static level geometry, the geo layout differs but terrain object presets treat them the same.*/ @@ -347,8 +359,7 @@ #define MODEL_BULLY_BOSS 0x57 // bully_boss_geo // group 3 -#define MODEL_WATER_BOMB 0x54 // water_bomb_geo -#define MODEL_WATER_BOMB_SHADOW 0x55 // water_bomb_shadow_geo + #define MODEL_KING_BOBOMB 0x56 // king_bobomb_geo // group 4 @@ -492,7 +503,7 @@ // find me // find me // find me -#define MODEL_BURN_SMOKE_UNUSED 0x9C // burn_smoke_geo - unused & duplicated + // find me #define MODEL_WHITE_PARTICLE_DL 0x9E // white_particle_dl #define MODEL_SAND_DUST 0x9F // sand_seg3_dl_0302BCD0 diff --git a/include/model_ids.h.rej b/include/model_ids.h.rej new file mode 100644 index 00000000..f9d35e06 --- /dev/null +++ b/include/model_ids.h.rej @@ -0,0 +1,43 @@ +diff a/include/model_ids.h b/include/model_ids.h (rejected hunks) +@@ -23,8 +23,20 @@ + + /* Global models that are loaded for every level */ + +-#define MODEL_MARIO 0x01 // mario_geo +-#define MODEL_LUIGI 0x02 // unused ++#define MODEL_MARIO 0x01 // mario_geo ++#define MODEL_LUIGI 0x02 // unused ++#define MODEL_WATER_BOMB 0xE2 // water_bomb_geo ++#define MODEL_WATER_BOMB_SHADOW 0xE3 // water_bomb_shadow_geo ++#define MODEL_SONIC_BALL 0xE4 // sonic_ball_geo ++#define MODEL_SONIC_TRAIL 0xE5 // sonic_trail_geo ++#define MODEL_SUPER_SONIC 0xE6 // sonic_trail_geo ++#define MODEL_SUPER_BALL 0xE7 // sonic_trail_geo ++#define MODEL_SUPER_TRAIL 0xE8 // sonic_trail_geo ++#define MODEL_RETICLE 0xE9 // sonic_trail_geo ++#define MODEL_EMERALD 0xF0 // sonic_trail_geo ++#define MODEL_EMERALD_CIRCLE 0xF1 // sonic_trail_geo ++ ++ + + /* Various static level geometry, the geo layout differs but terrain object presets treat them the same.*/ + +@@ -347,8 +359,7 @@ + #define MODEL_BULLY_BOSS 0x57 // bully_boss_geo + + // group 3 +-#define MODEL_WATER_BOMB 0x54 // water_bomb_geo +-#define MODEL_WATER_BOMB_SHADOW 0x55 // water_bomb_shadow_geo ++ + #define MODEL_KING_BOBOMB 0x56 // king_bobomb_geo + + // group 4 +@@ -492,7 +503,7 @@ + // find me + // find me + // find me +-#define MODEL_BURN_SMOKE_UNUSED 0x9C // burn_smoke_geo - unused & duplicated ++ + // find me + #define MODEL_WHITE_PARTICLE_DL 0x9E // white_particle_dl + #define MODEL_SAND_DUST 0x9F // sand_seg3_dl_0302BCD0 diff --git a/include/object_constants.h b/include/object_constants.h index 95f5ce53..b45df556 100644 --- a/include/object_constants.h +++ b/include/object_constants.h @@ -118,6 +118,10 @@ #define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000 #define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000 #define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000 +#define ACTIVE_PARTICLE_SONIC_TRAIL (1 << 20) // 0x00120000 +#define ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING (1 << 21) // 0x00120000 +#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) +#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) /* oAction */ #define OBJ_ACT_LAVA_DEATH 100 @@ -680,7 +684,7 @@ #define UKIKI_ANIM_STATE_EYE_CLOSED 1 #define UKIKI_ANIM_STATE_CAP_ON 2 - /* oUkikiHasCap */ + /* oUkikiHasHat */ #define UKIKI_CAP_ON 1 /* Ukiki Cage Star */ diff --git a/include/object_constants.h.rej b/include/object_constants.h.rej new file mode 100644 index 00000000..7d57ab67 --- /dev/null +++ b/include/object_constants.h.rej @@ -0,0 +1,21 @@ +diff a/include/object_constants.h b/include/object_constants.h (rejected hunks) +@@ -118,6 +118,10 @@ + #define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000 + #define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000 + #define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000 ++#define ACTIVE_PARTICLE_SONIC_TRAIL (1 << 20) // 0x00120000 ++#define ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING (1 << 21) // 0x00120000 ++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) ++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) + + /* oAction */ + #define OBJ_ACT_LAVA_DEATH 100 +@@ -680,7 +684,7 @@ + #define UKIKI_ANIM_STATE_EYE_CLOSED 1 + #define UKIKI_ANIM_STATE_CAP_ON 2 + +- /* oUkikiHasCap */ ++ /* oUkikiHasHat */ + #define UKIKI_CAP_ON 1 + + /* Ukiki Cage Star */ diff --git a/include/object_fields.h b/include/object_fields.h index 89939cc2..126240ad 100644 --- a/include/object_fields.h +++ b/include/object_fields.h @@ -164,6 +164,9 @@ #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22) #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22) #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22) +//sonic +#define /*0x110*/ oSuperTimer OBJECT_FIELD_S32(0x1E) + /* 1-Up Hidden */ #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B) @@ -1157,4 +1160,5 @@ #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D) #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E) + #endif // OBJECT_FIELDS_H diff --git a/include/object_fields.h.rej b/include/object_fields.h.rej new file mode 100644 index 00000000..bec6cea2 --- /dev/null +++ b/include/object_fields.h.rej @@ -0,0 +1,16 @@ +diff a/include/object_fields.h b/include/object_fields.h (rejected hunks) +@@ -164,6 +164,8 @@ + #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22) + #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22) + #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22) ++#define /*0x110*/ oSuperTimer OBJECT_FIELD_S32(0x1E) ++ + + /* 1-Up Hidden */ + #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B) +@@ -1157,4 +1159,5 @@ + #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D) + #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E) + ++ + #endif // OBJECT_FIELDS_H diff --git a/include/segments.h b/include/segments.h index a8c1bf97..0faa6dc5 100644 --- a/include/segments.h +++ b/include/segments.h @@ -11,6 +11,7 @@ * linker script syntax. */ +#define USE_EXT_RAM #ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */ #define SEG_POOL_START 0x8005C000 diff --git a/include/segments.h.rej b/include/segments.h.rej new file mode 100644 index 00000000..c67ab7e5 --- /dev/null +++ b/include/segments.h.rej @@ -0,0 +1,9 @@ +diff a/include/segments.h b/include/segments.h (rejected hunks) +@@ -11,6 +11,7 @@ + * linker script syntax. + */ + ++#define USE_EXT_RAM + #ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */ + + #define SEG_POOL_START 0x8005C000 diff --git a/include/seq_ids.h b/include/seq_ids.h index 0aec73d1..f53b31e7 100644 --- a/include/seq_ids.h +++ b/include/seq_ids.h @@ -42,6 +42,9 @@ enum SeqId { SEQ_EVENT_CUTSCENE_ENDING, // 0x20 SEQ_MENU_FILE_SELECT, // 0x21 SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP) + SEQ_DROWN, // 0x23 +SEQ_SUPER, +SEQ_EMERALD, SEQ_COUNT }; diff --git a/include/seq_ids.h.rej b/include/seq_ids.h.rej new file mode 100644 index 00000000..92660de4 --- /dev/null +++ b/include/seq_ids.h.rej @@ -0,0 +1,11 @@ +diff a/include/seq_ids.h b/include/seq_ids.h (rejected hunks) +@@ -42,6 +42,9 @@ enum SeqId { + SEQ_EVENT_CUTSCENE_ENDING, // 0x20 + SEQ_MENU_FILE_SELECT, // 0x21 + SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP) ++ SEQ_DROWN, // 0x23 ++SEQ_SUPER, ++SEQ_EMERALD, + SEQ_COUNT + }; + diff --git a/include/sm64.h b/include/sm64.h index 34bfec22..29244556 100644 --- a/include/sm64.h +++ b/include/sm64.h @@ -59,6 +59,7 @@ #define INPUT_A_DOWN 0x0080 #define INPUT_IN_POISON_GAS 0x0100 #define INPUT_IN_WATER 0x0200 +//stomped #define INPUT_UNKNOWN_10 0x0400 #define INPUT_INTERACT_OBJ_GRABBABLE 0x0800 #define INPUT_UNKNOWN_12 0x1000 @@ -108,6 +109,10 @@ #define PARTICLE_BREATH /* 0x00020000 */ (1 << 17) #define PARTICLE_TRIANGLE /* 0x00040000 */ (1 << 18) #define PARTICLE_19 /* 0x00080000 */ (1 << 19) +#define PARTICLE_SONIC_TRAIL /* 0x00120000 */ (1 << 20) +#define PARTICLE_SONIC_TRAIL_ROLLING /* 0x00160000 */ (1 << 21) +#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) +#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) #define MODEL_STATE_NOISE_ALPHA 0x180 #define MODEL_STATE_METAL 0x200 @@ -121,6 +126,8 @@ #define MARIO_METAL_SHOCK 0x00000040 #define MARIO_TELEPORTING 0x00000080 #define MARIO_UNKNOWN_08 0x00000100 +#define MARIO_IS_SUPER 0x00000200 +#define MARIO_IS_SHADOW 0x00000400 #define MARIO_UNKNOWN_13 0x00002000 #define MARIO_ACTION_SOUND_PLAYED 0x00010000 #define MARIO_MARIO_SOUND_PLAYED 0x00020000 @@ -132,8 +139,7 @@ #define MARIO_UNKNOWN_30 0x40000000 #define MARIO_UNKNOWN_31 0x80000000 -#define MARIO_SPECIAL_CAPS (MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP) -#define MARIO_CAPS (MARIO_NORMAL_CAP | MARIO_SPECIAL_CAPS) +#define MARIO_CAP_FLAGS 0x0000001F #define ACT_ID_MASK 0x000001FF @@ -184,7 +190,6 @@ #define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_IN_QUICKSAND 0x0002020D // (0x00D | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) -#define ACT_UNKNOWN_0002020E 0x0002020E // (0x00E | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) #define ACT_CROUCHING 0x0C008220 // (0x020 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_START_CROUCHING 0x0C008221 // (0x021 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_STOP_CROUCHING 0x0C008222 // (0x022 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) @@ -298,6 +303,8 @@ #define ACT_GETTING_BLOWN 0x010208B8 // (0x0B8 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) #define ACT_THROWN_FORWARD 0x010208BD // (0x0BD | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) #define ACT_THROWN_BACKWARD 0x010208BE // (0x0BE | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) +//sonic +#define ACT_TRANSFORM 0x010208BF // group 0x0C0: submerged actions #define ACT_WATER_IDLE 0x380022C0 // (0x0C0 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT) @@ -416,6 +423,9 @@ #define ACT_PICKING_UP_BOWSER 0x00000390 // (0x190 | ACT_FLAG_STATIONARY) #define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY) #define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY) +//sonic +#define ACT_SPINDASH 0x00000393 + /* this input mask is unused by the controller, diff --git a/include/sm64.h.rej b/include/sm64.h.rej new file mode 100644 index 00000000..6bf029d5 --- /dev/null +++ b/include/sm64.h.rej @@ -0,0 +1,56 @@ +diff a/include/sm64.h b/include/sm64.h (rejected hunks) +@@ -108,6 +108,10 @@ + #define PARTICLE_BREATH /* 0x00020000 */ (1 << 17) + #define PARTICLE_TRIANGLE /* 0x00040000 */ (1 << 18) + #define PARTICLE_19 /* 0x00080000 */ (1 << 19) ++#define PARTICLE_SONIC_TRAIL /* 0x00120000 */ (1 << 20) ++#define PARTICLE_SONIC_TRAIL_ROLLING /* 0x00160000 */ (1 << 21) ++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) ++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) + + #define MODEL_STATE_NOISE_ALPHA 0x180 + #define MODEL_STATE_METAL 0x200 +@@ -121,6 +125,8 @@ + #define MARIO_METAL_SHOCK 0x00000040 + #define MARIO_TELEPORTING 0x00000080 + #define MARIO_UNKNOWN_08 0x00000100 ++#define MARIO_IS_SUPER 0x00000200 ++#define MARIO_IS_SHADOW 0x00000400 + #define MARIO_UNKNOWN_13 0x00002000 + #define MARIO_ACTION_SOUND_PLAYED 0x00010000 + #define MARIO_MARIO_SOUND_PLAYED 0x00020000 +@@ -132,8 +138,7 @@ + #define MARIO_UNKNOWN_30 0x40000000 + #define MARIO_UNKNOWN_31 0x80000000 + +-#define MARIO_SPECIAL_CAPS (MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP) +-#define MARIO_CAPS (MARIO_NORMAL_CAP | MARIO_SPECIAL_CAPS) ++#define MARIO_CAP_FLAGS 0x0000001F + + #define ACT_ID_MASK 0x000001FF + +@@ -184,7 +189,6 @@ + #define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_IN_QUICKSAND 0x0002020D // (0x00D | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) +-#define ACT_UNKNOWN_0002020E 0x0002020E // (0x00E | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) + #define ACT_CROUCHING 0x0C008220 // (0x020 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_START_CROUCHING 0x0C008221 // (0x021 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_STOP_CROUCHING 0x0C008222 // (0x022 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) +@@ -298,6 +302,7 @@ + #define ACT_GETTING_BLOWN 0x010208B8 // (0x0B8 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) + #define ACT_THROWN_FORWARD 0x010208BD // (0x0BD | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) + #define ACT_THROWN_BACKWARD 0x010208BE // (0x0BE | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) ++#define ACT_TRANSFORM 0x010208BF + + // group 0x0C0: submerged actions + #define ACT_WATER_IDLE 0x380022C0 // (0x0C0 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT) +@@ -416,6 +421,8 @@ + #define ACT_PICKING_UP_BOWSER 0x00000390 // (0x190 | ACT_FLAG_STATIONARY) + #define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY) + #define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY) ++#define ACT_SPINDASH 0x00000393 ++ + + /* + this input mask is unused by the controller, diff --git a/include/sounds.h b/include/sounds.h index a734a103..63c6007c 100644 --- a/include/sounds.h +++ b/include/sounds.h @@ -216,7 +216,7 @@ #define SOUND_MARIO_PUNCH_YAH /* 0x241E8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) #define SOUND_MARIO_PUNCH_HOO /* 0x241F8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) #define SOUND_MARIO_MAMA_MIA /* 0x24208080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x20, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) -#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, 0) // unused +#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) #define SOUND_MARIO_GROUND_POUND_WAH /* 0x24228080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x22, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) #define SOUND_MARIO_DROWNING /* 0x2423F080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x23, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) #define SOUND_MARIO_PUNCH_WAH /* 0x24248080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x24, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) @@ -264,6 +264,7 @@ #define SOUND_GENERAL_WALL_EXPLOSION /* 0x300F0080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0F, 0x00, SOUND_DISCRETE) #define SOUND_GENERAL_COIN /* 0x38118080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x11, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified #define SOUND_GENERAL_COIN_WATER /* 0x38128080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x12, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified +#define SOUND_GENERAL_RINGLOSS SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x15, 0x15, SOUND_DISCRETE) //sonic ring #define SOUND_GENERAL_SHORT_STAR /* 0x30160090 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x16, 0x00, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) // unverified #define SOUND_GENERAL_BIG_CLOCK /* 0x30170080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x17, 0x00, SOUND_DISCRETE) // unverified #define SOUND_GENERAL_LOUD_POUND /* 0x30180000 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x18, 0x00, 0) // _TERRAIN?, unverified, unused diff --git a/include/sounds.h.rej b/include/sounds.h.rej new file mode 100644 index 00000000..25ae6b7a --- /dev/null +++ b/include/sounds.h.rej @@ -0,0 +1,18 @@ +diff a/include/sounds.h b/include/sounds.h (rejected hunks) +@@ -216,7 +216,7 @@ + #define SOUND_MARIO_PUNCH_YAH /* 0x241E8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_PUNCH_HOO /* 0x241F8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_MAMA_MIA /* 0x24208080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x20, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) +-#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, 0) // unused ++#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_GROUND_POUND_WAH /* 0x24228080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x22, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_DROWNING /* 0x2423F080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x23, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_PUNCH_WAH /* 0x24248080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x24, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) +@@ -264,6 +264,7 @@ + #define SOUND_GENERAL_WALL_EXPLOSION /* 0x300F0080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0F, 0x00, SOUND_DISCRETE) + #define SOUND_GENERAL_COIN /* 0x38118080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x11, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_COIN_WATER /* 0x38128080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x12, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified ++#define SOUND_GENERAL_RINGLOSS SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x15, 0x15, SOUND_DISCRETE) //coinwater duplicate + #define SOUND_GENERAL_SHORT_STAR /* 0x30160090 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x16, 0x00, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_BIG_CLOCK /* 0x30170080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x17, 0x00, SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_LOUD_POUND /* 0x30180000 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x18, 0x00, 0) // _TERRAIN?, unverified, unused diff --git a/include/text_strings.h.in b/include/text_strings.h.in index 749179b1..690592b1 100644 --- a/include/text_strings.h.in +++ b/include/text_strings.h.in @@ -3,6 +3,10 @@ #include "text_menu_strings.h" +#ifdef EXT_OPTIONS_MENU +#include "text_options_strings.h" +#endif + /** * Global Symbols */ @@ -23,6 +27,8 @@ // Ingame Menu #define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses +#define TEXT_HEALTH_MARIO _("[B] Health: Mario") +#define TEXT_HEALTH_SONIC _("[B] Health: Sonic") #define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses #if defined(VERSION_JP) || defined(VERSION_SH) @@ -90,6 +96,7 @@ #define TEXT_COURSE _("コース") #define TEXT_MYSCORE _("マイスコア") #define TEXT_CONTINUE _("つづけて マリオする?") +#define TEXT_EXIT_GAME _("ゲームをしゅうりょうする") #define TEXT_EXIT_COURSE _("コースからでる?") #define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ") @@ -107,6 +114,7 @@ // Save Options #define TEXT_SAVE_AND_CONTINUE _("セーブしてつづける?") #define TEXT_SAVE_AND_QUIT _("セーブしておわる?") +#define TEXT_SAVE_EXIT_GAME _("ゲームをやめる?") #define TEXT_CONTINUE_WITHOUT_SAVING _("セーブしないでつづける?") /** @@ -136,10 +144,15 @@ #define TEXT_COPY_FILE _("COPY FILE") #define TEXT_ERASE_FILE _("ERASE FILE") #define TEXT_SOUND_SELECT _("SOUND SELECT") -#define TEXT_FILE_MARIO_A _("MARIO A") -#define TEXT_FILE_MARIO_B _("MARIO B") -#define TEXT_FILE_MARIO_C _("MARIO C") -#define TEXT_FILE_MARIO_D _("MARIO D") +#define TEXT_FILE_MARIO_A _("SONIC A") +#define TEXT_FILE_MARIO_B _("SONIC B") +#define TEXT_FILE_MARIO_C _("SONIC C") +#define TEXT_FILE_MARIO_D _("SONIC D") + +#define TEXT_MARIO_HEALTH_FILE _("Z HEALTH MARIO") +#define TEXT_SONIC_HEALTH_FILE _("Z HEALTH SONIC") + + // Menu Options #define TEXT_SCORE _("SCORE") @@ -179,7 +192,7 @@ #define TEXT_SURE _("SURE?") #define TEXT_YES _("YES") #define TEXT_NO _("NO") -#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED") +#define TEXT_FILE_MARIO_A_JUST_ERASED _("SONIC A JUST ERASED") /** * Menus Text (Pause, Course Completed) @@ -189,12 +202,13 @@ #define TEXT_MYSCORE _("MYSCORE") #define TEXT_CONTINUE _("CONTINUE") #define TEXT_EXIT_COURSE _("EXIT COURSE") +#define TEXT_EXIT_GAME _("EXIT GAME") #ifndef VERSION_EU // "R" text is different in EU #define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R") #endif // Camera Options -#define TEXT_LAKITU_MARIO _("LAKITU + MARIO") +#define TEXT_LAKITU_MARIO _("LAKITU + SONIC") #define TEXT_LAKITU_STOP _("LAKITU + STOP") #define TEXT_NORMAL_UPCLOSE __("(NORMAL)(UP-CLOSE)") #define TEXT_NORMAL_FIXED __("(NORMAL)(FIXED)") @@ -207,20 +221,21 @@ // Save Options #define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE") #define TEXT_SAVE_AND_QUIT _("SAVE & QUIT") +#define TEXT_SAVE_EXIT_GAME _("SAVE & EXIT GAME") #define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE") /** * Ending Peach cutscene text. */ -#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!") +#define TEXT_FILE_MARIO_EXCLAMATION _("Sonic!") #define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...") #define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!") -#define TEXT_THANK_YOU_MARIO __("Thank you, Mario!") +#define TEXT_THANK_YOU_MARIO __("Thank you, Sonic!") #define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...") #define TEXT_LISTEN_EVERYBODY _("Listen, everybody,") #define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...") -#define TEXT_FOR_MARIO _("...for Mario...") -#define TEXT_FILE_MARIO_QUESTION _("Mario!") +#define TEXT_FOR_MARIO _("...for Sonic...") +#define TEXT_FILE_MARIO_QUESTION _("Sonic!") #endif @@ -333,12 +348,14 @@ #define TEXT_MY_SCORE_FR _("MON SCORE") #define TEXT_CONTINUE_FR _("CONTINUER") #define TEXT_EXIT_COURSE_FR _("QUITTER NIVEAU") +#define TEXT_EXIT_GAME_FR _("QUITTER JEU") #define TEXT_CAMERA_ANGLE_R_FR _("RÉGLAGE CAMÉRA AVEC [R]") // German #define TEXT_COURSE_DE _("KURS") #define TEXT_MY_SCORE_DE _("LEISTUNG") #define TEXT_CONTINUE_DE _("WEITER") #define TEXT_EXIT_COURSE_DE _("KURS VERLASSEN") +#define TEXT_EXIT_GAME_DE _("SPIEL VERLASSEN") #define TEXT_CAMERA_ANGLE_R_DE _("KAMERA MIT [R] VERSTELLEN") // Camera Options @@ -361,10 +378,12 @@ // French #define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER") #define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER") +#define TEXT_SAVE_EXIT_GAME_FR _("SAUVEGARDER & QUITTER JEU") #define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER") // German #define TEXT_SAVE_AND_CONTINUE_DE _("SPEICHERN & WEITER") #define TEXT_SAVE_AND_QUIT_DE _("SPEICHERN & ENDE") +#define TEXT_SAVE_EXIT_GAME_DE _("SPEICHERN & SPIEL VERLASSEN") #define TEXT_CONTINUE_WITHOUT_SAVING_DE _("WEITER OHNE ZU SPEICHERN") /** diff --git a/include/text_strings.h.in.rej b/include/text_strings.h.in.rej new file mode 100644 index 00000000..ac4423f4 --- /dev/null +++ b/include/text_strings.h.in.rej @@ -0,0 +1,135 @@ +diff a/include/text_strings.h.in b/include/text_strings.h.in (rejected hunks) +@@ -3,6 +3,10 @@ + + #include "text_menu_strings.h" + ++#ifdef EXT_OPTIONS_MENU ++#include "text_options_strings.h" ++#endif ++ + /** + * Global Symbols + */ +@@ -23,6 +27,8 @@ + + // Ingame Menu + #define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses ++#define TEXT_HEALTH_MARIO _("[B] Health: Mario") ++#define TEXT_HEALTH_SONIC _("[B] Health: Sonic") + #define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses + + #if defined(VERSION_JP) || defined(VERSION_SH) +@@ -90,6 +96,7 @@ + #define TEXT_COURSE _("コース") + #define TEXT_MYSCORE _("マイスコア") + #define TEXT_CONTINUE _("つづけて マリオする?") ++#define TEXT_EXIT_GAME _("ゲームをしゅうりょうする") + #define TEXT_EXIT_COURSE _("コースからでる?") + #define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ") + +@@ -107,6 +114,7 @@ + // Save Options + #define TEXT_SAVE_AND_CONTINUE _("セーブしてつづける?") + #define TEXT_SAVE_AND_QUIT _("セーブしておわる?") ++#define TEXT_SAVE_EXIT_GAME _("ゲームをやめる?") + #define TEXT_CONTINUE_WITHOUT_SAVING _("セーブしないでつづける?") + + /** +@@ -136,10 +144,15 @@ + #define TEXT_COPY_FILE _("COPY FILE") + #define TEXT_ERASE_FILE _("ERASE FILE") + #define TEXT_SOUND_SELECT _("SOUND SELECT") +-#define TEXT_FILE_MARIO_A _("MARIO A") +-#define TEXT_FILE_MARIO_B _("MARIO B") +-#define TEXT_FILE_MARIO_C _("MARIO C") +-#define TEXT_FILE_MARIO_D _("MARIO D") ++#define TEXT_FILE_MARIO_A _("SONIC A") ++#define TEXT_FILE_MARIO_B _("SONIC B") ++#define TEXT_FILE_MARIO_C _("SONIC C") ++#define TEXT_FILE_MARIO_D _("SONIC D") ++ ++#define TEXT_MARIO_HEALTH_FILE _("Z HEALTH MARIO") ++#define TEXT_SONIC_HEALTH_FILE _("Z HEALTH SONIC") ++ ++ + + // Menu Options + #define TEXT_SCORE _("SCORE") +@@ -179,7 +192,7 @@ + #define TEXT_SURE _("SURE?") + #define TEXT_YES _("YES") + #define TEXT_NO _("NO") +-#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED") ++#define TEXT_FILE_MARIO_A_JUST_ERASED _("SONIC A JUST ERASED") + + /** + * Menus Text (Pause, Course Completed) +@@ -189,12 +202,13 @@ + #define TEXT_MYSCORE _("MYSCORE") + #define TEXT_CONTINUE _("CONTINUE") + #define TEXT_EXIT_COURSE _("EXIT COURSE") ++#define TEXT_EXIT_GAME _("EXIT GAME") + #ifndef VERSION_EU // "R" text is different in EU + #define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R") + #endif + + // Camera Options +-#define TEXT_LAKITU_MARIO _("LAKITU + MARIO") ++#define TEXT_LAKITU_MARIO _("LAKITU + SONIC") + #define TEXT_LAKITU_STOP _("LAKITU + STOP") + #define TEXT_NORMAL_UPCLOSE __("(NORMAL)(UP-CLOSE)") + #define TEXT_NORMAL_FIXED __("(NORMAL)(FIXED)") +@@ -207,20 +221,21 @@ + // Save Options + #define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE") + #define TEXT_SAVE_AND_QUIT _("SAVE & QUIT") ++#define TEXT_SAVE_EXIT_GAME _("SAVE & EXIT GAME") + #define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE") + + /** + * Ending Peach cutscene text. + */ +-#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!") ++#define TEXT_FILE_MARIO_EXCLAMATION _("Sonic!") + #define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...") + #define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!") +-#define TEXT_THANK_YOU_MARIO __("Thank you, Mario!") ++#define TEXT_THANK_YOU_MARIO __("Thank you, Sonic!") + #define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...") + #define TEXT_LISTEN_EVERYBODY _("Listen, everybody,") + #define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...") +-#define TEXT_FOR_MARIO _("...for Mario...") +-#define TEXT_FILE_MARIO_QUESTION _("Mario!") ++#define TEXT_FOR_MARIO _("...for Sonic...") ++#define TEXT_FILE_MARIO_QUESTION _("Sonic!") + + #endif + +@@ -333,12 +348,14 @@ + #define TEXT_MY_SCORE_FR _("MON SCORE") + #define TEXT_CONTINUE_FR _("CONTINUER") + #define TEXT_EXIT_COURSE_FR _("QUITTER NIVEAU") ++#define TEXT_EXIT_GAME_FR _("QUITTER JEU") + #define TEXT_CAMERA_ANGLE_R_FR _("RÉGLAGE CAMÉRA AVEC [R]") + // German + #define TEXT_COURSE_DE _("KURS") + #define TEXT_MY_SCORE_DE _("LEISTUNG") + #define TEXT_CONTINUE_DE _("WEITER") + #define TEXT_EXIT_COURSE_DE _("KURS VERLASSEN") ++#define TEXT_EXIT_GAME_DE _("SPIEL VERLASSEN") + #define TEXT_CAMERA_ANGLE_R_DE _("KAMERA MIT [R] VERSTELLEN") + + // Camera Options +@@ -361,10 +378,12 @@ + // French + #define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER") + #define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER") ++#define TEXT_SAVE_EXIT_GAME_FR _("SAUVEGARDER & QUITTER JEU") + #define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER") + // German + #define TEXT_SAVE_AND_CONTINUE_DE _("SPEICHERN & WEITER") + #define TEXT_SAVE_AND_QUIT_DE _("SPEICHERN & ENDE") ++#define TEXT_SAVE_EXIT_GAME_DE _("SPEICHERN & SPIEL VERLASSEN") + #define TEXT_CONTINUE_WITHOUT_SAVING_DE _("WEITER OHNE ZU SPEICHERN") + + /** diff --git a/include/types.h b/include/types.h index c6e801e1..cf31ca5f 100644 --- a/include/types.h +++ b/include/types.h @@ -109,7 +109,7 @@ struct GraphNode /*0x10*/ struct GraphNode *children; }; -struct AnimInfo +struct AnimInfo { /*0x00 0x38*/ s16 animID; /*0x02 0x3A*/ s16 animYTrans; @@ -154,6 +154,7 @@ struct Object /*0x074*/ s16 activeFlags; /*0x076*/ s16 numCollidedObjs; /*0x078*/ struct Object *collidedObjs[4]; + //struct Object* ReticleTarget; /*0x088*/ union { @@ -284,6 +285,9 @@ struct MarioAnimation struct MarioState { + + + /*0x00*/ u16 unk00; /*0x02*/ u16 input; /*0x04*/ u32 flags; @@ -307,6 +311,7 @@ struct MarioState /*0x3A*/ s16 twirlYaw; /*0x3C*/ Vec3f pos; /*0x48*/ Vec3f vel; + f32 isSuper; /*0x54*/ f32 forwardVel; /*0x58*/ f32 slideVelX; /*0x5C*/ f32 slideVelZ; @@ -318,6 +323,7 @@ struct MarioState /*0x74*/ s16 floorAngle; /*0x76*/ s16 waterLevel; /*0x78*/ struct Object *interactObj; + /*sonic homing*/ struct Object* homingObj; /*0x7C*/ struct Object *heldObj; /*0x80*/ struct Object *usedObj; /*0x84*/ struct Object *riddenObj; @@ -333,9 +339,17 @@ struct MarioState /*0xAA*/ s16 numStars; /*0xAC*/ s8 numKeys; // Unused key mechanic /*0xAD*/ s8 numLives; + + //sonic + u8 coinstartotal; + s32 drownTimer; + s32 gasTimer; + s32 coinTimer; + /*0xAE*/ s16 health; /*0xB0*/ s16 unkB0; /*0xB2*/ u8 hurtCounter; + u8 hasEmerald; /*0xB3*/ u8 healCounter; /*0xB4*/ u8 squishTimer; /*0xB5*/ u8 fadeWarpOpacity; @@ -344,6 +358,7 @@ struct MarioState /*0xBC*/ f32 peakHeight; /*0xC0*/ f32 quicksandDepth; /*0xC4*/ f32 unkC4; + }; #endif // TYPES_H diff --git a/include/types.h.rej b/include/types.h.rej new file mode 100644 index 00000000..0ef9d834 --- /dev/null +++ b/include/types.h.rej @@ -0,0 +1,67 @@ +diff a/include/types.h b/include/types.h (rejected hunks) +@@ -109,7 +109,7 @@ struct GraphNode + /*0x10*/ struct GraphNode *children; + }; + +-struct AnimInfo ++struct AnimInfo + { + /*0x00 0x38*/ s16 animID; + /*0x02 0x3A*/ s16 animYTrans; +@@ -154,6 +154,7 @@ struct Object + /*0x074*/ s16 activeFlags; + /*0x076*/ s16 numCollidedObjs; + /*0x078*/ struct Object *collidedObjs[4]; ++ //struct Object* ReticleTarget; + /*0x088*/ + union + { +@@ -284,6 +285,9 @@ struct MarioAnimation + + struct MarioState + { ++ ++ ++ + /*0x00*/ u16 unk00; + /*0x02*/ u16 input; + /*0x04*/ u32 flags; +@@ -307,6 +311,7 @@ struct MarioState + /*0x3A*/ s16 twirlYaw; + /*0x3C*/ Vec3f pos; + /*0x48*/ Vec3f vel; ++ f32 isSuper; + /*0x54*/ f32 forwardVel; + /*0x58*/ f32 slideVelX; + /*0x5C*/ f32 slideVelZ; +@@ -318,6 +323,7 @@ struct MarioState + /*0x74*/ s16 floorAngle; + /*0x76*/ s16 waterLevel; + /*0x78*/ struct Object *interactObj; ++ struct Object* homingObj; + /*0x7C*/ struct Object *heldObj; + /*0x80*/ struct Object *usedObj; + /*0x84*/ struct Object *riddenObj; +@@ -333,9 +339,14 @@ struct MarioState + /*0xAA*/ s16 numStars; + /*0xAC*/ s8 numKeys; // Unused key mechanic + /*0xAD*/ s8 numLives; ++ u8 coinstartotal; ++ s32 drownTimer; ++ s32 gasTimer; ++ s32 coinTimer; + /*0xAE*/ s16 health; + /*0xB0*/ s16 unkB0; + /*0xB2*/ u8 hurtCounter; ++ u8 hasEmerald; + /*0xB3*/ u8 healCounter; + /*0xB4*/ u8 squishTimer; + /*0xB5*/ u8 fadeWarpOpacity; +@@ -344,6 +355,7 @@ struct MarioState + /*0xBC*/ f32 peakHeight; + /*0xC0*/ f32 quicksandDepth; + /*0xC4*/ f32 unkC4; ++ + }; + + #endif // TYPES_H diff --git a/levels/castle_grounds/area_1/collision.inc.c b/levels/castle_grounds/area_1/collision.inc.c new file mode 100644 index 00000000..d8ebd45b --- /dev/null +++ b/levels/castle_grounds/area_1/collision.inc.c @@ -0,0 +1,363 @@ +const Collision castle_grounds_area_1_collision[] = { + COL_INIT(), + COL_VERTEX_INIT(123), + COL_VERTEX(400, 100, -400), + COL_VERTEX(-400, 100, -400), + COL_VERTEX(-400, 100, 400), + COL_VERTEX(400, 100, 400), + COL_VERTEX(-400, -100, 400), + COL_VERTEX(400, -100, 400), + COL_VERTEX(617, 295, 788), + COL_VERTEX(-409, 295, 788), + COL_VERTEX(-400, -100, -400), + COL_VERTEX(400, -100, -400), + COL_VERTEX(-409, 552, 788), + COL_VERTEX(-142, 819, 1065), + COL_VERTEX(-142, 1075, 1065), + COL_VERTEX(617, 552, 788), + COL_VERTEX(883, 819, 1065), + COL_VERTEX(883, 819, 1374), + COL_VERTEX(-142, 819, 1374), + COL_VERTEX(883, 1075, 1065), + COL_VERTEX(-486, -14, -4725), + COL_VERTEX(-486, 93, -4725), + COL_VERTEX(-486, 93, -5753), + COL_VERTEX(-486, -14, -5753), + COL_VERTEX(542, 93, -5753), + COL_VERTEX(542, -14, -5753), + COL_VERTEX(542, 93, -4725), + COL_VERTEX(542, -14, -4725), + COL_VERTEX(1115, 1282, 1693), + COL_VERTEX(90, 1282, 1693), + COL_VERTEX(883, 1075, 1374), + COL_VERTEX(-142, 1075, 1374), + COL_VERTEX(1115, 1539, 1693), + COL_VERTEX(90, 1539, 1693), + COL_VERTEX(382, 1982, 1836), + COL_VERTEX(1407, 1982, 1836), + COL_VERTEX(379, 2517, 1794), + COL_VERTEX(1403, 2469, 1787), + COL_VERTEX(382, 1725, 1836), + COL_VERTEX(1407, 1725, 1836), + COL_VERTEX(1410, 2591, 2012), + COL_VERTEX(1391, 2766, 1148), + COL_VERTEX(1398, 2889, 1373), + COL_VERTEX(386, 2639, 2019), + COL_VERTEX(374, 2937, 1380), + COL_VERTEX(367, 2814, 1155), + COL_VERTEX(-3542, -774, 521), + COL_VERTEX(-3542, -450, 521), + COL_VERTEX(-3542, -450, -5020), + COL_VERTEX(-3542, -774, -5020), + COL_VERTEX(3598, -450, -5020), + COL_VERTEX(3598, -774, -5020), + COL_VERTEX(3598, -450, 521), + COL_VERTEX(3598, -774, 521), + COL_VERTEX(139, -450, 521), + COL_VERTEX(-2, -1601, 2129), + COL_VERTEX(3598, -1601, 2129), + COL_VERTEX(-3542, -1925, 2129), + COL_VERTEX(3598, -1925, 2129), + COL_VERTEX(3598, -4285, 3492), + COL_VERTEX(-3542, -4285, 3492), + COL_VERTEX(-3542, -1601, 2129), + COL_VERTEX(-3542, -3961, 3492), + COL_VERTEX(-69, -3961, 3492), + COL_VERTEX(3598, -3961, 3492), + COL_VERTEX(-3092, -651, -5000), + COL_VERTEX(-3092, -451, -5000), + COL_VERTEX(-3092, -451, -6456), + COL_VERTEX(-3092, -651, -6456), + COL_VERTEX(-2345, -451, -6456), + COL_VERTEX(-2157, -311, -6876), + COL_VERTEX(-2903, -311, -6876), + COL_VERTEX(-2345, -651, -6456), + COL_VERTEX(-2345, -451, -5000), + COL_VERTEX(-2345, -651, -5000), + COL_VERTEX(-1980, -26, -7182), + COL_VERTEX(-2726, -26, -7182), + COL_VERTEX(-2903, -511, -6876), + COL_VERTEX(-2157, -511, -6876), + COL_VERTEX(-1980, -226, -7182), + COL_VERTEX(-1769, 261, -7543), + COL_VERTEX(-1769, 261, -7343), + COL_VERTEX(-2726, -226, -7182), + COL_VERTEX(-2515, 261, -7543), + COL_VERTEX(-2319, 557, -7543), + COL_VERTEX(-1572, 557, -7543), + COL_VERTEX(-2515, 261, -7343), + COL_VERTEX(-2319, 557, -7343), + COL_VERTEX(-1572, 557, -7343), + COL_VERTEX(-1484, 970, -7145), + COL_VERTEX(-2230, 970, -7145), + COL_VERTEX(-1484, 970, -7345), + COL_VERTEX(-1484, 1325, -6839), + COL_VERTEX(-1484, 1125, -6839), + COL_VERTEX(-2230, 970, -7345), + COL_VERTEX(-2230, 1125, -6839), + COL_VERTEX(-1484, 1125, -6227), + COL_VERTEX(-2230, 1125, -6227), + COL_VERTEX(-2230, 1325, -6839), + COL_VERTEX(-1484, 1004, -5969), + COL_VERTEX(-2230, 1004, -5969), + COL_VERTEX(-2230, 1325, -6227), + COL_VERTEX(-1484, 1325, -6227), + COL_VERTEX(-1484, 1004, -5769), + COL_VERTEX(-1484, 607, -5555), + COL_VERTEX(-1484, 607, -5755), + COL_VERTEX(-2230, 1004, -5769), + COL_VERTEX(-2230, 607, -5755), + COL_VERTEX(-1276, 277, -5755), + COL_VERTEX(-2022, 277, -5755), + COL_VERTEX(-2230, 607, -5555), + COL_VERTEX(-2022, 277, -5555), + COL_VERTEX(-1951, -78, -5959), + COL_VERTEX(-1951, -278, -5959), + COL_VERTEX(-1276, 277, -5555), + COL_VERTEX(-1205, -78, -5959), + COL_VERTEX(-1205, -278, -5959), + COL_VERTEX(-1182, -538, -6238), + COL_VERTEX(-1182, -338, -6238), + COL_VERTEX(-1928, -338, -6238), + COL_VERTEX(-1134, -338, -8589), + COL_VERTEX(-1880, -338, -8589), + COL_VERTEX(-1928, -538, -6238), + COL_VERTEX(-1880, -538, -8589), + COL_VERTEX(-1134, -538, -8589), + COL_TRI_INIT(SURFACE_DEFAULT, 226), + COL_TRI(0, 1, 2), + COL_TRI(0, 2, 3), + COL_TRI(4, 5, 6), + COL_TRI(4, 6, 7), + COL_TRI(4, 2, 1), + COL_TRI(4, 1, 8), + COL_TRI(8, 9, 5), + COL_TRI(8, 5, 4), + COL_TRI(9, 0, 3), + COL_TRI(9, 3, 5), + COL_TRI(8, 1, 0), + COL_TRI(8, 0, 9), + COL_TRI(10, 7, 11), + COL_TRI(10, 11, 12), + COL_TRI(3, 2, 10), + COL_TRI(3, 10, 13), + COL_TRI(5, 3, 13), + COL_TRI(5, 13, 6), + COL_TRI(2, 4, 7), + COL_TRI(2, 7, 10), + COL_TRI(11, 14, 15), + COL_TRI(11, 15, 16), + COL_TRI(7, 6, 14), + COL_TRI(7, 14, 11), + COL_TRI(6, 13, 17), + COL_TRI(6, 17, 14), + COL_TRI(13, 10, 12), + COL_TRI(13, 12, 17), + COL_TRI(18, 19, 20), + COL_TRI(18, 20, 21), + COL_TRI(21, 20, 22), + COL_TRI(21, 22, 23), + COL_TRI(23, 22, 24), + COL_TRI(23, 24, 25), + COL_TRI(25, 24, 19), + COL_TRI(25, 19, 18), + COL_TRI(21, 23, 25), + COL_TRI(21, 25, 18), + COL_TRI(22, 20, 19), + COL_TRI(22, 19, 24), + COL_TRI(16, 15, 26), + COL_TRI(16, 26, 27), + COL_TRI(14, 17, 28), + COL_TRI(14, 28, 15), + COL_TRI(17, 12, 29), + COL_TRI(17, 29, 28), + COL_TRI(12, 11, 16), + COL_TRI(12, 16, 29), + COL_TRI(30, 31, 32), + COL_TRI(30, 32, 33), + COL_TRI(15, 28, 30), + COL_TRI(15, 30, 26), + COL_TRI(28, 29, 31), + COL_TRI(28, 31, 30), + COL_TRI(29, 16, 27), + COL_TRI(29, 27, 31), + COL_TRI(33, 32, 34), + COL_TRI(33, 34, 35), + COL_TRI(31, 27, 36), + COL_TRI(31, 36, 32), + COL_TRI(27, 26, 37), + COL_TRI(27, 37, 36), + COL_TRI(26, 30, 33), + COL_TRI(26, 33, 37), + COL_TRI(38, 35, 39), + COL_TRI(38, 39, 40), + COL_TRI(32, 36, 41), + COL_TRI(32, 41, 34), + COL_TRI(36, 37, 38), + COL_TRI(36, 38, 41), + COL_TRI(37, 33, 38), + COL_TRI(33, 35, 38), + COL_TRI(41, 38, 40), + COL_TRI(41, 40, 42), + COL_TRI(40, 43, 42), + COL_TRI(40, 39, 43), + COL_TRI(35, 34, 43), + COL_TRI(35, 43, 39), + COL_TRI(34, 41, 42), + COL_TRI(34, 42, 43), + COL_TRI(44, 45, 46), + COL_TRI(44, 46, 47), + COL_TRI(47, 46, 48), + COL_TRI(47, 48, 49), + COL_TRI(49, 48, 50), + COL_TRI(49, 50, 51), + COL_TRI(50, 52, 53), + COL_TRI(50, 53, 54), + COL_TRI(47, 49, 51), + COL_TRI(47, 51, 44), + COL_TRI(50, 48, 46), + COL_TRI(46, 45, 52), + COL_TRI(46, 52, 50), + COL_TRI(55, 56, 57), + COL_TRI(55, 57, 58), + COL_TRI(51, 50, 54), + COL_TRI(51, 54, 56), + COL_TRI(45, 44, 55), + COL_TRI(45, 55, 59), + COL_TRI(44, 51, 56), + COL_TRI(44, 56, 55), + COL_TRI(59, 55, 58), + COL_TRI(59, 58, 60), + COL_TRI(54, 53, 61), + COL_TRI(54, 61, 62), + COL_TRI(56, 54, 62), + COL_TRI(56, 62, 57), + COL_TRI(61, 60, 58), + COL_TRI(58, 57, 62), + COL_TRI(58, 62, 61), + COL_TRI(63, 64, 65), + COL_TRI(63, 65, 66), + COL_TRI(65, 67, 68), + COL_TRI(65, 68, 69), + COL_TRI(70, 67, 71), + COL_TRI(70, 71, 72), + COL_TRI(72, 71, 64), + COL_TRI(72, 64, 63), + COL_TRI(66, 70, 72), + COL_TRI(66, 72, 63), + COL_TRI(67, 65, 64), + COL_TRI(67, 64, 71), + COL_TRI(69, 68, 73), + COL_TRI(69, 73, 74), + COL_TRI(66, 65, 69), + COL_TRI(66, 69, 75), + COL_TRI(67, 70, 76), + COL_TRI(67, 76, 68), + COL_TRI(70, 66, 75), + COL_TRI(70, 75, 76), + COL_TRI(73, 77, 78), + COL_TRI(73, 78, 79), + COL_TRI(75, 69, 74), + COL_TRI(75, 74, 80), + COL_TRI(68, 76, 77), + COL_TRI(68, 77, 73), + COL_TRI(76, 75, 80), + COL_TRI(76, 80, 77), + COL_TRI(78, 81, 82), + COL_TRI(78, 82, 83), + COL_TRI(77, 80, 81), + COL_TRI(77, 81, 78), + COL_TRI(74, 73, 79), + COL_TRI(74, 79, 84), + COL_TRI(80, 74, 84), + COL_TRI(80, 84, 81), + COL_TRI(85, 86, 87), + COL_TRI(85, 87, 88), + COL_TRI(84, 79, 86), + COL_TRI(84, 86, 85), + COL_TRI(81, 84, 85), + COL_TRI(81, 85, 82), + COL_TRI(79, 78, 83), + COL_TRI(79, 83, 86), + COL_TRI(87, 89, 90), + COL_TRI(87, 90, 91), + COL_TRI(82, 85, 88), + COL_TRI(82, 88, 92), + COL_TRI(86, 83, 89), + COL_TRI(86, 89, 87), + COL_TRI(83, 82, 92), + COL_TRI(83, 92, 89), + COL_TRI(93, 91, 94), + COL_TRI(93, 94, 95), + COL_TRI(89, 92, 96), + COL_TRI(89, 96, 90), + COL_TRI(88, 87, 91), + COL_TRI(88, 91, 93), + COL_TRI(92, 88, 93), + COL_TRI(92, 93, 96), + COL_TRI(95, 94, 97), + COL_TRI(95, 97, 98), + COL_TRI(96, 93, 95), + COL_TRI(96, 95, 99), + COL_TRI(91, 90, 100), + COL_TRI(91, 100, 94), + COL_TRI(90, 96, 99), + COL_TRI(90, 99, 100), + COL_TRI(97, 101, 102), + COL_TRI(97, 102, 103), + COL_TRI(99, 95, 98), + COL_TRI(99, 98, 104), + COL_TRI(94, 100, 101), + COL_TRI(94, 101, 97), + COL_TRI(100, 99, 104), + COL_TRI(100, 104, 101), + COL_TRI(105, 103, 106), + COL_TRI(105, 106, 107), + COL_TRI(101, 104, 108), + COL_TRI(101, 108, 102), + COL_TRI(98, 97, 103), + COL_TRI(98, 103, 105), + COL_TRI(104, 98, 105), + COL_TRI(104, 105, 108), + COL_TRI(109, 107, 110), + COL_TRI(109, 110, 111), + COL_TRI(108, 105, 107), + COL_TRI(108, 107, 109), + COL_TRI(103, 102, 112), + COL_TRI(103, 112, 106), + COL_TRI(102, 108, 109), + COL_TRI(102, 109, 112), + COL_TRI(113, 114, 115), + COL_TRI(113, 115, 116), + COL_TRI(106, 112, 114), + COL_TRI(106, 114, 113), + COL_TRI(112, 109, 111), + COL_TRI(112, 111, 114), + COL_TRI(107, 106, 113), + COL_TRI(107, 113, 110), + COL_TRI(117, 116, 118), + COL_TRI(117, 118, 119), + COL_TRI(114, 111, 120), + COL_TRI(114, 120, 115), + COL_TRI(110, 113, 116), + COL_TRI(110, 116, 117), + COL_TRI(111, 110, 117), + COL_TRI(111, 117, 120), + COL_TRI(121, 119, 118), + COL_TRI(121, 118, 122), + COL_TRI(120, 117, 119), + COL_TRI(120, 119, 121), + COL_TRI(116, 115, 122), + COL_TRI(116, 122, 118), + COL_TRI(115, 120, 121), + COL_TRI(115, 121, 122), + COL_TRI_INIT(SURFACE_VERY_SLIPPERY, 4), + COL_TRI(61, 53, 59), + COL_TRI(61, 59, 60), + COL_TRI(53, 52, 45), + COL_TRI(53, 45, 59), + COL_TRI_STOP(), + COL_WATER_BOX_INIT(1), + COL_WATER_BOX(0x00, -6164, 2651, 2691, 9059, -2755), + COL_END() +}; diff --git a/levels/castle_grounds/area_1/geo.inc.c b/levels/castle_grounds/area_1/geo.inc.c new file mode 100644 index 00000000..b6fb1cf8 --- /dev/null +++ b/levels/castle_grounds/area_1/geo.inc.c @@ -0,0 +1,39 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout castle_grounds_area_1_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, castle_grounds_dl_Cube_mesh), + GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 28, -612, -2665, castle_grounds_dl_Cube_001_mesh), + GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -964, 100, -5075, castle_grounds_dl_loop_mesh), + GEO_TRANSLATE_NODE_WITH_DL(5, -1737, -2755, 5855, castle_grounds_dl_Water_Box_Mesh_mesh_layer_5), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout castle_grounds_area_1[] = { + GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2), + GEO_OPEN_NODE(), + GEO_ZBUFFER(0), + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100.0000), + GEO_OPEN_NODE(), + GEO_BACKGROUND(BACKGROUND_PURPLE_SKY, geo_skybox_main), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), + GEO_OPEN_NODE(), + GEO_CAMERA_FRUSTUM_WITH_FUNC(45.0000, 100, 30000, geo_camera_fov), + GEO_OPEN_NODE(), + GEO_CAMERA(CAMERA_MODE_8_DIRECTIONS, 0, 0, 0, 0, -100, 0, geo_camera_main), + GEO_OPEN_NODE(), + GEO_BRANCH(1, castle_grounds_area_1_geo), + GEO_RENDER_OBJ(), + GEO_ASM(ENVFX_MODE_NONE, geo_envfx_main), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(5, castle_grounds_dl_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_OPAQUE, castle_grounds_dl_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/levels/castle_grounds/area_1/macro.inc.c b/levels/castle_grounds/area_1/macro.inc.c new file mode 100644 index 00000000..c28274b4 --- /dev/null +++ b/levels/castle_grounds/area_1/macro.inc.c @@ -0,0 +1,4 @@ +const MacroObject castle_grounds_area_1_macro_objs[] = { + MACRO_OBJECT_END(), +}; + diff --git a/levels/castle_grounds/area_1/spline.inc.c b/levels/castle_grounds/area_1/spline.inc.c new file mode 100644 index 00000000..e69de29b diff --git a/levels/castle_grounds/geo.inc.c b/levels/castle_grounds/geo.inc.c new file mode 100644 index 00000000..af9c4faf --- /dev/null +++ b/levels/castle_grounds/geo.inc.c @@ -0,0 +1 @@ +#include "levels/castle_grounds/area_1/geo.inc.c" diff --git a/levels/castle_grounds/header.inc.h b/levels/castle_grounds/header.inc.h new file mode 100644 index 00000000..439a3d5d --- /dev/null +++ b/levels/castle_grounds/header.inc.h @@ -0,0 +1,34 @@ +extern const GeoLayout castle_grounds_area_1_geo[]; +extern const GeoLayout castle_grounds_area_1[]; +extern const Collision castle_grounds_area_1_collision[]; +extern const MacroObject castle_grounds_area_1_macro_objs[]; +extern Lights1 castle_grounds_dl_ground_lights; +extern Lights1 castle_grounds_dl_floor_lights; +extern Lights1 castle_grounds_dl_slippery_lights; +extern Lights1 castle_grounds_dl_water_001_layer5_area1_lights; +extern u8 castle_grounds_dl_rocktextso_rgba16[]; +extern u8 castle_grounds_dl_testwater_ia8[]; +extern Vtx castle_grounds_dl_Cube_mesh_vtx_cull[8]; +extern Vtx castle_grounds_dl_Cube_mesh_vtx_0[160]; +extern Gfx castle_grounds_dl_Cube_mesh_tri_0[]; +extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_cull[8]; +extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_0[60]; +extern Gfx castle_grounds_dl_Cube_001_mesh_tri_0[]; +extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_1[8]; +extern Gfx castle_grounds_dl_Cube_001_mesh_tri_1[]; +extern Vtx castle_grounds_dl_loop_mesh_vtx_cull[8]; +extern Vtx castle_grounds_dl_loop_mesh_vtx_0[228]; +extern Gfx castle_grounds_dl_loop_mesh_tri_0[]; +extern Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull[8]; +extern Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0[4]; +extern Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0[]; +extern Gfx mat_castle_grounds_dl_ground[]; +extern Gfx mat_castle_grounds_dl_floor[]; +extern Gfx mat_castle_grounds_dl_slippery[]; +extern Gfx mat_castle_grounds_dl_water_001_layer5_area1[]; +extern Gfx mat_revert_castle_grounds_dl_water_001_layer5_area1[]; +extern Gfx castle_grounds_dl_Cube_mesh[]; +extern Gfx castle_grounds_dl_Cube_001_mesh[]; +extern Gfx castle_grounds_dl_loop_mesh[]; +extern Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5[]; +extern Gfx castle_grounds_dl_material_revert_render_settings[]; diff --git a/levels/castle_grounds/leveldata.inc.c b/levels/castle_grounds/leveldata.inc.c new file mode 100644 index 00000000..b68feba1 --- /dev/null +++ b/levels/castle_grounds/leveldata.inc.c @@ -0,0 +1,5 @@ +#include "levels/castle_grounds/texture_include.inc.c" +#include "levels/castle_grounds/area_1/collision.inc.c" +#include "levels/castle_grounds/area_1/macro.inc.c" +#include "levels/castle_grounds/area_1/spline.inc.c" +#include "levels/castle_grounds/model.inc.c" diff --git a/levels/castle_grounds/model.inc.c b/levels/castle_grounds/model.inc.c new file mode 100644 index 00000000..6bfbe6a2 --- /dev/null +++ b/levels/castle_grounds/model.inc.c @@ -0,0 +1,806 @@ +Lights1 castle_grounds_dl_ground_lights = gdSPDefLights1( + 0x4B, 0x7F, 0x4A, + 0x97, 0xFE, 0x95, 0x28, 0x28, 0x28); + +Lights1 castle_grounds_dl_floor_lights = gdSPDefLights1( + 0x7F, 0x79, 0x79, + 0xFE, 0xF2, 0xF2, 0x28, 0x28, 0x28); + +Lights1 castle_grounds_dl_slippery_lights = gdSPDefLights1( + 0x19, 0x7F, 0x7C, + 0x32, 0xFE, 0xF8, 0x28, 0x28, 0x28); + +Lights1 castle_grounds_dl_water_001_layer5_area1_lights = gdSPDefLights1( + 0x19, 0x50, 0x7F, + 0x33, 0xA0, 0xFE, 0x28, 0x28, 0x28); + +Vtx castle_grounds_dl_Cube_mesh_vtx_cull[8] = { + {{{-486, -100, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-486, -100, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-486, 2937, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-486, 2937, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{1410, -100, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{1410, -100, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{1410, 2937, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{1410, 2937, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, +}; + +Vtx castle_grounds_dl_Cube_mesh_vtx_0[160] = { + {{{400, 100, -400},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-400, 100, -400},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-400, 100, 400},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{400, 100, 400},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-400, -100, 400},0, {112, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{400, -100, 400},0, {368, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{617, 295, 788},0, {368, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{-409, 295, 788},0, {112, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, + {{{-400, -100, 400},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-400, 100, 400},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-400, 100, -400},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-400, -100, -400},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-400, -100, -400},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{400, -100, -400},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{400, -100, 400},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-400, -100, 400},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{400, -100, -400},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{400, 100, -400},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{400, 100, 400},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{400, -100, 400},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-400, -100, -400},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-400, 100, -400},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{400, 100, -400},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{400, -100, -400},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-409, 552, 788},0, {624, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, + {{{-409, 295, 788},0, {368, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, + {{{-142, 819, 1065},0, {368, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, + {{{-142, 1075, 1065},0, {624, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, + {{{400, 100, 400},0, {624, 240},{0x0, 0x53, 0xA0, 0xFF}}}, + {{{-400, 100, 400},0, {880, 240},{0x0, 0x53, 0xA0, 0xFF}}}, + {{{-409, 552, 788},0, {880, 240},{0x0, 0x53, 0xA0, 0xFF}}}, + {{{617, 552, 788},0, {624, 240},{0x0, 0x53, 0xA0, 0xFF}}}, + {{{400, -100, 400},0, {368, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, + {{{400, 100, 400},0, {624, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, + {{{617, 552, 788},0, {624, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, + {{{617, 295, 788},0, {368, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, + {{{-400, 100, 400},0, {624, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, + {{{-400, -100, 400},0, {368, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, + {{{-409, 295, 788},0, {368, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, + {{{-409, 552, 788},0, {624, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, + {{{-142, 819, 1065},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{883, 819, 1065},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{883, 819, 1374},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-142, 819, 1374},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-409, 295, 788},0, {112, 240},{0x0, 0xC5, 0x71, 0xFF}}}, + {{{617, 295, 788},0, {368, 240},{0x0, 0xC5, 0x71, 0xFF}}}, + {{{883, 819, 1065},0, {368, 240},{0x0, 0xC5, 0x71, 0xFF}}}, + {{{-142, 819, 1065},0, {112, 240},{0x0, 0xC5, 0x71, 0xFF}}}, + {{{617, 295, 788},0, {368, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, + {{{617, 552, 788},0, {624, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, + {{{883, 1075, 1065},0, {624, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, + {{{883, 819, 1065},0, {368, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, + {{{617, 552, 788},0, {624, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, + {{{-409, 552, 788},0, {880, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, + {{{-142, 1075, 1065},0, {880, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, + {{{883, 1075, 1065},0, {624, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, + {{{-486, -14, -4725},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-486, 93, -4725},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-486, 93, -5753},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-486, -14, -5753},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-486, -14, -5753},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-486, 93, -5753},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{542, 93, -5753},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{542, -14, -5753},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{542, -14, -5753},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{542, 93, -5753},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{542, 93, -4725},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{542, -14, -4725},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{542, -14, -4725},0, {368, 240},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{542, 93, -4725},0, {624, 240},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-486, 93, -4725},0, {624, -16},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-486, -14, -4725},0, {368, -16},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-486, -14, -5753},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{542, -14, -5753},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{542, -14, -4725},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-486, -14, -4725},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{542, 93, -5753},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-486, 93, -5753},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-486, 93, -4725},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{542, 93, -4725},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-142, 819, 1374},0, {112, 240},{0x0, 0xB8, 0x69, 0xFF}}}, + {{{883, 819, 1374},0, {368, 240},{0x0, 0xB8, 0x69, 0xFF}}}, + {{{1115, 1282, 1693},0, {368, 240},{0x0, 0xB8, 0x69, 0xFF}}}, + {{{90, 1282, 1693},0, {112, 240},{0x0, 0xB8, 0x69, 0xFF}}}, + {{{883, 819, 1065},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{883, 1075, 1065},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{883, 1075, 1374},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{883, 819, 1374},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{883, 1075, 1065},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-142, 1075, 1065},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-142, 1075, 1374},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{883, 1075, 1374},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-142, 1075, 1065},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-142, 819, 1065},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-142, 819, 1374},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-142, 1075, 1374},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{1115, 1539, 1693},0, {624, 240},{0x0, 0x27, 0x87, 0xFF}}}, + {{{90, 1539, 1693},0, {880, 240},{0x0, 0x27, 0x87, 0xFF}}}, + {{{382, 1982, 1836},0, {880, 240},{0x0, 0x27, 0x87, 0xFF}}}, + {{{1407, 1982, 1836},0, {624, 240},{0x0, 0x27, 0x87, 0xFF}}}, + {{{883, 819, 1374},0, {368, 240},{0x67, 0x0, 0xB5, 0xFF}}}, + {{{883, 1075, 1374},0, {624, 240},{0x67, 0x0, 0xB5, 0xFF}}}, + {{{1115, 1539, 1693},0, {624, 240},{0x67, 0x0, 0xB5, 0xFF}}}, + {{{1115, 1282, 1693},0, {368, 240},{0x67, 0x0, 0xB5, 0xFF}}}, + {{{883, 1075, 1374},0, {624, 240},{0x0, 0x48, 0x97, 0xFF}}}, + {{{-142, 1075, 1374},0, {880, 240},{0x0, 0x48, 0x97, 0xFF}}}, + {{{90, 1539, 1693},0, {880, 240},{0x0, 0x48, 0x97, 0xFF}}}, + {{{1115, 1539, 1693},0, {624, 240},{0x0, 0x48, 0x97, 0xFF}}}, + {{{-142, 1075, 1374},0, {624, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, + {{{-142, 819, 1374},0, {368, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, + {{{90, 1282, 1693},0, {368, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, + {{{90, 1539, 1693},0, {624, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, + {{{1407, 1982, 1836},0, {624, 240},{0x0, 0xF5, 0x81, 0xFF}}}, + {{{382, 1982, 1836},0, {880, 240},{0x0, 0xF5, 0x81, 0xFF}}}, + {{{379, 2517, 1794},0, {880, 240},{0x0, 0xF5, 0x81, 0xFF}}}, + {{{1403, 2469, 1787},0, {624, 240},{0x0, 0xF5, 0x81, 0xFF}}}, + {{{90, 1539, 1693},0, {624, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, + {{{90, 1282, 1693},0, {368, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, + {{{382, 1725, 1836},0, {368, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, + {{{382, 1982, 1836},0, {624, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, + {{{90, 1282, 1693},0, {112, 240},{0x0, 0xD9, 0x79, 0xFF}}}, + {{{1115, 1282, 1693},0, {368, 240},{0x0, 0xD9, 0x79, 0xFF}}}, + {{{1407, 1725, 1836},0, {368, 240},{0x0, 0xD9, 0x79, 0xFF}}}, + {{{382, 1725, 1836},0, {112, 240},{0x0, 0xD9, 0x79, 0xFF}}}, + {{{1115, 1282, 1693},0, {368, 240},{0x38, 0x0, 0x8E, 0xFF}}}, + {{{1115, 1539, 1693},0, {624, 240},{0x38, 0x0, 0x8E, 0xFF}}}, + {{{1407, 1982, 1836},0, {624, 240},{0x38, 0x0, 0x8E, 0xFF}}}, + {{{1407, 1725, 1836},0, {368, 240},{0x38, 0x0, 0x8E, 0xFF}}}, + {{{1410, 2591, 2012},0, {368, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, + {{{1403, 2469, 1787},0, {624, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, + {{{1391, 2766, 1148},0, {624, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, + {{{1398, 2889, 1373},0, {368, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, + {{{382, 1982, 1836},0, {624, 1008},{0x81, 0x0, 0x3, 0xFF}}}, + {{{382, 1725, 1836},0, {368, 1008},{0x81, 0x0, 0x3, 0xFF}}}, + {{{386, 2639, 2019},0, {368, 1008},{0x81, 0x0, 0x3, 0xFF}}}, + {{{379, 2517, 1794},0, {624, 1008},{0x81, 0x0, 0x3, 0xFF}}}, + {{{382, 1725, 1836},0, {112, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, + {{{1407, 1725, 1836},0, {368, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, + {{{1410, 2591, 2012},0, {368, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, + {{{386, 2639, 2019},0, {112, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, + {{{1407, 1725, 1836},0, {368, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, + {{{1407, 1982, 1836},0, {624, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, + {{{1410, 2591, 2012},0, {368, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, + {{{1403, 2469, 1787},0, {624, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, + {{{386, 2639, 2019},0, {112, 240},{0x5, 0x73, 0x35, 0xFF}}}, + {{{1410, 2591, 2012},0, {368, 240},{0x5, 0x73, 0x35, 0xFF}}}, + {{{1398, 2889, 1373},0, {368, 240},{0x5, 0x73, 0x35, 0xFF}}}, + {{{374, 2937, 1380},0, {112, 240},{0x5, 0x73, 0x35, 0xFF}}}, + {{{1398, 2889, 1373},0, {368, 240},{0x4, 0x6F, 0xC3, 0xFF}}}, + {{{367, 2814, 1155},0, {624, -16},{0x4, 0x6F, 0xC3, 0xFF}}}, + {{{374, 2937, 1380},0, {368, -16},{0x4, 0x6F, 0xC3, 0xFF}}}, + {{{1391, 2766, 1148},0, {624, 240},{0x4, 0x6F, 0xC3, 0xFF}}}, + {{{1403, 2469, 1787},0, {624, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, + {{{379, 2517, 1794},0, {880, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, + {{{367, 2814, 1155},0, {880, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, + {{{1391, 2766, 1148},0, {624, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, + {{{379, 2517, 1794},0, {624, 1008},{0x81, 0x1, 0x3, 0xFF}}}, + {{{386, 2639, 2019},0, {368, 1008},{0x81, 0x1, 0x3, 0xFF}}}, + {{{374, 2937, 1380},0, {368, 1008},{0x81, 0x1, 0x3, 0xFF}}}, + {{{367, 2814, 1155},0, {624, 1008},{0x81, 0x1, 0x3, 0xFF}}}, +}; + +Gfx castle_grounds_dl_Cube_mesh_tri_0[] = { + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 0, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 32, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 64, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 96, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 128, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 13, 15, 14, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 23, 21, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPEndDisplayList(), +}; + +Vtx castle_grounds_dl_Cube_001_mesh_vtx_cull[8] = { + {{{-3570, -3672, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-3570, -3672, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-3570, 162, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-3570, 162, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{3570, -3672, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{3570, -3672, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{3570, 162, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{3570, 162, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, +}; + +Vtx castle_grounds_dl_Cube_001_mesh_vtx_0[60] = { + {{{-3570, -162, 3186},0, {-11977, 24765},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, 162, 3186},0, {-11977, -22749},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, 162, -2355},0, {9091, -22749},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -162, -2355},0, {9091, 24765},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -162, -2355},0, {-21018, 24765},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-3570, 162, -2355},0, {-21018, -22749},{0x0, 0x0, 0x81, 0xFF}}}, + {{{3570, 162, -2355},0, {19942, -22749},{0x0, 0x0, 0x81, 0xFF}}}, + {{{3570, -162, -2355},0, {19942, 24765},{0x0, 0x0, 0x81, 0xFF}}}, + {{{3570, -162, -2355},0, {-9123, 24765},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, 162, -2355},0, {-9123, -22749},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, 162, 3186},0, {11945, -22749},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -162, 3186},0, {11945, 24765},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, 162, 3186},0, {-8080, -6070},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{111, 162, 3186},0, {11120, -6070},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{-30, -989, 4794},0, {11120, 7480},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{3570, -989, 4794},0, {-8080, 7480},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{-3570, -162, -2355},0, {-21018, -9224},{0x0, 0x81, 0x0, 0xFF}}}, + {{{3570, -162, -2355},0, {19942, -9224},{0x0, 0x81, 0x0, 0xFF}}}, + {{{3570, -162, 3186},0, {19942, 15214},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-3570, -162, 3186},0, {-21018, 15214},{0x0, 0x81, 0x0, 0xFF}}}, + {{{3570, 162, 3186},0, {-19974, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{3570, 162, -2355},0, {-19974, -9224},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-3570, 162, -2355},0, {20986, -9224},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{111, 162, 3186},0, {-133, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-3570, 162, 3186},0, {20986, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-3570, -1313, 4794},0, {-21018, -30559},{0x0, 0xC0, 0x92, 0xFF}}}, + {{{3570, -1313, 4794},0, {19942, -30559},{0x0, 0xC0, 0x92, 0xFF}}}, + {{{3570, -3672, 6157},0, {19942, 315663},{0x0, 0xC0, 0x92, 0xFF}}}, + {{{-3570, -3672, 6157},0, {-21018, 315663},{0x0, 0xC0, 0x92, 0xFF}}}, + {{{3570, -162, 3186},0, {11945, 17597},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, 162, 3186},0, {11945, -29917},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -989, 4794},0, {18058, 139016},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -162, 3186},0, {11945, 17597},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -989, 4794},0, {18058, 139016},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -1313, 4794},0, {18058, 186529},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-3570, 162, 3186},0, {-11977, -29917},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -162, 3186},0, {-11977, 17597},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -1313, 4794},0, {-18090, 186529},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -989, 4794},0, {-18090, 139016},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -162, 3186},0, {-21018, -30531},{0x0, 0x99, 0xB6, 0xFF}}}, + {{{3570, -162, 3186},0, {19942, -30531},{0x0, 0x99, 0xB6, 0xFF}}}, + {{{3570, -1313, 4794},0, {19942, 138401},{0x0, 0x99, 0xB6, 0xFF}}}, + {{{-3570, -1313, 4794},0, {-21018, 138401},{0x0, 0x99, 0xB6, 0xFF}}}, + {{{-3570, -989, 4794},0, {-18090, -29944},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -1313, 4794},0, {-18090, 17569},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -3672, 6157},0, {-23271, 363791},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-3570, -3349, 6157},0, {-23271, 316277},{0x81, 0x0, 0x0, 0xFF}}}, + {{{3570, -989, 4794},0, {-19974, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-97, -3349, 6157},0, {1065, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{3570, -3349, 6157},0, {-19974, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-30, -989, 4794},0, {680, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{3570, -1313, 4794},0, {18058, 17569},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -989, 4794},0, {18058, -29944},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -3349, 6157},0, {23239, 316277},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{3570, -3672, 6157},0, {23239, 363791},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-97, -3349, 6157},0, {1065, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-3570, -3349, 6157},0, {20986, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-3570, -3672, 6157},0, {20986, 30991},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{3570, -3349, 6157},0, {-19974, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{3570, -3672, 6157},0, {-19974, 30991},{0x0, 0x0, 0x7F, 0xFF}}}, +}; + +Gfx castle_grounds_dl_Cube_001_mesh_tri_0[] = { + gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_0 + 0, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 22, 23, 20, 0), + gsSP2Triangles(22, 24, 23, 0, 25, 26, 27, 0), + gsSP2Triangles(25, 27, 28, 0, 29, 30, 31, 0), + gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_0 + 32, 28, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0), + gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0), + gsSP2Triangles(7, 9, 10, 0, 11, 12, 13, 0), + gsSP2Triangles(11, 13, 14, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 18, 16, 0, 19, 20, 21, 0), + gsSP2Triangles(19, 21, 22, 0, 23, 24, 25, 0), + gsSP2Triangles(25, 26, 23, 0, 25, 27, 26, 0), + gsSPEndDisplayList(), +}; + +Vtx castle_grounds_dl_Cube_001_mesh_vtx_1[8] = { + {{{-97, -3349, 6157},0, {1065, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-30, -989, 4794},0, {680, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-3570, -989, 4794},0, {20986, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-3570, -3349, 6157},0, {20986, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, + {{{-30, -989, 4794},0, {680, 139016},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{111, 162, 3186},0, {-133, -29917},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{-3570, 162, 3186},0, {20986, -29917},{0x0, 0x67, 0x4A, 0xFF}}}, + {{{-3570, -989, 4794},0, {20986, 139016},{0x0, 0x67, 0x4A, 0xFF}}}, +}; + +Gfx castle_grounds_dl_Cube_001_mesh_tri_1[] = { + gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_1 + 0, 8, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx castle_grounds_dl_loop_mesh_vtx_cull[8] = { + {{{-2128, -751, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-2128, -751, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-2128, 1225, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-2128, 1225, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-170, -751, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-170, -751, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-170, 1225, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-170, 1225, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, +}; + +Vtx castle_grounds_dl_loop_mesh_vtx_0[228] = { + {{{-2128, -751, 76},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-2128, -551, 76},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-2128, -551, -1381},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-2128, -751, -1381},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-2128, -551, -1381},0, {880, 496},{0x0, 0x79, 0x28, 0xFF}}}, + {{{-1382, -551, -1381},0, {624, 496},{0x0, 0x79, 0x28, 0xFF}}}, + {{{-1193, -411, -1801},0, {624, 496},{0x0, 0x79, 0x28, 0xFF}}}, + {{{-1939, -411, -1801},0, {880, 496},{0x0, 0x79, 0x28, 0xFF}}}, + {{{-1382, -751, -1381},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-1382, -551, -1381},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-1382, -551, 76},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-1382, -751, 76},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-1382, -751, 76},0, {368, 240},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-1382, -551, 76},0, {624, 240},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-2128, -551, 76},0, {624, -16},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-2128, -751, 76},0, {368, -16},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-2128, -751, -1381},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-1382, -751, -1381},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-1382, -751, 76},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-2128, -751, 76},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-1382, -551, -1381},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-2128, -551, -1381},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-2128, -551, 76},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-1382, -551, 76},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-1939, -411, -1801},0, {880, 496},{0x0, 0x5D, 0x57, 0xFF}}}, + {{{-1193, -411, -1801},0, {624, 496},{0x0, 0x5D, 0x57, 0xFF}}}, + {{{-1016, -126, -2106},0, {624, 496},{0x0, 0x5D, 0x57, 0xFF}}}, + {{{-1763, -126, -2106},0, {880, 496},{0x0, 0x5D, 0x57, 0xFF}}}, + {{{-2128, -751, -1381},0, {368, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, + {{{-2128, -551, -1381},0, {624, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, + {{{-1939, -411, -1801},0, {624, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, + {{{-1939, -611, -1801},0, {368, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, + {{{-1382, -551, -1381},0, {624, 496},{0x74, 0x0, 0x34, 0xFF}}}, + {{{-1382, -751, -1381},0, {368, 496},{0x74, 0x0, 0x34, 0xFF}}}, + {{{-1193, -611, -1801},0, {368, 496},{0x74, 0x0, 0x34, 0xFF}}}, + {{{-1193, -411, -1801},0, {624, 496},{0x74, 0x0, 0x34, 0xFF}}}, + {{{-1382, -751, -1381},0, {368, 496},{0x0, 0x87, 0xD8, 0xFF}}}, + {{{-2128, -751, -1381},0, {112, 496},{0x0, 0x87, 0xD8, 0xFF}}}, + {{{-1939, -611, -1801},0, {112, 496},{0x0, 0x87, 0xD8, 0xFF}}}, + {{{-1193, -611, -1801},0, {368, 496},{0x0, 0x87, 0xD8, 0xFF}}}, + {{{-1016, -126, -2106},0, {624, 496},{0x74, 0xDB, 0x25, 0xFF}}}, + {{{-1016, -326, -2106},0, {368, 496},{0x74, 0xDB, 0x25, 0xFF}}}, + {{{-806, 161, -2468},0, {368, 496},{0x74, 0xDB, 0x25, 0xFF}}}, + {{{-806, 161, -2268},0, {624, 496},{0x74, 0xDB, 0x25, 0xFF}}}, + {{{-1939, -611, -1801},0, {368, 752},{0x92, 0x0, 0xC0, 0xFF}}}, + {{{-1939, -411, -1801},0, {624, 752},{0x92, 0x0, 0xC0, 0xFF}}}, + {{{-1763, -126, -2106},0, {624, 752},{0x92, 0x0, 0xC0, 0xFF}}}, + {{{-1763, -326, -2106},0, {368, 752},{0x92, 0x0, 0xC0, 0xFF}}}, + {{{-1193, -411, -1801},0, {624, 496},{0x6E, 0x0, 0x40, 0xFF}}}, + {{{-1193, -611, -1801},0, {368, 496},{0x6E, 0x0, 0x40, 0xFF}}}, + {{{-1016, -326, -2106},0, {368, 496},{0x6E, 0x0, 0x40, 0xFF}}}, + {{{-1016, -126, -2106},0, {624, 496},{0x6E, 0x0, 0x40, 0xFF}}}, + {{{-1193, -611, -1801},0, {368, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, + {{{-1939, -611, -1801},0, {112, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, + {{{-1763, -326, -2106},0, {112, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, + {{{-1016, -326, -2106},0, {368, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, + {{{-806, 161, -2468},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-1552, 161, -2468},0, {112, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-1355, 457, -2468},0, {112, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-609, 457, -2468},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-1016, -326, -2106},0, {368, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, + {{{-1763, -326, -2106},0, {112, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, + {{{-1552, 161, -2468},0, {112, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, + {{{-806, 161, -2468},0, {368, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, + {{{-1763, -126, -2106},0, {880, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, + {{{-1016, -126, -2106},0, {624, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, + {{{-806, 161, -2268},0, {624, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, + {{{-1552, 161, -2268},0, {880, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, + {{{-1763, -326, -2106},0, {368, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, + {{{-1763, -126, -2106},0, {624, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, + {{{-1552, 161, -2268},0, {624, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, + {{{-1552, 161, -2468},0, {368, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, + {{{-1355, 457, -2268},0, {880, 496},{0x0, 0xC9, 0x73, 0xFF}}}, + {{{-609, 457, -2268},0, {624, 496},{0x0, 0xC9, 0x73, 0xFF}}}, + {{{-520, 870, -2070},0, {624, 496},{0x0, 0xC9, 0x73, 0xFF}}}, + {{{-1266, 870, -2070},0, {880, 496},{0x0, 0xC9, 0x73, 0xFF}}}, + {{{-1552, 161, -2268},0, {880, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-806, 161, -2268},0, {624, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-609, 457, -2268},0, {624, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-1355, 457, -2268},0, {880, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-1552, 161, -2468},0, {368, 752},{0x96, 0x46, 0x0, 0xFF}}}, + {{{-1552, 161, -2268},0, {624, 752},{0x96, 0x46, 0x0, 0xFF}}}, + {{{-1355, 457, -2268},0, {624, 752},{0x96, 0x46, 0x0, 0xFF}}}, + {{{-1355, 457, -2468},0, {368, 752},{0x96, 0x46, 0x0, 0xFF}}}, + {{{-806, 161, -2268},0, {624, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, + {{{-806, 161, -2468},0, {368, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, + {{{-609, 457, -2468},0, {368, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, + {{{-609, 457, -2268},0, {624, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, + {{{-520, 870, -2070},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 870, -2270},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 1225, -1764},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 1025, -1764},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 1225, -1152},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 1025, -1152},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 904, -694},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 904, -894},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 904, -894},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 904, -694},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 507, -480},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-520, 507, -680},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, + {{{-1355, 457, -2468},0, {368, 752},{0x84, 0x1A, 0x0, 0xFF}}}, + {{{-1355, 457, -2268},0, {624, 752},{0x84, 0x1A, 0x0, 0xFF}}}, + {{{-1266, 870, -2070},0, {624, 752},{0x84, 0x1A, 0x0, 0xFF}}}, + {{{-1266, 870, -2270},0, {368, 752},{0x84, 0x1A, 0x0, 0xFF}}}, + {{{-609, 457, -2268},0, {624, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, + {{{-609, 457, -2468},0, {368, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, + {{{-520, 870, -2270},0, {368, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, + {{{-520, 870, -2070},0, {624, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, + {{{-609, 457, -2468},0, {368, 496},{0x0, 0x37, 0x8D, 0xFF}}}, + {{{-1355, 457, -2468},0, {112, 496},{0x0, 0x37, 0x8D, 0xFF}}}, + {{{-1266, 870, -2270},0, {112, 496},{0x0, 0x37, 0x8D, 0xFF}}}, + {{{-520, 870, -2270},0, {368, 496},{0x0, 0x37, 0x8D, 0xFF}}}, + {{{-1266, 1025, -1764},0, {880, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-520, 1025, -1764},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-520, 1025, -1152},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-1266, 1025, -1152},0, {880, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-520, 870, -2270},0, {368, 496},{0x0, 0x68, 0xB7, 0xFF}}}, + {{{-1266, 870, -2270},0, {112, 496},{0x0, 0x68, 0xB7, 0xFF}}}, + {{{-1266, 1225, -1764},0, {112, 496},{0x0, 0x68, 0xB7, 0xFF}}}, + {{{-520, 1225, -1764},0, {368, 496},{0x0, 0x68, 0xB7, 0xFF}}}, + {{{-1266, 870, -2070},0, {880, 496},{0x0, 0x8E, 0x39, 0xFF}}}, + {{{-520, 870, -2070},0, {624, 496},{0x0, 0x8E, 0x39, 0xFF}}}, + {{{-520, 1025, -1764},0, {624, 496},{0x0, 0x8E, 0x39, 0xFF}}}, + {{{-1266, 1025, -1764},0, {880, 496},{0x0, 0x8E, 0x39, 0xFF}}}, + {{{-1266, 870, -2270},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 870, -2070},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1025, -1764},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1225, -1764},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1225, -1764},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1025, -1764},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1025, -1152},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1225, -1152},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1025, -1152},0, {880, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, + {{{-520, 1025, -1152},0, {624, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, + {{{-520, 904, -894},0, {624, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, + {{{-1266, 904, -894},0, {880, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, + {{{-520, 1225, -1764},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-1266, 1225, -1764},0, {112, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-1266, 1225, -1152},0, {112, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-520, 1225, -1152},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-1266, 1225, -1152},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 1025, -1152},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 904, -894},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 904, -694},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-520, 1225, -1152},0, {368, 496},{0x0, 0x68, 0x49, 0xFF}}}, + {{{-1266, 1225, -1152},0, {112, 496},{0x0, 0x68, 0x49, 0xFF}}}, + {{{-1266, 904, -694},0, {112, 496},{0x0, 0x68, 0x49, 0xFF}}}, + {{{-520, 904, -694},0, {368, 496},{0x0, 0x68, 0x49, 0xFF}}}, + {{{-1266, 507, -680},0, {880, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-520, 507, -680},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-312, 177, -680},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-1058, 177, -680},0, {880, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-520, 904, -694},0, {368, 496},{0x0, 0x3C, 0x70, 0xFF}}}, + {{{-1266, 904, -694},0, {112, 496},{0x0, 0x3C, 0x70, 0xFF}}}, + {{{-1266, 507, -480},0, {112, 496},{0x0, 0x3C, 0x70, 0xFF}}}, + {{{-520, 507, -480},0, {368, 496},{0x0, 0x3C, 0x70, 0xFF}}}, + {{{-1266, 904, -894},0, {880, 496},{0x0, 0xC4, 0x90, 0xFF}}}, + {{{-520, 904, -894},0, {624, 496},{0x0, 0xC4, 0x90, 0xFF}}}, + {{{-520, 507, -680},0, {624, 496},{0x0, 0xC4, 0x90, 0xFF}}}, + {{{-1266, 507, -680},0, {880, 496},{0x0, 0xC4, 0x90, 0xFF}}}, + {{{-1266, 904, -694},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 904, -894},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 507, -680},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1266, 507, -480},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, + {{{-1058, 177, -480},0, {368, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, + {{{-1058, 177, -680},0, {624, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, + {{{-987, -178, -884},0, {624, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, + {{{-987, -378, -884},0, {368, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, + {{{-1266, 507, -480},0, {368, 752},{0x95, 0xBC, 0x0, 0xFF}}}, + {{{-1266, 507, -680},0, {624, 752},{0x95, 0xBC, 0x0, 0xFF}}}, + {{{-1058, 177, -680},0, {624, 752},{0x95, 0xBC, 0x0, 0xFF}}}, + {{{-1058, 177, -480},0, {368, 752},{0x95, 0xBC, 0x0, 0xFF}}}, + {{{-520, 507, -680},0, {624, 496},{0x6B, 0x44, 0x0, 0xFF}}}, + {{{-520, 507, -480},0, {368, 496},{0x6B, 0x44, 0x0, 0xFF}}}, + {{{-312, 177, -480},0, {368, 496},{0x6B, 0x44, 0x0, 0xFF}}}, + {{{-312, 177, -680},0, {624, 496},{0x6B, 0x44, 0x0, 0xFF}}}, + {{{-520, 507, -480},0, {368, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-1266, 507, -480},0, {112, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-1058, 177, -480},0, {112, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-312, 177, -480},0, {368, 496},{0x0, 0x0, 0x7F, 0xFF}}}, + {{{-241, -178, -884},0, {624, 496},{0x7F, 0x0, 0xA, 0xFF}}}, + {{{-241, -378, -884},0, {368, 496},{0x7F, 0x0, 0xA, 0xFF}}}, + {{{-218, -638, -1163},0, {368, 496},{0x7F, 0x0, 0xA, 0xFF}}}, + {{{-218, -438, -1163},0, {624, 496},{0x7F, 0x0, 0xA, 0xFF}}}, + {{{-312, 177, -680},0, {624, 496},{0x7E, 0xB, 0xB, 0xFF}}}, + {{{-312, 177, -480},0, {368, 496},{0x7E, 0xB, 0xB, 0xFF}}}, + {{{-241, -378, -884},0, {368, 496},{0x7E, 0xB, 0xB, 0xFF}}}, + {{{-241, -178, -884},0, {624, 496},{0x7E, 0xB, 0xB, 0xFF}}}, + {{{-312, 177, -480},0, {368, 496},{0x0, 0xB5, 0x67, 0xFF}}}, + {{{-1058, 177, -480},0, {112, 496},{0x0, 0xB5, 0x67, 0xFF}}}, + {{{-987, -378, -884},0, {112, 496},{0x0, 0xB5, 0x67, 0xFF}}}, + {{{-241, -378, -884},0, {368, 496},{0x0, 0xB5, 0x67, 0xFF}}}, + {{{-1058, 177, -680},0, {880, 496},{0x0, 0x3F, 0x92, 0xFF}}}, + {{{-312, 177, -680},0, {624, 496},{0x0, 0x3F, 0x92, 0xFF}}}, + {{{-241, -178, -884},0, {624, 496},{0x0, 0x3F, 0x92, 0xFF}}}, + {{{-987, -178, -884},0, {880, 496},{0x0, 0x3F, 0x92, 0xFF}}}, + {{{-965, -438, -1163},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-218, -438, -1163},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-170, -438, -3513},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-917, -438, -3513},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-241, -378, -884},0, {368, 496},{0x0, 0xA3, 0x57, 0xFF}}}, + {{{-987, -378, -884},0, {112, 496},{0x0, 0xA3, 0x57, 0xFF}}}, + {{{-965, -638, -1163},0, {112, 496},{0x0, 0xA3, 0x57, 0xFF}}}, + {{{-218, -638, -1163},0, {368, 496},{0x0, 0xA3, 0x57, 0xFF}}}, + {{{-987, -178, -884},0, {880, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, + {{{-241, -178, -884},0, {624, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, + {{{-218, -438, -1163},0, {624, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, + {{{-965, -438, -1163},0, {880, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, + {{{-987, -378, -884},0, {368, 752},{0x81, 0x0, 0xF6, 0xFF}}}, + {{{-987, -178, -884},0, {624, 752},{0x81, 0x0, 0xF6, 0xFF}}}, + {{{-965, -438, -1163},0, {624, 752},{0x81, 0x0, 0xF6, 0xFF}}}, + {{{-965, -638, -1163},0, {368, 752},{0x81, 0x0, 0xF6, 0xFF}}}, + {{{-917, -638, -3513},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-917, -438, -3513},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-170, -438, -3513},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-170, -638, -3513},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, + {{{-965, -638, -1163},0, {368, 752},{0x81, 0x0, 0xFE, 0xFF}}}, + {{{-965, -438, -1163},0, {624, 752},{0x81, 0x0, 0xFE, 0xFF}}}, + {{{-917, -438, -3513},0, {624, 752},{0x81, 0x0, 0xFE, 0xFF}}}, + {{{-917, -638, -3513},0, {368, 752},{0x81, 0x0, 0xFE, 0xFF}}}, + {{{-218, -438, -1163},0, {624, 496},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{-218, -638, -1163},0, {368, 496},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{-170, -638, -3513},0, {368, 496},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{-170, -438, -3513},0, {624, 496},{0x7F, 0x0, 0x2, 0xFF}}}, + {{{-218, -638, -1163},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-965, -638, -1163},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-917, -638, -3513},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, + {{{-170, -638, -3513},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, +}; + +Gfx castle_grounds_dl_loop_mesh_tri_0[] = { + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 0, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 32, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 64, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(27, 26, 28, 0, 27, 28, 29, 0), + gsSP2Triangles(29, 28, 30, 0, 29, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 96, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 128, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 160, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 192, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 224, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull[8] = { + {{{-4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{-4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, + {{{4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, +}; + +Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0[4] = { + {{{-4428, 0, 3204},0, {-1901, 2893},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{4428, 0, 3204},0, {2893, 2893},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{4428, 0, -3204},0, {2893, -1901},{0x0, 0x7F, 0x0, 0xFF}}}, + {{{-4428, 0, -3204},0, {-1901, -1901},{0x0, 0x7F, 0x0, 0xFF}}}, +}; + +Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0[] = { + gsSPVertex(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0 + 0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx mat_castle_grounds_dl_ground[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(castle_grounds_dl_ground_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_castle_grounds_dl_floor[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, castle_grounds_dl_rocktextso_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPSetLights1(castle_grounds_dl_floor_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_castle_grounds_dl_slippery[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(castle_grounds_dl_slippery_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_castle_grounds_dl_water_001_layer5_area1[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetFogColor(0, 0, 0, 255), + gsSPFogPosition(970, 1000), + gsSPSetGeometryMode(G_FOG), + gsSPClearGeometryMode(G_CULL_BACK), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_8b_LOAD_BLOCK, 1, castle_grounds_dl_testwater_ia8), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 511, 512), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsDPSetPrimColor(0, 0, 45, 185, 254, 255), + gsSPSetLights1(castle_grounds_dl_water_001_layer5_area1_lights), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_castle_grounds_dl_water_001_layer5_area1[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_FOG), + gsSPSetGeometryMode(G_CULL_BACK), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), + gsSPEndDisplayList(), +}; + +Gfx castle_grounds_dl_Cube_mesh[] = { + gsSPClearGeometryMode(G_LIGHTING), + gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_cull + 0, 8, 0), + gsSPSetGeometryMode(G_LIGHTING), + gsSPCullDisplayList(0, 7), + gsSPDisplayList(mat_castle_grounds_dl_ground), + gsSPDisplayList(castle_grounds_dl_Cube_mesh_tri_0), + gsSPEndDisplayList(), +}; + +Gfx castle_grounds_dl_Cube_001_mesh[] = { + gsSPClearGeometryMode(G_LIGHTING), + gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_cull + 0, 8, 0), + gsSPSetGeometryMode(G_LIGHTING), + gsSPCullDisplayList(0, 7), + gsSPDisplayList(mat_castle_grounds_dl_floor), + gsSPDisplayList(castle_grounds_dl_Cube_001_mesh_tri_0), + gsSPDisplayList(mat_castle_grounds_dl_slippery), + gsSPDisplayList(castle_grounds_dl_Cube_001_mesh_tri_1), + gsSPEndDisplayList(), +}; + +Gfx castle_grounds_dl_loop_mesh[] = { + gsSPClearGeometryMode(G_LIGHTING), + gsSPVertex(castle_grounds_dl_loop_mesh_vtx_cull + 0, 8, 0), + gsSPSetGeometryMode(G_LIGHTING), + gsSPCullDisplayList(0, 7), + gsSPDisplayList(mat_castle_grounds_dl_ground), + gsSPDisplayList(castle_grounds_dl_loop_mesh_tri_0), + gsSPEndDisplayList(), +}; + +Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5[] = { + gsSPClearGeometryMode(G_LIGHTING), + gsSPVertex(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull + 0, 8, 0), + gsSPSetGeometryMode(G_LIGHTING), + gsSPCullDisplayList(0, 7), + gsSPDisplayList(mat_castle_grounds_dl_water_001_layer5_area1), + gsSPDisplayList(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0), + gsSPDisplayList(mat_revert_castle_grounds_dl_water_001_layer5_area1), + gsSPEndDisplayList(), +}; + +Gfx castle_grounds_dl_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/levels/castle_grounds/texture_include.inc.c b/levels/castle_grounds/texture_include.inc.c new file mode 100644 index 00000000..7ff16711 --- /dev/null +++ b/levels/castle_grounds/texture_include.inc.c @@ -0,0 +1,10 @@ +Gfx castle_grounds_dl_rocktextso_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 castle_grounds_dl_rocktextso_rgba16[] = { + #include "levels/castle_grounds/rocktextso.rgba16.inc.c" +}; + +Gfx castle_grounds_dl_testwater_ia8_aligner[] = {gsSPEndDisplayList()}; +u8 castle_grounds_dl_testwater_ia8[] = { + #include "levels/castle_grounds/testwater.ia8.inc.c" +}; + diff --git a/levels/course_defines.h b/levels/course_defines.h index 600cead4..5f64f56b 100644 --- a/levels/course_defines.h +++ b/levels/course_defines.h @@ -10,30 +10,30 @@ * 3: Bowser keys and the grand star * 4: Default, used for 100 coin stars, 8 red coin stars in bowser levels, and secret stars */ -DEFINE_COURSE(COURSE_NONE, 0x44444440) // (0) Course Hub (Castle Grounds) -DEFINE_COURSE(COURSE_BOB, 0x00022240) // (1) Bob Omb Battlefield -DEFINE_COURSE(COURSE_WF, 0x00002040) // (2) Whomp's Fortress -DEFINE_COURSE(COURSE_JRB, 0x22222240) // (3) Jolly Rodger's Bay -DEFINE_COURSE(COURSE_CCM, 0x00220040) // (4) Cool Cool Mountain -DEFINE_COURSE(COURSE_BBH, 0x22222240) // (5) Big Boo's Haunt -DEFINE_COURSE(COURSE_HMC, 0x22222240) // (6) Hazy Maze Cave -DEFINE_COURSE(COURSE_LLL, 0x21212140) // (7) Lethal Lava Land -DEFINE_COURSE(COURSE_SSL, 0x20222240) // (8) Shifting Sand Land -DEFINE_COURSE(COURSE_DDD, 0x22222240) // (9) Dire Dire Docks -DEFINE_COURSE(COURSE_SL, 0x02020240) // (10) Snowman's Land -DEFINE_COURSE(COURSE_WDW, 0x22102240) // (11) Wet Dry World -DEFINE_COURSE(COURSE_TTM, 0x00000040) // (12) Tall Tall Mountain -DEFINE_COURSE(COURSE_THI, 0x11112140) // (13) Tiny Huge Island -DEFINE_COURSE(COURSE_TTC, 0x22222240) // (14) Tick Tock Clock -DEFINE_COURSE(COURSE_RR, 0x00000040) // (15) Rainbow Ride +DEFINE_COURSE(COURSE_NONE, 0x44444440) // (0) Course Hub (Castle Grounds) +DEFINE_COURSE(COURSE_BOB, 0x00022240) // (1) Bob Omb Battlefield +DEFINE_COURSE(COURSE_WF, 0x00002040) // (2) Whomp's Fortress +DEFINE_COURSE(COURSE_JRB, 0x22222240) // (3) Jolly Rodger's Bay +DEFINE_COURSE(COURSE_CCM, 0x00220040) // (4) Cool Cool Mountain +DEFINE_COURSE(COURSE_BBH, 0x22222240) // (5) Big Boo's Haunt +DEFINE_COURSE(COURSE_HMC, 0x22222240) // (6) Hazy Maze Cave +DEFINE_COURSE(COURSE_LLL, 0x21212140) // (7) Lethal Lava Land +DEFINE_COURSE(COURSE_SSL, 0x20222240) // (8) Shifting Sand Land +DEFINE_COURSE(COURSE_DDD, 0x22222240) // (9) Dire Dire Docks +DEFINE_COURSE(COURSE_SL, 0x02020240) // (10) Snowman's Land +DEFINE_COURSE(COURSE_WDW, 0x22102240) // (11) Wet Dry World +DEFINE_COURSE(COURSE_TTM, 0x00000040) // (12) Tall Tall Mountain +DEFINE_COURSE(COURSE_THI, 0x11112140) // (13) Tiny Huge Island +DEFINE_COURSE(COURSE_TTC, 0x22222240) // (14) Tick Tock Clock +DEFINE_COURSE(COURSE_RR, 0x00000040) // (15) Rainbow Ride DEFINE_COURSES_END() -DEFINE_BONUS_COURSE(COURSE_BITDW, 0x34444440) // (16) Bowser in the Dark World -DEFINE_BONUS_COURSE(COURSE_BITFS, 0x34444440) // (17) Bowser in the Fire Sea -DEFINE_BONUS_COURSE(COURSE_BITS, 0x34444440) // (18) Bowser in the Sky -DEFINE_BONUS_COURSE(COURSE_PSS, 0x24444440) // (19) Princess's Secret Slide -DEFINE_BONUS_COURSE(COURSE_COTMC, 0x44444440) // (20) Cavern of the Metal Cap -DEFINE_BONUS_COURSE(COURSE_TOTWC, 0x04444440) // (21) Tower of the Wing Cap -DEFINE_BONUS_COURSE(COURSE_VCUTM, 0x24444440) // (22) Vanish Cap Under the Moat -DEFINE_BONUS_COURSE(COURSE_WMOTR, 0x04444440) // (23) Winged Mario over the Rainbow -DEFINE_BONUS_COURSE(COURSE_SA, 0x24444440) // (24) Secret Aquarium +DEFINE_BONUS_COURSE(COURSE_BITDW, 0x34444440) // (16) Bowser in the Dark World +DEFINE_BONUS_COURSE(COURSE_BITFS, 0x34444440) // (17) Bowser in the Fire Sea +DEFINE_BONUS_COURSE(COURSE_BITS, 0x34444440) // (18) Bowser in the Sky +DEFINE_BONUS_COURSE(COURSE_PSS, 0x24444440) // (19) Princess's Secret Slide +DEFINE_BONUS_COURSE(COURSE_COTMC, 0x44444440) // (20) Cavern of the Metal Cap +DEFINE_BONUS_COURSE(COURSE_TOTWC, 0x04444440) // (21) Tower of the Wing Cap +DEFINE_BONUS_COURSE(COURSE_VCUTM, 0x24444440) // (22) Vanish Cap Under the Moat +DEFINE_BONUS_COURSE(COURSE_WMOTR, 0x04444440) // (23) Winged Mario over the Rainbow +DEFINE_BONUS_COURSE(COURSE_SA, 0x24444440) // (24) Secret Aquarium DEFINE_BONUS_COURSE(COURSE_CAKE_END, 0x44444440) // (25) The End (Cake Scene) diff --git a/levels/ending/cake.png b/levels/ending/cake.png new file mode 100644 index 00000000..0b0beb7d Binary files /dev/null and b/levels/ending/cake.png differ diff --git a/levels/intro/geo.c b/levels/intro/geo.c index 30a87806..7c007f98 100644 --- a/levels/intro/geo.c +++ b/levels/intro/geo.c @@ -32,13 +32,13 @@ const GeoLayout intro_geo_0002D0[] = { GEO_OPEN_NODE(), GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000), GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_super_mario_64_logo), + GEO_ASM(0, geo_title_screen), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_tm_copyright), + GEO_ASM(0, geo_fade_transition), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -52,10 +52,7 @@ const GeoLayout intro_geo_mario_head_regular[] = { GEO_OPEN_NODE(), GEO_NODE_ORTHO(100), GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_regular_backdrop), -#ifdef VERSION_SH - GEO_ASM(0, geo_intro_face_easter_egg), -#endif + GEO_ASM(0, geo_intro_backdrop), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_ZBUFFER(1), @@ -65,12 +62,6 @@ const GeoLayout intro_geo_mario_head_regular[] = { GEO_ASM(2, geo_draw_mario_head_goddard), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), -#ifdef VERSION_SH - GEO_ZBUFFER(0), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_rumble_pak_graphic), - GEO_CLOSE_NODE(), -#endif GEO_CLOSE_NODE(), GEO_END(), }; @@ -83,10 +74,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { GEO_OPEN_NODE(), GEO_NODE_ORTHO(100), GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_gameover_backdrop), -#ifdef VERSION_SH - GEO_ASM(0, geo_intro_face_easter_egg), -#endif + GEO_ASM(0, geo_game_over_tile), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_ZBUFFER(1), @@ -96,12 +84,6 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { GEO_ASM(3, geo_draw_mario_head_goddard), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), -#ifdef VERSION_SH - GEO_ZBUFFER(0), - GEO_OPEN_NODE(), - GEO_ASM(1, geo_intro_rumble_pak_graphic), - GEO_CLOSE_NODE(), -#endif GEO_CLOSE_NODE(), GEO_END(), }; @@ -114,7 +96,7 @@ const GeoLayout intro_geo_000414[] = { GEO_OPEN_NODE(), GEO_NODE_ORTHO(100), GEO_OPEN_NODE(), - GEO_ASM(0, geo_intro_regular_backdrop), + GEO_ASM(0, geo_intro_backdrop), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_ZBUFFER(1), diff --git a/levels/intro/geo.c.rej b/levels/intro/geo.c.rej new file mode 100644 index 00000000..679568b0 --- /dev/null +++ b/levels/intro/geo.c.rej @@ -0,0 +1,76 @@ +diff a/levels/intro/geo.c b/levels/intro/geo.c (rejected hunks) +@@ -32,13 +32,13 @@ const GeoLayout intro_geo_0002D0[] = { + GEO_OPEN_NODE(), + GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_super_mario_64_logo), ++ GEO_ASM(0, geo_title_screen), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(0), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_tm_copyright), ++ GEO_ASM(0, geo_fade_transition), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_END(), +@@ -52,10 +52,7 @@ const GeoLayout intro_geo_mario_head_regular[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_regular_backdrop), +-#ifdef VERSION_SH +- GEO_ASM(0, geo_intro_face_easter_egg), +-#endif ++ GEO_ASM(0, geo_intro_backdrop), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), +@@ -65,12 +62,6 @@ const GeoLayout intro_geo_mario_head_regular[] = { + GEO_ASM(2, geo_draw_mario_head_goddard), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), +-#ifdef VERSION_SH +- GEO_ZBUFFER(0), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_rumble_pak_graphic), +- GEO_CLOSE_NODE(), +-#endif + GEO_CLOSE_NODE(), + GEO_END(), + }; +@@ -83,10 +74,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_gameover_backdrop), +-#ifdef VERSION_SH +- GEO_ASM(0, geo_intro_face_easter_egg), +-#endif ++ GEO_ASM(0, geo_game_over_tile), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), +@@ -96,12 +84,6 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { + GEO_ASM(3, geo_draw_mario_head_goddard), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), +-#ifdef VERSION_SH +- GEO_ZBUFFER(0), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_intro_rumble_pak_graphic), +- GEO_CLOSE_NODE(), +-#endif + GEO_CLOSE_NODE(), + GEO_END(), + }; +@@ -114,7 +96,7 @@ const GeoLayout intro_geo_000414[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_regular_backdrop), ++ GEO_ASM(0, geo_intro_backdrop), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), diff --git a/levels/intro/header.h.rej b/levels/intro/header.h.rej new file mode 100644 index 00000000..a6074bc9 --- /dev/null +++ b/levels/intro/header.h.rej @@ -0,0 +1,18 @@ +diff a/levels/intro/header.h b/levels/intro/header.h (rejected hunks) +@@ -14,6 +14,16 @@ extern const Gfx intro_seg7_dl_0700B3A0[]; + extern const Gfx intro_seg7_dl_0700C6A0[]; + extern const f32 intro_seg7_table_0700C790[]; + extern const f32 intro_seg7_table_0700C880[]; ++extern Vtx titlesonic_Text_mesh_vtx_0[1426]; ++extern Gfx titlesonic_Text_mesh_tri_0[]; ++extern Vtx titlesonic_Text_mesh_vtx_1[638]; ++extern Gfx titlesonic_Text_mesh_tri_1[]; ++ ++ ++ ++//extern Gfx titlesonic_Text_mesh[]; ++ ++ + + // script + extern const LevelScript level_intro_entry_1[]; diff --git a/levels/intro/leveldata.c b/levels/intro/leveldata.c index 7a4474d2..dd45a7dd 100644 --- a/levels/intro/leveldata.c +++ b/levels/intro/leveldata.c @@ -1,10 +1,3954 @@ -#include -#include - -#include "macros.h" -#include "types.h" +#include +#include "sm64.h" +#include "surface_terrains.h" +#include "moving_texture_macros.h" +#include "level_misc_macros.h" +#include "macro_preset_names.h" +#include "special_preset_names.h" +#include "textures.h" #include "make_const_nonconst.h" +Lights1 titlesonic_sm64_material_001_lights = gdSPDefLights1( + 0x0, 0x0, 0x7F, + 0x0, 0x0, 0xFE, 0x28, 0x28, 0x28); + +Lights1 titlesonic_sm64_material_002_lights = gdSPDefLights1( + 0x7F, 0x73, 0x0, + 0xFE, 0xE6, 0x0, 0x28, 0x28, 0x28); + +Vtx titlesonic_Text_mesh_vtx_0[1426] = { + { { { 273, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 336, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 273, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 315, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 315, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 368, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 410, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 352, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 410, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 368, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 136, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 188, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 158, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 161, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 137, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 179, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 240, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 188, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 201, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 216, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 262, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 214, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 52, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 105, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 52, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 105, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 42, -386, 171 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -80, -386, 171 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -43, -515, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 5, -515, 201 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -143, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -90, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -143, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -90, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -169, -496, 196 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -208, -471, 190 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -154, -451, 186 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -202, -451, 186 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -208, -431, 181 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -422, 179 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -169, -405, 175 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -386, 171 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -479, 192 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -420, 178 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -420, 178 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -386, 171 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -412, -386, 171 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -412, -515, 201 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -481, 193 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -481, 193 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -433, 182 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -469, 190 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -402, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -553, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -547, -423, 179 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -622, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -567, -434, 182 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -579, -450, 186 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -575, -467, 190 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -553, -517, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -538, -468, 190 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -523, -455, 187 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -523, -431, 181 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -685, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -633, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -685, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -633, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -791, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -791, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -738, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -696, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -754, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -696, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -738, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -970, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -918, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -933, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -945, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -969, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -927, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -918, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -905, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -890, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -844, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -892, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1058, -384, 170 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1017, -420, 178 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1045, -418, 178 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1117, -426, 180 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1064, -424, 179 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1060, -431, 181 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -459, 188 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1039, -434, 182 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1013, -445, 184 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1002, -473, 191 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1075, -467, 190 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1057, -470, 190 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1054, -478, 192 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1110, -514, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1052, -516, 201 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1115, -475, 182 },0,{ -16, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, + { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, + { { { -1117, -525, -21 },0,{ -16, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, + { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, + { { { -1111, -470, 186 },0,{ -16, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, + { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, + { { { -1106, -464, 188 },0,{ -16, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, + { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, + { { { -1101, -459, 188 },0,{ -16, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, + { { { -1117, -426, 180 },0,{ 38, -16 },{ 0xEE, 0x1D, 0x7A, 0xFF } } }, + { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, + { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, + { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, + { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, + { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, + { { { -1058, -384, 170 },0,{ 146, -16 },{ 0xFE, 0x30, 0x76, 0xFF } } }, + { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, + { { { -1007, -387, 171 },0,{ 200, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, + { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, + { { { -1017, -420, 178 },0,{ 253, -16 },{ 0x9, 0x11, 0x7E, 0xFF } } }, + { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, + { { { -1045, -418, 178 },0,{ 307, -16 },{ 0x2, 0xA, 0x7F, 0xFF } } }, + { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, + { { { -1064, -424, 179 },0,{ 361, -16 },{ 0xC, 0x19, 0x7C, 0xFF } } }, + { { { -1060, -431, 181 },0,{ 415, -16 },{ 0xA, 0x2C, 0x77, 0xFF } } }, + { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, + { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, + { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, + { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, + { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, + { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, + { { { -1013, -445, 184 },0,{ 523, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, + { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, + { { { -1002, -473, 191 },0,{ 577, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, + { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, + { { { -1016, -504, 198 },0,{ 631, -16 },{ 0xC, 0x10, 0x7D, 0xFF } } }, + { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, + { { { -1052, -516, 201 },0,{ 685, -16 },{ 0x3, 0xA, 0x7F, 0xFF } } }, + { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, + { { { -1110, -514, 201 },0,{ 739, -16 },{ 0xF6, 0x16, 0x7D, 0xFF } } }, + { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, + { { { -1100, -482, 193 },0,{ 792, -16 },{ 0xF6, 0x2A, 0x78, 0xFF } } }, + { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, + { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, + { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, + { { { -1057, -470, 190 },0,{ 900, -16 },{ 0xF5, 0x10, 0x7E, 0xFF } } }, + { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, + { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, + { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, + { { { -1075, -467, 190 },0,{ 954, -16 },{ 0xFB, 0xA, 0x7F, 0xFF } } }, + { { { -1106, -464, 188 },0,{ 1008, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, + { { { -1101, -459, 188 },0,{ 1008, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, + { { { -1111, -470, 186 },0,{ 1008, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, + { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, + { { { -1115, -475, 182 },0,{ 1008, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, + { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, + { { { -1117, -525, -21 },0,{ 1008, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, + { { { -1080, -537, -18 },0,{ 954, 803 },{ 0xE3, 0x88, 0x1E, 0xFF } } }, + { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, + { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, + { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, + { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, + { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, + { { { -1084, -509, -25 },0,{ 846, 803 },{ 0x43, 0x69, 0xE7, 0xFF } } }, + { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, + { { { -1116, -512, -24 },0,{ 792, 803 },{ 0xB1, 0x61, 0xEC, 0xFF } } }, + { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, + { { { -1139, -584, -7 },0,{ 739, 803 },{ 0x98, 0xBA, 0x14, 0xFF } } }, + { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, + { { { -1049, -587, -7 },0,{ 685, 803 },{ 0x13, 0x86, 0x1F, 0xFF } } }, + { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, + { { { -1000, -571, -11 },0,{ 631, 803 },{ 0x55, 0xA5, 0x18, 0xFF } } }, + { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, + { { { -978, -523, -22 },0,{ 577, 803 },{ 0x7F, 0xFD, 0x3, 0xFF } } }, + { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, + { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, + { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, + { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, + { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, + { { { -1033, -463, -36 },0,{ 469, 803 },{ 0x22, 0x78, 0xE6, 0xFF } } }, + { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, + { { { -1046, -461, -36 },0,{ 415, 803 },{ 0x98, 0x47, 0xF0, 0xFF } } }, + { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, + { { { -1032, -486, -31 },0,{ 361, 803 },{ 0x8A, 0x2D, 0xF2, 0xFF } } }, + { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, + { { { -1042, -489, -30 },0,{ 307, 803 },{ 0x82, 0xF0, 0x4, 0xFF } } }, + { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, + { { { -1001, -491, -29 },0,{ 253, 803 },{ 0x4B, 0x9D, 0x1A, 0xFF } } }, + { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, + { { { -980, -417, -47 },0,{ 200, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, + { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, + { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, + { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, + { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, + { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, + { { { -1115, -427, -44 },0,{ 92, 803 },{ 0xB1, 0x61, 0xEB, 0xFF } } }, + { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, + { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, + { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, + { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, + { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, + { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, + { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, + { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, + { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, + { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, + { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, + { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, + { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, + { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, + { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, + { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, + { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, + { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, + { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, + { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, + { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, + { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, + { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, + { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, + { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, + { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, + { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, + { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, + { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, + { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, + { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, + { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, + { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, + { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, + { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, + { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, + { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, + { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, + { { { -1067, -482, 189 },0,{ 900, 394 },{ 0x67, 0xBF, 0x25, 0xFF } } }, + { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, + { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, + { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, + { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, + { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, + { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, + { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, + { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, + { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, + { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, + { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, + { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, + { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, + { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, + { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, + { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, + { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, + { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, + { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, + { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, + { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, + { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, + { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, + { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, + { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, + { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, + { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, + { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, + { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, + { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, + { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, + { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, + { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, + { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, + { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, + { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, + { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, + { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, + { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, + { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, + { { { -983, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, + { { { -985, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { -979, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, + { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { -974, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, + { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { -969, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { -990, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, + { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, + { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, + { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, + { { { -918, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, + { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, + { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, + { { { -865, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, + { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { -844, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, + { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, + { { { -865, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, + { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, + { { { -918, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, + { { { -974, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, + { { { -969, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { -979, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, + { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, + { { { -985, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { -918, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, + { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, + { { { -849, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, + { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, + { { { -820, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, + { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, + { { { -849, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, + { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, + { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, + { { { -848, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, + { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, + { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, + { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, + { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, + { { { -987, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, + { { { -984, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, + { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, + { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, + { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, + { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, + { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, + { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, + { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, + { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, + { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, + { { { -829, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, + { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, + { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { -855, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, + { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, + { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, + { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, + { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, + { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, + { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, + { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, + { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, + { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, + { { { -912, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, + { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, + { { { -912, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, + { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, + { { { -911, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, + { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, + { { { -911, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, + { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, + { { { -911, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, + { { { -933, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, + { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, + { { { -948, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, + { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, + { { { -945, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, + { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, + { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, + { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, + { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, + { { { -905, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, + { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, + { { { -890, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, + { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, + { { { -892, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, + { { { -911, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, + { { { -911, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, + { { { -911, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, + { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, + { { { -912, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, + { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, + { { { -912, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, + { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, + { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, + { { { -913, -496, -35 },0,{ 880, 1008 },{ 0x7D, 0x9, 0xE9, 0xFF } } }, + { { { -913, -495, -35 },0,{ 752, 1008 },{ 0x18, 0x7A, 0xE5, 0xFF } } }, + { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, + { { { -918, -501, -34 },0,{ 624, 1008 },{ 0xB8, 0x68, 0xFC, 0xFF } } }, + { { { -925, -503, -26 },0,{ 496, 803 },{ 0xD2, 0x74, 0xE6, 0xFF } } }, + { { { -925, -504, -34 },0,{ 496, 1008 },{ 0x82, 0x13, 0xFE, 0xFF } } }, + { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, + { { { -924, -504, -33 },0,{ 368, 1008 },{ 0xC8, 0x8E, 0x7, 0xFF } } }, + { { { -926, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, + { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, + { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, + { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, + { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, + { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, + { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, + { { { -925, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, + { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, + { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, + { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, + { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, + { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, + { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, + { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, + { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, + { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, + { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, + { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, + { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, + { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { -904, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, + { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, + { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, + { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, + { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, + { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { -909, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, + { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, + { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, + { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, + { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, + { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, + { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, + { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, + { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, + { { { -773, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -769, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -778, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -784, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -791, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -833, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -833, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, + { { { -770, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, + { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -738, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -696, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -696, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, + { { { -754, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, + { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, + { { { -791, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, + { { { -784, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -791, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, + { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, + { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -773, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, + { { { -769, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -769, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, + { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, + { { { -766, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, + { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -674, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -674, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -760, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, + { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, + { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, + { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, + { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, + { { { -757, -415, -47 },0,{ 291, 803 },{ 0x5D, 0x54, 0xED, 0xFF } } }, + { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -855, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, + { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, + { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, + { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, + { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -683, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -683, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -762, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, + { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, + { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, + { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, + { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, + { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, + { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, + { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, + { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, + { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, + { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -614, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -611, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -619, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -633, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -685, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -685, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -633, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -626, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -633, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -619, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -614, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -611, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { -704, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -707, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -699, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, + { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, + { { { -619, -562, -13 },0,{ -16, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, + { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, + { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, + { { { -613, -507, 195 },0,{ -16, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, + { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { -608, -502, 197 },0,{ -16, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, + { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { -603, -496, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { -622, -449, 185 },0,{ 48, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, + { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { -603, -402, 174 },0,{ 112, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, + { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, + { { { -553, -381, 169 },0,{ 176, -16 },{ 0xFD, 0x2F, 0x76, 0xFF } } }, + { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, + { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, + { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, + { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, + { { { -523, -431, 181 },0,{ 304, -16 },{ 0x3, 0x13, 0x7E, 0xFF } } }, + { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, + { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, + { { { -531, -425, 180 },0,{ 368, -16 },{ 0xF9, 0xC, 0x7E, 0xFF } } }, + { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, + { { { -547, -423, 179 },0,{ 432, -16 },{ 0x4, 0xB, 0x7E, 0xFF } } }, + { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, + { { { -567, -434, 182 },0,{ 496, -16 },{ 0xD, 0xF, 0x7D, 0xFF } } }, + { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, + { { { -579, -450, 186 },0,{ 560, -16 },{ 0x12, 0x1A, 0x7B, 0xFF } } }, + { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, + { { { -575, -467, 190 },0,{ 624, -16 },{ 0xE, 0x28, 0x78, 0xFF } } }, + { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, + { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, + { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, + { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, + { { { -538, -468, 190 },0,{ 752, -16 },{ 0xF6, 0x2E, 0x76, 0xFF } } }, + { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, + { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, + { { { -523, -455, 187 },0,{ 816, -16 },{ 0x3, 0x28, 0x79, 0xFF } } }, + { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, + { { { -502, -511, 200 },0,{ 880, -16 },{ 0xB, 0x17, 0x7C, 0xFF } } }, + { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, + { { { -553, -517, 201 },0,{ 944, -16 },{ 0xFD, 0xA, 0x7F, 0xFF } } }, + { { { -608, -502, 197 },0,{ 1008, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, + { { { -603, -496, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { -613, -507, 195 },0,{ 1008, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, + { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, + { { { -617, -512, 191 },0,{ 1008, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, + { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, + { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, + { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, + { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, + { { { -556, -588, -6 },0,{ 944, 803 },{ 0xEE, 0x86, 0x1F, 0xFF } } }, + { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, + { { { -472, -578, -9 },0,{ 880, 803 },{ 0x6C, 0xC0, 0x12, 0xFF } } }, + { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, + { { { -514, -470, -34 },0,{ 816, 803 },{ 0x20, 0x78, 0xE7, 0xFF } } }, + { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, + { { { -549, -499, -27 },0,{ 752, 803 },{ 0xC2, 0x6D, 0xE9, 0xFF } } }, + { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, + { { { -557, -501, -27 },0,{ 688, 803 },{ 0xB, 0x7C, 0xE5, 0xFF } } }, + { { { -556, -502, -27 },0,{ 624, 803 },{ 0xB2, 0x61, 0xE9, 0xFF } } }, + { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, + { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, + { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, + { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, + { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, + { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, + { { { -552, -499, -27 },0,{ 496, 803 },{ 0x53, 0xA3, 0x18, 0xFF } } }, + { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, + { { { -542, -494, -29 },0,{ 432, 803 },{ 0x1A, 0x87, 0x1E, 0xFF } } }, + { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, + { { { -540, -494, -29 },0,{ 368, 803 },{ 0xCE, 0x8F, 0x1D, 0xFF } } }, + { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, + { { { -512, -518, -23 },0,{ 304, 803 },{ 0x24, 0x8A, 0x1F, 0xFF } } }, + { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, + { { { -480, -413, -48 },0,{ 240, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, + { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, + { { { -557, -410, -48 },0,{ 176, 803 },{ 0xEA, 0x7A, 0xE5, 0xFF } } }, + { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, + { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, + { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, + { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, + { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, + { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, + { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, + { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, + { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, + { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, + { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, + { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, + { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, + { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, + { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, + { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, + { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, + { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, + { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, + { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, + { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, + { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, + { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, + { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, + { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, + { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, + { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, + { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, + { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, + { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, + { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, + { { { -484, -523, 198 },0,{ 880, 394 },{ 0x33, 0xFB, 0x74, 0xFF } } }, + { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, + { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, + { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, + { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, + { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, + { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, + { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, + { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, + { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, + { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, + { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, + { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, + { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, + { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, + { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, + { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, + { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, + { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, + { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, + { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, + { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, + { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, + { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, + { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, + { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, + { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, + { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, + { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, + { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, + { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, + { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, + { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, + { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, + { { { -283, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -280, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -288, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -294, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -301, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -412, -515, 201 },0,{ 69, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -301, -386, 171 },0,{ 240, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -301, -420, 178 },0,{ 325, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, + { { { -359, -420, 178 },0,{ 411, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -359, -433, 182 },0,{ 496, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, + { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -301, -433, 182 },0,{ 581, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -301, -469, 190 },0,{ 667, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, + { { { -359, -469, 190 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, + { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, + { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -301, -481, 193 },0,{ 923, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -294, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -301, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -288, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -283, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -280, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -280, -510, -25 },0,{ 923, 803 },{ 0x36, 0x72, 0xF1, 0xFF } } }, + { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, + { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, + { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, + { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, + { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, + { { { -337, -511, -32 },0,{ 837, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, + { { { -341, -489, 185 },0,{ 752, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, + { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, + { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, + { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -338, -539, -18 },0,{ 752, 803 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { -280, -539, -18 },0,{ 667, 803 },{ 0x72, 0xCD, 0x17, 0xFF } } }, + { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, + { { { -279, -542, -24 },0,{ 667, 1008 },{ 0x7D, 0x5, 0x13, 0xFF } } }, + { { { -279, -462, -43 },0,{ 581, 1008 },{ 0x58, 0x5C, 0x7, 0xFF } } }, + { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, + { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, + { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, + { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, + { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, + { { { -337, -493, -36 },0,{ 411, 1008 },{ 0xB0, 0xA1, 0x19, 0xFF } } }, + { { { -280, -490, -29 },0,{ 325, 803 },{ 0x37, 0x93, 0x25, 0xFF } } }, + { { { -279, -493, -36 },0,{ 325, 1008 },{ 0x0, 0x8B, 0x31, 0xFF } } }, + { { { -283, -440, 174 },0,{ 325, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, + { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -280, -415, -47 },0,{ 240, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -434, -415, -47 },0,{ 155, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, + { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, + { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, + { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, + { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, + { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, + { { { -346, -470, 186 },0,{ 837, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, + { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, + { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, + { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, + { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, + { { { -341, -417, 168 },0,{ 496, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, + { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, + { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, + { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, + { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, + { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, + { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -211, -585, -7 },0,{ -16, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, + { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -213, -529, 200 },0,{ -16, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, + { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, + { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -214, -522, 201 },0,{ -16, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, + { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -216, -515, 201 },0,{ -16, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, + { { { -291, -515, 201 },0,{ 130, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -291, -386, 171 },0,{ 277, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, + { { { -216, -386, 171 },0,{ 423, -16 },{ 0x4, 0x2F, 0x76, 0xFF } } }, + { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, + { { { -169, -405, 175 },0,{ 569, -16 },{ 0xD, 0x29, 0x78, 0xFF } } }, + { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, + { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, + { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, + { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { -169, -496, 196 },0,{ 862, -16 },{ 0xD, 0x11, 0x7D, 0xFF } } }, + { { { -214, -522, 201 },0,{ 1008, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, + { { { -216, -515, 201 },0,{ 1008, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, + { { { -213, -529, 200 },0,{ 1008, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, + { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, + { { { -212, -535, 196 },0,{ 1008, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, + { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, + { { { -211, -585, -7 },0,{ 1008, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, + { { { -152, -561, -13 },0,{ 862, 803 },{ 0x5D, 0xAD, 0x16, 0xFF } } }, + { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, + { { { -131, -500, -27 },0,{ 715, 803 },{ 0x7F, 0x1, 0x2, 0xFF } } }, + { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, + { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, + { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, + { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, + { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, + { { { -211, -415, -47 },0,{ 423, 803 },{ 0x19, 0x7A, 0xE6, 0xFF } } }, + { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -312, -415, -47 },0,{ 277, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, + { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, + { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, + { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, + { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, + { { { -140, -452, 182 },0,{ 715, 394 },{ 0x4A, 0x18, 0x64, 0xFF } } }, + { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, + { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, + { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, + { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, + { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, + { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, + { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, + { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, + { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, + { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, + { { { -222, -493, -29 },0,{ -16, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, + { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, + { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, + { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, + { { { -230, -436, 178 },0,{ -16, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, + { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, + { { { -236, -429, 180 },0,{ -16, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, + { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, + { { { -243, -422, 179 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -243, -479, 192 },0,{ 130, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, + { { { -228, -479, 192 },0,{ 277, -16 },{ 0xFC, 0x2F, 0x76, 0xFF } } }, + { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, + { { { -208, -471, 190 },0,{ 423, -16 },{ 0xF3, 0x29, 0x78, 0xFF } } }, + { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, + { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, + { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, + { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, + { { { -208, -431, 181 },0,{ 715, -16 },{ 0xF2, 0x11, 0x7D, 0xFF } } }, + { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, + { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, + { { { -228, -422, 179 },0,{ 862, -16 },{ 0xFC, 0xA, 0x7F, 0xFF } } }, + { { { -236, -429, 180 },0,{ 1008, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, + { { { -243, -422, 179 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, + { { { -230, -436, 178 },0,{ 1008, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, + { { { -225, -442, 174 },0,{ 1008, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, + { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, + { { { -222, -493, -29 },0,{ 1008, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, + { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, + { { { -221, -496, -35 },0,{ 1008, 1008 },{ 0x0, 0x75, 0xCF, 0xFF } } }, + { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, + { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, + { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, + { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, + { { { -226, -498, -35 },0,{ 715, 1008 },{ 0xA3, 0xB4, 0x29, 0xFF } } }, + { { { -224, -500, -27 },0,{ 569, 803 },{ 0x82, 0xF6, 0xB, 0xFF } } }, + { { { -225, -502, -34 },0,{ 569, 1008 },{ 0x88, 0xE2, 0x1C, 0xFF } } }, + { { { -221, -453, 177 },0,{ 569, 598 },{ 0x8D, 0xD, 0x35, 0xFF } } }, + { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, + { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, + { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, + { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, + { { { -225, -505, -26 },0,{ 423, 803 },{ 0xA1, 0x53, 0xEF, 0xFF } } }, + { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, + { { { -232, -508, -25 },0,{ 277, 803 },{ 0x83, 0xE9, 0x5, 0xFF } } }, + { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, + { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, + { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, + { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, + { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, + { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, + { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, + { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, + { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, + { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, + { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, + { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, + { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, + { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, + { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, + { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, + { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, + { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, + { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, + { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, + { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, + { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, + { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, + { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, + { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, + { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, + { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, + { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, + { { { -72, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -69, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -77, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -90, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -143, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -143, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -90, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { -83, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -90, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -77, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -72, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { -69, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { -161, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -165, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -156, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, + { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -64, -493, -29 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, + { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -56, -436, 178 },0,{ -16, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, + { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -50, -429, 180 },0,{ -16, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, + { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -43, -422, 179 },0,{ -16, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -80, -422, 179 },0,{ 112, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -80, -386, 171 },0,{ 240, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 42, -386, 171 },0,{ 368, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, + { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 5, -422, 179 },0,{ 624, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, + { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 5, -515, 201 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -43, -515, 201 },0,{ 880, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -50, -429, 180 },0,{ 1008, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, + { { { -43, -422, 179 },0,{ 1008, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { -56, -436, 178 },0,{ 1008, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, + { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -61, -442, 174 },0,{ 1008, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, + { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -64, -493, -29 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 26, -585, -7 },0,{ 752, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, + { { { 26, -493, -29 },0,{ 624, 803 },{ 0x59, 0xA9, 0x17, 0xFF } } }, + { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 63, -493, -29 },0,{ 496, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { 63, -415, -47 },0,{ 368, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { -101, -415, -47 },0,{ 240, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 18, -436, 178 },0,{ 624, 394 },{ 0x25, 0xF7, 0x79, 0xFF } } }, + { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, + { { { 18, -529, 200 },0,{ 752, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, + { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, + { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 123, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 126, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { 118, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { 112, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 52, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 52, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 105, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { 112, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 105, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 118, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 123, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { 126, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { 31, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { 39, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, + { { { 120, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { 127, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, + { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { 131, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, + { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { 137, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { 116, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, + { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { 136, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, + { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, + { { { 188, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, + { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, + { { { 241, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, + { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, + { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, + { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, + { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { 240, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, + { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, + { { { 188, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, + { { { 131, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, + { { { 137, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, + { { { 127, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, + { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { 123, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, + { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, + { { { 120, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, + { { { 188, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, + { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, + { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, + { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, + { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, + { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, + { { { 285, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, + { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, + { { { 257, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, + { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, + { { { 188, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, + { { { 258, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, + { { { 188, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, + { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, + { { { 119, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, + { { { 122, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, + { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, + { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, + { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, + { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, + { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, + { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, + { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, + { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, + { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, + { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, + { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, + { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, + { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, + { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, + { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, + { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, + { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, + { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, + { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, + { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, + { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, + { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, + { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, + { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, + { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, + { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, + { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, + { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, + { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, + { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, + { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, + { { { 194, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, + { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, + { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, + { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, + { { { 194, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, + { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, + { { { 195, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, + { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, + { { { 195, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, + { { { 173, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, + { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, + { { { 158, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, + { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, + { { { 161, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, + { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, + { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, + { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, + { { { 201, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, + { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, + { { { 216, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, + { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, + { { { 214, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, + { { { 195, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, + { { { 195, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, + { { { 194, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, + { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, + { { { 194, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, + { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { 194, -494, -29 },0,{ 880, 803 },{ 0x98, 0xBA, 0x13, 0xFF } } }, + { { { 194, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, + { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, + { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, + { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, + { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, + { { { 188, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x65, 0xEA, 0xFF } } }, + { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, + { { { 180, -503, -26 },0,{ 496, 803 },{ 0x7, 0x7C, 0xE5, 0xFF } } }, + { { { 181, -503, -26 },0,{ 368, 803 },{ 0x67, 0x48, 0xF1, 0xFF } } }, + { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, + { { { 181, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, + { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, + { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, + { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, + { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, + { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, + { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, + { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, + { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, + { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, + { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, + { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, + { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, + { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, + { { { 193, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, + { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, + { { { 202, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, + { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, + { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, + { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, + { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, + { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, + { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, + { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, + { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, + { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, + { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, + { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, + { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, + { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, + { { { 333, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 336, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { 328, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { 322, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 273, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, + { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 273, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, + { { { 336, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, + { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { 368, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 368, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, + { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 410, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, + { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, + { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 352, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, + { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, + { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, + { { { 315, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, + { { { 322, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 315, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, + { { { 328, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, + { { { 333, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, + { { { 336, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 336, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, + { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, + { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, + { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, + { { { 431, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, + { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { 431, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, + { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 346, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, + { { { 346, -425, -45 },0,{ 394, 803 },{ 0xF7, 0x8D, 0x35, 0xFF } } }, + { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, + { { { 349, -415, -47 },0,{ 291, 803 },{ 0x5C, 0x55, 0xED, 0xFF } } }, + { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 251, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, + { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, + { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, + { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, + { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, + { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, + { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, + { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, + { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, + { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, + { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, + { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, + { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, + { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, + { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, + { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, + { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, + { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, + { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, + { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, + { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, + { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, + { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, + { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, + { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, + { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, + { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, + { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, + { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, + { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, + { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, + { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +}; + +Gfx titlesonic_Text_mesh_tri_0[] = { + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(3, 5, 1, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(5, 6, 8, 0), + gsSP1Triangle(5, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 16, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(5, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 30, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 9, 8, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 46, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(12, 9, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 62, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(10, 11, 6, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(10, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 78, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 94, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 110, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 4, 2, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 5, 1, 0), + gsSP1Triangle(4, 5, 7, 0), + gsSP1Triangle(4, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 126, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(4, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 142, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 158, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 174, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 190, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 206, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(4, 6, 8, 0), + gsSP1Triangle(4, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 222, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 238, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 254, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 0, 4, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 270, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 286, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(10, 12, 14, 0), + gsSP1Triangle(10, 14, 15, 0), + gsSP1Triangle(8, 10, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 302, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 318, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 334, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 350, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(9, 11, 13, 0), + gsSP1Triangle(9, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 366, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 382, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(7, 3, 8, 0), + gsSP1Triangle(8, 3, 0, 0), + gsSP1Triangle(8, 0, 9, 0), + gsSP1Triangle(10, 6, 7, 0), + gsSP1Triangle(10, 11, 6, 0), + gsSP1Triangle(11, 12, 6, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 398, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(4, 6, 8, 0), + gsSP1Triangle(4, 8, 9, 0), + gsSP1Triangle(1, 4, 9, 0), + gsSP1Triangle(1, 9, 10, 0), + gsSP1Triangle(2, 1, 10, 0), + gsSP1Triangle(2, 10, 11, 0), + gsSP1Triangle(12, 2, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 413, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 429, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(6, 8, 10, 0), + gsSP1Triangle(6, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 445, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 7, 9, 0), + gsSP1Triangle(11, 5, 7, 0), + gsSP1Triangle(11, 12, 5, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(14, 11, 15, 0), + gsSP1Triangle(15, 11, 9, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 461, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(6, 3, 4, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 477, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(1, 4, 6, 0), + gsSP1Triangle(1, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(2, 7, 9, 0), + gsSP1Triangle(2, 1, 7, 0), + gsSP1Triangle(11, 2, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 493, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 509, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(10, 12, 14, 0), + gsSP1Triangle(10, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 525, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 541, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 4, 6, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 557, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(8, 10, 12, 0), + gsSP1Triangle(8, 12, 13, 0), + gsSP1Triangle(6, 8, 13, 0), + gsSP1Triangle(6, 13, 14, 0), + gsSP1Triangle(4, 6, 14, 0), + gsSP1Triangle(4, 14, 15, 0), + gsSP1Triangle(1, 4, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 573, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 589, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(7, 9, 11, 0), + gsSP1Triangle(7, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 605, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(7, 8, 3, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(8, 11, 0, 0), + gsSP1Triangle(8, 0, 3, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 621, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 637, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 653, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(7, 9, 11, 0), + gsSP1Triangle(7, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 669, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 685, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 701, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 717, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 733, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(1, 4, 6, 0), + gsSP1Triangle(1, 6, 7, 0), + gsSP1Triangle(2, 1, 7, 0), + gsSP1Triangle(2, 7, 8, 0), + gsSP1Triangle(9, 2, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 749, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 765, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(7, 6, 3, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 781, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 797, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 5, 7, 0), + gsSP1Triangle(3, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 813, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(6, 3, 7, 0), + gsSP1Triangle(7, 3, 8, 0), + gsSP1Triangle(3, 0, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 829, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 0, 4, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 8, 6, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(10, 6, 4, 0), + gsSP1Triangle(10, 4, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 845, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 861, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(6, 8, 10, 0), + gsSP1Triangle(6, 10, 11, 0), + gsSP1Triangle(4, 6, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 877, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(3, 5, 9, 0), + gsSP1Triangle(3, 9, 10, 0), + gsSP1Triangle(2, 3, 10, 0), + gsSP1Triangle(2, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 893, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 909, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(1, 4, 6, 0), + gsSP1Triangle(1, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 925, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 4, 6, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 941, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(1, 4, 6, 0), + gsSP1Triangle(1, 6, 7, 0), + gsSP1Triangle(2, 1, 7, 0), + gsSP1Triangle(2, 7, 8, 0), + gsSP1Triangle(9, 2, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 957, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 973, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 5, 7, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 989, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 0, 3, 0), + gsSP1Triangle(5, 6, 0, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(9, 5, 3, 0), + gsSP1Triangle(9, 3, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 11, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1005, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(3, 5, 1, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(9, 11, 13, 0), + gsSP1Triangle(9, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1021, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1037, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(7, 9, 11, 0), + gsSP1Triangle(7, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1053, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(7, 8, 3, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(8, 11, 0, 0), + gsSP1Triangle(8, 0, 3, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1069, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1085, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(5, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1101, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 9, 11, 0), + gsSP1Triangle(13, 14, 9, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1117, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(9, 11, 13, 0), + gsSP1Triangle(9, 13, 14, 0), + gsSP1Triangle(7, 9, 14, 0), + gsSP1Triangle(7, 14, 15, 0), + gsSP1Triangle(5, 7, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1133, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1149, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(5, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1165, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 0, 3, 0), + gsSP1Triangle(5, 6, 0, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(6, 9, 11, 0), + gsSP1Triangle(6, 11, 0, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1181, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1197, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(4, 6, 8, 0), + gsSP1Triangle(4, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1213, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 7, 10, 0), + gsSP1Triangle(12, 6, 7, 0), + gsSP1Triangle(13, 6, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSP1Triangle(15, 12, 10, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1229, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1245, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1261, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1277, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(5, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(12, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1293, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 10, 11, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1309, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(9, 11, 13, 0), + gsSP1Triangle(9, 13, 14, 0), + gsSP1Triangle(7, 9, 14, 0), + gsSP1Triangle(7, 14, 15, 0), + gsSP1Triangle(5, 7, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1325, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1341, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1357, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 5, 7, 0), + gsSP1Triangle(3, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1373, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 11, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1389, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1405, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(2, 3, 5, 0), + gsSP1Triangle(2, 5, 6, 0), + gsSP1Triangle(7, 2, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1421, 5, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSPEndDisplayList(), +}; Vtx titlesonic_Text_mesh_vtx_1[638] = { + { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, + { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, + { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, + { { { 273, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 336, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 273, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 315, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 315, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 368, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 410, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 352, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 410, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 368, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 136, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 241, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 188, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 195, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 116, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 173, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 158, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 161, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 137, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 179, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 240, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 188, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 201, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 216, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 262, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 214, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 52, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 105, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 52, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 105, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 42, -381, 196 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -80, -381, 196 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, + { { { -43, -509, 226 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 5, -509, 226 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -143, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -90, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -143, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -90, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -169, -490, 222 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -208, -465, 216 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -154, -445, 211 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -202, -445, 211 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -208, -425, 207 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -416, 205 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -169, -399, 201 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -381, 196 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -243, -473, 218 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -414, 204 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -414, 204 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -381, 196 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -412, -381, 196 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -412, -509, 226 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -476, 219 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -476, 219 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -427, 207 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -301, -463, 215 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -396, 200 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -553, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -547, -417, 205 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -622, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -567, -428, 207 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -579, -444, 211 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -575, -461, 215 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -553, -511, 227 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -538, -462, 215 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -523, -449, 212 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -523, -425, 207 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -685, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -633, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -685, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -633, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -791, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -791, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -738, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -696, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -754, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -696, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -738, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -970, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -918, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -933, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -945, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -969, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -927, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -918, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -905, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -890, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -844, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -892, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1058, -378, 196 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1017, -414, 204 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1045, -412, 204 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1117, -420, 205 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1064, -418, 205 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1060, -425, 207 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1101, -453, 213 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1039, -428, 207 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1013, -439, 210 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1002, -467, 216 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1075, -461, 215 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1057, -464, 216 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1054, -472, 218 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1110, -508, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { -1052, -510, 227 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, + { { { 336, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 273, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 273, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 315, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 368, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 410, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 410, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 368, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 352, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 241, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 136, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 188, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 195, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 262, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 214, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 216, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 240, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 201, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 179, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 137, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 188, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 161, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 116, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 158, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 173, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 105, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 52, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 52, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 42, -389, 160 },0,{ 423, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -80, -389, 160 },0,{ 277, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -43, -517, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { 5, -517, 191 },0,{ 862, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -90, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -143, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -143, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -291, -517, 191 },0,{ 63, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -169, -498, 186 },0,{ 457, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -228, -481, 182 },0,{ 693, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -243, -481, 182 },0,{ 614, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -243, -425, 169 },0,{ 535, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -291, -389, 160 },0,{ 142, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -216, -389, 160 },0,{ 220, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -169, -408, 165 },0,{ 299, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -228, -425, 169 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -154, -453, 176 },0,{ 378, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -208, -433, 171 },0,{ 929, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -202, -453, 176 },0,{ 850, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -208, -473, 180 },0,{ 772, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -422, 168 },0,{ 356, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -359, -422, 168 },0,{ 449, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -389, 160 },0,{ 263, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -412, -389, 160 },0,{ 170, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -412, -517, 191 },0,{ 77, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -359, -435, 171 },0,{ 543, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -359, -471, 180 },0,{ 822, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -435, 171 },0,{ 636, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -471, 180 },0,{ 729, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -359, -484, 183 },0,{ 915, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -484, 183 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -553, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -523, -434, 171 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -547, -426, 169 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -622, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -567, -436, 172 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -579, -452, 175 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -603, -499, 186 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -575, -469, 179 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -559, -477, 181 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -502, -513, 190 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -538, -470, 180 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -523, -458, 177 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -553, -519, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -633, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -685, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -685, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -770, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -833, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -833, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -791, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -738, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -696, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -696, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -738, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -754, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -865, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -970, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -918, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -911, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -844, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -892, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -890, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -865, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -905, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -927, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -969, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -918, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -945, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -990, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -948, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -933, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1007, -389, 161 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1101, -398, 163 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1058, -387, 160 },0,{ 155, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1017, -422, 168 },0,{ 268, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1045, -421, 168 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1117, -428, 170 },0,{ 41, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1064, -426, 169 },0,{ 382, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1060, -433, 171 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1039, -436, 172 },0,{ 496, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1013, -447, 174 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1002, -475, 181 },0,{ 610, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1075, -470, 180 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1057, -472, 180 },0,{ 951, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1100, -484, 183 },0,{ 837, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1110, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1052, -519, 191 },0,{ 724, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, + { { { -1101, -453, 213 },0,{ -16, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, + { { { -1117, -428, 170 },0,{ 38, 1008 },{ 0x81, 0x3, 0xFF, 0xFF } } }, + { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, + { { { -1117, -420, 205 },0,{ 38, -16 },{ 0x81, 0x3, 0xFF, 0xFF } } }, + { { { -1101, -398, 163 },0,{ 92, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, + { { { -1101, -390, 198 },0,{ 92, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, + { { { -1058, -387, 160 },0,{ 146, 1008 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, + { { { -1058, -378, 196 },0,{ 146, -16 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, + { { { -1007, -389, 161 },0,{ 200, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, + { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -1017, -414, 204 },0,{ 253, -16 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, + { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, + { { { -1045, -421, 168 },0,{ 307, 1008 },{ 0xF, 0x85, 0x1D, 0xFF } } }, + { { { -1045, -412, 204 },0,{ 307, -16 },{ 0xF, 0x85, 0x1D, 0xFF } } }, + { { { -1064, -426, 169 },0,{ 361, 1008 },{ 0x76, 0xD2, 0xB, 0xFF } } }, + { { { -1064, -418, 205 },0,{ 361, -16 },{ 0x76, 0xD2, 0xB, 0xFF } } }, + { { { -1060, -433, 171 },0,{ 415, 1008 },{ 0x47, 0x66, 0xE8, 0xFF } } }, + { { { -1060, -425, 207 },0,{ 415, -16 },{ 0x47, 0x66, 0xE8, 0xFF } } }, + { { { -1039, -436, 172 },0,{ 469, 1008 },{ 0x22, 0x77, 0xE4, 0xFF } } }, + { { { -1039, -428, 207 },0,{ 469, -16 },{ 0x22, 0x77, 0xE4, 0xFF } } }, + { { { -1013, -447, 174 },0,{ 523, 1008 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, + { { { -1013, -439, 210 },0,{ 523, -16 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, + { { { -1002, -475, 181 },0,{ 577, 1008 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, + { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, + { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, + { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, + { { { -1016, -498, 224 },0,{ 631, -16 },{ 0x55, 0xA5, 0x16, 0xFF } } }, + { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, + { { { -1052, -519, 191 },0,{ 685, 1008 },{ 0x13, 0x86, 0x1D, 0xFF } } }, + { { { -1052, -510, 227 },0,{ 685, -16 },{ 0x13, 0x86, 0x1D, 0xFF } } }, + { { { -1110, -517, 191 },0,{ 739, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { -1110, -508, 226 },0,{ 739, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { -1100, -484, 183 },0,{ 792, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, + { { { -1100, -476, 219 },0,{ 792, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, + { { { -1054, -480, 182 },0,{ 846, 1008 },{ 0x94, 0x41, 0xF1, 0xFF } } }, + { { { -1054, -472, 218 },0,{ 846, -16 },{ 0x94, 0x42, 0xF1, 0xFF } } }, + { { { -1057, -472, 180 },0,{ 900, 1008 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, + { { { -1057, -464, 216 },0,{ 900, -16 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, + { { { -1075, -470, 180 },0,{ 954, 1008 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, + { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, + { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, + { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, + { { { -1101, -453, 213 },0,{ 1008, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, + { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, + { { { -969, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { -990, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -969, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { -990, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, + { { { -970, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, + { { { -970, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, + { { { -918, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, + { { { -918, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, + { { { -865, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, + { { { -865, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, + { { { -844, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, + { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { -865, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, + { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, + { { { -918, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, + { { { -918, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, + { { { -969, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { -969, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { -911, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { -933, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, + { { { -911, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { -933, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, + { { { -948, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, + { { { -948, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, + { { { -945, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, + { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -927, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, + { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, + { { { -905, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, + { { { -905, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, + { { { -890, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, + { { { -890, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, + { { { -892, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { -892, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { -911, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { -911, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { -791, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -833, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -833, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -770, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, + { { { -770, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, + { { { -738, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, + { { { -738, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, + { { { -738, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -738, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -696, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -696, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -696, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -696, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -754, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, + { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { -791, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, + { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, + { { { -791, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -791, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -633, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -685, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -685, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -685, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -685, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -633, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -633, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -633, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -633, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -603, -490, 222 },0,{ -16, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, + { { { -622, -451, 175 },0,{ 48, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -603, -499, 186 },0,{ -16, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, + { { { -622, -443, 211 },0,{ 48, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -603, -404, 164 },0,{ 112, 1008 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, + { { { -603, -396, 200 },0,{ 112, -16 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, + { { { -553, -384, 159 },0,{ 176, 1008 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, + { { { -553, -375, 195 },0,{ 176, -16 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, + { { { -509, -386, 160 },0,{ 240, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -509, -377, 195 },0,{ 240, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { -523, -434, 171 },0,{ 304, 1008 },{ 0x24, 0x89, 0x1C, 0xFF } } }, + { { { -523, -425, 207 },0,{ 304, -16 },{ 0x24, 0x89, 0x1C, 0xFF } } }, + { { { -531, -427, 169 },0,{ 368, 1008 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, + { { { -531, -419, 205 },0,{ 368, -16 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, + { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, + { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, + { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, + { { { -567, -436, 172 },0,{ 496, 1008 },{ 0x53, 0xA3, 0x16, 0xFF } } }, + { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, + { { { -567, -428, 207 },0,{ 496, -16 },{ 0x53, 0xA3, 0x16, 0xFF } } }, + { { { -579, -452, 175 },0,{ 560, 1008 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, + { { { -579, -444, 211 },0,{ 560, -16 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, + { { { -575, -469, 179 },0,{ 624, 1008 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, + { { { -575, -461, 215 },0,{ 624, -16 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, + { { { -559, -477, 181 },0,{ 688, 1008 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, + { { { -559, -468, 217 },0,{ 688, -16 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, + { { { -538, -470, 180 },0,{ 752, 1008 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, + { { { -538, -462, 215 },0,{ 752, -16 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, + { { { -523, -458, 177 },0,{ 816, 1008 },{ 0x20, 0x78, 0xE4, 0xFF } } }, + { { { -523, -449, 212 },0,{ 816, -16 },{ 0x20, 0x78, 0xE4, 0xFF } } }, + { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, + { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, + { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, + { { { -553, -519, 191 },0,{ 944, 1008 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, + { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, + { { { -553, -511, 227 },0,{ 944, -16 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, + { { { -603, -499, 186 },0,{ 1008, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, + { { { -603, -490, 222 },0,{ 1008, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, + { { { -301, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -412, -517, 191 },0,{ 69, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -412, -509, 226 },0,{ 69, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -412, -389, 160 },0,{ 155, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -412, -381, 196 },0,{ 155, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -301, -389, 160 },0,{ 240, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -381, 196 },0,{ 240, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -359, -422, 168 },0,{ 411, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -359, -414, 204 },0,{ 411, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -359, -435, 171 },0,{ 496, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -359, -427, 207 },0,{ 496, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -435, 171 },0,{ 581, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -427, 207 },0,{ 581, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -301, -471, 180 },0,{ 667, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -301, -463, 215 },0,{ 667, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -359, -471, 180 },0,{ 752, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -359, -463, 215 },0,{ 752, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -359, -484, 183 },0,{ 837, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -359, -476, 219 },0,{ 837, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -301, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -301, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -216, -509, 226 },0,{ -16, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, + { { { -291, -517, 191 },0,{ 130, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, + { { { -291, -509, 226 },0,{ 130, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -291, -389, 160 },0,{ 277, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -291, -381, 196 },0,{ 277, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -216, -389, 160 },0,{ 423, 1008 },{ 0x19, 0x79, 0xE3, 0xFF } } }, + { { { -216, -381, 196 },0,{ 423, -16 },{ 0x19, 0x79, 0xE3, 0xFF } } }, + { { { -169, -408, 165 },0,{ 569, 1008 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, + { { { -169, -399, 201 },0,{ 569, -16 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, + { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, + { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, + { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, + { { { -169, -498, 186 },0,{ 862, 1008 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, + { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, + { { { -169, -490, 222 },0,{ 862, -16 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, + { { { -216, -517, 191 },0,{ 1008, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, + { { { -216, -509, 226 },0,{ 1008, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, + { { { -243, -416, 205 },0,{ -16, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -243, -481, 182 },0,{ 130, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -243, -425, 169 },0,{ -16, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -243, -473, 218 },0,{ 130, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -228, -481, 182 },0,{ 277, 1008 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, + { { { -228, -473, 218 },0,{ 277, -16 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, + { { { -208, -473, 180 },0,{ 423, 1008 },{ 0xA1, 0x53, 0xED, 0xFF } } }, + { { { -208, -465, 216 },0,{ 423, -16 },{ 0xA1, 0x53, 0xED, 0xFF } } }, + { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -208, -433, 171 },0,{ 715, 1008 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, + { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { -208, -425, 207 },0,{ 715, -16 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, + { { { -228, -425, 169 },0,{ 862, 1008 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, + { { { -228, -416, 205 },0,{ 862, -16 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, + { { { -243, -425, 169 },0,{ 1008, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -243, -416, 205 },0,{ 1008, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -90, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -143, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -143, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -143, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -143, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { -90, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { -90, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -43, -416, 205 },0,{ -16, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -80, -425, 169 },0,{ 112, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -43, -425, 169 },0,{ -16, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -80, -416, 205 },0,{ 112, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -80, -389, 160 },0,{ 240, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { -80, -381, 196 },0,{ 240, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { 42, -389, 160 },0,{ 368, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { 42, -381, 196 },0,{ 368, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { 42, -425, 169 },0,{ 496, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 42, -416, 205 },0,{ 496, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 5, -517, 191 },0,{ 752, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 5, -509, 226 },0,{ 752, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { -43, -517, 191 },0,{ 880, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { -43, -509, 226 },0,{ 880, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -43, -425, 169 },0,{ 1008, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { -43, -416, 205 },0,{ 1008, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { 105, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 52, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 52, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { 52, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { 52, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { 105, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { 105, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 137, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { 116, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, + { { { 137, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { 116, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, + { { { 136, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, + { { { 136, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, + { { { 188, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, + { { { 188, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, + { { { 241, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, + { { { 241, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, + { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { 240, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, + { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, + { { { 240, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, + { { { 188, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, + { { { 188, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, + { { { 137, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { 137, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, + { { { 195, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { 173, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, + { { { 195, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { 173, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, + { { { 158, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, + { { { 158, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, + { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { 179, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, + { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, + { { { 179, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, + { { { 201, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, + { { { 201, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, + { { { 216, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, + { { { 216, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, + { { { 214, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { 214, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, + { { { 195, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { 195, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, + { { { 315, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, + { { { 273, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, + { { { 273, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { 336, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, + { { { 336, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, + { { { 368, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, + { { { 368, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, + { { { 368, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, + { { { 368, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, + { { { 410, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, + { { { 410, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, + { { { 410, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 410, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, + { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { 315, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, + { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, + { { { 315, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, + { { { 315, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, + { { { 315, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +}; + +Gfx titlesonic_Text_mesh_tri_1[] = { + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(6, 10, 9, 0), + gsSP1Triangle(9, 11, 7, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(11, 12, 14, 0), + gsSP1Triangle(11, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(9, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(13, 10, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSP1Triangle(15, 14, 3, 0), + gsSP1Triangle(3, 14, 1, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 9, 8, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 6, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(12, 9, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(10, 11, 6, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(10, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(9, 8, 4, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 11, 9, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 112, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 4, 2, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 5, 1, 0), + gsSP1Triangle(4, 5, 7, 0), + gsSP1Triangle(4, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 128, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(4, 5, 7, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 144, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 160, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 5, 4, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(9, 12, 7, 0), + gsSP1Triangle(13, 5, 7, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 174, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(9, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSP1Triangle(15, 13, 3, 0), + gsSP1Triangle(3, 13, 1, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 190, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 5, 4, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 9, 8, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 13, 12, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 206, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(5, 1, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(2, 13, 10, 0), + gsSP1Triangle(2, 3, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 220, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 4, 1, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 4, 6, 0), + gsSP1Triangle(10, 4, 9, 0), + gsSP1Triangle(11, 4, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 13, 12, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 236, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 5, 3, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 8, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 251, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 5, 4, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(9, 12, 7, 0), + gsSP1Triangle(13, 5, 7, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 265, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(9, 10, 12, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSP1Triangle(15, 13, 3, 0), + gsSP1Triangle(3, 13, 1, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 281, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(15, 14, 11, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 297, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 313, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 329, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 345, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 361, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 377, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 393, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 409, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 424, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 440, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 456, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 472, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 488, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 504, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 520, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 536, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 552, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 568, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 584, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 600, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 616, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(titlesonic_Text_mesh_vtx_1 + 632, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSPEndDisplayList(), +}; + + +Gfx mat_titlesonic_sm64_material_001[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(titlesonic_sm64_material_001_lights), + gsSPEndDisplayList(), +}; + + +Gfx mat_titlesonic_sm64_material_002[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPSetLights1(titlesonic_sm64_material_002_lights), + gsSPEndDisplayList(), +}; + + // 0x07000000 - 0x07000100 static const Vtx intro_seg7_vertex_07000000[] = { @@ -2577,12 +6521,12 @@ static const Vtx intro_seg7_vertex_07007DF0[] = { }; // 0x07007EA0 - 0x07007EA2 -ALIGNED8 static const Texture intro_seg7_texture_07007EA0[] = { +ALIGNED8 static const u8 intro_seg7_texture_07007EA0[] = { #include "levels/intro/0.rgba16.inc.c" }; // 0x070086A0 - 0x070086A2 -ALIGNED8 static const Texture intro_seg7_texture_070086A0[] = { +ALIGNED8 static const u8 intro_seg7_texture_070086A0[] = { #include "levels/intro/1.rgba16.inc.c" }; @@ -3297,6 +7241,8 @@ static const Gfx intro_seg7_dl_0700ADC0[] = { gsSPEndDisplayList(), }; + + // 0x0700B3A0 - 0x0700B420 const Gfx intro_seg7_dl_0700B3A0[] = { gsDPPipeSync(), @@ -3314,7 +7260,17 @@ const Gfx intro_seg7_dl_0700B3A0[] = { gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPDisplayList(intro_seg7_dl_0700ADC0), gsSPSetGeometryMode(G_LIGHTING), - gsSPEndDisplayList(), + //gsSPEndDisplayList(), + gsSPDisplayList(mat_titlesonic_sm64_material_001), + gsSPDisplayList(titlesonic_Text_mesh_tri_0), + gsSPDisplayList(mat_titlesonic_sm64_material_002), + gsSPDisplayList(titlesonic_Text_mesh_tri_1), + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsSPEndDisplayList(), }; // 0x0700B420 - 0x0700B460 @@ -3333,31 +7289,25 @@ static const Vtx intro_seg7_vertex_0700B460[] = { {{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; -#if defined(VERSION_EU) || defined(VERSION_SH) +#ifdef VERSION_EU // 0x0700B4A0 - 0x0700B4A2 -ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { +ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { #include "levels/intro/2_eu_copyright.rgba16.inc.c" }; -#else -// 0x0700B4A0 - 0x0700B4A2 -ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { -#include "levels/intro/2_copyright.rgba16.inc.c" -}; -#endif - -#if defined(VERSION_EU) // 0x0700C4A0 - 0x0700D4A0 ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { #include "levels/intro/3_eu_tm.rgba16.inc.c" }; -#elif defined(VERSION_SH) -ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { -#include "levels/intro/3_sh_tm.rgba16.inc.c" -}; + #else +// 0x0700B4A0 - 0x0700B4A2 +ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { +#include "levels/intro/2_copyright.rgba16.inc.c" +}; + // 0x0700C4A0 - 0x0700D4A0 -ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = { +ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { #include "levels/intro/3_tm.rgba16.inc.c" }; #endif diff --git a/levels/intro/leveldata.c.rej b/levels/intro/leveldata.c.rej new file mode 100644 index 00000000..61c9a01b --- /dev/null +++ b/levels/intro/leveldata.c.rej @@ -0,0 +1,4044 @@ +diff a/levels/intro/leveldata.c b/levels/intro/leveldata.c (rejected hunks) +@@ -1,10 +1,3954 @@ +-#include +-#include +- +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" ++#include "surface_terrains.h" ++#include "moving_texture_macros.h" ++#include "level_misc_macros.h" ++#include "macro_preset_names.h" ++#include "special_preset_names.h" ++#include "textures.h" + + #include "make_const_nonconst.h" ++Lights1 titlesonic_sm64_material_001_lights = gdSPDefLights1( ++ 0x0, 0x0, 0x7F, ++ 0x0, 0x0, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 titlesonic_sm64_material_002_lights = gdSPDefLights1( ++ 0x7F, 0x73, 0x0, ++ 0xFE, 0xE6, 0x0, 0x28, 0x28, 0x28); ++ ++Vtx titlesonic_Text_mesh_vtx_0[1426] = { ++ { { { 273, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 273, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 352, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 136, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 158, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 161, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 240, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 201, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 216, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 214, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -386, 171 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -386, 171 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -515, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -515, 201 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -496, 196 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -471, 190 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -431, 181 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -422, 179 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -405, 175 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -386, 171 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -479, 192 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -420, 178 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -420, 178 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -386, 171 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -515, 201 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -481, 193 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -433, 182 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -469, 190 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -402, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -547, -423, 179 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -622, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -567, -434, 182 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -579, -450, 186 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -575, -467, 190 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -517, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -538, -468, 190 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -455, 187 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -431, 181 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -754, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -933, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -945, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -905, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -890, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -844, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -892, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1058, -384, 170 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1017, -420, 178 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1045, -418, 178 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1117, -426, 180 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1064, -424, 179 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1060, -431, 181 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1013, -445, 184 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1002, -473, 191 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1075, -467, 190 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1057, -470, 190 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1110, -514, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1052, -516, 201 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1115, -475, 182 },0,{ -16, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, ++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, ++ { { { -1117, -525, -21 },0,{ -16, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, ++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, ++ { { { -1111, -470, 186 },0,{ -16, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, ++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, ++ { { { -1106, -464, 188 },0,{ -16, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ -16, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, ++ { { { -1117, -426, 180 },0,{ 38, -16 },{ 0xEE, 0x1D, 0x7A, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, ++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1058, -384, 170 },0,{ 146, -16 },{ 0xFE, 0x30, 0x76, 0xFF } } }, ++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 200, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1017, -420, 178 },0,{ 253, -16 },{ 0x9, 0x11, 0x7E, 0xFF } } }, ++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, ++ { { { -1045, -418, 178 },0,{ 307, -16 },{ 0x2, 0xA, 0x7F, 0xFF } } }, ++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, ++ { { { -1064, -424, 179 },0,{ 361, -16 },{ 0xC, 0x19, 0x7C, 0xFF } } }, ++ { { { -1060, -431, 181 },0,{ 415, -16 },{ 0xA, 0x2C, 0x77, 0xFF } } }, ++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, ++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1013, -445, 184 },0,{ 523, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, ++ { { { -1002, -473, 191 },0,{ 577, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 631, -16 },{ 0xC, 0x10, 0x7D, 0xFF } } }, ++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, ++ { { { -1052, -516, 201 },0,{ 685, -16 },{ 0x3, 0xA, 0x7F, 0xFF } } }, ++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, ++ { { { -1110, -514, 201 },0,{ 739, -16 },{ 0xF6, 0x16, 0x7D, 0xFF } } }, ++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 792, -16 },{ 0xF6, 0x2A, 0x78, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, ++ { { { -1057, -470, 190 },0,{ 900, -16 },{ 0xF5, 0x10, 0x7E, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, ++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, ++ { { { -1075, -467, 190 },0,{ 954, -16 },{ 0xFB, 0xA, 0x7F, 0xFF } } }, ++ { { { -1106, -464, 188 },0,{ 1008, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ 1008, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, ++ { { { -1111, -470, 186 },0,{ 1008, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, ++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, ++ { { { -1115, -475, 182 },0,{ 1008, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, ++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, ++ { { { -1117, -525, -21 },0,{ 1008, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, ++ { { { -1080, -537, -18 },0,{ 954, 803 },{ 0xE3, 0x88, 0x1E, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, ++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, ++ { { { -1084, -509, -25 },0,{ 846, 803 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, ++ { { { -1116, -512, -24 },0,{ 792, 803 },{ 0xB1, 0x61, 0xEC, 0xFF } } }, ++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, ++ { { { -1139, -584, -7 },0,{ 739, 803 },{ 0x98, 0xBA, 0x14, 0xFF } } }, ++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, ++ { { { -1049, -587, -7 },0,{ 685, 803 },{ 0x13, 0x86, 0x1F, 0xFF } } }, ++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, ++ { { { -1000, -571, -11 },0,{ 631, 803 },{ 0x55, 0xA5, 0x18, 0xFF } } }, ++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, ++ { { { -978, -523, -22 },0,{ 577, 803 },{ 0x7F, 0xFD, 0x3, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, ++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, ++ { { { -1033, -463, -36 },0,{ 469, 803 },{ 0x22, 0x78, 0xE6, 0xFF } } }, ++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, ++ { { { -1046, -461, -36 },0,{ 415, 803 },{ 0x98, 0x47, 0xF0, 0xFF } } }, ++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, ++ { { { -1032, -486, -31 },0,{ 361, 803 },{ 0x8A, 0x2D, 0xF2, 0xFF } } }, ++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, ++ { { { -1042, -489, -30 },0,{ 307, 803 },{ 0x82, 0xF0, 0x4, 0xFF } } }, ++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, ++ { { { -1001, -491, -29 },0,{ 253, 803 },{ 0x4B, 0x9D, 0x1A, 0xFF } } }, ++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -980, -417, -47 },0,{ 200, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, ++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, ++ { { { -1115, -427, -44 },0,{ 92, 803 },{ 0xB1, 0x61, 0xEB, 0xFF } } }, ++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, ++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, ++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, ++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, ++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, ++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, ++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, ++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, ++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, ++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, ++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, ++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, ++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, ++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, ++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, ++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1067, -482, 189 },0,{ 900, 394 },{ 0x67, 0xBF, 0x25, 0xFF } } }, ++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, ++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, ++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, ++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, ++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, ++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, ++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, ++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, ++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, ++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, ++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, ++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, ++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, ++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, ++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, ++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, ++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, ++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, ++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, ++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { -985, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -979, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -974, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -918, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -844, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { -865, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, ++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { -918, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, ++ { { { -974, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -979, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { -985, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -918, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, ++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { -849, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { -820, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, ++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { -849, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { -848, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, ++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { -987, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, ++ { { { -984, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, ++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -829, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -855, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { -912, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { -911, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { -911, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { -933, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, ++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, ++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { -945, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -905, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, ++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { -890, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, ++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { -892, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, ++ { { { -911, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { -911, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { -912, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, ++ { { { -913, -496, -35 },0,{ 880, 1008 },{ 0x7D, 0x9, 0xE9, 0xFF } } }, ++ { { { -913, -495, -35 },0,{ 752, 1008 },{ 0x18, 0x7A, 0xE5, 0xFF } } }, ++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, ++ { { { -918, -501, -34 },0,{ 624, 1008 },{ 0xB8, 0x68, 0xFC, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 496, 803 },{ 0xD2, 0x74, 0xE6, 0xFF } } }, ++ { { { -925, -504, -34 },0,{ 496, 1008 },{ 0x82, 0x13, 0xFE, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, ++ { { { -924, -504, -33 },0,{ 368, 1008 },{ 0xC8, 0x8E, 0x7, 0xFF } } }, ++ { { { -926, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, ++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -904, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, ++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -909, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, ++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { -773, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -769, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -784, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -833, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -696, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -696, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { -754, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, ++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { -791, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, ++ { { { -784, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -773, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { -769, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -769, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, ++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { -766, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -674, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -674, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -760, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, ++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, ++ { { { -757, -415, -47 },0,{ 291, 803 },{ 0x5D, 0x54, 0xED, 0xFF } } }, ++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -855, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -683, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -683, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -762, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, ++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -614, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -619, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -685, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -685, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -633, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -619, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -614, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -611, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -704, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -707, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -699, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ -16, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -613, -507, 195 },0,{ -16, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, ++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -608, -502, 197 },0,{ -16, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, ++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -622, -449, 185 },0,{ 48, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -603, -402, 174 },0,{ 112, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, ++ { { { -553, -381, 169 },0,{ 176, -16 },{ 0xFD, 0x2F, 0x76, 0xFF } } }, ++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -523, -431, 181 },0,{ 304, -16 },{ 0x3, 0x13, 0x7E, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 368, -16 },{ 0xF9, 0xC, 0x7E, 0xFF } } }, ++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, ++ { { { -547, -423, 179 },0,{ 432, -16 },{ 0x4, 0xB, 0x7E, 0xFF } } }, ++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, ++ { { { -567, -434, 182 },0,{ 496, -16 },{ 0xD, 0xF, 0x7D, 0xFF } } }, ++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, ++ { { { -579, -450, 186 },0,{ 560, -16 },{ 0x12, 0x1A, 0x7B, 0xFF } } }, ++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, ++ { { { -575, -467, 190 },0,{ 624, -16 },{ 0xE, 0x28, 0x78, 0xFF } } }, ++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, ++ { { { -538, -468, 190 },0,{ 752, -16 },{ 0xF6, 0x2E, 0x76, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -523, -455, 187 },0,{ 816, -16 },{ 0x3, 0x28, 0x79, 0xFF } } }, ++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 880, -16 },{ 0xB, 0x17, 0x7C, 0xFF } } }, ++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, ++ { { { -553, -517, 201 },0,{ 944, -16 },{ 0xFD, 0xA, 0x7F, 0xFF } } }, ++ { { { -608, -502, 197 },0,{ 1008, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -613, -507, 195 },0,{ 1008, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, ++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ 1008, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -556, -588, -6 },0,{ 944, 803 },{ 0xEE, 0x86, 0x1F, 0xFF } } }, ++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, ++ { { { -472, -578, -9 },0,{ 880, 803 },{ 0x6C, 0xC0, 0x12, 0xFF } } }, ++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, ++ { { { -514, -470, -34 },0,{ 816, 803 },{ 0x20, 0x78, 0xE7, 0xFF } } }, ++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, ++ { { { -549, -499, -27 },0,{ 752, 803 },{ 0xC2, 0x6D, 0xE9, 0xFF } } }, ++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, ++ { { { -557, -501, -27 },0,{ 688, 803 },{ 0xB, 0x7C, 0xE5, 0xFF } } }, ++ { { { -556, -502, -27 },0,{ 624, 803 },{ 0xB2, 0x61, 0xE9, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, ++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, ++ { { { -552, -499, -27 },0,{ 496, 803 },{ 0x53, 0xA3, 0x18, 0xFF } } }, ++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, ++ { { { -542, -494, -29 },0,{ 432, 803 },{ 0x1A, 0x87, 0x1E, 0xFF } } }, ++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, ++ { { { -540, -494, -29 },0,{ 368, 803 },{ 0xCE, 0x8F, 0x1D, 0xFF } } }, ++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, ++ { { { -512, -518, -23 },0,{ 304, 803 },{ 0x24, 0x8A, 0x1F, 0xFF } } }, ++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -480, -413, -48 },0,{ 240, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -557, -410, -48 },0,{ 176, 803 },{ 0xEA, 0x7A, 0xE5, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, ++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, ++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, ++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, ++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, ++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, ++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, ++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, ++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, ++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -484, -523, 198 },0,{ 880, 394 },{ 0x33, 0xFB, 0x74, 0xFF } } }, ++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, ++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, ++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, ++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, ++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, ++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, ++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, ++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, ++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, ++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, ++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, ++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, ++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, ++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, ++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -283, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -280, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -288, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -294, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -412, -515, 201 },0,{ 69, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -301, -386, 171 },0,{ 240, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -420, 178 },0,{ 325, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -359, -420, 178 },0,{ 411, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 496, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -301, -433, 182 },0,{ 581, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -469, 190 },0,{ 667, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -301, -481, 193 },0,{ 923, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -288, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -280, -510, -25 },0,{ 923, 803 },{ 0x36, 0x72, 0xF1, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, ++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, ++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -337, -511, -32 },0,{ 837, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -341, -489, 185 },0,{ 752, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -338, -539, -18 },0,{ 752, 803 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -280, -539, -18 },0,{ 667, 803 },{ 0x72, 0xCD, 0x17, 0xFF } } }, ++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, ++ { { { -279, -542, -24 },0,{ 667, 1008 },{ 0x7D, 0x5, 0x13, 0xFF } } }, ++ { { { -279, -462, -43 },0,{ 581, 1008 },{ 0x58, 0x5C, 0x7, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, ++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, ++ { { { -337, -493, -36 },0,{ 411, 1008 },{ 0xB0, 0xA1, 0x19, 0xFF } } }, ++ { { { -280, -490, -29 },0,{ 325, 803 },{ 0x37, 0x93, 0x25, 0xFF } } }, ++ { { { -279, -493, -36 },0,{ 325, 1008 },{ 0x0, 0x8B, 0x31, 0xFF } } }, ++ { { { -283, -440, 174 },0,{ 325, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -415, -47 },0,{ 240, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -434, -415, -47 },0,{ 155, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -346, -470, 186 },0,{ 837, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -341, -417, 168 },0,{ 496, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -211, -585, -7 },0,{ -16, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -213, -529, 200 },0,{ -16, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -214, -522, 201 },0,{ -16, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, ++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ -16, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 130, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -291, -386, 171 },0,{ 277, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 423, -16 },{ 0x4, 0x2F, 0x76, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -169, -405, 175 },0,{ 569, -16 },{ 0xD, 0x29, 0x78, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, ++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -169, -496, 196 },0,{ 862, -16 },{ 0xD, 0x11, 0x7D, 0xFF } } }, ++ { { { -214, -522, 201 },0,{ 1008, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ 1008, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, ++ { { { -213, -529, 200 },0,{ 1008, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, ++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ 1008, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, ++ { { { -211, -585, -7 },0,{ 1008, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, ++ { { { -152, -561, -13 },0,{ 862, 803 },{ 0x5D, 0xAD, 0x16, 0xFF } } }, ++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, ++ { { { -131, -500, -27 },0,{ 715, 803 },{ 0x7F, 0x1, 0x2, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, ++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, ++ { { { -211, -415, -47 },0,{ 423, 803 },{ 0x19, 0x7A, 0xE6, 0xFF } } }, ++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -312, -415, -47 },0,{ 277, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, ++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, ++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -140, -452, 182 },0,{ 715, 394 },{ 0x4A, 0x18, 0x64, 0xFF } } }, ++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, ++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, ++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, ++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, ++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, ++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -222, -493, -29 },0,{ -16, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -230, -436, 178 },0,{ -16, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -236, -429, 180 },0,{ -16, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -243, -479, 192 },0,{ 130, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 277, -16 },{ 0xFC, 0x2F, 0x76, 0xFF } } }, ++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, ++ { { { -208, -471, 190 },0,{ 423, -16 },{ 0xF3, 0x29, 0x78, 0xFF } } }, ++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -208, -431, 181 },0,{ 715, -16 },{ 0xF2, 0x11, 0x7D, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, ++ { { { -228, -422, 179 },0,{ 862, -16 },{ 0xFC, 0xA, 0x7F, 0xFF } } }, ++ { { { -236, -429, 180 },0,{ 1008, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, ++ { { { -230, -436, 178 },0,{ 1008, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ 1008, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, ++ { { { -222, -493, -29 },0,{ 1008, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -221, -496, -35 },0,{ 1008, 1008 },{ 0x0, 0x75, 0xCF, 0xFF } } }, ++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, ++ { { { -226, -498, -35 },0,{ 715, 1008 },{ 0xA3, 0xB4, 0x29, 0xFF } } }, ++ { { { -224, -500, -27 },0,{ 569, 803 },{ 0x82, 0xF6, 0xB, 0xFF } } }, ++ { { { -225, -502, -34 },0,{ 569, 1008 },{ 0x88, 0xE2, 0x1C, 0xFF } } }, ++ { { { -221, -453, 177 },0,{ 569, 598 },{ 0x8D, 0xD, 0x35, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, ++ { { { -225, -505, -26 },0,{ 423, 803 },{ 0xA1, 0x53, 0xEF, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -232, -508, -25 },0,{ 277, 803 },{ 0x83, 0xE9, 0x5, 0xFF } } }, ++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, ++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, ++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, ++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, ++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, ++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -72, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -77, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -143, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -143, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -90, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -77, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -72, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -69, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -161, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -165, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -156, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -64, -493, -29 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -56, -436, 178 },0,{ -16, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, ++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -50, -429, 180 },0,{ -16, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 112, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -80, -386, 171 },0,{ 240, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 42, -386, 171 },0,{ 368, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 624, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 5, -515, 201 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -43, -515, 201 },0,{ 880, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -50, -429, 180 },0,{ 1008, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ 1008, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -56, -436, 178 },0,{ 1008, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, ++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ 1008, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -64, -493, -29 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 26, -585, -7 },0,{ 752, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 26, -493, -29 },0,{ 624, 803 },{ 0x59, 0xA9, 0x17, 0xFF } } }, ++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 63, -493, -29 },0,{ 496, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 63, -415, -47 },0,{ 368, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -101, -415, -47 },0,{ 240, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 18, -436, 178 },0,{ 624, 394 },{ 0x25, 0xF7, 0x79, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 18, -529, 200 },0,{ 752, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 123, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 126, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 118, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 112, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 52, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 52, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 105, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 112, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 118, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 123, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 126, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 31, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 39, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { 120, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 127, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 131, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { 136, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { 188, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, ++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 240, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, ++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { 188, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, ++ { { { 131, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { 127, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { 120, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { 188, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { 285, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, ++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { 257, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, ++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { 188, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { 258, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, ++ { { { 188, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { 119, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, ++ { { { 122, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 194, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { 195, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, ++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { 158, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, ++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { 161, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, ++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { 201, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { 216, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, ++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { 214, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, ++ { { { 195, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { 194, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 880, 803 },{ 0x98, 0xBA, 0x13, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, ++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 188, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x65, 0xEA, 0xFF } } }, ++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { 180, -503, -26 },0,{ 496, 803 },{ 0x7, 0x7C, 0xE5, 0xFF } } }, ++ { { { 181, -503, -26 },0,{ 368, 803 },{ 0x67, 0x48, 0xF1, 0xFF } } }, ++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { 181, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, ++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { 193, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 202, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, ++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { 333, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 336, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 328, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 322, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 273, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 273, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { 336, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, ++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 368, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 368, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 410, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 352, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { 315, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, ++ { { { 322, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 328, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { 333, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { 336, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 336, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, ++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { 431, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 431, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 346, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 346, -425, -45 },0,{ 394, 803 },{ 0xF7, 0x8D, 0x35, 0xFF } } }, ++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, ++ { { { 349, -415, -47 },0,{ 291, 803 },{ 0x5C, 0x55, 0xED, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 251, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, ++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++}; ++ ++Gfx titlesonic_Text_mesh_tri_0[] = { ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(3, 5, 1, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(5, 8, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 13, 11, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 30, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 46, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(12, 9, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 62, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(10, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 78, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 94, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 110, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 126, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 142, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 158, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 174, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 190, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 206, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 222, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 238, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 254, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 0, 4, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 270, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 286, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(10, 12, 14, 0), ++ gsSP1Triangle(10, 14, 15, 0), ++ gsSP1Triangle(8, 10, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 302, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 318, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 334, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 350, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 366, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 382, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 3, 8, 0), ++ gsSP1Triangle(8, 3, 0, 0), ++ gsSP1Triangle(8, 0, 9, 0), ++ gsSP1Triangle(10, 6, 7, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(11, 12, 6, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 398, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(1, 4, 9, 0), ++ gsSP1Triangle(1, 9, 10, 0), ++ gsSP1Triangle(2, 1, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(12, 2, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 413, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 429, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(6, 8, 10, 0), ++ gsSP1Triangle(6, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 445, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 7, 9, 0), ++ gsSP1Triangle(11, 5, 7, 0), ++ gsSP1Triangle(11, 12, 5, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(14, 11, 15, 0), ++ gsSP1Triangle(15, 11, 9, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 461, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(6, 3, 4, 0), ++ gsSP1Triangle(6, 7, 3, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 477, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(2, 7, 9, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(11, 2, 9, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 493, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 509, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(10, 12, 14, 0), ++ gsSP1Triangle(10, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 525, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 541, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 4, 6, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 557, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(8, 10, 12, 0), ++ gsSP1Triangle(8, 12, 13, 0), ++ gsSP1Triangle(6, 8, 13, 0), ++ gsSP1Triangle(6, 13, 14, 0), ++ gsSP1Triangle(4, 6, 14, 0), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSP1Triangle(1, 4, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 573, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 589, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 605, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(8, 11, 0, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 621, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 637, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 653, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 669, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 685, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 701, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 717, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 733, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(2, 7, 8, 0), ++ gsSP1Triangle(9, 2, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 749, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 765, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 781, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 797, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(3, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 813, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 3, 7, 0), ++ gsSP1Triangle(7, 3, 8, 0), ++ gsSP1Triangle(3, 0, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 829, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 0, 4, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 6, 4, 0), ++ gsSP1Triangle(10, 4, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 845, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 861, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(6, 8, 10, 0), ++ gsSP1Triangle(6, 10, 11, 0), ++ gsSP1Triangle(4, 6, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 877, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(3, 5, 9, 0), ++ gsSP1Triangle(3, 9, 10, 0), ++ gsSP1Triangle(2, 3, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 893, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 909, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 925, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 4, 6, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 941, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(2, 7, 8, 0), ++ gsSP1Triangle(9, 2, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 957, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 973, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 989, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 0, 3, 0), ++ gsSP1Triangle(5, 6, 0, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(9, 5, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 11, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1005, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 5, 1, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1021, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1037, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1053, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(8, 11, 0, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1069, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1085, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1101, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 9, 11, 0), ++ gsSP1Triangle(13, 14, 9, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1117, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(7, 9, 14, 0), ++ gsSP1Triangle(7, 14, 15, 0), ++ gsSP1Triangle(5, 7, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1133, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1149, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1165, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 0, 3, 0), ++ gsSP1Triangle(5, 6, 0, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(6, 9, 11, 0), ++ gsSP1Triangle(6, 11, 0, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1181, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1197, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1213, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 7, 10, 0), ++ gsSP1Triangle(12, 6, 7, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSP1Triangle(15, 12, 10, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1229, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1245, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1261, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1277, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(12, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1293, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 10, 11, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1309, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(7, 9, 14, 0), ++ gsSP1Triangle(7, 14, 15, 0), ++ gsSP1Triangle(5, 7, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1325, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1341, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1357, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(3, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1373, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 11, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1389, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1405, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(2, 3, 5, 0), ++ gsSP1Triangle(2, 5, 6, 0), ++ gsSP1Triangle(7, 2, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1421, 5, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSPEndDisplayList(), ++}; Vtx titlesonic_Text_mesh_vtx_1[638] = { ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 273, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 136, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 158, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 179, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 240, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 201, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 216, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 214, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -381, 196 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -381, 196 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -509, 226 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -509, 226 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -490, 222 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -465, 216 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -425, 207 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -416, 205 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -399, 201 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -381, 196 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -473, 218 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -414, 204 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -381, 196 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -381, 196 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -509, 226 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -476, 219 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -427, 207 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -463, 215 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -396, 200 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -622, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -567, -428, 207 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -579, -444, 211 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -575, -461, 215 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -511, 227 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -538, -462, 215 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -449, 212 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -425, 207 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -970, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -933, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -927, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -905, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -890, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -892, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1058, -378, 196 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1017, -414, 204 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1045, -412, 204 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1117, -420, 205 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1064, -418, 205 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1060, -425, 207 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1039, -428, 207 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1013, -439, 210 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1057, -464, 216 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1054, -472, 218 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1110, -508, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1052, -510, 227 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 273, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 315, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 368, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 410, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 410, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 368, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 241, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 136, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 188, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 214, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 216, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 240, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 201, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 179, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 188, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 116, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 158, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 173, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 52, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 52, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 42, -389, 160 },0,{ 423, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -80, -389, 160 },0,{ 277, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -43, -517, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 5, -517, 191 },0,{ 862, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -143, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -143, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -291, -517, 191 },0,{ 63, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -169, -498, 186 },0,{ 457, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -228, -481, 182 },0,{ 693, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -243, -481, 182 },0,{ 614, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ 535, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -291, -389, 160 },0,{ 142, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -216, -389, 160 },0,{ 220, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -169, -408, 165 },0,{ 299, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -228, -425, 169 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 378, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -208, -433, 171 },0,{ 929, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 850, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -208, -473, 180 },0,{ 772, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 356, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -422, 168 },0,{ 449, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -389, 160 },0,{ 263, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -412, -389, 160 },0,{ 170, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -412, -517, 191 },0,{ 77, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -435, 171 },0,{ 543, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -471, 180 },0,{ 822, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -435, 171 },0,{ 636, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -471, 180 },0,{ 729, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -484, 183 },0,{ 915, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -553, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -523, -434, 171 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -622, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -567, -436, 172 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -579, -452, 175 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -575, -469, 179 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -559, -477, 181 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -538, -470, 180 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -523, -458, 177 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -553, -519, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -633, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -685, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -685, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -770, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -833, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -738, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -696, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -696, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -738, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -754, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -865, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -970, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -918, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -844, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -892, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -890, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -905, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -918, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -945, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -990, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -948, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -933, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1007, -389, 161 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -398, 163 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1058, -387, 160 },0,{ 155, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 268, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1045, -421, 168 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1117, -428, 170 },0,{ 41, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1064, -426, 169 },0,{ 382, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1060, -433, 171 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1039, -436, 172 },0,{ 496, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1013, -447, 174 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1002, -475, 181 },0,{ 610, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1075, -470, 180 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1057, -472, 180 },0,{ 951, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1100, -484, 183 },0,{ 837, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1110, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1052, -519, 191 },0,{ 724, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ -16, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1117, -428, 170 },0,{ 38, 1008 },{ 0x81, 0x3, 0xFF, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1117, -420, 205 },0,{ 38, -16 },{ 0x81, 0x3, 0xFF, 0xFF } } }, ++ { { { -1101, -398, 163 },0,{ 92, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 92, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1058, -387, 160 },0,{ 146, 1008 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, ++ { { { -1058, -378, 196 },0,{ 146, -16 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, ++ { { { -1007, -389, 161 },0,{ 200, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1017, -414, 204 },0,{ 253, -16 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1045, -421, 168 },0,{ 307, 1008 },{ 0xF, 0x85, 0x1D, 0xFF } } }, ++ { { { -1045, -412, 204 },0,{ 307, -16 },{ 0xF, 0x85, 0x1D, 0xFF } } }, ++ { { { -1064, -426, 169 },0,{ 361, 1008 },{ 0x76, 0xD2, 0xB, 0xFF } } }, ++ { { { -1064, -418, 205 },0,{ 361, -16 },{ 0x76, 0xD2, 0xB, 0xFF } } }, ++ { { { -1060, -433, 171 },0,{ 415, 1008 },{ 0x47, 0x66, 0xE8, 0xFF } } }, ++ { { { -1060, -425, 207 },0,{ 415, -16 },{ 0x47, 0x66, 0xE8, 0xFF } } }, ++ { { { -1039, -436, 172 },0,{ 469, 1008 },{ 0x22, 0x77, 0xE4, 0xFF } } }, ++ { { { -1039, -428, 207 },0,{ 469, -16 },{ 0x22, 0x77, 0xE4, 0xFF } } }, ++ { { { -1013, -447, 174 },0,{ 523, 1008 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, ++ { { { -1013, -439, 210 },0,{ 523, -16 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, ++ { { { -1002, -475, 181 },0,{ 577, 1008 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 631, -16 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1052, -519, 191 },0,{ 685, 1008 },{ 0x13, 0x86, 0x1D, 0xFF } } }, ++ { { { -1052, -510, 227 },0,{ 685, -16 },{ 0x13, 0x86, 0x1D, 0xFF } } }, ++ { { { -1110, -517, 191 },0,{ 739, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -1110, -508, 226 },0,{ 739, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -1100, -484, 183 },0,{ 792, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 792, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 846, 1008 },{ 0x94, 0x41, 0xF1, 0xFF } } }, ++ { { { -1054, -472, 218 },0,{ 846, -16 },{ 0x94, 0x42, 0xF1, 0xFF } } }, ++ { { { -1057, -472, 180 },0,{ 900, 1008 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, ++ { { { -1057, -464, 216 },0,{ 900, -16 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, ++ { { { -1075, -470, 180 },0,{ 954, 1008 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ 1008, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -990, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, ++ { { { -970, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { -970, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { -918, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { -918, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { -865, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { -844, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -865, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -918, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { -918, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -933, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -933, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { -948, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { -945, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -927, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -905, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { -905, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { -890, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { -890, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { -892, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -892, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -770, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -738, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { -738, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { -738, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -738, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -696, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -696, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -696, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -696, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -754, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -791, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -685, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -685, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -685, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -685, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -633, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -633, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -622, -451, 175 },0,{ 48, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -622, -443, 211 },0,{ 48, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 112, 1008 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, ++ { { { -603, -396, 200 },0,{ 112, -16 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, ++ { { { -553, -384, 159 },0,{ 176, 1008 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, ++ { { { -553, -375, 195 },0,{ 176, -16 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 240, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 240, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -523, -434, 171 },0,{ 304, 1008 },{ 0x24, 0x89, 0x1C, 0xFF } } }, ++ { { { -523, -425, 207 },0,{ 304, -16 },{ 0x24, 0x89, 0x1C, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 368, 1008 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 368, -16 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -567, -436, 172 },0,{ 496, 1008 },{ 0x53, 0xA3, 0x16, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -567, -428, 207 },0,{ 496, -16 },{ 0x53, 0xA3, 0x16, 0xFF } } }, ++ { { { -579, -452, 175 },0,{ 560, 1008 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, ++ { { { -579, -444, 211 },0,{ 560, -16 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, ++ { { { -575, -469, 179 },0,{ 624, 1008 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, ++ { { { -575, -461, 215 },0,{ 624, -16 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, ++ { { { -559, -477, 181 },0,{ 688, 1008 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 688, -16 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, ++ { { { -538, -470, 180 },0,{ 752, 1008 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, ++ { { { -538, -462, 215 },0,{ 752, -16 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, ++ { { { -523, -458, 177 },0,{ 816, 1008 },{ 0x20, 0x78, 0xE4, 0xFF } } }, ++ { { { -523, -449, 212 },0,{ 816, -16 },{ 0x20, 0x78, 0xE4, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -553, -519, 191 },0,{ 944, 1008 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -553, -511, 227 },0,{ 944, -16 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ 1008, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ 1008, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -412, -517, 191 },0,{ 69, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -412, -509, 226 },0,{ 69, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -412, -389, 160 },0,{ 155, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -412, -381, 196 },0,{ 155, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -389, 160 },0,{ 240, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -381, 196 },0,{ 240, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -422, 168 },0,{ 411, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -414, 204 },0,{ 411, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -435, 171 },0,{ 496, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 496, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -435, 171 },0,{ 581, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -427, 207 },0,{ 581, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -471, 180 },0,{ 667, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -463, 215 },0,{ 667, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -471, 180 },0,{ 752, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 752, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -484, 183 },0,{ 837, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -359, -476, 219 },0,{ 837, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ -16, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -291, -517, 191 },0,{ 130, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 130, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -291, -389, 160 },0,{ 277, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -291, -381, 196 },0,{ 277, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -216, -389, 160 },0,{ 423, 1008 },{ 0x19, 0x79, 0xE3, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 423, -16 },{ 0x19, 0x79, 0xE3, 0xFF } } }, ++ { { { -169, -408, 165 },0,{ 569, 1008 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, ++ { { { -169, -399, 201 },0,{ 569, -16 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -169, -498, 186 },0,{ 862, 1008 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -169, -490, 222 },0,{ 862, -16 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ 1008, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ 1008, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ -16, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -243, -481, 182 },0,{ 130, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ -16, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -243, -473, 218 },0,{ 130, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -228, -481, 182 },0,{ 277, 1008 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 277, -16 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, ++ { { { -208, -473, 180 },0,{ 423, 1008 },{ 0xA1, 0x53, 0xED, 0xFF } } }, ++ { { { -208, -465, 216 },0,{ 423, -16 },{ 0xA1, 0x53, 0xED, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -208, -433, 171 },0,{ 715, 1008 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -208, -425, 207 },0,{ 715, -16 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, ++ { { { -228, -425, 169 },0,{ 862, 1008 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, ++ { { { -228, -416, 205 },0,{ 862, -16 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ 1008, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 1008, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -143, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -143, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -143, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -143, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 112, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 112, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -80, -389, 160 },0,{ 240, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -80, -381, 196 },0,{ 240, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 42, -389, 160 },0,{ 368, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 42, -381, 196 },0,{ 368, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 496, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 496, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -517, 191 },0,{ 752, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -509, 226 },0,{ 752, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -517, 191 },0,{ 880, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -43, -509, 226 },0,{ 880, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ 1008, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ 1008, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 52, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 52, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 52, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 52, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 116, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 116, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, ++ { { { 136, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { 136, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { 188, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { 188, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { 241, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { 241, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 240, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 240, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { 188, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { 188, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 173, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 173, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { 158, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { 158, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 179, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 179, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { 201, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { 201, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { 216, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { 216, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { 214, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { 214, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 273, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 336, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { 336, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { 368, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { 368, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { 368, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 368, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 410, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 410, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 410, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 410, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 315, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 315, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++}; ++ ++Gfx titlesonic_Text_mesh_tri_1[] = { ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(6, 10, 9, 0), ++ gsSP1Triangle(9, 11, 7, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(11, 12, 14, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(13, 10, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSP1Triangle(15, 14, 3, 0), ++ gsSP1Triangle(3, 14, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(12, 9, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(10, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 160, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(9, 12, 7, 0), ++ gsSP1Triangle(13, 5, 7, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 174, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(15, 13, 3, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 190, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 206, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(5, 1, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(2, 13, 10, 0), ++ gsSP1Triangle(2, 3, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 220, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 4, 6, 0), ++ gsSP1Triangle(10, 4, 9, 0), ++ gsSP1Triangle(11, 4, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 236, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 8, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 251, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(9, 12, 7, 0), ++ gsSP1Triangle(13, 5, 7, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 265, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(15, 13, 3, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 281, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 297, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 313, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 329, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 345, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 361, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 377, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 393, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 409, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 424, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 440, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 456, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 472, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 488, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 504, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 520, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 536, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 552, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 568, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 584, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 600, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 616, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 632, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_titlesonic_sm64_material_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(titlesonic_sm64_material_001_lights), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_titlesonic_sm64_material_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(titlesonic_sm64_material_002_lights), ++ gsSPEndDisplayList(), ++}; ++ ++ + + // 0x07000000 - 0x07000100 + static const Vtx intro_seg7_vertex_07000000[] = { +@@ -2577,12 +6521,12 @@ static const Vtx intro_seg7_vertex_07007DF0[] = { + }; + + // 0x07007EA0 - 0x07007EA2 +-ALIGNED8 static const Texture intro_seg7_texture_07007EA0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_07007EA0[] = { + #include "levels/intro/0.rgba16.inc.c" + }; + + // 0x070086A0 - 0x070086A2 +-ALIGNED8 static const Texture intro_seg7_texture_070086A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_070086A0[] = { + #include "levels/intro/1.rgba16.inc.c" + }; + +@@ -3297,6 +7241,8 @@ static const Gfx intro_seg7_dl_0700ADC0[] = { + gsSPEndDisplayList(), + }; + ++ ++ + // 0x0700B3A0 - 0x0700B420 + const Gfx intro_seg7_dl_0700B3A0[] = { + gsDPPipeSync(), +@@ -3314,7 +7260,17 @@ const Gfx intro_seg7_dl_0700B3A0[] = { + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPDisplayList(intro_seg7_dl_0700ADC0), + gsSPSetGeometryMode(G_LIGHTING), +- gsSPEndDisplayList(), ++ //gsSPEndDisplayList(), ++ gsSPDisplayList(mat_titlesonic_sm64_material_001), ++ gsSPDisplayList(titlesonic_Text_mesh_tri_0), ++ gsSPDisplayList(mat_titlesonic_sm64_material_002), ++ gsSPDisplayList(titlesonic_Text_mesh_tri_1), ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsSPEndDisplayList(), + }; + + // 0x0700B420 - 0x0700B460 +@@ -3333,31 +7289,25 @@ static const Vtx intro_seg7_vertex_0700B460[] = { + {{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + }; + +-#if defined(VERSION_EU) || defined(VERSION_SH) ++#ifdef VERSION_EU + // 0x0700B4A0 - 0x0700B4A2 +-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { + #include "levels/intro/2_eu_copyright.rgba16.inc.c" + }; + ++// 0x0700C4A0 - 0x0700D4A0 ++ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { ++#include "levels/intro/3_eu_tm.rgba16.inc.c" ++}; ++ + #else + // 0x0700B4A0 - 0x0700B4A2 +-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { + #include "levels/intro/2_copyright.rgba16.inc.c" + }; +-#endif + +-#if defined(VERSION_EU) + // 0x0700C4A0 - 0x0700D4A0 + ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { +-#include "levels/intro/3_eu_tm.rgba16.inc.c" +-}; +-#elif defined(VERSION_SH) +-ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { +-#include "levels/intro/3_sh_tm.rgba16.inc.c" +-}; +-#else +-// 0x0700C4A0 - 0x0700D4A0 +-ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = { + #include "levels/intro/3_tm.rgba16.inc.c" + }; + #endif diff --git a/levels/level_defines.h b/levels/level_defines.h index c14f2523..3d8bc87b 100644 --- a/levels/level_defines.h +++ b/levels/level_defines.h @@ -17,41 +17,41 @@ // NOTE: Be sure to edit sZoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now. // TODO: Figure something out for sZoomOutAreaMasks? -STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) -DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) -DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) -DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) -DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) -DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) -DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) -DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) -DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) -DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) -DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) -DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) -DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) -DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _) -DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) -DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) -DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) -DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) -DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) -DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) -DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) -DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) -DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) -DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) -DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) -DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) -DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) -DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) -DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) -DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) -DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) -DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) -STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) +STUB_LEVEL("", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) +DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) +DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) +DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) +DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) +DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) +DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) +DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) +DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) +DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) +DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) +DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 20000, 0x00, 0x00, 0x00, _, sCamCastleGrounds) +DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) +DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) +DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) +DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) +DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) +DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) +DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +STUB_LEVEL("", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) diff --git a/levels/level_defines.h.rej b/levels/level_defines.h.rej new file mode 100644 index 00000000..dd81a9e8 --- /dev/null +++ b/levels/level_defines.h.rej @@ -0,0 +1,81 @@ +diff a/levels/level_defines.h b/levels/level_defines.h (rejected hunks) +@@ -17,41 +17,41 @@ + + // NOTE: Be sure to edit sZoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now. + // TODO: Figure something out for sZoomOutAreaMasks? +-STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) +-DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) +-DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) +-DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) +-DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) +-DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) +-DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) +-DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) +-DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) +-DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) +-DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) +-DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) +-DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) +-DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) +-DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) +-DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) +-DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) +-DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) ++DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) ++DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) ++DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) ++DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) ++DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) ++DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) ++DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) ++DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) ++DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) ++DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) ++DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 20000, 0x00, 0x00, 0x00, _, sCamCastleGrounds) ++DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) ++DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) ++DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) ++DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) ++DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) ++DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) ++DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) diff --git a/levels/menu/main_menu_seg7.01018.rgba16.png b/levels/menu/main_menu_seg7.01018.rgba16.png new file mode 100644 index 00000000..f1aad38f Binary files /dev/null and b/levels/menu/main_menu_seg7.01018.rgba16.png differ diff --git a/levels/menu/script.c b/levels/menu/script.c index f6db65c9..ee739a72 100644 --- a/levels/menu/script.c +++ b/levels/menu/script.c @@ -53,7 +53,7 @@ const LevelScript level_main_menu_entry_1[] = { SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP_BEFORE_EXIT(/*frames*/ 1), - SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), + SET_REG(LEVEL_CASTLE_GROUNDS), EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry), }; @@ -72,18 +72,16 @@ const LevelScript level_main_menu_entry_2[] = { /*25*/ FREE_LEVEL_POOL(), /*26*/ LOAD_AREA(/*area*/ 2), -#ifdef NO_SEGMENTED_MEMORY - // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not when NO_SEGMENTED_MEMORY is used. - // lvl_init_act_selector_values_and_stars must be called here otherwise the previous - // value is retained and causes incorrect drawing during the 16 transition frames. + + // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not on PC-port. + // lvl_init_act_selector_values_and_stars must be called here otherwise the + // previous value is retained and causes incorrect drawing during the 16 transition + // frames. CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), -#endif + /*27*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), /*29*/ SLEEP(/*frames*/ 16), /*30*/ SET_MENU_MUSIC(/*seq*/ 0x000D), -#ifndef NO_SEGMENTED_MEMORY - /*31*/ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), -#endif /*33*/ CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_act_button_actions), /*35*/ GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_ACT_NUM), /*36*/ STOP_MUSIC(/*fadeOutTime*/ 0x00BE), diff --git a/levels/menu/script.c.rej b/levels/menu/script.c.rej new file mode 100644 index 00000000..0fa2b286 --- /dev/null +++ b/levels/menu/script.c.rej @@ -0,0 +1,35 @@ +diff a/levels/menu/script.c b/levels/menu/script.c (rejected hunks) +@@ -53,7 +53,7 @@ const LevelScript level_main_menu_entry_1[] = { + SLEEP(/*frames*/ 16), + CLEAR_LEVEL(), + SLEEP_BEFORE_EXIT(/*frames*/ 1), +- SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), ++ SET_REG(LEVEL_CASTLE_GROUNDS), + EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry), + }; + +@@ -72,18 +72,16 @@ const LevelScript level_main_menu_entry_2[] = { + + /*25*/ FREE_LEVEL_POOL(), + /*26*/ LOAD_AREA(/*area*/ 2), +-#ifdef NO_SEGMENTED_MEMORY +- // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not when NO_SEGMENTED_MEMORY is used. +- // lvl_init_act_selector_values_and_stars must be called here otherwise the previous +- // value is retained and causes incorrect drawing during the 16 transition frames. ++ ++ // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not on PC-port. ++ // lvl_init_act_selector_values_and_stars must be called here otherwise the ++ // previous value is retained and causes incorrect drawing during the 16 transition ++ // frames. + CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), +-#endif ++ + /*27*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), + /*29*/ SLEEP(/*frames*/ 16), + /*30*/ SET_MENU_MUSIC(/*seq*/ 0x000D), +-#ifndef NO_SEGMENTED_MEMORY +- /*31*/ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), +-#endif + /*33*/ CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_act_button_actions), + /*35*/ GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_ACT_NUM), + /*36*/ STOP_MUSIC(/*fadeOutTime*/ 0x00BE), diff --git a/levels/scripts.c b/levels/scripts.c index 3067162c..d524b577 100644 --- a/levels/scripts.c +++ b/levels/scripts.c @@ -65,6 +65,17 @@ const LevelScript level_main_scripts_entry[] = { LOAD_RAW( /*seg*/ 0x16, _common1_geoSegmentRomStart, _common1_geoSegmentRomEnd), LOAD_RAW( /*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd), ALLOC_LEVEL_POOL(), + + LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL, sonic_ball_geo), + LOAD_MODEL_FROM_GEO(MODEL_SUPER_BALL, super_ball_geo), + LOAD_MODEL_FROM_GEO(MODEL_SUPER_SONIC, super_sonic_geo), + // LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL_SHADOW, sonic_ball_shadow_geo), + LOAD_MODEL_FROM_GEO(MODEL_SONIC_TRAIL, sonic_trail_geo), + LOAD_MODEL_FROM_GEO(MODEL_SUPER_TRAIL, super_trail_geo), + LOAD_MODEL_FROM_GEO(MODEL_EMERALD, emerald_geo), + LOAD_MODEL_FROM_GEO(MODEL_EMERALD_CIRCLE, emerald_circle_geo), + LOAD_MODEL_FROM_GEO(MODEL_RETICLE, reticle_geo), + LOAD_MODEL_FROM_GEO(MODEL_MARIO, mario_geo), LOAD_MODEL_FROM_GEO(MODEL_SMOKE, smoke_geo), LOAD_MODEL_FROM_GEO(MODEL_SPARKLES, sparkles_geo), @@ -88,7 +99,6 @@ const LevelScript level_main_scripts_entry[] = { LOAD_MODEL_FROM_GEO(MODEL_SPARKLES_ANIMATION, sparkles_animation_geo), LOAD_MODEL_FROM_DL( MODEL_SAND_DUST, sand_seg3_dl_0302BCD0, LAYER_ALPHA), LOAD_MODEL_FROM_GEO(MODEL_BUTTERFLY, butterfly_geo), - LOAD_MODEL_FROM_GEO(MODEL_BURN_SMOKE_UNUSED, burn_smoke_geo), LOAD_MODEL_FROM_DL( MODEL_PEBBLE, pebble_seg3_dl_0301CB00, LAYER_ALPHA), LOAD_MODEL_FROM_GEO(MODEL_MIST, mist_geo), LOAD_MODEL_FROM_GEO(MODEL_WHITE_PUFF, white_puff_geo), diff --git a/levels/scripts.c.rej b/levels/scripts.c.rej new file mode 100644 index 00000000..7c7d675c --- /dev/null +++ b/levels/scripts.c.rej @@ -0,0 +1,27 @@ +diff a/levels/scripts.c b/levels/scripts.c (rejected hunks) +@@ -65,6 +65,17 @@ const LevelScript level_main_scripts_entry[] = { + LOAD_RAW( /*seg*/ 0x16, _common1_geoSegmentRomStart, _common1_geoSegmentRomEnd), + LOAD_RAW( /*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd), + ALLOC_LEVEL_POOL(), ++ ++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL, sonic_ball_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_BALL, super_ball_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_SONIC, super_sonic_geo), ++ // LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL_SHADOW, sonic_ball_shadow_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_TRAIL, sonic_trail_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_TRAIL, super_trail_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD, emerald_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD_CIRCLE, emerald_circle_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_RETICLE, reticle_geo), ++ + LOAD_MODEL_FROM_GEO(MODEL_MARIO, mario_geo), + LOAD_MODEL_FROM_GEO(MODEL_SMOKE, smoke_geo), + LOAD_MODEL_FROM_GEO(MODEL_SPARKLES, sparkles_geo), +@@ -88,7 +99,6 @@ const LevelScript level_main_scripts_entry[] = { + LOAD_MODEL_FROM_GEO(MODEL_SPARKLES_ANIMATION, sparkles_animation_geo), + LOAD_MODEL_FROM_DL( MODEL_SAND_DUST, sand_seg3_dl_0302BCD0, LAYER_ALPHA), + LOAD_MODEL_FROM_GEO(MODEL_BUTTERFLY, butterfly_geo), +- LOAD_MODEL_FROM_GEO(MODEL_BURN_SMOKE_UNUSED, burn_smoke_geo), + LOAD_MODEL_FROM_DL( MODEL_PEBBLE, pebble_seg3_dl_0301CB00, LAYER_ALPHA), + LOAD_MODEL_FROM_GEO(MODEL_MIST, mist_geo), + LOAD_MODEL_FROM_GEO(MODEL_WHITE_PUFF, white_puff_geo), diff --git a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s index e14928ce..4d12129e 100644 --- a/lib/asm/__osExceptionPreamble.s +++ b/lib/asm/__osExceptionPreamble.s @@ -18,8 +18,8 @@ .endif glabel __osExceptionPreamble - lui $k0, %hi(__osException) - addiu $k0, %lo(__osException) + lui $k0, %hi(__crash_handler_entry) + addiu $k0, %lo(__crash_handler_entry) jr $k0 nop diff --git a/lib/asm/__osExceptionPreamble.s.rej b/lib/asm/__osExceptionPreamble.s.rej new file mode 100644 index 00000000..edd94250 --- /dev/null +++ b/lib/asm/__osExceptionPreamble.s.rej @@ -0,0 +1,12 @@ +diff a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s (rejected hunks) +@@ -18,8 +18,8 @@ + .endif + + glabel __osExceptionPreamble +- lui $k0, %hi(__osException) +- addiu $k0, %lo(__osException) ++ lui $k0, %hi(__crash_handler_entry) ++ addiu $k0, %lo(__crash_handler_entry) + jr $k0 + nop + diff --git a/sm64.ld b/sm64.ld index f9d769db..40eaaea7 100755 --- a/sm64.ld +++ b/sm64.ld @@ -116,6 +116,7 @@ SECTIONS BUILD_DIR/src/game/rendering_graph_node.o(.text); BUILD_DIR/src/game/profiler.o(.text); BUILD_DIR/asm/decompress.o(.text); + BUILD_DIR/asm/crash.o(.text); BUILD_DIR/src/game/camera.o(.text); BUILD_DIR/src/game/debug_course.o(.text); BUILD_DIR/src/game/object_list_processor.o(.text); diff --git a/sm64.ld.rej b/sm64.ld.rej new file mode 100644 index 00000000..d0ef111f --- /dev/null +++ b/sm64.ld.rej @@ -0,0 +1,9 @@ +diff a/sm64.ld b/sm64.ld (rejected hunks) +@@ -116,6 +116,7 @@ SECTIONS + BUILD_DIR/src/game/rendering_graph_node.o(.text); + BUILD_DIR/src/game/profiler.o(.text); + BUILD_DIR/asm/decompress.o(.text); ++ BUILD_DIR/asm/crash.o(.text); + BUILD_DIR/src/game/camera.o(.text); + BUILD_DIR/src/game/debug_course.o(.text); + BUILD_DIR/src/game/object_list_processor.o(.text); diff --git a/snc.sln b/snc.sln new file mode 100644 index 00000000..2157533d --- /dev/null +++ b/snc.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31229.75 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "snc", "snc.vcxproj", "{2F6A378E-9589-4239-8584-1496D0A8DB24}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Debug|x64.ActiveCfg = Debug|x64 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Debug|x64.Build.0 = Debug|x64 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Debug|x86.ActiveCfg = Debug|Win32 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Debug|x86.Build.0 = Debug|Win32 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Release|x64.ActiveCfg = Release|x64 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Release|x64.Build.0 = Release|x64 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Release|x86.ActiveCfg = Release|Win32 + {2F6A378E-9589-4239-8584-1496D0A8DB24}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {45A5CF87-1D6D-40EB-8936-C3FFC976537F} + EndGlobalSection +EndGlobal diff --git a/snc.vcxproj b/snc.vcxproj new file mode 100644 index 00000000..bed8a3a0 --- /dev/null +++ b/snc.vcxproj @@ -0,0 +1,150 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + 16.0 + Win32Proj + {2f6a378e-9589-4239-8584-1496d0a8db24} + snc + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + diff --git a/snc.vcxproj.filters b/snc.vcxproj.filters new file mode 100644 index 00000000..a8a65633 --- /dev/null +++ b/snc.vcxproj.filters @@ -0,0 +1,17 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + \ No newline at end of file diff --git a/snc.vcxproj.user b/snc.vcxproj.user new file mode 100644 index 00000000..88a55094 --- /dev/null +++ b/snc.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/sonicdecomp4.0v1.patch b/sonicdecomp4.0v1.patch new file mode 100644 index 00000000..8566949d --- /dev/null +++ b/sonicdecomp4.0v1.patch @@ -0,0 +1,114913 @@ +diff --git a/.gitignore b/.gitignore +index 9b111cc..bfcf943 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -61,8 +61,38 @@ build/* + !/levels/**/*custom*.png + !/levels/**/*custom*/**/*.png + !/actors/**/*custom*.png ++!/actors/**/*rainbow*.png ++!/actors/**/*stored*.png ++!/actors/**/*mario*.png ++!/levels/intro/header.h ++!/levels/intro/leveldata.c ++!/levels/intro/leveldata.c ++!/levels/intro/script.c ++!/levels/ending/*cake*.png ++!/levels/menu/*01018*.png ++!/actors/**/*wing*.png ++!/actors/**/*cursya*.png ++!/actors/**/*skipsqueak*.png ++!/actors/**/*sonic*.png ++!/actors/**/*metal*.png ++!/actors/**/*super*.png ++!/actors/**/*reticle*.png ++!/sound/**/*sound*.png ++!/textures/**/*10458*.png ++!/textures/**/*05A00*.png + !/actors/**/*custom*/**/*.png ++!/actors/**/*emerald*.png ++!/textures/**/*meta*.png ++!/textures/**/*emerald*.png ++!/sound/**/*drown*.m64 ++!/sound/**/*super*.m64 ++!/sound/**/*emerald*.m64 ++!/textures/**/*mario*.png + !/textures/**/*custom*.png ++!/textures/**/*rainbow*.png ++!/textures/**/*cursya*.png ++!/textures/**/*skipsqueak*.png ++!/textures/**/*curseya*.png + !/textures/**/*custom*/**/*.png + !/sound/**/*custom*.m64 + !/sound/**/*custom*/**/*.m64 +diff --git a/.gitignore.rej b/.gitignore.rej +new file mode 100644 +index 0000000..9f50795 +--- /dev/null ++++ b/.gitignore.rej +@@ -0,0 +1,40 @@ ++diff a/.gitignore b/.gitignore (rejected hunks) ++@@ -61,8 +61,38 @@ build/* ++ !/levels/**/*custom*.png ++ !/levels/**/*custom*/**/*.png ++ !/actors/**/*custom*.png +++!/actors/**/*rainbow*.png +++!/actors/**/*stored*.png +++!/actors/**/*mario*.png +++!/levels/intro/header.h +++!/levels/intro/leveldata.c +++!/levels/intro/leveldata.c +++!/levels/intro/script.c +++!/levels/ending/*cake*.png +++!/actors/**/*wing*.png +++!/actors/**/*cursya*.png +++!/actors/**/*skipsqueak*.png +++!/actors/**/*sonic*.png +++!/actors/**/*metal*.png +++!/actors/**/*super*.png +++!/actors/**/*reticle*.png +++!/sound/**/*sound*.png +++ +++!/textures/**/segment2.10458.ia8.png +++!/textures/**/segment2.05A00.rgba16.png ++ !/actors/**/*custom*/**/*.png +++!/actors/**/*emerald*.png +++!/textures/**/*meta*.png +++!/textures/**/*emerald*.png +++!/sound/**/*drown*.m64 +++!/sound/**/*super*.m64 +++!/sound/**/*emerald*.m64 +++!/textures/**/*mario*.png ++ !/textures/**/*custom*.png +++!/textures/**/*rainbow*.png +++!/textures/**/*cursya*.png +++!/textures/**/*skipsqueak*.png +++!/textures/**/*curseya*.png ++ !/textures/**/*custom*/**/*.png ++ !/sound/**/*custom*.m64 ++ !/sound/**/*custom*/**/*.m64 +diff --git a/Makefile.split b/Makefile.split +index 0503611..9fcec9e 100644 +--- a/Makefile.split ++++ b/Makefile.split +@@ -66,7 +66,7 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble + BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage + MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug + HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho +-COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree ++COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap marios_metal_cap marios_wing_cap marios_winged_metal_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree + BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny + SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest + KLEPTO_DIRS := klepto eyerok pokey tornado +@@ -76,7 +76,7 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh + LAKITU_DIRS := lakitu_cameraman toad mips boo_castle + PEACH_DIRS := bird peach yoshi + BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke +-MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation ++MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation super_sonic sonic_trail sonic_ball super_ball super_trail reticle emerald emerald_circle + + # Actor Textures + AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png)) +diff --git a/Makefile.split.rej b/Makefile.split.rej +new file mode 100644 +index 0000000..5e79157 +--- /dev/null ++++ b/Makefile.split.rej +@@ -0,0 +1,19 @@ ++diff a/Makefile.split b/Makefile.split (rejected hunks) ++@@ -66,7 +66,7 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble ++ BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage ++ MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug ++ HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho ++-COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree +++COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap marios_metal_cap marios_wing_cap marios_winged_metal_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree ++ BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny ++ SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest ++ KLEPTO_DIRS := klepto eyerok pokey tornado ++@@ -76,7 +76,7 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh ++ LAKITU_DIRS := lakitu_cameraman toad mips boo_castle ++ PEACH_DIRS := bird peach yoshi ++ BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke ++-MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation +++MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation super_sonic sonic_trail sonic_ball super_ball super_trail reticle emerald emerald_circle ++ ++ # Actor Textures ++ AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png)) +diff --git a/actors/bowser_flame/model.inc.c b/actors/bowser_flame/model.inc.c +index ae62573..9cddd1e 100644 +--- a/actors/bowser_flame/model.inc.c ++++ b/actors/bowser_flame/model.inc.c +@@ -78,10 +78,10 @@ static const Vtx flame_seg6_vertex_0601C000[] = { + {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 150, 300, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -150, 300, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ -150, 0, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 150, 0, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 150, 150, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ -150, 150, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ -150, 150, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, + }; + + // 0x0601C080 - 0x0601C0B0 +diff --git a/actors/bowser_flame/model.inc.c.rej b/actors/bowser_flame/model.inc.c.rej +new file mode 100644 +index 0000000..20ba74f +--- /dev/null ++++ b/actors/bowser_flame/model.inc.c.rej +@@ -0,0 +1,16 @@ ++diff a/actors/bowser_flame/model.inc.c b/actors/bowser_flame/model.inc.c (rejected hunks) ++@@ -78,10 +78,10 @@ static const Vtx flame_seg6_vertex_0601C000[] = { ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 150, 300, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ -150, 300, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ -150, 0, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ 150, 0, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ 150, 150, 0}, 0, { 2016, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ -150, 150, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ -150, 150, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}}, ++ }; ++ ++ // 0x0601C080 - 0x0601C0B0 +diff --git a/actors/burn_smoke/model.inc.c b/actors/burn_smoke/model.inc.c +index 36616b5..775dd34 100644 +--- a/actors/burn_smoke/model.inc.c ++++ b/actors/burn_smoke/model.inc.c +@@ -44,7 +44,11 @@ const Gfx burn_smoke_seg4_dl_04022048[] = { + // 0x04022070 - 0x040220C8 + const Gfx burn_smoke_seg4_dl_04022070[] = { + gsSPDisplayList(burn_smoke_seg4_dl_04022000), ++ #ifdef TEXTURE_FIX ++ gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), ++ #else + gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), ++ #endif + gsSPDisplayList(burn_smoke_seg4_dl_04022028), + gsSPDisplayList(burn_smoke_seg4_dl_04022048), + gsSPEndDisplayList(), +diff --git a/actors/burn_smoke/model.inc.c.rej b/actors/burn_smoke/model.inc.c.rej +new file mode 100644 +index 0000000..44b9430 +--- /dev/null ++++ b/actors/burn_smoke/model.inc.c.rej +@@ -0,0 +1,13 @@ ++diff a/actors/burn_smoke/model.inc.c b/actors/burn_smoke/model.inc.c (rejected hunks) ++@@ -44,7 +44,11 @@ const Gfx burn_smoke_seg4_dl_04022048[] = { ++ // 0x04022070 - 0x040220C8 ++ const Gfx burn_smoke_seg4_dl_04022070[] = { ++ gsSPDisplayList(burn_smoke_seg4_dl_04022000), +++ #ifdef TEXTURE_FIX +++ gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), +++ #else ++ gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), +++ #endif ++ gsSPDisplayList(burn_smoke_seg4_dl_04022028), ++ gsSPDisplayList(burn_smoke_seg4_dl_04022048), ++ gsSPEndDisplayList(), +diff --git a/actors/butterfly/butterfly_wing.rgba16.png b/actors/butterfly/butterfly_wing.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..90b812d6f137a789ec6dc5cfb80f5556768dcc21 +GIT binary patch +literal 2912 +zcmWMoX;>2n8{Exqc9XblA_NGSz#>5+h8jSWD9SEi2v%nn7|EC-G|2LJ$v +z=%~nq5hX@IvXBwZD%x-k07m&nM^cHKmng?%MTkAnK+8140HJ_G8u_G*AGCl2XK?y_DnZWfz2e +zZZx@Gp@Cj6zF^eVveaMl`!Gx{$0Rwf9rpoA$5~i9ZzWJJ7Z9ajW{Fq% +z5Rsxt7DLQqmbK`uv>@4L@ZtL;)y_fu`(%ym`p6Z$R>1R7I@{g~N-8HX&N{*;(-ony +zj8!uc#WhE|q;QXz8efh|R^_?*?IZ(^~%UDK;M{&!M_NBNc-BktDP4l?3 +zh(?kERH$Wen}>w?!#oAXW(3{;{I1)L@7!&#-^-$045Jbd)3$AZ|1gMeMl^SqHv=(n +z-DWA;p*pypTsjT(uZ9l|g35C(X*LaQc4;V-i7?EQev%6yc5X&4G@iNeL*Y!vV&i!# +z`;Q(*477Z{V;4(7QkiY&Y&7F}$z6#Txc5!oAx*F{xemB$!YZQFWt7@5Ay4iEfBvHSHSK!*_>IiQi|IoA9v&@^927Ij((vs;;YpDV;7LW4u!ObgyPyPb5AtOSX8doapO<5?}Zp +zpPEWbEbCcpalvYhOWmUC%y1DHGsn~R3#+|g1J)!+(ye%VIj1pi`v*k17&}E&$V4oT +z!1QDQGr_v*z^9yygz!FU>xQl?wG<#rQ%(8;GQ%#8w +zN2r6LwqDIgu1#*|!R0&BP4v^8f&U%@&$e2_1$)cIFzx(+%SP%v4`U3Qr3qd(L8a2E +zHBaG%INvZX7f~pWpgVQpsxdNniR{dB;uKZx+;S-+g$_B+YzCOd8~I#p;tVo8Pe<*l +z<*8+5{;W(^=yGzGlVB;&-JQr!Mh{FBVyRPNDk}uTSJ9K>CR%(fLiWUD(yW*2za9Z^ +zqCTjqi{80o1NmPv@%ufiS=YW&Ugnp>#U36fRL-NM=PSrpSwgjY!LTkeB8NNIsCa4E +z8zgb9QT5{+$3)}6%-R4ITm@*=8%I6rT8^1w+NL(g+BUi-3eBRFQt&vn7Oo3p8Dd=H +zRMR6WAaX_+I{R9@?bCs?4K!f2zCw>4Aqx_NTt8NPLQKse}4cWqc8?0ljag#+XM$Nt<5r8@X +zYHYI;yZm(}RL4%|yPF#OQ-S?{7Cv+QLZX&?`t +zU_dZz*tykI7w2hmA8Tnv=b0@v@V~(YLk2L*04A;@I^nXZ5f(vNTrCSUb#y)n7~~>f +z;o{%OBA_Xkh^2f)vd=+Lq(Ss#F(BvM$lcwpO+~$YA~giVzgj;o0YgKt-s@R9O2YP2 +zlKTUF8v;$Sq<}B9a#+QP-h#`ET>6A+Tqg%4gQ9k=TBXa27dAo}_eW~#D>+A*4X+*A +zuQ*!pnaFG)ft5a)&c-L80*w;iz?V#_%>|y~M_=J;@XfmwTDM^>@cJ2VrRQB=A=V5^ +zIkO60B03M9d^144v~8`HEzm#Hc3PXcw{!2%Z4K*pyEI|4dJXA6 +z%bb6^HlnpY%V@VAIV&#DAx3R2Wmsh=7RvnelsG +zg>AO5Pl<|OkRFE4sS2L{HlWz;dYO&;q2x#Isijo9>V#K$P@|J)CM#U)@(@!0Yey#~ +z>3&*(DDM4g%-~i17dG32pJCcKIi1ydQFy9%T4Qpto|TF>ECb8*T++B7(3zM%3dI)M +zqc86h=-(MyZ!2g6Om4(1dccYFq@Bc4we>P2&VP{>G52#w`8dfb>O#T&iF8MxB8#2a +zM{5De60$HvxdJ+xQt8zI%3?{gAsfHb9U?`U%^T(v?54fvcMp5_eWkVr>x}fb%5oi| +z8CxG5g1t&fW_!3uZ#4gjDL{S0BK^b<>na4&-%>w+?jbHG6!NoTVpozxL@?wXvOqy +z-LgI%4yIv>0=gtkuV$x?@$*c)OSi!3p^F!gq8rFmKn`i?-x$4E*?VO5I@?i@pKSqv +z%iNZ`4ClBmv-dnPF=V-ca6)(v4^HoRvJ{@$%G{~l23$$%)@=`Ls3SV*u`GTYah+T> +zx;aNt>18E{Y~H+CUc7PBK>LWmX!a6kvkd6X5H7UZnq++ +zp87M$@&s=cGAiZ*=E>waW}#8v>ntlHuUp^IlcHF1QCqpNeT|xL+dJV*dH$ogFxz&Z +zqH!f{mf4QYu +zSC~8JCAxQjPOuyi&34WR<%rSfc%HU~etmHfd-gM{L=wfQHynxB$BXio@>P{sff0+7 +z(N`W}SUvqo+tuvVu)~@Se+(8+-?Ak-kp6a|fCXs!lH>1>QTiBu&@DuI1AZu!B87;h +zL#Xl95^|3lgZElHPBZ}SY0C%(Il;SqW3Yrz8m}FNE{W`s12GhA@1qGT|t={4nFKTV^nF=?~ +zsFiu^yk2i7_NCN$L>B59#}!Qv7 +-#include +- +-#include "macros.h" ++#include ++#include "sm64.h" + #include "surface_terrains.h" +-#include "types.h" ++#include "geo_commands.h" ++ + #include "make_const_nonconst.h" + + #include "mist/model.inc.c" +@@ -84,3 +83,7 @@ UNUSED static const u64 binid_21 = 21; + + #include "tree/model.inc.c" + UNUSED static const u64 binid_22 = 22; ++ ++#include "marios_wing_cap/model.inc.c" ++#include "marios_metal_cap/model.inc.c" ++#include "marios_winged_metal_cap/model.inc.c" +\ No newline at end of file +diff --git a/actors/common1.c.rej b/actors/common1.c.rej +new file mode 100644 +index 0000000..6b4b9d7 +--- /dev/null ++++ b/actors/common1.c.rej +@@ -0,0 +1,24 @@ ++diff a/actors/common1.c b/actors/common1.c (rejected hunks) ++@@ -1,9 +1,8 @@ ++-#include ++-#include ++- ++-#include "macros.h" +++#include +++#include "sm64.h" ++ #include "surface_terrains.h" ++-#include "types.h" +++#include "geo_commands.h" +++ ++ #include "make_const_nonconst.h" ++ ++ #include "mist/model.inc.c" ++@@ -84,3 +83,7 @@ UNUSED static const u64 binid_21 = 21; ++ ++ #include "tree/model.inc.c" ++ UNUSED static const u64 binid_22 = 22; +++ +++#include "marios_wing_cap/model.inc.c" +++#include "marios_metal_cap/model.inc.c" +++#include "marios_winged_metal_cap/model.inc.c" ++\ No newline at end of file +diff --git a/actors/common1.h b/actors/common1.h +index 9a1b650..6bcad3d 100644 +--- a/actors/common1.h ++++ b/actors/common1.h +@@ -250,4 +250,14 @@ extern const Gfx wooden_signpost_seg3_dl_0302DCD0[]; + extern const Gfx wooden_signpost_seg3_dl_0302DD08[]; + extern const Collision wooden_signpost_seg3_collision_0302DD80[]; + ++#include "marios_wing_cap/geo_header.h" ++ ++#include "marios_metal_cap/geo_header.h" ++ ++ ++ ++#include "marios_winged_metal_cap/geo_header.h" ++ ++#include "mario_cap/geo_header.h" ++ + #endif +diff --git a/actors/common1.h.rej b/actors/common1.h.rej +new file mode 100644 +index 0000000..4780cce +--- /dev/null ++++ b/actors/common1.h.rej +@@ -0,0 +1,16 @@ ++diff a/actors/common1.h b/actors/common1.h (rejected hunks) ++@@ -250,4 +250,14 @@ extern const Gfx wooden_signpost_seg3_dl_0302DCD0[]; ++ extern const Gfx wooden_signpost_seg3_dl_0302DD08[]; ++ extern const Collision wooden_signpost_seg3_collision_0302DD80[]; ++ +++#include "marios_wing_cap/geo_header.h" +++ +++#include "marios_metal_cap/geo_header.h" +++ +++ +++ +++#include "marios_winged_metal_cap/geo_header.h" +++ +++#include "mario_cap/geo_header.h" +++ ++ #endif +diff --git a/actors/common1_geo.c b/actors/common1_geo.c +index 7f75637..a83e608 100644 +--- a/actors/common1_geo.c ++++ b/actors/common1_geo.c +@@ -25,3 +25,7 @@ + #include "white_particle/geo.inc.c" + #include "wooden_signpost/geo.inc.c" + #include "tree/geo.inc.c" ++ ++#include "marios_wing_cap/geo.inc.c" ++#include "marios_metal_cap/geo.inc.c" ++#include "marios_winged_metal_cap/geo.inc.c" +\ No newline at end of file +diff --git a/actors/common1_geo.c.rej b/actors/common1_geo.c.rej +new file mode 100644 +index 0000000..3fd24fb +--- /dev/null ++++ b/actors/common1_geo.c.rej +@@ -0,0 +1,10 @@ ++diff a/actors/common1_geo.c b/actors/common1_geo.c (rejected hunks) ++@@ -25,3 +25,7 @@ ++ #include "white_particle/geo.inc.c" ++ #include "wooden_signpost/geo.inc.c" ++ #include "tree/geo.inc.c" +++ +++#include "marios_wing_cap/geo.inc.c" +++#include "marios_metal_cap/geo.inc.c" +++#include "marios_winged_metal_cap/geo.inc.c" ++\ No newline at end of file +diff --git a/actors/door/metal_door.rgba16.png b/actors/door/metal_door.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..ec53d0b4fd503ea8f3e80da154f12156490b8aad +GIT binary patch +literal 5465 +zcmWkyXE$ifr-dtK(wP`i%N9_)QDREQK~GH#0T7s +zNG+v^qoR#VeXvD~t=2(MKm{X0#g!mh7c83y2net5hkNda^W}WF_nhCoyNLO7>})35 +z008WwHM19f?y}E?b2*=J`~Hmc065E{XRG5fmnV%1klIUKNv*$coC?FRcl9T!1lujS +zD-O>ZVtS559&E2YFo+eiB>0a~>;aV)L7kxtm{cVf%SF$EW)Afjs}@>O7)8AS&|YgB>ne5<+l-AB?=#IA+p53UiPtLX7zii?DsUK +z4rGsa)S{+*y-T1{o0dg_Nx*5%P)|uao9GHxA|fh_sN=C*``uoI%f?~looC}iRXW$Y +z@m_d#LVgjPJcZQ&eRu0t%pUy(mEz6#g%LcOK3f`btr4W!psg1rRyM$ofB +zMY_A!0FGvc2%r85bV74PuslvBq5^oEU0~zM;~uag*jVtJIR5-Nm}J*qV@u9t{qm}i +zRI;L=y1Tfo+MVC$3M(5u^;LszqPx5CLtVKfX#&G9ZU~^A;bbB73poTe!TouFm|C}u +zs4=WJfjP(IMi1gi%mUNOwscOOpmrcY>BHr+99?167WLt1t}al%YE6&^Ooi66#C7hn +zdXvN%i7muo1QAKt`Z0L-MW=6qG#afT5?_ED)b^tG8~D}Y;=`oW@Wcb^k0rK*SXMHx +zUk)|WW;1WIN~s>p+qvo8ylA0_C^r1gHC{BTy|TVz3XWZyHY?M +z8+9x4cVat1dACOUw{En4Ql4PNUrJ?pxl+>`sLYyRS!E^d +zlSzofvo&Q^d))3}7g=YAE)iue5iuXB2@3z~Ro5Aw(@5VdLG@1&%xm~o!01Ync+tLU +z2)kpyf=USou6J)iPA`bWA=VDRb62oURO%Z`> +z7L+f-tHxZ-#fKJwgmPWhE9xJ6A{E}u^7e*n)Qk!gdvlwGWj=Mf@sHWMufI;ttm|SabP3;{XZ`&eYAL=t~Ld +z!}ARg=V$_{TQ)iu*vk(hZozLq6MPturbzWc8Pn@3$)I(x#d8o_13>L%Ac%e-8kV@laSZlrq&~V?TCzbp#4)i5sL>g +z0$o-bh{O`iaFqJvr(u++-!3hg9jbRp1Mg>;SC2yH=Pakvo$KP_wLYv9BButrB2ius +z&h4dAIcNOvjldI+(xvvfI+QT7ad7S;o_e~z$JMPyI6*&DLe%PyA2`$=CifTPt9f|X +z2bTHy45NJ|345xEH-G$_?+z=HOJUnkuV}Jo1$t6LU+*Sw7%<|huv*{Zi>gL*sXku( +zUbvVO9Qw?7-%fb~M1sQS>WgmXcUFKp)FnCKV$%#Fj1{w!c8Kb&O{H6;%;i0ALY1WY +zh9BA*6u}%erc9eZpKo4edR@ui7s=5YkdWp0;$P&=sTjSq5B1}!n3pqafTqM46r^0b +z9E5E@Qhg9g;IUeQc(dSFAGd0JIWJknneopiaT$ML>?nXzl&v)aYl?FrLq3dQl?3R& +zXXPWRV&PRNS?Im&Vz1P}gSLBid9;acZgnDpG7s1HA%c9sD&n2v(lE2_{ +zH12G^kVEwATXHh1tn$nw?ZzGM)!Fo(6L?0|WhtG^jXhg3O(grTf7ypY*La69aIuqG +z3l)CA7gPZ|lB4@)7%UdVKDJio3Nl6oM12hd?%Lz;bF!#Y-cVjP{U0BNE4aVc!>sOO +z75x|zDsu-h8gd2e`$?&Pp|yvAaz*6s#XEPIX1#@jf5j8KkDZh$2C2S#TXkoDfF!6? +zg#UX@K;N7Kmn9<)YeB=BV&K=yGB~6pMxQ-aPIZ@5wO!J7?_5?1a*#dKWBbAQS0=dMQKq +z3_%wP^^rnYM+p%JrX8^2Ff +zDV8w|lCqO}+da}2s{eF(5Tg^ttraAgFdP4~s&}*_tXZZpzNn2|Hyb=j-~`dCsMEzFT+Q!2 +zDTj-(nG0q)yxPi%FQk_7WP3vK!)bxkncS$nLFqz9=3ji;CD$HwpNmM +z`vudw;3MpJ&icpucWVMzeV*kHCig&E=h>s9A2Tp(j6jrJOJ%3z3Fs>W5^b0_oU}Er +zd3*yCGaO!ignz~sXYbyBWGnmND9)_53#eITaI)7WLf?L;p!6+w2z>LmiV^GqVNF +z-drc+MMw3Uj<9k^*6vw5;T-C|P%&cYbS9?pio(MaR@C;mYSG)N#0iHd+A+`->%*F| +zbA*}U)|`;r2z=@p&oJ}kLtR3{YK;Rg${ATRA%mGLaQ-IkYCQ@4~N6b!-ZB5 +zatw7T9I7`cHJJ4 +zeKVd3?R)UbExfKiyILDyd$vHmZ%dxk +zU~Sq5m3*K=j#4aLWj6$u$&CGnao5M4(hBPI#z~RW%cE~1f&3S~x^8y-WE<9>^Q;9E +zi#BwPQ!VdJ6TdRS(^WV0aqm1Hu`tU3luxtb$Kdiu>{X#ehM$64|H34!U(fsswOW#gdL?e})C-m~ +z_E%8MWL}8mYtlA58Ltn%XI4gNKC#Xed+J}x6h{J9N3HsFE$5S}8YLr4`b7>2d@6s8 +z3XzqGIUDyYshB9@U(Ws!si{d2H^p!ZA}+xXcG50v<)(D}G1pW9ownc`qAisNk#Y%1 +za1$$YbKD}!PqARf%Ej=xpN<-zcaLnh3g2dP__~*Hy}?>4R9-Wrv&+u0x5UcD^ePXy +zCN2J~gLx?^o)=2*>Z#qT)p7$B)QAhC_qCD=^HhFH!38cWMEN8a^4sQaqYkif8-ctI +zjSLi*2^RE6wKu@>zu26o2KDd`zK*k02$8SKqHVjSC_e=F&@UpMy0sEh2 +z6>&StwsYc7xD@`k&3L~M81D&)h&Qm#`jh^cbE`b*9_#SD2UV#9Py$fj+Dsh6o^La4 +zQZbVyQU;!eS=Cw^)(;pQ!s?QwR0oef^@Tj|S>(j2mK>_A%vm+(O70jak*TlB>&!mp +zgTn^>o3MN@Rs3JZFN@l$s{dyt(XF@L?d%BO@kVgE0gt>yKX+~(M?Z+grbkf`^jb9G +z*EG%b=iG(UDb!EJoLWE9&h`JJ4Zbb%vX~@_BSwR*D&{tLTgau(&ex0x;&xKY8Y~xP +z>3$Ntjc*-tP#6%}o#h*e(2?O1OMoYjuUpvwCT9OB*gJ!mVI?W7Q(ue9mb^x@wDxz< +zylHg;SsV4|YK#t8MGPFG;#OHM!DXfS@jV@=dF5^JA)qFXs9dYh1I*Mz-B>Z>-}XUD +zHzTK!AH#7+OyPuYkPy!G?j(2POZD3bk})g_E~~Yj*a4l+=DV)SzX(4w{_zZ-i$@QI +zXQr{5=Zu1`Rob*G;EMsZk2Lt%Yvf$9`ssHT%DY_hS>0m3l=(KDzNUVv)2-yKpJEuv +zz!>+7QtN(Ovsf^I!R7_S@ZXt9Aft-m6+i{!>Xjb#y>3qq7qXcJO-T{>i9@EoJa%CL +zTZF?cCV!D)2J>`=Y>?fWUVtqxkW$~SB{y&+2}96%)JZ?@tkfdDBxNocK_+l$&0^0v +zW&wmW +zc+Cj%4aM|BDfR*CQ|%($(+@W96WqEQ&E!CzT@<-7it0R)Nb~+n$wH)MBm%Ggof($K +zXU~a>3Zni&)vg$^*D$<2>|s4-Lx0D!=$y+tIWb8MH|nk7Z1aEEAsRVTZEmaTfcLg6 +zxG{dTtqm<9sEW7{Pqltf-#$}mtBtXt<^)$w{)<_DC*7j3(YO_b95v>5<5L%q>679& +zDgtp2heGa(nYsMZ?TI9H$1fBzjtu8_TYq$jo<{~?&AH>@$&EYNGp};)aHgsBjhveo +zyeg}YbNA+w$6?=Q5RsS-GzQ$h3=z6hs)C=L((P3#ik~E;T3;sVB>dr%_2B +z_}r=bds^hqO8PW!zSXZjfa9$@j=Yo;2W$&}5&u3rbnNJ$MD^_;eD5;Vtc#GH^ef*# +z0pWyYo)a~nb*7p>mM;`I8R*p2#JoP1Di`_jxzTAc-T#5Q&y8oEt|5@Wp^;~ES+;LR +zFxq}IQT&keZhiSX^lOZ6cO*90H6F8UbgXm*v6{iQ$fj$+JRSLFsJrUKZMu-R|Bq6eQt(w);&^7ufy)hnVhgnh+qXdvX0XdD+>)ww0Waer$oIrPgH(6S2xQ>$Jb0@zf%#5 +j1?gU9anJKl0uGq+RZQ*~-;V!(qJrqC`LoZ@A`Sls6jS)# + +literal 0 +HcmV?d00001 + +diff --git a/actors/door/metal_door_overlay.rgba16.png b/actors/door/metal_door_overlay.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..adfedc0331434fbd88ee767f24dba387035466c6 +GIT binary patch +literal 2283 +zcmWlb`&Scp0>!_RNis#EV6N?^KZ8uBpF1BbV2t}v`j-s`#M~9cN?y(|81yoq~hkHN&z&)RHE2#9h +zeH0-I0DzCxlCtg%@&89AebWW|_KgD|YqX}28HHKf(74`LGft9$#8=@89qJ$^PW2^T +z!=xHP97jYYnQW$JL@@&{4A3rNg6HM_e)I$ns^Pk8Q11)q9KkrDi;9L9iLfO@b-e`3 +z&S%=f+1_WmqiC9$N$zGt?$1nk!PY;-E&rgf8<%Iadcn;Wxqs1&6E-TA93j^WFbtRB +zz4r3;8bY~3^CR!|LVr1^ZvwW*}*m3en1%$e +zx82J_U-wI3qwpOZ=DrS6{Zs`BeELhMGRBomN?mjDNQn`tJfuTaWo$gYFh2OyjEkvN +z9_rUoSS(ocEta-0jVqk)0{Iv4yUSchU!Z1QKX#H-YXe>5P-;0pk^?3|>4Og1{X6$=*_8mQq{ko +z+rEG}1s_+WW#9oKo){9C@QvICvsmMDYWy8S-XK`^95FPj+@mZT+j(=$9G}UiBW?4e +zUp7xb6$`1>SK!P(I&B&xsx+6(cyKi&XEK~xQLNVg08fb@!Jj&BvsXGnM;9uXkT&Tp +zjC+jh><+(9%=2A%0+HV#KcrDMEjDZLttK@^tp*=jz-?#aLrhwJjaaJ(zAqtbivx9e +zBu|NKaxdj?=0e{X#Yqv5xD)ggNP|kjtph&^0z&Ycy+!tJ2BQ1laIL$7zxOvIlI}pio*R +z>oJPY?yg9?`mDC+xtIj +zs%~C&Dt6Kq6MN$$?8_7lM~>G+RbOW@PF4LJ4SgIr-H#Z;n0}|z?_mz-7vI+wD~=((A*8h_;|CJYKe~bcFWg9IOx}0>T!AN6o{E% +z!-Gt<@%%w~E0I^_y>$o6lgktk6_^cHzOfA)Com6-Y`##VJ{D=z3{tLk{KL5x?A+Rx +zJ+BetiCB}&&g@9cRIx4M!6Zu+WA8w0$FayfLJ2K3@&8fh;r7vmc$u=bStpFZfsf2d +z%z*A50j-*Aobu{HlDVCs4z;3LCqxB3t4w@jbZ(>%2#RyZm4u9QcAIKg_5FH +zoVQDxHlV`15W~iN;=dcDnLo?zz_3666?5rbe=KH+&66ZqYEgapVpy75vQE2RDn^Rqa^jL9slQ`T}VY +z>MEgiQsR^C<#Xe?$!TO!7;{T;Nl~^k%-9;>-aX&-();shV!UpJHb1OBlNCo8Z$V%A +zHN8d}(O-HdAfL~4u78<~<;6^>5$&lqU0ewihjqdy6;R!N;0STMrNgGW@f +zQY}8~9`1?C0(CsORmUU%-+5Zs_t8CS&X=_wfsQ;R-B?#ZPgCi*o&KUvM{SWM|8T&j +z=RqXK^vTxj;(Wz-qQr}L5&GY?_X;IHl?as@xjBaV=NMl*Lt1v?Ah8>9uISAlX%<`};vqc)~XEie3zX6k*kmN2NZQNi!| +zT!yZtzQS%6m!{~9-_+u}N!PFXx3XO%-cB5t6&=bXNzOdNP+v<&z@38w;xfi?sbhNf +z-4k(Mw!CLHYLzB0L>rJCwBhw;np`N23S|7 +Kr+k@AJN^f2iJ4RY + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald/emerald_blue.rgba16.png b/actors/emerald/emerald_blue.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..545ac03a6c532fbadca34b9ca69c357ccd656f40 +GIT binary patch +literal 2165 +zcmV-*2#WWKP)R9FdBm+f-f$Pq;w!0?;2tX;d3tt6HF&5Q0MP^cFpH+&NOWo<+sNnw!0>l +zvxqqe%qAcJ3Kyb&-i<^)^1Z6@T2x+EE9q3s!kW-0hBpMuJf9_*{>Z5S4qB0~g<93PJ(8Q57 +z%bgLpUqvnAQ#L@qg7oH3#^&<{b2^E2%fmBGomvc+xcugdotQ26QHu}u9w+NNb68H-U +z|LMMqKi-%4^0~zUg23+^=#|x6UyQ2FGQ42iJl}5DIGt~?$Dw{+;hPZ3WHO2Aw2S96 +z=nP$uoVr1BK;C$A0RIHzGyGdm+gQ)3G;GZ#wVJFd^`uCy8MQwtup7hXzT@R3_4s-$ +zpaBGL(e&i}bOjC04YyY$YIp5|jPaVJlRM-aw`RaR1HMm`w#H|Z0g{`4USydmPX|;s +z-c3?YL3O!kNyR*EPH;?dx^kMY6FKjB`x6_<1>Pb(@P_-3XFh{E^oj*nQXZQ*>Pp0$ +zg=B29gu6@|@dV0o7*$U +z|MNeP29)H+l1+YI13xKo6QR->ja?`i$vMZ^5>m}^L}ynxpyQ^IE%GoemYFD+k_B8S +z76OZC2Gm>t81i5Vt6!saiO3#fj@cX#u$`exf;f%;3WuW1_SLzWdjR +zuXj`n?9a_q!3~TD87s-Is(R|c61|WIl5V$exeh$1M5*1Mm_teow}dL;OBJg?o+!PB +z7flZ|$cA-?kc{MHM_z4KXGH5^8*#sF;_H1IpK)SII;JUDIxHbgM@9Kcl^ijw+#hgk +zcO?DU!N^{66BKHjG;ZOpTK^(Xp&@S#A^H6hLcrwzgCsAg-E4q-UdY8O9JFzs~1R`7BPE|drE7`foL>&~2oFh}g6+1YhzKQcRukArUOT43Rmkm{O0tDj*kITPA=3*Ug69I}f5y0SxAY5x{+~i5 +z0Sg5?N6U?L-c8YJlA=T8lpe?MV|9p5)c|vCI?@Ro7!k0G(-i1frX8o~c${$N-DpjH +zEmzZCK2xk|l!!JcSjsHMEEAj10*O`oH7=yJ+)z87&ByALdY{HvcGR30`IwchVr1jMT(v-Ct!hg3fAADJ5tN4g)R^JiOC +zyB?{&#R@b$?4p>>eVrdqB(D7Z&mH8V#@WaQQ-1*=6kwHuqa=dSI}AM11C-$>YW|7# +zeTOop{xhT;xW9evV~fIl-}bz7qkjzX*Lximp*o;8&9v@I$_|WkkOZafN2fKw)q92gw7i^cz3voQ}-3b$)^~IDjl|xOKL@f +zV;W@{0a+n6K)K;)R9y4XavIg9mxI<3_!n9&nY5?00000NkvXXu0mjfp6m~+ + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald/emerald_cyan.rgba16.png b/actors/emerald/emerald_cyan.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..f755945518964912cc789fb301ccc98cd6e1e996 +GIT binary patch +literal 2059 +zcmV+m2=w=fP)nC&<*J`AXbbkgg0SxdQ +z(kldZtn~eP+734l^sYM_0 +z`43G_-!)BoUsvIBvqg*M4V#SVT4XdL$k4vyd_VN*1PIMPXg-A1fK;0W^Up;5g|Szt +zO>4aQJr+#oGA)>I0J(*BgI5-S#VHZIt*)(*zJPINv893(n5e4Dv@RBD-_-aR4hn&R +z0eVJVyp?WYG$3G4KPylzM1hqueF^;n?e9?V2L227YSybO2WdURTU?rZHX05?7e#1I +z(6p-+@ql@7(hch!Lixls2H==(Idcg%MOrbwviHoMbG2R-L%8h*5T^MJ%!!al;p26x +zwkmdJHJ_PeJ7|qg17w4cnzc2E59B-32yhG5f<3FH1!`c&QScTmO$fe#(F1=a`9xzMva4ntU6K +zr)aiX8rA+Y&>D)DG^+pr4T1!$yEMI3w1u@QD7b)LzM67C6YI_~WL`1!48qFhonXMI +z;foPQc{G=!gu?Cx+6Op1nk}<1i^@HfZpE8IR~Q%GCZ?Hgnn1x9-WHz|nXp90H-N|_ +zB__k(f9V69-1Dj-6~_1#dHtA)9EouFK$&wfFe_9gGX;N$O$<#u%MZkud +zQH7~ZM?j#*8D-7@`MP +zM>U&U04NY3(`D75U6oe6Tr5T-8U_#ou8b7p6o)5cPpM{=)A#23f?(85zA=1sOd*QT +z`S#k^R7U^XUEw{OAMmkewR#!p=Dp^W(AV#Z@3mQ?snNu%0U|1 +zMTO*SM@ss`#>a>9BMpr;2rcJ=%HQ+q(YL<)>>Z0f9&DD-H3HPcw}9(DP)7=nX{GPi +z*DA91Y=wilx18PI3P)n8Z@aW*UDxWa5>Q|QK}Bp(2Y#W1nnvch>0@#X +zA7_p#Cx9J`T7)(3br`Z3IqnEEtDTPw@BUW`%NK;Zze78(TN&;-+@ax;4TH7>iNWc4 +znOnk*tpV4?&lcvTrl#c`Ox4t2i3g*L9^kahWnzGN$F~Uem}^!+FD$|MPB>rzi;VMu +pb(=1&rfDeQnt`pgcFfJR{{Rm%zc=O!LY@Es002ovPDHLkV1g+!=F +z+8i46axHW#kD|_f4g=gB%IN5f9Rh<{$9g$7Q04mzWeJbK<*h(`yVkfC2a%3r#E_}m +zS=X%V8j}^BuFG0rc&9DxpUd_ah)HW#QKdlAo11!3d_mBRF$^b5>Ioh%yL%9xQ0 +zKp>8p>jiKdDS06O>wa%{SerFry^H~X7sUmL8_Gtxtwx9eoCqjU +z6R|^F0q2Ad`yD7W!(tTpI +zMqYNg^Jg8s`;5xG?4&!C=f&3BgJ@k$Bp8#XIox_1YswaINvUnNQy&(o4E2Sbzz}{< +zjTG=PmfE`N^U`gLFHA_QR6$wHtu~wj5e|?sr-~_`l*P#T&ad>&9uY}|!wLolI_Z|A +zX14x!5k5Uc5ZIQHTuB>`QJz8?+VsvST5%yDWCdf|EM{X)^()AGpZERy(E5D6C~`mq +zY<155Ka0yt1yaG!%$rf@#Nq9PCZBx&^SVK?r)WB9B$TbXDmKY8mVK|izU}S#8tut$ +zdzk_Y!mTnehtsfnqmdvh<+yf<2&-63IsE$VA+rD>5u@6q7Jg6VFG+3JH73;Z~( +zH}aA?01Y-{oE!72V6Mm~8`5V!b$YOeETr?iwFh+o-I_k-)(G`d~TeM*yT_j4$ +zgdJ)|YDuL5aksE6HjOK9pGSe>g(Ys`r7`gvdr+%0PMYY5Iyx3yazHkqn?1FSS&tkA;i9C5#2sWtysfHLXOUiVPRDK@I7 +z=LMh~KT}{dQv2X6@IZNRx|wsSb#GhMPq!H>oq&#m&WCfI%tF?t&RI(Dv1@h(qh(xHF&5XBzGlpheiJ{4!dOWJ){fohyK#*&tkV#4*oi-9{()>X}S+JcvRCz*n9T +zxc3{+qydmRm2ts((%Pninl+-#9O{v-`rJ~$qOv|@L)zSyEBRh2xOuGR +zo4~DxU~;SRkbZSP`2~_Tj9jKIM4jo}I}841q!FbEaaJwWXi-E{5MF-I`61${s;;h= +zt!C6Gc}H$r>bT7|y__Va&bd+>*m$$R8k@kc9V4__t3oA7jOw{Qi!F8HmW6>as^Opn +z2PMa?s771;d_!7WS84-7hESMIt>>du=hs!LnkoP(Fcfl(iU{q6>P`<}ogxYV-`l2h +zx8YFGJH6#ePdEU8Rvg>#GB{^2()!1}7;uXTLI4WSqLD(6>-2T}e`**<>3r70#hQ+F +z_O-v-7yV$iYYSNFQ!mWnoF{xZr;hq>zEnGV+U62tyf#PDZM+^Pe(mJDfi;2HbUtaj +zfeSc+yRLi&&ob-9>!env+7gICl`IU{oAba=wbzgp5CZXoayBBPd_k+@bxQ38Rxd>3 +zH>KNC2kJt4n9T0tVO>p~s|0od&i{@D;Fj4rCRH;c1#6p4Mru#T7w_CLe$Mk2*)r%{ +o9e0pxv7*s6;V&{dy7x=6)$Y+o3sF9_5y~)Do9?1iGQKWAmcOFa8{ZpaMF*9Oy5-O)^pqwe6d4 +z_PKtv{dlrYPWy$8n-g5%ToJ!61;}#CXeqySq8sYIwim&QA&jsF1QuxyfDt8$6Ps7_Fb~Ie&|I&<%FDar@kc8 +zva9Ueoy`T#262Sz5HV~6d)H^Szm%ptL6CX#h2C!lxWaXP9WR`v+IthGSCY^7yN}EF +zmMZt&fhn|7aGtwTdjvLV<929m6c5h*$s2A)oezT*a;y;&lehtaeM&J-l)TF*pYtHH +zWsum%_|870@9aLglQXe*@-mI)e!Tm^Z%kA;(H5;I7LoTt0O)g<`RKU^_@7j2dsE~K +z?Gx#R#T(JifxUiC!^l2GAME?}AMCg5kM^*9XVD_^RRp4L887|wY!2BdyRPkQ>;|jF +z@M0)!jH!fBo<|l(u_Z}jNq?{xtL+@Tsd=J)vsOXuqu)d;TZ`-v-dCA|A`tlGD63SZ +z=d^j(cgm-NnHIV^w^LhqrcZ%(R%C-9YsC6aNZo}S+t|wXlZ0rhX2@|srMH?Q+b(j; +z!^G~Roo(W^rHj;Jq2UA-)#=feJxAm)Jya4CCy$fdlP_>0WD@y$zf}hLAB4T=uYoiYa9GOWDXq92XQ*irj1-?Lw6L~*3J +zmi|2(GAmVX7dc335hk33v;!$q4o9H^Pkw5T+EAPk^D;#Xi4n0)veuK6Cw8G~iYjM; +z(h0vRX^Jbw_*k39f-TWTe1_6aWy8THpagMdG3sp9AFl=(XL +z4hm+T*<|Zi2`2#VOv7M-O}Et +z_i8ZOL>q)cWD){I1Z13VqP340N3uAzRjPy~OOF_g{$I`1v7 +za<4P)Z|%Ql2J7aPiM^-H?%c*RmhvIeRO*#TJd#D?4Mbuyk&>27o8v?hCvuRqpeLOU +zAtwREJxp_|TL{>^5B@M6XYVo2{ +zk3sU)V}Qgj)PV$E9Wca4(weCWA*CPF_x2!uKtxK7=0vZ6WYqVeI(P>>0kvV|R8?~1 +zRz;w}6m_T%R_Ogp{bc)AB=iPBfmDQe^Tr80)1?Swa**7kkZUO$#Diem;3p^Ln^~dm +z8~cCpXvg-&bApbFv&cAmuzf5v8EAS_FHmA-So`3>ZQW4N15V5bnXQac{~y*uV)f2; +z%bh16(AI+WRGsXsax0q|kxB&n);(*+5IH40B*87_S(9^8v$gdVfgAK70SMQXQx(DT +zs^`-FbS)<9P~CH+DnnKhsh6n47T4pfmcH#b_M#E3y3`h{DIq@a#w(~~m}!dT{3|cO +zbE^n{Zk8(gog&{z`?G}@u2KX_pr_I|TlnVj3Eqr0TRP82Gf}nm>KD&`~frR0BT@(7Bk$y4D=X5;btV{q-wp5 +zIzMjBWy-5IR$xa(UTN6n1hMnwPLTS}{V~2*eiIp1UsvDuB_n4(FtO;MpEEU)Yapeb +zsrx?eEuE0&z@r1RK>#VHc_BI+biGRNet|MvljU3~!YTJd{yRUdF!wRFkTW7&TJATa +z?m0iyM;{TwLg}&ioNIvL`?^(>*UpFFpmdZXy8ruW>+h$enTVLISgH|oKi~h!vzWHZ +zv`Pfz8v&uK@iWZNhT4>Ve(ulqTpjJXl=5ZLe>Ed`QAu8p<$V2X@nn^>AyW_eDgV*W +z3cmKWuSZD^^osthk=}j!?vwiYMl!nf^-MGz3={kuYou&!c9c-dz1HtdUU2{v@EWm!?Wx2D2VQFZbSpzY +zu!0iCX-*i;lt#}9!3;^+$5h7ND3zf<9P#_Bw2^SfZ$V0?la>=H<;26V8)&(iL4<(> +z0um+8F&9n?$}=<#={9wfjrv1+nG=Pzf1Z0;IKjf{O3@$G@{7K(Ujbb+veW>M+`2n|KoN&0&P(h5-5x4D4JqEOi?fZ +z?c5{u#CzBH$a!4%%hjNXXO(AVn=rT^HwB!1ib?$c-#MRe^JhG*CoEqdr#RimrhJc3 +z4Cv=b@1iq#MzZHCIs*gxWfRhlpz*oKqPt4(ZyhNits2Q?^Cp|h-r8VH_i?9&t8B|@2Oa? +z<{UK^AZ4}YKvG};;pH9Ae}r`JF>^5-97L<${}l@%SZfvHl{lV&`30|^IfII*O=N}{ +zp|T|3*An%(O9ch5^t9r+-fyv%uNxu-0+$aF`#;Tb_(P5T2T;HuKubjH{2&!r&*UY +z${8$PzoQTms%xd}&OoSV#xTqZ3=`57k|trzG`x3yk_;m}`gg_?>02SKC|JzMpxUv1 +z=q}zSVYn_7rbgN&0>ny`Oiy#ZgGR+bZ+vd)wucykMwSF?^-!FLHHFde_VR@gf1z)D +zWKmKJ+kEiq??{d{(u40 +zy#J;lK4It;NAf+%Z+PSuUd(Ut0HiLoUHipK)jZM_kCfK~2JPQrgyGpyIV?iVF$9^q +zIM`6W9vPN9VJJMX8?A-}SRs&# +z_d-oWNw_orftZ4FLgD#|=0y`*F~r=LLl!NwX#xq!n{62Jqv8N$7htoCf5YI$0;RXZ +z_)`tbJCu{_vba*&+`ulP0GT|R4aTl%b|A4sws;N9?5?bKdao0c`wRf-pycpSMIPp) +zVPJ};WL}s;yH_+MMjW;-SQeETkBwwTD?2iL7;Y%=bj8rDu(WVXv_GD(*Wg5?gZ>im +z#wJE|HcRxJDQV1leYN;gMfiuE)haKGukAT#D&C+>iLStQ4Ok$bosn=U1m9evHwn|!f*gjHvRSiBUG|(&oInb~q@BRqHD7W;wiOBrC3WEx1fS#<6 +z#MS4J478P}MbR-X-^2D5lDU8Ivu&$(EiUUC{ULovDfBKtf!y3ZQ*G=0-+-NpRY|KX +z77)t3wV7yuR%T8s^fNj=)7#JF_zR`k`fro+JK^-$7(HG-QVaN4i36qfFUUauR6yB$ +zpV;&vS3bluyX5;nlhf?mc5jJy77Zt($PhrJRS5C!Y!kBVqUcN+efbqA$^SvDHN3%a +zvw_bnni{-ePr3NjML4oAz!$gtRzdkO*oiqWKTZh^i}`qHEcvmGN>Zt>liXXLvENl~*<$WVkea#e=tkp|3e +z)ij17BDb$%1G0_XG%&*!eZZXM7`^{{bdEx&0hc +R7G?kd002ovPDHLkV1i{6_}c&g + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald/emerald_red.rgba16.png b/actors/emerald/emerald_red.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..fa42e74f9638f2e5e351cf20078fca9982aae5fd +GIT binary patch +literal 1869 +zcmV-T2eSByP)U%q~2#877}Y!@#EK;!q! +z?-ggebHO=Y&(CXJFyXr119o-2x9_=@9dLf}`|s!WZDf9*K;A$-U%p%o2HMF<6%6Ra +z=!{rKG~5KRee=85^5aL%@88#K^fDr2yR*MQ_|AyEd>Ww7URSOJc@X~m86#n1bC4*d +zlm!dV<=3w&!M%MOc2?F*fCyL&?vXN#1DV*J34##v+o!+#WD1~h!02l9IwRWEXuTLG +zDk7hCe0FvO@cnx&FJ5HIj1!IN+^BZreoW+imu}zh-+cza3i@{AMoj{c7QpPzbv8>e +z&Q__HfsKhXo<+)5fou*m+I`P;{CoT@ux^mpaLuUDy?uYUf4>UhO}lX&qHw`zSjCsh +z$I)zl`F+mwH@^#j(FSvk4)eJWuHDA%aHxXWe&PK_#&Fy3j_wqxJR=>w +z1;C3506LlYeGZTr(H)qqqk(8T=*J5eYWei32ELDg+^_!&(D|}ET)kQYe&UPuNvG-M +z?*14sxH_2^p^|qOSa6`M3II~;`v`Qaf=1)g;NTq6rl4|@wi#PCwe%G9HC($^D?k?B +zr^zvQ7j#dj)3~BAI*eWdNSX@tHCSm1RLXGf{K9Cd4KEy(nxQOrr_KjJX6#d4 +zu%;<`D-8A;_PPVhP-LBZWV`~RK)Ybbmb-Vt)H)zFu7G4DfLQ0Z2v$3O=MuCnK4Ubq +z3RGVLAV_;kFFqK#`4WWVRDi#YMn@QOY(r5v<}+nPZh0X#ye@Y1zE9S6!}Fz_6RA&IQSw0e}O7>|`yJr-oVBq}$RWGIJI(H4b8pEasAKHqub+7dkR!-Ew1& +zKu6QWJAo)P`-}66eaE~HrkQ)hPTw~Y9i`TjJObTn+iFPt6Y)SEHS7kq0LG?u2Avu@ +z0I1)*c}x!=22;Wu1)0rFKsa9zU$*c~8-4Fy>HE<02Luajrvk8*4mcRlhmPH>77RCy +zY6u_`!Wv;gioK*g!i4H*0yf;#QVj&)DN2UB4rReZ)X38u?;z}KF=rHf)2N~wRlb5n +zR9-1J(*fPK?(K6UjO_z9x$e%j?_#mWpFaQuB#m4VCXPG1XTN** +zNVmFRj_gzdTOvxU(`-5Gvk$d~Ow>7`t +zipfi=lWQZDE$be|+jL|lAS_E9%a(xCh*-<)!o)ZoQ6~a1Z#c3OCL*KdeRN=S +zwqc{^4s)`{dzG&vPhLiSlqe2NlK}QI)b*Zw0XP=v=na^h2gv7WIbz&0%YHAdI!8;{ +zLwxehbEH%kt=EmpZQWf}22I0$r4dP=QAxA;TzIaOif9Gmfy8s1P6U@RP83pd4oIW5 +ziD}0&HGMh4Ge7y3b{TdKcDxL_A3UQ;tBE~LJuFiL$xLl*;6C^@aWNThcmaTTBI97^V)EpdUgks1tZmf7G*|oyx%*V +z=ZE~;M$@q*J-{y89v~yLHhAah*>2kpPoAWIXGep+h>3~z`Ls|YQA8MCKYU27`~ROE +zEuBvQL}Pok8&14GcguAR0gb1psSJZqM|}ezgAI_~)2gSIY$h^b^i0a;A$r6k0FB#r +zF-^0SP0?GsZjp!&|lIjDTkRA4BTX#u=ODzPR(57Z!&F45q$$2DPbS +zk-J>_z8z11Jk4=Lr(iK=V;agiT|kaCaNGLSQX28c`} +zQM1DGRs+0?GlBaZaA`8w$+^L&j;#m-a%>PhW5eieP^9%=DYn9aZF5~x00000NkvXX +Hu0mjf*Yu0^ + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald/emerald_surface.rgba16.png b/actors/emerald/emerald_surface.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..61b2d3bb905e7996e74e77320aaf02953c1e57f8 +GIT binary patch +literal 1366 +zcmV-c1*!UpP)?n;WR9Gr3`haB@e$%pz+e2FWU +zJPxtSvb552mrnrcA#ERWGN)J|$O7j*-BjtfU(xL03hWQqFB|7jIC;|#pxoc%`5AqO +zVR?M}7XLoU`&GP3-mBfMJn=)XWK$HMAB)1^!v`FX^2*&~*NEP{KuSmvegFC5fe?+E8TL=$Zgpn&+)XlW^*8kYP!6x<0vMxObny~ +z8Na6a6S4~98FQ9w!Z;5wjzJeH4GC&cd4v9F#1y6LwlO|(Zd +zy4ba|oHPR_uY3w)DD80dU8otp?YwqH!yuyf2Cv@G|0M$EWJwDxt~7^Ku)k0Z;Vk*Fm?XBZh= +zq!RQG3>#yZ0xoz-@CjjNiBU`j)8Tr$u2oYM-l@ujvQm{VSk&Aaym^Ch!l^~Q!>0#n +zp7<M^SHRGU}YM#S@ON1XKK1pU`5ZWZRkGCibV{NQUSMPP5n_bPmVow@r|44^C +z&Sxlgo&hU&nNl)o4myk&V~p$)?o==K6EmpLu_l%=Sp`?evdlB5eW`60_$JSz^SX5E +z(9pmhN};TiJt8Z@G^TFA=@K)ZHTuFlq!~)BCL2X_+imGKIuot&drev>Q?yQ(|4%b2AFg+oG3`(r->wb83^dET;9Dbv8N# +zjgTj$xGTlms{f0w-0uV3T(TB+3{%FQye<=FfeJbnZe(G;pGKSrv(+xc1-qV7>NoP +zN0z7?@(@%sijBH&l2=)AAfma~Kj3gcVb!ZWu5VD+oNzXaYOnFny?*?J(+eJtG->ee +zo!})WwhL@qm>l!jvb0{qUdcB}pd&h!d#`VAMKAlJA^JAh?F1RAy{=%afYsxpL>hY; +z`%8Zf!p5T_dmtvDo;m-{{`O%?dk>J2Z0L8R|r}6!zgBmRR7}-Vl#!V5E=J- +zm45mWM?%mSd^gpCsYKm8(QiVooL(&~lp@SQMq1Wy;17=OHhdTDTlhoxU=zMGQxelR +z^M^`T-($4#%$BDR--B1=iZSeNhT5+9&W>8~U9pkeqMc{I^2f?fD}}JOBY9;(c-CN= +z32oc(U3zf~f0*gA4c|e8-@+e;Ft!QbacDO22Muh)cbVHQ{IUL3Y`}Lxh%Njf28iq# +zTtJ26x(_?{&diSGoDFZiy=ALnl64=nrv?MNOJ{sb)iLH1zcWj4tl#tAHK +zz<2bAP5fbYrQd|_Aj53o4-?hVOX)$0q*x +Y4>jsR5_P<$vm6yovK{t +zCY3~XNXrr>E_VUUqfBai7)9Z-ctBBz`qE!A5dFM|=U!%8$ +zdyl+2&+92-{u+J$%>5(dF8cXj5zD_L+6R^$x3!nQZq417yYG!r5kCe(I*NGa4dKHT +zx-h^Q6|YYhF;3OZkUpnjQCL$aJ~&_4=N*HYdA7H;ZMzD+8Xum&jYGkJ6IL%Dqn~b4 +zdDK0MFrc0B@Y6-n$kvr1GK|i*rV;#akE{cM`9D10M{{2)>#<&xt2pP<%XBR&w)#4@ +ziejuUTDAaP2Ub2M>~7?_#1r?*+*33VDHu?eUl4j^?ikDRnfVXt`LoB`AjG~4R1PLp +z?0jXyHRF0lAuyIQW5*7Sz#a|ZDCEgyjZieaZ|lrJIR?c11+@Rc3a|kjJzQ0AQRce< +zqzwKH05_oAtFlOgTr&m`Mty^j8Ibu<$4xmOg?U}RLIsq;i%xuvr3TF>$lBg9cb`y? +zLW=2Grh4}ZoB0A81< +zdVD;g=$M|b7$x&dJ*3wy4LB2w``C|n8OPxQr-~hhz)QF@?)8e7KSsU!o&@_t#2zEe +z9MCk&#y;L)0CU5Z@5_P#r*q5%c7c@ZdW>lT4`8cooTeS#?g@|g2R!(?Y2>ddmO8CSh)*jM2A!i#gyCvH@J$R0aKUuF$+Ur>h4(56 +z<1OC4#E5(5eobx&s?e|PW>YHs^%mu?kWZNVjAT)6)Jj9&XAm9z-w0YSN`98FNBI6z5+Tq+w6f-}tt{m|EHKxfg_CV^aw1l}L +zZ>&6YnU5`%Tq%1}61YkyPAi+q0Q?eE3f6B3g~`U%7-q_H2hzU$0AWv=u1P#*g}IEB +zc;f-vBU5SLe?NO;GxVo|aZ6f!-$qYUr2GOHp6Axf96fTOV`E*e1TF7gQMJG{|T +zQyG6Dg~(aXDRA?zjC+bGPUw&o6eB3bKeGU62No#Uh9p5Ksj1k0;InzA(rj47v1s5m +zH{hOLV*4KZn8z87*e;C7rbWumZ=)Xx%b5^S`m^G;pUHybPps8Dh2qKhO>!ZH2$k0A +zeG(4?=$v}2=V{DDxF*?6=u#_xGd%2*Y@#|!#?9z%=RN%oaiV76m%qC%S={4>I|Qt6 +z8KjxsshpS>tC)=nH68E$o=O#t5iw$rxtFy9=&7udjzt)O4EG@~bwT99I>SHOu}qz< +zUBZV#Uej1gf5#@2c*$f&qO^P)WxkD0RVygix*{H+piCGeNioXe7UX$f2rpsG=0@Ep +zJXc%3+?j4U0mw1TvW`Eu$W$6|0vU#dz;PFWTNXFuT{@=1pY9?a@1k5|(4Mq29P$9K +zdsb00Ob@ZKiwec9FA$Isl>E_pZ}3)HS>@3->184$EmS=G39o+7_#H^mBkYu>sdCLC +z3Q9dgtQ`i3gaXVgLMDgw-l`YWfKE2_rFqF8<}GmJWF;oWG~oGqZYUbi +zyE)B2%4tBNYBRa|CgDzYi!HFW6GuBbWGC&~Oa}#-SSi!xiqMix1-K-y&JmhO1Yd)I +zcsa-LU|~db-04nHZt;qqP7YJi%=t25$j(wthRA%ctN~Qg%nq7XBkzNB^RUy2wHaf) +zP@Lqn`Z836|J$Xvh9W6}_Ki2Y7>Vo9v6N;~?PQtn1`977T5e4sN>;y&`9iv_Z%{_; +z355ya)jMUKaDg{>4S1vw=`NQFO-WxxVzKA&3`t_jrX;gTo$T)t%t~l+@ub8?bKUC5 +zu(Nh8BG*mR(g_E{yT~TR(g3nxQ7M`nelR2&VoKIZt*#KILLQXW0TPZV_nrorY8Zi{ +zMyh(EYM!bDHVe{`y#K&6T+n-K48=}kp0CmL^Hfvm{~jC$>ie{(Os=1p15)JIk*dX^ +zK!DRw*=@tYkVL{J1Pbj#-9s^;`3izHC +z2*j}LcEHn&lR3}9B}P)uYKHNmW6=@9Zi&s`24|2270A}?hAPAw(G}@pWt9WN{(Ii& +zY91i6&m&lJ2^D0~06tQFKjQz^oJuiX=0DP!Wt#Q=rkEdDXDV{2<+)Mq)-y-?##vCM +zww^|KAZMN*<1^$w{1qkEZwia28H5(oC3`t+%p!wu4;1!v?)iK0%rR^NG3&lX#`1cC +z@u!c}gkLx~+3(GczaYyqWrbe@)YQ3^?(X51W>gN}k=Nw7Wt6E0ldC~LixT_Mh8VL20}6<8S8iW* +z5}#v1pa%#Eqo;0y;ciIJd{04egEgB(Q__|ykNr;5F`reC4T!r}HY77b5uTK|><#?* +esjCI*A^s1iKX&7ZD!pR>0000R9FdBm+f-f$Pq;w!0?;2tX;d3tt6HF&5Q0MP^cFpH+&NOWo<+sNnw!0>l +zvxqqe%qAcJ3Kyb&-i<^)^1Z6@T2x+EE9q3s!kW-0hBpMuJf9_*{>Z5S4qB0~g<93PJ(8Q57 +z%bgLpUqvnAQ#L@qg7oH3#^&<{b2^E2%fmBGomvc+xcugdotQ26QHu}u9w+NNb68H-U +z|LMMqKi-%4^0~zUg23+^=#|x6UyQ2FGQ42iJl}5DIGt~?$Dw{+;hPZ3WHO2Aw2S96 +z=nP$uoVr1BK;C$A0RIHzGyGdm+gQ)3G;GZ#wVJFd^`uCy8MQwtup7hXzT@R3_4s-$ +zpaBGL(e&i}bOjC04YyY$YIp5|jPaVJlRM-aw`RaR1HMm`w#H|Z0g{`4USydmPX|;s +z-c3?YL3O!kNyR*EPH;?dx^kMY6FKjB`x6_<1>Pb(@P_-3XFh{E^oj*nQXZQ*>Pp0$ +zg=B29gu6@|@dV0o7*$U +z|MNeP29)H+l1+YI13xKo6QR->ja?`i$vMZ^5>m}^L}ynxpyQ^IE%GoemYFD+k_B8S +z76OZC2Gm>t81i5Vt6!saiO3#fj@cX#u$`exf;f%;3WuW1_SLzWdjR +zuXj`n?9a_q!3~TD87s-Is(R|c61|WIl5V$exeh$1M5*1Mm_teow}dL;OBJg?o+!PB +z7flZ|$cA-?kc{MHM_z4KXGH5^8*#sF;_H1IpK)SII;JUDIxHbgM@9Kcl^ijw+#hgk +zcO?DU!N^{66BKHjG;ZOpTK^(Xp&@S#A^H6hLcrwzgCsAg-E4q-UdY8O9JFzs~1R`7BPE|drE7`foL>&~2oFh}g6+1YhzKQcRukArUOT43Rmkm{O0tDj*kITPA=3*Ug69I}f5y0SxAY5x{+~i5 +z0Sg5?N6U?L-c8YJlA=T8lpe?MV|9p5)c|vCI?@Ro7!k0G(-i1frX8o~c${$N-DpjH +zEmzZCK2xk|l!!JcSjsHMEEAj10*O`oH7=yJ+)z87&ByALdY{HvcGR30`IwchVr1jMT(v-Ct!hg3fAADJ5tN4g)R^JiOC +zyB?{&#R@b$?4p>>eVrdqB(D7Z&mH8V#@WaQQ-1*=6kwHuqa=dSI}AM11C-$>YW|7# +zeTOop{xhT;xW9evV~fIl-}bz7qkjzX*Lximp*o;8&9v@I$_|WkkOZafN2fKw)q92gw7i^cz3voQ}-3b$)^~IDjl|xOKL@f +zV;W@{0a+n6K)K;)R9y4XavIg9mxI<3_!n9&nY5?00000NkvXXu0mjfp6m~+ + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald_circle/emerald_cyan.rgba16.png b/actors/emerald_circle/emerald_cyan.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..f755945518964912cc789fb301ccc98cd6e1e996 +GIT binary patch +literal 2059 +zcmV+m2=w=fP)nC&<*J`AXbbkgg0SxdQ +z(kldZtn~eP+734l^sYM_0 +z`43G_-!)BoUsvIBvqg*M4V#SVT4XdL$k4vyd_VN*1PIMPXg-A1fK;0W^Up;5g|Szt +zO>4aQJr+#oGA)>I0J(*BgI5-S#VHZIt*)(*zJPINv893(n5e4Dv@RBD-_-aR4hn&R +z0eVJVyp?WYG$3G4KPylzM1hqueF^;n?e9?V2L227YSybO2WdURTU?rZHX05?7e#1I +z(6p-+@ql@7(hch!Lixls2H==(Idcg%MOrbwviHoMbG2R-L%8h*5T^MJ%!!al;p26x +zwkmdJHJ_PeJ7|qg17w4cnzc2E59B-32yhG5f<3FH1!`c&QScTmO$fe#(F1=a`9xzMva4ntU6K +zr)aiX8rA+Y&>D)DG^+pr4T1!$yEMI3w1u@QD7b)LzM67C6YI_~WL`1!48qFhonXMI +z;foPQc{G=!gu?Cx+6Op1nk}<1i^@HfZpE8IR~Q%GCZ?Hgnn1x9-WHz|nXp90H-N|_ +zB__k(f9V69-1Dj-6~_1#dHtA)9EouFK$&wfFe_9gGX;N$O$<#u%MZkud +zQH7~ZM?j#*8D-7@`MP +zM>U&U04NY3(`D75U6oe6Tr5T-8U_#ou8b7p6o)5cPpM{=)A#23f?(85zA=1sOd*QT +z`S#k^R7U^XUEw{OAMmkewR#!p=Dp^W(AV#Z@3mQ?snNu%0U|1 +zMTO*SM@ss`#>a>9BMpr;2rcJ=%HQ+q(YL<)>>Z0f9&DD-H3HPcw}9(DP)7=nX{GPi +z*DA91Y=wilx18PI3P)n8Z@aW*UDxWa5>Q|QK}Bp(2Y#W1nnvch>0@#X +zA7_p#Cx9J`T7)(3br`Z3IqnEEtDTPw@BUW`%NK;Zze78(TN&;-+@ax;4TH7>iNWc4 +znOnk*tpV4?&lcvTrl#c`Ox4t2i3g*L9^kahWnzGN$F~Uem}^!+FD$|MPB>rzi;VMu +pb(=1&rfDeQnt`pgcFfJR{{Rm%zc=O!LY@Es002ovPDHLkV1g+!=F +z+8i46axHW#kD|_f4g=gB%IN5f9Rh<{$9g$7Q04mzWeJbK<*h(`yVkfC2a%3r#E_}m +zS=X%V8j}^BuFG0rc&9DxpUd_ah)HW#QKdlAo11!3d_mBRF$^b5>Ioh%yL%9xQ0 +zKp>8p>jiKdDS06O>wa%{SerFry^H~X7sUmL8_Gtxtwx9eoCqjU +z6R|^F0q2Ad`yD7W!(tTpI +zMqYNg^Jg8s`;5xG?4&!C=f&3BgJ@k$Bp8#XIox_1YswaINvUnNQy&(o4E2Sbzz}{< +zjTG=PmfE`N^U`gLFHA_QR6$wHtu~wj5e|?sr-~_`l*P#T&ad>&9uY}|!wLolI_Z|A +zX14x!5k5Uc5ZIQHTuB>`QJz8?+VsvST5%yDWCdf|EM{X)^()AGpZERy(E5D6C~`mq +zY<155Ka0yt1yaG!%$rf@#Nq9PCZBx&^SVK?r)WB9B$TbXDmKY8mVK|izU}S#8tut$ +zdzk_Y!mTnehtsfnqmdvh<+yf<2&-63IsE$VA+rD>5u@6q7Jg6VFG+3JH73;Z~( +zH}aA?01Y-{oE!72V6Mm~8`5V!b$YOeETr?iwFh+o-I_k-)(G`d~TeM*yT_j4$ +zgdJ)|YDuL5aksE6HjOK9pGSe>g(Ys`r7`gvdr+%0PMYY5Iyx3yazHkqn?1FSS&tkA;i9C5#2sWtysfHLXOUiVPRDK@I7 +z=LMh~KT}{dQv2X6@IZNRx|wsSb#GhMPq!H>oq&#m&WCfI%tF?t&RI(Dv1@h(qh(xHF&5XBzGlpheiJ{4!dOWJ){fohyK#*&tkV#4*oi-9{()>X}S+JcvRCz*n9T +zxc3{+qydmRm2ts((%Pninl+-#9O{v-`rJ~$qOv|@L)zSyEBRh2xOuGR +zo4~DxU~;SRkbZSP`2~_Tj9jKIM4jo}I}841q!FbEaaJwWXi-E{5MF-I`61${s;;h= +zt!C6Gc}H$r>bT7|y__Va&bd+>*m$$R8k@kc9V4__t3oA7jOw{Qi!F8HmW6>as^Opn +z2PMa?s771;d_!7WS84-7hESMIt>>du=hs!LnkoP(Fcfl(iU{q6>P`<}ogxYV-`l2h +zx8YFGJH6#ePdEU8Rvg>#GB{^2()!1}7;uXTLI4WSqLD(6>-2T}e`**<>3r70#hQ+F +z_O-v-7yV$iYYSNFQ!mWnoF{xZr;hq>zEnGV+U62tyf#PDZM+^Pe(mJDfi;2HbUtaj +zfeSc+yRLi&&ob-9>!env+7gICl`IU{oAba=wbzgp5CZXoayBBPd_k+@bxQ38Rxd>3 +zH>KNC2kJt4n9T0tVO>p~s|0od&i{@D;Fj4rCRH;c1#6p4Mru#T7w_CLe$Mk2*)r%{ +o9e0pxv7*s6;V&{dy7x=6)$Y+o3sF9_5y~)Do9?1iGQKWAmcOFa8{ZpaMF*9Oy5-O)^pqwe6d4 +z_PKtv{dlrYPWy$8n-g5%ToJ!61;}#CXeqySq8sYIwim&QA&jsF1QuxyfDt8$6Ps7_Fb~Ie&|I&<%FDar@kc8 +zva9Ueoy`T#262Sz5HV~6d)H^Szm%ptL6CX#h2C!lxWaXP9WR`v+IthGSCY^7yN}EF +zmMZt&fhn|7aGtwTdjvLV<929m6c5h*$s2A)oezT*a;y;&lehtaeM&J-l)TF*pYtHH +zWsum%_|870@9aLglQXe*@-mI)e!Tm^Z%kA;(H5;I7LoTt0O)g<`RKU^_@7j2dsE~K +z?Gx#R#T(JifxUiC!^l2GAME?}AMCg5kM^*9XVD_^RRp4L887|wY!2BdyRPkQ>;|jF +z@M0)!jH!fBo<|l(u_Z}jNq?{xtL+@Tsd=J)vsOXuqu)d;TZ`-v-dCA|A`tlGD63SZ +z=d^j(cgm-NnHIV^w^LhqrcZ%(R%C-9YsC6aNZo}S+t|wXlZ0rhX2@|srMH?Q+b(j; +z!^G~Roo(W^rHj;Jq2UA-)#=feJxAm)Jya4CCy$fdlP_>0WD@y$zf}hLAB4T=uYoiYa9GOWDXq92XQ*irj1-?Lw6L~*3J +zmi|2(GAmVX7dc335hk33v;!$q4o9H^Pkw5T+EAPk^D;#Xi4n0)veuK6Cw8G~iYjM; +z(h0vRX^Jbw_*k39f-TWTe1_6aWy8THpagMdG3sp9AFl=(XL +z4hm+T*<|Zi2`2#VOv7M-O}Et +z_i8ZOL>q)cWD){I1Z13VqP340N3uAzRjPy~OOF_g{$I`1v7 +za<4P)Z|%Ql2J7aPiM^-H?%c*RmhvIeRO*#TJd#D?4Mbuyk&>27o8v?hCvuRqpeLOU +zAtwREJxp_|TL{>^5B@M6XYVo2{ +zk3sU)V}Qgj)PV$E9Wca4(weCWA*CPF_x2!uKtxK7=0vZ6WYqVeI(P>>0kvV|R8?~1 +zRz;w}6m_T%R_Ogp{bc)AB=iPBfmDQe^Tr80)1?Swa**7kkZUO$#Diem;3p^Ln^~dm +z8~cCpXvg-&bApbFv&cAmuzf5v8EAS_FHmA-So`3>ZQW4N15V5bnXQac{~y*uV)f2; +z%bh16(AI+WRGsXsax0q|kxB&n);(*+5IH40B*87_S(9^8v$gdVfgAK70SMQXQx(DT +zs^`-FbS)<9P~CH+DnnKhsh6n47T4pfmcH#b_M#E3y3`h{DIq@a#w(~~m}!dT{3|cO +zbE^n{Zk8(gog&{z`?G}@u2KX_pr_I|TlnVj3Eqr0TRP82Gf}nm>KD&`~frR0BT@(7Bk$y4D=X5;btV{q-wp5 +zIzMjBWy-5IR$xa(UTN6n1hMnwPLTS}{V~2*eiIp1UsvDuB_n4(FtO;MpEEU)Yapeb +zsrx?eEuE0&z@r1RK>#VHc_BI+biGRNet|MvljU3~!YTJd{yRUdF!wRFkTW7&TJATa +z?m0iyM;{TwLg}&ioNIvL`?^(>*UpFFpmdZXy8ruW>+h$enTVLISgH|oKi~h!vzWHZ +zv`Pfz8v&uK@iWZNhT4>Ve(ulqTpjJXl=5ZLe>Ed`QAu8p<$V2X@nn^>AyW_eDgV*W +z3cmKWuSZD^^osthk=}j!?vwiYMl!nf^-MGz3={kuYou&!c9c-dz1HtdUU2{v@EWm!?Wx2D2VQFZbSpzY +zu!0iCX-*i;lt#}9!3;^+$5h7ND3zf<9P#_Bw2^SfZ$V0?la>=H<;26V8)&(iL4<(> +z0um+8F&9n?$}=<#={9wfjrv1+nG=Pzf1Z0;IKjf{O3@$G@{7K(Ujbb+veW>M+`2n|KoN&0&P(h5-5x4D4JqEOi?fZ +z?c5{u#CzBH$a!4%%hjNXXO(AVn=rT^HwB!1ib?$c-#MRe^JhG*CoEqdr#RimrhJc3 +z4Cv=b@1iq#MzZHCIs*gxWfRhlpz*oKqPt4(ZyhNits2Q?^Cp|h-r8VH_i?9&t8B|@2Oa? +z<{UK^AZ4}YKvG};;pH9Ae}r`JF>^5-97L<${}l@%SZfvHl{lV&`30|^IfII*O=N}{ +zp|T|3*An%(O9ch5^t9r+-fyv%uNxu-0+$aF`#;Tb_(P5T2T;HuKubjH{2&!r&*UY +z${8$PzoQTms%xd}&OoSV#xTqZ3=`57k|trzG`x3yk_;m}`gg_?>02SKC|JzMpxUv1 +z=q}zSVYn_7rbgN&0>ny`Oiy#ZgGR+bZ+vd)wucykMwSF?^-!FLHHFde_VR@gf1z)D +zWKmKJ+kEiq??{d{(u40 +zy#J;lK4It;NAf+%Z+PSuUd(Ut0HiLoUHipK)jZM_kCfK~2JPQrgyGpyIV?iVF$9^q +zIM`6W9vPN9VJJMX8?A-}SRs&# +z_d-oWNw_orftZ4FLgD#|=0y`*F~r=LLl!NwX#xq!n{62Jqv8N$7htoCf5YI$0;RXZ +z_)`tbJCu{_vba*&+`ulP0GT|R4aTl%b|A4sws;N9?5?bKdao0c`wRf-pycpSMIPp) +zVPJ};WL}s;yH_+MMjW;-SQeETkBwwTD?2iL7;Y%=bj8rDu(WVXv_GD(*Wg5?gZ>im +z#wJE|HcRxJDQV1leYN;gMfiuE)haKGukAT#D&C+>iLStQ4Ok$bosn=U1m9evHwn|!f*gjHvRSiBUG|(&oInb~q@BRqHD7W;wiOBrC3WEx1fS#<6 +z#MS4J478P}MbR-X-^2D5lDU8Ivu&$(EiUUC{ULovDfBKtf!y3ZQ*G=0-+-NpRY|KX +z77)t3wV7yuR%T8s^fNj=)7#JF_zR`k`fro+JK^-$7(HG-QVaN4i36qfFUUauR6yB$ +zpV;&vS3bluyX5;nlhf?mc5jJy77Zt($PhrJRS5C!Y!kBVqUcN+efbqA$^SvDHN3%a +zvw_bnni{-ePr3NjML4oAz!$gtRzdkO*oiqWKTZh^i}`qHEcvmGN>Zt>liXXLvENl~*<$WVkea#e=tkp|3e +z)ij17BDb$%1G0_XG%&*!eZZXM7`^{{bdEx&0hc +R7G?kd002ovPDHLkV1i{6_}c&g + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald_circle/emerald_red.rgba16.png b/actors/emerald_circle/emerald_red.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..fa42e74f9638f2e5e351cf20078fca9982aae5fd +GIT binary patch +literal 1869 +zcmV-T2eSByP)U%q~2#877}Y!@#EK;!q! +z?-ggebHO=Y&(CXJFyXr119o-2x9_=@9dLf}`|s!WZDf9*K;A$-U%p%o2HMF<6%6Ra +z=!{rKG~5KRee=85^5aL%@88#K^fDr2yR*MQ_|AyEd>Ww7URSOJc@X~m86#n1bC4*d +zlm!dV<=3w&!M%MOc2?F*fCyL&?vXN#1DV*J34##v+o!+#WD1~h!02l9IwRWEXuTLG +zDk7hCe0FvO@cnx&FJ5HIj1!IN+^BZreoW+imu}zh-+cza3i@{AMoj{c7QpPzbv8>e +z&Q__HfsKhXo<+)5fou*m+I`P;{CoT@ux^mpaLuUDy?uYUf4>UhO}lX&qHw`zSjCsh +z$I)zl`F+mwH@^#j(FSvk4)eJWuHDA%aHxXWe&PK_#&Fy3j_wqxJR=>w +z1;C3506LlYeGZTr(H)qqqk(8T=*J5eYWei32ELDg+^_!&(D|}ET)kQYe&UPuNvG-M +z?*14sxH_2^p^|qOSa6`M3II~;`v`Qaf=1)g;NTq6rl4|@wi#PCwe%G9HC($^D?k?B +zr^zvQ7j#dj)3~BAI*eWdNSX@tHCSm1RLXGf{K9Cd4KEy(nxQOrr_KjJX6#d4 +zu%;<`D-8A;_PPVhP-LBZWV`~RK)Ybbmb-Vt)H)zFu7G4DfLQ0Z2v$3O=MuCnK4Ubq +z3RGVLAV_;kFFqK#`4WWVRDi#YMn@QOY(r5v<}+nPZh0X#ye@Y1zE9S6!}Fz_6RA&IQSw0e}O7>|`yJr-oVBq}$RWGIJI(H4b8pEasAKHqub+7dkR!-Ew1& +zKu6QWJAo)P`-}66eaE~HrkQ)hPTw~Y9i`TjJObTn+iFPt6Y)SEHS7kq0LG?u2Avu@ +z0I1)*c}x!=22;Wu1)0rFKsa9zU$*c~8-4Fy>HE<02Luajrvk8*4mcRlhmPH>77RCy +zY6u_`!Wv;gioK*g!i4H*0yf;#QVj&)DN2UB4rReZ)X38u?;z}KF=rHf)2N~wRlb5n +zR9-1J(*fPK?(K6UjO_z9x$e%j?_#mWpFaQuB#m4VCXPG1XTN** +zNVmFRj_gzdTOvxU(`-5Gvk$d~Ow>7`t +zipfi=lWQZDE$be|+jL|lAS_E9%a(xCh*-<)!o)ZoQ6~a1Z#c3OCL*KdeRN=S +zwqc{^4s)`{dzG&vPhLiSlqe2NlK}QI)b*Zw0XP=v=na^h2gv7WIbz&0%YHAdI!8;{ +zLwxehbEH%kt=EmpZQWf}22I0$r4dP=QAxA;TzIaOif9Gmfy8s1P6U@RP83pd4oIW5 +ziD}0&HGMh4Ge7y3b{TdKcDxL_A3UQ;tBE~LJuFiL$xLl*;6C^@aWNThcmaTTBI97^V)EpdUgks1tZmf7G*|oyx%*V +z=ZE~;M$@q*J-{y89v~yLHhAah*>2kpPoAWIXGep+h>3~z`Ls|YQA8MCKYU27`~ROE +zEuBvQL}Pok8&14GcguAR0gb1psSJZqM|}ezgAI_~)2gSIY$h^b^i0a;A$r6k0FB#r +zF-^0SP0?GsZjp!&|lIjDTkRA4BTX#u=ODzPR(57Z!&F45q$$2DPbS +zk-J>_z8z11Jk4=Lr(iK=V;agiT|kaCaNGLSQX28c`} +zQM1DGRs+0?GlBaZaA`8w$+^L&j;#m-a%>PhW5eieP^9%=DYn9aZF5~x00000NkvXX +Hu0mjf*Yu0^ + +literal 0 +HcmV?d00001 + +diff --git a/actors/emerald_circle/emerald_yellow.rgba16.png b/actors/emerald_circle/emerald_yellow.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..f96996362760631d10ce8ea19f90dbcb45d91fea +GIT binary patch +literal 2152 +zcmV-u2$%PXP)jsR5_P<$vm6yovK{t +zCY3~XNXrr>E_VUUqfBai7)9Z-ctBBz`qE!A5dFM|=U!%8$ +zdyl+2&+92-{u+J$%>5(dF8cXj5zD_L+6R^$x3!nQZq417yYG!r5kCe(I*NGa4dKHT +zx-h^Q6|YYhF;3OZkUpnjQCL$aJ~&_4=N*HYdA7H;ZMzD+8Xum&jYGkJ6IL%Dqn~b4 +zdDK0MFrc0B@Y6-n$kvr1GK|i*rV;#akE{cM`9D10M{{2)>#<&xt2pP<%XBR&w)#4@ +ziejuUTDAaP2Ub2M>~7?_#1r?*+*33VDHu?eUl4j^?ikDRnfVXt`LoB`AjG~4R1PLp +z?0jXyHRF0lAuyIQW5*7Sz#a|ZDCEgyjZieaZ|lrJIR?c11+@Rc3a|kjJzQ0AQRce< +zqzwKH05_oAtFlOgTr&m`Mty^j8Ibu<$4xmOg?U}RLIsq;i%xuvr3TF>$lBg9cb`y? +zLW=2Grh4}ZoB0A81< +zdVD;g=$M|b7$x&dJ*3wy4LB2w``C|n8OPxQr-~hhz)QF@?)8e7KSsU!o&@_t#2zEe +z9MCk&#y;L)0CU5Z@5_P#r*q5%c7c@ZdW>lT4`8cooTeS#?g@|g2R!(?Y2>ddmO8CSh)*jM2A!i#gyCvH@J$R0aKUuF$+Ur>h4(56 +z<1OC4#E5(5eobx&s?e|PW>YHs^%mu?kWZNVjAT)6)Jj9&XAm9z-w0YSN`98FNBI6z5+Tq+w6f-}tt{m|EHKxfg_CV^aw1l}L +zZ>&6YnU5`%Tq%1}61YkyPAi+q0Q?eE3f6B3g~`U%7-q_H2hzU$0AWv=u1P#*g}IEB +zc;f-vBU5SLe?NO;GxVo|aZ6f!-$qYUr2GOHp6Axf96fTOV`E*e1TF7gQMJG{|T +zQyG6Dg~(aXDRA?zjC+bGPUw&o6eB3bKeGU62No#Uh9p5Ksj1k0;InzA(rj47v1s5m +zH{hOLV*4KZn8z87*e;C7rbWumZ=)Xx%b5^S`m^G;pUHybPps8Dh2qKhO>!ZH2$k0A +zeG(4?=$v}2=V{DDxF*?6=u#_xGd%2*Y@#|!#?9z%=RN%oaiV76m%qC%S={4>I|Qt6 +z8KjxsshpS>tC)=nH68E$o=O#t5iw$rxtFy9=&7udjzt)O4EG@~bwT99I>SHOu}qz< +zUBZV#Uej1gf5#@2c*$f&qO^P)WxkD0RVygix*{H+piCGeNioXe7UX$f2rpsG=0@Ep +zJXc%3+?j4U0mw1TvW`Eu$W$6|0vU#dz;PFWTNXFuT{@=1pY9?a@1k5|(4Mq29P$9K +zdsb00Ob@ZKiwec9FA$Isl>E_pZ}3)HS>@3->184$EmS=G39o+7_#H^mBkYu>sdCLC +z3Q9dgtQ`i3gaXVgLMDgw-l`YWfKE2_rFqF8<}GmJWF;oWG~oGqZYUbi +zyE)B2%4tBNYBRa|CgDzYi!HFW6GuBbWGC&~Oa}#-SSi!xiqMix1-K-y&JmhO1Yd)I +zcsa-LU|~db-04nHZt;qqP7YJi%=t25$j(wthRA%ctN~Qg%nq7XBkzNB^RUy2wHaf) +zP@Lqn`Z836|J$Xvh9W6}_Ki2Y7>Vo9v6N;~?PQtn1`977T5e4sN>;y&`9iv_Z%{_; +z355ya)jMUKaDg{>4S1vw=`NQFO-WxxVzKA&3`t_jrX;gTo$T)t%t~l+@ub8?bKUC5 +zu(Nh8BG*mR(g_E{yT~TR(g3nxQ7M`nelR2&VoKIZt*#KILLQXW0TPZV_nrorY8Zi{ +zMyh(EYM!bDHVe{`y#K&6T+n-K48=}kp0CmL^Hfvm{~jC$>ie{(Os=1p15)JIk*dX^ +zK!DRw*=@tYkVL{J1Pbj#-9s^;`3izHC +z2*j}LcEHn&lR3}9B}P)uYKHNmW6=@9Zi&s`24|2270A}?hAPAw(G}@pWt9WN{(Ii& +zY91i6&m&lJ2^D0~06tQFKjQz^oJuiX=0DP!Wt#Q=rkEdDXDV{2<+)Mq)-y-?##vCM +zww^|KAZMN*<1^$w{1qkEZwia28H5(oC3`t+%p!wu4;1!v?)iK0%rR^NG3&lX#`1cC +z@u!c}gkLx~+3(GczaYyqWrbe@)YQ3^?(X51W>gN}k=Nw7Wt6E0ldC~LixT_Mh8VL20}6<8S8iW* +z5}#v1pa%#Eqo;0y;ciIJd{04egEgB(Q__|ykNr;5F`reC4T!r}HY77b5uTK|><#?* +esjCI*A^s1iKX&7ZD!pR>0000< +zxN7*H0S)}uI)@^{c+H4`R%)0S1{jPwfCVE4w9hjz0wJN8AzRH=L)7&39|({|7#SHE +z7=kn*n40OsP=bL$dm00pbqp+6?Rfs4f#Ljf;;rX^D*Zvai&@C>B+xjX|6a^d{ +zkTd|Y4wUfDf4I+Z{rP>8G8PL)&4;HH`~b>zA0SZ-ig%EuuoMrCd`S_uoHf_`vX;7PMS5*Qbf +zS`06MAux}D35FsbRZQHgnynp{5UL|ikw~r{lpxZ}Q6ugjRU^vF{p5fYgppSw0 +z1F*IAfs=uLX#ivss963W$Urf`9s3<02m(Y_%A +d9l?NiP64#C3734kjMe}E002ovPDHLkV1h|uHGTj9 + +literal 0 +HcmV?d00001 + +diff --git a/actors/exclamation_box/metal_cap_box_side.rgba16.png b/actors/exclamation_box/metal_cap_box_side.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d8b12994ad6d06828979eb6835fb02efd66cc572 +GIT binary patch +literal 307 +zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQolT1978JNl2dkM{g~g#@ge@T +zOk8Ns^&W|~MV3B1$}&A{2R!^4bzE2*zE!fhDJ*eIxOjEW>Nb|SXMV_YaI8#9NompG +zyp)o_@bKWA93E8(i7m?;V?A1~OGJ2lI{o=O56|s&#s(f-Jm(Z92(avW&FYyat;-_m +zW|5${jnP=-aHqun-n7Pv^H|-24|M3WaDM&d!058}n)F`g*meoQ!{>B7@3Je{e5t@j)+-{nI^TU0GBMK>|rJ#W=6rV_3V34KV)rLDNV9+J|C3<9{GP7GY#$WZ3KI +z$lye6XE-@AFxJ*GpjpSjg3X?_`}Z>lP}u=SILu=q+a3V{1`b6<22KtRhVRdxGcde( +z!SI8O=p)$y_kkAwh>BuR3=U?H)YN2_n8Qud!j}%X_FkmZWaG3A` +zD83D7sUpZykgtKh7XUhllarHy)7zUt0%+EEpu>IuLj$KH(Ci~A1fByeybm(@{(S}x +zAe#f~08l7^*bIh-3=F_%VZi4AG?$SU1wacy@%#d4fgsQ)AfIzU#Xx)xkl`F045UQ? +z391Evi40`?dthDh92f;0P|HA$0w+MAILH0_v~z$Y&;go2OO6A54{`t~{$Wu8b__59 +zNe*z(ltVSm=OqfhI621b{`dATSXMK(i;_KtQvPtTf;S +zv`lf|K8E|itOx2rfa(aMEXU$9vJ)XV7m!fx;tCb44w%M3eeeN?kr-VwMq=WT0{8t# +sOQ;wj09G*CH)Nn6U|}GpEl)!=0Am*8tBoTA%m4rY07*qoM6N<$f&kSaDF6Tf + +literal 0 +HcmV?d00001 + +diff --git a/actors/exclamation_box/wing_cap_box_side.rgba16.png b/actors/exclamation_box/wing_cap_box_side.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..c371e5e885a33142ac0f56077d7920a7dd158bbb +GIT binary patch +literal 294 +zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVskfdkjv*Cs$$#_}KFnv7-BaJM +zrKEAfLEF@ahndGs)Tp;#{T)M_%0kuyp>@l!`tW> +zAdr~-*5HD`f}7^E*xZ~GOjv+~z?7C3e;uT@cSu}#Bkju!v=?Z(?xKq(5Jw<5Iy>5w +z&IMQYI0=|AbszOv!&ku=QqgmY??TN#nbn=m2`kDPj&~R=Vz8NIYn6N4!QLQBpttQn +c1_uMfCnuAayROFVdQ&MBb@09Jo$7ytkO + +literal 0 +HcmV?d00001 + +diff --git a/actors/group0.c b/actors/group0.c +index f852e6c..bc08e2e 100644 +--- a/actors/group0.c ++++ b/actors/group0.c +@@ -25,3 +25,16 @@ + #include "white_particle_small/model.inc.c" + + #include "sparkle_animation/model.inc.c" ++ ++ ++ ++#include "sonic_ball/model.inc.c" ++ ++#include "sonic_trail/model.inc.c" ++ ++#include "super_sonic/model.inc.c" ++#include "super_ball/model.inc.c" ++ ++#include "reticle/model.inc.c" ++#include "emerald/model.inc.c" ++#include "emerald_circle/model.inc.c" +\ No newline at end of file +diff --git a/actors/group0.c.rej b/actors/group0.c.rej +new file mode 100644 +index 0000000..0539156 +--- /dev/null ++++ b/actors/group0.c.rej +@@ -0,0 +1,19 @@ ++diff a/actors/group0.c b/actors/group0.c (rejected hunks) ++@@ -25,3 +25,16 @@ ++ #include "white_particle_small/model.inc.c" ++ ++ #include "sparkle_animation/model.inc.c" +++ +++ +++ +++#include "sonic_ball/model.inc.c" +++ +++#include "sonic_trail/model.inc.c" +++ +++#include "super_sonic/model.inc.c" +++#include "super_ball/model.inc.c" +++ +++#include "reticle/model.inc.c" +++#include "emerald/model.inc.c" +++#include "emerald_circle/model.inc.c" ++\ No newline at end of file +diff --git a/actors/group0.h b/actors/group0.h +index 44f8b05..d380d85 100644 +--- a/actors/group0.h ++++ b/actors/group0.h +@@ -16,6 +16,34 @@ extern const Gfx burn_smoke_seg4_dl_04022028[]; + extern const Gfx burn_smoke_seg4_dl_04022048[]; + extern const Gfx burn_smoke_seg4_dl_04022070[]; + ++// sonic_trail ++extern const GeoLayout sonic_trail_geo[]; ++extern const GeoLayout super_trail_geo[]; ++extern const Gfx sonic_trail_seg3_dl_0301B320[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3B0[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3C8[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3E0[]; ++extern const Gfx sonic_trail_seg3_dl_0301B3F8[]; ++extern const Gfx sonic_trail_seg3_dl_0301B410[]; ++extern const Gfx sonic_trail_seg3_dl_0301B428[]; ++extern const Gfx sonic_trail_seg3_dl_0301B440[]; ++extern const Gfx sonic_trail_seg3_dl_0301B458[]; ++extern const Gfx sonic_trail_seg3_dl_0301B470[]; ++extern const Gfx sonic_trail_seg3_dl_0301B500[]; ++extern const Gfx sonic_trail_seg3_dl_0301B518[]; ++extern const Gfx sonic_trail_seg3_dl_0301B530[]; ++extern const Gfx sonic_trail_seg3_dl_0301B548[]; ++extern const Gfx sonic_trail_seg3_dl_0301B560[]; ++extern const Gfx sonic_trail_seg3_dl_0301B578[]; ++extern const Gfx sonic_trail_seg3_dl_0301B590[]; ++extern const Gfx sonic_trail_seg3_dl_0301B5A8[]; ++ ++ ++ ++ ++ ++ ++ + // mario + extern const GeoLayout mario_geo_face_and_wings[]; + extern const GeoLayout mario_geo_left_hand[]; +@@ -342,4 +370,795 @@ extern const Gfx white_particle_small_dl_end[]; + extern const Gfx white_particle_small_dl[]; + extern const Gfx white_particle_small_unused_dl[]; + ++ ++// sonic_ball ++extern const GeoLayout sonic_ball_geo[]; ++extern const Gfx sonic_ball_seg5_dl_05010D30[]; ++extern const Gfx sonic_ball_seg5_dl_05011000[]; ++ ++// sonic_ball ++extern const GeoLayout super_ball_geo[]; ++extern const Gfx super_ball_seg5_dl_05010D30[]; ++extern const Gfx super_ball_seg5_dl_05011000[]; ++ ++// super_sonic ++extern const GeoLayout super_sonic_geo[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_geo[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; ++extern Gfx super_sonic_000_offset_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; ++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; ++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; ++ ++extern Gfx super_sonic_000_offset_mesh[]; ++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_mesh[]; ++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_skinned[]; ++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_000_displaylist_001_mesh[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_002_mesh[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_003_mesh[]; ++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_mesh[]; ++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_skinned[]; ++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_003_mesh[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_006_mesh[]; ++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_mesh[]; ++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_skinned[]; ++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_004_mesh[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_mesh[]; ++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_skinned[]; ++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_mesh[]; ++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_skinned[]; ++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_011_mesh[]; ++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_mesh[]; ++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_skinned[]; ++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_mesh[]; ++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_skinned[]; ++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_005_mesh[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_material_revert_render_settings[]; ++ ++extern const GeoLayout sonic_ball_001_switch_opt1[]; ++extern const GeoLayout sonic_ball_001_switch_opt2[]; ++extern const GeoLayout sonic_ball_001_switch_opt3[]; ++extern const GeoLayout geo[]; ++extern Vtx sonic_ball_000_offset_mesh_vtx_0[80]; ++extern Gfx sonic_ball_000_offset_mesh_tri_0[]; ++ ++extern Gfx sonic_ball_000_offset_mesh[]; ++extern Gfx sonic_ball_000_offset_mesh_mat_override_metal_0[]; ++extern Gfx sonic_ball_material_revert_render_settings[]; ++ ++ ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_right_hand_open_armature[]; ++extern const GeoLayout mario_left_hand_open_armature[]; ++extern const GeoLayout mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_armature_002_switch_option_002[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_wing_cap_armature[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout mario_geo[]; ++extern Vtx mario_000_offset_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_mesh_tri_0[]; ++extern Vtx mario_000_offset_mesh_vtx_1[24]; ++extern Gfx mario_000_offset_mesh_tri_1[]; ++extern Vtx mario_000_offset_001_mesh_vtx_0[16]; ++extern Gfx mario_000_offset_001_mesh_tri_0[]; ++extern Vtx mario_000_offset_001_mesh_vtx_1[8]; ++extern Gfx mario_000_offset_001_mesh_tri_1[]; ++extern Vtx mario_000_offset_001_mesh_vtx_2[100]; ++extern Gfx mario_000_offset_001_mesh_tri_2[]; ++extern Vtx mario_000_offset_001_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_001_mesh_tri_3[]; ++extern Vtx mario_000_offset_001_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_001_skinned_tri_0[]; ++extern Vtx mario_000_offset_001_skinned_vtx_1[3]; ++extern Gfx mario_000_offset_001_skinned_tri_1[]; ++extern Vtx mario_000_displaylist_mesh_vtx_0[453]; ++extern Gfx mario_000_displaylist_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_mesh_vtx_1[85]; ++extern Gfx mario_000_displaylist_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_mesh_vtx_2[42]; ++extern Gfx mario_000_displaylist_mesh_tri_2[]; ++extern Vtx mario_000_displaylist_mesh_vtx_3[26]; ++extern Gfx mario_000_displaylist_mesh_tri_3[]; ++extern Vtx mario_000_displaylist_mesh_vtx_4[13]; ++extern Gfx mario_000_displaylist_mesh_tri_4[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx mario_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx mario_000_displaylist_001_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx mario_000_displaylist_001_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx mario_000_displaylist_002_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx mario_000_displaylist_002_mesh_tri_1[]; ++extern Vtx mario_000_offset_003_mesh_vtx_0[31]; ++extern Gfx mario_000_offset_003_mesh_tri_0[]; ++extern Vtx mario_000_offset_004_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_004_mesh_tri_0[]; ++extern Vtx mario_000_offset_004_mesh_vtx_1[12]; ++extern Gfx mario_000_offset_004_mesh_tri_1[]; ++extern Vtx mario_000_offset_004_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_004_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx mario_000_displaylist_003_mesh_tri_0[]; ++extern Vtx mario_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx mario_000_offset_006_mesh_vtx_0[40]; ++extern Gfx mario_000_offset_006_mesh_tri_0[]; ++extern Vtx mario_000_offset_007_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_007_mesh_tri_0[]; ++extern Vtx mario_000_offset_007_mesh_vtx_1[12]; ++extern Gfx mario_000_offset_007_mesh_tri_1[]; ++extern Vtx mario_000_offset_007_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_007_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx mario_000_displaylist_004_mesh_tri_0[]; ++extern Vtx mario_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx mario_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx mario_000_offset_009_mesh_vtx_0[8]; ++extern Gfx mario_000_offset_009_mesh_tri_0[]; ++extern Vtx mario_000_offset_009_mesh_vtx_1[13]; ++extern Gfx mario_000_offset_009_mesh_tri_1[]; ++extern Vtx mario_000_offset_009_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_009_skinned_tri_0[]; ++extern Vtx mario_000_offset_010_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_010_mesh_tri_0[]; ++extern Vtx mario_000_offset_010_mesh_vtx_1[9]; ++extern Gfx mario_000_offset_010_mesh_tri_1[]; ++extern Vtx mario_000_offset_010_mesh_vtx_2[41]; ++extern Gfx mario_000_offset_010_mesh_tri_2[]; ++extern Vtx mario_000_offset_010_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_010_mesh_tri_3[]; ++extern Vtx mario_000_offset_010_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_010_skinned_tri_0[]; ++extern Vtx mario_000_offset_011_mesh_vtx_0[58]; ++extern Gfx mario_000_offset_011_mesh_tri_0[]; ++extern Vtx mario_000_offset_011_mesh_vtx_1[16]; ++extern Gfx mario_000_offset_011_mesh_tri_1[]; ++extern Vtx mario_000_offset_011_mesh_vtx_2[46]; ++extern Gfx mario_000_offset_011_mesh_tri_2[]; ++extern Vtx mario_000_offset_011_mesh_vtx_3[12]; ++extern Gfx mario_000_offset_011_mesh_tri_3[]; ++extern Vtx mario_000_offset_012_mesh_vtx_0[8]; ++extern Gfx mario_000_offset_012_mesh_tri_0[]; ++extern Vtx mario_000_offset_012_mesh_vtx_1[13]; ++extern Gfx mario_000_offset_012_mesh_tri_1[]; ++extern Vtx mario_000_offset_012_skinned_vtx_0[11]; ++extern Gfx mario_000_offset_012_skinned_tri_0[]; ++extern Vtx mario_000_offset_013_mesh_vtx_0[6]; ++extern Gfx mario_000_offset_013_mesh_tri_0[]; ++extern Vtx mario_000_offset_013_mesh_vtx_1[9]; ++extern Gfx mario_000_offset_013_mesh_tri_1[]; ++extern Vtx mario_000_offset_013_mesh_vtx_2[41]; ++extern Gfx mario_000_offset_013_mesh_tri_2[]; ++extern Vtx mario_000_offset_013_mesh_vtx_3[16]; ++extern Gfx mario_000_offset_013_mesh_tri_3[]; ++extern Vtx mario_000_offset_013_skinned_vtx_0[6]; ++extern Gfx mario_000_offset_013_skinned_tri_0[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_0[55]; ++extern Gfx mario_000_displaylist_005_mesh_tri_0[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_1[46]; ++extern Gfx mario_000_displaylist_005_mesh_tri_1[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_2[12]; ++extern Gfx mario_000_displaylist_005_mesh_tri_2[]; ++extern Vtx mario_000_displaylist_005_mesh_vtx_3[16]; ++extern Gfx mario_000_displaylist_005_mesh_tri_3[]; ++ ++extern Gfx mario_000_offset_mesh[]; ++extern Gfx mario_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_001_mesh[]; ++extern Gfx mario_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_001_skinned[]; ++extern Gfx mario_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_mesh[]; ++extern Gfx mario_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx mario_000_displaylist_001_mesh[]; ++extern Gfx mario_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_002_mesh[]; ++extern Gfx mario_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_003_mesh[]; ++extern Gfx mario_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_004_mesh[]; ++extern Gfx mario_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_004_skinned[]; ++extern Gfx mario_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_003_mesh[]; ++extern Gfx mario_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh[]; ++extern Gfx mario_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_006_mesh[]; ++extern Gfx mario_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_007_mesh[]; ++extern Gfx mario_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_007_skinned[]; ++extern Gfx mario_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_004_mesh[]; ++extern Gfx mario_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh[]; ++extern Gfx mario_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx mario_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx mario_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_009_mesh[]; ++extern Gfx mario_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_009_skinned[]; ++extern Gfx mario_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_010_mesh[]; ++extern Gfx mario_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_010_skinned[]; ++extern Gfx mario_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_011_mesh[]; ++extern Gfx mario_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_012_mesh[]; ++extern Gfx mario_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_012_skinned[]; ++extern Gfx mario_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_013_mesh[]; ++extern Gfx mario_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_000_offset_013_skinned[]; ++extern Gfx mario_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx mario_000_displaylist_005_mesh[]; ++extern Gfx mario_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx mario_material_revert_render_settings[]; ++ ++extern const GeoLayout super_ball_001_switch_opt1[]; ++extern const GeoLayout super_ball_001_switch_opt2[]; ++extern const GeoLayout super_ball_001_switch_opt3[]; ++extern const GeoLayout super_ball_geo[]; ++extern Vtx super_ball_000_offset_mesh_vtx_0[80]; ++extern Gfx super_ball_000_offset_mesh_tri_0[]; ++ ++extern Gfx super_ball_000_offset_mesh[]; ++extern Gfx super_ball_000_offset_mesh_mat_override_metal_0[]; ++extern Gfx super_ball_material_revert_render_settings[]; ++ ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_geo[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; ++extern Gfx super_sonic_000_offset_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; ++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; ++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; ++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; ++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; ++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; ++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; ++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; ++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; ++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; ++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; ++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; ++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; ++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; ++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; ++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; ++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; ++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; ++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; ++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; ++ ++extern Gfx super_sonic_000_offset_mesh[]; ++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_mesh[]; ++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_001_skinned[]; ++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; ++extern Gfx super_sonic_000_displaylist_001_mesh[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_002_mesh[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_003_mesh[]; ++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_mesh[]; ++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_004_skinned[]; ++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_003_mesh[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_006_mesh[]; ++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_mesh[]; ++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_007_skinned[]; ++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_004_mesh[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; ++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; ++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_mesh[]; ++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_009_skinned[]; ++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_mesh[]; ++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_010_skinned[]; ++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_011_mesh[]; ++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_mesh[]; ++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_012_skinned[]; ++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_mesh[]; ++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_offset_013_skinned[]; ++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; ++extern Gfx super_sonic_000_displaylist_005_mesh[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; ++extern Gfx super_sonic_material_revert_render_settings[]; ++ ++ ++ ++ ++ ++ ++ ++#include "reticle/geo_header.h" ++ ++#include "mario/geo_header.h" ++ ++ ++ ++#include "emerald/geo_header.h" ++ ++#include "super_sonic/geo_header.h" ++ ++#include "emerald_circle/geo_header.h" ++ ++#include "sonic_ball/geo_header.h" ++ ++#include "super_ball/geo_header.h" ++ + #endif +diff --git a/actors/group0.h.rej b/actors/group0.h.rej +new file mode 100644 +index 0000000..8e29678 +--- /dev/null ++++ b/actors/group0.h.rej +@@ -0,0 +1,832 @@ ++diff a/actors/group0.h b/actors/group0.h (rejected hunks) ++@@ -16,6 +16,34 @@ extern const Gfx burn_smoke_seg4_dl_04022028[]; ++ extern const Gfx burn_smoke_seg4_dl_04022048[]; ++ extern const Gfx burn_smoke_seg4_dl_04022070[]; ++ +++// sonic_trail +++extern const GeoLayout sonic_trail_geo[]; +++extern const GeoLayout super_trail_geo[]; +++extern const Gfx sonic_trail_seg3_dl_0301B320[]; +++extern const Gfx sonic_trail_seg3_dl_0301B3B0[]; +++extern const Gfx sonic_trail_seg3_dl_0301B3C8[]; +++extern const Gfx sonic_trail_seg3_dl_0301B3E0[]; +++extern const Gfx sonic_trail_seg3_dl_0301B3F8[]; +++extern const Gfx sonic_trail_seg3_dl_0301B410[]; +++extern const Gfx sonic_trail_seg3_dl_0301B428[]; +++extern const Gfx sonic_trail_seg3_dl_0301B440[]; +++extern const Gfx sonic_trail_seg3_dl_0301B458[]; +++extern const Gfx sonic_trail_seg3_dl_0301B470[]; +++extern const Gfx sonic_trail_seg3_dl_0301B500[]; +++extern const Gfx sonic_trail_seg3_dl_0301B518[]; +++extern const Gfx sonic_trail_seg3_dl_0301B530[]; +++extern const Gfx sonic_trail_seg3_dl_0301B548[]; +++extern const Gfx sonic_trail_seg3_dl_0301B560[]; +++extern const Gfx sonic_trail_seg3_dl_0301B578[]; +++extern const Gfx sonic_trail_seg3_dl_0301B590[]; +++extern const Gfx sonic_trail_seg3_dl_0301B5A8[]; +++ +++ +++ +++ +++ +++ +++ ++ // mario ++ extern const GeoLayout mario_geo_face_and_wings[]; ++ extern const GeoLayout mario_geo_left_hand[]; ++@@ -342,4 +370,795 @@ extern const Gfx white_particle_small_dl_end[]; ++ extern const Gfx white_particle_small_dl[]; ++ extern const Gfx white_particle_small_unused_dl[]; ++ +++ +++// sonic_ball +++extern const GeoLayout sonic_ball_geo[]; +++extern const Gfx sonic_ball_seg5_dl_05010D30[]; +++extern const Gfx sonic_ball_seg5_dl_05011000[]; +++ +++// sonic_ball +++extern const GeoLayout super_ball_geo[]; +++extern const Gfx super_ball_seg5_dl_05010D30[]; +++extern const Gfx super_ball_seg5_dl_05011000[]; +++ +++// super_sonic +++extern const GeoLayout super_sonic_geo[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout super_sonic_geo[]; +++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; +++extern Gfx super_sonic_000_offset_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; +++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; +++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; +++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; +++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; +++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; +++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; +++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; +++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; +++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; +++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; +++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; +++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; +++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; +++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; +++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; +++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; +++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; +++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; +++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; +++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; +++ +++extern Gfx super_sonic_000_offset_mesh[]; +++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_001_mesh[]; +++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_001_skinned[]; +++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_mesh[]; +++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx super_sonic_000_displaylist_001_mesh[]; +++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_002_mesh[]; +++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_003_mesh[]; +++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_004_mesh[]; +++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_004_skinned[]; +++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_003_mesh[]; +++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_006_mesh[]; +++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_007_mesh[]; +++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_007_skinned[]; +++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_004_mesh[]; +++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_009_mesh[]; +++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_009_skinned[]; +++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_010_mesh[]; +++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_010_skinned[]; +++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_011_mesh[]; +++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_012_mesh[]; +++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_012_skinned[]; +++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_013_mesh[]; +++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_013_skinned[]; +++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_005_mesh[]; +++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_material_revert_render_settings[]; +++ +++extern const GeoLayout sonic_ball_001_switch_opt1[]; +++extern const GeoLayout sonic_ball_001_switch_opt2[]; +++extern const GeoLayout sonic_ball_001_switch_opt3[]; +++extern const GeoLayout geo[]; +++extern Vtx sonic_ball_000_offset_mesh_vtx_0[80]; +++extern Gfx sonic_ball_000_offset_mesh_tri_0[]; +++ +++extern Gfx sonic_ball_000_offset_mesh[]; +++extern Gfx sonic_ball_000_offset_mesh_mat_override_metal_0[]; +++extern Gfx sonic_ball_material_revert_render_settings[]; +++ +++ +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout mario_armature_002_switch_option_002[]; +++extern const GeoLayout mario_right_hand_open_armature[]; +++extern const GeoLayout mario_left_hand_open_armature[]; +++extern const GeoLayout mario_left_hand_peace_armature[]; +++extern const GeoLayout mario_left_hand_cap_armature[]; +++extern const GeoLayout mario_left_hand_wing_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_armature_002_switch_option_002[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_wing_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_armature_002_switch_option_002[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_wing_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_armature_002_switch_option_002[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_wing_cap_armature[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout mario_geo[]; +++extern Vtx mario_000_offset_mesh_vtx_0[6]; +++extern Gfx mario_000_offset_mesh_tri_0[]; +++extern Vtx mario_000_offset_mesh_vtx_1[24]; +++extern Gfx mario_000_offset_mesh_tri_1[]; +++extern Vtx mario_000_offset_001_mesh_vtx_0[16]; +++extern Gfx mario_000_offset_001_mesh_tri_0[]; +++extern Vtx mario_000_offset_001_mesh_vtx_1[8]; +++extern Gfx mario_000_offset_001_mesh_tri_1[]; +++extern Vtx mario_000_offset_001_mesh_vtx_2[100]; +++extern Gfx mario_000_offset_001_mesh_tri_2[]; +++extern Vtx mario_000_offset_001_mesh_vtx_3[16]; +++extern Gfx mario_000_offset_001_mesh_tri_3[]; +++extern Vtx mario_000_offset_001_skinned_vtx_0[11]; +++extern Gfx mario_000_offset_001_skinned_tri_0[]; +++extern Vtx mario_000_offset_001_skinned_vtx_1[3]; +++extern Gfx mario_000_offset_001_skinned_tri_1[]; +++extern Vtx mario_000_displaylist_mesh_vtx_0[453]; +++extern Gfx mario_000_displaylist_mesh_tri_0[]; +++extern Vtx mario_000_displaylist_mesh_vtx_1[85]; +++extern Gfx mario_000_displaylist_mesh_tri_1[]; +++extern Vtx mario_000_displaylist_mesh_vtx_2[42]; +++extern Gfx mario_000_displaylist_mesh_tri_2[]; +++extern Vtx mario_000_displaylist_mesh_vtx_3[26]; +++extern Gfx mario_000_displaylist_mesh_tri_3[]; +++extern Vtx mario_000_displaylist_mesh_vtx_4[13]; +++extern Gfx mario_000_displaylist_mesh_tri_4[]; +++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_0[103]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_0[]; +++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_1[30]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_1[]; +++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_2[12]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_2[]; +++extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_3[92]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_3[]; +++extern Vtx mario_000_displaylist_001_mesh_vtx_0[4]; +++extern Gfx mario_000_displaylist_001_mesh_tri_0[]; +++extern Vtx mario_000_displaylist_001_mesh_vtx_1[4]; +++extern Gfx mario_000_displaylist_001_mesh_tri_1[]; +++extern Vtx mario_000_displaylist_002_mesh_vtx_0[4]; +++extern Gfx mario_000_displaylist_002_mesh_tri_0[]; +++extern Vtx mario_000_displaylist_002_mesh_vtx_1[4]; +++extern Gfx mario_000_displaylist_002_mesh_tri_1[]; +++extern Vtx mario_000_offset_003_mesh_vtx_0[31]; +++extern Gfx mario_000_offset_003_mesh_tri_0[]; +++extern Vtx mario_000_offset_004_mesh_vtx_0[6]; +++extern Gfx mario_000_offset_004_mesh_tri_0[]; +++extern Vtx mario_000_offset_004_mesh_vtx_1[12]; +++extern Gfx mario_000_offset_004_mesh_tri_1[]; +++extern Vtx mario_000_offset_004_skinned_vtx_0[6]; +++extern Gfx mario_000_offset_004_skinned_tri_0[]; +++extern Vtx mario_000_displaylist_003_mesh_vtx_0[46]; +++extern Gfx mario_000_displaylist_003_mesh_tri_0[]; +++extern Vtx mario_002_switch_option_right_hand_open_mesh_vtx_0[58]; +++extern Gfx mario_002_switch_option_right_hand_open_mesh_tri_0[]; +++extern Vtx mario_000_offset_006_mesh_vtx_0[40]; +++extern Gfx mario_000_offset_006_mesh_tri_0[]; +++extern Vtx mario_000_offset_007_mesh_vtx_0[6]; +++extern Gfx mario_000_offset_007_mesh_tri_0[]; +++extern Vtx mario_000_offset_007_mesh_vtx_1[12]; +++extern Gfx mario_000_offset_007_mesh_tri_1[]; +++extern Vtx mario_000_offset_007_skinned_vtx_0[6]; +++extern Gfx mario_000_offset_007_skinned_tri_0[]; +++extern Vtx mario_000_displaylist_004_mesh_vtx_0[36]; +++extern Gfx mario_000_displaylist_004_mesh_tri_0[]; +++extern Vtx mario_002_switch_option_left_hand_open_mesh_vtx_0[57]; +++extern Gfx mario_002_switch_option_left_hand_open_mesh_tri_0[]; +++extern Vtx mario_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +++extern Gfx mario_004_switch_option_left_hand_peace_mesh_tri_0[]; +++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_0[]; +++extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +++extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_1[]; +++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +++extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +++extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +++extern Vtx mario_000_offset_009_mesh_vtx_0[8]; +++extern Gfx mario_000_offset_009_mesh_tri_0[]; +++extern Vtx mario_000_offset_009_mesh_vtx_1[13]; +++extern Gfx mario_000_offset_009_mesh_tri_1[]; +++extern Vtx mario_000_offset_009_skinned_vtx_0[11]; +++extern Gfx mario_000_offset_009_skinned_tri_0[]; +++extern Vtx mario_000_offset_010_mesh_vtx_0[6]; +++extern Gfx mario_000_offset_010_mesh_tri_0[]; +++extern Vtx mario_000_offset_010_mesh_vtx_1[9]; +++extern Gfx mario_000_offset_010_mesh_tri_1[]; +++extern Vtx mario_000_offset_010_mesh_vtx_2[41]; +++extern Gfx mario_000_offset_010_mesh_tri_2[]; +++extern Vtx mario_000_offset_010_mesh_vtx_3[16]; +++extern Gfx mario_000_offset_010_mesh_tri_3[]; +++extern Vtx mario_000_offset_010_skinned_vtx_0[6]; +++extern Gfx mario_000_offset_010_skinned_tri_0[]; +++extern Vtx mario_000_offset_011_mesh_vtx_0[58]; +++extern Gfx mario_000_offset_011_mesh_tri_0[]; +++extern Vtx mario_000_offset_011_mesh_vtx_1[16]; +++extern Gfx mario_000_offset_011_mesh_tri_1[]; +++extern Vtx mario_000_offset_011_mesh_vtx_2[46]; +++extern Gfx mario_000_offset_011_mesh_tri_2[]; +++extern Vtx mario_000_offset_011_mesh_vtx_3[12]; +++extern Gfx mario_000_offset_011_mesh_tri_3[]; +++extern Vtx mario_000_offset_012_mesh_vtx_0[8]; +++extern Gfx mario_000_offset_012_mesh_tri_0[]; +++extern Vtx mario_000_offset_012_mesh_vtx_1[13]; +++extern Gfx mario_000_offset_012_mesh_tri_1[]; +++extern Vtx mario_000_offset_012_skinned_vtx_0[11]; +++extern Gfx mario_000_offset_012_skinned_tri_0[]; +++extern Vtx mario_000_offset_013_mesh_vtx_0[6]; +++extern Gfx mario_000_offset_013_mesh_tri_0[]; +++extern Vtx mario_000_offset_013_mesh_vtx_1[9]; +++extern Gfx mario_000_offset_013_mesh_tri_1[]; +++extern Vtx mario_000_offset_013_mesh_vtx_2[41]; +++extern Gfx mario_000_offset_013_mesh_tri_2[]; +++extern Vtx mario_000_offset_013_mesh_vtx_3[16]; +++extern Gfx mario_000_offset_013_mesh_tri_3[]; +++extern Vtx mario_000_offset_013_skinned_vtx_0[6]; +++extern Gfx mario_000_offset_013_skinned_tri_0[]; +++extern Vtx mario_000_displaylist_005_mesh_vtx_0[55]; +++extern Gfx mario_000_displaylist_005_mesh_tri_0[]; +++extern Vtx mario_000_displaylist_005_mesh_vtx_1[46]; +++extern Gfx mario_000_displaylist_005_mesh_tri_1[]; +++extern Vtx mario_000_displaylist_005_mesh_vtx_2[12]; +++extern Gfx mario_000_displaylist_005_mesh_tri_2[]; +++extern Vtx mario_000_displaylist_005_mesh_vtx_3[16]; +++extern Gfx mario_000_displaylist_005_mesh_tri_3[]; +++ +++extern Gfx mario_000_offset_mesh[]; +++extern Gfx mario_000_offset_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_001_mesh[]; +++extern Gfx mario_000_offset_001_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_001_skinned[]; +++extern Gfx mario_000_offset_001_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_mesh[]; +++extern Gfx mario_000_displaylist_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh[]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +++extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx mario_000_displaylist_001_mesh[]; +++extern Gfx mario_000_displaylist_001_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_002_mesh[]; +++extern Gfx mario_000_displaylist_002_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_003_mesh[]; +++extern Gfx mario_000_offset_003_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_004_mesh[]; +++extern Gfx mario_000_offset_004_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_004_skinned[]; +++extern Gfx mario_000_offset_004_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_003_mesh[]; +++extern Gfx mario_000_displaylist_003_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_002_switch_option_right_hand_open_mesh[]; +++extern Gfx mario_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_006_mesh[]; +++extern Gfx mario_000_offset_006_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_007_mesh[]; +++extern Gfx mario_000_offset_007_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_007_skinned[]; +++extern Gfx mario_000_offset_007_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_004_mesh[]; +++extern Gfx mario_000_displaylist_004_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_002_switch_option_left_hand_open_mesh[]; +++extern Gfx mario_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_004_switch_option_left_hand_peace_mesh[]; +++extern Gfx mario_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_005_switch_option_left_hand_cap_mesh[]; +++extern Gfx mario_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh[]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh[]; +++extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_009_mesh[]; +++extern Gfx mario_000_offset_009_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_009_skinned[]; +++extern Gfx mario_000_offset_009_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_010_mesh[]; +++extern Gfx mario_000_offset_010_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_010_skinned[]; +++extern Gfx mario_000_offset_010_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_011_mesh[]; +++extern Gfx mario_000_offset_011_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_012_mesh[]; +++extern Gfx mario_000_offset_012_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_012_skinned[]; +++extern Gfx mario_000_offset_012_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_013_mesh[]; +++extern Gfx mario_000_offset_013_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_000_offset_013_skinned[]; +++extern Gfx mario_000_offset_013_skinned_mat_override_metal_003_0[]; +++extern Gfx mario_000_displaylist_005_mesh[]; +++extern Gfx mario_000_displaylist_005_mesh_mat_override_metal_003_0[]; +++extern Gfx mario_material_revert_render_settings[]; +++ +++extern const GeoLayout super_ball_001_switch_opt1[]; +++extern const GeoLayout super_ball_001_switch_opt2[]; +++extern const GeoLayout super_ball_001_switch_opt3[]; +++extern const GeoLayout super_ball_geo[]; +++extern Vtx super_ball_000_offset_mesh_vtx_0[80]; +++extern Gfx super_ball_000_offset_mesh_tri_0[]; +++ +++extern Gfx super_ball_000_offset_mesh[]; +++extern Gfx super_ball_000_offset_mesh_mat_override_metal_0[]; +++extern Gfx super_ball_material_revert_render_settings[]; +++ +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_armature_002_switch_option_001[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_wing_cap_armature[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; +++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; +++extern const GeoLayout super_sonic_geo[]; +++extern Vtx super_sonic_000_offset_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_mesh_vtx_1[24]; +++extern Gfx super_sonic_000_offset_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_0[16]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_1[8]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_2[100]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_001_mesh_vtx_3[16]; +++extern Gfx super_sonic_000_offset_001_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_001_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_001_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_001_skinned_vtx_1[3]; +++extern Gfx super_sonic_000_offset_001_skinned_tri_1[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_0[13]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_1[115]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_1[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_2[63]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_2[]; +++extern Vtx super_sonic_000_displaylist_mesh_vtx_3[559]; +++extern Gfx super_sonic_000_displaylist_mesh_tri_3[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_0[103]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_1[30]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_1[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_2[12]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_2[]; +++extern Vtx super_sonic_002_switch_option_head__no_cap__mesh_vtx_3[92]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_tri_3[]; +++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_0[4]; +++extern Gfx super_sonic_000_displaylist_001_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_001_mesh_vtx_1[4]; +++extern Gfx super_sonic_000_displaylist_001_mesh_tri_1[]; +++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_0[4]; +++extern Gfx super_sonic_000_displaylist_002_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_002_mesh_vtx_1[4]; +++extern Gfx super_sonic_000_displaylist_002_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_003_mesh_vtx_0[31]; +++extern Gfx super_sonic_000_offset_003_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_004_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_004_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_004_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_004_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_004_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_004_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_003_mesh_vtx_0[46]; +++extern Gfx super_sonic_000_displaylist_003_mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_vtx_0[58]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_006_mesh_vtx_0[40]; +++extern Gfx super_sonic_000_offset_006_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_007_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_007_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_007_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_007_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_007_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_007_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_004_mesh_vtx_0[36]; +++extern Gfx super_sonic_000_displaylist_004_mesh_tri_0[]; +++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_vtx_0[57]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_tri_0[]; +++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_vtx_0[73]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_tri_0[]; +++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_0[59]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_0[]; +++extern Vtx super_sonic_005_switch_option_left_hand_cap_mesh_vtx_1[36]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_tri_1[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_0[59]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_0[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_mesh_vtx_1[36]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_tri_1[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[]; +++extern Vtx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_009_mesh_vtx_0[8]; +++extern Gfx super_sonic_000_offset_009_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_009_mesh_vtx_1[13]; +++extern Gfx super_sonic_000_offset_009_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_009_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_009_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_1[27]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_2[41]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_010_mesh_vtx_3[8]; +++extern Gfx super_sonic_000_offset_010_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_010_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_010_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_011_mesh_vtx_0[123]; +++extern Gfx super_sonic_000_offset_011_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_011_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_offset_011_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_012_mesh_vtx_0[8]; +++extern Gfx super_sonic_000_offset_012_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_012_mesh_vtx_1[13]; +++extern Gfx super_sonic_000_offset_012_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_012_skinned_vtx_0[11]; +++extern Gfx super_sonic_000_offset_012_skinned_tri_0[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_0[6]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_0[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_1[27]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_1[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_2[41]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_2[]; +++extern Vtx super_sonic_000_offset_013_mesh_vtx_3[8]; +++extern Gfx super_sonic_000_offset_013_mesh_tri_3[]; +++extern Vtx super_sonic_000_offset_013_skinned_vtx_0[6]; +++extern Gfx super_sonic_000_offset_013_skinned_tri_0[]; +++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_0[128]; +++extern Gfx super_sonic_000_displaylist_005_mesh_tri_0[]; +++extern Vtx super_sonic_000_displaylist_005_mesh_vtx_1[12]; +++extern Gfx super_sonic_000_displaylist_005_mesh_tri_1[]; +++ +++extern Gfx super_sonic_000_offset_mesh[]; +++extern Gfx super_sonic_000_offset_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_001_mesh[]; +++extern Gfx super_sonic_000_offset_001_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_001_skinned[]; +++extern Gfx super_sonic_000_offset_001_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_mesh[]; +++extern Gfx super_sonic_000_displaylist_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_head__no_cap__mesh_mat_override_face_0___eye_open_1[]; +++extern Gfx super_sonic_000_displaylist_001_mesh[]; +++extern Gfx super_sonic_000_displaylist_001_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_002_mesh[]; +++extern Gfx super_sonic_000_displaylist_002_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_003_mesh[]; +++extern Gfx super_sonic_000_offset_003_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_004_mesh[]; +++extern Gfx super_sonic_000_offset_004_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_004_skinned[]; +++extern Gfx super_sonic_000_offset_004_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_003_mesh[]; +++extern Gfx super_sonic_000_displaylist_003_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh[]; +++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_006_mesh[]; +++extern Gfx super_sonic_000_offset_006_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_007_mesh[]; +++extern Gfx super_sonic_000_offset_007_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_007_skinned[]; +++extern Gfx super_sonic_000_offset_007_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_004_mesh[]; +++extern Gfx super_sonic_000_displaylist_004_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh[]; +++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh[]; +++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh[]; +++extern Gfx super_sonic_005_switch_option_left_hand_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh[]; +++extern Gfx super_sonic_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_009_mesh[]; +++extern Gfx super_sonic_000_offset_009_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_009_skinned[]; +++extern Gfx super_sonic_000_offset_009_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_010_mesh[]; +++extern Gfx super_sonic_000_offset_010_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_010_skinned[]; +++extern Gfx super_sonic_000_offset_010_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_011_mesh[]; +++extern Gfx super_sonic_000_offset_011_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_012_mesh[]; +++extern Gfx super_sonic_000_offset_012_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_012_skinned[]; +++extern Gfx super_sonic_000_offset_012_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_013_mesh[]; +++extern Gfx super_sonic_000_offset_013_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_offset_013_skinned[]; +++extern Gfx super_sonic_000_offset_013_skinned_mat_override_metal_003_0[]; +++extern Gfx super_sonic_000_displaylist_005_mesh[]; +++extern Gfx super_sonic_000_displaylist_005_mesh_mat_override_metal_003_0[]; +++extern Gfx super_sonic_material_revert_render_settings[]; +++ +++ +++ +++ +++ +++ +++ +++#include "reticle/geo_header.h" +++ +++#include "mario/geo_header.h" +++ +++ +++ +++#include "emerald/geo_header.h" +++ +++#include "super_sonic/geo_header.h" +++ +++#include "emerald_circle/geo_header.h" +++ +++#include "sonic_ball/geo_header.h" +++ +++#include "super_ball/geo_header.h" +++ ++ #endif +diff --git a/actors/group0_geo.c b/actors/group0_geo.c +index bddefae..31d8c5b 100644 +--- a/actors/group0_geo.c ++++ b/actors/group0_geo.c +@@ -13,6 +13,13 @@ + #include "stomp_smoke/geo.inc.c" + #include "water_wave/geo.inc.c" + #include "sparkle/geo.inc.c" ++#include "sonic_trail/geo.inc.c" + #include "water_splash/geo.inc.c" + #include "sparkle_animation/geo.inc.c" + #include "mario/geo.inc.c" ++#include "sonic_ball/geo.inc.c" ++#include "super_sonic/geo.inc.c" ++#include "super_ball/geo.inc.c" ++#include "reticle/geo.inc.c" ++#include "emerald/geo.inc.c" ++#include "emerald_circle/geo.inc.c" +\ No newline at end of file +diff --git a/actors/group0_geo.c.rej b/actors/group0_geo.c.rej +new file mode 100644 +index 0000000..6d43367 +--- /dev/null ++++ b/actors/group0_geo.c.rej +@@ -0,0 +1,16 @@ ++diff a/actors/group0_geo.c b/actors/group0_geo.c (rejected hunks) ++@@ -13,6 +13,13 @@ ++ #include "stomp_smoke/geo.inc.c" ++ #include "water_wave/geo.inc.c" ++ #include "sparkle/geo.inc.c" +++#include "sonic_trail/geo.inc.c" ++ #include "water_splash/geo.inc.c" ++ #include "sparkle_animation/geo.inc.c" ++ #include "mario/geo.inc.c" +++#include "sonic_ball/geo.inc.c" +++#include "super_sonic/geo.inc.c" +++#include "super_ball/geo.inc.c" +++#include "reticle/geo.inc.c" +++#include "emerald/geo.inc.c" +++#include "emerald_circle/geo.inc.c" ++\ No newline at end of file +diff --git a/actors/group3.h b/actors/group3.h +index e6154e1..293fa54 100644 +--- a/actors/group3.h ++++ b/actors/group3.h +@@ -38,4 +38,7 @@ extern const GeoLayout water_bomb_shadow_geo[]; + extern const Gfx water_bubble_seg5_dl_05010D30[]; + extern const Gfx water_bubble_seg5_dl_05011000[]; + ++ ++ ++ + #endif +diff --git a/actors/group3.h.rej b/actors/group3.h.rej +new file mode 100644 +index 0000000..9b77f04 +--- /dev/null ++++ b/actors/group3.h.rej +@@ -0,0 +1,9 @@ ++diff a/actors/group3.h b/actors/group3.h (rejected hunks) ++@@ -38,4 +38,7 @@ extern const GeoLayout water_bomb_shadow_geo[]; ++ extern const Gfx water_bubble_seg5_dl_05010D30[]; ++ extern const Gfx water_bubble_seg5_dl_05011000[]; ++ +++ +++ +++ ++ #endif +diff --git a/actors/hoot/hoot_wing.rgba16.png b/actors/hoot/hoot_wing.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..1bbb093b04e8ca8ce65bb3853a1d9afc2e254bec +GIT binary patch +literal 1174 +zcmV;H1Zn$;P)Vnog5nky)IS&q1DH81u!I5gA-YzWLS%864>_TNAT^Ru$Dmt|9QPb(hJ*Mll1PFa +zNCy5u3Xu;;;(|anD3qQ9X^;aXfHXGCksba6>NuEH$b1%TK4ySwKvoEH1jy&ez6V)? +zo@S6O0kL5o`GLhukUWM1K!O55lR>_F4%GDn>O=I95`fx-E54CK06FNO*Vz_?%90S8SU~UK6_8sbUm^yMTMYadz +zHfCK0h6b2nUw|SY9F^w8U>2Xnps8!dASn8W;r{j83_sp5F#G|^vj7$U`NKdF_yY|| +zkXhg~01jdx0ZMd+K*G3m8zZBX591Gp9}JpKK@5_L0t~RSfD@>WgM%^$z_f#Cumc2v +zm4KC(1VePSB}3~6c=^sCWSztKwJv##e5lw^1hbVT-&W(Lb3Lk2-f4u%Acru00IJG4&VaX}A!QxIC1Vh +z!U^>qh7;~@Qt!0MC5%29w}+5Qg%BUQ>dh4J2+ +z=Kmm{OK2K0Xg=T101CbP=NTA&Knn$sBNR0`7!(aP8SbCI&LHvP2ZK{k5QC4kz{EsWtN84k;{O~H5)6Wz +zf(-AU-)8^?fFRJY?;oCnLy{AeN%F2|-Cn%kMj| +zsN@93!T0a)8GgKY0rZ^&gLX(MLGu|YDN^oj>Hh!x!F2`!2}NK!02W&x-ZO9jgWNcz +omXU#;;407|_x8^D&oC4L0Ho>{+0B;7Pyhe`07*qoM6N<$g0b`C_y7O^ + +literal 0 +HcmV?d00001 + +diff --git a/actors/hoot/hoot_wing_tip.rgba16.png b/actors/hoot/hoot_wing_tip.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..952b2d1f42d380e88d2070bf304bf1fd590f0445 +GIT binary patch +literal 1947 +zcmV;M2W0q(P)hO^y4|JMW&7bOH8 +z0E-S>(E@S=2QUT0(#rei?-`7|f*69Q%w>4DrTPEa<{-S$f)WL=pv0B%K)yy-1In79 +zV3z|Lj{z5 +zfBb+XWiKZM22D*4hIQMnGxVgiGF;oYjR9ysgQTG&gQB7$!__HC7@>jT0CeB~03|Gt +zEgYz+1?E6F4fg&I1}85|1}{emh8I9zOf8wl@Z$P;pzl90a4IS=ND6Q;ygRxC#SttF +zXxR-tQT~91JIEnG_J<#+Dj>nn!C<5*!0_V!3!vl=2CrZ*22G<64CjuW1BSp4hWG2{ +zGB9{$GYG{@14h9#6a$!$gA*nLPw7xge?S$1EE9lcHIUlpkdSAP1eQt?Ktj{ek>Lk0 +z%#STy#vs7)ogurYg@KddJHzwq*BP$Qt!22nWe!FZFa|-(0ayrgU-G%pk#*U=Z=9x=KlHf44T>9 +z48}2~@WjXrEKVC>p#ZX+1+0{Tfd$9`iGye!kRXuH@`r)p2N1t`^9SrqJz%i^`S69| +z3s4~_YTjIb095drLCegFK}64x;mvKJBLqYlc+~V5?gJB~uA3jj<#m%7);(Zog!vO3 +z0jF$M;(523#P0QB*5pwB^anm`9|e1|A{4ipEO!vQ3Kfy3Yw?Z}{M +zXaz1M1%Nr=ST8U-I3QkC3~FIe3dsS70t-m!I|CX33Mv3yqo}~a@cad^ng;TJ0BJ*@ +z$%clS43ZMh8QufEtf&dB%ASK$0)wWYAj60E!1x9_gahb$4hcnI+ym=LXgadW&Sv=V +z9ApsC!9U)^EoAfprh)eim;lruu>|I6K>-0^Tz_D=|KJA$sIbuj`uhI;4-68L0t_Gr +zNGeJ)`~a4I3_yz{fIj7vR0Ie2_ZQb0I0Yma1QfLx1SJ(1I3y&2X@Y}6$hj1yFk%vb +zx)9_9SONrv3dmpQ@BaX6@(OlhkdR;i=WS5I0@4F=#Pwt68SY=d#=rm!84gYkNP+}9 +zfJ0G};la5d;4Jv#$9IPBAWfhsdjEl830fV&Y|F#YAPThkC(u?_peu}kVJ`vX^Zxn6 +zAgd_A@C6u)hIY0LTDr0fKR!HX-~|S+qMQf=Cl4^a{RQTNHy;>2yawif7FGsMpdMDB +z|5Sl>!TrTJioa7fPsUTfq@n1S`H3YhQGjCTG7ak +z;qm@;46APcfH*+&2SdY`4}TaGwIms={OlO+AG^%(=L;y|yc +z@-lD&eemJUbA}&43%>xdh^#7us30SQ0MJqfUSJ&a2rvi&9rk1&s0qu$AgU_K@ZkIn +zV5kAJH7Cd=EI=m!L)OrY!BON-!?M#)8ks;>)X}=Qy4J6X<9LGynheO8IlZpr$jTb7&!q=1Lh%6 +z!6OB(EFf9(-V_O7x&4Ac0GRJNes}?Wag0IBDTu);=?BBHX~%)Scn)+3(1%gLvSR;! +zps&v}C;|=P1ZG7|uPBD&Q>QUV0#pBcU`Qwe?U1yzWO#lYR7CG%0M{wN#HpRrO1SOz +z4A`oX@~H*q-Lu7(|0N9#f%!s`;oQ_(a28c`^kUF1UB`HJO7Z^}`{pu$3Lr%*CtzAS +z2DVTVWH~TYIDi&Pg|vdrxz`=_U#WB%m`!nS=N_<;p_DTZr#biLWc>%`Uj~r31%Rca +h5Y#gaqhPRv005q8ZRonV=Gg!M002ovPDHLkV1lw)MhgG{ + +literal 0 +HcmV?d00001 + +diff --git a/actors/impact_smoke/model.inc.c b/actors/impact_smoke/model.inc.c +index cf44016..0926890 100644 +--- a/actors/impact_smoke/model.inc.c ++++ b/actors/impact_smoke/model.inc.c +@@ -28,10 +28,10 @@ static const Vtx impact_smoke_seg6_vertex_06062A28[] = { + {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ 150, 300, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, + {{{ -150, 300, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ -150, 0, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ 150, 0, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ 150, 150, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, +- {{{ -150, 150, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ -150, 150, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, + }; + + // 0x06062AA8 - 0x06062AD8 +diff --git a/actors/impact_smoke/model.inc.c.rej b/actors/impact_smoke/model.inc.c.rej +new file mode 100644 +index 0000000..a3be54c +--- /dev/null ++++ b/actors/impact_smoke/model.inc.c.rej +@@ -0,0 +1,16 @@ ++diff a/actors/impact_smoke/model.inc.c b/actors/impact_smoke/model.inc.c (rejected hunks) ++@@ -28,10 +28,10 @@ static const Vtx impact_smoke_seg6_vertex_06062A28[] = { ++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ 150, 300, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, ++ {{{ -150, 300, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, ++- {{{ -150, 0, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++- {{{ 150, 0, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++- {{{ 150, 150, 0}, 0, { 2016, 0}, {0x28, 0x19, 0x14, 0xff}}}, ++- {{{ -150, 150, 0}, 0, { 0, 0}, {0x28, 0x19, 0x14, 0xff}}}, +++ {{{ -150, 0, 0}, 0, { 0, 2016}, {0x28, 0x19, 0x14, 0xff}}}, +++ {{{ 150, 0, 0}, 0, { 2016, 2016}, {0x28, 0x19, 0x14, 0xff}}}, +++ {{{ 150, 150, 0}, 0, { 2016, 992}, {0x28, 0x19, 0x14, 0xff}}}, +++ {{{ -150, 150, 0}, 0, { 0, 992}, {0x28, 0x19, 0x14, 0xff}}}, ++ }; ++ ++ // 0x06062AA8 - 0x06062AD8 +diff --git a/actors/king_bobomb/model.inc.c b/actors/king_bobomb/model.inc.c +index 3065684..9b947c0 100644 +--- a/actors/king_bobomb/model.inc.c ++++ b/actors/king_bobomb/model.inc.c +@@ -531,7 +531,7 @@ static const Vtx king_bobomb_seg5_vertex_0500B218[] = { + const Gfx king_bobomb_seg5_dl_0500B278[] = { + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05004878), + gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPLight(&king_bobomb_seg5_lights_0500B200.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500B200.a, 2), + gsSPVertex(king_bobomb_seg5_vertex_0500B218, 6, 0), +@@ -548,7 +548,7 @@ const Gfx king_bobomb_seg5_dl_0500B2D0[] = { + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPTileSync(), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPDisplayList(king_bobomb_seg5_dl_0500B278), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), +diff --git a/actors/king_bobomb/model.inc.c.rej b/actors/king_bobomb/model.inc.c.rej +new file mode 100644 +index 0000000..aacbc27 +--- /dev/null ++++ b/actors/king_bobomb/model.inc.c.rej +@@ -0,0 +1,19 @@ ++diff a/actors/king_bobomb/model.inc.c b/actors/king_bobomb/model.inc.c (rejected hunks) ++@@ -531,7 +531,7 @@ static const Vtx king_bobomb_seg5_vertex_0500B218[] = { ++ const Gfx king_bobomb_seg5_dl_0500B278[] = { ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05004878), ++ gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsSPLight(&king_bobomb_seg5_lights_0500B200.l, 1), ++ gsSPLight(&king_bobomb_seg5_lights_0500B200.a, 2), ++ gsSPVertex(king_bobomb_seg5_vertex_0500B218, 6, 0), ++@@ -548,7 +548,7 @@ const Gfx king_bobomb_seg5_dl_0500B2D0[] = { ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++ gsDPTileSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsSPDisplayList(king_bobomb_seg5_dl_0500B278), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++ gsDPPipeSync(), +diff --git a/actors/klepto/geo.inc.c b/actors/klepto/geo.inc.c +index 0d0bbe3..d9033f1 100644 +--- a/actors/klepto/geo.inc.c ++++ b/actors/klepto/geo.inc.c +@@ -29,11 +29,10 @@ const GeoLayout klepto_geo[] = { + GEO_NODE_START(), + GEO_NODE_START(), + GEO_OPEN_NODE(), +- GEO_SCALE(0x00, 16384), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_offset_klepto_held_object), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, mario_cap_seg3_dl_03022F48), +- GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 75, 75, 0, 180, 270, 0), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), +diff --git a/actors/klepto/geo.inc.c.rej b/actors/klepto/geo.inc.c.rej +new file mode 100644 +index 0000000..bb2a16d +--- /dev/null ++++ b/actors/klepto/geo.inc.c.rej +@@ -0,0 +1,17 @@ ++diff a/actors/klepto/geo.inc.c b/actors/klepto/geo.inc.c (rejected hunks) ++@@ -29,11 +29,10 @@ const GeoLayout klepto_geo[] = { ++ GEO_NODE_START(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++- GEO_SCALE(0x00, 16384), ++- GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_offset_klepto_held_object), ++- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, mario_cap_seg3_dl_03022F48), ++- GEO_CLOSE_NODE(), +++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 75, 75, 0, 180, 270, 0), +++ GEO_OPEN_NODE(), +++ GEO_BRANCH_AND_LINK(marios_cap_geo), +++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), +diff --git a/actors/klepto/klepto_wing.rgba16.png b/actors/klepto/klepto_wing.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d17ed7ae012ddcdc313713e776c521b7514ea77a +GIT binary patch +literal 1852 +zcmWNSd0Z2B0>yuGBr|~_2OuO6L&71Hazs>0T#y+B1q93@`caEIO1xTZsYe$)U~< +zX^E5qrGQyP8x{RTD{Zyibz(q3D@R3(M-?h6TeT1=3KGfk$9wPZ?;r2I!|L>9ZZ1A9 +z006h-q=bx_BxfYYxij8aUtju&3iJw~~BYIu}y;8klUuWGYKqcIwdG@WPH4I;Hx +zI3{f0B6f=~1=PhCHduRlghPE!sZK`-&TiZ$1i!-Mii1u&64-_N(-4@Io#%uGfA=Q4 +zcPo|b^40QhAOm%YI>lIRxT~wNMjjBbwCCqF&FQX=!QP;NW+Q_ul*7x*q-F +zpi#myM~sykb!MgpaE8aGUP~JE87_gV-Y!cQnKE_ZYD@k~QSG>;Q{)>H@&Y890;uA* +z6Lw@+k!aBeaRS*pj7JU3%HXvwE~s&FF3m^?OHS{-d)F;Hodta)g9hv69fVpAPd+R> +zKu_2Qu}^xjG+rbFaZ?k^2o1=BbPE9a#MQ-R+G&3qr#F}a^-Ya|deCFnu{A@&Aq_YV +zj3ufV6_bM>MMAJsD)QyjtJ%o6sQT-dkJ<&zTB_79#&{k+pRb%p-$`CcGWMx*zXV^m +zDA!{_+nbJa-UFUMTF0h>J#5MA5i93dpi)k90%D>$Dlr;^TF(jGzeK&NOjkUH9tcJ* +z&&$HR8rvDpyN3#<9V*1k7$p4bi!F=Yt52&;lZQOStSO2TW`^jm1<)xDC=4MvqXPQ- +zx8U!If2r^2Jb{I=R((K2hrfHLnNzlR&oUm9p=a1aNWB_bhc4$?Kt6vD``_$#@n6VT +zj9HCdTn}o8tX}ZAe1^u75V0Z#Z}p2E*DmH7{w?Ev?VR1@t-(Gy3F^KYeZ^UqlEQXP +zj!vue2LB(o0*|y+s3NQl#cf2T +zjPBO!y*^$ptf^G2^6c?8^&@T3A+M-#-#iF^LjL^6&~OI`#i}CSznUwnac-IU~Xe+Q?PoO*= +z#HFa@yyg6?#1!~+8vTgZmkzcRZFzQku7kWb=FVoK75fEe&JWLeWXZu_R9byk27ZpK +z)~?k)>U3SxuZ?Yk#tDnv?$5=NL-Ov?Imc5*(gA&dNzlE8{)k8Awa +zJfE$xXRRA6&V%{4CEA@+P745sp}0=`x;xR+Uozz?7MtdT;;t|PGDEJ!3Nn!E(&5KY +zME9|L9}U{|KruJqL7-cy?59uNoueKGng&N7aq1VQ6Ft!?vk+~8tq16l +zUxhIr0iS5(I3e7*V+SvK4C~XZv5vzX?ZsM%`-86;wT;PF*p!Hf2_1v)^p0A4oW>1} +z@*n?+hKjTh8-h1S1d+Fb%xAz$u|<7A@O-xJE;=)v+YBf0R;7=+-e0(}#IvEy;GjD1 +zb8pRAN}pLa(9vBuI)E$PkhmMT4+rJ|%l{llk^YZC3p%p#GXJ%w63n#OH`&zBef89N +z({{51O39FrsTKR|4%M;76aI}jJ;9ewznONnPx%oY$mx~U5k;qu82DvyT=|0Jc|AgP +zI5-UaIsqm{MaBP$l9C_{wvtmofI-vHkY4sPuxKhOGJN>(f#Lb{=l?l@ +z)+$I!GCly(AV=T|349JDHS`$oUA_AMInV(hjrZ^0XL$eoIl}`W2D*XqJ5(GN959Oo +zB?VAI=>78#7$HWiLs%q$A;1B&2xKt`|KQ+YkPsAPc=7)Ie~=^4O$J%6D51!psj10u +z{rYvVw4ww=)j44LAvNw;I5|1NdIW)%atd%TaJ=V0F#|ccku3)~TtHIr|BoLG3_sq# +z2RjBR&j`|tEkuwFRRlWzKGg9nUgG|T@>N=gECNWwz_ +z=okh?p!)kS?lZzH16f2UL|DFm|IY9O=zt$UdfT>b4CjC@10_n3#t%SoM_`UXviv{D +z=O8%_U{rxZ4a5egoe%JIfD(0*5)v40c>dxAT#N-~QA=$t!+B^N0z;MI2UN-a^XLB; +z8zwOtT3LY%W&l|V%(@H$K!bk(Ed@FL1C;&_bTBOVLB0oBE&&cHh+!`vi5tv;MFR`a +z`wVk?dccK`00$)gKR~182g2?DK|TgqEC?(oK36uetB|uU0{QYx=7x$ktTm#h^ +zzyu2lL70n?d=5^mAWK1(gF^{Y+A@5HCU}@0mh;Dsf!WVr082rjq7PU~wfn#j0F{;? +zA0G#*-v4EL{HW4Mpx08mg1 +z2tv{iD75bH+Xqje??1c%R(S7${11#jpmv~^gjj4vcFOtV$HD1B0IBc+7hXVpFm<3> +z732s|6g__cOr+QDGk~J*1FEO~15+AG2rx=OidzgPAQwiU1PR7K2XI2miua(x2dE2H +z{&hDuGn_xZ4;V7{!PWbFw9rI$2(lw^I)DMmcOW(gniFA(59I5ls3?XHz(joh*m)hB@SrlC;}6$ATT$8;`uu$ +zl%Syn)B_HFe^^;JJx`ff3zI76vi^a)=a! +zmJydVBsqWsiz&#t1;z%^ge-;`MOFwPM+0(hL5f>OVgr^e2f!>vid&d{jHJdWNe(~` +zVvt4T_?WCjh-@(^|3cFO$-c!FIs`)iW;wJpq>81;4k73Oq?Au}%RvqyF1u_$4Hb^b9S>RlNqTvUcaU4KCM2rz6LntH=h661Ix}M<&NHfe3 +z4h9aO*pDAS;AX)?Kv7fiKTv|f($WxQ4@dzRYiepT0A0@@At6C@eiabl0IN0B1ewJF +zHH(80WcG(29~cY`4dG@XhX6>B5$1o8Ptk%MEKf`bNJt3$fAQi2PP0H!@!`VY+Ic)kbU% +zK(T1weFg^SmhTMKt?wDuo+IptYtI=NoO-_h2dSUB53Bc3%tx<`P$bU*4U6f0&+z^` +zBr9<~?V4ur7z;0}!9vcZ>lP%;7);wA94#jFBcMBZEW|lDGf^ha@o90Mm-5B3A3cp2q0_C!hlaLHdBj +zuz*oC++YFAB@A9hoERZysl~vc8B`2Z2XP#SWe?B+l3;y~nhZDravA^`3NH^Nf$7K5 +zP>^BWzUK@Az@`-k$60Xdw{kROFp|VH59HP$CoP8F2TOp7^aF!{1h6Rw^u3}a2LrCk +z3uFr3%BaMPfk6Z1K!pVunPYVQvU&1kVH9gGDI6;4SnJrfTkU< +zWC@}*7QyQP+nmC8OH(SL&O+~2?d1VK#PH{XZQiq3^Rm- +zfdeS^srVl#!C+}=2$BOS0Ao!}O$MOrL1O=j4Fv%K4sfU$YJ$w- +zfSLuS89w~@z+h--h{$@NYzTB0gM@^{e-I7AATeZ&ERQaSO|1fwS;*$W%$E>=*agxH +zF9%@0!xqf=uqYTUh(=4o(GVC7fuS1$q*cxgIKgO1IGPIvJOmg)jRf>0 +zN~j)(sfVe<)>0zY3~&g58jK*UX{ZTrfPxG~#vn^U@;?|j{(~^OqhaF2n85&QtU?>R +zh(;+;;KvV0>r+8N0VCf&c<=x&1`IWLqY@+t3jt_rngN@Bkh&KyULefnmC8OH(SL&O+~2?d1VK#PH{XZQiq3^Rm- +zfdeS^srVl#!C+}=2$BOS0Ao!}O$MOrL1O=j4Fv%K4sfU$YJ$w- +zfSLuS89w~@z+h--h{$@NYzTB0gM@^{e-I7AATeZ&ERQaSO|1fwS;*$W%$E>=*agxH +zF9%@0!xqf=uqYTUh(=4o(GVC7fuS1$q*cxgIKgO1IGPIvJOmg)jRf>0 +zN~j)(sfVe<)>0zY3~&g58jK*UX{ZTrfPxG~#vn^U@;?|j{(~^OqhaF2n85&QtU?>R +zh(;+;;KvV0>r+8N0VCf&c<=x&1`IWLqY@+t3jt_rngN@Bkh&KyULefnmC8OH(SL&O+~2?d1VK#PH{XZQiq3^Rm- +zfdeS^srVl#!C+}=2$BOS0Ao!}O$MOrL1O=j4Fv%K4sfU$YJ$w- +zfSLuS89w~@z+h--h{$@NYzTB0gM@^{e-I7AATeZ&ERQaSO|1fwS;*$W%$E>=*agxH +zF9%@0!xqf=uqYTUh(=4o(GVC7fuS1$q*cxgIKgO1IGPIvJOmg)jRf>0 +zN~j)(sfVe<)>0zY3~&g58jK*UX{ZTrfPxG~#vn^U@;?|j{(~^OqhaF2n85&QtU?>R +zh(;+;;KvV0>r+8N0VCf&c<=x&1`IWLqY@+t3jt_rngN@Bkh&KyULefJStINzq75@qx=cX()*{NK^h5ygyW&z^zBK<0qd!Spg9 +z8S-C2K>=(4x@Hg`&2bDk9PuBETChWq#c?_yDk|zfdMF_K9?fCc9PuBUdK_ke^`nFU +zaxj4`18KzNBP<~R4{~HZTefV0hYCm>WCv2*Fu)uD7XvAPMFj^32hKRf=Kx%0pr6DHxXnkVA0JoH_7> +z3^EH>E&w?Mr4WJn8aY9t`GBZ$068>3o49Z^tggKLO?*^KeA@DC}6->7a&IqvKc7VF{ma3xk6A-kO3P2)nq_9ywx#2Ghj6# +zvKh2!4-nJYgnNS2jtMc15khKE +RM4tcv002ovPDHLkV1nHe{a641 + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_eyes_down_unused.rgba16.png b/actors/mario/mario_eyes_down_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..850c293b88ede006840de34ee6d5a5897e08e306 +GIT binary patch +literal 1030 +zcmV+h1o``kP)J}_`#`1J=ljsSWDWDvwO4xp(Zvl-Al1b2X; +zq2d1zKRz&6S{ed%aWDc2Am(5+)HDP;M?ipssQd~FehCQ)P$)8JYHBh-%wYhV2QvG| +zj~@(*nu-XsK;;0)brJ#+|3NeegT!DMCZ-?(kw=!p#s-@ufiMeZ9?TqMd60f^L4=%W +zuq8G^^2jkps#*9-LgXN4WFQX^Gy_{f1kC{`Hj-3cfB()vv>E6jK*%CuLV_eSNG*z~ +zQFEb~f$RWc4acXBWCspZWdwI9H61`!^uQcIs%E0q6RN^sxquwkqvr^+%wWM)z6d5i +zXOI-+V9-?LV0aJo#=a6xl8Pe5lJ^Whz~2ACAjrwVaIHrWtA30$@EoYgsOCM`a*+OG +z=k7C{KmUTEWh?RadrxIx`0yN9s{$)G4xr`l-~V8Up36X-15#S=Ge|OgV7R}pm*K~@ +z9EKm)&jV}F?+nM!KPSos*MQ2-?K{TsVO9<5pF<%D6rXS`V7cVKMAX&)Xn+B&HUvv|Zvi#4HQ{$ZaR?t|(DHN!xmFUW~mmS7e{91sU= +zn-;^cZC(j5L|!m(aBvV62q5DHB^4Q#wfX=tk`}0b2?4MeiU&}lz{|@C7z#!Roj+cH +z*&K#*7zC`m7;3yY2sTK7Enze@0>B)k2sTF$i$72tFg2Qi!OF@KXn+8UAsmW^;AVBQ +z6XD|6&=TGhhj>IHh=D@@6txVDnu-h<9>6GyKRkcIAmFtGq#3AKf)Q8x +zMT3_SCj(FqR6hfwfKfCf11ATgAkghjikL4iUkA&{{LY30ZJG^{Nq0d +z2Lm{f;By={mx0xT^}@^ooAV#t9B?9p3xYKKKr@a5$cKnAf@BDV1i}KK#X#3H`~Yc& +z8N$K90Tlc3;|C+m9C!#QYAXH*N-$Vj8iMQrSq8?Mnwkv25MhvzkRUp{2ncY1)f#Go +z%;JEW#lZ+N`@@e942Fh=@Q^?b0gxs}nEzoegh!2p!2b^~J}?p!0un&AFMw*1%|Z)$ +zuw5XtP@@2-1D6Fb1BgkCgw%rMVdjh$M586)Xb23h%BZKOhvCJG7ys|yzt3>&*f9_r +zqnLMebY$4KZyzJJ^54nH>Hq%y`%$ETB`CP~H8L^+ma>-MQnsX|1g-{L4z#qi{FjuJ +zWVn9)I>Whh=NLc^02RwX$6&LE!7yqG!?~r=D2`xcWW-riD<~*{%~4cTWB@q?hN;fA$WWE&myCrh)gs>K{^vL8?M4Cr1V?MFxgo +zFDnL6=rEu)58gk2&*0?f1XdH|;R_&1UWewAQdSGSm(ZN+Zgtp +zV_=xOZYwxW8PM7;oWLO62350c?KX&Q9D-1qfkA)+y8~EoIE+C;04l=)(fQ*1GzMqm +zX<$Lkpe5+`gQ{zWZTnk+YNi6!d;qKC-~<^0Yy&U=F(>{Iz)01CP#1GZ0>hm_07W;b +zjeu^PrlKNL=mT7eLqd_^2hd_kpmt7Dqd*gC9*2M=1A{~migrUwO$_6VG&va=B$ANC +z1sFIafejL1TG3R*YCYJ~IMaX=&;f!VeViN&0!GnrgMqn%!OMsfBg8DV7#K8zih=4N +zj^nWG0Xjeutj|%C0VhCC10X};d07&eejE)28P@H4&L9A6T5)ik1*d*1M?(f9Nlf!V +zZVhtMV(5La1ei!aFbGHhn{q(kD@t-OSSjLm0N$dw#EXGJ5SSP~ya(n7V0;QFXfkAZ +zaWdjEF58KL5ga`dhQJ)e0d{b<7bk-tW(>g1z}6x{DbbGIXJF_B=BgjSjGyJm$>6QU +zz{r3HoO{mjAEf>Rupo(Y;$(<6!m5~f2cT)kYdMlyd@X1cGq9BdFa`g~v>c=jn;BRg +m&w?j3iS;c5C1wnGdjJ4ej$ktF39{w@0000J}_`#`1J=ljsSWDWDvwO4xp(Zvl-Al1b2X; +zq2d1zKRz&6S{ed%aWDc2Am(5+)HDP;M?ipssQd~FehCQ)P$)8JYHBh-%wYhV2QvG| +zj~@(*nu-XsK;;0)brJ#+|3NeegT!DMCZ-?(kw=!p#s-@ufiMeZ9?TqMd60f^L4=%W +zuq8G^^2jkps#*9-LgXN4WFQX^Gy_{f1kC{`Hj-3cfB((^%CzWuu$qDHfd5nXF)(P= +zyk~Ig!N~VSIb!WOhX2;B?-`t1zBBB*j}dGbW}rA=?lA_2nx)Sf7=AD?2m;F{QXO#& +zXkp2+_YBY9GceqL{(&K9>U)NB&+$6~?ttgOV4J$_J%gkm2Ls6O$IjhnIDh^HL(5je +zzJRG{-Nx|$1JGg)V0Px<t*<{Er;R9_45oM +zryM{3oT%h?4XEtgzGDm@*5xof0OB9dpEGa(J#+s0dxrb(@puB3mldM+{^w9gf+avO +zEnvCizeLp4|5yM6dKu8Y1=O(6gzM)}DE_Zd{O-R**1P|6j{e7K1~>$=mqN<>9}ngs +zoXVle@Zoq21Bav}!@g^Tqv8B{kfQ5wg+Ct5W%%(P5_?cf{%cEGv&h%6UWyoTZGxnm55Ud>=# +zAC7G!XgNstbD(8e%}0TH&oL-i7DMy^6C;T6;REif9PEG}_s_$99OUK1pry#b;Ny{y1`t(+XeT7gwCxMqEirzrt;fPkVTPy?jeT())_!@hG24BNJCBi;eP +zG6PtZGt6DL6|8q3R4=IF0foLGC+-Fh3)~hChy%7wi(%L{uLKw(FBmvDIEZot$aq0X +zMTTXqK0u751*%^{0JkyV5by#9yMUq*Le-BKU^a*090ma^FNPW~!VZDf{YW+m0CSKc +zm@kN3JGg=aJ78)w1EZA{Fy%9#I+a5alA@EHFoF=Hb~LoqMD?ab5CeyRBv?#Skw6H5 +zq(3}=!64wZ1gcVk0ayru%K%A^9}L6*FC$JykRF&?0i$RJ24Havu2b+h0G6B2dLv;)Or_ +z&|5_RK~?g(>)#n301LnFXif$#Nd}@F08+U18pHo-`@aM8KPN*m&~ht9{Q9vq$-qS< +zsO-R!dx>qD;cL90m_f@nA-W^5I-Uhj43XOqg&9edegHJ|;IA3DqDTM$002ovPDHLk +FV1lD`44D7` + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_eyes_right_unused.rgba16.png b/actors/mario/mario_eyes_right_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..8e58001d92997333c723e34715941ed3a02e87f6 +GIT binary patch +literal 1242 +zcmV<01SR{4P)^$Zdc5=7-!kmUjb9ALGE +znjo_{pk{F}g3SK#;{$`Cp&`O7P&oi}7uW(24Z|>T7$4*S5E~?p4};Vw03C~N7P5H~ +z0uujWW}!v_(C^rS7&+eFeS62i$%#9$BC9227DygnNr)WejAWKq1kJ!z5TV33Fa!So +z{+)r;G88Ri}%90G6^z1tWV +z-oO9Bz`+Sjv%u{00qBs{ZFoZg#qyS|3=HSbzhF3a?mh#k9F-L0V3@k?J;QUP=tK?y +z6wUX6K0bf_Jp%_&(~sxR86K?5VfX;V=k^_Axb_?~6tET4$Im}!-~d|vMiyKFy6-yB_druQfWi0S*gOV?58J>>U#z>&ur2A@e=TnYl$?Pr +zW1a(g;K%**3?Giiz^&Q${yBq$RWy*V2o}Rx9p8ug@&{1Ej|X#++<6@stk=yAy%Z9aFb7~{vFFe_;m3VYaD9LnAOJ3=8Lk6^lu%Mkp7$Q1 +zYejny9z%M~n(8Lpl?$B@;0l;Qb(NTMR-h!4jg(Prq? +z4Ags!A*gr_T+6xp-|;)(Jt+QxNg6i*~OLE?x*(GX3o0E3m4CBxKcNI8Pj0Zu>%fXi@TF)Uydjc~o?5(Y0L +zPNJ%3Ne*B!4lD}TF0I+Gr +z!EqLx`mG!d8H^+uhysR+z<9h5%tydb5MU?<>iNN-XlTW-q*@TJp9P;uC0+~+`_FR# +zYeJw;BorAyDIv=XukXR00Oe3n1bA5rGCTlQqdz1$8J-J7GbjQRR(6me12AOaA&9L- +zgi@P{mcc^gDwB(9=emoD9iUU@sHz0JIPywrPgq +z2v~?f%|bDQ*ft?ZFR_**yBXObSoPye1LRo9Kx&8q0P7K}S62}@JOBUy07*qoM6N<$ +Ef)45uUjP6A + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_eyes_up_unused.rgba16.png b/actors/mario/mario_eyes_up_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..01d1bbdebd40bcae0d6d16112f51adeab4761952 +GIT binary patch +literal 1128 +zcmV-u1eg1XP)F1u_$4Hb^b9S>RlNqTvUcaU4KCM2rz6LntH=h661Ix}M<&NHfe3 +z4h9aO*pDAS;AX)?Kv7fiKTv|f($WxQ4@dzRYiepT0A0@@At6C@eiabl0IN0B1ewJF +zHH(80WcG(29~cY`4dG@XhX6>B5$1o8Ptk%MEKf`bNJt3$fAQi2PP0H!@!`V62=YCW(Tnn;d(2~UO +z2vAewe>V6z&_;LRn0|zkVuRjNuB`9W~JK+Cw +zXg2(DALtc^4-f|kfO7`J_3P&e2Enxl_aPPtSi;r*cmXsEX!i%8ap=VvMhJZP09En> +zV!484F~ik!=NPh@k1{+5ItnO@FBJa2c>aRH(5o4!=NLm!@fwIDzP|v|pltr(J(vkM +z1K9y!L16qdK#C1WP*^!RGH59>Fa F@OwUAW$N|fBv4q$=7 +z00*iL7IXt71fU`u5S1^^Ph)U4o(2}w3|hi~ySjoTUSNsIux)=UP!BLCK+_NhC&*A> +zF$@e_4uk>Vf(;e|@Hi2Kx{yN>814)LDDDFl%M1j7rlKNL#Rs@b4hcnuA3%#GfySYG +z03!-Cq53%lfF+JZ5Q=q%mYRg@XE4$PS|O2yq)vc=LlT&afN4il5i|TS9N+|WfFMX6 +zCkKOoQ8e5j0m~%}UPhb*9bl=&z@Qma3{(ekEQe(e&;gL*(-DjNG1362%yu*sWLUTF +zIj{&d1SY(*;M8yBXvknBNzi_98VPdJV(5La1gQ4|gMfr4xGqqX~d+XSfb5)xcRA*d};C7pv;S46N=itO69V`gN~|Z~>d+lP_fTM>Fy&*@PRJ7|@+??P +ufGI%FmZXFZHZ!p5XTcK!)QAp(W&i-@=w#>4Q%G9?0000B_R&{9|JHj +zfXYn>u5N}%zx##|1Iho#2^g^1!$7nHjvhs|2xeJQ5_WOy?!d5*foR`z2w+(B?b);c +z{{=9`|8Lp*|38r-fvYmYOgM~;q-6x$l^lve*m41;<~@%su}V#Q35@Pvpz +z3cS%uwc=vJLF(v*sivj{w?4d4KzyP?1oBn1Xeh46mJH$L4+CBYd;=D6>tCm002ovPDHLk +FV1g@;(24*6 + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_metal.rgba16.png b/actors/mario/mario_metal.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d17d38bee693b7a83558f893653efbb04e36c85c +GIT binary patch +literal 4790 +zcmWNVX;>5Y7RLWGlguP!Ab)cCB{O`LC5kh$FuhU;J7<#zC1oNd2K35nwyCQ40LgyMgz^a5*L>N$!873 +zk*mWA?*do*=oNK;wA{_qz6c`1Itiai-8)e&79`VVgp2iH3Y*0eu!7{z%ZS~*bcv?3 +z?u!T~SdTtJr}smXBI7e;OXEPjALl;!{?!3KUXY0{2x|MYpng#DYrsq)_IgnV8$gNc>H4`a%#P= +zP$)$G{8pjS5wWN~+#44qt5OO^4UJ5FJ%sO@O*E@WbN>rIVmJ{lX8AitYBZ>XmERxE +zoNi{|7|U{R7*|or!yuk#GtF7qK+W^?jW@q)i$!$vu&?5b&l=_wYdHak*%Y3zLX^edx4$n&#wbvHOmu +ziEGUk3u5ROY0aAMMHO`?9c-FeBIbFx;Qa1Py$Mc0=e}@_Bjz^nKfUDJxZ9Cpx{-%Q +zLOkbjBx#>&Pi9)6xZ)A2D=;bs)qe>WxC{M-A5@uk+dgAua%wg^4Gw*OdedF9zTUv_ +z{5Aap6VO%v6{8V;9%xKL460Z;F)TZ;^ONQwE}|;cY^Q&T1>h_8yBUeE)N9`I+ql|9 +zi{6A*{M^NlEM~i13#VLbz+gC4$#Vb5c737JHd$a_7YXFMEOzc5edB{7c|q=B8Y-c! +zBj#GMSG_@7A*p2=26N>^fkvKC>{8;DD4b-?Y$m5w+IYwB6qaXYY69$a#gLZrf8?L4 +zbZkjgyfianE$994BmT7wV~~YtZ>8N+hM_nj$8bgCxvh!bIw#IpBv|p +z7`So+INYjTY3Iv}&s3S|_-W$9n25P2QXS_9B7$dbEuS^Tzp#*8u}9lHV@A~6LU~*v +zQeqVfKEDsX%Xo78-dEI(Fdf#;OO~cTyIRzl +zONk3c%b^lNDANvDh^qZ;F`b}PHcsSHB +z>e4J^xlh$Qq^$dvwXH6IEM}E*8v>cEt+uar&eATIliJO}s)=XFhY%L)%NlIbR(REmdH3Pf)IZN39iNS_ +zrl!6)GRvFE{Lx@SO4bELP@dSUyVw@{b?`#)D!*P@b+6P%V$8CT{CjD +zv(ANV&uCp|jE`Se@Thg2eJA@Y9y1B`bBIP~BqgD-lN?aHyV3ZC<_BxceP+aPWHvMM +z!?3TRtFA}zavQy#yUvorhHf=8DLxAnlGXYgta)|QM6qh+@yrovZk*Wu#p2onO +za5sX#{2!l@zv9;zI~~{_0aJw$=s|upUdEJkLEW2UlcG@Pzk=~|-r<78q^0!o6Mof$ +zCV^mr8jty_53goMJR6{GAsDYs^G$LHSZ;U!3*)4%u(`bC8;4i35^`Ktw^PUp)~oL! +z@p|Yih+Y+q29S7%$_`J|o;rc_<@Trq?OQ+WJ{*Go!Z_Wp +zZEO_ZGw4m`JG;Mj3Rgxf4xJ{Uy +zrAW=pwqS-_kJ*AmnM~*u@Vg*8%VID+ubYt5vn5%Y2RH5;{-#`7y|W*7e8`NgT=6Vz +z;Yi(q<}tvJfU{2Iw|2NBL3>I*WC2S!6~u0M@sn@LM^eltG%ZYl$7e>tjpJfTaVT_s +zsbh(wjJ|iGldszWPu+D_WP}fl7m&mjzv|3>cF{vYd)7|qKZ2y3FNDQ~yaBD`s2j)# +zMH%SFDzeTSV2u5lfl4Q)C@+%|KP__!oTJ4J7~MyE>DuK +z1m|qqr%RO<>hjWFQFya*baZ>paCo`jyR|Ybrbf)C-?6r56Q4IORNp^Ln#By)`+q?K +zC;D;ku&4}w_A|2S=$9`vnQbn(}F6 +z4x(Ygl=Cn*g&H<4HzF-5rD~!F;cewAPI1yIemTw3{6abF0{ZFB(E5kNpM9uOFKwYU +zxb6p~-}se6%C*rAHwvz+tiifzM({UB+p_d!5x{(P6Y5P+;*a4Vu!ejrLN1HPgS#P- +z_@iqr{;jMhL_Q81ugBT9IbLQx-FjSZU$S3Sy^K{l3b%bdW|P9U%os!0? +zW^Ip9*8DxSaS5tWL5}{~&tVdhdNW4ZR#w8pWI6t&L-WqsB=$^UpG%Tga^kOMfrO4y +zqLIECO9rMEY)d7pROR}6E!?*6{%q2{uiL2{L^koMMnLW>l{-tkYrPsw#^zl)Jxq09 +z5C8OQcHyCyKxoN@9(97QXp~IB8Wbvuo5z-X8N0Zp5U*r5Q=M%cn2IKOCXxCLw@pZ5 +zT9|csZ)ej97yN>%dcB!@9-h2;H&@#iqE*Mtr{vM`#hrY9MFD*ED!p^G(IwKt4mizR +z5$Srxp71uVbifnlRVi;t(C7;!Iw{#1O(x5GiXNvLNw%{Zu4XP`iP{XnTW2Rec39KN +zlMbi`P2<`Waj8{V!*dL4N#Q5t(drcFajQz41Rmi~*AC^=VT%T8T@Rg!wNth_g6?QY +z5yp-Jmu|k?6{SqhwmTO?|rhld-!}dw3dB +z5qq1P?;iQ0077e!B^=#0P`or;Afr76vTAr{T{h7uE0~k%oN2ePmx*(I^g0N8M`W3y +z*Vh3LswmhwjX7=ihD%@a +z@ThkuPqG%*cAU`UFVoi5AUCGx7vgGh-BxO7c{BYWO^lQ*lMjwy+v2(Nx$q^tWj;D@ +z-U5`(orlUvk^=_lMcHH!YvZyEb(%J`jI@)SK{T$3X7$k1x~45_t1KfyRe$IIYg(_~ +z`-G>>mCp!;bA%Q&J +z45vpx6MQa&-%0^}w~&67+x9r~bV;`Oe`Yb&=Wd_kq!0AL16e6X_INo{eDa*u4Kb`H`QI!#qQ5um +zDAd-z&J4VR3EMwshl_V}$UpQZmlCx+bfMzVAYbYzOQQFmnY~5u-O5`{$`SL9oJJ;$ +z$qg5;wx&@2`pGBv{563!V5RSHHG8IDx@A-AmG50!9LZI)I1O4R(QH8kHB2>o;nOna +z++^Ublo7V}iVAyz2_*aoK}4H +ztb_EzM&B&#b5J(;?XifsL7kOWgZ;K}7cn5LN&wf`0&QOt)RbMw=;I-i8RYRByqWfn +ztDEsf*B-2^%C>}5-C!>qniZz~*_Q0J+e+nB$OP{4!6m@o2)x6xDYxO{P~lCP9x2Yr +z$-$GEHyp=e!iVgB!P*N~)u7JdUpoA#A4z5!(3NHK-<_E_X1LR5XkPN8$hZX7T^6Qm +zFHQvmAF{!sOf)K*G_YSrXjd`t=irJK$cHYrP&tne^x7Y=g6$XRy$IIwqLhK{inbGm +zjmD~~Y|+1d?5V?VnT;a|RxtwoY(Gjpnu$kJdm$cpe2_`-H1NsQ)*vZxqDQ}NN#muv +zCxFBZD<~F) +zT&>w`ckY6UT5*gx0taMe@;5Fc+=eH<{E^)Esg4)Pk`f3~_M^MlfjvD<9?&|lc35!r +z_Z4XRIq1f15xLurgm@colEP{3GKm-TiItY=>Qt*O{zaTS#qa~U={=^CB7?2dC3*UL +zjr*W?p(Lp!7Lkg@^wY^A!Y*h21Z9>Lt8y3^3BA2lJEc2F0j0eY6&=&>eb28C0rgA5 +z+mV2+>Ww@*H1dW`J^Ek*uq}QG_AlW8ES;ily%Lw|D1;^ZWs|MXup-4r-wT+Z~Gd}keGNDB)44>ISE`5IZ@wrvX*XX7Ez7+ +z-u`_63SQYPB)TOw83a5SmR2-`A(M%xIvIjpuEDxjDazSj+e?bsG~!gsyori+Xp=x| +zloM^wpQWCtNRsluEdJ*?)^e%$WS2|i$RJP21?A8Xw0V-IHg8-=(U1muV!^t$L)txJ +z-Tsd+hQ3#>e!;F{cJn7W?Y54Dw)rZGhoLKnXb$oDzI{bMYonQ(XybZ9gQ6{Wn07Z^ +zQ(y+m`RUh0F5F{B1%Qf=J>aU3%-x9!4U13~q8qkoJ=(uoc3-@}a38+wUl9Q}0cLrp +z<&W*mM?~<@*o5o0vfcJOv#zkSsk5HRQYnR)FvOF3Ug^{3?T`yDH`;8z$%QxBN5~_T +z?^G)O;sz#!>lN-!c`mSDxnKV4bmbtPuA}e5HOMi4?edqw*lk`ReE$!8t +zEZuJXWRBOv$;nh|UT=XDy!dg4Fc}=HW55XTB;D +zk&NAOmrS7lXKN!t(}Yl^jercO + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_metal_wing_tip_unused.rgba16.png b/actors/mario/mario_metal_wing_tip_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..8e70c22725f9eee79f5c8429c0ff8bbcac315562 +GIT binary patch +literal 2860 +zcmWNTX;>5Y7RLXRNirdXgiQz-$poQ9r5GhB5i}D)T(D`>h`5vvf)shs%PQWwFbRu@ +zsDVp0RjOm%qIHQDDb|IFK?!03d#Od`maw~rO<9G@hjZSq@AIDL{XOTPO1a#D?a2lJ +zIILU|zIIB{sliyxslDe&<~0D=11rN7>fJGMr8*ssGE-7gB;&(Vk0*kjJ^M-HVM++kj@ +z$*UTAKYz|*>OB4Yu1`iqMHKyg{oC(AUQ;@`X{m;y*~jRhl9CdRBr;ZNQAie8LL|s6 +zu^1D8^3ExboQSBXNe7LHo`#AGPsy_zu+@dJsTmpc-(&0xeEB#RFy>jdZfQf(=xZ(G +zJyu8X=6L+>iE&wQQvGRpJ?LLN@AaXFb#-s$mZd6h*bj9sky%VAC+!`AbD^i`@|G%I +z1`AG=I%5PEIW8v9jbR#QjZ$qz_-i7)AWT&8ZUzOY6(kA*zge{8R +z_n_aabI*#|xuc&$bj%m@^VkcSCKogoqgmRK6#<$Ndg80e9wEhWI!ls1l6kWqM6TC) +zaq$^6w&rcmHP}9Y8xg&8>j>mu6WceLqk(Ikux_4`$>oy%mc`f!mshlu0twMUzvAY4 +zv81GsgXQ7&n#@Ppoul-q8ba{BFgkln&)s_Pc)OtS@=uI-S;6NSNkMuZTZ~udlns1F +zRNdx1Mh3~(frNG3d>b|m-Jr;@0|WO6!aK*?7yvP@`lt@0y2E8OS)OSFQ4 +ziN)b^<09s$hrUS>G&E)-7YVADOM`>S8{UB91d&yWH<-!KLRjYFZmKh=--j~VP1j>F +zsI>aE^%DqgRvfDut_Lei<$T>f<|;MCN*D%(V?);5sar;8vb4#}Ik|bBI}y}3s?=?o +zePt6Z|Irw)Rdlt?CP$_IsAm0_Vk5TkBVzcS@tj>WU~7<_*+xg;YLT3O3LfwhPZW1p +zLnQb1?&e-1G2gCq9A@7BCw2s?a7<(bufg`xKFNb$D(()q)$GaVk$1UITCMZHT}w-x +zRR}F2Iq^E&`BkM5L#mL%dmz6# +z%K#I;zB3K<@UPGKw`OCWM+A-GjM=*s-(v@PSKQyY6htI$sX9QPW%y&n%iyS{#&tUS +z$zDO}HdEeoNmI;TaJ-O;2JU~^s^TgxoH@Lf{74PL^Sw%ou&&9YLR|`A%oQ)20Grqs +z6we(C7^d1%c(qnAD&Uupz3@{xcDQ6nC;jNfXH&n^+Q)=?nd>W1(At(pR*rM$^Sx=; +z?gjgJ?8jXEEG*r!)-%@_f6v4saS{DUIN5SwsKH|im~*kmb~;e|Gpt^zDNiA9YZ&VK +z?C*#OAZ}AQFb@&mhhevELQIyUfn-Tko5Sjb0*dz5yhk5FzQ(3w+v)sUMRGjPQxZFY +zW8vO6XGZg>Wi!KBQ~0^u7oxUn&cy1@q}Ed=6Y<8L6o~sK2#?91`o<0k8&_yM(E?XL +zHRr!h{;j5%HXJ->_;?V{PeG+wqE#{v$}|Ko-@r+9ms~K(!mzbkr)T%+H6fC!?A^ST +zR!NWOj@K8=fC4@}*z|(~EcF`)316n%>-BOS6!NWJ)hoiNWIN6@NQqZr>jtXM5k505 +ze&qfK2ZrVnsmww4m2+_vH+qSL3PfSUV~zBSY-}q{e||slf-Mk>SlvWMY8sKoL#7J2 +z{G45~j&}ByTr%OISrB+P8``eNoQ2}U_}6qw3JQf#K^K-uav$+lKopqcr1*gs`ayF9 +zTEEH~QAmPH_Om8>&=T~2S!BaxRrZ9o4;Hhr+Z_lTL(vK|bPb|g0n#9N1_&@wc}=|1 +zC0wzDu5rsbF;PPOBQeNX0R_Zm>inBSV^mCEI{wtYkjB)4EnLFcIr#E^Y_>O^<*ql9 +zN`w)J_+%1En<1_OPmd%NOEJ(gGfGWAMqoi!Hu5S?H8BZ&k{!#f)4cX_*pyqk6pY`8-{%9 +zr=b=f_}M!Sx}4B%0+&6DWtz{B3Z544SQ)>UceRbU>X#Bo3w4Ee_Gm6|R`t-kzvVKw +zI*TONvwMh5HFo{e5JUAg@G;l=6rOz%pNe_KNw6h`aDIP)S2TqXPaPQA-8)!hlp%kL +z8DE_0A)j$o3_pVg8tmgK3&QAUo|4>GSbC^DC@s*vMP1ROGo>u3BgwCX*X>TP_kE1qlYBDt^A@pTR@bLmH>&C@~A +zxOqOA%h-7WKAY=enZiTYzwli-4qKpgv(CAXmqDGIqrcWSR*FOmHFX*u=?JzqQ_hB5 +zmr~$XS=L+5;l`+Hw!W;`QDn4Ucx0JXhu}X$8{s$6_d!Gs%^08au{s;POc}CG;vgu% +z2G>k{djGP9)h`S3&(Gu78}9d5JBj8IcJPlemYc +ze(@O}Heow}a8AC|j7Ehb>n~B=P3ibq+B4%gNbU%Gci=aUq20|*b^IjUY;L1-BZ!bo +zn6L_LVou-1sHpLv-q#Pw`M8KuJj8J*(;K}yo!e_+z$p{$iyIZB(kC&c9m&`W1j8u} +z>*l&f*PjkyCXY-ILq(cXapNGVLGyhb*&Y1kx2B`}jkW$mwkjNK9G=l~dd$RnoM6+O +z7oGdngr!qylcW0{jajb^@xndLiHtw%XFSQqmQ42NwKbfUb2#XeUgVDj=eGMMzKM$^ +zW9G*vm_l~sB{-990Uv;kn;)1c#m8#G?O3!w!A@-y&$wyb +z@$1jg%ISVqC7fXtxEl1e9y2Yn#7+D&iwNcYh)+({(27&J5*hy$L(gaO0SK-LT)B~3 +Sc6I6t1}m2-!>=vHwf_fXfy>$e + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_metal_wing_unused.rgba16.png b/actors/mario/mario_metal_wing_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..cfdd06a87ae8f8f93c38e8832a231d30ddc4d7b5 +GIT binary patch +literal 3399 +zcmWNUYgAKr+Qt7TC&>v(NK%NBU?2xX35XD`CdHByKnz}JM8+2>)u1p%OI;DX(8}c` +zAq13SRA4AF_UJ^5%Ggwe0c+(Tpa?2aVT$d%8U)nAS_DNvE*U=T{j9Y=?2o@^?NW8Z +zT4$y^69C{GuZm4vxafi~27SQ~mG8f_kaOZ=l}WkVc2=0p8i9&zmy()ZDBx-d6dxZ? +z=WsaI2R+{_zL**tM7DfMrO|}dU+3o5jnK`*H8nNtl#~>s+ +z1Uzm*L)~3nA;~EzA?k1{7L}Nkln&%zh-dD>ZkUWWCr6(;aa|cx$Yk2(uoE(n+OB#C}QxDWP<=1&4(u7FXKDbuVdcatdKPc +zQTafdiK|_!Gl)lg%u7|-0O=hzH}N%Ks{}>I#L+A%&Ng*~#;)|X6-vPsZ{9D3j#E0Q +znn%<9Rp%m!=YZy948x&6b0D2VuP0FY2Yz~#w53h&nH4TQ?bQKb35HeaZw@0@Ytd^W +zAY^wvBC_FUn{|%Wt3~Yk!ersRbY3$xKFERt>RR%qZ@!s$^?!uG0(NA~!2v9paDH|g +z4s=b%GvF2001Y%IECCvE4l@ML<2H);Om%+esUbUF#F1Duo1pPvNv}}$B$PohczQ+? +zFF_pZ!6wp+gu=k7&iPQ>z^lF`S8hFQP$u%8VdkZ+dj^Xvg=ScIqtJB7mA_nsMX82v +zbI)``396A|pAiRo7#1|w>P2h{ww<*uI^YHVMG%Lc$&VR_D&UJQ1^A=EL-aFOylkOt +zdmbxDpi^{+8NykO+GsnSwU< +z5lys1|Gjd(v^IDL~l^Cr2PH9IBf95@)oiBX-FOx8!ma>lFO;j#COH=UgBc?akh)XMWQ&^d3BNRmz+!7C>9iMFV|hrFc4agZ|1W +z*@?^DYW##~UpNdWQT(X*jRD-PQlveo-zrjz^&4FAypX3-HDlRQo8v>n{) +zZx!fSP}BqM1$XgDvI+Y2E7X7)*)ZZW)>_ZQKcj6ZGN*v&5n7%$TEslS=*=G52M)Ax +zn_dX9uC4YcRGD?qz2&1-t;$f(WsT!XKH;MH>M_|pCd +z3Uf60MNVtOYhv@hJ +zVZ{exEs**mLqxIOf+eFdpIvk)<5&z;h{}H*`TIAFZXxe+DRk;aYbn!0=Vub+6sNmc +z8?O0b0fCIpyaY|sWs>R1u~3(R_YFR9CuGkSojOw}#UG7ud2^oIUQ5yDGFMS=E%8t| +zu(v6O*xTcE2Lx8hiO0O&9S{wX9Psg3wt%-qLK&$n?~FA+WM__<#CA{Twu3&KBTbs +zk+f|?MQbQlKB)8{quISlJ8>hWPCW>IeauEH?X|RTv5G9ls|GxVCg>&VkS{_wb+kA8 +zD9ljRW%_in>u>J#zWqd_0r*PGTjvn9(FfdbR1m|RlVWqgxJQ4keQFGD2n1gGh)iDL{*~rt^nDpM_$-7qDNnvRI4#o@Z~Locjbmvu_3pDl5RV=eTNDzMxJaBRJ49 +zQD$>1PL*M=*JxCJl9YR~}Ff-M4Ow#>qb +zfmoN1<_~>nM}D!GNOR+;RoHr)*fz`BPqWzI<>OotdHH#i&3K$0@TO6L)K9dL;Np+i +z*+sJcLd+Z9(icMdyJ@z30O6u7kMofUy{;VmO{|c$_67IvBoaSL2X})>)gg!OgpS4^ +z<*_|dsTs|q(iH_#DSCTp(_)-Kdc5~MLw)H>91{y<#NeV@w*Jk&H-n$-%PVnxxQ*hw +zhj>%~W?pL$YLf}X{KWxnLPpB)B)xl&*=$ONL*7P8tFa7f +zW>Oja+f&d`7j@l%r@EmV9MJg>4~QP9WH}+5rOhV9O%v +zcj)=ks2lwIv0BW7*h`OB=Omb+KR|LT9Qaz<*y>+3Y9@@81NL-U!e)_OQ!HZ(t{ygb +zy=pt8I#tNs;KsHUc`+_jP*D%QdM7hU;DinGhg7zg?yMa$T9W=|;!3LK4eRR_PABeeIIhV;q457jYH4erYn!nIy2)EQ +zB~M!XQr6 +zUBi)Z+rijN(1e&OL(h74o-P@mL1bNjZg1&f1Ue}{&(Q9qRt=l4ERibKQ#zCzSJ2gA +z_^^yz^ARH1hZ%dhwp>V3R3Oz*II3@%%ulqsTO=d#Ev1^K<7hySP$FjSOJ-W01 +zemi4JyY`~zX{ZVfKXGj4q@n3m0&*3&6vi!~4Ircc6ngyD=1K6`t{BdXIWo3()%wr9$dZz7%iipAE{ +zF*uCD>FQ?N3zpjUsMUs;sg6U%GdcxnSpK +zhq?sODv~LGpI?qE}~?AnHIV302>irkS;W+ZZpjOi*_COcsw$DNBi-$ +z$=G|{;XyGGQmfNJEYAaXe(-Zr*{?rtM?Q@rJ}Vy(*RApCH>I`XpKgP}$u>@La&^wCg@FX(*CfPV +Iiq`1=2i?hHiU0rr + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_mustache.rgba16.png b/actors/mario/mario_mustache.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..bb107d13c7fceab8cf575067046cdfab3ad2672f +GIT binary patch +literal 239 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJZJsWUAr*1S609X0jsJhVNmvvt +z@}Pu8SoShQnEQoWjQ=?+Cv=|M$#B?lOUZ%yB%9+Niv<)?EbqicwH&AqvT@C2|D$f| +z61hTz_5VrJ_8|5@%dap$v3g*?RY-s1&Ik6Q#oS$UcQ`$;XP(QjDf>mDrd!8mo(A{8 +zH8O!$4X+(oR-W7Oup^M&ptmKaVf&V)u9gQZCcI^wlsx5DX2TOTxm|2EUm1OL^-NQ? +n>Tk?El*XuhSYtsT2Lr=(HeoaAg#QjeA24{j`njxgN@xNAFL7Gu + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_overalls_button.rgba16.png b/actors/mario/mario_overalls_button.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..c449d6f2d9c9eef4b46494a4e0c841ba1ae51f33 +GIT binary patch +literal 897 +zcmV-{1AhF8P)Nklx?Z03U82Xh3>abU+-5e^YhBE*irG5r636o`Qc#Qe{ITPd;}NbNhA +zo}&ac<1iJdkrYd@IS%F!kYm6e!R`YrQ2-3j?_7`|=cF);fTHFD&;|GnEER$tS9E}*^e9G@BSir)yxv2DUXTW*(|f3yf~Zk} +z8U;TXXa_j38;#_E^9(cvoY2I`fNBpk3V^|X9~%6iL?cKer+}jY7!-o<;5h(Ser!fF?SSr$AUx0948epf~`nJpc^zW7hxQ--oFA0Lm4h>iiUg00000NkvXXu0mjfT>@=S + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_sideburn.rgba16.png b/actors/mario/mario_sideburn.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..c5c3da5fded461f20a33e8e263782847bf397c55 +GIT binary patch +literal 692 +zcmV;l0!#ggP)h%EtR-)CT8M7NJ>AyC7?@LvFEI>-Tn +zNVb41{|@9|hdAi}3!o!`4*L%j{|{0|H3ysnn#h4CI60t>6M(9Lsim3&en1Td(Xc4M +z0vm}t13)Bp<7?i5fE&qYTa^ye|KnoF^C1Ef$ +zXkn=r-6zO=kl-`K}xVj!8xer +z_fSV5`wGMc8IEo#HlKrxK^7Ol;wY>RfEf-7{vSAef}Z7I%D&?WG*IF+1j;=}lgH`+ +zP&^&O;(KJh*c^r}%fa+;KrAP&E&y82s0h`G9MtH+j_e?Omcx9HEpSjm0GQ4GgDeJR +zH;{qA+KT~Lc`*E7zzuLEHU=aQfZ`roO$buLgrx94j7_L4hp8iEIY=GI@f=vHVVD`P +z5CB^a3M!DVIgnhB?)&d}LIYhb$UF%K{D1}KN@yNsfLXu^)%Tr&FhI8$mR6vaGvYG= +zBNrfNFAf5BBU_B_2xy*XWFRI4Kyd`jpZ{ScA955hkQf3Whd^6KjKt`LCqhulNA^7| +z81Wf`t_H-n1Zu#S=+MnWsf>W}{vT8az~Y}!6ARhF#Kbo?&!DsifC-M#3#bYdgvjMR +zx<-)2uzDY)RsxdEhzfGNA%HHa2x-AGJck4;xIhAh3aGHUk0)<4kN`$|Mg!h88+E{d +ahX4RdLA7>Ubjqm!0000>xq + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_wing.rgba16.png b/actors/mario/mario_wing.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..ff7d11bf142485b35a024ca8c64a141f9a1a3850 +GIT binary patch +literal 1673 +zcmV;426p+0P)P +zG&E!wNWjD}z+lt?qanaT&oo$ET>PJdg9B_Oi00(vWT2@7qN1YygDe4ACLkcd0J9WC +z!yG~r2LuHL{fAiwvl!iSnuLItm)C!o?_fSB#HU&=09lTlo{)nXpJOPF0w*V@{~(Kh +z{P@9uEuLWx!4(n|g@C1{<^S*Bzr#~CECi4(1^FH%j+_RNLyGJW09IoELB8gIW-D|{ +z&=VcZQji{GHrWn9wj4Qlab-7)QOblDxV=E6pj)GyLLIC7?nB^b? +zK|u-Q!xAHM&?BdOWOc|15Tu@{D0u$-Io7yGjsgZO069Uzq>&RQj7=~E(Bqm=!bA2w +zEXQE8nCK_~1tEIe!yJXp=g5f;Jz*lpJuD&OO@yGthuoq;4|bRjVe$Fl!v_XzK@W;+ +zWXnNppxF!{j5i8E79f{)$f+IKB9H|z%aPTfXGfSLVCq49oFM>8e7Jm%YzfHsFJ8Q0 +zzy+}R9OPJ72;g)8$P)CpM{ZgnXFCuZ7Co?N!4>Qv%YmL_fT_b71<3gxJtrVrf*$X< +zf*s^zm|Bq8nwpvnpq@Ea2cYMDm~W9&KZp(T$q%HqAbK>wf*)i#Ob%3^fGmckA*>ES +z_AzoIM798AD98fj#0Zl|j(1pyfPC-h=*R%_JxCs=7OMkbMK5yPBF8a^egFP_24sh# +zTMi3ukV8S1!UjTMmcty6;Q(yGkDmBIL60rfBl{ebgFudec>=~p4mGTG0dhQ}SD`RV +zLD>$Q?_u&15)urcxCUX6g|KV~3N@G`VGhFx0p!95*%A;NBnNUevLn%h9^`W?D=P+A +z`vDf6Ajg1G{`vFg8LnTy4lV^barKU|S%B<&nCp?F0T#4cT3QSsHYo042^5xXK{Uv5 +zAbF4@K>9I40KHw09RJ_ZdO$Ahg>KjTMCj#b`XdUas( +zdm|$wa8#i<06n|GTn)2}1FatjOVObC1UU>@Keo_<)dL{k!yL?lEvR7zA&10+2M@5; +z^&sDXQa1WX2+UmMN(m$e9JT>V!5oMY1<1aH8G;<2=m`%N@8~{;C0LjlpezW=As}_g +zX$9^8^b!yj{~#Jx@SsIIIIqJxDu`rMTKp_Dt$v}<(X@>O&&_z5JO-s1NlF7CO`rq? +z%3dHFU3%PAm- +z!9ofYE$Hn@yitH`=)QgXP%0ysk3p8h(g1Q|1UUlMEQ2LT1qB5LkU2z!0J86o9XrMV +zYeK=|8)PVOte627GB88Y%M6e>EWs^Xwu})y$-zSaqzGHe2Z@2ITl7*7l>b3NitcM< +z3t$$5q5v55jM&mUayA4h_>Zm#ny46I!3k=%!F&axIj}TRU}iwm3s#F^YVf83kgwOR +zTZdu*&>@WIzJ&47Ll9eZ;EV#81WXe)%Nb|@P{s#<2@UK!P|%_KoPkDQboLwoh#}Ub +Tsq{Jj00000NkvXXu0mjf(jK}u + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/mario_wing_tip.rgba16.png b/actors/mario/mario_wing_tip.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7da437f9512e1c8e69db004a9c0a63505c822a24 +GIT binary patch +literal 1132 +zcmV-y1e5!TP)P +zG&E!wNWjD}z+iYeAUQetKdAvqwGfDkiuzAZdSan82{bo1|Nrsh2ZNxXAcLZ!BFVF3136U%)H?<#Xh$iJopi`XnSIz*_h2-3#{+x}!n*(4&e4Iq$+O0?{BJ5}PiN +z)#1|va_GK&`%q$v1>{SRWiZPrDG%_a0g&a_uU}`Vt*u3gA{OKd1Y1fbw|qc$49Id& +zJppn6x+7UYk|0Z9mSb}SEL30#4rBmlGgIJb3VcVcD`}7&!#P0q8jaTfD-2kIi8q^)OE%mlwE7N_Z~776sTs2Ie4K +zmc!&>jsVdh%eQUYhP8ZPK~@NJJ%~mR31r7`pfz5wr3Yl+<7=qE3nGvOFipq~!50eH +zLIXJjKyeRhCjdhLXX(g-Y%we}U?G4WE$EKnz|)Ka1v}I{yhSq$tY$-Z2&jk#6;L2? +z+7MO*anwktCgFrMfsT@5-&Ye5=-^j>_uwWNeL07HbnM4zM2s^Dq#JBb?erV +zUJigt38$%rlg2^CxnBmx%X4kof*^uY#LeNWC906sUNbj`3S1X&EToSb}4 +zC_q?1_{-s1F!%Gm@({u_GIYe0OSS)Ebg&&qiN+Da4rB@46E6IBN%jvdw3cE +y6|JyJhF%E|IW$M-j7BG|MnhmU1V%$(Gz0*=6WM}={=n4$0000dgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/model.inc.c b/actors/mario/model.inc.c +index 191d533..4da900b 100644 +--- a/actors/mario/model.inc.c ++++ b/actors/mario/model.inc.c +@@ -1,6825 +1,4506 @@ +-// Mario ++Lights1 mario_sonic_blue_v4_lights = gdSPDefLights1( ++ 0x7, 0x0, 0x7F, ++ 0xF, 0x0, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types +-static const Lights1 mario_blue_lights_group = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_skin_v4_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +-// 0x04000018 # solid color red - left & right arm, torso (tshirt part), caps - all poly types +-static const Lights1 mario_red_lights_group = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_eye_texture_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types +-static const Lights1 mario_white_lights_group = gdSPDefLights1( +- 0x7f, 0x7f, 0x7f, +- 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_mouth_none_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); + +-// 0x04000048 # solid color brown 1 - foot - all poly types +-static const Lights1 mario_brown1_lights_group = gdSPDefLights1( +- 0x39, 0x0e, 0x07, +- 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_nose_v4_lights = gdSPDefLights1( ++ 0x0, 0x0, 0x0, ++ 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); + +-// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types +-static const Lights1 mario_beige_lights_group = gdSPDefLights1( +- 0x7f, 0x60, 0x3c, +- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_mouth_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000078 # solid color brown 2 - hair - all poly types +-static const Lights1 mario_brown2_lights_group = gdSPDefLights1( +- 0x39, 0x03, 0x00, +- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +-); ++Lights1 mario_sonic_eye_half_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); + +-// 0x04000090 +-ALIGNED8 static const Texture mario_texture_metal[] = { +-#include "actors/mario/mario_metal.rgba16.inc.c" ++Lights1 mario_sonic_eye_closed_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_eye_dead_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_gloves_001_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_gloves_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_texture_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_white_v4_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_buckle_v4_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x0, ++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); ++ ++Lights1 mario_sonic_shoe_v4_lights = gdSPDefLights1( ++ 0x7F, 0x0, 0x1, ++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); ++ ++Gfx mario_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_metal_rgba16[] = { ++ #include "actors/mario/metal.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_rgba16[] = { ++ #include "actors/mario/soniceyenew.rgba16.inc.c" ++}; ++ ++Gfx mario_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_sonic_mouth_rgba16[] = { ++ #include "actors/mario/sonic_mouth.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_half_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_half_rgba16[] = { ++ #include "actors/mario/soniceyenew_half.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_closed_rgba16[] = { ++ #include "actors/mario/soniceyenew_closed.rgba16.inc.c" ++}; ++ ++Gfx mario_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_soniceyenew_dead_rgba16[] = { ++ #include "actors/mario/soniceyenew_dead.rgba16.inc.c" ++}; ++ ++Gfx mario_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_sonic_new2_rgba16[] = { ++ #include "actors/mario/sonic_new2.rgba16.inc.c" ++}; ++ ++Gfx mario_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_wing_2_rgba16[] = { ++ #include "actors/mario/wing_2.rgba16.inc.c" ++}; ++ ++Gfx mario_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 mario_wing1_rgba16[] = { ++ #include "actors/mario/wing1.rgba16.inc.c" ++}; ++ ++Vtx mario_000_offset_mesh_layer_1_vtx_0[28] = { ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, ++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, ++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, ++ {{{11, -76, -4},0, {510, 718},{0x9D, 0xDE, 0xB8, 0xFF}}}, ++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, ++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{19, -108, 0},0, {491, 792},{0x9, 0x81, 0x0, 0xFF}}}, ++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 16, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(4, 5, 10, 0), ++ gsSP1Triangle(11, 10, 5, 0), ++ gsSP1Triangle(1, 10, 11, 0), ++ gsSP1Triangle(1, 4, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_mesh_layer_1_vtx_1[5] = { ++ {{{43, 27, 0},0, {-16, -16},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {-16, -16},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{45, 28, -13},0, {-16, -16},{0xB4, 0x66, 0xFB, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_1 + 0, 5, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { ++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_1[2] = { ++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 2, 11), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_0[12] = { ++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 0, 3, 13), ++ gsSP1Triangle(3, 1, 13, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(14, 1, 0, 0), ++ gsSP1Triangle(0, 15, 14, 0), ++ gsSP1Triangle(15, 0, 2, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 3, 3, 13), ++ gsSP1Triangle(13, 14, 2, 0), ++ gsSP1Triangle(4, 13, 2, 0), ++ gsSP1Triangle(4, 15, 13, 0), ++ gsSP1Triangle(15, 4, 5, 0), ++ gsSP1Triangle(15, 5, 6, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 6, 3, 13), ++ gsSP1Triangle(6, 13, 14, 0), ++ gsSP1Triangle(6, 7, 13, 0), ++ gsSP1Triangle(13, 7, 15, 0), ++ gsSP1Triangle(15, 7, 10, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 9, 3, 13), ++ gsSP1Triangle(10, 13, 14, 0), ++ gsSP1Triangle(13, 10, 9, 0), ++ gsSP1Triangle(9, 15, 13, 0), ++ gsSP1Triangle(8, 15, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_1[3] = { ++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_1 + 0, 3, 13), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_2[89] = { ++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, ++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, ++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, ++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, ++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, ++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{43, 37, -48},0, {674, 458},{0x2, 0x62, 0xAF, 0xFF}}}, ++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, ++ {{{64, 35, -43},0, {654, 465},{0x35, 0x62, 0xC3, 0xFF}}}, ++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{83, 29, -18},0, {558, 479},{0x59, 0x59, 0xEE, 0xFF}}}, ++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{86, 27, 0},0, {491, 481},{0x5C, 0x58, 0x0, 0xFF}}}, ++ {{{83, 29, 18},0, {426, 479},{0x59, 0x59, 0x12, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{74, -5, 65},0, {247, 555},{0x3E, 0x20, 0x6A, 0xFF}}}, ++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{73, -32, 68},0, {238, 618},{0x50, 0xEB, 0x61, 0xFF}}}, ++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, ++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{1, -117, 65},0, {247, 813},{0x2B, 0x89, 0xB, 0xFF}}}, ++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, ++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, ++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, ++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, ++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, ++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, ++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, ++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, ++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, ++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, ++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(9, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 4, 5, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 2, 3, 0), ++ gsSP1Triangle(5, 0, 2, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 8, 5, 0), ++ gsSP1Triangle(9, 5, 3, 0), ++ gsSP1Triangle(10, 7, 8, 0), ++ gsSP1Triangle(10, 11, 7, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 8, 13, 0), ++ gsSP1Triangle(13, 8, 14, 0), ++ gsSP1Triangle(15, 14, 8, 0), ++ gsSP1Triangle(15, 11, 14, 0), ++ gsSP1Triangle(7, 11, 15, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 7, 0), ++ gsSP1Triangle(12, 14, 7, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(7, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 80, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_001_mesh_layer_1_vtx_3[10] = { ++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, ++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, ++ {{{43, 37, 48},0, {-16, -16},{0x2, 0x62, 0x51, 0xFF}}}, ++ {{{64, 35, 43},0, {-16, -16},{0x35, 0x62, 0x3D, 0xFF}}}, ++ {{{64, 35, -43},0, {-16, -16},{0x35, 0x62, 0xC3, 0xFF}}}, ++ {{{86, 27, 0},0, {-16, -16},{0x5C, 0x58, 0x0, 0xFF}}}, ++ {{{83, 29, 18},0, {-16, -16},{0x59, 0x59, 0x12, 0xFF}}}, ++ {{{83, 29, -18},0, {-16, -16},{0x59, 0x59, 0xEE, 0xFF}}}, ++ {{{43, 37, -48},0, {-16, -16},{0x2, 0x62, 0xAF, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_3 + 0, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(5, 7, 4, 0), ++ gsSP1Triangle(0, 4, 8, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_0[442] = { ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{52, 53, 63},0, {382, 130},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{55, 44, 71},0, {368, 140},{0xF9, 0x51, 0x62, 0xFF}}}, ++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, ++ {{{44, 22, 78},0, {356, 163},{0xC7, 0x28, 0x6A, 0xFF}}}, ++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, ++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, ++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, ++ {{{19, 6, 56},0, {393, 179},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{6, 6, 29},0, {442, 179},{0x84, 0xE, 0x18, 0xFF}}}, ++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, ++ {{{4, 7, 0},0, {496, 177},{0x81, 0x3, 0x0, 0xFF}}}, ++ {{{6, 6, -29},0, {549, 179},{0x84, 0xE, 0xE8, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{44, 22, -78},0, {635, 163},{0xBF, 0x2B, 0x9C, 0xFF}}}, ++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, ++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, ++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, ++ {{{76, 38, -85},0, {649, 144},{0xE6, 0x5D, 0xAE, 0xFF}}}, ++ {{{55, 44, -71},0, {623, 140},{0xF9, 0x51, 0x9E, 0xFF}}}, ++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, ++ {{{52, 53, -63},0, {609, 130},{0x1F, 0x58, 0xAA, 0xFF}}}, ++ {{{106, 36, -95},0, {668, 146},{0xE5, 0x54, 0xA5, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, ++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, ++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{67, 90, -14},0, {519, 91},{0xA8, 0x1F, 0xAA, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, ++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, ++ {{{63, 91, -5},0, {505, 91},{0x99, 0x4A, 0x0, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{64, 90, 0},0, {496, 91},{0x9E, 0x51, 0x0, 0xFF}}}, ++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, ++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, ++ {{{63, 91, 5},0, {486, 91},{0x99, 0x4A, 0x0, 0xFF}}}, ++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, ++ {{{67, 90, 13},0, {470, 91},{0xA8, 0x1F, 0x56, 0xFF}}}, ++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, ++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, ++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, ++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, ++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, ++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, ++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, ++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, ++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, ++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, ++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, ++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, ++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, ++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, ++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, ++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, ++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, ++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, ++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, ++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, ++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, ++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, ++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, ++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, ++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, ++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, ++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, ++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, ++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, ++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, ++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, ++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, ++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, ++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, ++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, ++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, ++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, ++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, ++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, ++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, ++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, ++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, ++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, ++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, ++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, ++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, ++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, ++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, ++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, ++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, ++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, ++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, ++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, ++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, ++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, ++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, ++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, ++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, ++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, ++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, ++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, ++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, ++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, ++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{200, 24, -100},0, {677, 160},{0xD1, 0x76, 0x9, 0xFF}}}, ++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{213, 41, -72},0, {626, 142},{0xB0, 0x55, 0xCD, 0xFF}}}, ++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, ++ {{{195, 42, -46},0, {577, 142},{0xF6, 0x54, 0xA1, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, ++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, ++ {{{180, 20, -67},0, {616, 163},{0xC, 0x64, 0xB2, 0xFF}}}, ++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, ++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, ++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, ++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, ++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, ++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, ++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, ++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, ++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, ++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, ++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, ++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, ++ {{{195, 42, 45},0, {414, 142},{0xF6, 0x54, 0x5F, 0xFF}}}, ++ {{{180, 20, 67},0, {375, 163},{0xC, 0x64, 0x4E, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{195, 50, 38},0, {426, 133},{0x5B, 0x53, 0x21, 0xFF}}}, ++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, ++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, ++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, ++ {{{213, 41, 71},0, {366, 142},{0xB0, 0x55, 0x33, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{232, 39, 104},0, {307, 144},{0xA4, 0x58, 0xFF, 0xFF}}}, ++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, ++ {{{200, 24, 100},0, {314, 160},{0xD1, 0x76, 0xF7, 0xFF}}}, ++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, ++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, ++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, ++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, ++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, ++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, ++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, ++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, ++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, ++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, ++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, ++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, ++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, ++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, ++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, ++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, ++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, ++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, ++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, ++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, ++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, ++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, ++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, ++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, ++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, ++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, ++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, ++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, ++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, ++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, ++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, ++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, ++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, ++ {{{128, -283, 131},0, {259, 476},{0x48, 0x9A, 0x1A, 0xFF}}}, ++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, ++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{84, -309, 138},0, {245, 502},{0xBC, 0x98, 0x1B, 0xFF}}}, ++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, ++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, ++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, ++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, ++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, ++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, ++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, ++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, ++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, ++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, ++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, ++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, ++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, ++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, ++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, ++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, ++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, ++ {{{32, -281, 0},0, {496, 474},{0x47, 0x96, 0x0, 0xFF}}}, ++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, ++ {{{30, -278, 18},0, {463, 472},{0x2C, 0xA6, 0x4F, 0xFF}}}, ++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, ++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, ++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, ++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, ++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, ++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, ++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, ++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, ++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, ++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, ++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, ++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, ++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, ++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, ++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, ++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, ++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, ++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, ++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, ++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, ++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, ++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, ++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, ++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, ++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, ++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, ++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, ++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, ++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, ++ {{{256, -276, 0},0, {496, 469},{0x76, 0xD1, 0x0, 0xFF}}}, ++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, ++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, ++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, ++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, ++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, ++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, ++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, ++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, ++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, ++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, ++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, ++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, ++ {{{110, -275, -104},0, {684, 467},{0xE3, 0xB8, 0x65, 0xFF}}}, ++ {{{92, -256, -124},0, {721, 448},{0x81, 0x7, 0x5, 0xFF}}}, ++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, ++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, ++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, ++ {{{84, -309, -138},0, {744, 502},{0xBC, 0x98, 0xE5, 0xFF}}}, ++ {{{128, -283, -131},0, {733, 476},{0x48, 0x9A, 0xE6, 0xFF}}}, ++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, ++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, ++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, ++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, ++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, ++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, ++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, ++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, ++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, ++ {{{-40, -195, 113},0, {291, 386},{0x3, 0x87, 0x28, 0xFF}}}, ++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, ++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, ++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, ++ {{{-8, -181, 72},0, {366, 372},{0x7, 0xA2, 0xAB, 0xFF}}}, ++ {{{-48, -190, 87},0, {335, 379},{0xD5, 0xAB, 0xAC, 0xFF}}}, ++ {{{-90, -187, 110},0, {296, 376},{0x85, 0xE4, 0xD, 0xFF}}}, ++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, ++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, ++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 6, 8, 0), ++ gsSP1Triangle(5, 6, 10, 0), ++ gsSP1Triangle(5, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 8, 0), ++ gsSP1Triangle(12, 8, 13, 0), ++ gsSP1Triangle(14, 13, 8, 0), ++ gsSP1Triangle(15, 14, 8, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 5, 0, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 6, 11, 0), ++ gsSP1Triangle(12, 11, 6, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 1, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(5, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 4, 0), ++ gsSP1Triangle(4, 13, 3, 0), ++ gsSP1Triangle(3, 13, 14, 0), ++ gsSP1Triangle(15, 3, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(5, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(15, 11, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(6, 7, 10, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(12, 6, 10, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 192, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 5, 0, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 208, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 0, 2, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(9, 5, 10, 0), ++ gsSP1Triangle(5, 2, 10, 0), ++ gsSP1Triangle(10, 2, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 224, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(9, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 240, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(4, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(11, 8, 12, 0), ++ gsSP1Triangle(12, 8, 13, 0), ++ gsSP1Triangle(13, 8, 14, 0), ++ gsSP1Triangle(8, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 256, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 7, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 272, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(0, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 288, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 5, 0), ++ gsSP1Triangle(10, 4, 5, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 304, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(6, 0, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 320, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(10, 5, 8, 0), ++ gsSP1Triangle(10, 11, 5, 0), ++ gsSP1Triangle(0, 11, 10, 0), ++ gsSP1Triangle(0, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 8, 13, 0), ++ gsSP1Triangle(1, 12, 13, 0), ++ gsSP1Triangle(0, 12, 1, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 334, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 350, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 366, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(0, 2, 4, 0), ++ gsSP1Triangle(5, 4, 2, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 382, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 6, 0, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 0, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 398, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(10, 5, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 414, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(7, 3, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 0, 0), ++ gsSP1Triangle(2, 8, 0, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(7, 2, 3, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 428, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(4, 8, 7, 0), ++ gsSP1Triangle(4, 9, 8, 0), ++ gsSP1Triangle(10, 9, 4, 0), ++ gsSP1Triangle(10, 4, 6, 0), ++ gsSP1Triangle(11, 10, 6, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(9, 12, 8, 0), ++ gsSP1Triangle(8, 12, 13, 0), ++ gsSP1Triangle(13, 7, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_1[69] = { ++ {{{160, 11, 90},0, {-16, -16},{0xE, 0x62, 0x50, 0xFF}}}, ++ {{{200, 24, 100},0, {-16, -16},{0xD1, 0x76, 0xF7, 0xFF}}}, ++ {{{180, 20, 67},0, {-16, -16},{0xC, 0x64, 0x4E, 0xFF}}}, ++ {{{232, 39, 104},0, {-16, -16},{0xA4, 0x58, 0xFF, 0xFF}}}, ++ {{{213, 41, 71},0, {-16, -16},{0xB0, 0x55, 0x33, 0xFF}}}, ++ {{{195, 42, 45},0, {-16, -16},{0xF6, 0x54, 0x5F, 0xFF}}}, ++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{6, 6, -29},0, {-16, -16},{0x84, 0xE, 0xE8, 0xFF}}}, ++ {{{4, 7, 0},0, {-16, -16},{0x81, 0x3, 0x0, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, ++ {{{6, 6, 29},0, {-16, -16},{0x84, 0xE, 0x18, 0xFF}}}, ++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, ++ {{{44, 22, 78},0, {-16, -16},{0xC7, 0x28, 0x6A, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{55, 44, 71},0, {-16, -16},{0xF9, 0x51, 0x62, 0xFF}}}, ++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, ++ {{{52, 53, 63},0, {-16, -16},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{45, 67, 34},0, {-16, -16},{0x71, 0x2B, 0x28, 0xFF}}}, ++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, ++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, ++ {{{53, 87, 8},0, {-16, -16},{0x68, 0x41, 0x21, 0xFF}}}, ++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, ++ {{{55, 87, 0},0, {-16, -16},{0x60, 0x54, 0x0, 0xFF}}}, ++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, ++ {{{53, 87, -9},0, {-16, -16},{0x68, 0x41, 0xDF, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, ++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, ++ {{{40, 74, -42},0, {-16, -16},{0x15, 0x5E, 0xAD, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{44, 62, -57},0, {-16, -16},{0x4, 0x67, 0xB5, 0xFF}}}, ++ {{{52, 53, -63},0, {-16, -16},{0x1F, 0x58, 0xAA, 0xFF}}}, ++ {{{55, 44, -71},0, {-16, -16},{0xF9, 0x51, 0x9E, 0xFF}}}, ++ {{{39, 41, -71},0, {-16, -16},{0xCB, 0x2E, 0x96, 0xFF}}}, ++ {{{44, 22, -78},0, {-16, -16},{0xBF, 0x2B, 0x9C, 0xFF}}}, ++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, ++ {{{24, 77, -21},0, {-16, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, ++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, ++ {{{14, 61, -15},0, {-16, -16},{0x91, 0x39, 0xEA, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, ++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, ++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, ++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, ++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, ++ {{{24, 77, 20},0, {-16, -16},{0xA0, 0x4C, 0x22, 0xFF}}}, ++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, ++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, ++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, ++ {{{42, 89, 22},0, {-16, -16},{0xEA, 0x71, 0x35, 0xFF}}}, ++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, ++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, ++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, ++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, ++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, ++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, ++ {{{195, 42, -46},0, {-16, -16},{0xF6, 0x54, 0xA1, 0xFF}}}, ++ {{{213, 41, -72},0, {-16, -16},{0xB0, 0x55, 0xCD, 0xFF}}}, ++ {{{180, 20, -67},0, {-16, -16},{0xC, 0x64, 0xB2, 0xFF}}}, ++ {{{232, 39, -105},0, {-16, -16},{0xA4, 0x58, 0x1, 0xFF}}}, ++ {{{200, 24, -100},0, {-16, -16},{0xD1, 0x76, 0x9, 0xFF}}}, ++ {{{160, 11, -90},0, {-16, -16},{0xE, 0x62, 0xB0, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(1, 9, 2, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 15, 11, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 48, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(6, 3, 7, 0), ++ gsSP1Triangle(5, 8, 4, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(4, 8, 11, 0), ++ gsSP1Triangle(2, 4, 11, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 63, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_2[38] = { ++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, ++ {{{127, 40, 91},0, {266, 995},{0xEB, 0x49, 0x66, 0xFF}}}, ++ {{{139, 73, 70},0, {88, 691},{0xE9, 0x58, 0x58, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, ++ {{{134, 93, 44},0, {85, 403},{0xEA, 0x64, 0x4C, 0xFF}}}, ++ {{{101, 105, 0},0, {320, -12},{0xE5, 0x7C, 0x0, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, ++ {{{134, 93, -44},0, {85, 403},{0xEA, 0x64, 0xB4, 0xFF}}}, ++ {{{139, 73, -70},0, {88, 691},{0xE9, 0x58, 0xA8, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, ++ {{{127, 40, -91},0, {266, 995},{0xEB, 0x49, 0x9A, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, ++ {{{59, 36, -75},0, {833, 806},{0xE1, 0x40, 0x97, 0xFF}}}, ++ {{{52, 53, -63},0, {840, 622},{0xDF, 0x45, 0x9B, 0xFF}}}, ++ {{{39, 61, -49},0, {929, 468},{0xD1, 0x58, 0xB1, 0xFF}}}, ++ {{{42, 82, -25},0, {862, 204},{0xDC, 0x6F, 0xCE, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, ++ {{{44, 86, 0},0, {829, -12},{0xD0, 0x76, 0x0, 0xFF}}}, ++ {{{42, 82, 25},0, {862, 204},{0xDC, 0x6F, 0x32, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{39, 61, 49},0, {929, 468},{0xD1, 0x58, 0x4F, 0xFF}}}, ++ {{{52, 53, 63},0, {840, 622},{0xDF, 0x45, 0x65, 0xFF}}}, ++ {{{59, 36, 75},0, {833, 806},{0xE1, 0x40, 0x69, 0xFF}}}, ++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, ++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, ++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, ++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, ++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, ++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(6, 11, 10, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 0, 4, 0), ++ gsSP1Triangle(6, 0, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 32, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_3[8] = { ++ {{{21, 44, -53},0, {530, 626},{0x9F, 0x29, 0xB9, 0xFF}}}, ++ {{{19, 6, -57},0, {896, 1008},{0x96, 0x25, 0xC4, 0xFF}}}, ++ {{{8, 34, -28},0, {896, 421},{0x87, 0x19, 0xE1, 0xFF}}}, ++ {{{39, 41, -71},0, {305, 884},{0xCB, 0x2E, 0x96, 0xFF}}}, ++ {{{44, 62, -57},0, {133, 569},{0x4, 0x67, 0xB5, 0xFF}}}, ++ {{{40, 74, -42},0, {134, 282},{0x15, 0x5E, 0xAD, 0xFF}}}, ++ {{{24, 77, -21},0, {380, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, ++ {{{14, 61, -15},0, {669, 41},{0x91, 0x39, 0xEA, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_3 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 5, 0, 0), ++ gsSP1Triangle(7, 6, 0, 0), ++ gsSP1Triangle(2, 7, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_mesh_layer_1_vtx_4[13] = { ++ {{{55, 137, 6},0, {-16, -16},{0x12, 0x3F, 0x6D, 0xFF}}}, ++ {{{42, 129, 0},0, {-16, -16},{0x8A, 0x2F, 0x0, 0xFF}}}, ++ {{{51, 122, 9},0, {-16, -16},{0x9, 0xFB, 0x7F, 0xFF}}}, ++ {{{50, 138, 0},0, {-16, -16},{0xAF, 0x61, 0x0, 0xFF}}}, ++ {{{57, 141, 0},0, {-16, -16},{0x1C, 0x7C, 0x0, 0xFF}}}, ++ {{{61, 137, 0},0, {-16, -16},{0x79, 0x27, 0x0, 0xFF}}}, ++ {{{60, 127, 0},0, {-16, -16},{0x7D, 0xEA, 0x0, 0xFF}}}, ++ {{{56, 115, 0},0, {-16, -16},{0x7C, 0xE5, 0x0, 0xFF}}}, ++ {{{52, 89, 0},0, {-16, -16},{0x39, 0x8E, 0x0, 0xFF}}}, ++ {{{43, 90, 0},0, {-16, -16},{0xB2, 0x9C, 0x0, 0xFF}}}, ++ {{{40, 117, 0},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{51, 122, -9},0, {-16, -16},{0x9, 0xFB, 0x81, 0xFF}}}, ++ {{{55, 137, -6},0, {-16, -16},{0x12, 0x3F, 0x93, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_tri_4[] = { ++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_4 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(0, 2, 6, 0), ++ gsSP1Triangle(7, 6, 2, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(2, 9, 8, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(1, 11, 10, 0), ++ gsSP1Triangle(12, 11, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSP1Triangle(12, 3, 4, 0), ++ gsSP1Triangle(4, 5, 12, 0), ++ gsSP1Triangle(5, 6, 12, 0), ++ gsSP1Triangle(12, 6, 11, 0), ++ gsSP1Triangle(7, 11, 6, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSP1Triangle(11, 8, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_003_mesh_layer_1_vtx_0[30] = { ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, 0, 4},0, {-16, -16},{0xD0, 0x0, 0x76, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, ++ {{{2, 9, 3},0, {-16, -16},{0xFA, 0x66, 0x4C, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, ++ {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{-21, -6, -6},0, {-16, -16},{0xD7, 0x9A, 0xC0, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, ++ {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, ++ {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(13, 12, 1, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSP1Triangle(14, 13, 3, 0), ++ gsSP1Triangle(5, 14, 3, 0), ++ gsSP1Triangle(15, 14, 5, 0), ++ gsSP1Triangle(7, 15, 5, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(2, 9, 10, 0), ++ gsSP1Triangle(11, 9, 2, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(13, 1, 3, 0), ++ gsSP1Triangle(3, 6, 13, 0), ++ gsSP1Triangle(6, 12, 13, 0), ++ gsSP1Triangle(7, 12, 6, 0), ++ gsSP1Triangle(7, 9, 12, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_mesh_layer_1_vtx_0[6] = { ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 1, 0, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(8, 4, 1, 0), ++ gsSP1Triangle(9, 4, 8, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 3, 5, 0), ++ gsSP1Triangle(10, 3, 9, 0), ++ gsSP1Triangle(2, 3, 10, 0), ++ gsSP1Triangle(11, 2, 10, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSP1Triangle(6, 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_004_mesh_layer_1_vtx_1[12] = { ++ {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, ++ {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(10, 2, 11, 0), ++ gsSP1Triangle(0, 2, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_003_mesh_layer_1_vtx_0[46] = { ++ {{{17, -38, -39},0, {-16, -16},{0x9E, 0xB8, 0xDB, 0xFF}}}, ++ {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, ++ {{{-10, 26, -38},0, {-16, -16},{0x88, 0xEC, 0xDA, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0xA2, 0xAC, 0xE, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0x99, 0xD2, 0x3A, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x82, 0xF5, 0xE, 0xFF}}}, ++ {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, ++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, ++ {{{-10, 26, -38},0, {-16, -16},{0x33, 0x54, 0xAF, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, ++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0x43, 0x1C, 0x68, 0xFF}}}, ++ {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0x75, 0xD4, 0x17, 0xFF}}}, ++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, ++ {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, ++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, ++ {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, ++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(2, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 6, 9, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(6, 11, 10, 0), ++ gsSP1Triangle(6, 12, 11, 0), ++ gsSP1Triangle(6, 13, 12, 0), ++ gsSP1Triangle(8, 13, 6, 0), ++ gsSP1Triangle(14, 13, 8, 0), ++ gsSP1Triangle(8, 15, 14, 0), ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 3, 4, 0), ++ gsSP1Triangle(0, 3, 7, 0), ++ gsSP1Triangle(0, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 11, 7, 0), ++ gsSP1Triangle(4, 12, 7, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(13, 9, 12, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(8, 13, 1, 0), ++ gsSP1Triangle(1, 3, 8, 0), ++ gsSP1Triangle(13, 8, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { ++ {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, ++ {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, ++ {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, ++ {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, ++ {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, ++ {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, ++ {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, ++ {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++}; ++ ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(2, 11, 10, 0), ++ gsSP1Triangle(2, 12, 11, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(4, 13, 12, 0), ++ gsSP1Triangle(4, 6, 13, 0), ++ gsSP1Triangle(6, 14, 13, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSP1Triangle(7, 10, 15, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(10, 2, 1, 0), ++ gsSP1Triangle(1, 12, 10, 0), ++ gsSP1Triangle(13, 12, 1, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 14, 3, 0), ++ gsSP1Triangle(4, 15, 3, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 3, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSP1Triangle(9, 1, 0, 0), ++ gsSP1Triangle(10, 1, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(9, 4, 5, 0), ++ gsSP1Triangle(9, 1, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_006_mesh_layer_1_vtx_0[41] = { ++ {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, 8},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, ++ {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, ++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{3, -8, 8},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_006_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(6, 0, 7, 0), ++ gsSP1Triangle(0, 2, 7, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(2, 9, 8, 0), ++ gsSP1Triangle(2, 10, 9, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(3, 10, 1, 0), ++ gsSP1Triangle(3, 11, 10, 0), ++ gsSP1Triangle(3, 12, 11, 0), ++ gsSP1Triangle(13, 12, 3, 0), ++ gsSP1Triangle(4, 13, 3, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(3, 7, 9, 0), ++ gsSP1Triangle(3, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 8, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_mesh_layer_1_vtx_0[6] = { ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 0, 1, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(7, 4, 0, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 10, 5, 0), ++ gsSP1Triangle(10, 3, 5, 0), ++ gsSP1Triangle(10, 11, 3, 0), ++ gsSP1Triangle(3, 11, 2, 0), ++ gsSP1Triangle(11, 6, 2, 0), ++ gsSP1Triangle(6, 1, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_007_mesh_layer_1_vtx_1[12] = { ++ {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, ++ {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_007_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(9, 11, 2, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_004_mesh_layer_1_vtx_0[36] = { ++ {{{-14, 26, 41},0, {-16, -16},{0x2D, 0x50, 0x58, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0x58, 0xE6, 0x58, 0xFF}}}, ++ {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, ++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, ++ {{{24, -57, -4},0, {-16, -16},{0x75, 0xD3, 0xED, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0x4C, 0x21, 0x9F, 0xFF}}}, ++ {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, ++ {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, ++ {{{-19, 47, -4},0, {-16, -16},{0x2D, 0x75, 0xEC, 0xFF}}}, ++ {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, ++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, ++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, ++ {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, ++ {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, ++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, ++ {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, ++ {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, ++ {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0x99, 0xD6, 0xC2, 0xFF}}}, ++ {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, ++ {{{-19, 47, -4},0, {-16, -16},{0x83, 0xF7, 0xEC, 0xFF}}}, ++ {{{24, -57, -4},0, {-16, -16},{0xA0, 0xAF, 0xED, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0x9B, 0xB9, 0x1E, 0xFF}}}, ++ {{{-14, 26, 41},0, {-16, -16},{0x86, 0xEB, 0x1E, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(2, 3, 12, 0), ++ gsSP1Triangle(13, 12, 3, 0), ++ gsSP1Triangle(3, 6, 13, 0), ++ gsSP1Triangle(13, 6, 7, 0), ++ gsSP1Triangle(14, 13, 7, 0), ++ gsSP1Triangle(14, 7, 9, 0), ++ gsSP1Triangle(15, 14, 9, 0), ++ gsSP1Triangle(9, 10, 15, 0), ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(0, 11, 9, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(4, 12, 2, 0), ++ gsSP1Triangle(4, 13, 12, 0), ++ gsSP1Triangle(5, 13, 4, 0), ++ gsSP1Triangle(8, 13, 5, 0), ++ gsSP1Triangle(9, 13, 8, 0), ++ gsSP1Triangle(11, 13, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 30, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(2, 1, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { ++ {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, ++ {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, ++ {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, ++ {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, ++ {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, ++ {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, ++ {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++}; ++ ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(13, 12, 4, 0), ++ gsSP1Triangle(13, 4, 5, 0), ++ gsSP1Triangle(14, 13, 5, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(15, 14, 7, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(3, 14, 1, 0), ++ gsSP1Triangle(3, 15, 14, 0), ++ gsSP1Triangle(3, 4, 15, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 9, 3, 0), ++ gsSP1Triangle(9, 0, 3, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(0, 10, 1, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(1, 3, 7, 0), ++ gsSP1Triangle(3, 4, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { ++ {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, ++ {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, ++ {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, ++ {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, ++ {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, ++}; ++ ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(14, 11, 15, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 4, 1, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(10, 1, 11, 0), ++ gsSP1Triangle(8, 9, 12, 0), ++ gsSP1Triangle(8, 12, 7, 0), ++ gsSP1Triangle(7, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 4, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(10, 11, 1, 0), ++ gsSP1Triangle(1, 11, 12, 0), ++ gsSP1Triangle(10, 1, 0, 0), ++ gsSP1Triangle(0, 13, 10, 0), ++ gsSP1Triangle(0, 14, 13, 0), ++ gsSP1Triangle(3, 14, 0, 0), ++ gsSP1Triangle(3, 6, 14, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(13, 14, 7, 0), ++ gsSP1Triangle(7, 9, 13, 0), ++ gsSP1Triangle(10, 13, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_skinned_mesh_layer_1_vtx_0[9] = { ++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, ++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, ++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_mesh_layer_1_vtx_0[6] = { ++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, ++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, ++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_0 + 0, 6, 9), ++ gsSP1Triangle(9, 0, 1, 0), ++ gsSP1Triangle(10, 0, 9, 0), ++ gsSP1Triangle(10, 2, 0, 0), ++ gsSP1Triangle(2, 10, 3, 0), ++ gsSP1Triangle(10, 4, 3, 0), ++ gsSP1Triangle(4, 10, 11, 0), ++ gsSP1Triangle(11, 7, 4, 0), ++ gsSP1Triangle(11, 8, 7, 0), ++ gsSP1Triangle(5, 8, 11, 0), ++ gsSP1Triangle(11, 12, 5, 0), ++ gsSP1Triangle(13, 5, 12, 0), ++ gsSP1Triangle(5, 13, 6, 0), ++ gsSP1Triangle(1, 6, 13, 0), ++ gsSP1Triangle(13, 14, 1, 0), ++ gsSP1Triangle(9, 1, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_009_mesh_layer_1_vtx_1[13] = { ++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, ++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, ++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, ++ {{{14, -5, -25},0, {428, 551},{0x21, 0xFE, 0x85, 0xFF}}}, ++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, ++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSP1Triangle(5, 12, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, ++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_0[6] = { ++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, ++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(1, 6, 2, 0), ++ gsSP1Triangle(1, 7, 6, 0), ++ gsSP1Triangle(7, 1, 8, 0), ++ gsSP1Triangle(4, 8, 1, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(5, 9, 4, 0), ++ gsSP1Triangle(3, 9, 5, 0), ++ gsSP1Triangle(3, 10, 9, 0), ++ gsSP1Triangle(0, 10, 3, 0), ++ gsSP1Triangle(11, 10, 0, 0), ++ gsSP1Triangle(6, 11, 0, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_1[9] = { ++ {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, ++ {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_2[41] = { ++ {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSP1Triangle(14, 0, 15, 0), ++ gsSP1Triangle(15, 0, 2, 0), ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSP1Triangle(15, 14, 1, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_010_mesh_layer_1_vtx_3[16] = { ++ {{{2, -3, 16},0, {205, 551},{0xE6, 0xF6, 0x7C, 0xFF}}}, ++ {{{43, -12, 22},0, {124, 530},{0xEF, 0xD0, 0x74, 0xFF}}}, ++ {{{43, -1, 22},0, {124, 572},{0xF7, 0x2C, 0x77, 0xFF}}}, ++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, ++ {{{42, 7, 13},0, {180, 602},{0x7, 0x75, 0x31, 0xFF}}}, ++ {{{42, 7, 1},0, {256, 602},{0x11, 0x77, 0xD6, 0xFF}}}, ++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{42, -1, -7},0, {312, 572},{0x17, 0x31, 0x8D, 0xFF}}}, ++ {{{6, -3, -13},0, {361, 551},{0x11, 0x9, 0x82, 0xFF}}}, ++ {{{42, -12, -7},0, {312, 530},{0x13, 0xCC, 0x8E, 0xFF}}}, ++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{42, -20, 1},0, {256, 502},{0x2, 0x87, 0xD9, 0xFF}}}, ++ {{{42, -20, 13},0, {180, 502},{0xF5, 0x8B, 0x31, 0xFF}}}, ++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(0, 2, 5, 0), ++ gsSP1Triangle(5, 2, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 3, 0), ++ gsSP1Triangle(14, 3, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 10, 12, 0), ++ gsSP1Triangle(8, 10, 15, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_0[58] = { ++ {{{-28, 59, 39},0, {1000, -7},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-32, 39, 45},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{2, 52, 51},0, {1000, 32},{0xD, 0x5F, 0x54, 0xFF}}}, ++ {{{-4, 37, 52},0, {864, 32},{0xF0, 0xA, 0x7E, 0xFF}}}, ++ {{{44, 26, 53},0, {896, 192},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{48, 35, 52},0, {1000, 192},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{87, 10, 51},0, {896, 258},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{91, 19, 50},0, {1000, 258},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{112, 0, 47},0, {898, 323},{0x20, 0xE8, 0x79, 0xFF}}}, ++ {{{116, 9, 47},0, {1001, 323},{0x3E, 0x49, 0x54, 0xFF}}}, ++ {{{143, -6, 31},0, {1001, 395},{0x5E, 0x32, 0x45, 0xFF}}}, ++ {{{140, -14, 31},0, {907, 395},{0x3F, 0xC9, 0x60, 0xFF}}}, ++ {{{157, -20, 10},0, {1001, 436},{0x7F, 0xF6, 0xFD, 0xFF}}}, ++ {{{153, -25, 10},0, {915, 431},{0x54, 0xA1, 0x1, 0xFF}}}, ++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{112, -2, -23},0, {898, 323},{0x1C, 0xE2, 0x88, 0xFF}}}, ++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{115, 7, -23},0, {1001, 323},{0x3C, 0x45, 0xA9, 0xFF}}}, ++ {{{87, 8, -29},0, {896, 258},{0xC, 0xE9, 0x84, 0xFF}}}, ++ {{{90, 17, -29},0, {1000, 258},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{43, 23, -33},0, {896, 192},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{47, 33, -34},0, {1000, 192},{0x21, 0x4E, 0xA2, 0xFF}}}, ++ {{{1, 50, -34},0, {1000, 32},{0xE, 0x55, 0xA3, 0xFF}}}, ++ {{{-5, 35, -33},0, {864, 32},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{-28, 57, -26},0, {1000, -7},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{-33, 37, -27},0, {832, -7},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-28, 59, 39},0, {1000, 1070},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-32, 39, 45},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-41, 57, -9},0, {1000, 722},{0xA6, 0x54, 0xE3, 0xFF}}}, ++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-44, 27, -5},0, {663, 734},{0x84, 0x9, 0xE7, 0xFF}}}, ++ {{{-33, 37, -27},0, {805, 291},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-28, 57, -26},0, {1000, 434},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{-41, 57, -9},0, {418, 1519},{0xA6, 0x54, 0xE3, 0xFF}}}, ++ {{{-40, 58, 25},0, {467, 1519},{0xA6, 0x55, 0x1A, 0xFF}}}, ++ {{{-28, 59, 39},0, {489, 1413},{0xDF, 0x69, 0x40, 0xFF}}}, ++ {{{-28, 57, -26},0, {395, 1413},{0xDC, 0x5D, 0xB1, 0xFF}}}, ++ {{{1, 50, -34},0, {384, 1139},{0xE, 0x55, 0xA3, 0xFF}}}, ++ {{{2, 52, 51},0, {506, 1139},{0xD, 0x5F, 0x54, 0xFF}}}, ++ {{{47, 33, -34},0, {384, 690},{0x21, 0x4E, 0xA2, 0xFF}}}, ++ {{{48, 35, 52},0, {509, 690},{0x1F, 0x58, 0x56, 0xFF}}}, ++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, ++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, ++ {{{115, 7, -23},0, {399, 23},{0x3C, 0x45, 0xA9, 0xFF}}}, ++ {{{116, 9, 47},0, {500, 23},{0x3E, 0x49, 0x54, 0xFF}}}, ++ {{{143, -6, 31},0, {477, -261},{0x5E, 0x32, 0x45, 0xFF}}}, ++ {{{143, -7, -11},0, {415, -261},{0x58, 0x2C, 0xB0, 0xFF}}}, ++ {{{157, -20, 10},0, {444, -427},{0x7F, 0xF6, 0xFD, 0xFF}}}, ++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, ++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, ++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 48, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_1[16] = { ++ {{{44, 26, 53},0, {321, 28},{0xF0, 0x6C, 0x42, 0xFF}}}, ++ {{{45, 22, 59},0, {322, 24},{0xEC, 0x2D, 0x75, 0xFF}}}, ++ {{{87, 10, 51},0, {338, 29},{0x54, 0x3D, 0x49, 0xFF}}}, ++ {{{40, 24, 52},0, {320, 26},{0xA5, 0x36, 0x47, 0xFF}}}, ++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, ++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, ++ {{{43, 3, 52},0, {324, 8},{0x39, 0x4, 0x71, 0xFF}}}, ++ {{{74, -8, 49},0, {335, 8},{0xF5, 0x8, 0x7E, 0xFF}}}, ++ {{{76, -15, 50},0, {337, 2},{0x16, 0xBD, 0x69, 0xFF}}}, ++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, ++ {{{76, -20, 42},0, {338, -1},{0x4, 0x98, 0x48, 0xFF}}}, ++ {{{81, -18, 43},0, {339, 2},{0x41, 0xAF, 0x49, 0xFF}}}, ++ {{{85, 8, 56},0, {337, 25},{0x30, 0xA, 0x75, 0xFF}}}, ++ {{{90, 6, 50},0, {339, 26},{0x64, 0xE3, 0x49, 0xFF}}}, ++ {{{78, 4, 51},0, {335, 20},{0xCA, 0xD4, 0x6A, 0xFF}}}, ++ {{{48, 15, 53},0, {323, 20},{0x22, 0xBA, 0x64, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 6, 1, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 2, 0), ++ gsSP1Triangle(1, 12, 2, 0), ++ gsSP1Triangle(12, 1, 14, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(6, 15, 1, 0), ++ gsSP1Triangle(12, 14, 8, 0), ++ gsSP1Triangle(8, 14, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_2[46] = { ++ {{{44, 26, 53},0, {0, 981},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{-4, 37, 52},0, {0, 988},{0xF0, 0xA, 0x7E, 0xFF}}}, ++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, ++ {{{-32, 39, 45},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-44, 28, 19},0, {6, 994},{0x83, 0xA, 0x16, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, ++ {{{-44, 27, -5},0, {10, 994},{0x84, 0x9, 0xE7, 0xFF}}}, ++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, ++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, ++ {{{-33, 37, -27},0, {14, 992},{0xB5, 0x8, 0x9A, 0xFF}}}, ++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, ++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, ++ {{{43, 23, -33},0, {15, 981},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{-16, -30, 7},0, {10, 987},{0xD5, 0x88, 0xFE, 0xFF}}}, ++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, ++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, ++ {{{-21, -12, 37},0, {4, 988},{0xE0, 0xB2, 0x5F, 0xFF}}}, ++ {{{26, -23, 42},0, {3, 981},{0xF2, 0xA8, 0x5B, 0xFF}}}, ++ {{{23, -33, 8},0, {9, 981},{0xF5, 0x82, 0x2, 0xFF}}}, ++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, ++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, ++ {{{82, -4, 49},0, {1, 974},{0x6, 0xE1, 0x7B, 0xFF}}}, ++ {{{112, 0, 47},0, {1, 970},{0x20, 0xE8, 0x79, 0xFF}}}, ++ {{{87, 10, 51},0, {0, 974},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{101, -30, 37},0, {3, 970},{0x13, 0xA3, 0x55, 0xFF}}}, ++ {{{73, -29, 42},0, {3, 974},{0x0, 0xA6, 0x5A, 0xFF}}}, ++ {{{98, -38, 10},0, {8, 970},{0x4, 0x81, 0x2, 0xFF}}}, ++ {{{70, -38, 10},0, {9, 974},{0xF9, 0x81, 0x2, 0xFF}}}, ++ {{{73, -30, -18},0, {13, 974},{0x2, 0xA4, 0xA8, 0xFF}}}, ++ {{{101, -32, -14},0, {12, 970},{0x12, 0xA3, 0xAB, 0xFF}}}, ++ {{{87, 8, -29},0, {14, 974},{0xC, 0xE9, 0x84, 0xFF}}}, ++ {{{112, -2, -23},0, {13, 970},{0x1C, 0xE2, 0x88, 0xFF}}}, ++ {{{140, -15, -10},0, {11, 966},{0x38, 0xC5, 0x9E, 0xFF}}}, ++ {{{136, -35, 10},0, {8, 965},{0x32, 0x8B, 0x0, 0xFF}}}, ++ {{{153, -25, 10},0, {7, 963},{0x54, 0xA1, 0x1, 0xFF}}}, ++ {{{140, -14, 31},0, {3, 966},{0x3F, 0xC9, 0x60, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(9, 8, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(10, 3, 0, 0), ++ gsSP1Triangle(8, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 13, 8, 0), ++ gsSP1Triangle(8, 13, 7, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(5, 12, 3, 0), ++ gsSP1Triangle(5, 8, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_011_mesh_layer_1_vtx_3[12] = { ++ {{{87, 10, 51},0, {-16, -16},{0xA, 0xF9, 0x7E, 0xFF}}}, ++ {{{44, 26, 53},0, {-16, -16},{0x2, 0x2, 0x7F, 0xFF}}}, ++ {{{82, -4, 49},0, {-16, -16},{0x6, 0xE1, 0x7B, 0xFF}}}, ++ {{{38, 9, 52},0, {-16, -16},{0xFF, 0xEC, 0x7D, 0xFF}}}, ++ {{{73, -29, 42},0, {-16, -16},{0x0, 0xA6, 0x5A, 0xFF}}}, ++ {{{26, -23, 42},0, {-16, -16},{0xF2, 0xA8, 0x5B, 0xFF}}}, ++ {{{70, -38, 10},0, {-16, -16},{0xF9, 0x81, 0x2, 0xFF}}}, ++ {{{23, -33, 8},0, {-16, -16},{0xF5, 0x82, 0x2, 0xFF}}}, ++ {{{26, -25, -22},0, {-16, -16},{0xF7, 0xAA, 0xA3, 0xFF}}}, ++ {{{73, -30, -18},0, {-16, -16},{0x2, 0xA4, 0xA8, 0xFF}}}, ++ {{{43, 23, -33},0, {-16, -16},{0x1, 0xEF, 0x82, 0xFF}}}, ++ {{{87, 8, -29},0, {-16, -16},{0xC, 0xE9, 0x84, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_skinned_mesh_layer_1_vtx_0[10] = { ++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, ++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, ++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, ++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, ++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, ++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, ++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_mesh_layer_1_vtx_0[6] = { ++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, ++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, ++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, ++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_0 + 0, 6, 10), ++ gsSP1Triangle(2, 0, 10, 0), ++ gsSP1Triangle(11, 10, 0, 0), ++ gsSP1Triangle(0, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 9, 8, 0), ++ gsSP1Triangle(13, 12, 8, 0), ++ gsSP1Triangle(13, 8, 7, 0), ++ gsSP1Triangle(7, 6, 13, 0), ++ gsSP1Triangle(13, 6, 5, 0), ++ gsSP1Triangle(5, 14, 13, 0), ++ gsSP1Triangle(14, 5, 4, 0), ++ gsSP1Triangle(14, 4, 3, 0), ++ gsSP1Triangle(1, 14, 3, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(10, 15, 1, 0), ++ gsSP1Triangle(2, 10, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_012_mesh_layer_1_vtx_1[13] = { ++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, ++ {{{14, -5, 25},0, {556, 551},{0x21, 0xFE, 0x7B, 0xFF}}}, ++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, ++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, ++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, ++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, ++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, ++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(11, 1, 10, 0), ++ gsSP1Triangle(11, 2, 1, 0), ++ gsSP1Triangle(12, 10, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, ++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, ++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_0[6] = { ++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(0, 1, 6, 0), ++ gsSP1Triangle(1, 2, 6, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSP1Triangle(2, 3, 7, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(3, 9, 8, 0), ++ gsSP1Triangle(3, 5, 9, 0), ++ gsSP1Triangle(5, 4, 9, 0), ++ gsSP1Triangle(9, 4, 10, 0), ++ gsSP1Triangle(10, 4, 11, 0), ++ gsSP1Triangle(4, 0, 11, 0), ++ gsSP1Triangle(0, 6, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_1[9] = { ++ {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, ++ {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_2[41] = { ++ {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 2, 13, 0), ++ gsSP1Triangle(15, 13, 2, 0), ++ gsSP1Triangle(1, 15, 2, 0), ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(14, 15, 0, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_offset_013_mesh_layer_1_vtx_3[16] = { ++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{6, -3, 13},0, {623, 551},{0x11, 0x9, 0x7E, 0xFF}}}, ++ {{{42, -12, 7},0, {672, 530},{0x13, 0xCC, 0x72, 0xFF}}}, ++ {{{42, -20, -1},0, {728, 502},{0x2, 0x87, 0x27, 0xFF}}}, ++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{42, -20, -13},0, {805, 502},{0xF5, 0x8B, 0xCF, 0xFF}}}, ++ {{{43, -12, -22},0, {860, 530},{0xEF, 0xD0, 0x8C, 0xFF}}}, ++ {{{2, -3, -16},0, {779, 551},{0xE6, 0xF6, 0x84, 0xFF}}}, ++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{43, -1, -22},0, {860, 572},{0xF7, 0x2C, 0x89, 0xFF}}}, ++ {{{42, 7, -13},0, {805, 602},{0x7, 0x75, 0xCF, 0xFF}}}, ++ {{{42, 7, -1},0, {728, 602},{0x11, 0x77, 0x2A, 0xFF}}}, ++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, ++ {{{42, -1, 7},0, {672, 572},{0x17, 0x31, 0x73, 0xFF}}}, ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSP1Triangle(2, 15, 14, 0), ++ gsSP1Triangle(14, 0, 2, 0), ++ gsSP1Triangle(2, 3, 15, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_0[55] = { ++ {{{-5, 35, 27},0, {864, 32},{0xFD, 0xF9, 0x7F, 0xFF}}}, ++ {{{-28, 57, 26},0, {1000, -7},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{-33, 37, 27},0, {832, -7},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{1, 50, 27},0, {1000, 32},{0x17, 0x55, 0x5C, 0xFF}}}, ++ {{{43, 23, 27},0, {896, 192},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{47, 33, 27},0, {1000, 192},{0x1B, 0x53, 0x5D, 0xFF}}}, ++ {{{90, 17, 29},0, {1000, 258},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{87, 8, 29},0, {896, 258},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{115, 7, 23},0, {1001, 323},{0x3C, 0x45, 0x58, 0xFF}}}, ++ {{{112, -2, 23},0, {898, 323},{0x1D, 0xE2, 0x78, 0xFF}}}, ++ {{{143, -7, 11},0, {1001, 395},{0x58, 0x2C, 0x50, 0xFF}}}, ++ {{{140, -15, 10},0, {907, 395},{0x38, 0xC5, 0x62, 0xFF}}}, ++ {{{157, -20, -10},0, {1001, 436},{0x7F, 0xF6, 0x3, 0xFF}}}, ++ {{{153, -25, -10},0, {915, 431},{0x54, 0xA1, 0xFF, 0xFF}}}, ++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{112, 0, -47},0, {898, 323},{0x20, 0xE8, 0x88, 0xFF}}}, ++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{116, 9, -46},0, {1001, 323},{0x3E, 0x49, 0xAC, 0xFF}}}, ++ {{{91, 19, -50},0, {1000, 258},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{87, 10, -51},0, {896, 258},{0xA, 0xF9, 0x82, 0xFF}}}, ++ {{{48, 35, -52},0, {1000, 192},{0x20, 0x58, 0xAA, 0xFF}}}, ++ {{{44, 26, -53},0, {896, 192},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{2, 52, -51},0, {1000, 32},{0xD, 0x5F, 0xAC, 0xFF}}}, ++ {{{-4, 37, -52},0, {864, 32},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{-32, 39, -45},0, {832, -7},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-28, 59, -39},0, {1000, -7},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-33, 37, 27},0, {805, 291},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{-28, 57, 26},0, {1000, 434},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-44, 28, -19},0, {663, 770},{0x83, 0xA, 0xEA, 0xFF}}}, ++ {{{-40, 58, -25},0, {1000, 782},{0xA6, 0x56, 0xE6, 0xFF}}}, ++ {{{-32, 39, -45},0, {805, 1213},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-28, 59, -39},0, {1000, 1070},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-41, 57, 9},0, {420, 1519},{0xA6, 0x54, 0x1D, 0xFF}}}, ++ {{{-28, 59, -39},0, {491, 1413},{0xDF, 0x69, 0xC0, 0xFF}}}, ++ {{{-40, 58, -25},0, {469, 1519},{0xA6, 0x56, 0xE6, 0xFF}}}, ++ {{{-28, 57, 26},0, {397, 1413},{0xE3, 0x59, 0x56, 0xFF}}}, ++ {{{1, 50, 27},0, {386, 1139},{0x17, 0x55, 0x5C, 0xFF}}}, ++ {{{2, 52, -51},0, {508, 1139},{0xD, 0x5F, 0xAC, 0xFF}}}, ++ {{{47, 33, 27},0, {386, 690},{0x1B, 0x53, 0x5D, 0xFF}}}, ++ {{{48, 35, -52},0, {511, 690},{0x20, 0x58, 0xAA, 0xFF}}}, ++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, ++ {{{115, 7, 23},0, {401, 23},{0x3C, 0x45, 0x58, 0xFF}}}, ++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, ++ {{{116, 9, -46},0, {502, 23},{0x3E, 0x49, 0xAC, 0xFF}}}, ++ {{{143, -6, -31},0, {479, -261},{0x5E, 0x32, 0xBB, 0xFF}}}, ++ {{{143, -7, 11},0, {417, -261},{0x58, 0x2C, 0x50, 0xFF}}}, ++ {{{157, -20, -10},0, {446, -427},{0x7F, 0xF6, 0x3, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 7, 6, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(11, 7, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_1[46] = { ++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{43, 23, 27},0, {20, 981},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{-5, 35, 27},0, {20, 988},{0xFD, 0xF9, 0x7F, 0xFF}}}, ++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, ++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, ++ {{{-33, 37, 27},0, {21, 992},{0xC1, 0x5, 0x6E, 0xFF}}}, ++ {{{-44, 27, 5},0, {24, 994},{0x84, 0x9, 0x19, 0xFF}}}, ++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, ++ {{{-44, 28, -19},0, {28, 994},{0x83, 0xA, 0xEA, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, ++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{-32, 39, -45},0, {33, 992},{0xB3, 0x13, 0x9D, 0xFF}}}, ++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, ++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{44, 26, -53},0, {35, 981},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, ++ {{{26, -23, -42},0, {32, 981},{0xF2, 0xA8, 0xA5, 0xFF}}}, ++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, ++ {{{-21, -12, -37},0, {30, 988},{0xDF, 0xB2, 0xA1, 0xFF}}}, ++ {{{-16, -30, -7},0, {25, 987},{0xD5, 0x88, 0x2, 0xFF}}}, ++ {{{23, -33, -8},0, {25, 981},{0xF5, 0x82, 0xFE, 0xFF}}}, ++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, ++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, ++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, ++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{82, -4, -49},0, {34, 974},{0x6, 0xE1, 0x85, 0xFF}}}, ++ {{{87, 10, -51},0, {35, 974},{0xA, 0xF9, 0x82, 0xFF}}}, ++ {{{112, 0, -47},0, {34, 970},{0x20, 0xE8, 0x88, 0xFF}}}, ++ {{{101, -30, -37},0, {31, 970},{0x13, 0xA3, 0xAB, 0xFF}}}, ++ {{{140, -14, -31},0, {31, 966},{0x3F, 0xC9, 0xA0, 0xFF}}}, ++ {{{136, -35, -10},0, {27, 965},{0x32, 0x8B, 0x0, 0xFF}}}, ++ {{{153, -25, -10},0, {27, 963},{0x54, 0xA1, 0xFF, 0xFF}}}, ++ {{{140, -15, 10},0, {24, 966},{0x38, 0xC5, 0x62, 0xFF}}}, ++ {{{101, -32, 14},0, {22, 970},{0x11, 0xA3, 0x55, 0xFF}}}, ++ {{{112, -2, 23},0, {22, 970},{0x1D, 0xE2, 0x78, 0xFF}}}, ++ {{{87, 8, 29},0, {21, 974},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{73, -30, 18},0, {21, 974},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{98, -38, -10},0, {26, 970},{0x4, 0x81, 0xFE, 0xFF}}}, ++ {{{70, -38, -10},0, {26, 974},{0xF9, 0x81, 0xFE, 0xFF}}}, ++ {{{73, -29, -42},0, {32, 974},{0x0, 0xA6, 0xA6, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(3, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(6, 10, 12, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(5, 6, 13, 0), ++ gsSP1Triangle(5, 13, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_2[12] = { ++ {{{73, -30, 18},0, {-16, -16},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{87, 8, 29},0, {-16, -16},{0x3, 0xEC, 0x7D, 0xFF}}}, ++ {{{43, 23, 27},0, {-16, -16},{0xFC, 0xF6, 0x7F, 0xFF}}}, ++ {{{26, -25, 22},0, {-16, -16},{0xF9, 0xB0, 0x62, 0xFF}}}, ++ {{{70, -38, -10},0, {-16, -16},{0xF9, 0x81, 0xFE, 0xFF}}}, ++ {{{23, -33, -8},0, {-16, -16},{0xF5, 0x82, 0xFE, 0xFF}}}, ++ {{{26, -23, -42},0, {-16, -16},{0xF2, 0xA8, 0xA5, 0xFF}}}, ++ {{{73, -29, -42},0, {-16, -16},{0x0, 0xA6, 0xA6, 0xFF}}}, ++ {{{38, 9, -52},0, {-16, -16},{0xFE, 0xEC, 0x83, 0xFF}}}, ++ {{{82, -4, -49},0, {-16, -16},{0x6, 0xE1, 0x85, 0xFF}}}, ++ {{{44, 26, -53},0, {-16, -16},{0x2, 0x2, 0x81, 0xFF}}}, ++ {{{87, 10, -51},0, {-16, -16},{0xA, 0xF9, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_2[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_3[16] = { ++ {{{85, 8, -56},0, {337, 25},{0x30, 0xA, 0x8B, 0xFF}}}, ++ {{{87, 10, -51},0, {338, 29},{0x55, 0x3D, 0xB7, 0xFF}}}, ++ {{{90, 6, -49},0, {339, 26},{0x64, 0xE4, 0xB7, 0xFF}}}, ++ {{{45, 22, -59},0, {322, 24},{0xEC, 0x2D, 0x8B, 0xFF}}}, ++ {{{78, 4, -51},0, {335, 20},{0xCB, 0xD4, 0x95, 0xFF}}}, ++ {{{76, -15, -50},0, {337, 2},{0x17, 0xBD, 0x97, 0xFF}}}, ++ {{{81, -18, -43},0, {339, 2},{0x40, 0xAF, 0xB6, 0xFF}}}, ++ {{{76, -20, -42},0, {338, -1},{0x4, 0x98, 0xB8, 0xFF}}}, ++ {{{33, -5, -48},0, {321, -2},{0xC4, 0xAC, 0xB6, 0xFF}}}, ++ {{{36, -1, -55},0, {322, 1},{0xD3, 0xDD, 0x8E, 0xFF}}}, ++ {{{31, 0, -49},0, {320, 1},{0x9A, 0xF3, 0xB5, 0xFF}}}, ++ {{{40, 24, -52},0, {320, 26},{0xA5, 0x36, 0xB9, 0xFF}}}, ++ {{{44, 26, -53},0, {321, 28},{0xF0, 0x6C, 0xBE, 0xFF}}}, ++ {{{43, 3, -52},0, {324, 8},{0x39, 0x4, 0x8E, 0xFF}}}, ++ {{{48, 15, -52},0, {323, 20},{0x22, 0xBA, 0x9C, 0xFF}}}, ++ {{{74, -8, -49},0, {335, 8},{0xF5, 0x8, 0x82, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_tri_3[] = { ++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_tri_0[] = { ++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_tri_1[] = { ++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_mario_sonic_blue_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_blue_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_skin_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_skin_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_metal_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_metal_v4[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_texture[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_texture_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_mouth_none[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_mouth_none_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_nose_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_nose_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_mouth[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_mouth_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_mouth_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_half[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_half_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_half_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_closed[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_closed_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_closed_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_eye_dead[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_dead_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_eye_dead_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_gloves_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_gloves_001_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_gloves_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_gloves_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_texture_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_new2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(mario_sonic_texture_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_white_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_white_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_buckle_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_buckle_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_sonic_shoe_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(mario_sonic_shoe_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing_2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_mario_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing1_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_mario_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_texture), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_texture), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_half), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_closed), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_eye_dead), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_mouth_none), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_mario_sonic_nose_v4), ++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04001090 +-ALIGNED8 static const Texture mario_texture_yellow_button[] = { +-#include "actors/mario/mario_overalls_button.rgba16.inc.c" ++Gfx mario_000_displaylist_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_001_v4), ++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04001890 +-ALIGNED8 static const Texture mario_texture_m_logo[] = { +-#include "actors/mario/mario_logo.rgba16.inc.c" ++Gfx mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04002090 +-ALIGNED8 static const Texture mario_texture_hair_sideburn[] = { +-#include "actors/mario/mario_sideburn.rgba16.inc.c" ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04002890 +-ALIGNED8 static const Texture mario_texture_mustache[] = { +-#include "actors/mario/mario_mustache.rgba16.inc.c" ++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04003090 +-ALIGNED8 static const Texture mario_texture_eyes_front[] = { +-#include "actors/mario/mario_eyes_center.rgba16.inc.c" ++Gfx mario_000_offset_006_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04003890 +-ALIGNED8 static const Texture mario_texture_eyes_half_closed[] = { +-#include "actors/mario/mario_eyes_half_closed.rgba16.inc.c" ++Gfx mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04004090 +-ALIGNED8 static const Texture mario_texture_eyes_closed[] = { +-#include "actors/mario/mario_eyes_closed.rgba16.inc.c" ++Gfx mario_000_offset_007_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// Unreferenced +-// 0x04004890 +-ALIGNED8 static const Texture mario_texture_eyes_closed_unused1[] = { +-#include "actors/mario/mario_eyes_closed_unused_0.rgba16.inc.c" ++Gfx mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// Unreferenced +-// 0x04005090 +-ALIGNED8 static const Texture mario_texture_eyes_closed_unused2[] = { +-#include "actors/mario/mario_eyes_closed_unused_1.rgba16.inc.c" ++Gfx mario_000_offset_007_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_skin_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04005890 +-ALIGNED8 static const Texture mario_texture_eyes_right[] = { +-#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c" ++Gfx mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), + }; + +-// 0x04006090 +-ALIGNED8 static const Texture mario_texture_eyes_left[] = { +-#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c" ++Gfx mario_000_displaylist_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_001_v4), ++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04006890 +-ALIGNED8 static const Texture mario_texture_eyes_up[] = { +-#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c" ++Gfx mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04007090 +-ALIGNED8 static const Texture mario_texture_eyes_down[] = { +-#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c" +-}; ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; + +-// 0x04007890 +-ALIGNED8 static const Texture mario_texture_eyes_dead[] = { +-#include "actors/mario/mario_eyes_dead.rgba16.inc.c" ++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), + }; + +-// 0x04008090 +-ALIGNED8 static const Texture mario_texture_wings_half_1[] = { +-#include "actors/mario/mario_wing.rgba16.inc.c" ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_gloves_v4), ++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; + +-// 0x04009090 +-ALIGNED8 static const Texture mario_texture_wings_half_2[] = { +-#include "actors/mario/mario_wing_tip.rgba16.inc.c" +-}; +- +-// 0x0400A090 +-ALIGNED8 static const Texture mario_texture_metal_wings_half_1[] = { +-#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c" +-}; ++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; + +-// 0x0400B090 +-ALIGNED8 static const Texture mario_texture_metal_wings_half_2[] = { +-#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c" +-}; +- +-// 0x0400C090 +-static const Vtx mario_butt_dl_vertex_group1[] = { +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +-}; +- +-// 0x0400C180 +-static const Vtx mario_butt_dl_vertex_group2[] = { +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +-}; +- +-// 0x0400C260 +-static const Vtx mario_butt_dl_vertex_group3[] = { +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +-}; +- +-// 0x0400C360 +-static const Vtx mario_butt_dl_vertex_group4[] = { +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +-}; +- +-// 0x0400C450 +-static const Vtx mario_butt_dl_vertex_group5[] = { +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +-}; +- +-// 0x0400C540 +-static const Vtx mario_butt_dl_vertex_group6[] = { +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +-}; +- +-// 0x0400C630 +-static const Vtx mario_butt_dl_vertex_group7[] = { +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +-}; +- +-// 0x0400C720 +-static const Vtx mario_butt_dl_vertex_group8[] = { +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, +- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, +- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, +- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, +- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +-}; +- +-// 0x0400C820 +-static const Vtx mario_butt_dl_vertex_group9[] = { +- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, +- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, +- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, +- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, +- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, +- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, +- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, +- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +-}; +- +-// 0x0400C920 +-static const Vtx mario_butt_dl_vertex_group10[] = { +- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, +- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, +- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, +- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, +- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, +- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, +- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, +- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, +- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, +- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, +- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, +- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, +- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, +- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, +-}; +- +-// 0x0400CA00 - 0x0400CC98 +-const Gfx mario_butt_dl[] = { +- gsSPVertex(mario_butt_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 5, 10, 0x0), +- gsSP2Triangles( 4, 11, 10, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 3, 13, 0x0, 6, 8, 12, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 1, 7, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(11, 9, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group4, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 2, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 11, 12, 7, 0x0), +- gsSP1Triangle(13, 11, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group5, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 2, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(11, 10, 9, 0x0, 12, 13, 14, 0x0), +- gsSP1Triangle( 0, 13, 12, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 2, 3, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 1, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group8, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 5, 0x0), +- gsSP2Triangles( 4, 11, 12, 0x0, 6, 11, 13, 0x0), +- gsSP2Triangles(13, 3, 14, 0x0, 15, 2, 1, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group9, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 1, 0, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 0, 13, 14, 0x0), +- gsSP1Triangle(15, 0, 14, 0x0), +- gsSPVertex(mario_butt_dl_vertex_group10, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 0, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 9, 1, 11, 0x0, 11, 12, 10, 0x0), +- gsSP1Triangle(10, 13, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CC98 - 0x0400CCC8 +-const Gfx mario_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CCC8 - 0x0400CD40 +-const Gfx mario_metal_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400CD40 +-static const Vtx mario_left_arm_shared_dl_vertex_group1[] = { +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +-}; +- +-// 0x0400CE30 +-static const Vtx mario_left_arm_shared_dl_vertex_group2[] = { +- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, +- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, +- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +-}; +- +-// 0x0400CF20 +-static const Vtx mario_left_arm_shared_dl_vertex_group3[] = { +- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, +- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, +- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, +- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, +- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, +- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, +- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, +- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, +- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +-}; +- +-// 0x0400D000 +-static const Vtx mario_left_arm_shared_dl_vertex_group4[] = { +- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, +- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, +- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, +- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, +- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, +- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, +- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, +- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, +-}; +- +-// 0x0400D090 - 0x0400D1D8 +-const Gfx mario_left_arm_shared_dl[] = { +- gsSPVertex(mario_left_arm_shared_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 1, 7, 6, 0x0, 2, 1, 6, 0x0), +- gsSP2Triangles( 6, 5, 8, 0x0, 8, 5, 3, 0x0), +- gsSP2Triangles( 3, 0, 9, 0x0, 9, 0, 2, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 2, 4, 7, 0x0), +- gsSP2Triangles( 0, 2, 8, 0x0, 9, 0, 10, 0x0), +- gsSP2Triangles( 6, 9, 11, 0x0, 4, 6, 12, 0x0), +- gsSP1Triangle(13, 5, 3, 0x0), +- gsSPVertex(mario_left_arm_shared_dl_vertex_group4, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), +- gsSP1Triangle( 6, 8, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D1D8 - 0x0400D1F8 +-const Gfx mario_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D1F8 +-static const Vtx mario_left_forearm_shared_dl_vertex[] = { +- {{{ -2, 19, 16}, 0, { 0, 0}, {0xdb, 0x61, 0x48, 0x00}}}, +- {{{ 47, 14, 13}, 0, { 0, 0}, {0x44, 0x44, 0x51, 0x00}}}, +- {{{ 47, 16, -19}, 0, { 0, 0}, {0x45, 0x61, 0xd6, 0x00}}}, +- {{{ -3, -17, 26}, 0, { 0, 0}, {0xd7, 0xdb, 0x71, 0x00}}}, +- {{{ 46, -17, 22}, 0, { 0, 0}, {0x41, 0xc7, 0x5c, 0x00}}}, +- {{{ -3, -38, -4}, 0, { 0, 0}, {0xd4, 0x89, 0xfe, 0x00}}}, +- {{{ 45, -34, -4}, 0, { 0, 0}, {0x3f, 0x95, 0xe8, 0x00}}}, +- {{{ -3, -14, -34}, 0, { 0, 0}, {0xd7, 0xde, 0x8e, 0x00}}}, +- {{{ 46, -14, -30}, 0, { 0, 0}, {0x42, 0xf4, 0x95, 0x00}}}, +- {{{ -2, 21, -21}, 0, { 0, 0}, {0xdb, 0x63, 0xbb, 0x00}}}, +- {{{ -14, 13, -15}, 0, { 0, 0}, {0x93, 0x2c, 0xd3, 0x00}}}, +- {{{ -14, 11, 10}, 0, { 0, 0}, {0x93, 0x3b, 0x19, 0x00}}}, +- {{{ -15, -11, -24}, 0, { 0, 0}, {0x9a, 0xde, 0xbe, 0x00}}}, +- {{{ -15, -27, -4}, 0, { 0, 0}, {0x8b, 0xd2, 0x0a, 0x00}}}, +- {{{ -15, -13, 17}, 0, { 0, 0}, {0x9b, 0xfb, 0x4c, 0x00}}}, +- {{{ 58, -7, -3}, 0, { 0, 0}, {0x7e, 0xfc, 0x00, 0x00}}}, +-}; +- +-// 0x0400D2F8 - 0x0400D3E8 +-const Gfx mario_left_forearm_shared_dl[] = { +- gsSPVertex(mario_left_forearm_shared_dl_vertex, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), +- gsSP2Triangles( 8, 15, 6, 0x0, 6, 15, 4, 0x0), +- gsSP2Triangles( 4, 15, 1, 0x0, 1, 15, 2, 0x0), +- gsSP2Triangles( 2, 15, 8, 0x0, 0, 14, 3, 0x0), +- gsSP2Triangles( 3, 13, 5, 0x0, 5, 12, 7, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 9, 11, 0, 0x0), +- gsSP2Triangles( 7, 9, 8, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 9, 0, 2, 0x0, 12, 13, 10, 0x0), +- gsSP2Triangles(13, 11, 10, 0x0, 13, 14, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D3E8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group1[] = { +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +- {{{ 17, -1, 27}, 0, { 0, 0}, {0x00, 0xfd, 0x7f, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, +- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, +- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, +- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, +- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, +- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, +- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, +-}; +- +-// 0x0400D4E8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group2[] = { +- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, +- {{{ 57, 55, -37}, 0, { 0, 0}, {0x22, 0x54, 0xa9, 0x00}}}, +- {{{ 99, 40, -16}, 0, { 0, 0}, {0x6c, 0x3c, 0xe5, 0x00}}}, +- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, +- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, +- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, +- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +-}; +- +-// 0x0400D5C8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group3[] = { +- {{{ 27, -58, 6}, 0, { 0, 0}, {0xa3, 0xad, 0x12, 0x00}}}, +- {{{ -14, -14, -4}, 0, { 0, 0}, {0x8c, 0xcd, 0x02, 0x00}}}, +- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, +- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, +- {{{ -18, 45, 8}, 0, { 0, 0}, {0x84, 0xf3, 0x13, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x99, 0xd2, 0x38, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 27, -58, 6}, 0, { 0, 0}, {0x73, 0xd5, 0x1d, 0x00}}}, +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ -18, 45, 8}, 0, { 0, 0}, {0x2d, 0x71, 0x21, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, +- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +-}; +- +-// 0x0400D6B8 +-static const Vtx mario_left_hand_closed_shared_dl_vertex_group4[] = { +- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, +- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, +- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, +- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, +- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, +- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, +- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, +- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, +- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, +- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, +-}; +- +-// 0x0400D758 - 0x0400D8F0 +-const Gfx mario_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 1, 0, 0x0, 2, 1, 7, 0x0), +- gsSP2Triangles( 7, 1, 6, 0x0, 6, 4, 8, 0x0), +- gsSP2Triangles( 8, 4, 3, 0x0, 9, 3, 2, 0x0), +- gsSP2Triangles( 0, 10, 11, 0x0, 12, 10, 0, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 1, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 1, 0, 9, 0x0), +- gsSP2Triangles( 9, 3, 1, 0x0, 5, 2, 1, 0x0), +- gsSP2Triangles( 0, 2, 7, 0x0, 7, 2, 8, 0x0), +- gsSP2Triangles( 8, 2, 11, 0x0, 11, 2, 5, 0x0), +- gsSP2Triangles( 9, 7, 6, 0x0, 6, 8, 12, 0x0), +- gsSP2Triangles(12, 8, 13, 0x0, 13, 5, 4, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 8, 2, 3, 0x0, 3, 9, 10, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 11, 7, 6, 0x0), +- gsSP2Triangles(10, 12, 13, 0x0, 6, 14, 12, 0x0), +- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group4, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 1, 5, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP1Triangle( 7, 1, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D8F0 - 0x0400D910 +-const Gfx mario_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400D910 +-static const Vtx mario_right_arm_shared_dl_vertex_group1[] = { +- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +-}; +- +-// 0x0400DA10 +-static const Vtx mario_right_arm_shared_dl_vertex_group2[] = { +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +-}; +- +-// 0x0400DB10 +-static const Vtx mario_right_arm_shared_dl_vertex_group3[] = { +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, +- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, +- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, +- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, +- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, +- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, +- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, +- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, +- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, +- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +-}; +- +-// 0x0400DC10 +-static const Vtx mario_right_arm_shared_dl_vertex_group4[] = { +- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, +- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, +- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, +- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, +- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, +- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, +- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, +- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, +- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, +-}; +- +-// 0x0400DCA0 - 0x0400DDE8 +-const Gfx mario_right_arm_shared_dl[] = { +- gsSPVertex(mario_right_arm_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), +- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), +- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), +- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 3, 6, 4, 0x0), +- gsSP2Triangles( 1, 6, 3, 0x0, 0, 7, 1, 0x0), +- gsSP2Triangles( 8, 7, 0, 0x0, 5, 4, 8, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 9, 13, 0x0), +- gsSP1Triangle(14, 12, 15, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 5, 2, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 10, 8, 11, 0x0), +- gsSP2Triangles( 6, 10, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_right_arm_shared_dl_vertex_group4, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP1Triangle( 5, 8, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DDE8 - 0x0400DE08 +-const Gfx mario_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DE08 +-static const Vtx mario_right_forearm_shared_dl_vertex[] = { +- {{{ 47, -15, -19}, 0, { 0, 0}, {0x41, 0xcf, 0x9f, 0x00}}}, +- {{{ -3, -39, 6}, 0, { 0, 0}, {0xd4, 0x8a, 0xf8, 0x00}}}, +- {{{ -2, -15, -23}, 0, { 0, 0}, {0xd7, 0xe5, 0x8c, 0x00}}}, +- {{{ 46, -36, 6}, 0, { 0, 0}, {0x3f, 0x94, 0x0f, 0x00}}}, +- {{{ -2, -18, 38}, 0, { 0, 0}, {0xd6, 0xd5, 0x6f, 0x00}}}, +- {{{ 47, -17, 34}, 0, { 0, 0}, {0x42, 0xec, 0x6a, 0x00}}}, +- {{{ -1, 18, 28}, 0, { 0, 0}, {0xdb, 0x5d, 0x4d, 0x00}}}, +- {{{ 48, 13, 25}, 0, { 0, 0}, {0x45, 0x5d, 0x32, 0x00}}}, +- {{{ -1, 20, -9}, 0, { 0, 0}, {0xdb, 0x67, 0xc1, 0x00}}}, +- {{{ 48, 15, -7}, 0, { 0, 0}, {0x45, 0x4c, 0xb6, 0x00}}}, +- {{{ -14, -28, 6}, 0, { 0, 0}, {0x90, 0xc9, 0xef, 0x00}}}, +- {{{ -14, -12, -13}, 0, { 0, 0}, {0x91, 0x01, 0xc3, 0x00}}}, +- {{{ -13, 12, -4}, 0, { 0, 0}, {0x9e, 0x4b, 0xe7, 0x00}}}, +- {{{ -13, 10, 21}, 0, { 0, 0}, {0x8d, 0x22, 0x28, 0x00}}}, +- {{{ -14, -14, 28}, 0, { 0, 0}, {0x9a, 0xd8, 0x3f, 0x00}}}, +- {{{ 59, -8, 7}, 0, { 0, 0}, {0x7f, 0xfd, 0x00, 0x00}}}, +-}; +- +-// 0x0400DF08 - 0x0400DFF8 +-const Gfx mario_right_forearm_shared_dl[] = { +- gsSPVertex(mario_right_forearm_shared_dl_vertex, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), +- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), +- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), +- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), +- gsSP2Triangles( 3, 15, 5, 0x0, 5, 15, 7, 0x0), +- gsSP2Triangles( 7, 15, 9, 0x0, 14, 10, 1, 0x0), +- gsSP2Triangles(13, 14, 4, 0x0, 12, 13, 6, 0x0), +- gsSP2Triangles(11, 12, 8, 0x0, 10, 11, 2, 0x0), +- gsSP2Triangles( 9, 0, 2, 0x0, 7, 9, 8, 0x0), +- gsSP2Triangles( 5, 7, 6, 0x0, 3, 5, 4, 0x0), +- gsSP2Triangles( 0, 3, 1, 0x0, 11, 13, 12, 0x0), +- gsSP2Triangles(11, 10, 13, 0x0, 10, 14, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400DFF8 +-static const Vtx mario_right_hand_closed_dl_vertex_group1[] = { +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, +- {{{ 24, -57, -4}, 0, { 0, 0}, {0x73, 0xd4, 0xe6, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0x30, 0x72, 0xe5, 0x00}}}, +- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, +- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, +- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, +- {{{ 24, -57, -4}, 0, { 0, 0}, {0xa2, 0xaf, 0xe7, 0x00}}}, +- {{{ -16, -12, 6}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x9b, 0xd5, 0xc2, 0x00}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0x85, 0xf5, 0xe7, 0x00}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, +-}; +- +-// 0x0400E0F8 +-static const Vtx mario_right_hand_closed_dl_vertex_group2[] = { +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 104, -26, 1}, 0, { 0, 0}, {0x68, 0xc5, 0xd7, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, +- {{{ 96, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x51, 0x00}}}, +- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, +- {{{ 97, 39, 24}, 0, { 0, 0}, {0x6b, 0x3a, 0x21, 0x00}}}, +- {{{ 86, 30, -33}, 0, { 0, 0}, {0x4f, 0x22, 0xa4, 0x00}}}, +- {{{ 86, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x61, 0x00}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x20, 0x51, 0x5c, 0x00}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, +- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +-}; +- +-// 0x0400E1D8 +-static const Vtx mario_right_hand_closed_dl_vertex_group3[] = { +- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, +- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, +- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, +- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd2, 0x3c, 0x65, 0x00}}}, +- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, +- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, +- {{{ 15, 0, -23}, 0, { 0, 0}, {0x04, 0x01, 0x82, 0x00}}}, +- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, +- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, +- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, +- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, +- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, +- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, +- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, +-}; +- +-// 0x0400E2C8 - 0x0400E458 +-const Gfx mario_right_hand_closed_dl[] = { +- gsSPVertex(mario_right_hand_closed_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 2, 5, 6, 0x0, 6, 7, 4, 0x0), +- gsSP2Triangles( 4, 7, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 9, 5, 2, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 12, 14, 0x0, 14, 12, 8, 0x0), +- gsSP2Triangles( 8, 12, 9, 0x0, 9, 12, 11, 0x0), +- gsSP1Triangle( 3, 15, 0, 0x0), +- gsSPVertex(mario_right_hand_closed_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 8, 7, 1, 0x0, 1, 7, 4, 0x0), +- gsSP2Triangles( 4, 7, 9, 0x0, 10, 7, 6, 0x0), +- gsSP2Triangles( 9, 10, 5, 0x0, 10, 11, 5, 0x0), +- gsSP2Triangles(11, 12, 5, 0x0, 1, 4, 3, 0x0), +- gsSP2Triangles(11, 10, 6, 0x0, 6, 13, 11, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 4, 9, 5, 0x0), +- gsSP2Triangles( 0, 8, 1, 0x0, 6, 8, 0, 0x0), +- gsSPVertex(mario_right_hand_closed_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 0, 0x0, 8, 6, 5, 0x0), +- gsSP2Triangles( 9, 3, 1, 0x0, 0, 6, 8, 0x0), +- gsSP2Triangles(10, 11, 1, 0x0, 11, 9, 1, 0x0), +- gsSP2Triangles(11, 12, 9, 0x0, 1, 0, 10, 0x0), +- gsSP2Triangles(13, 5, 3, 0x0, 3, 9, 14, 0x0), +- gsSP1Triangle(14, 13, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E458 - 0x0400E478 +-const Gfx mario_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E478 - 0x0400E4A8 +-const Gfx mario_metal_right_hand_closed[] = { +- gsSPDisplayList(mario_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E4A8 +-static const Vtx mario_left_thigh_dl_vertex_group1[] = { +- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, +- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, +- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, +- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, +- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, +- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, +- {{{ 116, 10, 8}, 0, { 0, 0}, {0x7e, 0x09, 0x01, 0x00}}}, +- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, +- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, +- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, +- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, +- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, +- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, +- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, +- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, +-}; +- +-// 0x0400E5A8 +-static const Vtx mario_left_thigh_dl_vertex_group2[] = { +- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, +- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, +- {{{ 21, -54, 8}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0x00}}}, +- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, +- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, +- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, +- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, +- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, +- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, +- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, +- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, +- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, +- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, +- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, +- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, +-}; +- +-// 0x0400E6A8 - 0x0400E7B0 +-const Gfx mario_left_thigh_dl[] = { +- gsSPVertex(mario_left_thigh_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 10, 7, 11, 0x0), +- gsSP2Triangles(11, 7, 6, 0x0, 12, 3, 13, 0x0), +- gsSP2Triangles(13, 4, 14, 0x0, 14, 4, 15, 0x0), +- gsSPVertex(mario_left_thigh_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 0, 2, 6, 0x0), +- gsSP2Triangles( 7, 0, 8, 0x0, 9, 7, 10, 0x0), +- gsSP2Triangles( 3, 9, 10, 0x0, 2, 3, 6, 0x0), +- gsSP2Triangles( 3, 11, 6, 0x0, 10, 11, 3, 0x0), +- gsSP2Triangles( 7, 8, 10, 0x0, 0, 12, 8, 0x0), +- gsSP2Triangles( 6, 12, 0, 0x0, 1, 13, 3, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 14, 4, 0, 0x0), +- gsSP2Triangles( 9, 15, 14, 0x0, 3, 13, 15, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E7B0 - 0x0400E7E0 +-const Gfx mario_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E7E0 - 0x0400E858 +-const Gfx mario_metal_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E858 +-static const Vtx mario_left_leg_shared_dl_vertex[] = { +- {{{ 4, -37, 9}, 0, { 0, 0}, {0xc1, 0x93, 0x00, 0x00}}}, +- {{{ 64, -46, 9}, 0, { 0, 0}, {0x4b, 0x9a, 0x01, 0x00}}}, +- {{{ 65, -11, 54}, 0, { 0, 0}, {0x2d, 0xdb, 0x70, 0x00}}}, +- {{{ 8, 44, 33}, 0, { 0, 0}, {0xcc, 0x5e, 0x43, 0x00}}}, +- {{{ 68, 45, 37}, 0, { 0, 0}, {0x52, 0x4b, 0x3c, 0x00}}}, +- {{{ 69, 45, -18}, 0, { 0, 0}, {0x42, 0x61, 0xd1, 0x00}}}, +- {{{ 9, 44, -16}, 0, { 0, 0}, {0xc4, 0x4d, 0xaf, 0x00}}}, +- {{{ 66, -11, -36}, 0, { 0, 0}, {0x2e, 0xda, 0x91, 0x00}}}, +- {{{ 6, -6, -31}, 0, { 0, 0}, {0xb4, 0xe5, 0x9f, 0x00}}}, +- {{{ 6, -6, 49}, 0, { 0, 0}, {0xb3, 0xe7, 0x60, 0x00}}}, +- {{{ -14, 8, 8}, 0, { 0, 0}, {0x82, 0x06, 0xff, 0x00}}}, +- {{{ 81, 3, 9}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +-}; +- +-// 0x0400E918 - 0x0400E9C8 +-const Gfx mario_left_leg_shared_dl[] = { +- gsSPVertex(mario_left_leg_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles( 3, 10, 9, 0x0, 5, 11, 7, 0x0), +- gsSP2Triangles( 7, 11, 1, 0x0, 1, 11, 2, 0x0), +- gsSP2Triangles( 2, 11, 4, 0x0, 4, 11, 5, 0x0), +- gsSP2Triangles( 9, 10, 0, 0x0, 0, 10, 8, 0x0), +- gsSP2Triangles( 8, 10, 6, 0x0, 6, 10, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400E9C8 +-static const Vtx mario_left_foot_shared_dl_vertex_group1[] = { +- {{{ 110, 9, 35}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 110, 8, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -39, 64, -8}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -41, 65, 26}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, +- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, +- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, +- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, +-}; +- +-// 0x0400EAC8 +-static const Vtx mario_left_foot_shared_dl_vertex_group2[] = { +- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, +- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, +- {{{ 110, 8, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +- {{{ 80, -31, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, +- {{{ 110, 9, 35}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, +- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, +- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, +- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, +- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, +- {{{ -41, 65, 26}, 0, { 0, 0}, {0x90, 0x17, 0x35, 0x00}}}, +- {{{ -39, 64, -8}, 0, { 0, 0}, {0x93, 0x16, 0xc4, 0x00}}}, +- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, +- {{{ -54, 15, 8}, 0, { 0, 0}, {0x88, 0xd8, 0xfd, 0x00}}}, +- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, +- {{{ 27, -35, 11}, 0, { 0, 0}, {0xdb, 0x87, 0xfc, 0x00}}}, +-}; +- +-// 0x0400EBB8 - 0x0400ECA0 +-const Gfx mario_left_foot_shared_dl[] = { +- gsSPVertex(mario_left_foot_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(14, 8, 10, 0x0, 11, 13, 15, 0x0), +- gsSPVertex(mario_left_foot_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 2, 3, 0, 0x0, 4, 5, 6, 0x0), +- gsSP2Triangles( 6, 3, 4, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), +- gsSP2Triangles(12, 9, 10, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles(14, 0, 3, 0x0, 11, 0, 14, 0x0), +- gsSP2Triangles( 3, 6, 14, 0x0, 14, 6, 7, 0x0), +- gsSP2Triangles(14, 7, 12, 0x0, 12, 11, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400ECA0 - 0x0400ECC0 +-const Gfx mario_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400ECC0 +-static const Vtx mario_right_thigh_shared_dl_vertex_group1[] = { +- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, +- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, +- {{{ 22, -54, -9}, 0, { 0, 0}, {0xf2, 0x82, 0xfd, 0x00}}}, +- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, +- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, +- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, +- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, +- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, +- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, +- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, +- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, +- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, +- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, +- {{{ 116, 11, -9}, 0, { 0, 0}, {0x7e, 0x0b, 0xfe, 0x00}}}, +- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, +-}; +- +-// 0x0400EDC0 +-static const Vtx mario_right_thigh_shared_dl_vertex_group2[] = { +- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, +- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 0, -14, 31}, 0, { 0, 0}, {0xa0, 0xdf, 0x4b, 0x00}}}, +- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, +- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, +- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, +- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, +- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, +- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, +- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, +- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, +- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, +- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, +- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, +- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, +-}; +- +-// 0x0400EEB0 - 0x0400EFB8 +-const Gfx mario_right_thigh_shared_dl[] = { +- gsSPVertex(mario_right_thigh_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 0, 2, 7, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 1, 8, 2, 0x0, 2, 8, 7, 0x0), +- gsSP2Triangles( 7, 11, 5, 0x0, 5, 11, 4, 0x0), +- gsSP2Triangles( 4, 12, 1, 0x0, 13, 14, 0, 0x0), +- gsSP2Triangles( 0, 14, 15, 0x0, 15, 14, 3, 0x0), +- gsSP2Triangles( 3, 14, 6, 0x0, 6, 14, 13, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 11, 9, 12, 0x0), +- gsSPVertex(mario_right_thigh_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 6, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 3, 8, 7, 0x0), +- gsSP2Triangles( 4, 2, 3, 0x0, 7, 9, 10, 0x0), +- gsSP2Triangles(11, 9, 7, 0x0, 12, 11, 13, 0x0), +- gsSP2Triangles( 4, 14, 12, 0x0, 10, 14, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400EFB8 - 0x0400EFD8 +-const Gfx mario_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400EFD8 +-static const Vtx mario_right_leg_shared_dl_vertex_group1[] = { +- {{{ 63, -45, -12}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xfc, 0x22, 0x7a, 0x00}}}, +- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0xf7, 0x27, 0x88, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 63, -45, -12}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, +- {{{ -13, 10, -9}, 0, { 0, 0}, {0x82, 0x08, 0x02, 0x00}}}, +- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, +-}; +- +-// 0x0400F0D8 +-static const Vtx mario_right_leg_shared_dl_vertex_group2[] = { +- {{{ 65, -9, -56}, 0, { 0, 0}, {0x75, 0xee, 0xd5, 0x00}}}, +- {{{ 83, 4, -10}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 63, -45, -12}, 0, { 0, 0}, {0x75, 0xd1, 0xfd, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0x77, 0xec, 0x26, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0x7a, 0x18, 0x17, 0x00}}}, +- {{{ 69, 46, -37}, 0, { 0, 0}, {0x79, 0x19, 0xe6, 0x00}}}, +- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, +- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, +- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, +- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, +- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, +- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, +- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, +- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, +-}; +- +-// 0x0400F1D8 - 0x0400F290 +-const Gfx mario_right_leg_shared_dl[] = { +- gsSPVertex(mario_right_leg_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 8, 0x0), +- gsSP2Triangles(11, 12, 2, 0x0, 13, 14, 2, 0x0), +- gsSP2Triangles( 2, 14, 15, 0x0, 15, 14, 8, 0x0), +- gsSP2Triangles( 8, 14, 5, 0x0, 5, 14, 13, 0x0), +- gsSPVertex(mario_right_leg_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 7, 10, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(11, 13, 14, 0x0, 15, 13, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F290 +-static const Vtx mario_right_foot_dl_vertex_group1[] = { +- {{{ 27, -35, -11}, 0, { 0, 0}, {0xdc, 0x87, 0x06, 0x00}}}, +- {{{ -36, 11, 19}, 0, { 0, 0}, {0xb5, 0xd3, 0x5b, 0x00}}}, +- {{{ -54, 14, -10}, 0, { 0, 0}, {0x89, 0xd6, 0x03, 0x00}}}, +- {{{ -34, 11, -46}, 0, { 0, 0}, {0xb4, 0xd0, 0xa8, 0x00}}}, +- {{{ 43, -18, -55}, 0, { 0, 0}, {0x0a, 0xb2, 0x9d, 0x00}}}, +- {{{ 80, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, +- {{{ 44, -11, 32}, 0, { 0, 0}, {0x01, 0xb8, 0x68, 0x00}}}, +- {{{ -42, 64, -29}, 0, { 0, 0}, {0x90, 0x14, 0xc9, 0x00}}}, +- {{{ -40, 63, 5}, 0, { 0, 0}, {0x92, 0x15, 0x3b, 0x00}}}, +- {{{ -14, 54, 29}, 0, { 0, 0}, {0xd5, 0xfe, 0x77, 0x00}}}, +- {{{ -11, 53, -56}, 0, { 0, 0}, {0xda, 0xfe, 0x87, 0x00}}}, +- {{{ 110, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, +- {{{ 78, 22, -61}, 0, { 0, 0}, {0x17, 0xd9, 0x8a, 0x00}}}, +- {{{ 109, 11, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, +- {{{ 75, 23, 40}, 0, { 0, 0}, {0x0b, 0xda, 0x78, 0x00}}}, +-}; +- +-// 0x0400F380 +-static const Vtx mario_right_foot_dl_vertex_group2[] = { +- {{{ -42, 64, -29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -40, 63, 5}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -11, 53, -56}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, 29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 78, 22, -61}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 75, 23, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 110, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 109, 11, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x0400F400 - 0x0400F4E8 +-const Gfx mario_right_foot_dl[] = { +- gsSPVertex(mario_right_foot_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), +- gsSP2Triangles( 0, 6, 1, 0x0, 5, 6, 0, 0x0), +- gsSP2Triangles( 3, 2, 7, 0x0, 8, 7, 2, 0x0), +- gsSP2Triangles( 1, 9, 8, 0x0, 2, 1, 8, 0x0), +- gsSP2Triangles( 7, 10, 3, 0x0, 11, 5, 4, 0x0), +- gsSP2Triangles( 4, 12, 11, 0x0, 6, 5, 13, 0x0), +- gsSP2Triangles(11, 13, 5, 0x0, 13, 14, 6, 0x0), +- gsSP2Triangles(14, 9, 6, 0x0, 10, 4, 3, 0x0), +- gsSP2Triangles( 9, 1, 6, 0x0, 10, 12, 4, 0x0), +- gsSPVertex(mario_right_foot_dl_vertex_group2, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 3, 4, 2, 0x0, 3, 5, 4, 0x0), +- gsSP2Triangles( 5, 6, 4, 0x0, 5, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F4E8 - 0x0400F528 +-const Gfx mario_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F528 - 0x0400F568 +-const Gfx mario_metal_right_foot[] = { +- gsSPDisplayList(mario_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400F568 +-static const Vtx mario_yellow_button_dl_vertex[] = { +- {{{ 9, 89, 41}, 0, { 180, 962}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 682, 966}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 34, 106}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 28, 85, 30}, 0, { -60, 572}, {0x2c, 0x76, 0x08, 0xff}}}, +- {{{ 17, 66, 76}, 0, { 966, 590}, {0x19, 0x58, 0x57, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 902, 252}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 48, 64, 59}, 0, { 548, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, +- {{{ 9, 89, -40}, 0, { 776, 920}, {0x10, 0x7b, 0xe7, 0xff}}}, +- {{{ 28, 85, -29}, 0, { 990, 512}, {0x2d, 0x75, 0xf2, 0xff}}}, +- {{{ 47, 75, -34}, 0, { 850, 72}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 264, 972}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ 48, 64, -58}, 0, { 312, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, +- {{{ 32, 62, -73}, 0, { -24, 310}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 17, 66, -75}, 0, { -58, 642}, {0x17, 0x58, 0xa8, 0xff}}}, +-}; +- +-// 0x0400F648 +-static const Vtx mario_tshirt_shared_dl_vertex_group1[] = { +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, +- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, +- {{{ 46, -34, -83}, 0, { 0, 0}, {0x24, 0xc8, 0x95, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, +-}; +- +-// 0x0400F748 +-static const Vtx mario_tshirt_shared_dl_vertex_group2[] = { +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, +- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, +- {{{ 47, 3, 89}, 0, { 0, 0}, {0x30, 0x08, 0x75, 0xff}}}, +- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, +- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +-}; +- +-// 0x0400F828 +-static const Vtx mario_tshirt_shared_dl_vertex_group3[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +-}; +- +-// 0x0400F878 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group1[] = { +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +- {{{ 28, 85, 30}, 0, { 0, 0}, {0x2c, 0x76, 0x08, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 28, 85, -29}, 0, { 0, 0}, {0x2d, 0x75, 0xf2, 0xff}}}, +- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ 9, 89, -40}, 0, { 0, 0}, {0x10, 0x7b, 0xe7, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ -15, 87, -35}, 0, { 0, 0}, {0xea, 0x76, 0xda, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, +- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +-}; +- +-// 0x0400F968 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group2[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 48, 64, -58}, 0, { 0, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, +- {{{ 48, 64, 59}, 0, { 0, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, +- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, +-}; +- +-// 0x0400FA68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group3[] = { +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ -27, -25, -86}, 0, { 0, 0}, {0xcb, 0xd5, 0x96, 0xff}}}, +- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, +- {{{ -29, -58, -59}, 0, { 0, 0}, {0xc9, 0x9a, 0xcf, 0xff}}}, +- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +-}; +- +-// 0x0400FB68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group4[] = { +- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, +- {{{ -29, -58, 59}, 0, { 0, 0}, {0xc8, 0x99, 0x30, 0xff}}}, +- {{{ -27, -25, 87}, 0, { 0, 0}, {0xcb, 0xd3, 0x69, 0xff}}}, +- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, +- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +-}; +- +-// 0x0400FC68 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group5[] = { +- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, +- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, +- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, +- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, +- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, +- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, +- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, +- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, +-}; +- +-// 0x0400FD48 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group6[] = { +- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, +- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, +- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, +- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, +- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, +- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, +- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, +- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, +- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, +- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, +- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, +- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, +-}; +- +-// 0x0400FE38 +-static const Vtx mario_pants_overalls_shared_dl_vertex_group7[] = { +- {{{ 17, 66, -75}, 0, { 0, 0}, {0x17, 0x58, 0xa8, 0xff}}}, +- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, +- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, +- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, +- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, +- {{{ 17, 66, 76}, 0, { 0, 0}, {0x19, 0x58, 0x57, 0xff}}}, +- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, +- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, +- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, +- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, +- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, +- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, +- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, +- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, +- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, +-}; +- +-// 0x0400FF28 - 0x0400FF88 +-const Gfx mario_yellow_button_dl[] = { +- gsSPVertex(mario_yellow_button_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 4, 2, 0x0, 5, 6, 2, 0x0), +- gsSP2Triangles( 4, 5, 2, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 9, 11, 12, 0x0), +- gsSP2Triangles(12, 13, 9, 0x0, 13, 10, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0400FF88 - 0x04010260 +-const Gfx mario_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 1, 5, 0x0, 1, 3, 5, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 9, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 10, 0x0, 10, 11, 7, 0x0), +- gsSP2Triangles( 9, 7, 11, 0x0, 12, 6, 13, 0x0), +- gsSP2Triangles( 9, 13, 6, 0x0, 6, 12, 14, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 11, 8, 7, 0x0), +- gsSP2Triangles(12, 8, 11, 0x0, 13, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 14, 0x0, 2, 15, 13, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 3, 8, 6, 0x0), +- gsSP2Triangles( 5, 9, 3, 0x0, 8, 3, 9, 0x0), +- gsSP2Triangles( 6, 8, 10, 0x0, 11, 10, 8, 0x0), +- gsSP2Triangles( 9, 11, 8, 0x0, 6, 12, 7, 0x0), +- gsSP2Triangles(12, 6, 10, 0x0, 7, 12, 13, 0x0), +- gsSP2Triangles(14, 5, 15, 0x0, 14, 9, 5, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 1, 4, 3, 0x0, 5, 4, 6, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 2, 3, 7, 0x0), +- gsSP2Triangles( 7, 3, 5, 0x0, 8, 2, 7, 0x0), +- gsSP2Triangles( 2, 8, 0, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 11, 10, 0x0, 11, 7, 13, 0x0), +- gsSP1Triangle(14, 15, 11, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group5, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), +- gsSP2Triangles( 2, 5, 0, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 4, 3, 8, 0x0, 9, 7, 4, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 11, 6, 7, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), +- gsSP1Triangle( 7, 9, 10, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0), +- gsSP2Triangles(14, 12, 13, 0x0, 11, 10, 9, 0x0), +- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 9, 8, 5, 0x0), +- gsSP2Triangles( 5, 8, 6, 0x0, 11, 1, 0, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 6, 14, 4, 0x0), +- gsSP1Triangle(11, 0, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010260 - 0x04010348 +-const Gfx mario_tshirt_shared_dl[] = { +- gsSPVertex(mario_tshirt_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 6, 8, 10, 0x0, 11, 8, 12, 0x0), +- gsSP2Triangles(12, 8, 7, 0x0, 8, 11, 10, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_tshirt_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), +- gsSP2Triangles( 6, 2, 3, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 9, 10, 0x0, 11, 10, 9, 0x0), +- gsSP2Triangles(12, 3, 4, 0x0, 13, 3, 12, 0x0), +- gsSP1Triangle( 6, 3, 13, 0x0), +- gsSPVertex(mario_tshirt_shared_dl_vertex_group3, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP1Triangle( 1, 4, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010348 - 0x04010370 +-const Gfx mario_torso_dl[] = { +- gsSPDisplayList(mario_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010370 - 0x040103F0 +-const Gfx mario_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040103F0 - 0x04010410 +-const Gfx mario_metal_torso_shared_dl[] = { +- gsSPDisplayList(mario_yellow_button_dl), +- gsSPDisplayList(mario_pants_overalls_shared_dl), +- gsSPDisplayList(mario_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04010410 +-static const Vtx mario_m_logo_dl_vertex[] = { +- {{{ 195, 93, 32}, 0, { 744, 732}, {0x51, 0x54, 0x30, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1250, 1066}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 1032, 152}, {0x39, 0x4a, 0x55, 0xff}}}, +- {{{ 272, 85, 0}, 0, { 472, -16}, {0x5f, 0x54, 0x00, 0xff}}}, +- {{{ 252, 62, -69}, 0, { -78, 158}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 232, 736}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -258, 1076}, {0x03, 0x46, 0x97, 0xff}}}, +-}; +- +-// 0x04010480 +-static const Vtx mario_eyes_cap_on_dl_vertex[] = { +- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 106, 130}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 842, 112}, {0xc6, 0x6d, 0x19, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -404, 342}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x04, 0x46, 0x69, 0xff}}}, +-}; +- +-// 0x04010540 +-static const Vtx mario_hair_sideburn_cap_on_dl_vertex[] = { +- {{{ 120, -12, -109}, 0, { 916, 184}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 90, -58}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 922, 122}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 22, -68}, {0x04, 0x46, 0x69, 0xff}}}, +-}; +- +-// 0x04010600 +-static const Vtx mario_mustache_cap_on_dl_vertex_group1[] = { +- {{{ 77, 108, 34}, 0, { 342, 368}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 898, -18}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 224, 146}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 888, 564}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 354, 690}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 442, 982}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 70, 924}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 1296, 438}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 892, 1090}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 340, 684}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 394, 998}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 806, 1162}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 50, 900}, {0x95, 0x44, 0x00, 0xff}}}, +-}; +- +-// 0x04010700 +-static const Vtx mario_mustache_cap_on_dl_vertex_group2[] = { +- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 922, -4}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 274, 100}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, +-}; +- +-// 0x04010750 +-static const Vtx mario_face_cap_dl_vertex_group1[] = { +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 122, -139, -48}, 0, { 0, 0}, {0x28, 0x94, 0xcd, 0xff}}}, +- {{{ 131, -56, -123}, 0, { 0, 0}, {0xde, 0xd4, 0x8f, 0xff}}}, +- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 77, -138, -50}, 0, { 0, 0}, {0xbc, 0x9e, 0xd8, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 122, -139, 49}, 0, { 0, 0}, {0x2d, 0x8f, 0x22, 0xff}}}, +- {{{ 77, -138, 51}, 0, { 0, 0}, {0xc1, 0xa4, 0x3c, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, +- {{{ 131, -56, 124}, 0, { 0, 0}, {0xdf, 0xd3, 0x71, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +-}; +- +-// 0x04010850 +-static const Vtx mario_face_cap_dl_vertex_group2[] = { +- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, +- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, +- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +-}; +- +-// 0x04010940 +-static const Vtx mario_face_cap_dl_vertex_group3[] = { +- {{{ 195, 93, 32}, 0, { 0, 0}, {0x51, 0x54, 0x30, 0xff}}}, +- {{{ 173, 132, 66}, 0, { 0, 0}, {0xda, 0x5a, 0x50, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0xc6, 0x6d, 0x19, 0xff}}}, +- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, +- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, +- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, +- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, +- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, +- {{{ 272, 85, 0}, 0, { 0, 0}, {0x5f, 0x54, 0x00, 0xff}}}, +- {{{ 182, 155, 0}, 0, { 0, 0}, {0xed, 0x7d, 0x00, 0xff}}}, +- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, +- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, +- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, +-}; +- +-// 0x04010A30 +-static const Vtx mario_face_part_cap_on_dl_vertex_group1[] = { +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +-}; +- +-// 0x04010B20 +-static const Vtx mario_face_part_cap_on_dl_vertex_group2[] = { +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +-}; +- +-// 0x04010C20 +-static const Vtx mario_face_part_cap_on_dl_vertex_group3[] = { +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +-}; +- +-// 0x04010D10 +-static const Vtx mario_face_part_cap_on_dl_vertex_group4[] = { +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +-}; +- +-// 0x04010E10 +-static const Vtx mario_face_part_cap_on_dl_vertex_group5[] = { +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +-}; +- +-// 0x04010F00 +-static const Vtx mario_face_part_cap_on_dl_vertex_group6[] = { +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +-}; +- +-// 0x04011000 +-static const Vtx mario_face_part_cap_on_dl_vertex_group7[] = { +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +-}; +- +-// 0x040110D0 +-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group1[] = { +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +-}; +- +-// 0x040111D0 +-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group2[] = { +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +-}; +- +-// 0x040112B0 - 0x040112E8 +-const Gfx mario_m_logo_dl[] = { +- gsSPVertex(mario_m_logo_dl_vertex, 7, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 2, 3, 0, 0x0, 3, 5, 0, 0x0), +- gsSP1Triangle( 4, 6, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040112E8 - 0x04011350 +-const Gfx mario_eyes_cap_on_dl[] = { +- gsSPVertex(mario_eyes_cap_on_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 0, 4, 0x0, 6, 3, 5, 0x0), +- gsSP2Triangles( 3, 1, 0, 0x0, 4, 0, 7, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 2, 9, 10, 0x0), +- gsSP2Triangles(10, 7, 2, 0x0, 11, 7, 10, 0x0), +- gsSP1Triangle( 7, 0, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011350 - 0x040113A0 +-const Gfx mario_hair_sideburn_cap_on_dl[] = { +- gsSPVertex(mario_hair_sideburn_cap_on_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles( 9, 10, 6, 0x0, 11, 6, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040113A0 - 0x04011438 +-const Gfx mario_mustache_cap_on_dl[] = { +- gsSPVertex(mario_mustache_cap_on_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 5, 4, 6, 0x0, 7, 3, 8, 0x0), +- gsSP2Triangles( 8, 3, 5, 0x0, 3, 7, 1, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 10, 13, 0x0), +- gsSP2Triangles(11, 10, 12, 0x0, 10, 9, 14, 0x0), +- gsSP1Triangle(15, 9, 11, 0x0), +- gsSPVertex(mario_mustache_cap_on_dl_vertex_group2, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP1Triangle( 2, 4, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011438 - 0x040116F8 +-const Gfx mario_face_part_cap_on_dl[] = { +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 2, 0x0, 1, 5, 3, 0x0), +- gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 4, 7, 8, 0x0), +- gsSP2Triangles( 9, 4, 8, 0x0, 10, 6, 5, 0x0), +- gsSP2Triangles(10, 5, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 5, 6, 8, 0x0), +- gsSP2Triangles( 3, 8, 7, 0x0, 9, 3, 7, 0x0), +- gsSP2Triangles( 3, 9, 4, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles( 0, 10, 1, 0x0, 10, 0, 11, 0x0), +- gsSP2Triangles(11, 0, 2, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 3, 0, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 9, 8, 0x0), +- gsSP2Triangles(12, 13, 8, 0x0, 8, 13, 11, 0x0), +- gsSP1Triangle( 9, 11, 14, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), +- gsSP2Triangles( 5, 2, 4, 0x0, 2, 6, 3, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 3, 0x0), +- gsSP2Triangles( 9, 4, 3, 0x0, 7, 10, 3, 0x0), +- gsSP2Triangles( 3, 10, 8, 0x0, 11, 4, 9, 0x0), +- gsSP2Triangles(12, 11, 9, 0x0, 13, 9, 8, 0x0), +- gsSP2Triangles( 9, 13, 12, 0x0, 4, 11, 5, 0x0), +- gsSP1Triangle(14, 15, 11, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group5, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 1, 5, 6, 0x0, 1, 3, 5, 0x0), +- gsSP2Triangles( 2, 1, 6, 0x0, 2, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 6, 5, 11, 0x0), +- gsSP2Triangles(12, 13, 8, 0x0, 10, 12, 8, 0x0), +- gsSP1Triangle(14, 8, 13, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 6, 5, 8, 0x0), +- gsSP2Triangles( 5, 7, 3, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 6, 12, 7, 0x0, 13, 10, 9, 0x0), +- gsSP2Triangles(14, 13, 9, 0x0, 15, 10, 13, 0x0), +- gsSPVertex(mario_face_part_cap_on_dl_vertex_group7, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 1, 5, 3, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles( 7, 9, 3, 0x0, 5, 7, 3, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 6, 10, 0x0), +- gsSP1Triangle(12, 8, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040116F8 - 0x04011870 +-const Gfx mario_face_cap_dl[] = { +- gsSPVertex(mario_face_cap_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 4, 2, 5, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 6, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 5, 2, 7, 0x0, 6, 1, 8, 0x0), +- gsSP2Triangles( 8, 1, 0, 0x0, 6, 8, 9, 0x0), +- gsSP2Triangles(10, 7, 6, 0x0, 9, 10, 6, 0x0), +- gsSP2Triangles(11, 10, 9, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles(11, 8, 12, 0x0, 0, 12, 8, 0x0), +- gsSP2Triangles(13, 10, 11, 0x0, 11, 12, 14, 0x0), +- gsSP2Triangles(15, 11, 14, 0x0, 13, 11, 15, 0x0), +- gsSPVertex(mario_face_cap_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 4, 5, 0, 0x0, 0, 6, 1, 0x0), +- gsSP2Triangles( 7, 1, 8, 0x0, 8, 1, 6, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 9, 12, 10, 0x0), +- gsSP2Triangles(12, 9, 13, 0x0, 13, 9, 14, 0x0), +- gsSPVertex(mario_face_cap_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSP2Triangles( 8, 9, 5, 0x0, 0, 10, 1, 0x0), +- gsSP2Triangles( 1, 10, 3, 0x0, 11, 10, 0, 0x0), +- gsSP2Triangles(12, 3, 10, 0x0, 12, 10, 13, 0x0), +- gsSP2Triangles(13, 10, 11, 0x0, 5, 9, 7, 0x0), +- gsSP1Triangle( 7, 9, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011870 - 0x04011960 +-const Gfx mario_face_back_hair_cap_on_dl[] = { +- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 5, 8, 6, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 7, 3, 5, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 0, 6, 8, 0x0, 3, 7, 10, 0x0), +- gsSP2Triangles( 1, 11, 12, 0x0, 12, 13, 14, 0x0), +- gsSP2Triangles(11, 13, 12, 0x0, 1, 12, 2, 0x0), +- gsSP2Triangles(14, 2, 12, 0x0, 15, 14, 13, 0x0), +- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 2, 1, 11, 0x0, 2, 11, 7, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), +- gsSP1Triangle( 8, 12, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011960 - 0x040119A0 +-const Gfx mario_face_cap_on_dl[] = { +- gsSPDisplayList(mario_face_part_cap_on_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_face_cap_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040119A0 - 0x04011A90 +-const Gfx mario_cap_on_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011A90 - 0x04011B80 +-const Gfx mario_cap_on_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011B80 - 0x04011C70 +-const Gfx mario_cap_on_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011C70 - 0x04011D60 +-const Gfx mario_cap_on_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011D60 - 0x04011E50 +-const Gfx mario_cap_on_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011E50 - 0x04011F40 +-const Gfx mario_cap_on_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04011F40 - 0x04012030 +-const Gfx mario_cap_on_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04012030 - 0x04012120 +-const Gfx mario_cap_on_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04012120 - 0x04012160 +-const Gfx mario_metal_cap_on_shared_dl[] = { +- gsSPDisplayList(mario_m_logo_dl), +- gsSPDisplayList(mario_eyes_cap_on_dl), +- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), +- gsSPDisplayList(mario_mustache_cap_on_dl), +- gsSPDisplayList(mario_face_part_cap_on_dl), +- gsSPDisplayList(mario_face_cap_dl), +- gsSPDisplayList(mario_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// Unreferenced light group +-UNUSED static const Lights1 mario_lights_unused1 = gdSPDefLights1( +- 0x3f, 0x30, 0x1e, +- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +-); +- +-// Unreferenced light group +-UNUSED static const Lights1 mario_lights_unused2 = gdSPDefLights1( +- 0x1c, 0x01, 0x00, +- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +-); +- +-// 0x04012190 +-static const Vtx mario_eyes_cap_off_dl_vertex[] = { +- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 842, 112}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 106, 130}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 153, 33, -94}, 0, { -404, 342}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, +-}; +- +-// 0x04012250 +-static const Vtx mario_hair_sideburn_cap_off_dl_vertex[] = { +- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 22, -68}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 922, 122}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 916, 184}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 90, -58}, {0xfe, 0x36, 0x8e, 0xff}}}, +-}; +- +-// 0x04012310 +-static const Vtx mario_mustache_cap_off_dl_vertex_group1[] = { +- {{{ 92, 88, -83}, 0, { 992, -10}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 360, 296}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 298, 20}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 1272, 592}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 948, -8}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 330, 316}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 848, 630}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 248, 50}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 52, 111, 31}, 0, { 292, 670}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 1276, 566}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 768, 1210}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 336, 1006}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 41, 109, 0}, 0, { -30, 876}, {0x95, 0x44, 0x00, 0xff}}}, +-}; +- +-// 0x04012410 +-static const Vtx mario_mustache_cap_off_dl_vertex_group2[] = { +- {{{ 41, 109, 0}, 0, { -38, 852}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 310, 1002}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, +-}; +- +-// 0x04012460 +-static const Vtx mario_face_part_cap_off_dl_vertex_group1[] = { +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, +- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, +- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +-}; +- +-// 0x04012550 +-static const Vtx mario_face_part_cap_off_dl_vertex_group2[] = { +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +-}; +- +-// 0x04012650 +-static const Vtx mario_face_part_cap_off_dl_vertex_group3[] = { +- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, +- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +-}; +- +-// 0x04012740 +-static const Vtx mario_face_part_cap_off_dl_vertex_group4[] = { +- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, +- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +-}; +- +-// 0x04012830 +-static const Vtx mario_face_part_cap_off_dl_vertex_group5[] = { +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, +- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, +- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +-}; +- +-// 0x04012930 +-static const Vtx mario_face_part_cap_off_dl_vertex_group6[] = { +- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, +- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, +- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, +- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, +- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +-}; +- +-// 0x04012A30 +-static const Vtx mario_face_part_cap_off_dl_vertex_group7[] = { +- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, +- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, +- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +-}; +- +-// 0x04012B30 +-static const Vtx mario_face_part_cap_off_dl_vertex_group8[] = { +- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, +- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, +- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, +- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, +- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, +- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, +- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, +- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, +- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, +-}; +- +-// 0x04012BC0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group1[] = { +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 200, 70, -97}, 0, { 0, 0}, {0x07, 0x48, 0x99, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, +- {{{ 200, 75, 84}, 0, { 0, 0}, {0x10, 0x52, 0x5f, 0xff}}}, +- {{{ 151, 72, 70}, 0, { 0, 0}, {0xe4, 0x5c, 0x51, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 151, 72, -68}, 0, { 0, 0}, {0xd6, 0x5b, 0xb3, 0xff}}}, +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, +-}; +- +-// 0x04012CC0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group2[] = { +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 227, -14, 59}, 0, { 0, 0}, {0x72, 0xec, 0x32, 0xff}}}, +- {{{ 241, -34, 0}, 0, { 0, 0}, {0x7a, 0xe0, 0x00, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, +- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, +- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, +- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, +-}; +- +-// 0x04012DB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group3[] = { +- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, +- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, +- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, +- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, +- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, +- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +-}; +- +-// 0x04012EB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group4[] = { +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, +- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, +- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, +- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, +- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, +- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, +- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, +- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, +- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, +- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +-}; +- +-// 0x04012FB0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group5[] = { +- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, +- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, +- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, +- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, +- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, +- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, +- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +-}; +- +-// 0x040130B0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group6[] = { +- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, +- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, +- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +-}; +- +-// 0x040131B0 +-static const Vtx mario_face_hair_cap_off_dl_vertex_group7[] = { +- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, +- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, +- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, +- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, +- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, +- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, +- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, +- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, +- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, +- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, +- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, +- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, +- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, +-}; +- +-// 0x04013280 +-static const Vtx mario_face_part_cap_off_dl_vertex_group9[] = { +- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, +- {{{ 48, 94, 76}, 0, { 0, 0}, {0xd7, 0x60, 0x47, 0xff}}}, +- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, +-}; +- +-// 0x040132B0 - 0x04013318 +-const Gfx mario_eyes_cap_off_dl[] = { +- gsSPVertex(mario_eyes_cap_off_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 7, 0x0, 8, 6, 4, 0x0), +- gsSP2Triangles( 5, 4, 7, 0x0, 7, 9, 5, 0x0), +- gsSP2Triangles( 2, 8, 10, 0x0, 1, 6, 8, 0x0), +- gsSP2Triangles( 1, 8, 2, 0x0, 6, 11, 7, 0x0), +- gsSP1Triangle( 1, 11, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013318 - 0x040133A8 +-const Gfx mario_mustache_cap_off_dl[] = { +- gsSPVertex(mario_mustache_cap_off_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 3, 5, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 7, 6, 9, 0x0), +- gsSP2Triangles( 7, 10, 8, 0x0, 8, 11, 6, 0x0), +- gsSP2Triangles(12, 8, 13, 0x0, 13, 8, 10, 0x0), +- gsSP2Triangles(14, 3, 4, 0x0, 13, 10, 15, 0x0), +- gsSPVertex(mario_mustache_cap_off_dl_vertex_group2, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP1Triangle( 2, 3, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040133A8 - 0x040133F8 +-const Gfx mario_hair_sideburn_cap_off_dl[] = { +- gsSPVertex(mario_hair_sideburn_cap_off_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 2, 5, 0x0, 1, 5, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 10, 8, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040133F8 - 0x040136D0 +-const Gfx mario_face_part_cap_off_dl[] = { +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 3, 6, 7, 0x0), +- gsSP2Triangles( 4, 8, 2, 0x0, 8, 4, 9, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 6, 5, 10, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 14, 13, 12, 0x0), +- gsSP1Triangle(13, 14, 0, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), +- gsSP2Triangles(10, 1, 11, 0x0, 1, 12, 11, 0x0), +- gsSP2Triangles(12, 1, 0, 0x0, 13, 11, 14, 0x0), +- gsSP2Triangles(12, 14, 11, 0x0, 11, 13, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), +- gsSP2Triangles( 8, 7, 5, 0x0, 4, 8, 5, 0x0), +- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group4, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 3, 9, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(13, 11, 10, 0x0, 11, 13, 14, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 5, 0x0, 8, 7, 6, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 8, 6, 9, 0x0), +- gsSP2Triangles( 9, 11, 10, 0x0, 9, 12, 11, 0x0), +- gsSP2Triangles( 0, 13, 1, 0x0, 13, 14, 1, 0x0), +- gsSP1Triangle( 1, 14, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), +- gsSP2Triangles( 2, 4, 0, 0x0, 1, 0, 5, 0x0), +- gsSP2Triangles( 1, 6, 7, 0x0, 1, 5, 6, 0x0), +- gsSP2Triangles( 7, 8, 1, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles( 9, 3, 10, 0x0, 4, 11, 0, 0x0), +- gsSP2Triangles(11, 4, 12, 0x0, 4, 9, 12, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 0, 11, 15, 0x0), +- gsSP2Triangles( 5, 0, 15, 0x0, 14, 9, 10, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group7, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 8, 5, 4, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 2, 12, 0, 0x0, 13, 4, 6, 0x0), +- gsSP2Triangles( 6, 14, 15, 0x0, 6, 7, 14, 0x0), +- gsSP1Triangle(13, 6, 15, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group8, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 6, 5, 0x0), +- gsSP1Triangle( 8, 5, 4, 0x0), +- gsSPVertex(mario_face_part_cap_off_dl_vertex_group9, 3, 0), +- gsSP1Triangle( 0, 1, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040136D0 - 0x040139C0 +-const Gfx mario_face_hair_cap_off_dl[] = { +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0), +- gsSP2Triangles( 8, 4, 9, 0x0, 7, 10, 4, 0x0), +- gsSP2Triangles( 4, 10, 9, 0x0, 8, 5, 4, 0x0), +- gsSP2Triangles(11, 1, 12, 0x0, 1, 0, 12, 0x0), +- gsSP2Triangles( 1, 13, 2, 0x0, 1, 11, 14, 0x0), +- gsSP2Triangles(13, 1, 14, 0x0, 15, 2, 13, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 3, 7, 6, 0x0), +- gsSP2Triangles( 8, 7, 3, 0x0, 5, 8, 3, 0x0), +- gsSP2Triangles( 9, 10, 4, 0x0, 11, 4, 6, 0x0), +- gsSP2Triangles(11, 9, 4, 0x0, 10, 5, 4, 0x0), +- gsSP2Triangles(10, 12, 5, 0x0, 5, 13, 14, 0x0), +- gsSP2Triangles( 8, 5, 14, 0x0, 9, 2, 10, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 1, 4, 5, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 10, 7, 9, 0x0), +- gsSP2Triangles( 8, 7, 11, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(14, 11, 13, 0x0, 14, 8, 11, 0x0), +- gsSP1Triangle(15, 13, 12, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 8, 3, 5, 0x0, 9, 7, 5, 0x0), +- gsSP2Triangles(10, 6, 4, 0x0, 4, 3, 11, 0x0), +- gsSP2Triangles( 3, 12, 11, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 4, 3, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles( 9, 6, 3, 0x0, 6, 9, 8, 0x0), +- gsSP2Triangles(10, 11, 0, 0x0, 12, 0, 2, 0x0), +- gsSP2Triangles(10, 0, 12, 0x0, 10, 5, 11, 0x0), +- gsSP2Triangles(13, 14, 15, 0x0, 13, 3, 10, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group6, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 0, 2, 0x0, 5, 4, 0, 0x0), +- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 7, 0x0), +- gsSP2Triangles( 6, 10, 7, 0x0, 8, 7, 10, 0x0), +- gsSP2Triangles( 3, 11, 12, 0x0, 13, 14, 3, 0x0), +- gsSP2Triangles(12, 6, 3, 0x0, 6, 15, 10, 0x0), +- gsSP1Triangle(12, 15, 6, 0x0), +- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group7, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), +- gsSP2Triangles( 6, 5, 8, 0x0, 9, 8, 5, 0x0), +- gsSP2Triangles( 5, 7, 9, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(11, 10, 3, 0x0, 12, 2, 10, 0x0), +- gsSP2Triangles( 2, 1, 10, 0x0, 10, 1, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040139C0 - 0x040139E8 +-const Gfx mario_face_cap_off_dl[] = { +- gsSPDisplayList(mario_face_part_cap_off_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040139E8 - 0x04013AB8 +-const Gfx mario_cap_off_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013AB8 - 0x04013B88 +-const Gfx mario_cap_off_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013B88 - 0x04013C58 +-const Gfx mario_cap_off_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013C58 - 0x04013D28 +-const Gfx mario_cap_off_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013D28 - 0x04013DF8 +-const Gfx mario_cap_off_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013DF8 - 0x04013EC8 +-const Gfx mario_cap_off_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013EC8 - 0x04013F98 +-const Gfx mario_cap_off_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04013F98 - 0x04014068 +-const Gfx mario_cap_off_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014068 - 0x04014098 +-const Gfx mario_metal_cap_off_shared_dl[] = { +- gsSPDisplayList(mario_eyes_cap_off_dl), +- gsSPDisplayList(mario_mustache_cap_off_dl), +- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), +- gsSPDisplayList(mario_face_part_cap_off_dl), +- gsSPDisplayList(mario_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014098 +-static const Vtx mario_medium_poly_butt_dl_vertex_group1[] = { +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +-}; +- +-// 0x04014198 +-static const Vtx mario_medium_poly_butt_dl_vertex_group2[] = { +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +-}; +- +-// 0x04014298 +-static const Vtx mario_medium_poly_butt_dl_vertex_group3[] = { +- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, +-}; +- +-// 0x04014398 +-static const Vtx mario_medium_poly_butt_dl_vertex_group4[] = { +- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, +- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, +- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, +- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, +- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, +- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, +- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, +- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, +- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, +- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, +- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, +- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, +-}; +- +-// 0x04014498 +-static const Vtx mario_medium_poly_butt_dl_vertex_group5[] = { +- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, +- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, +- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, +- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, +-}; +- +-// 0x040144D8 - 0x04014638 +-const Gfx mario_medium_poly_butt_dl[] = { +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 6, 0x0), +- gsSP1Triangle( 3, 10, 7, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 7, 5, 4, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 9, 10, 8, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 2, 1, 5, 0x0), +- gsSP1Triangle(14, 15, 0, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 3, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(11, 10, 14, 0x0, 0, 12, 15, 0x0), +- gsSP2Triangles(14, 9, 6, 0x0, 2, 13, 12, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 9, 12, 13, 0x0, 13, 12, 14, 0x0), +- gsSP2Triangles(14, 12, 8, 0x0, 8, 12, 15, 0x0), +- gsSP2Triangles(15, 12, 1, 0x0, 1, 12, 2, 0x0), +- gsSPVertex(mario_medium_poly_butt_dl_vertex_group5, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014638 - 0x04014668 +-const Gfx mario_medium_poly_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014668 - 0x040146E0 +-const Gfx mario_metal_medium_poly_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040146E0 +-static const Vtx mario_medium_poly_left_arm_shared_dl_vertex[] = { +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, +- {{{ 60, -27, -18}, 0, { 0, 0}, {0x3d, 0xc5, 0xa3, 0x00}}}, +- {{{ 60, -18, 26}, 0, { 0, 0}, {0x5c, 0xbe, 0x36, 0x00}}}, +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, +- {{{ 59, 16, -22}, 0, { 0, 0}, {0x5b, 0x4f, 0xda, 0x00}}}, +- {{{ -7, 20, 18}, 0, { 0, 0}, {0x0c, 0x73, 0x32, 0x00}}}, +- {{{ 59, 14, 14}, 0, { 0, 0}, {0x38, 0x4b, 0x55, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x0b, 0x2a, 0x77, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x0a, 0x7e, 0x04, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, +- {{{ -7, 21, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -6, -32, -22}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -6, -21, 33}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -7, 20, 18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x040147D0 - 0x04014840 +-const Gfx mario_medium_poly_left_arm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_arm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), +- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), +- gsSP2Triangles( 5, 2, 1, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 14, 11, 0x0, 5, 7, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014840 - 0x04014860 +-const Gfx mario_medium_poly_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014860 +-static const Vtx mario_medium_poly_left_forearm_shared_dl_vertex[] = { +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x05, 0x84, 0x19, 0x00}}}, +- {{{ 53, -26, -17}, 0, { 0, 0}, {0x59, 0xd0, 0xb5, 0x00}}}, +- {{{ 53, -17, 24}, 0, { 0, 0}, {0x3d, 0xab, 0x47, 0x00}}}, +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x04, 0xf3, 0x82, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x04, 0xf4, 0x82, 0x00}}}, +- {{{ 53, 13, -21}, 0, { 0, 0}, {0x3b, 0x64, 0xce, 0x00}}}, +- {{{ -9, 15, 15}, 0, { 0, 0}, {0x07, 0x75, 0x30, 0x00}}}, +- {{{ 53, 13, 12}, 0, { 0, 0}, {0x52, 0x41, 0x47, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x07, 0x2c, 0x76, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x06, 0x7e, 0x02, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x05, 0x84, 0x1a, 0x00}}}, +- {{{ -9, 16, -24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, -29, -18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, -19, 28}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -9, 15, 15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x04014950 - 0x040149C0 +-const Gfx mario_medium_poly_left_forearm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_forearm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), +- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), +- gsSP2Triangles( 1, 7, 2, 0x0, 1, 5, 7, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040149C0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group1[] = { +- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, +- {{{ 12, 1, 26}, 0, { 0, 0}, {0xf1, 0xf7, 0x7d, 0x00}}}, +- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, +- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, +- {{{ 81, 32, 40}, 0, { 0, 0}, {0x48, 0x1f, 0x63, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, +- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +-}; +- +-// 0x04014AC0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group2[] = { +- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, +- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x37, 0xd5, 0x97, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x05, 0x48, 0x98, 0x00}}}, +- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x11, 0x50, 0x60, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x49, 0xd5, 0x5e, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +-}; +- +-// 0x04014BB0 +-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group3[] = { +- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, +- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, +- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, +- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, +- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, +- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, +- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, +- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, +- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, +- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, +- {{{ -5, -5, 34}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ -6, -5, -32}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ 14, -51, -2}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +- {{{ -26, 40, -1}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, +-}; +- +-// 0x04014C90 - 0x04014DC0 +-const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 6, 1, 0, 0x0), +- gsSP2Triangles( 2, 1, 7, 0x0, 7, 1, 6, 0x0), +- gsSP2Triangles( 6, 3, 8, 0x0, 3, 2, 8, 0x0), +- gsSP2Triangles( 0, 9, 10, 0x0, 11, 9, 0, 0x0), +- gsSP2Triangles(10, 12, 13, 0x0, 14, 12, 11, 0x0), +- gsSP2Triangles(11, 12, 9, 0x0, 9, 12, 10, 0x0), +- gsSP1Triangle(15, 11, 0, 0x0), +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 7, 2, 11, 0x0, 3, 12, 13, 0x0), +- gsSP2Triangles( 3, 13, 0, 0x0, 11, 2, 14, 0x0), +- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 2, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 2, 8, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 5, 8, 2, 0x0, 10, 11, 12, 0x0), +- gsSP1Triangle(10, 13, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014DC0 - 0x04014DE0 +-const Gfx mario_medium_poly_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014DE0 +-static const Vtx mario_medium_poly_right_arm_shared_dl_vertex[] = { +- {{{ 60, -28, 22}, 0, { 0, 0}, {0x3b, 0xc7, 0x60, 0x00}}}, +- {{{ 60, -19, -19}, 0, { 0, 0}, {0x5a, 0xbc, 0xc7, 0x00}}}, +- {{{ 60, 14, 24}, 0, { 0, 0}, {0x5b, 0x4f, 0x26, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, +- {{{ -8, 21, -15}, 0, { 0, 0}, {0x11, 0x73, 0xce, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x0e, 0x7e, 0xfd, 0x00}}}, +- {{{ 60, 13, -9}, 0, { 0, 0}, {0x3c, 0x46, 0xaa, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x0e, 0x23, 0x88, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, +- {{{ -7, -20, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -7, -31, 24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -8, 22, 27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -8, 21, -15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +-}; +- +-// 0x04014ED0 - 0x04014F40 +-const Gfx mario_medium_poly_right_arm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_arm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 2, 5, 6, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 7, 1, 8, 0x0, 2, 7, 5, 0x0), +- gsSP2Triangles( 0, 2, 9, 0x0, 0, 9, 10, 0x0), +- gsSP2Triangles( 1, 0, 3, 0x0, 11, 12, 13, 0x0), +- gsSP2Triangles(13, 14, 11, 0x0, 1, 7, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014F40 - 0x04014F60 +-const Gfx mario_medium_poly_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04014F60 +-static const Vtx mario_medium_poly_right_forearm_shared_dl_vertex[] = { +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +- {{{ 52, 13, -10}, 0, { 0, 0}, {0x51, 0x40, 0xb7, 0x00}}}, +- {{{ 53, 13, 22}, 0, { 0, 0}, {0x3d, 0x63, 0x31, 0x00}}}, +- {{{ 53, -26, 19}, 0, { 0, 0}, {0x5b, 0xd0, 0x49, 0x00}}}, +- {{{ 52, -17, -21}, 0, { 0, 0}, {0x3a, 0xac, 0xb6, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x04, 0x85, 0xe4, 0x00}}}, +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x03, 0x85, 0xe3, 0x00}}}, +- {{{ -5, 17, -12}, 0, { 0, 0}, {0x09, 0x75, 0xd1, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x08, 0x7e, 0x00, 0x00}}}, +- {{{ -5, -18, -24}, 0, { 0, 0}, {0x06, 0x2a, 0x89, 0x00}}}, +- {{{ -4, 17, 26}, 0, { 0, 0}, {0x06, 0xf5, 0x7e, 0x00}}}, +- {{{ -3, -29, 21}, 0, { 0, 0}, {0x06, 0xf4, 0x7e, 0x00}}}, +- {{{ -5, 17, -12}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, +-}; +- +-// 0x04015050 - 0x040150C0 +-const Gfx mario_medium_poly_right_forearm_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_forearm_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 4, 9, 10, 0x0, 3, 11, 9, 0x0), +- gsSP2Triangles( 3, 6, 11, 0x0, 4, 3, 9, 0x0), +- gsSP2Triangles( 5, 4, 12, 0x0, 5, 12, 13, 0x0), +- gsSP2Triangles( 6, 5, 7, 0x0, 2, 14, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040150C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group1[] = { +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, +- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, +- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, +- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, +- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +-}; +- +-// 0x040151C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group2[] = { +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, +- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x4f, 0xd0, 0xaa, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x15, 0x51, 0xa1, 0x00}}}, +- {{{ -26, 40, 0}, 0, { 0, 0}, {0x02, 0x4f, 0x62, 0x00}}}, +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, +- {{{ 14, -51, 7}, 0, { 0, 0}, {0x36, 0xd7, 0x6b, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, +-}; +- +-// 0x040152C0 +-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group3[] = { +- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, +- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, +- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, +- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, +- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, +- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, +- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, +- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, +- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, +- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, +- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, +- {{{ 13, 0, -26}, 0, { 0, 0}, {0xf5, 0xf2, 0x83, 0x00}}}, +- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, +- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, +- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, +-}; +- +-// 0x040153B0 - 0x040154E0 +-const Gfx mario_medium_poly_right_hand_closed_dl[] = { +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), +- gsSP2Triangles( 5, 4, 8, 0x0, 9, 5, 8, 0x0), +- gsSP2Triangles(10, 4, 6, 0x0, 7, 11, 12, 0x0), +- gsSP2Triangles( 4, 13, 7, 0x0, 7, 12, 8, 0x0), +- gsSP2Triangles(14, 6, 15, 0x0, 6, 5, 15, 0x0), +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 2, 8, 9, 0x0, 9, 10, 4, 0x0), +- gsSP2Triangles( 1, 11, 3, 0x0, 3, 12, 13, 0x0), +- gsSP2Triangles(11, 14, 15, 0x0, 15, 14, 12, 0x0), +- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP2Triangles( 5, 6, 0, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 7, 9, 10, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 8, 0x0), +- gsSP2Triangles( 5, 11, 10, 0x0, 10, 9, 13, 0x0), +- gsSP2Triangles(14, 9, 8, 0x0, 8, 11, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040154E0 - 0x04015500 +-const Gfx mario_medium_poly_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015500 - 0x04015530 +-const Gfx mario_metal_medium_poly_right_hand_closed[] = { +- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015530 +-static const Vtx mario_medium_poly_left_thigh_dl_vertex[] = { +- {{{ 18, -12, 58}, 0, { 0, 0}, {0x13, 0xdd, 0x78, 0x00}}}, +- {{{ 22, -52, 8}, 0, { 0, 0}, {0x1c, 0x85, 0x01, 0x00}}}, +- {{{ 99, -35, 8}, 0, { 0, 0}, {0x3e, 0x92, 0x01, 0x00}}}, +- {{{ 14, 51, 38}, 0, { 0, 0}, {0x08, 0x75, 0x30, 0x00}}}, +- {{{ 92, 47, 33}, 0, { 0, 0}, {0x36, 0x4b, 0x56, 0x00}}}, +- {{{ 14, 50, -23}, 0, { 0, 0}, {0x0a, 0x65, 0xb5, 0x00}}}, +- {{{ 92, 47, -16}, 0, { 0, 0}, {0x47, 0x55, 0xc5, 0x00}}}, +- {{{ 19, -13, -42}, 0, { 0, 0}, {0x15, 0xdb, 0x89, 0x00}}}, +- {{{ 96, -3, -31}, 0, { 0, 0}, {0x68, 0xf1, 0xba, 0x00}}}, +- {{{ 96, -3, 48}, 0, { 0, 0}, {0x71, 0xf8, 0x38, 0x00}}}, +- {{{ 19, -13, -42}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 22, -52, 8}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -12, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 14, 51, 38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 14, 50, -23}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +-}; +- +-// 0x04015620 - 0x040156B0 +-const Gfx mario_medium_poly_left_thigh_dl[] = { +- gsSPVertex(mario_medium_poly_left_thigh_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 7, 5, 6, 0x0), +- gsSP2Triangles( 1, 7, 2, 0x0, 7, 8, 2, 0x0), +- gsSP2Triangles( 6, 8, 7, 0x0, 3, 4, 6, 0x0), +- gsSP2Triangles( 0, 9, 4, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles( 9, 2, 8, 0x0, 10, 11, 12, 0x0), +- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), +- gsSP2Triangles( 8, 6, 9, 0x0, 6, 4, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040156B0 - 0x040156E0 +-const Gfx mario_medium_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040156E0 - 0x04015758 +-const Gfx mario_metal_medium_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015758 +-static const Vtx mario_medium_poly_left_leg_shared_dl_vertex[] = { +- {{{ 5, -35, 9}, 0, { 0, 0}, {0xca, 0x8e, 0x00, 0x00}}}, +- {{{ 65, -44, 10}, 0, { 0, 0}, {0xee, 0x83, 0x01, 0x00}}}, +- {{{ 66, -9, 54}, 0, { 0, 0}, {0xf2, 0xdc, 0x78, 0x00}}}, +- {{{ 9, 46, 33}, 0, { 0, 0}, {0xd5, 0x61, 0x45, 0x00}}}, +- {{{ 69, 47, 37}, 0, { 0, 0}, {0xf9, 0x66, 0x4b, 0x00}}}, +- {{{ 70, 47, -18}, 0, { 0, 0}, {0xfb, 0x74, 0xcf, 0x00}}}, +- {{{ 10, 46, -16}, 0, { 0, 0}, {0xaf, 0x40, 0xb7, 0x00}}}, +- {{{ 67, -9, -36}, 0, { 0, 0}, {0xf4, 0xda, 0x88, 0x00}}}, +- {{{ 7, -4, -31}, 0, { 0, 0}, {0x9b, 0xee, 0xb6, 0x00}}}, +- {{{ 7, -4, 49}, 0, { 0, 0}, {0x8f, 0xf5, 0x37, 0x00}}}, +- {{{ 66, -9, 54}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 65, -44, 10}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 67, -9, -36}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 70, 47, -18}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 69, 47, 37}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +-}; +- +-// 0x04015848 - 0x040158D8 +-const Gfx mario_medium_poly_left_leg_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_leg_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), +- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 8, 0, 9, 0x0), +- gsSP2Triangles( 9, 6, 8, 0x0, 9, 3, 6, 0x0), +- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040158D8 +-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group1[] = { +- {{{ 108, 10, 36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 75, 21, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -41, 65, 9}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, +- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, +- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, +- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, +- {{{ 75, 21, -41}, 0, { 0, 0}, {0x09, 0xda, 0x88, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +-}; +- +-// 0x040159D8 +-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group2[] = { +- {{{ 78, -30, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, +- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, +- {{{ 108, 10, 36}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, +- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, +- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, +- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, +- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, +- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, +- {{{ -41, 65, 9}, 0, { 0, 0}, {0x83, 0x15, 0x00, 0x00}}}, +- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, +- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, +- {{{ 25, -34, 11}, 0, { 0, 0}, {0xdd, 0x87, 0xfb, 0x00}}}, +-}; +- +-// 0x04015A98 - 0x04015B60 +-const Gfx mario_medium_poly_left_foot_shared_dl[] = { +- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), +- gsSP2Triangles( 6, 5, 4, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 13, 7, 9, 0x0), +- gsSP2Triangles(10, 12, 14, 0x0, 10, 14, 15, 0x0), +- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group2, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 2, 4, 5, 0x0, 5, 0, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(11, 3, 0, 0x0, 10, 3, 11, 0x0), +- gsSP2Triangles( 0, 5, 11, 0x0, 11, 5, 6, 0x0), +- gsSP2Triangles(11, 6, 10, 0x0, 6, 8, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015B60 - 0x04015B80 +-const Gfx mario_medium_poly_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015B80 +-static const Vtx mario_medium_poly_right_thigh_shared_dl_vertex[] = { +- {{{ 18, -11, -58}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 23, -52, -9}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 20, -14, 41}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 97, -3, 30}, 0, { 0, 0}, {0x69, 0xf1, 0x45, 0x00}}}, +- {{{ 99, -33, -10}, 0, { 0, 0}, {0x40, 0x93, 0xfc, 0x00}}}, +- {{{ 95, -1, -49}, 0, { 0, 0}, {0x71, 0xfb, 0xc7, 0x00}}}, +- {{{ 18, -11, -58}, 0, { 0, 0}, {0x12, 0xe0, 0x87, 0x00}}}, +- {{{ 91, 49, -33}, 0, { 0, 0}, {0x34, 0x4e, 0xab, 0x00}}}, +- {{{ 92, 48, 16}, 0, { 0, 0}, {0x47, 0x55, 0x3d, 0x00}}}, +- {{{ 13, 52, -37}, 0, { 0, 0}, {0x06, 0x76, 0xd3, 0x00}}}, +- {{{ 20, -14, 41}, 0, { 0, 0}, {0x16, 0xd9, 0x76, 0x00}}}, +- {{{ 23, -52, -9}, 0, { 0, 0}, {0x1d, 0x85, 0xfd, 0x00}}}, +- {{{ 14, 50, 24}, 0, { 0, 0}, {0x0a, 0x63, 0x4d, 0x00}}}, +- {{{ 13, 52, -37}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 14, 50, 24}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +-}; +- +-// 0x04015C70 - 0x04015D00 +-const Gfx mario_medium_poly_right_thigh_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_thigh_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 5, 4, 0x0, 7, 5, 6, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 10, 3, 8, 0x0), +- gsSP2Triangles( 4, 3, 10, 0x0, 4, 10, 11, 0x0), +- gsSP2Triangles( 8, 12, 10, 0x0, 8, 9, 12, 0x0), +- gsSP2Triangles( 7, 6, 9, 0x0, 4, 11, 6, 0x0), +- gsSP2Triangles( 5, 8, 3, 0x0, 5, 7, 8, 0x0), +- gsSP2Triangles( 2, 13, 0, 0x0, 2, 14, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015D00 - 0x04015D20 +-const Gfx mario_medium_poly_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015D20 +-static const Vtx mario_medium_poly_right_leg_shared_dl_vertex[] = { +- {{{ 6, -1, -50}, 0, { 0, 0}, {0x8e, 0xf7, 0xca, 0x00}}}, +- {{{ 5, -34, -11}, 0, { 0, 0}, {0xc9, 0x8e, 0xfe, 0x00}}}, +- {{{ 7, -4, 30}, 0, { 0, 0}, {0x9b, 0xed, 0x4a, 0x00}}}, +- {{{ 67, -9, 34}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 64, -43, -12}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 66, -7, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 66, -7, -56}, 0, { 0, 0}, {0xf1, 0xde, 0x87, 0x00}}}, +- {{{ 10, 48, -33}, 0, { 0, 0}, {0xd6, 0x63, 0xbe, 0x00}}}, +- {{{ 10, 46, 16}, 0, { 0, 0}, {0xb1, 0x3f, 0x4b, 0x00}}}, +- {{{ 71, 47, 18}, 0, { 0, 0}, {0xfd, 0x73, 0x33, 0x00}}}, +- {{{ 67, -9, 34}, 0, { 0, 0}, {0xf4, 0xd8, 0x77, 0x00}}}, +- {{{ 64, -43, -12}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 70, 49, -37}, 0, { 0, 0}, {0xfa, 0x67, 0xb8, 0x00}}}, +- {{{ 71, 47, 18}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 70, 49, -37}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +-}; +- +-// 0x04015E10 - 0x04015EA0 +-const Gfx mario_medium_poly_right_leg_shared_dl[] = { +- gsSPVertex(mario_medium_poly_right_leg_shared_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 1, 0, 6, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 8, 2, 10, 0x0), +- gsSP2Triangles(10, 2, 1, 0x0, 11, 10, 1, 0x0), +- gsSP2Triangles(10, 9, 8, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles(12, 6, 7, 0x0, 6, 11, 1, 0x0), +- gsSP2Triangles( 5, 13, 3, 0x0, 5, 14, 13, 0x0), +- gsSP2Triangles( 2, 8, 0, 0x0, 8, 7, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04015EA0 +-static const Vtx mario_medium_poly_right_foot_dl_vertex_group1[] = { +- {{{ -38, 12, 14}, 0, { 0, 0}, {0xa1, 0xcf, 0x43, 0x00}}}, +- {{{ -43, 65, -12}, 0, { 0, 0}, {0x83, 0x13, 0xff, 0x00}}}, +- {{{ -36, 12, -41}, 0, { 0, 0}, {0xa1, 0xce, 0xbe, 0x00}}}, +- {{{ 25, -34, -11}, 0, { 0, 0}, {0xdf, 0x86, 0x07, 0x00}}}, +- {{{ 41, -18, -55}, 0, { 0, 0}, {0x07, 0xb3, 0x9c, 0x00}}}, +- {{{ 79, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, +- {{{ 42, -10, 32}, 0, { 0, 0}, {0xff, 0xba, 0x69, 0x00}}}, +- {{{ -15, 55, 24}, 0, { 0, 0}, {0xcb, 0x04, 0x73, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0xcf, 0x04, 0x8c, 0x00}}}, +- {{{ 108, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, +- {{{ 76, 23, -62}, 0, { 0, 0}, {0x14, 0xdb, 0x89, 0x00}}}, +- {{{ 107, 12, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, +- {{{ 74, 24, 40}, 0, { 0, 0}, {0x08, 0xdc, 0x79, 0x00}}}, +- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -43, 65, -12}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04015FA0 +-static const Vtx mario_medium_poly_right_foot_dl_vertex_group2[] = { +- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 76, 23, -62}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 74, 24, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 108, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 107, 12, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04016000 - 0x040160C8 +-const Gfx mario_medium_poly_right_foot_dl[] = { +- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 3, 6, 0, 0x0, 5, 6, 3, 0x0), +- gsSP2Triangles( 0, 7, 1, 0x0, 1, 8, 2, 0x0), +- gsSP2Triangles( 9, 5, 4, 0x0, 4, 10, 9, 0x0), +- gsSP2Triangles( 6, 5, 11, 0x0, 9, 11, 5, 0x0), +- gsSP2Triangles(11, 12, 6, 0x0, 12, 7, 6, 0x0), +- gsSP2Triangles( 8, 4, 2, 0x0, 7, 0, 6, 0x0), +- gsSP2Triangles( 8, 10, 4, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group2, 6, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040160C8 - 0x04016108 +-const Gfx mario_medium_poly_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016108 - 0x04016148 +-const Gfx mario_metal_medium_poly_right_foot[] = { +- gsSPDisplayList(mario_medium_poly_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016148 +-static const Vtx mario_seg4_vertex_04016148[] = { +- {{{ 75, 24, -60}, 0, { -74, -930}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 36, 47, -76}, 0, { -174, 168}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 988, 92}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ -26, 49, -87}, 0, { -538, 1590}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ 1, 87, -53}, 0, { 638, 1164}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 2522, 702}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 272, 1122}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ 44, 78, 37}, 0, { -92, 108}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 44, 78, -35}, 0, { -1398, -128}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ -26, 49, 88}, 0, { 1514, 1490}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 1110, 130}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 968, -926}, {0x62, 0x27, 0x46, 0xff}}}, +-}; +- +-// 0x04016208 +-static const Vtx mario_seg4_vertex_04016208[] = { +- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, +- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, +- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ 56, -4, 79}, 0, { 0, 0}, {0x39, 0x04, 0x71, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +-}; +- +-// 0x04016308 +-static const Vtx mario_seg4_vertex_04016308[] = { +- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 56, -4, -77}, 0, { 0, 0}, {0x38, 0x04, 0x8f, 0xff}}}, +- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +-}; +- +-// 0x04016398 +-static const Vtx mario_seg4_vertex_04016398[] = { +- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, +- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, +- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, +- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, +- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, +- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, +- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, +- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, +-}; +- +-// 0x04016498 +-static const Vtx mario_seg4_vertex_04016498[] = { +- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, +- {{{ -30, 88, -41}, 0, { 0, 0}, {0xc7, 0x6a, 0xda, 0xff}}}, +- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, +- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ -71, 56, 0}, 0, { 0, 0}, {0x89, 0x2b, 0x00, 0xff}}}, +- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, +- {{{ -59, -44, 0}, 0, { 0, 0}, {0x88, 0xd8, 0x00, 0xff}}}, +- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, +- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, +- {{{ -26, -41, 85}, 0, { 0, 0}, {0xcc, 0xc2, 0x61, 0xff}}}, +- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +-}; +- +-// 0x04016598 +-static const Vtx mario_seg4_vertex_04016598[] = { +- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, +- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, +- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, +- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, +- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, +- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, +- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, +- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, +- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, +- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, +- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, +- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, +- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, +-}; +- +-// 0x04016668 - 0x040166B8 +-const Gfx mario_medium_poly_yellow_button_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016148, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), +- gsSP2Triangles( 6, 10, 7, 0x0, 7, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040166B8 - 0x04016800 +-const Gfx mario_medium_poly_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016398, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), +- gsSP2Triangles( 3, 4, 1, 0x0, 2, 5, 0, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 7, 10, 11, 0x0, 8, 7, 11, 0x0), +- gsSP2Triangles(11, 10, 2, 0x0, 10, 12, 2, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016498, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 2, 1, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 2, 4, 0x0, 6, 2, 5, 0x0), +- gsSP2Triangles( 4, 3, 7, 0x0, 8, 9, 7, 0x0), +- gsSP2Triangles( 5, 4, 7, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(11, 8, 7, 0x0, 3, 11, 7, 0x0), +- gsSP2Triangles( 7, 10, 5, 0x0, 10, 9, 12, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), +- gsSP2Triangles( 5, 10, 14, 0x0, 9, 8, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016598, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 4, 3, 0x0, 6, 3, 7, 0x0), +- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 11, 10, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016800 - 0x040168A0 +-const Gfx mario_medium_poly_tshirt_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04016208, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 0, 4, 0x0, 0, 5, 4, 0x0), +- gsSP2Triangles( 6, 4, 5, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 7, 0x0, 7, 10, 11, 0x0), +- gsSP2Triangles( 7, 12, 8, 0x0, 11, 12, 7, 0x0), +- gsSP1Triangle(13, 14, 15, 0x0), +- gsSPVertex(mario_seg4_vertex_04016308, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), +- gsSP2Triangles( 5, 3, 2, 0x0, 6, 7, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040168A0 - 0x040168C8 +-const Gfx mario_medium_poly_torso_dl[] = { +- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040168C8 - 0x04016948 +-const Gfx mario_medium_poly_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_medium_poly_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_medium_poly_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016948 - 0x04016968 +-const Gfx mario_metal_medium_poly_torso[] = { +- gsSPDisplayList(mario_medium_poly_yellow_button_dl), +- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), +- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016968 +-static const Vtx mario_low_poly_butt_dl_vertex[] = { +- {{{ -37, -37, 0}, 0, { 0, 0}, {0x82, 0xf5, 0x00, 0x00}}}, +- {{{ -2, 52, 92}, 0, { 0, 0}, {0xb1, 0x3c, 0x4e, 0x00}}}, +- {{{ -35, 55, 0}, 0, { 0, 0}, {0x97, 0x45, 0x00, 0x00}}}, +- {{{ -7, -86, 85}, 0, { 0, 0}, {0xbf, 0xc4, 0x5a, 0x00}}}, +- {{{ 49, 46, 96}, 0, { 0, 0}, {0x4b, 0x1d, 0x61, 0x00}}}, +- {{{ -7, -86, -85}, 0, { 0, 0}, {0xcf, 0xaa, 0xb2, 0x00}}}, +- {{{ -2, 52, -92}, 0, { 0, 0}, {0xb0, 0x3b, 0xb2, 0x00}}}, +- {{{ 48, 44, -98}, 0, { 0, 0}, {0x29, 0x22, 0x8e, 0x00}}}, +- {{{ 46, -71, -89}, 0, { 0, 0}, {0x73, 0xd9, 0xdd, 0x00}}}, +- {{{ 46, -71, 89}, 0, { 0, 0}, {0x44, 0xa1, 0x2f, 0x00}}}, +- {{{ 49, 96, 0}, 0, { 0, 0}, {0x2b, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04016A18 - 0x04016AB8 +-const Gfx mario_low_poly_butt_dl[] = { +- gsSPVertex(mario_low_poly_butt_dl_vertex, 11, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 6, 0x0), +- gsSP2Triangles( 6, 5, 0, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles( 8, 7, 10, 0x0, 4, 9, 8, 0x0), +- gsSP2Triangles( 5, 9, 3, 0x0, 3, 0, 5, 0x0), +- gsSP2Triangles( 5, 8, 9, 0x0, 10, 7, 6, 0x0), +- gsSP2Triangles(10, 4, 8, 0x0, 2, 1, 10, 0x0), +- gsSP2Triangles( 6, 2, 10, 0x0, 1, 4, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016AB8 - 0x04016AE8 +-const Gfx mario_low_poly_butt[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016AE8 - 0x04016B60 +-const Gfx mario_metal_low_poly_butt[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_butt_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016B60 +-static const Vtx mario_low_poly_left_arm_shared_dl_vertex[] = { +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x09, 0x65, 0xb5, 0x00}}}, +- {{{ 72, 21, 8}, 0, { 0, 0}, {0x44, 0x4d, 0x48, 0x00}}}, +- {{{ 71, -11, -34}, 0, { 0, 0}, {0x3f, 0x57, 0xbe, 0x00}}}, +- {{{ -8, -30, 31}, 0, { 0, 0}, {0x09, 0x26, 0x78, 0x00}}}, +- {{{ 71, -30, 23}, 0, { 0, 0}, {0x5e, 0x15, 0x51, 0x00}}}, +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x07, 0x29, 0x77, 0x00}}}, +- {{{ -8, -7, -41}, 0, { 0, 0}, {0x0b, 0x67, 0xb8, 0x00}}}, +- {{{ -8, -30, 31}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, +- {{{ -6, 28, 10}, 0, { 0, 0}, {0x81, 0x02, 0x00, 0x00}}}, +- {{{ -8, -7, -41}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, +- {{{ 71, -11, -34}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, +- {{{ 71, -30, 23}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, +-}; +- +-// 0x04016C20 - 0x04016C70 +-const Gfx mario_low_poly_left_arm_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_arm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 7, 9, 10, 0x0, 7, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016C70 - 0x04016C90 +-const Gfx mario_low_poly_left_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016C90 +-static const Vtx mario_low_poly_left_forearm_shared_dl_vertex[] = { +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x05, 0x62, 0xb0, 0x00}}}, +- {{{ 67, 16, 5}, 0, { 0, 0}, {0x43, 0x4b, 0x4c, 0x00}}}, +- {{{ 67, -14, -31}, 0, { 0, 0}, {0x3c, 0x55, 0xba, 0x00}}}, +- {{{ -5, -30, 21}, 0, { 0, 0}, {0x05, 0x20, 0x7a, 0x00}}}, +- {{{ 67, -30, 17}, 0, { 0, 0}, {0x5c, 0x14, 0x54, 0x00}}}, +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x04, 0x22, 0x7a, 0x00}}}, +- {{{ -5, -12, -35}, 0, { 0, 0}, {0x07, 0x63, 0xb2, 0x00}}}, +- {{{ -5, -30, 21}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, +- {{{ -5, 20, 6}, 0, { 0, 0}, {0x81, 0x01, 0x00, 0x00}}}, +- {{{ -5, -12, -35}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, +- {{{ 67, -30, 17}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, +- {{{ 67, -14, -31}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, +-}; +- +-// 0x04016D50 - 0x04016DA0 +-const Gfx mario_low_poly_left_forearm_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_forearm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 10, 9, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016DA0 +-static const Vtx mario_low_poly_left_hand_closed_shared_dl_vertex[] = { +- {{{ -6, 34, -25}, 0, { 0, 0}, {0xa0, 0x13, 0xb0, 0x00}}}, +- {{{ -9, 39, 24}, 0, { 0, 0}, {0xb3, 0x43, 0x4a, 0x00}}}, +- {{{ 91, 80, -34}, 0, { 0, 0}, {0x13, 0x7c, 0xee, 0x00}}}, +- {{{ 90, 35, 33}, 0, { 0, 0}, {0x41, 0x14, 0x6b, 0x00}}}, +- {{{ 20, -34, 21}, 0, { 0, 0}, {0xd4, 0x9a, 0x3c, 0x00}}}, +- {{{ 122, 4, -45}, 0, { 0, 0}, {0x63, 0xbb, 0x25, 0x00}}}, +- {{{ 122, 4, -45}, 0, { 0, 0}, {0xf2, 0x15, 0x84, 0x00}}}, +- {{{ 20, -31, -44}, 0, { 0, 0}, {0xcb, 0xae, 0xb1, 0x00}}}, +-}; +- +-// 0x04016E20 - 0x04016E80 +-const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_hand_closed_shared_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 0, 6, 7, 0x0), +- gsSP2Triangles( 0, 2, 6, 0x0, 4, 7, 5, 0x0), +- gsSP2Triangles( 3, 1, 4, 0x0, 2, 3, 5, 0x0), +- gsSP2Triangles( 0, 7, 4, 0x0, 4, 1, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016E80 - 0x04016EA0 +-const Gfx mario_low_poly_left_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016EA0 +-static const Vtx mario_low_poly_right_arm_shared_dl_vertex[] = { +- {{{ 65, 30, 23}, 0, { 0, 0}, {0x5e, 0xeb, 0x51, 0x00}}}, +- {{{ 66, -21, 8}, 0, { 0, 0}, {0x45, 0xb3, 0x49, 0x00}}}, +- {{{ 65, 11, -34}, 0, { 0, 0}, {0x40, 0xa9, 0xbf, 0x00}}}, +- {{{ -10, 7, -41}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x81, 0xfe, 0x00, 0x00}}}, +- {{{ -10, 30, 30}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x09, 0x9a, 0xb6, 0x00}}}, +- {{{ -10, 7, -41}, 0, { 0, 0}, {0x0c, 0x99, 0xb8, 0x00}}}, +- {{{ -10, 30, 30}, 0, { 0, 0}, {0x0a, 0xdb, 0x78, 0x00}}}, +- {{{ -9, -28, 10}, 0, { 0, 0}, {0x07, 0xd8, 0x78, 0x00}}}, +- {{{ 65, 30, 23}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, +- {{{ 65, 11, -34}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, +-}; +- +-// 0x04016F60 - 0x04016FB0 +-const Gfx mario_low_poly_right_arm_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_arm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 2, 6, 7, 0x0, 1, 8, 9, 0x0), +- gsSP2Triangles( 1, 0, 8, 0x0, 2, 1, 6, 0x0), +- gsSP2Triangles( 5, 10, 11, 0x0, 5, 11, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016FB0 - 0x04016FD0 +-const Gfx mario_low_poly_right_arm[] = { +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_arm_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04016FD0 +-static const Vtx mario_low_poly_right_forearm_shared_dl_vertex[] = { +- {{{ -13, 12, -35}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, +- {{{ -13, 30, 21}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, +- {{{ 54, 14, -31}, 0, { 0, 0}, {0x3d, 0xaa, 0xba, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x05, 0x9e, 0xb1, 0x00}}}, +- {{{ -13, 12, -35}, 0, { 0, 0}, {0x07, 0x9c, 0xb3, 0x00}}}, +- {{{ 55, -16, 5}, 0, { 0, 0}, {0x43, 0xb5, 0x4c, 0x00}}}, +- {{{ -13, 30, 21}, 0, { 0, 0}, {0x05, 0xe0, 0x7a, 0x00}}}, +- {{{ -13, -20, 6}, 0, { 0, 0}, {0x04, 0xde, 0x7a, 0x00}}}, +- {{{ 54, 30, 17}, 0, { 0, 0}, {0x5c, 0xed, 0x54, 0x00}}}, +- {{{ 54, 30, 17}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, +- {{{ 54, 14, -31}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, +-}; +- +-// 0x04017090 - 0x040170E0 +-const Gfx mario_low_poly_right_forearm_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_forearm_shared_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), +- gsSP2Triangles( 3, 6, 4, 0x0, 2, 10, 11, 0x0), +- gsSP2Triangles( 2, 11, 0, 0x0, 9, 6, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040170E0 +-static const Vtx mario_low_poly_right_hand_closed_dl_vertex[] = { +- {{{ 85, -38, -32}, 0, { 0, 0}, {0x3d, 0xe3, 0x96, 0x00}}}, +- {{{ -15, -35, -22}, 0, { 0, 0}, {0x99, 0xdc, 0xc1, 0x00}}}, +- {{{ 17, 37, -22}, 0, { 0, 0}, {0xfe, 0x69, 0xb9, 0x00}}}, +- {{{ 116, -10, 36}, 0, { 0, 0}, {0x66, 0x47, 0x16, 0x00}}}, +- {{{ 82, -85, 44}, 0, { 0, 0}, {0x13, 0x8a, 0xd8, 0x00}}}, +- {{{ -15, -35, 43}, 0, { 0, 0}, {0x9d, 0xec, 0x4c, 0x00}}}, +- {{{ 82, -85, 44}, 0, { 0, 0}, {0x02, 0x15, 0x7d, 0x00}}}, +- {{{ 14, 30, 26}, 0, { 0, 0}, {0xca, 0x50, 0x51, 0x00}}}, +-}; +- +-// 0x04017160 - 0x040171C0 +-const Gfx mario_low_poly_right_hand_closed_dl[] = { +- gsSPVertex(mario_low_poly_right_hand_closed_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 0, 3, 0x0, 4, 5, 1, 0x0), +- gsSP2Triangles( 6, 3, 7, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 3, 2, 7, 0x0), +- gsSP2Triangles( 1, 5, 7, 0x0, 7, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040171C0 - 0x040171E0 +-const Gfx mario_low_poly_right_hand_closed[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040171E0 - 0x04017210 +-const Gfx mario_metal_low_poly_right_hand_closed[] = { +- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017210 +-static const Vtx mario_low_poly_left_thigh_dl_vertex[] = { +- {{{ 10, 51, 45}, 0, { 0, 0}, {0x08, 0x73, 0x34, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x0a, 0x11, 0x7d, 0x00}}}, +- {{{ 94, 48, 38}, 0, { 0, 0}, {0x38, 0x40, 0x5d, 0x00}}}, +- {{{ 11, 51, -27}, 0, { 0, 0}, {0x0b, 0x5e, 0xad, 0x00}}}, +- {{{ 95, 48, -19}, 0, { 0, 0}, {0x4a, 0x4f, 0xbf, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x0c, 0x0f, 0x83, 0x00}}}, +- {{{ 101, -28, -28}, 0, { 0, 0}, {0x5b, 0xca, 0xbc, 0x00}}}, +- {{{ 100, -28, 48}, 0, { 0, 0}, {0x63, 0xbd, 0x29, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 10, 51, 45}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 11, 51, -27}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, +- {{{ 18, -45, -38}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, +- {{{ 17, -44, 58}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, +-}; +- +-// 0x040172F0 - 0x04017360 +-const Gfx mario_low_poly_left_thigh_dl[] = { +- gsSPVertex(mario_low_poly_left_thigh_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 5, 3, 4, 0x0, 4, 6, 5, 0x0), +- gsSP2Triangles( 0, 2, 4, 0x0, 1, 7, 2, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 6, 4, 7, 0x0, 4, 2, 7, 0x0), +- gsSP2Triangles(12, 7, 13, 0x0, 12, 6, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017360 - 0x04017390 +-const Gfx mario_low_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017390 - 0x04017408 +-const Gfx mario_metal_low_poly_left_thigh[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_thigh_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017408 +-static const Vtx mario_low_poly_left_leg_shared_dl_vertex[] = { +- {{{ 7, 47, 38}, 0, { 0, 0}, {0xcf, 0x59, 0x4b, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0xf8, 0x10, 0x7d, 0x00}}}, +- {{{ 75, 52, 42}, 0, { 0, 0}, {0xf4, 0x5e, 0x53, 0x00}}}, +- {{{ 75, 52, -23}, 0, { 0, 0}, {0xf5, 0x72, 0xca, 0x00}}}, +- {{{ 7, 47, -20}, 0, { 0, 0}, {0xab, 0x34, 0xb2, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0xfa, 0x0f, 0x83, 0x00}}}, +- {{{ 3, -29, -29}, 0, { 0, 0}, {0xbb, 0xa4, 0xcd, 0x00}}}, +- {{{ 2, -29, 48}, 0, { 0, 0}, {0x92, 0xdb, 0x31, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 75, 52, -23}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 75, 52, 42}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, +- {{{ 71, -39, -34}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, +- {{{ 70, -39, 53}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, +-}; +- +-// 0x040174E8 - 0x04017558 +-const Gfx mario_low_poly_left_leg_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_leg_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), +- gsSP2Triangles( 3, 4, 0, 0x0, 0, 7, 1, 0x0), +- gsSP2Triangles( 7, 4, 6, 0x0, 7, 0, 4, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), +- gsSP2Triangles( 6, 12, 13, 0x0, 13, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017558 +-static const Vtx mario_low_poly_left_foot_shared_dl_vertex[] = { +- {{{ 110, 11, 56}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 109, 10, -33}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, +- {{{ 74, -39, 51}, 0, { 0, 0}, {0x13, 0xb0, 0x60, 0x00}}}, +- {{{ 110, 11, 56}, 0, { 0, 0}, {0x5b, 0xbb, 0x36, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x00, 0xf4, 0x7e, 0x00}}}, +- {{{ 73, -40, -25}, 0, { 0, 0}, {0x18, 0x96, 0xc0, 0x00}}}, +- {{{ -56, 20, -30}, 0, { 0, 0}, {0xa4, 0xc5, 0xc2, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0xfe, 0xf0, 0x83, 0x00}}}, +- {{{ -54, 20, 58}, 0, { 0, 0}, {0x99, 0xc2, 0x26, 0x00}}}, +- {{{ 109, 10, -33}, 0, { 0, 0}, {0x44, 0xc2, 0xaa, 0x00}}}, +- {{{ -50, 69, -36}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, +- {{{ -49, 70, 63}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, +-}; +- +-// 0x04017638 - 0x040176A8 +-const Gfx mario_low_poly_left_foot_shared_dl[] = { +- gsSPVertex(mario_low_poly_left_foot_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles(10, 4, 6, 0x0, 7, 9, 11, 0x0), +- gsSP2Triangles(12, 10, 13, 0x0, 7, 10, 8, 0x0), +- gsSP2Triangles( 7, 11, 5, 0x0, 5, 4, 7, 0x0), +- gsSP2Triangles( 7, 4, 10, 0x0, 12, 8, 10, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040176A8 - 0x040176C8 +-const Gfx mario_low_poly_left_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_left_foot_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040176C8 +-static const Vtx mario_low_poly_right_thigh_shared_dl_vertex[] = { +- {{{ 102, -25, -48}, 0, { 0, 0}, {0x64, 0xbf, 0xd5, 0x00}}}, +- {{{ 103, -27, 25}, 0, { 0, 0}, {0x5c, 0xc9, 0x42, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, +- {{{ 95, 50, -36}, 0, { 0, 0}, {0x37, 0x42, 0xa3, 0x00}}}, +- {{{ 96, 49, 18}, 0, { 0, 0}, {0x4a, 0x4e, 0x41, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 17, 51, 27}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 15, 53, -42}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, +- {{{ 24, -42, -56}, 0, { 0, 0}, {0x09, 0x13, 0x83, 0x00}}}, +- {{{ 15, 53, -42}, 0, { 0, 0}, {0x07, 0x74, 0xce, 0x00}}}, +- {{{ 25, -45, 35}, 0, { 0, 0}, {0x0d, 0x0c, 0x7d, 0x00}}}, +- {{{ 17, 51, 27}, 0, { 0, 0}, {0x0b, 0x5c, 0x55, 0x00}}}, +-}; +- +-// 0x040177A8 - 0x04017818 +-const Gfx mario_low_poly_right_thigh_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_thigh_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 0, 4, 5, 0x0, 0, 5, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), +- gsSP2Triangles( 4, 0, 10, 0x0, 5, 4, 11, 0x0), +- gsSP2Triangles(12, 1, 5, 0x0, 5, 13, 12, 0x0), +- gsSP2Triangles( 5, 11, 13, 0x0, 4, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017818 - 0x04017838 +-const Gfx mario_low_poly_right_thigh[] = { +- gsSPLight(&mario_blue_lights_group.l, 1), +- gsSPLight(&mario_blue_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017838 +-static const Vtx mario_low_poly_right_leg_shared_dl_vertex[] = { +- {{{ 2, -29, 27}, 0, { 0, 0}, {0xba, 0xa3, 0x31, 0x00}}}, +- {{{ 1, -26, -50}, 0, { 0, 0}, {0x91, 0xdd, 0xcf, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 74, 54, -43}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 75, 52, 21}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, +- {{{ 6, 47, 19}, 0, { 0, 0}, {0xad, 0x33, 0x50, 0x00}}}, +- {{{ 6, 49, -38}, 0, { 0, 0}, {0xcf, 0x5b, 0xb7, 0x00}}}, +- {{{ 68, -37, -56}, 0, { 0, 0}, {0xf8, 0x13, 0x83, 0x00}}}, +- {{{ 75, 52, 21}, 0, { 0, 0}, {0xf7, 0x71, 0x38, 0x00}}}, +- {{{ 70, -40, 30}, 0, { 0, 0}, {0xfb, 0x0c, 0x7e, 0x00}}}, +- {{{ 74, 54, -43}, 0, { 0, 0}, {0xf4, 0x60, 0xaf, 0x00}}}, +-}; +- +-// 0x04017918 - 0x04017988 +-const Gfx mario_low_poly_right_leg_shared_dl[] = { +- gsSPVertex(mario_low_poly_right_leg_shared_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 1, 0x0, 0, 8, 1, 0x0), +- gsSP2Triangles(10, 1, 9, 0x0, 9, 8, 11, 0x0), +- gsSP2Triangles( 8, 0, 12, 0x0, 12, 11, 8, 0x0), +- gsSP2Triangles(11, 13, 9, 0x0, 13, 10, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017988 +-static const Vtx mario_low_poly_right_foot_dl_vertex[] = { +- {{{ -55, 19, -59}, 0, { 0, 0}, {0x9a, 0xc0, 0xda, 0x00}}}, +- {{{ -57, 20, 28}, 0, { 0, 0}, {0xa4, 0xc5, 0x3e, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, +- {{{ 73, -38, -50}, 0, { 0, 0}, {0x15, 0xae, 0xa2, 0x00}}}, +- {{{ 71, -37, 25}, 0, { 0, 0}, {0x19, 0x98, 0x42, 0x00}}}, +- {{{ 108, 12, -55}, 0, { 0, 0}, {0x5c, 0xbc, 0xcc, 0x00}}}, +- {{{ 106, 13, 33}, 0, { 0, 0}, {0x44, 0xc5, 0x58, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0xfd, 0xf2, 0x7e, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x02, 0xf2, 0x82, 0x00}}}, +- {{{ -52, 69, 34}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 108, 12, -55}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ -50, 68, -65}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +- {{{ 106, 13, 33}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, +-}; +- +-// 0x04017A68 - 0x04017AD8 +-const Gfx mario_low_poly_right_foot_dl[] = { +- gsSPVertex(mario_low_poly_right_foot_dl_vertex, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), +- gsSP2Triangles( 1, 0, 4, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 6, 8, 4, 0x0, 9, 3, 0, 0x0), +- gsSP2Triangles( 8, 1, 4, 0x0, 9, 5, 3, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017AD8 - 0x04017B18 +-const Gfx mario_low_poly_right_foot[] = { +- gsSPLight(&mario_brown1_lights_group.l, 1), +- gsSPLight(&mario_brown1_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_right_foot_dl), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017B18 - 0x04017B58 +-const Gfx mario_metal_low_poly_right_foot[] = { +- gsSPDisplayList(mario_low_poly_right_foot_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetEnvColor(255, 255, 255, 255), +- gsDPSetAlphaCompare(G_AC_NONE), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017B58 +-static const Vtx mario_seg4_vertex_04017B58[] = { +- {{{ -28, 41, -88}, 0, { -396, 1646}, {0xb7, 0x31, 0xa5, 0xff}}}, +- {{{ 0, 98, 0}, 0, { 1968, 722}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 35, 64, -82}, 0, { -390, 132}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 1698, -280}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ -28, 41, 89}, 0, { 1610, 1512}, {0xd1, 0x37, 0x67, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 1070, -68}, {0x29, 0x4b, 0x5d, 0xff}}}, +- {{{ 0, 98, 0}, 0, { -1064, 968}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 39, 90, 0}, 0, { -1146, -124}, {0x4a, 0x67, 0x00, 0xff}}}, +-}; +- +-// 0x04017BD8 +-static const Vtx mario_seg4_vertex_04017BD8[] = { +- {{{ -28, -71, 81}, 0, { 0, 0}, {0x9a, 0xbd, 0x20, 0xff}}}, +- {{{ -28, 41, -88}, 0, { 0, 0}, {0xb7, 0x31, 0xa5, 0xff}}}, +- {{{ -28, -71, -80}, 0, { 0, 0}, {0xb7, 0xb5, 0xba, 0xff}}}, +- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, +- {{{ -28, 41, 89}, 0, { 0, 0}, {0xd1, 0x37, 0x67, 0xff}}}, +- {{{ -28, 89, 0}, 0, { 0, 0}, {0x97, 0x46, 0x00, 0xff}}}, +- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, +- {{{ 0, 98, 0}, 0, { 0, 0}, {0xf0, 0x7d, 0x00, 0xff}}}, +- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, +- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, +- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, +-}; +- +-// 0x04017CC8 +-static const Vtx mario_seg4_vertex_04017CC8[] = { +- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, +- {{{ 87, 42, 0}, 0, { 0, 0}, {0x76, 0x2d, 0x00, 0xff}}}, +- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, +- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, +- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, +- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, +- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, +- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, +- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, +- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, +-}; +- +-// 0x04017D68 - 0x04017D98 +-const Gfx mario_low_poly_yellow_button_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017B58, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017D98 - 0x04017E20 +-const Gfx mario_low_poly_pants_overalls_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017BD8, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 0, 4, 5, 0x0, 3, 6, 0, 0x0), +- gsSP2Triangles( 4, 0, 6, 0x0, 0, 5, 1, 0x0), +- gsSP2Triangles( 7, 4, 6, 0x0, 5, 4, 8, 0x0), +- gsSP2Triangles( 8, 1, 5, 0x0, 3, 1, 9, 0x0), +- gsSP2Triangles( 3, 2, 1, 0x0, 6, 3, 10, 0x0), +- gsSP2Triangles(10, 11, 6, 0x0, 12, 9, 13, 0x0), +- gsSP1Triangle(13, 7, 14, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017E20 - 0x04017E78 +-const Gfx mario_low_poly_tshirt_shared_dl[] = { +- gsSPVertex(mario_seg4_vertex_04017CC8, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 5, 6, 3, 0x0, 2, 1, 5, 0x0), +- gsSP2Triangles( 6, 5, 1, 0x0, 7, 8, 0, 0x0), +- gsSP2Triangles( 7, 0, 9, 0x0, 8, 6, 1, 0x0), +- gsSP1Triangle( 1, 0, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017E78 - 0x04017EA0 +-const Gfx mario_low_poly_torso_dl[] = { +- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017EA0 - 0x04017F20 +-const Gfx mario_low_poly_torso[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_yellow_button_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_torso_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017F20 - 0x04017F40 +-const Gfx mario_metal_low_poly_torso[] = { +- gsSPDisplayList(mario_low_poly_yellow_button_dl), +- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), +- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04017F40 +-static const Vtx mario_low_poly_mario_m_logo_dl_vertex[] = { +- {{{ 272, 48, 53}, 0, { 904, 0}, {0x42, 0x51, 0x47, 0xff}}}, +- {{{ 174, 79, -9}, 0, { 452, 816}, {0x51, 0x61, 0xfa, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1238, 962}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 272, 48, -52}, 0, { -2, 0}, {0x62, 0x27, 0xba, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -334, 962}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04017F90 +-static const Vtx mario_low_poly_eyes_cap_on_dl_vertex[] = { +- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 458, 68}, {0xd9, 0x78, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -398, 212}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04017FE0 +-static const Vtx mario_low_poly_mustache_cap_on_dl_vertex[] = { +- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x03, 0x39, 0x8f, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, +-}; +- +-// 0x04018080 +-static const Vtx mario_low_poly_face_cap_dl_vertex[] = { +- {{{ 272, 48, -52}, 0, { 0, 0}, {0x62, 0x27, 0xba, 0xff}}}, +- {{{ 272, 48, 53}, 0, { 0, 0}, {0x42, 0x51, 0x47, 0xff}}}, +- {{{ 149, -87, 138}, 0, { 0, 0}, {0x43, 0xb6, 0x4d, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +- {{{ 149, -87, -137}, 0, { 0, 0}, {0x33, 0xc2, 0x9f, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, +- {{{ 98, -165, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 0, 0}, {0xd9, 0x78, 0x00, 0xff}}}, +- {{{ 175, 154, 0}, 0, { 0, 0}, {0xe1, 0x6c, 0xc6, 0xff}}}, +- {{{ 174, 79, -9}, 0, { 0, 0}, {0x51, 0x61, 0xfa, 0xff}}}, +-}; +- +-// 0x04018140 +-static const Vtx mario_low_poly_face_part_cap_on_dl_vertex[] = { +- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, +- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04018210 +-static const Vtx mario_low_poly_face_back_hair_cap_on_dl_vertex[] = { +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, +-}; +- +-// 0x04018270 - 0x04018298 +-const Gfx mario_low_poly_mario_m_logo_dl[] = { +- gsSPVertex(mario_low_poly_mario_m_logo_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP1Triangle( 3, 1, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018298 - 0x040182C0 +-const Gfx mario_low_poly_eyes_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_eyes_cap_on_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP1Triangle( 3, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040182C0 - 0x04018300 +-const Gfx mario_low_poly_mustache_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_mustache_cap_on_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 5, 0x0, 6, 9, 7, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018300 - 0x04018370 +-const Gfx mario_low_poly_face_part_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_face_part_cap_on_dl_vertex, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 5, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 4, 0, 3, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 6, 8, 0x0, 8, 7, 10, 0x0), +- gsSP2Triangles(10, 7, 11, 0x0, 10, 11, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018370 - 0x040183F0 +-const Gfx mario_low_poly_face_cap_dl[] = { +- gsSPVertex(mario_low_poly_face_cap_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), +- gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0), +- gsSP2Triangles( 6, 2, 5, 0x0, 6, 7, 2, 0x0), +- gsSP2Triangles( 7, 4, 2, 0x0, 3, 4, 8, 0x0), +- gsSP2Triangles( 4, 7, 8, 0x0, 9, 10, 3, 0x0), +- gsSP2Triangles(10, 11, 3, 0x0, 8, 7, 6, 0x0), +- gsSP2Triangles(10, 5, 11, 0x0, 10, 9, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x040183F0 - 0x04018420 +-const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { +- gsSPVertex(mario_low_poly_face_back_hair_cap_on_dl_vertex, 6, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 1, 0, 0x0, 3, 2, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018420 - 0x04018460 +-const Gfx mario_low_poly_face_cap_on_dl[] = { +- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_cap_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018460 - 0x04018530 +-const Gfx mario_low_poly_cap_on_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018530 - 0x04018600 +-const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018600 - 0x040186D0 +-const Gfx mario_low_poly_cap_on_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040186D0 - 0x040187A0 +-const Gfx mario_low_poly_cap_on_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040187A0 - 0x04018870 +-const Gfx mario_low_poly_cap_on_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018870 - 0x04018940 +-const Gfx mario_low_poly_cap_on_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018940 - 0x04018A10 +-const Gfx mario_low_poly_cap_on_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018A10 - 0x04018AE0 +-const Gfx mario_low_poly_cap_on_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018AE0 - 0x04018B18 +-const Gfx mario_metal_low_poly_cap_on[] = { +- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), +- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), +- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), +- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), +- gsSPDisplayList(mario_low_poly_face_cap_dl), +- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018B18 +-static const Vtx mario_low_poly_mario_eyes_cap_off_dl_vertex[] = { +- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 458, 68}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 146, 27, -91}, 0, { -398, 212}, {0x14, 0x26, 0x89, 0xff}}}, +-}; +- +-// 0x04018B68 +-static const Vtx mario_low_poly_mustache_cap_off_dl_vertex[] = { +- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x14, 0x26, 0x89, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x16, 0x25, 0x77, 0xff}}}, +-}; +- +-// 0x04018C08 +-static const Vtx mario_low_poly_face_part_cap_off_dl_vertex[] = { +- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, +- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, +- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, +- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, +- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, +- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, +-}; +- +-// 0x04018CD8 +-static const Vtx mario_low_poly_face_hair_cap_off_dl_vertex[] = { +- {{{ 58, -114, 81}, 0, { 0, 0}, {0xd3, 0x9b, 0x3d, 0xff}}}, +- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, +- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, +- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, +- {{{ 167, -121, 77}, 0, { 0, 0}, {0x3c, 0xad, 0x4a, 0xff}}}, +- {{{ 58, -114, -80}, 0, { 0, 0}, {0xd8, 0xa3, 0xb5, 0xff}}}, +- {{{ 90, -136, 0}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0xff}}}, +- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, +- {{{ 167, -121, -81}, 0, { 0, 0}, {0x3a, 0xad, 0xb5, 0xff}}}, +- {{{ 218, 48, -52}, 0, { 0, 0}, {0x5f, 0x3b, 0xc6, 0xff}}}, +- {{{ 168, 79, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, +- {{{ 192, -28, -80}, 0, { 0, 0}, {0x55, 0xf7, 0xa3, 0xff}}}, +- {{{ 223, -38, -1}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}}, +- {{{ 218, 48, 53}, 0, { 0, 0}, {0x60, 0x39, 0x3a, 0xff}}}, +- {{{ 192, -28, 78}, 0, { 0, 0}, {0x56, 0xf4, 0x5c, 0xff}}}, +-}; +- +-// 0x04018DC8 - 0x04018DF0 +-const Gfx mario_low_poly_mario_eyes_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_mario_eyes_cap_off_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), +- gsSP1Triangle( 3, 2, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018DF0 - 0x04018E30 +-const Gfx mario_low_poly_mustache_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_mustache_cap_off_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 2, 4, 0, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 6, 8, 7, 0x0, 7, 9, 5, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018E30 - 0x04018EA0 +-const Gfx mario_low_poly_face_part_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_face_part_cap_off_dl_vertex, 13, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 0, 0x0, 5, 3, 0, 0x0), +- gsSP2Triangles( 1, 3, 5, 0x0, 2, 1, 4, 0x0), +- gsSP2Triangles( 1, 5, 4, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 7, 9, 8, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 10, 11, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018EA0 - 0x04018F68 +-const Gfx mario_low_poly_face_hair_cap_off_dl[] = { +- gsSPVertex(mario_low_poly_face_hair_cap_off_dl_vertex, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 5, 6, 0, 0x0, 0, 6, 4, 0x0), +- gsSP2Triangles( 5, 2, 7, 0x0, 7, 8, 5, 0x0), +- gsSP2Triangles( 8, 6, 5, 0x0, 9, 7, 10, 0x0), +- gsSP2Triangles( 7, 9, 11, 0x0, 7, 11, 8, 0x0), +- gsSP2Triangles( 6, 8, 4, 0x0, 8, 11, 12, 0x0), +- gsSP2Triangles( 4, 8, 12, 0x0, 11, 9, 12, 0x0), +- gsSP2Triangles(13, 14, 12, 0x0, 14, 4, 12, 0x0), +- gsSP2Triangles( 4, 14, 3, 0x0, 13, 10, 3, 0x0), +- gsSP2Triangles(14, 13, 3, 0x0, 9, 10, 13, 0x0), +- gsSP1Triangle( 9, 13, 12, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018F68 - 0x04018F90 +-const Gfx mario_low_poly_face_cap_off_dl[] = { +- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04018F90 - 0x04019040 +-const Gfx mario_low_poly_cap_off_eyes_front[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019040 - 0x040190F0 +-const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040190F0 - 0x040191A0 +-const Gfx mario_low_poly_cap_off_eyes_closed[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040191A0 - 0x04019250 +-const Gfx mario_low_poly_cap_off_eyes_right[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019250 - 0x04019300 +-const Gfx mario_low_poly_cap_off_eyes_left[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019300 - 0x040193B0 +-const Gfx mario_low_poly_cap_off_eyes_up[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x040193B0 - 0x04019460 +-const Gfx mario_low_poly_cap_off_eyes_down[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019460 - 0x04019510 +-const Gfx mario_low_poly_cap_off_eyes_dead[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_beige_lights_group.l, 1), +- gsSPLight(&mario_beige_lights_group.a, 2), +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_low_poly_face_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019510 - 0x04019538 +-const Gfx mario_metal_low_poly_cap_off[] = { +- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), +- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), +- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), +- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019538 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group1[] = { +- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +-}; +- +-// 0x04019618 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group2[] = { +- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, +- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, +- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, +- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, +- {{{ 20, -46, 12}, 0, { 0, 0}, {0x26, 0x9e, 0x45, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ -17, 40, -8}, 0, { 0, 0}, {0xbc, 0x68, 0x16, 0x00}}}, +- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, +- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +-}; +- +-// 0x04019718 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group3[] = { +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, +- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, +- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, +- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, +-}; +- +-// 0x04019818 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group4[] = { +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, +- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, +- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, +- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, +- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, +- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, +- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, +- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, +- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, +- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, +- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +-}; +- +-// 0x04019918 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group5[] = { +- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, +- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, +- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, +- {{{ -15, 4, -32}, 0, { 0, 0}, {0x89, 0xdd, 0xe7, 0x00}}}, +- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, +- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, +- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, +- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 1, 15, -37}, 0, { 0, 0}, {0xd2, 0x09, 0x8b, 0x00}}}, +- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, +- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, +- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, +-}; +- +-// 0x04019A18 +-static const Vtx mario_left_hand_open_shared_dl_vertex_group6[] = { +- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, +- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, +- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, +- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, +- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, +-}; +- +-// 0x04019A68 - 0x04019CA0 +-const Gfx mario_left_hand_open_shared_dl[] = { +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group1, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 3, 7, 0x0), +- gsSP2Triangles( 1, 0, 5, 0x0, 5, 4, 1, 0x0), +- gsSP2Triangles( 5, 3, 6, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 8, 11, 9, 0x0, 12, 13, 11, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 0, 10, 7, 0x0, 11, 10, 0, 0x0), +- gsSP2Triangles(12, 13, 11, 0x0, 9, 8, 13, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 10, 14, 7, 0x0), +- gsSP2Triangles(11, 14, 10, 0x0, 13, 4, 11, 0x0), +- gsSP2Triangles( 8, 5, 13, 0x0, 3, 15, 1, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 1, 9, 10, 0x0, 5, 11, 1, 0x0), +- gsSP2Triangles(12, 13, 5, 0x0, 14, 9, 15, 0x0), +- gsSP1Triangle( 4, 7, 12, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 7, 0, 2, 0x0), +- gsSP2Triangles( 8, 6, 5, 0x0, 5, 9, 10, 0x0), +- gsSP2Triangles(11, 3, 2, 0x0, 2, 12, 11, 0x0), +- gsSP2Triangles( 3, 13, 9, 0x0, 6, 0, 7, 0x0), +- gsSP2Triangles( 7, 4, 9, 0x0, 10, 14, 15, 0x0), +- gsSP1Triangle(15, 14, 11, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 0, 0x0, 2, 8, 9, 0x0), +- gsSP2Triangles( 4, 10, 8, 0x0, 11, 10, 4, 0x0), +- gsSP2Triangles( 7, 12, 11, 0x0, 9, 12, 7, 0x0), +- gsSP2Triangles( 6, 3, 1, 0x0, 6, 5, 3, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 14, 10, 11, 0x0), +- gsSP2Triangles( 8, 10, 15, 0x0, 10, 14, 15, 0x0), +- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group6, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019CA0 - 0x04019CC0 +-const Gfx mario_left_hand_open[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_left_hand_open_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x04019CC0 +-static const Vtx mario_right_hand_open_dl_vertex_group1[] = { +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, +- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +-}; +- +-// 0x04019DA0 +-static const Vtx mario_right_hand_open_dl_vertex_group2[] = { +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, +- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, +- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 25, -46, -9}, 0, { 0, 0}, {0x21, 0x97, 0xc1, 0x00}}}, +- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, +- {{{ -9, 41, 5}, 0, { 0, 0}, {0xbc, 0x66, 0xe5, 0x00}}}, +- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, +- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +-}; +- +-// 0x04019EA0 +-static const Vtx mario_right_hand_open_dl_vertex_group3[] = { +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, +- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, +- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, +- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, +- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, +-}; +- +-// 0x04019FA0 +-static const Vtx mario_right_hand_open_dl_vertex_group4[] = { +- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, +- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, +- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, +- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, +- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, +- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, +- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, +- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, +- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, +-}; +- +-// 0x0401A0A0 +-static const Vtx mario_right_hand_open_dl_vertex_group5[] = { +- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, +- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, +- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, +- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, +- {{{ -7, 7, 32}, 0, { 0, 0}, {0x8a, 0xe2, 0x20, 0x00}}}, +- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, +- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, +- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ 9, 18, 35}, 0, { 0, 0}, {0xd8, 0x13, 0x76, 0x00}}}, +- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, +- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, +- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, +-}; +- +-// 0x0401A1A0 +-static const Vtx mario_right_hand_open_dl_vertex_group6[] = { +- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, +- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, +- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, +- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, +- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, +-}; +- +-// 0x0401A1F0 - 0x0401A428 +-const Gfx mario_right_hand_open_dl[] = { +- gsSPVertex(mario_right_hand_open_dl_vertex_group1, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 4, 0x0), +- gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0), +- gsSP2Triangles( 4, 3, 5, 0x0, 8, 9, 10, 0x0), +- gsSP2Triangles( 9, 11, 10, 0x0, 11, 12, 13, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 10, 2, 0x0, 2, 10, 11, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 12, 8, 7, 0x0), +- gsSP2Triangles( 8, 5, 9, 0x0, 9, 14, 10, 0x0), +- gsSP2Triangles(10, 14, 11, 0x0, 11, 6, 12, 0x0), +- gsSP2Triangles(12, 5, 8, 0x0, 1, 15, 3, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 10, 1, 0x0, 1, 11, 4, 0x0), +- gsSP2Triangles( 4, 12, 13, 0x0, 14, 10, 15, 0x0), +- gsSP1Triangle(13, 7, 5, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 7, 6, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles( 0, 4, 11, 0x0, 11, 12, 0, 0x0), +- gsSP2Triangles(10, 13, 4, 0x0, 5, 2, 6, 0x0), +- gsSP2Triangles(10, 3, 5, 0x0, 14, 15, 9, 0x0), +- gsSP1Triangle(11, 15, 14, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), +- gsSP2Triangles( 2, 7, 6, 0x0, 8, 9, 0, 0x0), +- gsSP2Triangles( 9, 10, 3, 0x0, 3, 10, 11, 0x0), +- gsSP2Triangles(11, 12, 6, 0x0, 6, 12, 8, 0x0), +- gsSP2Triangles( 1, 4, 7, 0x0, 4, 5, 7, 0x0), +- gsSP2Triangles(13, 12, 11, 0x0, 11, 10, 14, 0x0), +- gsSP2Triangles(15, 10, 9, 0x0, 15, 14, 10, 0x0), +- gsSPVertex(mario_right_hand_open_dl_vertex_group6, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A428 - 0x0401A448 +-const Gfx mario_right_hand_open[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_open_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A448 - 0x0401A478 +-const Gfx mario_metal_right_hand_open[] = { +- gsSPDisplayList(mario_right_hand_open_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401A478 +-static const Vtx mario_right_hand_cap_m_logo_dl_vertex[] = { +- {{{ 131, 47, -1}, 0, { 1104, 228}, {0xd7, 0x60, 0xb8, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 474, 32}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 78, 11, 40}, 0, { 772, 818}, {0xd0, 0x3e, 0x9d, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 196, 800}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 114, -92, -11}, 0, { -148, 188}, {0xc4, 0xb8, 0xac, 0xff}}}, +-}; +- +-// 0x0401A4C8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group1[] = { +- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd4, 0x3c, 0x66, 0xff}}}, +- {{{ 29, 7, 48}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0xff}}}, +- {{{ 29, 62, 34}, 0, { 0, 0}, {0xcd, 0x4c, 0x57, 0xff}}}, +- {{{ 11, 60, -3}, 0, { 0, 0}, {0xab, 0x59, 0xe6, 0xff}}}, +- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, +- {{{ -2, 41, 0}, 0, { 0, 0}, {0xee, 0x71, 0xca, 0xff}}}, +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, +- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, +- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, +-}; +- +-// 0x0401A5B8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group2[] = { +- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, +- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, +- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, +- {{{ 31, -39, 0}, 0, { 0, 0}, {0x42, 0xa3, 0xca, 0xff}}}, +- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, +- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, +- {{{ 55, -43, -3}, 0, { 0, 0}, {0x00, 0x86, 0xe0, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, +- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, +- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, +- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +-}; +- +-// 0x0401A6B8 +-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group3[] = { +- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, +- {{{ 85, 30, -32}, 0, { 0, 0}, {0x4f, 0x21, 0xa3, 0xff}}}, +- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, +- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, +- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, +- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, +- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, +- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, +- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, +- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, +- {{{ 96, 39, 24}, 0, { 0, 0}, {0x6b, 0x39, 0x21, 0xff}}}, +- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, +- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, +- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, +-}; +- +-// 0x0401A798 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group1[] = { +- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 151, -168, 67}, 0, { 0, 0}, {0xf4, 0x87, 0xdc, 0xff}}}, +- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, +- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +-}; +- +-// 0x0401A888 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group2[] = { +- {{{ 78, 11, 40}, 0, { 0, 0}, {0xd0, 0x3e, 0x9d, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +- {{{ 131, 47, -1}, 0, { 0, 0}, {0xd7, 0x60, 0xb8, 0xff}}}, +- {{{ 45, 49, 53}, 0, { 0, 0}, {0xa8, 0x5a, 0x0a, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +-}; +- +-// 0x0401A988 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group3[] = { +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, +- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, +- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, +- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, +- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, +- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, +- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, +- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +-}; +- +-// 0x0401AA88 +-static const Vtx mario_right_hand_cap_top_dl_vertex_group4[] = { +- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, +- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, +- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, +- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +-}; +- +-// 0x0401AB08 +-static const Vtx mario_right_hand_cap_bottom_dl_vertex[] = { +- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, +- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, +- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, +- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, +- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, +- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, +- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, +- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, +- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, +- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, +-}; +- +-// 0x0401ABA8 - 0x0401ABD0 +-const Gfx mario_right_hand_cap_m_logo_dl[] = { +- gsSPVertex(mario_right_hand_cap_m_logo_dl_vertex, 5, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), +- gsSP1Triangle( 1, 4, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401ABD0 - 0x0401AD40 +-const Gfx mario_right_hand_cap_top_dl[] = { +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 4, 5, 0x0, 6, 2, 1, 0x0), +- gsSP2Triangles( 2, 6, 4, 0x0, 7, 4, 8, 0x0), +- gsSP2Triangles( 8, 4, 6, 0x0, 4, 9, 5, 0x0), +- gsSP2Triangles( 4, 7, 9, 0x0, 5, 9, 10, 0x0), +- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 0, 3, 1, 0x0, 5, 2, 1, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 0, 9, 3, 0x0), +- gsSP2Triangles(10, 9, 0, 0x0, 11, 12, 2, 0x0), +- gsSP2Triangles( 2, 5, 11, 0x0, 3, 9, 4, 0x0), +- gsSP2Triangles(13, 14, 15, 0x0, 11, 5, 14, 0x0), +- gsSP1Triangle( 7, 14, 5, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group3, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 7, 8, 9, 0x0, 7, 6, 8, 0x0), +- gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 9, 0x0), +- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), +- gsSP1Triangle(13, 12, 15, 0x0), +- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group4, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), +- gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 6, 0x0), +- gsSP1Triangle( 7, 0, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AD40 - 0x0401AED0 +-const Gfx mario_right_hand_cap_hand_position_dl[] = { +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group1, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 6, 0x0), +- gsSP2Triangles( 6, 3, 2, 0x0, 5, 2, 4, 0x0), +- gsSP2Triangles( 3, 7, 0, 0x0, 3, 6, 8, 0x0), +- gsSP2Triangles( 3, 8, 7, 0x0, 9, 0, 7, 0x0), +- gsSP2Triangles(10, 0, 9, 0x0, 1, 0, 10, 0x0), +- gsSP2Triangles(11, 1, 10, 0x0, 11, 4, 1, 0x0), +- gsSP2Triangles( 7, 12, 13, 0x0, 8, 12, 7, 0x0), +- gsSP2Triangles(13, 14, 7, 0x0, 7, 14, 9, 0x0), +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group2, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 6, 2, 4, 0x0), +- gsSP2Triangles( 7, 5, 4, 0x0, 8, 9, 3, 0x0), +- gsSP2Triangles( 3, 9, 10, 0x0, 10, 6, 3, 0x0), +- gsSP2Triangles( 5, 11, 3, 0x0, 3, 11, 8, 0x0), +- gsSP2Triangles(10, 0, 6, 0x0, 6, 0, 2, 0x0), +- gsSP2Triangles( 2, 1, 12, 0x0, 5, 13, 11, 0x0), +- gsSP2Triangles( 1, 14, 12, 0x0, 14, 15, 12, 0x0), +- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group3, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), +- gsSP2Triangles( 7, 5, 8, 0x0, 8, 5, 9, 0x0), +- gsSP2Triangles( 3, 10, 1, 0x0, 11, 10, 3, 0x0), +- gsSP2Triangles( 1, 10, 2, 0x0, 2, 10, 12, 0x0), +- gsSP2Triangles(12, 10, 13, 0x0, 10, 11, 13, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AED0 - 0x0401AF20 +-const Gfx mario_right_hand_cap_bottom_dl[] = { +- gsSPVertex(mario_right_hand_cap_bottom_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), +- gsSP2Triangles( 6, 5, 2, 0x0, 6, 2, 7, 0x0), +- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AF20 - 0x0401AF60 +-const Gfx mario_right_hand_cap_dl[] = { +- gsSPDisplayList(mario_right_hand_cap_top_dl), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_cap_bottom_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401AF60 +-static const Vtx mario_right_hand_cap_wings_half_1_dl_vertex[] = { +- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 212, 96, 143}, 0, { 990, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, +- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 322, 87, -67}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 178, -177, 128}, 0, { 990, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 149, -100, 60}, 0, { 0, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 319, -248, -14}, 0, { 990, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, +- {{{ 290, -171, -81}, 0, { 0, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, +-}; +- +-// 0x0401B000 +-static const Vtx mario_right_hand_cap_wings_half_2_dl_vertex[] = { +- {{{ 414, 206, 82}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 212, 96, 143}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 258, 156, 218}, 0, { 990, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 368, 146, 7}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, +- {{{ 178, -177, 128}, 0, { 0, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 319, -248, -14}, 0, { 0, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 349, -325, 53}, 0, { 990, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, +- {{{ 207, -253, 195}, 0, { 990, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, +-}; +- +-// 0x0401B080 - 0x0401B0B0 +-const Gfx mario_right_hand_cap_wings_half_1_dl[] = { +- gsSPVertex(mario_right_hand_cap_wings_half_1_dl_vertex, 10, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B0B0 - 0x0401B0E0 +-const Gfx mario_right_hand_cap_wings_half_2_dl[] = { +- gsSPVertex(mario_right_hand_cap_wings_half_2_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B0E0 - 0x0401B138 +-const Gfx mario_right_hand_cap_wings_intial_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B138 - 0x0401B158 +-const Gfx mario_right_hand_cap_wings_end_dl[] = { +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B158 - 0x0401B1D8 +-const Gfx mario_right_hand_cap[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPDisplayList(mario_right_hand_cap_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B1D8 - 0x0401B230 +-const Gfx mario_right_hand_cap_wings[] = { +- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), +- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B230 - 0x0401B278 +-const Gfx mario_metal_right_hand_cap_shared_dl[] = { +- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), +- gsSPDisplayList(mario_right_hand_cap_top_dl), +- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), +- gsSPDisplayList(mario_right_hand_cap_bottom_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B278 - 0x0401B2D0 +-const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = { +- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), +- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401B2D0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group1[] = { +- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0x00}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0x00}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0x00}}}, +- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, +- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +-}; +- +-// 0x0401B3D0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group2[] = { +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0x00}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0xc4, 0xb9, 0xab, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, +-}; +- +-// 0x0401B4B0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group3[] = { +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0x00}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, +- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0xff}}}, +- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, +- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0xce, 0x92, 0x24, 0xff}}}, +- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +-}; +- +-// 0x0401B5A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group4[] = { +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0x00}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x0a, 0x7a, 0x21, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, +- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, +-}; +- +-// 0x0401B6A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group5[] = { +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0x00}}}, +- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0x00}}}, +- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0xe3, 0x8b, 0x25, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x79, 0x01, 0x25, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0x79, 0x06, 0x23, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +-}; +- +-// 0x0401B7A0 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group6[] = { +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0x5f, 0x47, 0x2a, 0x00}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0x00}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xfd, 0x37, 0x8e, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x15, 0x2a, 0x8b, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x06, 0x7e, 0xff, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x26, 0x1e, 0x8b, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, +- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, +- {{{ 84, 60, -7}, 0, { 0, 0}, {0x4d, 0x5d, 0x24, 0xff}}}, +-}; +- +-// 0x0401B890 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group7[] = { +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0x00}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0x00}}}, +- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0x19, 0x85, 0xf1, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x10, 0x83, 0x00, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x07, 0xd6, 0x77, 0xff}}}, +-}; +- +-// 0x0401B980 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group8[] = { +- {{{ 139, 53, 25}, 0, { 0, 0}, {0xfc, 0x13, 0x7d, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0xfc, 0x15, 0x7d, 0x00}}}, +- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0x00}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 155, -15, 21}, 0, { 0, 0}, {0xf5, 0xef, 0x7d, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, +- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x51, 0xa6, 0xdd, 0xff}}}, +- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, +- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, +-}; +- +-// 0x0401BA70 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group9[] = { +- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0xc3, 0x66, 0x29, 0x00}}}, +- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0x00}}}, +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 98, 10, 29}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, +- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, +- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, +- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, +- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5a, 0x52, 0x21, 0xff}}}, +- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +-}; +- +-// 0x0401BB70 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group10[] = { +- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, +- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, +- {{{ 32, -43, 0}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0x00}}}, +- {{{ 24, -59, -3}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0xff}}}, +- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, +- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, +- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, +- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, +- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, +- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, +- {{{ -22, 43, -3}, 0, { 0, 0}, {0x1a, 0x72, 0x2f, 0xff}}}, +- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, +- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, +-}; +- +-// 0x0401BC50 +-static const Vtx mario_right_hand_peace_shared_dl_vertex_group11[] = { +- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, +- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, +- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0x00}}}, +-}; +- +-// 0x0401BC80 - 0x0401BF30 +-const Gfx mario_right_hand_peace_shared_dl[] = { +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), +- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), +- gsSP2Triangles( 8, 7, 9, 0x0, 7, 6, 10, 0x0), +- gsSP2Triangles( 7, 10, 9, 0x0, 11, 8, 9, 0x0), +- gsSP2Triangles( 7, 12, 5, 0x0, 10, 13, 14, 0x0), +- gsSP2Triangles( 6, 15, 10, 0x0, 10, 14, 9, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group2, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 6, 7, 0x0, 8, 0, 9, 0x0), +- gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 9, 8, 10, 0x0, 9, 10, 11, 0x0), +- gsSP1Triangle(12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group4, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 2, 12, 13, 0x0, 3, 5, 12, 0x0), +- gsSP1Triangle(12, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group5, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group6, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), +- gsSP2Triangles( 4, 10, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group7, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), +- gsSP2Triangles(10, 9, 11, 0x0, 12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group8, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 3, 2, 7, 0x0), +- gsSP2Triangles( 8, 3, 7, 0x0, 9, 10, 11, 0x0), +- gsSP1Triangle(12, 13, 14, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group9, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group10, 14, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), +- gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), +- gsSP2Triangles(12, 13, 9, 0x0, 12, 9, 8, 0x0), +- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group11, 3, 0), +- gsSP1Triangle( 0, 1, 2, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401BF30 - 0x0401BF50 +-const Gfx mario_right_hand_peace[] = { +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_right_hand_peace_shared_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401BF50 +-static const Vtx mario_cap_unused_m_logo_dl_vertex[] = { +- {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, +-}; +- +-// 0x0401BFC0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group1[] = { +- {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +-}; +- +-// 0x0401C0C0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group2[] = { +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, +- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +-}; +- +-// 0x0401C1B0 +-static const Vtx mario_cap_unused_base_top_dl_vertex_group3[] = { +- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, +- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, +- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, +- {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, +- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, +- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, +- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, +- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, +- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +-}; +- +-// 0x0401C2A0 +-static const Vtx mario_cap_unused_base_bottom_dl_vertex[] = { +- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, +- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, +- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, +- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, +- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, +- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, +- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, +- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, +- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, +-}; +- +-// 0x0401C330 - 0x0401C368 +-const Gfx mario_cap_unused_m_logo_dl[] = { +- gsSPVertex(mario_cap_unused_m_logo_dl_vertex, 7, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), +- gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), +- gsSP1Triangle( 5, 6, 4, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C368 - 0x0401C4C8 +-const Gfx mario_cap_unused_base_top_dl[] = { +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group1, 16, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), +- gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), +- gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), +- gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), +- gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), +- gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group2, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), +- gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), +- gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), +- gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), +- gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), +- gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), +- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group3, 15, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), +- gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), +- gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), +- gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), +- gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), +- gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), +- gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C4C8 - 0x0401C510 +-const Gfx mario_cap_unused_base_bottom_dl[] = { +- gsSPVertex(mario_cap_unused_base_bottom_dl_vertex, 9, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), +- gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), +- gsSP1Triangle( 2, 8, 0, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C510 - 0x0401C538 +-const Gfx mario_cap_unused_base_dl[] = { +- gsSPDisplayList(mario_cap_unused_base_top_dl), +- gsSPLight(&mario_brown2_lights_group.l, 1), +- gsSPLight(&mario_brown2_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_base_bottom_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C538 +-static const Vtx mario_wings_half_1_unused_dl_vertex[] = { +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, +- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, +-}; +- +-// 0x0401C5F8 +-static const Vtx mario_wings_half_2_unused_dl_vertex[] = { +- {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, +- {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, +- {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, +-}; +- +-// 0x0401C678 - 0x0401C6A8 +-const Gfx mario_wings_half_1_unused_dl[] = { +- gsSPVertex(mario_wings_half_1_unused_dl_vertex, 12, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), +- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C6A8 - 0x0401C6D8 +-const Gfx mario_wings_half_2_unused_dl[] = { +- gsSPVertex(mario_wings_half_2_unused_dl_vertex, 8, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C6D8 - 0x0401C730 +-const Gfx mario_cap_wings_unused_intial_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C730 - 0x0401C758 +-const Gfx mario_cap_wings_unused_end_dl[] = { +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C758 - 0x0401C7E8 # Unreferenced, possibly a early duplicate of the cap object used in segment 03 +-const Gfx mario_cap_unused_dl[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPLight(&mario_red_lights_group.l, 1), +- gsSPLight(&mario_red_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_m_logo_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPDisplayList(mario_cap_unused_base_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C7E8 - 0x0401C890 # Unreferenced, possibly an early duplicate of the cap object used in segment 03 +-const Gfx mario_metal_cap_unused_dl[] = { +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsSPDisplayList(mario_cap_unused_m_logo_dl), +- gsSPDisplayList(mario_cap_unused_base_top_dl), +- gsSPDisplayList(mario_cap_unused_base_bottom_dl), +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C890 - 0x0401C8E8 # Unreferenced, unused like the duplicated cap, same case +-const Gfx mario_cap_wings_unused[] = { +- gsSPDisplayList(mario_cap_wings_unused_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_unused_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_unused_dl), +- gsSPDisplayList(mario_cap_wings_unused_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C8E8 - 0x0401C940 # Unreferenced, unused like the duplicated cap, same case +-const Gfx mario_metal_cap_wings_unused[] = { +- gsSPDisplayList(mario_cap_wings_unused_intial_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_unused_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_unused_dl), +- gsSPDisplayList(mario_cap_wings_unused_end_dl), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C940 +-static const Vtx mario_wings_half_1_dl_vertex[] = { +- {{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +-}; +- +-// 0x0401C980 +-static const Vtx mario_wings_half_2_dl_vertex[] = { +- {{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, +- {{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, +-}; +- +-// 0x0401C9C0 - 0x0401C9E0 +-const Gfx mario_wings_half_1_dl[] = { +- gsSPVertex(mario_wings_half_1_dl_vertex, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401C9E0 - 0x0401CA00 +-const Gfx mario_wings_half_2_dl[] = { +- gsSPVertex(mario_wings_half_2_dl_vertex, 4, 0), +- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CA00 - 0x0401CAB8 +-const Gfx mario_cap_wings[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CAB8 - 0x0401CB70 +-const Gfx mario_cap_wings_transparent[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CB70 - 0x0401CC28 +-const Gfx mario_metal_cap_wings[] = { +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsSPLight(&mario_white_lights_group.l, 1), +- gsSPLight(&mario_white_lights_group.a, 2), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), +- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsSPEndDisplayList(), +-}; +- +-// 0x0401CC28 - 0x0401CD20 +-const Gfx mario_metal_cap_wings_transparent[] = { +- gsDPPipeSync(), +- gsSPClearGeometryMode(G_TEXTURE_GEN), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), +- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), +- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), +- gsDPTileSync(), +- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), +- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_1_dl), +- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), +- gsDPLoadSync(), +- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), +- gsSPDisplayList(mario_wings_half_2_dl), +- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), +- gsDPPipeSync(), +- gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), +- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), +- gsSPEndDisplayList(), ++Gfx mario_000_offset_009_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), + }; ++ ++Gfx mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_buckle_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_shoe_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_blue_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1[] = { ++ gsSPDisplayList(mat_mario_sonic_texture_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_mario_sonic_shoe_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_mario_sonic_white_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_mario_sonic_buckle_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPDisplayList(mat_mario_metal_v4), ++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_mario_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_mario_wing_2_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), ++ gsSPDisplayList(mat_mario_wing_1_001_v4), ++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mario_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/mario/model.inc.c.rej b/actors/mario/model.inc.c.rej +new file mode 100644 +index 0000000..8d7b3ba +--- /dev/null ++++ b/actors/mario/model.inc.c.rej +@@ -0,0 +1,11293 @@ ++diff a/actors/mario/model.inc.c b/actors/mario/model.inc.c (rejected hunks) ++@@ -1,6825 +1,4506 @@ ++-// Mario +++Lights1 mario_sonic_blue_v4_lights = gdSPDefLights1( +++ 0x7, 0x0, 0x7F, +++ 0xF, 0x0, 0xFE, 0x28, 0x28, 0x28); ++ ++-// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types ++-static const Lights1 mario_blue_lights_group = gdSPDefLights1( ++- 0x00, 0x00, 0x7f, ++- 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_skin_v4_lights = gdSPDefLights1( +++ 0x73, 0x5D, 0x36, +++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); ++ ++-// 0x04000018 # solid color red - left & right arm, torso (tshirt part), caps - all poly types ++-static const Lights1 mario_red_lights_group = gdSPDefLights1( ++- 0x7f, 0x00, 0x00, ++- 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_eye_texture_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++-// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types ++-static const Lights1 mario_white_lights_group = gdSPDefLights1( ++- 0x7f, 0x7f, 0x7f, ++- 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_mouth_none_lights = gdSPDefLights1( +++ 0x73, 0x5D, 0x36, +++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); ++ ++-// 0x04000048 # solid color brown 1 - foot - all poly types ++-static const Lights1 mario_brown1_lights_group = gdSPDefLights1( ++- 0x39, 0x0e, 0x07, ++- 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_nose_v4_lights = gdSPDefLights1( +++ 0x0, 0x0, 0x0, +++ 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); ++ ++-// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types ++-static const Lights1 mario_beige_lights_group = gdSPDefLights1( ++- 0x7f, 0x60, 0x3c, ++- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_mouth_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++-// 0x04000078 # solid color brown 2 - hair - all poly types ++-static const Lights1 mario_brown2_lights_group = gdSPDefLights1( ++- 0x39, 0x03, 0x00, ++- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 ++-); +++Lights1 mario_sonic_eye_half_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++-// 0x04000090 ++-ALIGNED8 static const Texture mario_texture_metal[] = { ++-#include "actors/mario/mario_metal.rgba16.inc.c" +++Lights1 mario_sonic_eye_closed_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 mario_sonic_eye_dead_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 mario_gloves_001_v4_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 mario_gloves_v4_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 mario_sonic_texture_v4_lights = gdSPDefLights1( +++ 0x7F, 0x7F, 0x7F, +++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 mario_sonic_white_v4_lights = gdSPDefLights1( +++ 0x73, 0x73, 0x73, +++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); +++ +++Lights1 mario_sonic_buckle_v4_lights = gdSPDefLights1( +++ 0x7F, 0x79, 0x0, +++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); +++ +++Lights1 mario_sonic_shoe_v4_lights = gdSPDefLights1( +++ 0x7F, 0x0, 0x1, +++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); +++ +++Gfx mario_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_metal_rgba16[] = { +++ #include "actors/mario/metal.rgba16.inc.c" +++}; +++ +++Gfx mario_soniceyenew_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_soniceyenew_rgba16[] = { +++ #include "actors/mario/soniceyenew.rgba16.inc.c" +++}; +++ +++Gfx mario_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_sonic_mouth_rgba16[] = { +++ #include "actors/mario/sonic_mouth.rgba16.inc.c" +++}; +++ +++Gfx mario_soniceyenew_half_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_soniceyenew_half_rgba16[] = { +++ #include "actors/mario/soniceyenew_half.rgba16.inc.c" +++}; +++ +++Gfx mario_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_soniceyenew_closed_rgba16[] = { +++ #include "actors/mario/soniceyenew_closed.rgba16.inc.c" +++}; +++ +++Gfx mario_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_soniceyenew_dead_rgba16[] = { +++ #include "actors/mario/soniceyenew_dead.rgba16.inc.c" +++}; +++ +++Gfx mario_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_sonic_new2_rgba16[] = { +++ #include "actors/mario/sonic_new2.rgba16.inc.c" +++}; +++ +++Gfx mario_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_wing_2_rgba16[] = { +++ #include "actors/mario/wing_2.rgba16.inc.c" +++}; +++ +++Gfx mario_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; +++u8 mario_wing1_rgba16[] = { +++ #include "actors/mario/wing1.rgba16.inc.c" +++}; +++ +++Vtx mario_000_offset_mesh_layer_1_vtx_0[28] = { +++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, +++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, +++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, +++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, +++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, +++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, +++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, +++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, +++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, +++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, +++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, +++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, +++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, +++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, +++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, +++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, +++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, +++ {{{13, -74, 0},0, {491, 713},{0x93, 0xF8, 0x41, 0xFF}}}, +++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, +++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, +++ {{{11, -76, -4},0, {510, 718},{0x9D, 0xDE, 0xB8, 0xFF}}}, +++ {{{21, -77, 0},0, {491, 723},{0x79, 0xE3, 0xE7, 0xFF}}}, +++ {{{27, -57, 0},0, {491, 674},{0x68, 0xB8, 0xF5, 0xFF}}}, +++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, +++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, +++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, +++ {{{19, -108, 0},0, {491, 792},{0x9, 0x81, 0x0, 0xFF}}}, +++ {{{17, -76, 4},0, {475, 718},{0xFD, 0xE3, 0x7C, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(9, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_0 + 16, 12, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(4, 5, 10, 0), +++ gsSP1Triangle(11, 10, 5, 0), +++ gsSP1Triangle(1, 10, 11, 0), +++ gsSP1Triangle(1, 4, 10, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_mesh_layer_1_vtx_1[5] = { +++ {{{43, 27, 0},0, {-16, -16},{0xB6, 0x67, 0x0, 0xFF}}}, +++ {{{45, 28, 13},0, {-16, -16},{0xB4, 0x66, 0x5, 0xFF}}}, +++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, +++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, +++ {{{45, 28, -13},0, {-16, -16},{0xB4, 0x66, 0xFB, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_mesh_layer_1_vtx_1 + 0, 5, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { +++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, +++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, +++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, +++ {{{52, 30, 26},0, {393, 476},{0xBA, 0x68, 0x16, 0xFF}}}, +++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, +++ {{{51, -36, 0},0, {491, 627},{0x11, 0x82, 0x0, 0xFF}}}, +++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, +++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, +++ {{{52, 30, -26},0, {589, 476},{0xBA, 0x68, 0xEA, 0xFF}}}, +++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, +++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_skinned_mesh_layer_1_vtx_1[2] = { +++ {{{52, 30, 26},0, {-16, -16},{0xBA, 0x68, 0x16, 0xFF}}}, +++ {{{52, 30, -26},0, {-16, -16},{0xBA, 0x68, 0xEA, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_skinned_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 2, 11), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_mesh_layer_1_vtx_0[12] = { +++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, +++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, +++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, +++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, +++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, +++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, +++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, +++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, +++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, +++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, +++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, +++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 0, 3, 13), +++ gsSP1Triangle(3, 1, 13, 0), +++ gsSP1Triangle(1, 14, 13, 0), +++ gsSP1Triangle(14, 1, 0, 0), +++ gsSP1Triangle(0, 15, 14, 0), +++ gsSP1Triangle(15, 0, 2, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 3, 3, 13), +++ gsSP1Triangle(13, 14, 2, 0), +++ gsSP1Triangle(4, 13, 2, 0), +++ gsSP1Triangle(4, 15, 13, 0), +++ gsSP1Triangle(15, 4, 5, 0), +++ gsSP1Triangle(15, 5, 6, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 6, 3, 13), +++ gsSP1Triangle(6, 13, 14, 0), +++ gsSP1Triangle(6, 7, 13, 0), +++ gsSP1Triangle(13, 7, 15, 0), +++ gsSP1Triangle(15, 7, 10, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_0 + 9, 3, 13), +++ gsSP1Triangle(10, 13, 14, 0), +++ gsSP1Triangle(13, 10, 9, 0), +++ gsSP1Triangle(9, 15, 13, 0), +++ gsSP1Triangle(8, 15, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_mesh_layer_1_vtx_1[3] = { +++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, +++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, +++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_1 + 0, 3, 13), +++ gsSP1Triangle(13, 14, 11, 0), +++ gsSP1Triangle(11, 14, 12, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_mesh_layer_1_vtx_2[89] = { +++ {{{10, 35, 40},0, {342, 465},{0xE2, 0x68, 0x42, 0xFF}}}, +++ {{{16, -4, 65},0, {247, 553},{0xE0, 0x12, 0x7A, 0xFF}}}, +++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, +++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, +++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, +++ {{{19, -34, 59},0, {270, 623},{0xAB, 0xF1, 0x5D, 0xFF}}}, +++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, +++ {{{10, -42, 24},0, {403, 639},{0x9C, 0xB2, 0xF4, 0xFF}}}, +++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, +++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, +++ {{{12, -39, 0},0, {491, 634},{0xDD, 0x86, 0x0, 0xFF}}}, +++ {{{10, -42, -24},0, {582, 639},{0x9C, 0xB2, 0xC, 0xFF}}}, +++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, +++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, +++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, +++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, +++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, +++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, +++ {{{19, -34, -59},0, {714, 623},{0xAB, 0xF1, 0xA3, 0xFF}}}, +++ {{{16, -4, -65},0, {737, 553},{0xE0, 0x12, 0x86, 0xFF}}}, +++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, +++ {{{43, 37, -48},0, {674, 458},{0x2, 0x62, 0xAF, 0xFF}}}, +++ {{{10, 35, -40},0, {642, 465},{0xE2, 0x68, 0xBE, 0xFF}}}, +++ {{{64, 35, -43},0, {654, 465},{0x35, 0x62, 0xC3, 0xFF}}}, +++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, +++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, +++ {{{83, 29, -18},0, {558, 479},{0x59, 0x59, 0xEE, 0xFF}}}, +++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, +++ {{{86, 27, 0},0, {491, 481},{0x5C, 0x58, 0x0, 0xFF}}}, +++ {{{83, 29, 18},0, {426, 479},{0x59, 0x59, 0x12, 0xFF}}}, +++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, +++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, +++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, +++ {{{64, 35, 43},0, {328, 465},{0x35, 0x62, 0x3D, 0xFF}}}, +++ {{{74, -5, 65},0, {247, 555},{0x3E, 0x20, 0x6A, 0xFF}}}, +++ {{{45, -5, 70},0, {229, 555},{0x1, 0x24, 0x7A, 0xFF}}}, +++ {{{43, 37, 48},0, {310, 458},{0x2, 0x62, 0x51, 0xFF}}}, +++ {{{73, -32, 68},0, {238, 618},{0x50, 0xEB, 0x61, 0xFF}}}, +++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, +++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, +++ {{{25, -77, 75},0, {210, 723},{0xF2, 0xEE, 0x7D, 0xFF}}}, +++ {{{42, -30, 72},0, {222, 613},{0xF2, 0x6, 0x7E, 0xFF}}}, +++ {{{1, -117, 65},0, {247, 813},{0x2B, 0x89, 0xB, 0xFF}}}, +++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, +++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, +++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, +++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, +++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, +++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, +++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, +++ {{{17, -76, 16},0, {431, 718},{0xB5, 0xCB, 0xA8, 0xFF}}}, +++ {{{44, -48, 0},0, {491, 653},{0xCC, 0x8C, 0x0, 0xFF}}}, +++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, +++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, +++ {{{17, -76, -16},0, {554, 718},{0xB5, 0xCB, 0x58, 0xFF}}}, +++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, +++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, +++ {{{-16, -99, -63},0, {728, 771},{0x8F, 0x39, 0x7, 0xFF}}}, +++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, +++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, +++ {{{25, -77, -75},0, {774, 723},{0xF2, 0xEE, 0x83, 0xFF}}}, +++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, +++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, +++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, +++ {{{42, -30, -72},0, {763, 613},{0xF2, 0x6, 0x82, 0xFF}}}, +++ {{{45, -5, -70},0, {756, 555},{0x1, 0x24, 0x86, 0xFF}}}, +++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, +++ {{{74, -5, -65},0, {737, 555},{0x3E, 0x20, 0x96, 0xFF}}}, +++ {{{87, 4, -47},0, {668, 534},{0x6D, 0x1E, 0xC7, 0xFF}}}, +++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, +++ {{{99, -1, 0},0, {491, 548},{0x7F, 0x7, 0x0, 0xFF}}}, +++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, +++ {{{88, -41, 21},0, {414, 639},{0x74, 0xCC, 0x3, 0xFF}}}, +++ {{{87, 4, 47},0, {317, 534},{0x6D, 0x1E, 0x39, 0xFF}}}, +++ {{{61, -74, 10},0, {454, 713},{0x30, 0xA8, 0xB2, 0xFF}}}, +++ {{{51, -91, 46},0, {319, 755},{0x46, 0x96, 0xC, 0xFF}}}, +++ {{{-16, -99, 63},0, {256, 771},{0x8A, 0x30, 0x4, 0xFF}}}, +++ {{{-36, -122, 83},0, {177, 822},{0xA5, 0xBD, 0x3A, 0xFF}}}, +++ {{{-9, -108, 79},0, {194, 792},{0x4, 0x13, 0x7E, 0xFF}}}, +++ {{{-11, -109, 55},0, {284, 795},{0xC6, 0xC0, 0xA3, 0xFF}}}, +++ {{{84, -34, 0},0, {491, 620},{0x6D, 0xBE, 0x0, 0xFF}}}, +++ {{{61, -74, -10},0, {530, 713},{0x30, 0xA8, 0x4E, 0xFF}}}, +++ {{{88, -41, -21},0, {570, 639},{0x74, 0xCC, 0xFD, 0xFF}}}, +++ {{{51, -91, -46},0, {663, 755},{0x46, 0x96, 0xF4, 0xFF}}}, +++ {{{73, -32, -68},0, {746, 618},{0x50, 0xEB, 0x9F, 0xFF}}}, +++ {{{1, -117, -65},0, {737, 813},{0x2C, 0x89, 0xFE, 0xFF}}}, +++ {{{-11, -109, -55},0, {700, 795},{0xC6, 0xC0, 0x5D, 0xFF}}}, +++ {{{-36, -122, -83},0, {807, 822},{0x9C, 0xCE, 0xC4, 0xFF}}}, +++ {{{-9, -108, -79},0, {791, 792},{0xB, 0x7, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(9, 11, 12, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(11, 15, 14, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 4, 5, 0), +++ gsSP1Triangle(4, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(9, 7, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(11, 13, 14, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(5, 2, 3, 0), +++ gsSP1Triangle(5, 0, 2, 0), +++ gsSP1Triangle(6, 0, 5, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(9, 8, 5, 0), +++ gsSP1Triangle(9, 5, 3, 0), +++ gsSP1Triangle(10, 7, 8, 0), +++ gsSP1Triangle(10, 11, 7, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(10, 8, 13, 0), +++ gsSP1Triangle(13, 8, 14, 0), +++ gsSP1Triangle(15, 14, 8, 0), +++ gsSP1Triangle(15, 11, 14, 0), +++ gsSP1Triangle(7, 11, 15, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(6, 9, 8, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 7, 0), +++ gsSP1Triangle(12, 14, 7, 0), +++ gsSP1Triangle(15, 14, 12, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(7, 8, 10, 0), +++ gsSP1Triangle(10, 8, 11, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 13, 12, 0), +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_2 + 80, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(4, 2, 3, 0), +++ gsSP1Triangle(5, 3, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_001_mesh_layer_1_vtx_3[10] = { +++ {{{33, 50, 0},0, {-16, -16},{0xFF, 0x7F, 0x0, 0xFF}}}, +++ {{{10, 35, 40},0, {-16, -16},{0xE2, 0x68, 0x42, 0xFF}}}, +++ {{{43, 37, 48},0, {-16, -16},{0x2, 0x62, 0x51, 0xFF}}}, +++ {{{64, 35, 43},0, {-16, -16},{0x35, 0x62, 0x3D, 0xFF}}}, +++ {{{64, 35, -43},0, {-16, -16},{0x35, 0x62, 0xC3, 0xFF}}}, +++ {{{86, 27, 0},0, {-16, -16},{0x5C, 0x58, 0x0, 0xFF}}}, +++ {{{83, 29, 18},0, {-16, -16},{0x59, 0x59, 0x12, 0xFF}}}, +++ {{{83, 29, -18},0, {-16, -16},{0x59, 0x59, 0xEE, 0xFF}}}, +++ {{{43, 37, -48},0, {-16, -16},{0x2, 0x62, 0xAF, 0xFF}}}, +++ {{{10, 35, -40},0, {-16, -16},{0xE2, 0x68, 0xBE, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_offset_001_mesh_layer_1_vtx_3 + 0, 10, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(5, 7, 4, 0), +++ gsSP1Triangle(0, 4, 8, 0), +++ gsSP1Triangle(8, 9, 0, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_mesh_layer_1_vtx_0[442] = { +++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, +++ {{{52, 53, 63},0, {382, 130},{0x1F, 0x58, 0x56, 0xFF}}}, +++ {{{55, 44, 71},0, {368, 140},{0xF9, 0x51, 0x62, 0xFF}}}, +++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, +++ {{{44, 22, 78},0, {356, 163},{0xC7, 0x28, 0x6A, 0xFF}}}, +++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, +++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, +++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, +++ {{{19, 6, 56},0, {393, 179},{0x98, 0x25, 0x3F, 0xFF}}}, +++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, +++ {{{6, 6, 29},0, {442, 179},{0x84, 0xE, 0x18, 0xFF}}}, +++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, +++ {{{4, 7, 0},0, {496, 177},{0x81, 0x3, 0x0, 0xFF}}}, +++ {{{6, 6, -29},0, {549, 179},{0x84, 0xE, 0xE8, 0xFF}}}, +++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, +++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, +++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, +++ {{{19, 6, -57},0, {598, 179},{0x96, 0x25, 0xC4, 0xFF}}}, +++ {{{44, 22, -78},0, {635, 163},{0xBF, 0x2B, 0x9C, 0xFF}}}, +++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, +++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, +++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, +++ {{{76, 38, -85},0, {649, 144},{0xE6, 0x5D, 0xAE, 0xFF}}}, +++ {{{55, 44, -71},0, {623, 140},{0xF9, 0x51, 0x9E, 0xFF}}}, +++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, +++ {{{52, 53, -63},0, {609, 130},{0x1F, 0x58, 0xAA, 0xFF}}}, +++ {{{106, 36, -95},0, {668, 146},{0xE5, 0x54, 0xA5, 0xFF}}}, +++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, +++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, +++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, +++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, +++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, +++ {{{67, 90, -14},0, {519, 91},{0xA8, 0x1F, 0xAA, 0xFF}}}, +++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, +++ {{{120, 56, -31},0, {551, 126},{0xAE, 0x34, 0xAE, 0xFF}}}, +++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, +++ {{{63, 91, -5},0, {505, 91},{0x99, 0x4A, 0x0, 0xFF}}}, +++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, +++ {{{64, 90, 0},0, {496, 91},{0x9E, 0x51, 0x0, 0xFF}}}, +++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, +++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, +++ {{{63, 91, 5},0, {486, 91},{0x99, 0x4A, 0x0, 0xFF}}}, +++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, +++ {{{67, 90, 13},0, {470, 91},{0xA8, 0x1F, 0x56, 0xFF}}}, +++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, +++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, +++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, +++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, +++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, +++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, +++ {{{120, 56, 31},0, {440, 126},{0xAE, 0x34, 0x52, 0xFF}}}, +++ {{{106, 36, 95},0, {324, 146},{0xE3, 0x51, 0x5E, 0xFF}}}, +++ {{{76, 38, 85},0, {342, 144},{0xEE, 0x58, 0x5A, 0xFF}}}, +++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, +++ {{{105, -34, 114},0, {289, 221},{0xEB, 0x15, 0x7C, 0xFF}}}, +++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, +++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, +++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, +++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, +++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, +++ {{{17, -45, 103},0, {307, 230},{0xBB, 0x34, 0x5E, 0xFF}}}, +++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, +++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, +++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, +++ {{{1, -48, 70},0, {370, 232},{0x87, 0x25, 0xE, 0xFF}}}, +++ {{{6, -54, 0},0, {496, 239},{0x82, 0xF4, 0x0, 0xFF}}}, +++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, +++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, +++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, +++ {{{1, -48, -70},0, {621, 232},{0x88, 0x27, 0xF2, 0xFF}}}, +++ {{{-31, -121, -92},0, {661, 309},{0x90, 0x3D, 0xFF, 0xFF}}}, +++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, +++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, +++ {{{-21, -121, -119},0, {709, 309},{0xBD, 0x33, 0xA1, 0xFF}}}, +++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, +++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, +++ {{{73, -8, -108},0, {691, 193},{0xE8, 0x28, 0x8A, 0xFF}}}, +++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, +++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, +++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, +++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, +++ {{{128, 32, -100},0, {677, 151},{0x11, 0x2C, 0x8A, 0xFF}}}, +++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, +++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, +++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, +++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, +++ {{{134, 58, -87},0, {654, 126},{0xCF, 0x52, 0xAC, 0xFF}}}, +++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, +++ {{{140, 84, -67},0, {616, 98},{0xC0, 0x45, 0xAB, 0xFF}}}, +++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, +++ {{{127, 97, -48},0, {579, 84},{0xB7, 0x26, 0x9F, 0xFF}}}, +++ {{{106, 106, -33},0, {554, 74},{0xD8, 0x56, 0xAB, 0xFF}}}, +++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, +++ {{{79, 107, -18},0, {526, 74},{0xC5, 0x60, 0xC5, 0xFF}}}, +++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, +++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, +++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, +++ {{{74, 105, -6},0, {505, 77},{0xBF, 0x6A, 0x1A, 0xFF}}}, +++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, +++ {{{76, 102, 0},0, {496, 79},{0xC2, 0x6F, 0x0, 0xFF}}}, +++ {{{74, 105, 6},0, {484, 77},{0xBF, 0x6A, 0xE6, 0xFF}}}, +++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, +++ {{{79, 107, 17},0, {463, 74},{0xC5, 0x60, 0x3B, 0xFF}}}, +++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, +++ {{{106, 106, 33},0, {435, 74},{0xD8, 0x56, 0x55, 0xFF}}}, +++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, +++ {{{127, 97, 48},0, {410, 84},{0xB7, 0x26, 0x61, 0xFF}}}, +++ {{{140, 84, 67},0, {375, 98},{0xC0, 0x45, 0x55, 0xFF}}}, +++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, +++ {{{134, 58, 87},0, {338, 126},{0xCF, 0x52, 0x54, 0xFF}}}, +++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, +++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, +++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, +++ {{{128, 32, 100},0, {314, 151},{0xD, 0x2D, 0x76, 0xFF}}}, +++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, +++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, +++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, +++ {{{159, -85, 136},0, {249, 272},{0x8, 0x1C, 0x7C, 0xFF}}}, +++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, +++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, +++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, +++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, +++ {{{117, -76, 117},0, {284, 263},{0xAE, 0xFF, 0x61, 0xFF}}}, +++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, +++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, +++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, +++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, +++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, +++ {{{99, -97, 85},0, {342, 284},{0xE2, 0x85, 0xF8, 0xFF}}}, +++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, +++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, +++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, +++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, +++ {{{66, -152, 100},0, {314, 342},{0x5C, 0xAC, 0x1A, 0xFF}}}, +++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, +++ {{{38, -127, 133},0, {256, 316},{0x10, 0xFA, 0x7E, 0xFF}}}, +++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, +++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, +++ {{{-31, -121, 91},0, {331, 309},{0x94, 0x3F, 0x19, 0xFF}}}, +++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, +++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, +++ {{{12, -80, 27},0, {447, 267},{0x87, 0xE1, 0xE9, 0xFF}}}, +++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, +++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, +++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, +++ {{{16, -128, 0},0, {496, 316},{0x83, 0xEC, 0x0, 0xFF}}}, +++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, +++ {{{12, -80, -28},0, {544, 267},{0x87, 0xE1, 0x17, 0xFF}}}, +++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, +++ {{{-21, -138, -59},0, {602, 325},{0xB5, 0xFB, 0x67, 0xFF}}}, +++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, +++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, +++ {{{-63, -161, -103},0, {681, 349},{0x94, 0x42, 0xB, 0xFF}}}, +++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, +++ {{{-48, -180, -127},0, {723, 369},{0xDD, 0xED, 0x87, 0xFF}}}, +++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, +++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, +++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, +++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, +++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, +++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, +++ {{{38, -127, -133},0, {735, 316},{0x17, 0xF6, 0x83, 0xFF}}}, +++ {{{105, -34, -114},0, {702, 221},{0xF6, 0xE, 0x82, 0xFF}}}, +++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, +++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, +++ {{{159, -85, -136},0, {742, 272},{0x8, 0x1C, 0x84, 0xFF}}}, +++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, +++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, +++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, +++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, +++ {{{153, 3, -99},0, {674, 181},{0x27, 0x34, 0x93, 0xFF}}}, +++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, +++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, +++ {{{200, 24, -100},0, {677, 160},{0xD1, 0x76, 0x9, 0xFF}}}, +++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, +++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, +++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, +++ {{{232, 39, -105},0, {684, 144},{0xA4, 0x58, 0x1, 0xFF}}}, +++ {{{213, 41, -72},0, {626, 142},{0xB0, 0x55, 0xCD, 0xFF}}}, +++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, +++ {{{195, 42, -46},0, {577, 142},{0xF6, 0x54, 0xA1, 0xFF}}}, +++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, +++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, +++ {{{157, 47, -79},0, {640, 137},{0x55, 0x1F, 0xA7, 0xFF}}}, +++ {{{180, 20, -67},0, {616, 163},{0xC, 0x64, 0xB2, 0xFF}}}, +++ {{{160, 11, -90},0, {658, 174},{0xE, 0x62, 0xB0, 0xFF}}}, +++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, +++ {{{149, 61, -87},0, {651, 121},{0x38, 0x33, 0x9A, 0xFF}}}, +++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, +++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, +++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, +++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, +++ {{{115, 106, -26},0, {542, 74},{0x9, 0x7D, 0xEB, 0xFF}}}, +++ {{{142, 99, -39},0, {565, 81},{0x38, 0x6F, 0xE5, 0xFF}}}, +++ {{{134, 102, -46},0, {579, 79},{0xE, 0x75, 0xD0, 0xFF}}}, +++ {{{150, 86, -67},0, {616, 95},{0x3C, 0x56, 0xB8, 0xFF}}}, +++ {{{117, 109, -14},0, {521, 72},{0x5, 0x7D, 0xE8, 0xFF}}}, +++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, +++ {{{117, 111, 0},0, {496, 70},{0x5, 0x7F, 0x0, 0xFF}}}, +++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, +++ {{{117, 109, 14},0, {470, 72},{0x5, 0x7D, 0x18, 0xFF}}}, +++ {{{115, 106, 26},0, {449, 74},{0x9, 0x7D, 0x15, 0xFF}}}, +++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, +++ {{{134, 102, 46},0, {412, 79},{0xE, 0x75, 0x30, 0xFF}}}, +++ {{{150, 86, 67},0, {375, 95},{0x3C, 0x56, 0x48, 0xFF}}}, +++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, +++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, +++ {{{149, 61, 86},0, {340, 121},{0x38, 0x33, 0x66, 0xFF}}}, +++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, +++ {{{157, 47, 79},0, {352, 137},{0x55, 0x1F, 0x59, 0xFF}}}, +++ {{{195, 42, 45},0, {414, 142},{0xF6, 0x54, 0x5F, 0xFF}}}, +++ {{{180, 20, 67},0, {375, 163},{0xC, 0x64, 0x4E, 0xFF}}}, +++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, +++ {{{195, 50, 38},0, {426, 133},{0x5B, 0x53, 0x21, 0xFF}}}, +++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, +++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, +++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, +++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, +++ {{{213, 41, 71},0, {366, 142},{0xB0, 0x55, 0x33, 0xFF}}}, +++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, +++ {{{232, 39, 104},0, {307, 144},{0xA4, 0x58, 0xFF, 0xFF}}}, +++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, +++ {{{200, 24, 100},0, {314, 160},{0xD1, 0x76, 0xF7, 0xFF}}}, +++ {{{153, 3, 99},0, {317, 181},{0x27, 0x34, 0x6D, 0xFF}}}, +++ {{{196, 25, 108},0, {301, 158},{0xE4, 0x44, 0x68, 0xFF}}}, +++ {{{160, 11, 90},0, {333, 174},{0xE, 0x62, 0x50, 0xFF}}}, +++ {{{191, -6, 91},0, {331, 191},{0x33, 0xF0, 0x73, 0xFF}}}, +++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, +++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, +++ {{{201, -102, 123},0, {273, 288},{0x55, 0xE, 0x5E, 0xFF}}}, +++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, +++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, +++ {{{186, -176, 137},0, {247, 367},{0x51, 0xF6, 0x62, 0xFF}}}, +++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, +++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, +++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, +++ {{{141, -188, 152},0, {222, 379},{0xFC, 0xC, 0x7E, 0xFF}}}, +++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, +++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, +++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, +++ {{{111, -180, 137},0, {247, 369},{0xA7, 0x15, 0x58, 0xFF}}}, +++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, +++ {{{98, -183, 105},0, {305, 372},{0x82, 0x1, 0xEF, 0xFF}}}, +++ {{{126, -203, 70},0, {368, 393},{0xD0, 0xDF, 0x8F, 0xFF}}}, +++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, +++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, +++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, +++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, +++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, +++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, +++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, +++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, +++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, +++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, +++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, +++ {{{114, -82, 62},0, {403, 267},{0xD2, 0x8A, 0xFC, 0xFF}}}, +++ {{{66, -100, 48},0, {410, 288},{0x27, 0x8D, 0x24, 0xFF}}}, +++ {{{133, -104, 46},0, {428, 290},{0xBD, 0x9A, 0x23, 0xFF}}}, +++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, +++ {{{10, -201, 0},0, {496, 390},{0x83, 0x18, 0x0, 0xFF}}}, +++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, +++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, +++ {{{66, -100, -48},0, {582, 288},{0x29, 0x8D, 0xDC, 0xFF}}}, +++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, +++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, +++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, +++ {{{38, -149, -54},0, {593, 337},{0x29, 0xB5, 0x5E, 0xFF}}}, +++ {{{66, -152, -100},0, {677, 342},{0x5C, 0xAC, 0xE6, 0xFF}}}, +++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, +++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, +++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, +++ {{{-40, -195, -113},0, {700, 386},{0x3, 0x87, 0xD8, 0xFF}}}, +++ {{{-8, -181, -72},0, {626, 372},{0x7, 0xA2, 0x55, 0xFF}}}, +++ {{{-48, -190, -87},0, {654, 379},{0xD5, 0xAB, 0x54, 0xFF}}}, +++ {{{-90, -187, -111},0, {695, 376},{0x85, 0xE4, 0xF3, 0xFF}}}, +++ {{{-8, -164, -132},0, {733, 353},{0x4, 0xE7, 0x84, 0xFF}}}, +++ {{{9, -188, -111},0, {695, 379},{0x2F, 0x91, 0xD9, 0xFF}}}, +++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{216, 49, 66},0, {375, 135},{0x1D, 0x7B, 0xF8, 0xFF}}}, +++ {{{238, 47, 111},0, {294, 135},{0x41, 0x46, 0x54, 0xFF}}}, +++ {{{215, -17, 69},0, {370, 202},{0x71, 0x7, 0x3A, 0xFF}}}, +++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, +++ {{{230, -66, 63},0, {382, 251},{0x6A, 0x9, 0x46, 0xFF}}}, +++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, +++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, +++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, +++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, +++ {{{186, -194, 72},0, {366, 383},{0x46, 0xCB, 0xA4, 0xFF}}}, +++ {{{219, -117, 88},0, {335, 304},{0x7C, 0xE8, 0xB, 0xFF}}}, +++ {{{200, -191, 107},0, {301, 381},{0x76, 0xD2, 0xE, 0xFF}}}, +++ {{{169, -242, 121},0, {277, 434},{0x66, 0xB7, 0x13, 0xFF}}}, +++ {{{158, -245, 92},0, {328, 437},{0x3C, 0xB0, 0xB1, 0xFF}}}, +++ {{{128, -283, 131},0, {259, 476},{0x48, 0x9A, 0x1A, 0xFF}}}, +++ {{{158, -231, 147},0, {231, 423},{0x42, 0xDC, 0x67, 0xFF}}}, +++ {{{110, -263, 151},0, {222, 455},{0xE3, 0xEE, 0x7A, 0xFF}}}, +++ {{{84, -309, 138},0, {245, 502},{0xBC, 0x98, 0x1B, 0xFF}}}, +++ {{{92, -256, 124},0, {270, 448},{0x81, 0x7, 0xFB, 0xFF}}}, +++ {{{110, -275, 104},0, {307, 467},{0xE3, 0xB8, 0x9B, 0xFF}}}, +++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, +++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, +++ {{{206, -118, 57},0, {391, 307},{0x5C, 0xBF, 0x3C, 0xFF}}}, +++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, +++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, +++ {{{179, -179, 0},0, {496, 369},{0x96, 0xB9, 0x0, 0xFF}}}, +++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, +++ {{{210, -186, 47},0, {412, 376},{0xD8, 0xD8, 0x72, 0xFF}}}, +++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, +++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, +++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, +++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, +++ {{{153, -144, 0},0, {496, 307},{0xEA, 0x83, 0x0, 0xFF}}}, +++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, +++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, +++ {{{99, -205, 36},0, {431, 395},{0x40, 0xCA, 0x5F, 0xFF}}}, +++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, +++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, +++ {{{36, -210, 39},0, {426, 402},{0xCB, 0xFE, 0x73, 0xFF}}}, +++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, +++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, +++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, +++ {{{8, -270, 23},0, {454, 462},{0xC3, 0xF0, 0x6E, 0xFF}}}, +++ {{{-4, -265, 0},0, {496, 458},{0x85, 0x20, 0x0, 0xFF}}}, +++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, +++ {{{36, -210, -39},0, {565, 402},{0xCB, 0xFE, 0x8D, 0xFF}}}, +++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, +++ {{{99, -205, -37},0, {561, 395},{0x40, 0xCA, 0xA1, 0xFF}}}, +++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, +++ {{{73, -249, 0},0, {496, 441},{0x58, 0xA4, 0x0, 0xFF}}}, +++ {{{107, -209, 0},0, {496, 400},{0x64, 0xB2, 0x0, 0xFF}}}, +++ {{{32, -281, 0},0, {496, 474},{0x47, 0x96, 0x0, 0xFF}}}, +++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, +++ {{{30, -278, 18},0, {463, 472},{0x2C, 0xA6, 0x4F, 0xFF}}}, +++ {{{67, -245, 29},0, {445, 437},{0x36, 0xB8, 0x59, 0xFF}}}, +++ {{{168, 82, 33},0, {435, 100},{0x53, 0x58, 0x27, 0xFF}}}, +++ {{{142, 99, 38},0, {426, 81},{0x38, 0x6F, 0x1B, 0xFF}}}, +++ {{{158, 78, 56},0, {393, 105},{0x5D, 0x47, 0x32, 0xFF}}}, +++ {{{148, 103, 23},0, {454, 79},{0x33, 0x71, 0x1A, 0xFF}}}, +++ {{{175, 86, 0},0, {496, 95},{0x59, 0x5B, 0x0, 0xFF}}}, +++ {{{148, 103, -23},0, {537, 79},{0x33, 0x71, 0xE6, 0xFF}}}, +++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, +++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, +++ {{{219, 27, 0},0, {496, 156},{0x6F, 0x3E, 0x0, 0xFF}}}, +++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{213, 15, 41},0, {421, 167},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{243, -55, 42},0, {419, 242},{0x70, 0x1D, 0x34, 0xFF}}}, +++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, +++ {{{257, -151, 42},0, {419, 339},{0x56, 0xFF, 0x5D, 0xFF}}}, +++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, +++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, +++ {{{260, -222, 35},0, {431, 414},{0x50, 0xE8, 0x60, 0xFF}}}, +++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, +++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, +++ {{{227, -268, 25},0, {451, 460},{0xCB, 0xD2, 0x6A, 0xFF}}}, +++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, +++ {{{212, -263, 0},0, {496, 455},{0x88, 0xD5, 0x0, 0xFF}}}, +++ {{{227, -268, -25},0, {540, 460},{0xCB, 0xD2, 0x96, 0xFF}}}, +++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, +++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, +++ {{{210, -186, -47},0, {579, 376},{0xD8, 0xD8, 0x8E, 0xFF}}}, +++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, +++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, +++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, +++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, +++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, +++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, +++ {{{133, -104, -46},0, {563, 290},{0xB7, 0x9E, 0xDD, 0xFF}}}, +++ {{{99, -97, -85},0, {649, 284},{0xE0, 0x85, 0xFF, 0xFF}}}, +++ {{{114, -82, -50},0, {589, 267},{0xDB, 0x8D, 0xD9, 0xFF}}}, +++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, +++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, +++ {{{117, -76, -118},0, {707, 263},{0xAE, 0xFF, 0x9F, 0xFF}}}, +++ {{{141, -188, -152},0, {770, 379},{0xFC, 0xC, 0x82, 0xFF}}}, +++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, +++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, +++ {{{186, -176, -137},0, {742, 367},{0x51, 0xF6, 0x9E, 0xFF}}}, +++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, +++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, +++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, +++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, +++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, +++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, +++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, +++ {{{201, -102, -123},0, {716, 288},{0x55, 0xE, 0xA2, 0xFF}}}, +++ {{{191, -6, -92},0, {661, 191},{0x33, 0xF0, 0x8D, 0xFF}}}, +++ {{{238, 47, -112},0, {698, 135},{0x41, 0x46, 0xAC, 0xFF}}}, +++ {{{196, 25, -108},0, {691, 158},{0xE4, 0x44, 0x98, 0xFF}}}, +++ {{{213, 15, -42},0, {570, 167},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{216, 49, -66},0, {614, 135},{0x1D, 0x7B, 0x8, 0xFF}}}, +++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, +++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, +++ {{{253, -46, 0},0, {496, 232},{0x79, 0x26, 0x0, 0xFF}}}, +++ {{{272, -156, 0},0, {496, 344},{0x7F, 0x8, 0x0, 0xFF}}}, +++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, +++ {{{260, -222, -36},0, {561, 414},{0x50, 0xE8, 0xA0, 0xFF}}}, +++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, +++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, +++ {{{269, -226, 0},0, {496, 416},{0x7E, 0xED, 0x0, 0xFF}}}, +++ {{{256, -276, 0},0, {496, 469},{0x76, 0xD1, 0x0, 0xFF}}}, +++ {{{252, -274, -20},0, {533, 467},{0x4E, 0xCC, 0xAA, 0xFF}}}, +++ {{{252, -274, 20},0, {458, 467},{0x4E, 0xCC, 0x56, 0xFF}}}, +++ {{{230, -323, 0},0, {496, 516},{0xF1, 0x82, 0x0, 0xFF}}}, +++ {{{230, -66, -63},0, {609, 251},{0x6A, 0x9, 0xBA, 0xFF}}}, +++ {{{243, -55, -42},0, {572, 242},{0x70, 0x1D, 0xCC, 0xFF}}}, +++ {{{257, -151, -42},0, {570, 339},{0x56, 0xFF, 0xA3, 0xFF}}}, +++ {{{215, -17, -69},0, {621, 202},{0x71, 0x7, 0xC6, 0xFF}}}, +++ {{{206, -118, -58},0, {600, 307},{0x5C, 0xBF, 0xC4, 0xFF}}}, +++ {{{219, -117, -89},0, {656, 304},{0x7C, 0xE8, 0xF5, 0xFF}}}, +++ {{{186, -194, -72},0, {626, 383},{0x46, 0xCB, 0x5C, 0xFF}}}, +++ {{{200, -191, -108},0, {688, 381},{0x76, 0xD2, 0xF2, 0xFF}}}, +++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, +++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, +++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, +++ {{{158, -245, -93},0, {663, 437},{0x3C, 0xB0, 0x4F, 0xFF}}}, +++ {{{126, -203, -70},0, {621, 393},{0xD0, 0xDF, 0x71, 0xFF}}}, +++ {{{110, -275, -104},0, {684, 467},{0xE3, 0xB8, 0x65, 0xFF}}}, +++ {{{92, -256, -124},0, {721, 448},{0x81, 0x7, 0x5, 0xFF}}}, +++ {{{98, -183, -106},0, {686, 372},{0x82, 0x1, 0x11, 0xFF}}}, +++ {{{111, -180, -137},0, {744, 369},{0xA7, 0x15, 0xA8, 0xFF}}}, +++ {{{110, -263, -151},0, {770, 455},{0xE3, 0xEE, 0x86, 0xFF}}}, +++ {{{84, -309, -138},0, {744, 502},{0xBC, 0x98, 0xE5, 0xFF}}}, +++ {{{128, -283, -131},0, {733, 476},{0x48, 0x9A, 0xE6, 0xFF}}}, +++ {{{158, -231, -147},0, {760, 423},{0x42, 0xDC, 0x99, 0xFF}}}, +++ {{{169, -242, -121},0, {714, 434},{0x66, 0xB7, 0xED, 0xFF}}}, +++ {{{168, 82, -33},0, {554, 100},{0x53, 0x58, 0xD9, 0xFF}}}, +++ {{{195, 50, -39},0, {565, 133},{0x5B, 0x53, 0xDF, 0xFF}}}, +++ {{{158, 78, -56},0, {596, 105},{0x5D, 0x47, 0xCE, 0xFF}}}, +++ {{{-15, -306, 0},0, {496, 500},{0xAF, 0x9E, 0x0, 0xFF}}}, +++ {{{8, -270, -23},0, {537, 462},{0xC3, 0xF0, 0x92, 0xFF}}}, +++ {{{30, -278, -18},0, {528, 472},{0x2C, 0xA6, 0xB1, 0xFF}}}, +++ {{{67, -245, -29},0, {547, 437},{0x36, 0xB8, 0xA7, 0xFF}}}, +++ {{{-40, -195, 113},0, {291, 386},{0x3, 0x87, 0x28, 0xFF}}}, +++ {{{-8, -164, 132},0, {256, 353},{0xF5, 0xEF, 0x7D, 0xFF}}}, +++ {{{-48, -180, 127},0, {266, 369},{0xE1, 0xEC, 0x7A, 0xFF}}}, +++ {{{9, -188, 111},0, {296, 379},{0x2F, 0x91, 0x27, 0xFF}}}, +++ {{{-8, -181, 72},0, {366, 372},{0x7, 0xA2, 0xAB, 0xFF}}}, +++ {{{-48, -190, 87},0, {335, 379},{0xD5, 0xAB, 0xAC, 0xFF}}}, +++ {{{-90, -187, 110},0, {296, 376},{0x85, 0xE4, 0xD, 0xFF}}}, +++ {{{-63, -161, 103},0, {310, 349},{0x94, 0x43, 0x3, 0xFF}}}, +++ {{{-21, -138, 59},0, {389, 325},{0xB5, 0xFB, 0x99, 0xFF}}}, +++ {{{38, -149, 53},0, {398, 337},{0x29, 0xB5, 0xA2, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(4, 7, 6, 0), +++ gsSP1Triangle(7, 4, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(11, 13, 14, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(2, 4, 3, 0), +++ gsSP1Triangle(4, 2, 5, 0), +++ gsSP1Triangle(6, 5, 2, 0), +++ gsSP1Triangle(6, 2, 7, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 6, 8, 0), +++ gsSP1Triangle(5, 6, 10, 0), +++ gsSP1Triangle(5, 10, 11, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 10, 8, 0), +++ gsSP1Triangle(12, 8, 13, 0), +++ gsSP1Triangle(14, 13, 8, 0), +++ gsSP1Triangle(15, 14, 8, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(3, 5, 0, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(6, 9, 8, 0), +++ gsSP1Triangle(9, 6, 10, 0), +++ gsSP1Triangle(10, 6, 11, 0), +++ gsSP1Triangle(12, 11, 6, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(4, 3, 1, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(6, 7, 4, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(9, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(4, 3, 1, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(5, 1, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(12, 9, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(5, 10, 9, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(14, 12, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(12, 13, 4, 0), +++ gsSP1Triangle(4, 13, 3, 0), +++ gsSP1Triangle(3, 13, 14, 0), +++ gsSP1Triangle(15, 3, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(4, 2, 3, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(2, 4, 3, 0), +++ gsSP1Triangle(2, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(5, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(14, 11, 13, 0), +++ gsSP1Triangle(15, 11, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(6, 4, 7, 0), +++ gsSP1Triangle(7, 4, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(6, 7, 10, 0), +++ gsSP1Triangle(7, 11, 10, 0), +++ gsSP1Triangle(12, 6, 10, 0), +++ gsSP1Triangle(13, 6, 12, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 192, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(4, 5, 0, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(10, 7, 9, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(10, 12, 13, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(14, 12, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 208, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(4, 3, 1, 0), +++ gsSP1Triangle(5, 0, 2, 0), +++ gsSP1Triangle(6, 0, 5, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(9, 5, 10, 0), +++ gsSP1Triangle(5, 2, 10, 0), +++ gsSP1Triangle(10, 2, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSP1Triangle(4, 14, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 224, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(5, 3, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(9, 12, 11, 0), +++ gsSP1Triangle(9, 13, 12, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 240, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(4, 2, 3, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(4, 8, 7, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 8, 11, 0), +++ gsSP1Triangle(11, 8, 12, 0), +++ gsSP1Triangle(12, 8, 13, 0), +++ gsSP1Triangle(13, 8, 14, 0), +++ gsSP1Triangle(8, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 256, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 4, 7, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(10, 7, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 272, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(0, 4, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(6, 9, 10, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(14, 13, 11, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 288, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(0, 3, 4, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(8, 10, 5, 0), +++ gsSP1Triangle(10, 4, 5, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 12, 11, 0), +++ gsSP1Triangle(11, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 304, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 0, 4, 0), +++ gsSP1Triangle(0, 5, 4, 0), +++ gsSP1Triangle(5, 0, 6, 0), +++ gsSP1Triangle(6, 0, 7, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 320, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 4, 7, 0), +++ gsSP1Triangle(5, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(10, 5, 8, 0), +++ gsSP1Triangle(10, 11, 5, 0), +++ gsSP1Triangle(0, 11, 10, 0), +++ gsSP1Triangle(0, 10, 12, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(10, 8, 13, 0), +++ gsSP1Triangle(1, 12, 13, 0), +++ gsSP1Triangle(0, 12, 1, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 334, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(3, 0, 4, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(4, 7, 6, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(11, 10, 8, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(10, 12, 13, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 350, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(13, 12, 10, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 366, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(0, 2, 4, 0), +++ gsSP1Triangle(5, 4, 2, 0), +++ gsSP1Triangle(6, 5, 2, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(10, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 382, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(4, 6, 0, 0), +++ gsSP1Triangle(6, 4, 7, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 9, 0, 0), +++ gsSP1Triangle(9, 6, 10, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 398, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(1, 4, 2, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(5, 8, 6, 0), +++ gsSP1Triangle(5, 7, 9, 0), +++ gsSP1Triangle(10, 5, 9, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(11, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 414, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 3, 5, 0), +++ gsSP1Triangle(7, 3, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(6, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(8, 10, 0, 0), +++ gsSP1Triangle(2, 8, 0, 0), +++ gsSP1Triangle(7, 8, 2, 0), +++ gsSP1Triangle(7, 2, 3, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_0 + 428, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(4, 8, 7, 0), +++ gsSP1Triangle(4, 9, 8, 0), +++ gsSP1Triangle(10, 9, 4, 0), +++ gsSP1Triangle(10, 4, 6, 0), +++ gsSP1Triangle(11, 10, 6, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(9, 12, 8, 0), +++ gsSP1Triangle(8, 12, 13, 0), +++ gsSP1Triangle(13, 7, 8, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_mesh_layer_1_vtx_1[69] = { +++ {{{160, 11, 90},0, {-16, -16},{0xE, 0x62, 0x50, 0xFF}}}, +++ {{{200, 24, 100},0, {-16, -16},{0xD1, 0x76, 0xF7, 0xFF}}}, +++ {{{180, 20, 67},0, {-16, -16},{0xC, 0x64, 0x4E, 0xFF}}}, +++ {{{232, 39, 104},0, {-16, -16},{0xA4, 0x58, 0xFF, 0xFF}}}, +++ {{{213, 41, 71},0, {-16, -16},{0xB0, 0x55, 0x33, 0xFF}}}, +++ {{{195, 42, 45},0, {-16, -16},{0xF6, 0x54, 0x5F, 0xFF}}}, +++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, +++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, +++ {{{6, 6, -29},0, {-16, -16},{0x84, 0xE, 0xE8, 0xFF}}}, +++ {{{4, 7, 0},0, {-16, -16},{0x81, 0x3, 0x0, 0xFF}}}, +++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, +++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, +++ {{{6, 6, 29},0, {-16, -16},{0x84, 0xE, 0x18, 0xFF}}}, +++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, +++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, +++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, +++ {{{19, 6, 56},0, {-16, -16},{0x98, 0x25, 0x3F, 0xFF}}}, +++ {{{44, 22, 78},0, {-16, -16},{0xC7, 0x28, 0x6A, 0xFF}}}, +++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, +++ {{{55, 44, 71},0, {-16, -16},{0xF9, 0x51, 0x62, 0xFF}}}, +++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, +++ {{{52, 53, 63},0, {-16, -16},{0x1F, 0x58, 0x56, 0xFF}}}, +++ {{{45, 67, 34},0, {-16, -16},{0x71, 0x2B, 0x28, 0xFF}}}, +++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, +++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, +++ {{{53, 87, 8},0, {-16, -16},{0x68, 0x41, 0x21, 0xFF}}}, +++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, +++ {{{55, 87, 0},0, {-16, -16},{0x60, 0x54, 0x0, 0xFF}}}, +++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, +++ {{{53, 87, -9},0, {-16, -16},{0x68, 0x41, 0xDF, 0xFF}}}, +++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, +++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, +++ {{{45, 67, -35},0, {-16, -16},{0x71, 0x2B, 0xD8, 0xFF}}}, +++ {{{40, 74, -42},0, {-16, -16},{0x15, 0x5E, 0xAD, 0xFF}}}, +++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, +++ {{{44, 62, -57},0, {-16, -16},{0x4, 0x67, 0xB5, 0xFF}}}, +++ {{{52, 53, -63},0, {-16, -16},{0x1F, 0x58, 0xAA, 0xFF}}}, +++ {{{55, 44, -71},0, {-16, -16},{0xF9, 0x51, 0x9E, 0xFF}}}, +++ {{{39, 41, -71},0, {-16, -16},{0xCB, 0x2E, 0x96, 0xFF}}}, +++ {{{44, 22, -78},0, {-16, -16},{0xBF, 0x2B, 0x9C, 0xFF}}}, +++ {{{19, 6, -57},0, {-16, -16},{0x96, 0x25, 0xC4, 0xFF}}}, +++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, +++ {{{24, 77, -21},0, {-16, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, +++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, +++ {{{14, 61, -15},0, {-16, -16},{0x91, 0x39, 0xEA, 0xFF}}}, +++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, +++ {{{8, 34, -28},0, {-16, -16},{0x87, 0x19, 0xE1, 0xFF}}}, +++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, +++ {{{7, 47, 0},0, {-16, -16},{0x86, 0x24, 0x0, 0xFF}}}, +++ {{{8, 34, 28},0, {-16, -16},{0x87, 0x19, 0x1F, 0xFF}}}, +++ {{{14, 61, 14},0, {-16, -16},{0x91, 0x39, 0x16, 0xFF}}}, +++ {{{21, 44, 53},0, {-16, -16},{0x9F, 0x29, 0x47, 0xFF}}}, +++ {{{24, 77, 20},0, {-16, -16},{0xA0, 0x4C, 0x22, 0xFF}}}, +++ {{{40, 74, 42},0, {-16, -16},{0x15, 0x5E, 0x53, 0xFF}}}, +++ {{{44, 62, 57},0, {-16, -16},{0x4, 0x67, 0x4B, 0xFF}}}, +++ {{{39, 41, 71},0, {-16, -16},{0xCB, 0x2E, 0x6A, 0xFF}}}, +++ {{{42, 89, 22},0, {-16, -16},{0xEA, 0x71, 0x35, 0xFF}}}, +++ {{{47, 88, 22},0, {-16, -16},{0x4F, 0x4D, 0x3F, 0xFF}}}, +++ {{{49, 93, 8},0, {-16, -16},{0x31, 0x73, 0x18, 0xFF}}}, +++ {{{40, 93, 0},0, {-16, -16},{0xC8, 0x72, 0x0, 0xFF}}}, +++ {{{49, 93, -9},0, {-16, -16},{0x31, 0x73, 0xE8, 0xFF}}}, +++ {{{42, 89, -22},0, {-16, -16},{0xEA, 0x71, 0xCB, 0xFF}}}, +++ {{{47, 88, -22},0, {-16, -16},{0x4F, 0x4D, 0xC1, 0xFF}}}, +++ {{{195, 42, -46},0, {-16, -16},{0xF6, 0x54, 0xA1, 0xFF}}}, +++ {{{213, 41, -72},0, {-16, -16},{0xB0, 0x55, 0xCD, 0xFF}}}, +++ {{{180, 20, -67},0, {-16, -16},{0xC, 0x64, 0xB2, 0xFF}}}, +++ {{{232, 39, -105},0, {-16, -16},{0xA4, 0x58, 0x1, 0xFF}}}, +++ {{{200, 24, -100},0, {-16, -16},{0xD1, 0x76, 0x9, 0xFF}}}, +++ {{{160, 11, -90},0, {-16, -16},{0xE, 0x62, 0xB0, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(4, 2, 3, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(10, 6, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 11, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(4, 6, 7, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(6, 9, 8, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 3, 5, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(1, 9, 2, 0), +++ gsSP1Triangle(1, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(13, 15, 11, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 48, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(5, 3, 6, 0), +++ gsSP1Triangle(6, 3, 7, 0), +++ gsSP1Triangle(5, 8, 4, 0), +++ gsSP1Triangle(5, 9, 8, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(4, 8, 11, 0), +++ gsSP1Triangle(2, 4, 11, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_1 + 63, 6, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_mesh_layer_1_vtx_2[38] = { +++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, +++ {{{127, 40, 91},0, {266, 995},{0xEB, 0x49, 0x66, 0xFF}}}, +++ {{{139, 73, 70},0, {88, 691},{0xE9, 0x58, 0x58, 0xFF}}}, +++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, +++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, +++ {{{134, 93, 44},0, {85, 403},{0xEA, 0x64, 0x4C, 0xFF}}}, +++ {{{101, 105, 0},0, {320, -12},{0xE5, 0x7C, 0x0, 0xFF}}}, +++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, +++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, +++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, +++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, +++ {{{134, 93, -44},0, {85, 403},{0xEA, 0x64, 0xB4, 0xFF}}}, +++ {{{139, 73, -70},0, {88, 691},{0xE9, 0x58, 0xA8, 0xFF}}}, +++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, +++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, +++ {{{127, 40, -91},0, {266, 995},{0xEB, 0x49, 0x9A, 0xFF}}}, +++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, +++ {{{101, 38, -87},0, {484, 937},{0xE7, 0x51, 0xA1, 0xFF}}}, +++ {{{59, 36, -75},0, {833, 806},{0xE1, 0x40, 0x97, 0xFF}}}, +++ {{{52, 53, -63},0, {840, 622},{0xDF, 0x45, 0x9B, 0xFF}}}, +++ {{{39, 61, -49},0, {929, 468},{0xD1, 0x58, 0xB1, 0xFF}}}, +++ {{{42, 82, -25},0, {862, 204},{0xDC, 0x6F, 0xCE, 0xFF}}}, +++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, +++ {{{64, 94, 0},0, {648, -12},{0xDA, 0x79, 0x0, 0xFF}}}, +++ {{{44, 86, 0},0, {829, -12},{0xD0, 0x76, 0x0, 0xFF}}}, +++ {{{42, 82, 25},0, {862, 204},{0xDC, 0x6F, 0x32, 0xFF}}}, +++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, +++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, +++ {{{39, 61, 49},0, {929, 468},{0xD1, 0x58, 0x4F, 0xFF}}}, +++ {{{52, 53, 63},0, {840, 622},{0xDF, 0x45, 0x65, 0xFF}}}, +++ {{{59, 36, 75},0, {833, 806},{0xE1, 0x40, 0x69, 0xFF}}}, +++ {{{101, 38, 87},0, {484, 937},{0xE7, 0x51, 0x5F, 0xFF}}}, +++ {{{101, 93, 33},0, {354, 285},{0xEA, 0x6C, 0x40, 0xFF}}}, +++ {{{62, 86, 28},0, {682, 237},{0xE3, 0x6D, 0x3A, 0xFF}}}, +++ {{{61, 65, 58},0, {740, 537},{0xDF, 0x55, 0x59, 0xFF}}}, +++ {{{61, 65, -58},0, {740, 537},{0xDF, 0x55, 0xA7, 0xFF}}}, +++ {{{62, 86, -28},0, {682, 237},{0xE3, 0x6D, 0xC6, 0xFF}}}, +++ {{{101, 93, -33},0, {354, 284},{0xEA, 0x6C, 0xC0, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(2, 4, 3, 0), +++ gsSP1Triangle(2, 5, 4, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(4, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(10, 9, 6, 0), +++ gsSP1Triangle(6, 11, 10, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(10, 12, 13, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 12, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(5, 0, 4, 0), +++ gsSP1Triangle(6, 0, 5, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(7, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(9, 12, 11, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 14, 11, 0), +++ gsSP1Triangle(11, 14, 15, 0), +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_2 + 32, 6, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_mesh_layer_1_vtx_3[8] = { +++ {{{21, 44, -53},0, {530, 626},{0x9F, 0x29, 0xB9, 0xFF}}}, +++ {{{19, 6, -57},0, {896, 1008},{0x96, 0x25, 0xC4, 0xFF}}}, +++ {{{8, 34, -28},0, {896, 421},{0x87, 0x19, 0xE1, 0xFF}}}, +++ {{{39, 41, -71},0, {305, 884},{0xCB, 0x2E, 0x96, 0xFF}}}, +++ {{{44, 62, -57},0, {133, 569},{0x4, 0x67, 0xB5, 0xFF}}}, +++ {{{40, 74, -42},0, {134, 282},{0x15, 0x5E, 0xAD, 0xFF}}}, +++ {{{24, 77, -21},0, {380, -16},{0xA0, 0x4C, 0xDE, 0xFF}}}, +++ {{{14, 61, -15},0, {669, 41},{0x91, 0x39, 0xEA, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_3 + 0, 8, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(6, 5, 0, 0), +++ gsSP1Triangle(7, 6, 0, 0), +++ gsSP1Triangle(2, 7, 0, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_mesh_layer_1_vtx_4[13] = { +++ {{{55, 137, 6},0, {-16, -16},{0x12, 0x3F, 0x6D, 0xFF}}}, +++ {{{42, 129, 0},0, {-16, -16},{0x8A, 0x2F, 0x0, 0xFF}}}, +++ {{{51, 122, 9},0, {-16, -16},{0x9, 0xFB, 0x7F, 0xFF}}}, +++ {{{50, 138, 0},0, {-16, -16},{0xAF, 0x61, 0x0, 0xFF}}}, +++ {{{57, 141, 0},0, {-16, -16},{0x1C, 0x7C, 0x0, 0xFF}}}, +++ {{{61, 137, 0},0, {-16, -16},{0x79, 0x27, 0x0, 0xFF}}}, +++ {{{60, 127, 0},0, {-16, -16},{0x7D, 0xEA, 0x0, 0xFF}}}, +++ {{{56, 115, 0},0, {-16, -16},{0x7C, 0xE5, 0x0, 0xFF}}}, +++ {{{52, 89, 0},0, {-16, -16},{0x39, 0x8E, 0x0, 0xFF}}}, +++ {{{43, 90, 0},0, {-16, -16},{0xB2, 0x9C, 0x0, 0xFF}}}, +++ {{{40, 117, 0},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, +++ {{{51, 122, -9},0, {-16, -16},{0x9, 0xFB, 0x81, 0xFF}}}, +++ {{{55, 137, -6},0, {-16, -16},{0x12, 0x3F, 0x93, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_tri_4[] = { +++ gsSPVertex(mario_000_displaylist_mesh_layer_1_vtx_4 + 0, 13, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(4, 0, 5, 0), +++ gsSP1Triangle(5, 0, 6, 0), +++ gsSP1Triangle(0, 2, 6, 0), +++ gsSP1Triangle(7, 6, 2, 0), +++ gsSP1Triangle(8, 7, 2, 0), +++ gsSP1Triangle(2, 9, 8, 0), +++ gsSP1Triangle(10, 9, 2, 0), +++ gsSP1Triangle(1, 10, 2, 0), +++ gsSP1Triangle(1, 11, 10, 0), +++ gsSP1Triangle(12, 11, 1, 0), +++ gsSP1Triangle(1, 3, 12, 0), +++ gsSP1Triangle(12, 3, 4, 0), +++ gsSP1Triangle(4, 5, 12, 0), +++ gsSP1Triangle(5, 6, 12, 0), +++ gsSP1Triangle(12, 6, 11, 0), +++ gsSP1Triangle(7, 11, 6, 0), +++ gsSP1Triangle(8, 11, 7, 0), +++ gsSP1Triangle(11, 8, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_003_mesh_layer_1_vtx_0[30] = { +++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +++ {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, +++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, +++ {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, +++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, +++ {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, +++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, +++ {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, +++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, +++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, +++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, +++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, +++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, +++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, +++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, +++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{-21, 0, 4},0, {-16, -16},{0xD0, 0x0, 0x76, 0xFF}}}, +++ {{{3, -8, 3},0, {-16, -16},{0xFB, 0x9A, 0x4C, 0xFF}}}, +++ {{{2, 9, 3},0, {-16, -16},{0xFA, 0x66, 0x4C, 0xFF}}}, +++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, +++ {{{2, 9, -7},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, +++ {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, +++ {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, +++ {{{2, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, +++ {{{-21, -6, -6},0, {-16, -16},{0xD7, 0x9A, 0xC0, 0xFF}}}, +++ {{{3, -8, -7},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, +++ {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, +++ {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, +++ {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_003_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(2, 11, 9, 0), +++ gsSP1Triangle(2, 1, 11, 0), +++ gsSP1Triangle(1, 12, 11, 0), +++ gsSP1Triangle(13, 12, 1, 0), +++ gsSP1Triangle(3, 13, 1, 0), +++ gsSP1Triangle(14, 13, 3, 0), +++ gsSP1Triangle(5, 14, 3, 0), +++ gsSP1Triangle(15, 14, 5, 0), +++ gsSP1Triangle(7, 15, 5, 0), +++ gsSP1Triangle(10, 15, 7, 0), +++ gsSPVertex(mario_000_offset_003_mesh_layer_1_vtx_0 + 16, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 6, 3, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(2, 9, 10, 0), +++ gsSP1Triangle(11, 9, 2, 0), +++ gsSP1Triangle(2, 1, 11, 0), +++ gsSP1Triangle(1, 12, 11, 0), +++ gsSP1Triangle(1, 13, 12, 0), +++ gsSP1Triangle(13, 1, 3, 0), +++ gsSP1Triangle(3, 6, 13, 0), +++ gsSP1Triangle(6, 12, 13, 0), +++ gsSP1Triangle(7, 12, 6, 0), +++ gsSP1Triangle(7, 9, 12, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { +++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, +++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, +++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, +++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, +++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_004_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_004_mesh_layer_1_vtx_0[6] = { +++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, +++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, +++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, +++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, +++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_004_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), +++ gsSP1Triangle(6, 1, 0, 0), +++ gsSP1Triangle(7, 1, 6, 0), +++ gsSP1Triangle(7, 8, 1, 0), +++ gsSP1Triangle(8, 4, 1, 0), +++ gsSP1Triangle(9, 4, 8, 0), +++ gsSP1Triangle(9, 5, 4, 0), +++ gsSP1Triangle(9, 3, 5, 0), +++ gsSP1Triangle(10, 3, 9, 0), +++ gsSP1Triangle(2, 3, 10, 0), +++ gsSP1Triangle(11, 2, 10, 0), +++ gsSP1Triangle(11, 0, 2, 0), +++ gsSP1Triangle(6, 0, 11, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_004_mesh_layer_1_vtx_1[12] = { +++ {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, +++ {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, +++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, +++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, +++ {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, +++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, +++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +++ {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, +++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, +++ {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, +++ {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, +++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_004_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(4, 3, 1, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(10, 2, 11, 0), +++ gsSP1Triangle(0, 2, 10, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_003_mesh_layer_1_vtx_0[46] = { +++ {{{17, -38, -39},0, {-16, -16},{0x9E, 0xB8, 0xDB, 0xFF}}}, +++ {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, +++ {{{-10, 26, -38},0, {-16, -16},{0x88, 0xEC, 0xDA, 0xFF}}}, +++ {{{27, -58, 6},0, {-16, -16},{0xA2, 0xAC, 0xE, 0xFF}}}, +++ {{{5, -6, 36},0, {-16, -16},{0x99, 0xD2, 0x3A, 0xFF}}}, +++ {{{-18, 45, 8},0, {-16, -16},{0x82, 0xF5, 0xE, 0xFF}}}, +++ {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, +++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, +++ {{{-10, 26, -38},0, {-16, -16},{0x33, 0x54, 0xAF, 0xFF}}}, +++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, +++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, +++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, +++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, +++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, +++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, +++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, +++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, +++ {{{-18, 45, 8},0, {-16, -16},{0x2D, 0x74, 0x1B, 0xFF}}}, +++ {{{5, -6, 36},0, {-16, -16},{0x43, 0x1C, 0x68, 0xFF}}}, +++ {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, +++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, +++ {{{27, -58, 6},0, {-16, -16},{0x75, 0xD4, 0x17, 0xFF}}}, +++ {{{17, -38, -39},0, {-16, -16},{0x5E, 0xEC, 0xAC, 0xFF}}}, +++ {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, +++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, +++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, +++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, +++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, +++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, +++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, +++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, +++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, +++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, +++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, +++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, +++ {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, +++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, +++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, +++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, +++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, +++ {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, +++ {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, +++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, +++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, +++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, +++ {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_003_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 1, 3, 0), +++ gsSP1Triangle(5, 1, 4, 0), +++ gsSP1Triangle(2, 1, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(7, 6, 9, 0), +++ gsSP1Triangle(10, 9, 6, 0), +++ gsSP1Triangle(6, 11, 10, 0), +++ gsSP1Triangle(6, 12, 11, 0), +++ gsSP1Triangle(6, 13, 12, 0), +++ gsSP1Triangle(8, 13, 6, 0), +++ gsSP1Triangle(14, 13, 8, 0), +++ gsSP1Triangle(8, 15, 14, 0), +++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(2, 5, 4, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 3, 4, 0), +++ gsSP1Triangle(0, 3, 7, 0), +++ gsSP1Triangle(0, 7, 8, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(11, 10, 7, 0), +++ gsSP1Triangle(12, 11, 7, 0), +++ gsSP1Triangle(4, 12, 7, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 14, 11, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(mario_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(3, 0, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(3, 5, 7, 0), +++ gsSP1Triangle(7, 8, 3, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(12, 9, 11, 0), +++ gsSP1Triangle(13, 9, 12, 0), +++ gsSP1Triangle(1, 13, 12, 0), +++ gsSP1Triangle(8, 13, 1, 0), +++ gsSP1Triangle(1, 3, 8, 0), +++ gsSP1Triangle(13, 8, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { +++ {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, +++ {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, +++ {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, +++ {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, +++ {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, +++ {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, +++ {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, +++ {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, +++ {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, +++ {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, +++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, +++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, +++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, +++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, +++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, +++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, +++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, +++ {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, +++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, +++ {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, +++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, +++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, +++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, +++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, +++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, +++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, +++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, +++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, +++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, +++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, +++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, +++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, +++ {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, +++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, +++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, +++ {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, +++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, +++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, +++ {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, +++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, +++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, +++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, +++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, +++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, +++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, +++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, +++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, +++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, +++ {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, +++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, +++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, +++ {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, +++ {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, +++ {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, +++ {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, +++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, +++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, +++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, +++}; +++ +++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(5, 8, 7, 0), +++ gsSP1Triangle(7, 8, 0, 0), +++ gsSP1Triangle(0, 9, 7, 0), +++ gsSP1Triangle(2, 9, 0, 0), +++ gsSP1Triangle(10, 9, 2, 0), +++ gsSP1Triangle(2, 11, 10, 0), +++ gsSP1Triangle(2, 12, 11, 0), +++ gsSP1Triangle(2, 4, 12, 0), +++ gsSP1Triangle(4, 13, 12, 0), +++ gsSP1Triangle(4, 6, 13, 0), +++ gsSP1Triangle(6, 14, 13, 0), +++ gsSP1Triangle(14, 6, 7, 0), +++ gsSP1Triangle(7, 15, 14, 0), +++ gsSP1Triangle(7, 10, 15, 0), +++ gsSP1Triangle(7, 9, 10, 0), +++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(2, 10, 11, 0), +++ gsSP1Triangle(10, 2, 1, 0), +++ gsSP1Triangle(1, 12, 10, 0), +++ gsSP1Triangle(13, 12, 1, 0), +++ gsSP1Triangle(1, 14, 13, 0), +++ gsSP1Triangle(14, 1, 3, 0), +++ gsSP1Triangle(15, 14, 3, 0), +++ gsSP1Triangle(4, 15, 3, 0), +++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 6, 3, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(6, 8, 3, 0), +++ gsSP1Triangle(8, 0, 3, 0), +++ gsSP1Triangle(8, 9, 0, 0), +++ gsSP1Triangle(9, 1, 0, 0), +++ gsSP1Triangle(10, 1, 9, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(11, 14, 12, 0), +++ gsSP1Triangle(15, 14, 11, 0), +++ gsSPVertex(mario_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(5, 7, 9, 0), +++ gsSP1Triangle(9, 4, 5, 0), +++ gsSP1Triangle(9, 1, 4, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_006_mesh_layer_1_vtx_0[41] = { +++ {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, +++ {{{2, 9, 8},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, +++ {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, +++ {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, +++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, +++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, +++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, +++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, +++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, +++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, +++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, +++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, +++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, +++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, +++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, +++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, +++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, +++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, +++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, +++ {{{3, -8, 8},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, +++ {{{2, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, +++ {{{-21, -6, 7},0, {-16, -16},{0xD7, 0x9A, 0x40, 0xFF}}}, +++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, +++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, +++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, +++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, +++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, +++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, +++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x66, 0xB4, 0xFF}}}, +++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, +++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, +++ {{{-21, 0, -3},0, {-16, -16},{0xD0, 0x0, 0x8A, 0xFF}}}, +++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, +++ {{{3, -8, -2},0, {-16, -16},{0xFB, 0x9A, 0xB4, 0xFF}}}, +++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, +++ {{{49, -9, 9},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, +++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_006_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(5, 0, 6, 0), +++ gsSP1Triangle(6, 0, 7, 0), +++ gsSP1Triangle(0, 2, 7, 0), +++ gsSP1Triangle(8, 7, 2, 0), +++ gsSP1Triangle(2, 9, 8, 0), +++ gsSP1Triangle(2, 10, 9, 0), +++ gsSP1Triangle(1, 10, 2, 0), +++ gsSP1Triangle(3, 10, 1, 0), +++ gsSP1Triangle(3, 11, 10, 0), +++ gsSP1Triangle(3, 12, 11, 0), +++ gsSP1Triangle(13, 12, 3, 0), +++ gsSP1Triangle(4, 13, 3, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(3, 5, 7, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(3, 7, 9, 0), +++ gsSP1Triangle(3, 9, 10, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 14, 12, 0), +++ gsSPVertex(mario_000_offset_006_mesh_layer_1_vtx_0 + 32, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(5, 8, 3, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { +++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, +++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, +++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, +++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, +++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, +++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_007_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_007_mesh_layer_1_vtx_0[6] = { +++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, +++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, +++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, +++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, +++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, +++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_007_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), +++ gsSP1Triangle(6, 0, 1, 0), +++ gsSP1Triangle(6, 7, 0, 0), +++ gsSP1Triangle(7, 4, 0, 0), +++ gsSP1Triangle(8, 4, 7, 0), +++ gsSP1Triangle(8, 9, 4, 0), +++ gsSP1Triangle(9, 5, 4, 0), +++ gsSP1Triangle(9, 10, 5, 0), +++ gsSP1Triangle(10, 3, 5, 0), +++ gsSP1Triangle(10, 11, 3, 0), +++ gsSP1Triangle(3, 11, 2, 0), +++ gsSP1Triangle(11, 6, 2, 0), +++ gsSP1Triangle(6, 1, 2, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_007_mesh_layer_1_vtx_1[12] = { +++ {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, +++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, +++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, +++ {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, +++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, +++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, +++ {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, +++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, +++ {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, +++ {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, +++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, +++ {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_007_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(10, 9, 2, 0), +++ gsSP1Triangle(9, 11, 2, 0), +++ gsSP1Triangle(11, 0, 2, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_004_mesh_layer_1_vtx_0[36] = { +++ {{{-14, 26, 41},0, {-16, -16},{0x2D, 0x50, 0x58, 0xFF}}}, +++ {{{13, -38, 41},0, {-16, -16},{0x58, 0xE6, 0x58, 0xFF}}}, +++ {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, +++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, +++ {{{24, -57, -4},0, {-16, -16},{0x75, 0xD3, 0xED, 0xFF}}}, +++ {{{4, -3, -33},0, {-16, -16},{0x4C, 0x21, 0x9F, 0xFF}}}, +++ {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, +++ {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, +++ {{{-19, 47, -4},0, {-16, -16},{0x2D, 0x75, 0xEC, 0xFF}}}, +++ {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, +++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, +++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, +++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, +++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, +++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, +++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, +++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, +++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, +++ {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, +++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, +++ {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, +++ {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, +++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, +++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, +++ {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, +++ {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, +++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, +++ {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, +++ {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, +++ {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, +++ {{{4, -3, -33},0, {-16, -16},{0x99, 0xD6, 0xC2, 0xFF}}}, +++ {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, +++ {{{-19, 47, -4},0, {-16, -16},{0x83, 0xF7, 0xEC, 0xFF}}}, +++ {{{24, -57, -4},0, {-16, -16},{0xA0, 0xAF, 0xED, 0xFF}}}, +++ {{{13, -38, 41},0, {-16, -16},{0x9B, 0xB9, 0x1E, 0xFF}}}, +++ {{{-14, 26, 41},0, {-16, -16},{0x86, 0xEB, 0x1E, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_004_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(5, 6, 3, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(5, 8, 7, 0), +++ gsSP1Triangle(7, 8, 0, 0), +++ gsSP1Triangle(0, 9, 7, 0), +++ gsSP1Triangle(2, 9, 0, 0), +++ gsSP1Triangle(10, 9, 2, 0), +++ gsSP1Triangle(11, 10, 2, 0), +++ gsSP1Triangle(12, 11, 2, 0), +++ gsSP1Triangle(2, 3, 12, 0), +++ gsSP1Triangle(13, 12, 3, 0), +++ gsSP1Triangle(3, 6, 13, 0), +++ gsSP1Triangle(13, 6, 7, 0), +++ gsSP1Triangle(14, 13, 7, 0), +++ gsSP1Triangle(14, 7, 9, 0), +++ gsSP1Triangle(15, 14, 9, 0), +++ gsSP1Triangle(9, 10, 15, 0), +++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(9, 10, 0, 0), +++ gsSP1Triangle(0, 11, 9, 0), +++ gsSP1Triangle(11, 0, 2, 0), +++ gsSP1Triangle(12, 11, 2, 0), +++ gsSP1Triangle(4, 12, 2, 0), +++ gsSP1Triangle(4, 13, 12, 0), +++ gsSP1Triangle(5, 13, 4, 0), +++ gsSP1Triangle(8, 13, 5, 0), +++ gsSP1Triangle(9, 13, 8, 0), +++ gsSP1Triangle(11, 13, 9, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSPVertex(mario_000_displaylist_004_mesh_layer_1_vtx_0 + 30, 6, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 1, 3, 0), +++ gsSP1Triangle(5, 1, 4, 0), +++ gsSP1Triangle(2, 1, 5, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { +++ {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, +++ {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, +++ {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, +++ {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, +++ {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, +++ {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, +++ {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, +++ {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, +++ {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, +++ {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, +++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, +++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, +++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, +++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, +++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, +++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, +++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, +++ {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, +++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, +++ {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, +++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, +++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, +++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, +++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, +++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, +++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, +++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, +++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, +++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, +++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, +++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, +++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, +++ {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, +++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, +++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, +++ {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, +++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, +++ {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, +++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, +++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, +++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, +++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, +++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, +++ {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, +++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, +++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, +++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, +++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, +++ {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, +++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, +++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, +++ {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, +++ {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, +++ {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, +++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, +++ {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, +++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, +++}; +++ +++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(7, 8, 0, 0), +++ gsSP1Triangle(0, 9, 7, 0), +++ gsSP1Triangle(2, 9, 0, 0), +++ gsSP1Triangle(10, 9, 2, 0), +++ gsSP1Triangle(11, 10, 2, 0), +++ gsSP1Triangle(12, 11, 2, 0), +++ gsSP1Triangle(2, 4, 12, 0), +++ gsSP1Triangle(13, 12, 4, 0), +++ gsSP1Triangle(13, 4, 5, 0), +++ gsSP1Triangle(14, 13, 5, 0), +++ gsSP1Triangle(14, 5, 7, 0), +++ gsSP1Triangle(15, 14, 7, 0), +++ gsSP1Triangle(10, 15, 7, 0), +++ gsSP1Triangle(7, 9, 10, 0), +++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 8, 9, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(11, 10, 2, 0), +++ gsSP1Triangle(2, 1, 11, 0), +++ gsSP1Triangle(1, 12, 11, 0), +++ gsSP1Triangle(1, 13, 12, 0), +++ gsSP1Triangle(1, 14, 13, 0), +++ gsSP1Triangle(3, 14, 1, 0), +++ gsSP1Triangle(3, 15, 14, 0), +++ gsSP1Triangle(3, 4, 15, 0), +++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(7, 3, 5, 0), +++ gsSP1Triangle(7, 9, 3, 0), +++ gsSP1Triangle(9, 0, 3, 0), +++ gsSP1Triangle(9, 10, 0, 0), +++ gsSP1Triangle(0, 10, 1, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 12, 11, 0), +++ gsSP1Triangle(14, 15, 12, 0), +++ gsSPVertex(mario_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 4, 0, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 7, 4, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(7, 8, 1, 0), +++ gsSP1Triangle(1, 3, 7, 0), +++ gsSP1Triangle(3, 4, 7, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { +++ {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, +++ {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, +++ {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, +++ {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, +++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, +++ {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, +++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, +++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, +++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, +++ {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, +++ {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, +++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, +++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, +++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, +++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, +++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, +++ {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, +++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, +++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, +++ {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, +++ {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, +++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, +++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, +++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, +++ {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, +++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, +++ {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, +++ {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, +++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, +++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, +++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, +++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, +++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, +++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, +++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, +++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, +++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, +++ {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, +++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, +++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, +++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, +++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, +++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, +++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, +++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, +++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, +++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, +++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, +++ {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, +++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, +++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, +++ {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, +++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, +++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, +++ {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, +++ {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, +++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, +++ {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, +++ {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, +++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, +++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, +++ {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, +++ {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, +++}; +++ +++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(4, 2, 5, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 11, 8, 0), +++ gsSP1Triangle(11, 12, 8, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(13, 11, 14, 0), +++ gsSP1Triangle(14, 11, 15, 0), +++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(4, 5, 1, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(4, 7, 6, 0), +++ gsSP1Triangle(7, 4, 8, 0), +++ gsSP1Triangle(9, 8, 4, 0), +++ gsSP1Triangle(9, 4, 1, 0), +++ gsSP1Triangle(1, 10, 9, 0), +++ gsSP1Triangle(10, 1, 11, 0), +++ gsSP1Triangle(8, 9, 12, 0), +++ gsSP1Triangle(8, 12, 7, 0), +++ gsSP1Triangle(7, 12, 13, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(4, 0, 5, 0), +++ gsSP1Triangle(5, 0, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(13, 4, 14, 0), +++ gsSP1Triangle(4, 5, 14, 0), +++ gsSP1Triangle(14, 5, 7, 0), +++ gsSP1Triangle(7, 15, 14, 0), +++ gsSPVertex(mario_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(5, 6, 3, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(8, 11, 10, 0), +++ gsSP1Triangle(10, 11, 1, 0), +++ gsSP1Triangle(1, 11, 12, 0), +++ gsSP1Triangle(10, 1, 0, 0), +++ gsSP1Triangle(0, 13, 10, 0), +++ gsSP1Triangle(0, 14, 13, 0), +++ gsSP1Triangle(3, 14, 0, 0), +++ gsSP1Triangle(3, 6, 14, 0), +++ gsSP1Triangle(14, 6, 7, 0), +++ gsSP1Triangle(13, 14, 7, 0), +++ gsSP1Triangle(7, 9, 13, 0), +++ gsSP1Triangle(10, 13, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_009_skinned_mesh_layer_1_vtx_0[9] = { +++ {{{52, -3, 54},0, {289, 551},{0xDC, 0xEB, 0x78, 0xFF}}}, +++ {{{50, 16, 51},0, {298, 509},{0xC3, 0x47, 0x56, 0xFF}}}, +++ {{{56, -27, 45},0, {324, 604},{0xC2, 0xA4, 0x3F, 0xFF}}}, +++ {{{58, -31, 18},0, {426, 616},{0xDA, 0x8A, 0x1D, 0xFF}}}, +++ {{{35, -33, 13},0, {442, 620},{0x10, 0xB3, 0x64, 0xFF}}}, +++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, +++ {{{45, 28, 13},0, {442, 479},{0xB4, 0x66, 0x5, 0xFF}}}, +++ {{{18, -51, 12},0, {447, 662},{0xDD, 0xD8, 0x73, 0xFF}}}, +++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_009_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_009_mesh_layer_1_vtx_0[6] = { +++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, +++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, +++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, +++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, +++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, +++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_009_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_0 + 0, 6, 9), +++ gsSP1Triangle(9, 0, 1, 0), +++ gsSP1Triangle(10, 0, 9, 0), +++ gsSP1Triangle(10, 2, 0, 0), +++ gsSP1Triangle(2, 10, 3, 0), +++ gsSP1Triangle(10, 4, 3, 0), +++ gsSP1Triangle(4, 10, 11, 0), +++ gsSP1Triangle(11, 7, 4, 0), +++ gsSP1Triangle(11, 8, 7, 0), +++ gsSP1Triangle(5, 8, 11, 0), +++ gsSP1Triangle(11, 12, 5, 0), +++ gsSP1Triangle(13, 5, 12, 0), +++ gsSP1Triangle(5, 13, 6, 0), +++ gsSP1Triangle(1, 6, 13, 0), +++ gsSP1Triangle(13, 14, 1, 0), +++ gsSP1Triangle(9, 1, 14, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_009_mesh_layer_1_vtx_1[13] = { +++ {{{-2, -23, 3},0, {324, 511},{0xA2, 0xC7, 0x40, 0xFF}}}, +++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, +++ {{{-3, -5, 9},0, {298, 551},{0x9A, 0x48, 0x17, 0xFF}}}, +++ {{{2, -23, -20},0, {407, 509},{0xA7, 0xC6, 0xBB, 0xFF}}}, +++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, +++ {{{14, -5, -25},0, {428, 551},{0x21, 0xFE, 0x85, 0xFF}}}, +++ {{{4, -3, -29},0, {445, 555},{0x77, 0xF3, 0xD6, 0xFF}}}, +++ {{{7, 12, -19},0, {405, 590},{0xC3, 0x53, 0xB5, 0xFF}}}, +++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, +++ {{{-3, 12, 1},0, {331, 590},{0x99, 0x20, 0x43, 0xFF}}}, +++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, +++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, +++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_009_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(2, 11, 9, 0), +++ gsSP1Triangle(2, 1, 11, 0), +++ gsSP1Triangle(12, 5, 8, 0), +++ gsSP1Triangle(5, 12, 4, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { +++ {{{61, 10, 6},0, {259, 592},{0xF6, 0x68, 0x49, 0xFF}}}, +++ {{{78, -17, 7},0, {252, 511},{0xF8, 0x97, 0x48, 0xFF}}}, +++ {{{71, -3, 11},0, {231, 551},{0xF0, 0xFE, 0x7E, 0xFF}}}, +++ {{{63, 10, -11},0, {349, 592},{0x8, 0x6B, 0xBB, 0xFF}}}, +++ {{{79, -17, -10},0, {345, 511},{0xB, 0x98, 0xB8, 0xFF}}}, +++ {{{75, -3, -16},0, {375, 551},{0x10, 0x5, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_010_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_010_mesh_layer_1_vtx_0[6] = { +++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, +++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, +++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, +++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, +++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, +++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), +++ gsSP1Triangle(1, 6, 2, 0), +++ gsSP1Triangle(1, 7, 6, 0), +++ gsSP1Triangle(7, 1, 8, 0), +++ gsSP1Triangle(4, 8, 1, 0), +++ gsSP1Triangle(9, 8, 4, 0), +++ gsSP1Triangle(5, 9, 4, 0), +++ gsSP1Triangle(3, 9, 5, 0), +++ gsSP1Triangle(3, 10, 9, 0), +++ gsSP1Triangle(0, 10, 3, 0), +++ gsSP1Triangle(11, 10, 0, 0), +++ gsSP1Triangle(6, 11, 0, 0), +++ gsSP1Triangle(2, 6, 0, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_010_mesh_layer_1_vtx_1[9] = { +++ {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, +++ {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, +++ {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, +++ {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, +++ {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, +++ {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, +++ {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, +++ {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, +++ {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 1, 3, 0), +++ gsSP1Triangle(5, 1, 4, 0), +++ gsSP1Triangle(6, 1, 5, 0), +++ gsSP1Triangle(7, 1, 6, 0), +++ gsSP1Triangle(8, 1, 7, 0), +++ gsSP1Triangle(2, 1, 8, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_010_mesh_layer_1_vtx_2[41] = { +++ {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, +++ {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, +++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, +++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, +++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, +++ {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, +++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, +++ {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, +++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, +++ {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, +++ {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, +++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, +++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, +++ {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, +++ {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, +++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, +++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, +++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, +++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, +++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, +++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, +++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, +++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, +++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, +++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, +++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, +++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, +++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, +++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, +++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, +++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, +++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, +++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, +++ {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, +++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, +++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, +++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, +++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, +++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, +++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, +++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(8, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 12, 10, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(12, 14, 15, 0), +++ gsSP1Triangle(14, 0, 15, 0), +++ gsSP1Triangle(15, 0, 2, 0), +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(4, 2, 5, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 4, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSP1Triangle(15, 14, 1, 0), +++ gsSP1Triangle(0, 15, 1, 0), +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 1, 3, 0), +++ gsSP1Triangle(5, 1, 4, 0), +++ gsSP1Triangle(6, 1, 5, 0), +++ gsSP1Triangle(7, 1, 6, 0), +++ gsSP1Triangle(8, 1, 7, 0), +++ gsSP1Triangle(2, 1, 8, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_010_mesh_layer_1_vtx_3[16] = { +++ {{{2, -3, 16},0, {205, 551},{0xE6, 0xF6, 0x7C, 0xFF}}}, +++ {{{43, -12, 22},0, {124, 530},{0xEF, 0xD0, 0x74, 0xFF}}}, +++ {{{43, -1, 22},0, {124, 572},{0xF7, 0x2C, 0x77, 0xFF}}}, +++ {{{-2, -17, 9},0, {242, 509},{0xED, 0x97, 0x45, 0xFF}}}, +++ {{{-6, -3, 14},0, {217, 551},{0xE0, 0xF2, 0x7A, 0xFF}}}, +++ {{{-9, 11, 11},0, {233, 595},{0xEF, 0x61, 0x50, 0xFF}}}, +++ {{{42, 7, 13},0, {180, 602},{0x7, 0x75, 0x31, 0xFF}}}, +++ {{{42, 7, 1},0, {256, 602},{0x11, 0x77, 0xD6, 0xFF}}}, +++ {{{-8, 11, -8},0, {331, 595},{0xB, 0x6E, 0xC2, 0xFF}}}, +++ {{{42, -1, -7},0, {312, 572},{0x17, 0x31, 0x8D, 0xFF}}}, +++ {{{6, -3, -13},0, {361, 551},{0x11, 0x9, 0x82, 0xFF}}}, +++ {{{42, -12, -7},0, {312, 530},{0x13, 0xCC, 0x8E, 0xFF}}}, +++ {{{0, -17, -9},0, {338, 509},{0x5, 0x97, 0xB8, 0xFF}}}, +++ {{{42, -20, 1},0, {256, 502},{0x2, 0x87, 0xD9, 0xFF}}}, +++ {{{42, -20, 13},0, {180, 502},{0xF5, 0x8B, 0x31, 0xFF}}}, +++ {{{-2, -3, -15},0, {368, 551},{0x12, 0x7, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 0, 4, 0), +++ gsSP1Triangle(4, 0, 5, 0), +++ gsSP1Triangle(0, 2, 5, 0), +++ gsSP1Triangle(5, 2, 6, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(5, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(12, 13, 3, 0), +++ gsSP1Triangle(14, 3, 13, 0), +++ gsSP1Triangle(14, 1, 3, 0), +++ gsSP1Triangle(15, 10, 12, 0), +++ gsSP1Triangle(8, 10, 15, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_011_mesh_layer_1_vtx_0[58] = { +++ {{{-28, 59, 39},0, {1000, -7},{0xDF, 0x69, 0x40, 0xFF}}}, +++ {{{-32, 39, 45},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, +++ {{{2, 52, 51},0, {1000, 32},{0xD, 0x5F, 0x54, 0xFF}}}, +++ {{{-4, 37, 52},0, {864, 32},{0xF0, 0xA, 0x7E, 0xFF}}}, +++ {{{44, 26, 53},0, {896, 192},{0x2, 0x2, 0x7F, 0xFF}}}, +++ {{{48, 35, 52},0, {1000, 192},{0x1F, 0x58, 0x56, 0xFF}}}, +++ {{{87, 10, 51},0, {896, 258},{0xA, 0xF9, 0x7E, 0xFF}}}, +++ {{{91, 19, 50},0, {1000, 258},{0x29, 0x55, 0x55, 0xFF}}}, +++ {{{112, 0, 47},0, {898, 323},{0x20, 0xE8, 0x79, 0xFF}}}, +++ {{{116, 9, 47},0, {1001, 323},{0x3E, 0x49, 0x54, 0xFF}}}, +++ {{{143, -6, 31},0, {1001, 395},{0x5E, 0x32, 0x45, 0xFF}}}, +++ {{{140, -14, 31},0, {907, 395},{0x3F, 0xC9, 0x60, 0xFF}}}, +++ {{{157, -20, 10},0, {1001, 436},{0x7F, 0xF6, 0xFD, 0xFF}}}, +++ {{{153, -25, 10},0, {915, 431},{0x54, 0xA1, 0x1, 0xFF}}}, +++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, +++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, +++ {{{140, -15, -10},0, {907, 395},{0x38, 0xC5, 0x9E, 0xFF}}}, +++ {{{112, -2, -23},0, {898, 323},{0x1C, 0xE2, 0x88, 0xFF}}}, +++ {{{143, -7, -11},0, {1001, 395},{0x58, 0x2C, 0xB0, 0xFF}}}, +++ {{{115, 7, -23},0, {1001, 323},{0x3C, 0x45, 0xA9, 0xFF}}}, +++ {{{87, 8, -29},0, {896, 258},{0xC, 0xE9, 0x84, 0xFF}}}, +++ {{{90, 17, -29},0, {1000, 258},{0x2B, 0x4C, 0xA4, 0xFF}}}, +++ {{{43, 23, -33},0, {896, 192},{0x1, 0xEF, 0x82, 0xFF}}}, +++ {{{47, 33, -34},0, {1000, 192},{0x21, 0x4E, 0xA2, 0xFF}}}, +++ {{{1, 50, -34},0, {1000, 32},{0xE, 0x55, 0xA3, 0xFF}}}, +++ {{{-5, 35, -33},0, {864, 32},{0xEF, 0xF7, 0x82, 0xFF}}}, +++ {{{-28, 57, -26},0, {1000, -7},{0xDC, 0x5D, 0xB1, 0xFF}}}, +++ {{{-33, 37, -27},0, {832, -7},{0xB5, 0x8, 0x9A, 0xFF}}}, +++ {{{-28, 59, 39},0, {1000, 1070},{0xDF, 0x69, 0x40, 0xFF}}}, +++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, +++ {{{-32, 39, 45},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, +++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, +++ {{{-41, 57, -9},0, {1000, 722},{0xA6, 0x54, 0xE3, 0xFF}}}, +++ {{{-44, 28, 19},0, {663, 770},{0x83, 0xA, 0x16, 0xFF}}}, +++ {{{-40, 58, 25},0, {1000, 782},{0xA6, 0x55, 0x1A, 0xFF}}}, +++ {{{-44, 27, -5},0, {663, 734},{0x84, 0x9, 0xE7, 0xFF}}}, +++ {{{-33, 37, -27},0, {805, 291},{0xB5, 0x8, 0x9A, 0xFF}}}, +++ {{{-28, 57, -26},0, {1000, 434},{0xDC, 0x5D, 0xB1, 0xFF}}}, +++ {{{-41, 57, -9},0, {418, 1519},{0xA6, 0x54, 0xE3, 0xFF}}}, +++ {{{-40, 58, 25},0, {467, 1519},{0xA6, 0x55, 0x1A, 0xFF}}}, +++ {{{-28, 59, 39},0, {489, 1413},{0xDF, 0x69, 0x40, 0xFF}}}, +++ {{{-28, 57, -26},0, {395, 1413},{0xDC, 0x5D, 0xB1, 0xFF}}}, +++ {{{1, 50, -34},0, {384, 1139},{0xE, 0x55, 0xA3, 0xFF}}}, +++ {{{2, 52, 51},0, {506, 1139},{0xD, 0x5F, 0x54, 0xFF}}}, +++ {{{47, 33, -34},0, {384, 690},{0x21, 0x4E, 0xA2, 0xFF}}}, +++ {{{48, 35, 52},0, {509, 690},{0x1F, 0x58, 0x56, 0xFF}}}, +++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, +++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, +++ {{{90, 17, -29},0, {390, 269},{0x2B, 0x4C, 0xA4, 0xFF}}}, +++ {{{91, 19, 50},0, {506, 269},{0x29, 0x55, 0x55, 0xFF}}}, +++ {{{115, 7, -23},0, {399, 23},{0x3C, 0x45, 0xA9, 0xFF}}}, +++ {{{116, 9, 47},0, {500, 23},{0x3E, 0x49, 0x54, 0xFF}}}, +++ {{{143, -6, 31},0, {477, -261},{0x5E, 0x32, 0x45, 0xFF}}}, +++ {{{143, -7, -11},0, {415, -261},{0x58, 0x2C, 0xB0, 0xFF}}}, +++ {{{157, -20, 10},0, {444, -427},{0x7F, 0xF6, 0xFD, 0xFF}}}, +++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, +++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, +++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(11, 10, 8, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(4, 0, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 6, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 10, 8, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_0 + 48, 10, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(2, 4, 5, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_011_mesh_layer_1_vtx_1[16] = { +++ {{{44, 26, 53},0, {321, 28},{0xF0, 0x6C, 0x42, 0xFF}}}, +++ {{{45, 22, 59},0, {322, 24},{0xEC, 0x2D, 0x75, 0xFF}}}, +++ {{{87, 10, 51},0, {338, 29},{0x54, 0x3D, 0x49, 0xFF}}}, +++ {{{40, 24, 52},0, {320, 26},{0xA5, 0x36, 0x47, 0xFF}}}, +++ {{{31, 0, 49},0, {320, 1},{0x9B, 0xF3, 0x4B, 0xFF}}}, +++ {{{36, -1, 55},0, {322, 1},{0xD3, 0xDD, 0x72, 0xFF}}}, +++ {{{43, 3, 52},0, {324, 8},{0x39, 0x4, 0x71, 0xFF}}}, +++ {{{74, -8, 49},0, {335, 8},{0xF5, 0x8, 0x7E, 0xFF}}}, +++ {{{76, -15, 50},0, {337, 2},{0x16, 0xBD, 0x69, 0xFF}}}, +++ {{{33, -5, 48},0, {321, -2},{0xC4, 0xAC, 0x4A, 0xFF}}}, +++ {{{76, -20, 42},0, {338, -1},{0x4, 0x98, 0x48, 0xFF}}}, +++ {{{81, -18, 43},0, {339, 2},{0x41, 0xAF, 0x49, 0xFF}}}, +++ {{{85, 8, 56},0, {337, 25},{0x30, 0xA, 0x75, 0xFF}}}, +++ {{{90, 6, 50},0, {339, 26},{0x64, 0xE3, 0x49, 0xFF}}}, +++ {{{78, 4, 51},0, {335, 20},{0xCA, 0xD4, 0x6A, 0xFF}}}, +++ {{{48, 15, 53},0, {323, 20},{0x22, 0xBA, 0x64, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(5, 1, 4, 0), +++ gsSP1Triangle(5, 6, 1, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(5, 9, 8, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(8, 10, 11, 0), +++ gsSP1Triangle(12, 8, 11, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(12, 13, 2, 0), +++ gsSP1Triangle(1, 12, 2, 0), +++ gsSP1Triangle(12, 1, 14, 0), +++ gsSP1Triangle(14, 1, 15, 0), +++ gsSP1Triangle(6, 15, 1, 0), +++ gsSP1Triangle(12, 14, 8, 0), +++ gsSP1Triangle(8, 14, 7, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_011_mesh_layer_1_vtx_2[46] = { +++ {{{44, 26, 53},0, {0, 981},{0x2, 0x2, 0x7F, 0xFF}}}, +++ {{{-4, 37, 52},0, {0, 988},{0xF0, 0xA, 0x7E, 0xFF}}}, +++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, +++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, +++ {{{-32, 39, 45},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, +++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, +++ {{{-44, 28, 19},0, {6, 994},{0x83, 0xA, 0x16, 0xFF}}}, +++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, +++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, +++ {{{-44, 27, -5},0, {10, 994},{0x84, 0x9, 0xE7, 0xFF}}}, +++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, +++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, +++ {{{-33, 37, -27},0, {14, 992},{0xB5, 0x8, 0x9A, 0xFF}}}, +++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, +++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, +++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, +++ {{{26, -25, -22},0, {14, 981},{0xF7, 0xAA, 0xA3, 0xFF}}}, +++ {{{-5, 35, -33},0, {15, 988},{0xEF, 0xF7, 0x82, 0xFF}}}, +++ {{{43, 23, -33},0, {15, 981},{0x1, 0xEF, 0x82, 0xFF}}}, +++ {{{-16, -30, 7},0, {10, 987},{0xD5, 0x88, 0xFE, 0xFF}}}, +++ {{{-22, -12, -20},0, {14, 988},{0xE1, 0xB8, 0x9C, 0xFF}}}, +++ {{{-42, -7, -16},0, {13, 992},{0xA3, 0xC8, 0xBE, 0xFF}}}, +++ {{{-45, -5, 9},0, {9, 992},{0x8B, 0xCF, 0x2, 0xFF}}}, +++ {{{-42, -6, 36},0, {4, 992},{0xA8, 0xCB, 0x4B, 0xFF}}}, +++ {{{-21, -12, 37},0, {4, 988},{0xE0, 0xB2, 0x5F, 0xFF}}}, +++ {{{26, -23, 42},0, {3, 981},{0xF2, 0xA8, 0x5B, 0xFF}}}, +++ {{{23, -33, 8},0, {9, 981},{0xF5, 0x82, 0x2, 0xFF}}}, +++ {{{-10, 19, 51},0, {1, 988},{0xE6, 0xEC, 0x7B, 0xFF}}}, +++ {{{38, 9, 52},0, {0, 981},{0xFF, 0xEC, 0x7D, 0xFF}}}, +++ {{{-34, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, +++ {{{-35, 24, -25},0, {14, 992},{0xB2, 0xFC, 0x9C, 0xFF}}}, +++ {{{82, -4, 49},0, {1, 974},{0x6, 0xE1, 0x7B, 0xFF}}}, +++ {{{112, 0, 47},0, {1, 970},{0x20, 0xE8, 0x79, 0xFF}}}, +++ {{{87, 10, 51},0, {0, 974},{0xA, 0xF9, 0x7E, 0xFF}}}, +++ {{{101, -30, 37},0, {3, 970},{0x13, 0xA3, 0x55, 0xFF}}}, +++ {{{73, -29, 42},0, {3, 974},{0x0, 0xA6, 0x5A, 0xFF}}}, +++ {{{98, -38, 10},0, {8, 970},{0x4, 0x81, 0x2, 0xFF}}}, +++ {{{70, -38, 10},0, {9, 974},{0xF9, 0x81, 0x2, 0xFF}}}, +++ {{{73, -30, -18},0, {13, 974},{0x2, 0xA4, 0xA8, 0xFF}}}, +++ {{{101, -32, -14},0, {12, 970},{0x12, 0xA3, 0xAB, 0xFF}}}, +++ {{{87, 8, -29},0, {14, 974},{0xC, 0xE9, 0x84, 0xFF}}}, +++ {{{112, -2, -23},0, {13, 970},{0x1C, 0xE2, 0x88, 0xFF}}}, +++ {{{140, -15, -10},0, {11, 966},{0x38, 0xC5, 0x9E, 0xFF}}}, +++ {{{136, -35, 10},0, {8, 965},{0x32, 0x8B, 0x0, 0xFF}}}, +++ {{{153, -25, 10},0, {7, 963},{0x54, 0xA1, 0x1, 0xFF}}}, +++ {{{140, -14, 31},0, {3, 966},{0x3F, 0xC9, 0x60, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 14, 11, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 16, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(8, 7, 3, 0), +++ gsSP1Triangle(9, 8, 3, 0), +++ gsSP1Triangle(9, 3, 10, 0), +++ gsSP1Triangle(10, 3, 0, 0), +++ gsSP1Triangle(8, 9, 11, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(11, 13, 8, 0), +++ gsSP1Triangle(8, 13, 7, 0), +++ gsSP1Triangle(4, 5, 14, 0), +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_2 + 31, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 0, 3, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(5, 7, 8, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(8, 10, 11, 0), +++ gsSP1Triangle(12, 8, 11, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(3, 12, 14, 0), +++ gsSP1Triangle(14, 1, 3, 0), +++ gsSP1Triangle(5, 12, 3, 0), +++ gsSP1Triangle(5, 8, 12, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_011_mesh_layer_1_vtx_3[12] = { +++ {{{87, 10, 51},0, {-16, -16},{0xA, 0xF9, 0x7E, 0xFF}}}, +++ {{{44, 26, 53},0, {-16, -16},{0x2, 0x2, 0x7F, 0xFF}}}, +++ {{{82, -4, 49},0, {-16, -16},{0x6, 0xE1, 0x7B, 0xFF}}}, +++ {{{38, 9, 52},0, {-16, -16},{0xFF, 0xEC, 0x7D, 0xFF}}}, +++ {{{73, -29, 42},0, {-16, -16},{0x0, 0xA6, 0x5A, 0xFF}}}, +++ {{{26, -23, 42},0, {-16, -16},{0xF2, 0xA8, 0x5B, 0xFF}}}, +++ {{{70, -38, 10},0, {-16, -16},{0xF9, 0x81, 0x2, 0xFF}}}, +++ {{{23, -33, 8},0, {-16, -16},{0xF5, 0x82, 0x2, 0xFF}}}, +++ {{{26, -25, -22},0, {-16, -16},{0xF7, 0xAA, 0xA3, 0xFF}}}, +++ {{{73, -30, -18},0, {-16, -16},{0x2, 0xA4, 0xA8, 0xFF}}}, +++ {{{43, 23, -33},0, {-16, -16},{0x1, 0xEF, 0x82, 0xFF}}}, +++ {{{87, 8, -29},0, {-16, -16},{0xC, 0xE9, 0x84, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 1, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(6, 8, 9, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_0[4] = { +++ {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, +++ {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, +++ {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_002_mesh_layer_4_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_002_mesh_layer_4_vtx_1[4] = { +++ {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +++ {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_002_mesh_layer_4_tri_1[] = { +++ gsSPVertex(mario_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_012_skinned_mesh_layer_1_vtx_0[10] = { +++ {{{45, 28, -13},0, {542, 479},{0xB4, 0x66, 0xFB, 0xFF}}}, +++ {{{19, -6, 0},0, {491, 560},{0x88, 0x2A, 0x0, 0xFF}}}, +++ {{{43, 27, 0},0, {491, 483},{0xB6, 0x67, 0x0, 0xFF}}}, +++ {{{12, -47, 0},0, {491, 653},{0x84, 0x4, 0x1A, 0xFF}}}, +++ {{{11, -51, -12},0, {537, 662},{0xB2, 0xE0, 0xA1, 0xFF}}}, +++ {{{35, -33, -13},0, {542, 620},{0xD, 0xB2, 0x9C, 0xFF}}}, +++ {{{58, -31, -18},0, {558, 616},{0xDA, 0x8A, 0xE3, 0xFF}}}, +++ {{{56, -27, -45},0, {661, 604},{0xC2, 0xA4, 0xC1, 0xFF}}}, +++ {{{52, -3, -54},0, {695, 551},{0xDC, 0xEB, 0x88, 0xFF}}}, +++ {{{50, 16, -51},0, {686, 509},{0xC3, 0x47, 0xAA, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_012_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 10, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_012_mesh_layer_1_vtx_0[6] = { +++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, +++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, +++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, +++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, +++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, +++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_012_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_0 + 0, 6, 10), +++ gsSP1Triangle(2, 0, 10, 0), +++ gsSP1Triangle(11, 10, 0, 0), +++ gsSP1Triangle(0, 9, 11, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(12, 9, 8, 0), +++ gsSP1Triangle(13, 12, 8, 0), +++ gsSP1Triangle(13, 8, 7, 0), +++ gsSP1Triangle(7, 6, 13, 0), +++ gsSP1Triangle(13, 6, 5, 0), +++ gsSP1Triangle(5, 14, 13, 0), +++ gsSP1Triangle(14, 5, 4, 0), +++ gsSP1Triangle(14, 4, 3, 0), +++ gsSP1Triangle(1, 14, 3, 0), +++ gsSP1Triangle(14, 1, 15, 0), +++ gsSP1Triangle(10, 15, 1, 0), +++ gsSP1Triangle(2, 10, 1, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_012_mesh_layer_1_vtx_1[13] = { +++ {{{2, -23, 20},0, {577, 509},{0xA7, 0xC6, 0x45, 0xFF}}}, +++ {{{14, -5, 25},0, {556, 551},{0x21, 0xFE, 0x7B, 0xFF}}}, +++ {{{4, -3, 29},0, {540, 555},{0x77, 0xF3, 0x2A, 0xFF}}}, +++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, +++ {{{-2, -23, -3},0, {661, 511},{0xA2, 0xC7, 0xC0, 0xFF}}}, +++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, +++ {{{-3, -5, -9},0, {686, 551},{0x9A, 0x48, 0xE9, 0xFF}}}, +++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, +++ {{{-3, 12, -1},0, {654, 590},{0x99, 0x20, 0xBD, 0xFF}}}, +++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, +++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, +++ {{{7, 12, 19},0, {579, 590},{0xC4, 0x53, 0x4B, 0xFF}}}, +++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_012_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 0, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(8, 11, 10, 0), +++ gsSP1Triangle(11, 1, 10, 0), +++ gsSP1Triangle(11, 2, 1, 0), +++ gsSP1Triangle(12, 10, 1, 0), +++ gsSP1Triangle(1, 3, 12, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { +++ {{{63, 10, 11},0, {633, 592},{0x8, 0x6B, 0x45, 0xFF}}}, +++ {{{75, -3, 16},0, {607, 551},{0x10, 0x5, 0x7E, 0xFF}}}, +++ {{{79, -17, 10},0, {640, 511},{0xB, 0x98, 0x48, 0xFF}}}, +++ {{{78, -17, -7},0, {733, 511},{0xF8, 0x97, 0xB8, 0xFF}}}, +++ {{{61, 10, -6},0, {726, 592},{0xF6, 0x68, 0xB7, 0xFF}}}, +++ {{{71, -3, -11},0, {753, 551},{0xF0, 0xFE, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_013_skinned_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_013_mesh_layer_1_vtx_0[6] = { +++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, +++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, +++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, +++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, +++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, +++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), +++ gsSP1Triangle(0, 1, 6, 0), +++ gsSP1Triangle(1, 2, 6, 0), +++ gsSP1Triangle(6, 2, 7, 0), +++ gsSP1Triangle(2, 3, 7, 0), +++ gsSP1Triangle(8, 7, 3, 0), +++ gsSP1Triangle(3, 9, 8, 0), +++ gsSP1Triangle(3, 5, 9, 0), +++ gsSP1Triangle(5, 4, 9, 0), +++ gsSP1Triangle(9, 4, 10, 0), +++ gsSP1Triangle(10, 4, 11, 0), +++ gsSP1Triangle(4, 0, 11, 0), +++ gsSP1Triangle(0, 6, 11, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_013_mesh_layer_1_vtx_1[9] = { +++ {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, +++ {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, +++ {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, +++ {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, +++ {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, +++ {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, +++ {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, +++ {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, +++ {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(4, 5, 2, 0), +++ gsSP1Triangle(5, 6, 2, 0), +++ gsSP1Triangle(6, 7, 2, 0), +++ gsSP1Triangle(7, 8, 2, 0), +++ gsSP1Triangle(8, 0, 2, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_013_mesh_layer_1_vtx_2[41] = { +++ {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, +++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, +++ {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, +++ {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, +++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, +++ {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, +++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, +++ {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, +++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, +++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, +++ {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, +++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, +++ {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, +++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, +++ {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, +++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, +++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, +++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, +++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, +++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, +++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, +++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, +++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, +++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, +++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, +++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, +++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, +++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, +++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, +++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, +++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, +++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, +++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, +++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, +++ {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, +++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, +++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, +++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, +++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, +++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, +++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 1, 3, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 9, 7, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(14, 2, 13, 0), +++ gsSP1Triangle(15, 13, 2, 0), +++ gsSP1Triangle(1, 15, 2, 0), +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSP1Triangle(14, 15, 0, 0), +++ gsSP1Triangle(0, 15, 1, 0), +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(4, 5, 2, 0), +++ gsSP1Triangle(5, 6, 2, 0), +++ gsSP1Triangle(6, 7, 2, 0), +++ gsSP1Triangle(7, 8, 2, 0), +++ gsSP1Triangle(8, 0, 2, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_offset_013_mesh_layer_1_vtx_3[16] = { +++ {{{-2, -3, 15},0, {616, 551},{0x12, 0x7, 0x7E, 0xFF}}}, +++ {{{0, -17, 9},0, {647, 509},{0x5, 0x97, 0x48, 0xFF}}}, +++ {{{6, -3, 13},0, {623, 551},{0x11, 0x9, 0x7E, 0xFF}}}, +++ {{{42, -12, 7},0, {672, 530},{0x13, 0xCC, 0x72, 0xFF}}}, +++ {{{42, -20, -1},0, {728, 502},{0x2, 0x87, 0x27, 0xFF}}}, +++ {{{-2, -17, -9},0, {742, 509},{0xED, 0x97, 0xBB, 0xFF}}}, +++ {{{42, -20, -13},0, {805, 502},{0xF5, 0x8B, 0xCF, 0xFF}}}, +++ {{{43, -12, -22},0, {860, 530},{0xEF, 0xD0, 0x8C, 0xFF}}}, +++ {{{2, -3, -16},0, {779, 551},{0xE6, 0xF6, 0x84, 0xFF}}}, +++ {{{-6, -3, -14},0, {767, 551},{0xE0, 0xF2, 0x86, 0xFF}}}, +++ {{{-9, 11, -11},0, {751, 595},{0xEF, 0x61, 0xB0, 0xFF}}}, +++ {{{43, -1, -22},0, {860, 572},{0xF7, 0x2C, 0x89, 0xFF}}}, +++ {{{42, 7, -13},0, {805, 602},{0x7, 0x75, 0xCF, 0xFF}}}, +++ {{{42, 7, -1},0, {728, 602},{0x11, 0x77, 0x2A, 0xFF}}}, +++ {{{-8, 11, 8},0, {651, 595},{0xB, 0x6E, 0x3E, 0xFF}}}, +++ {{{42, -1, 7},0, {672, 572},{0x17, 0x31, 0x73, 0xFF}}}, +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(4, 3, 1, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(5, 8, 7, 0), +++ gsSP1Triangle(5, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(8, 10, 11, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(10, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSP1Triangle(2, 15, 14, 0), +++ gsSP1Triangle(14, 0, 2, 0), +++ gsSP1Triangle(2, 3, 15, 0), +++ gsSP1Triangle(8, 11, 7, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_0[55] = { +++ {{{-5, 35, 27},0, {864, 32},{0xFD, 0xF9, 0x7F, 0xFF}}}, +++ {{{-28, 57, 26},0, {1000, -7},{0xE3, 0x59, 0x56, 0xFF}}}, +++ {{{-33, 37, 27},0, {832, -7},{0xC1, 0x5, 0x6E, 0xFF}}}, +++ {{{1, 50, 27},0, {1000, 32},{0x17, 0x55, 0x5C, 0xFF}}}, +++ {{{43, 23, 27},0, {896, 192},{0xFC, 0xF6, 0x7F, 0xFF}}}, +++ {{{47, 33, 27},0, {1000, 192},{0x1B, 0x53, 0x5D, 0xFF}}}, +++ {{{90, 17, 29},0, {1000, 258},{0x25, 0x4D, 0x5E, 0xFF}}}, +++ {{{87, 8, 29},0, {896, 258},{0x3, 0xEC, 0x7D, 0xFF}}}, +++ {{{115, 7, 23},0, {1001, 323},{0x3C, 0x45, 0x58, 0xFF}}}, +++ {{{112, -2, 23},0, {898, 323},{0x1D, 0xE2, 0x78, 0xFF}}}, +++ {{{143, -7, 11},0, {1001, 395},{0x58, 0x2C, 0x50, 0xFF}}}, +++ {{{140, -15, 10},0, {907, 395},{0x38, 0xC5, 0x62, 0xFF}}}, +++ {{{157, -20, -10},0, {1001, 436},{0x7F, 0xF6, 0x3, 0xFF}}}, +++ {{{153, -25, -10},0, {915, 431},{0x54, 0xA1, 0xFF, 0xFF}}}, +++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, +++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, +++ {{{140, -14, -31},0, {907, 395},{0x3F, 0xC9, 0xA0, 0xFF}}}, +++ {{{112, 0, -47},0, {898, 323},{0x20, 0xE8, 0x88, 0xFF}}}, +++ {{{143, -6, -31},0, {1001, 395},{0x5E, 0x32, 0xBB, 0xFF}}}, +++ {{{116, 9, -46},0, {1001, 323},{0x3E, 0x49, 0xAC, 0xFF}}}, +++ {{{91, 19, -50},0, {1000, 258},{0x29, 0x55, 0xAB, 0xFF}}}, +++ {{{87, 10, -51},0, {896, 258},{0xA, 0xF9, 0x82, 0xFF}}}, +++ {{{48, 35, -52},0, {1000, 192},{0x20, 0x58, 0xAA, 0xFF}}}, +++ {{{44, 26, -53},0, {896, 192},{0x2, 0x2, 0x81, 0xFF}}}, +++ {{{2, 52, -51},0, {1000, 32},{0xD, 0x5F, 0xAC, 0xFF}}}, +++ {{{-4, 37, -52},0, {864, 32},{0xF0, 0xA, 0x82, 0xFF}}}, +++ {{{-32, 39, -45},0, {832, -7},{0xB3, 0x13, 0x9D, 0xFF}}}, +++ {{{-28, 59, -39},0, {1000, -7},{0xDF, 0x69, 0xC0, 0xFF}}}, +++ {{{-33, 37, 27},0, {805, 291},{0xC1, 0x5, 0x6E, 0xFF}}}, +++ {{{-28, 57, 26},0, {1000, 434},{0xE3, 0x59, 0x56, 0xFF}}}, +++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, +++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, +++ {{{-44, 27, 5},0, {663, 734},{0x84, 0x9, 0x19, 0xFF}}}, +++ {{{-41, 57, 9},0, {1000, 722},{0xA6, 0x54, 0x1D, 0xFF}}}, +++ {{{-44, 28, -19},0, {663, 770},{0x83, 0xA, 0xEA, 0xFF}}}, +++ {{{-40, 58, -25},0, {1000, 782},{0xA6, 0x56, 0xE6, 0xFF}}}, +++ {{{-32, 39, -45},0, {805, 1213},{0xB3, 0x13, 0x9D, 0xFF}}}, +++ {{{-28, 59, -39},0, {1000, 1070},{0xDF, 0x69, 0xC0, 0xFF}}}, +++ {{{-41, 57, 9},0, {420, 1519},{0xA6, 0x54, 0x1D, 0xFF}}}, +++ {{{-28, 59, -39},0, {491, 1413},{0xDF, 0x69, 0xC0, 0xFF}}}, +++ {{{-40, 58, -25},0, {469, 1519},{0xA6, 0x56, 0xE6, 0xFF}}}, +++ {{{-28, 57, 26},0, {397, 1413},{0xE3, 0x59, 0x56, 0xFF}}}, +++ {{{1, 50, 27},0, {386, 1139},{0x17, 0x55, 0x5C, 0xFF}}}, +++ {{{2, 52, -51},0, {508, 1139},{0xD, 0x5F, 0xAC, 0xFF}}}, +++ {{{47, 33, 27},0, {386, 690},{0x1B, 0x53, 0x5D, 0xFF}}}, +++ {{{48, 35, -52},0, {511, 690},{0x20, 0x58, 0xAA, 0xFF}}}, +++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, +++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, +++ {{{90, 17, 29},0, {392, 269},{0x25, 0x4D, 0x5E, 0xFF}}}, +++ {{{115, 7, 23},0, {401, 23},{0x3C, 0x45, 0x58, 0xFF}}}, +++ {{{91, 19, -50},0, {508, 269},{0x29, 0x55, 0xAB, 0xFF}}}, +++ {{{116, 9, -46},0, {502, 23},{0x3E, 0x49, 0xAC, 0xFF}}}, +++ {{{143, -6, -31},0, {479, -261},{0x5E, 0x32, 0xBB, 0xFF}}}, +++ {{{143, -7, 11},0, {417, -261},{0x58, 0x2C, 0x50, 0xFF}}}, +++ {{{157, -20, -10},0, {446, -427},{0x7F, 0xF6, 0x3, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 15, 12, 0), +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 4, 2, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 7, 6, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(11, 7, 10, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_1[46] = { +++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, +++ {{{43, 23, 27},0, {20, 981},{0xFC, 0xF6, 0x7F, 0xFF}}}, +++ {{{-5, 35, 27},0, {20, 988},{0xFD, 0xF9, 0x7F, 0xFF}}}, +++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, +++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, +++ {{{-33, 37, 27},0, {21, 992},{0xC1, 0x5, 0x6E, 0xFF}}}, +++ {{{-44, 27, 5},0, {24, 994},{0x84, 0x9, 0x19, 0xFF}}}, +++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, +++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, +++ {{{-44, 28, -19},0, {28, 994},{0x83, 0xA, 0xEA, 0xFF}}}, +++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, +++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, +++ {{{-32, 39, -45},0, {33, 992},{0xB3, 0x13, 0x9D, 0xFF}}}, +++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, +++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, +++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, +++ {{{44, 26, -53},0, {35, 981},{0x2, 0x2, 0x81, 0xFF}}}, +++ {{{38, 9, -52},0, {34, 981},{0xFE, 0xEC, 0x83, 0xFF}}}, +++ {{{-4, 37, -52},0, {35, 988},{0xF0, 0xA, 0x82, 0xFF}}}, +++ {{{26, -23, -42},0, {32, 981},{0xF2, 0xA8, 0xA5, 0xFF}}}, +++ {{{-10, 19, -51},0, {34, 988},{0xE5, 0xEC, 0x85, 0xFF}}}, +++ {{{-21, -12, -37},0, {30, 988},{0xDF, 0xB2, 0xA1, 0xFF}}}, +++ {{{-16, -30, -7},0, {25, 987},{0xD5, 0x88, 0x2, 0xFF}}}, +++ {{{23, -33, -8},0, {25, 981},{0xF5, 0x82, 0xFE, 0xFF}}}, +++ {{{26, -25, 22},0, {20, 981},{0xF9, 0xB0, 0x62, 0xFF}}}, +++ {{{-22, -12, 20},0, {21, 988},{0xE5, 0xBC, 0x68, 0xFF}}}, +++ {{{-42, -7, 16},0, {21, 992},{0xA4, 0xC8, 0x43, 0xFF}}}, +++ {{{-35, 24, 25},0, {21, 992},{0xBB, 0xFC, 0x6B, 0xFF}}}, +++ {{{-45, -5, -9},0, {26, 992},{0x8B, 0xCF, 0xFE, 0xFF}}}, +++ {{{-42, -6, -36},0, {30, 992},{0xA9, 0xCB, 0xB5, 0xFF}}}, +++ {{{-34, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, +++ {{{82, -4, -49},0, {34, 974},{0x6, 0xE1, 0x85, 0xFF}}}, +++ {{{87, 10, -51},0, {35, 974},{0xA, 0xF9, 0x82, 0xFF}}}, +++ {{{112, 0, -47},0, {34, 970},{0x20, 0xE8, 0x88, 0xFF}}}, +++ {{{101, -30, -37},0, {31, 970},{0x13, 0xA3, 0xAB, 0xFF}}}, +++ {{{140, -14, -31},0, {31, 966},{0x3F, 0xC9, 0xA0, 0xFF}}}, +++ {{{136, -35, -10},0, {27, 965},{0x32, 0x8B, 0x0, 0xFF}}}, +++ {{{153, -25, -10},0, {27, 963},{0x54, 0xA1, 0xFF, 0xFF}}}, +++ {{{140, -15, 10},0, {24, 966},{0x38, 0xC5, 0x62, 0xFF}}}, +++ {{{101, -32, 14},0, {22, 970},{0x11, 0xA3, 0x55, 0xFF}}}, +++ {{{112, -2, 23},0, {22, 970},{0x1D, 0xE2, 0x78, 0xFF}}}, +++ {{{87, 8, 29},0, {21, 974},{0x3, 0xEC, 0x7D, 0xFF}}}, +++ {{{73, -30, 18},0, {21, 974},{0x0, 0xA7, 0x5B, 0xFF}}}, +++ {{{98, -38, -10},0, {26, 970},{0x4, 0x81, 0xFE, 0xFF}}}, +++ {{{70, -38, -10},0, {26, 974},{0xF9, 0x81, 0xFE, 0xFF}}}, +++ {{{73, -29, -42},0, {32, 974},{0x0, 0xA6, 0xA6, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1_tri_1[] = { +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(2, 4, 3, 0), +++ gsSP1Triangle(2, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 4, 6, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(6, 9, 8, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(3, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(6, 8, 9, 0), +++ gsSP1Triangle(6, 9, 10, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(6, 10, 12, 0), +++ gsSP1Triangle(13, 6, 12, 0), +++ gsSP1Triangle(5, 6, 13, 0), +++ gsSP1Triangle(5, 13, 14, 0), +++ gsSP1Triangle(4, 5, 14, 0), +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 3, 0, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(5, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(12, 8, 11, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(3, 12, 14, 0), +++ gsSP1Triangle(14, 0, 3, 0), +++ gsSP1Triangle(12, 3, 5, 0), +++ gsSP1Triangle(12, 5, 8, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_2[12] = { +++ {{{73, -30, 18},0, {-16, -16},{0x0, 0xA7, 0x5B, 0xFF}}}, +++ {{{87, 8, 29},0, {-16, -16},{0x3, 0xEC, 0x7D, 0xFF}}}, +++ {{{43, 23, 27},0, {-16, -16},{0xFC, 0xF6, 0x7F, 0xFF}}}, +++ {{{26, -25, 22},0, {-16, -16},{0xF9, 0xB0, 0x62, 0xFF}}}, +++ {{{70, -38, -10},0, {-16, -16},{0xF9, 0x81, 0xFE, 0xFF}}}, +++ {{{23, -33, -8},0, {-16, -16},{0xF5, 0x82, 0xFE, 0xFF}}}, +++ {{{26, -23, -42},0, {-16, -16},{0xF2, 0xA8, 0xA5, 0xFF}}}, +++ {{{73, -29, -42},0, {-16, -16},{0x0, 0xA6, 0xA6, 0xFF}}}, +++ {{{38, 9, -52},0, {-16, -16},{0xFE, 0xEC, 0x83, 0xFF}}}, +++ {{{82, -4, -49},0, {-16, -16},{0x6, 0xE1, 0x85, 0xFF}}}, +++ {{{44, 26, -53},0, {-16, -16},{0x2, 0x2, 0x81, 0xFF}}}, +++ {{{87, 10, -51},0, {-16, -16},{0xA, 0xF9, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1_tri_2[] = { +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 4, 6, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_005_mesh_layer_1_vtx_3[16] = { +++ {{{85, 8, -56},0, {337, 25},{0x30, 0xA, 0x8B, 0xFF}}}, +++ {{{87, 10, -51},0, {338, 29},{0x55, 0x3D, 0xB7, 0xFF}}}, +++ {{{90, 6, -49},0, {339, 26},{0x64, 0xE4, 0xB7, 0xFF}}}, +++ {{{45, 22, -59},0, {322, 24},{0xEC, 0x2D, 0x8B, 0xFF}}}, +++ {{{78, 4, -51},0, {335, 20},{0xCB, 0xD4, 0x95, 0xFF}}}, +++ {{{76, -15, -50},0, {337, 2},{0x17, 0xBD, 0x97, 0xFF}}}, +++ {{{81, -18, -43},0, {339, 2},{0x40, 0xAF, 0xB6, 0xFF}}}, +++ {{{76, -20, -42},0, {338, -1},{0x4, 0x98, 0xB8, 0xFF}}}, +++ {{{33, -5, -48},0, {321, -2},{0xC4, 0xAC, 0xB6, 0xFF}}}, +++ {{{36, -1, -55},0, {322, 1},{0xD3, 0xDD, 0x8E, 0xFF}}}, +++ {{{31, 0, -49},0, {320, 1},{0x9A, 0xF3, 0xB5, 0xFF}}}, +++ {{{40, 24, -52},0, {320, 26},{0xA5, 0x36, 0xB9, 0xFF}}}, +++ {{{44, 26, -53},0, {321, 28},{0xF0, 0x6C, 0xBE, 0xFF}}}, +++ {{{43, 3, -52},0, {324, 8},{0x39, 0x4, 0x8E, 0xFF}}}, +++ {{{48, 15, -52},0, {323, 20},{0x22, 0xBA, 0x9C, 0xFF}}}, +++ {{{74, -8, -49},0, {335, 8},{0xF5, 0x8, 0x82, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1_tri_3[] = { +++ gsSPVertex(mario_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(0, 5, 4, 0), +++ gsSP1Triangle(0, 6, 5, 0), +++ gsSP1Triangle(2, 6, 0, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(9, 5, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 3, 0), +++ gsSP1Triangle(3, 10, 11, 0), +++ gsSP1Triangle(12, 3, 11, 0), +++ gsSP1Triangle(12, 1, 3, 0), +++ gsSP1Triangle(9, 3, 13, 0), +++ gsSP1Triangle(13, 3, 14, 0), +++ gsSP1Triangle(4, 14, 3, 0), +++ gsSP1Triangle(13, 15, 9, 0), +++ gsSP1Triangle(5, 9, 15, 0), +++ gsSP1Triangle(5, 15, 4, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_0[4] = { +++ {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, +++ {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, +++ {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_001_mesh_layer_4_tri_0[] = { +++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSPEndDisplayList(), +++}; +++ +++Vtx mario_000_displaylist_001_mesh_layer_4_vtx_1[4] = { +++ {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, +++ {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, +++ {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, +++}; +++ +++Gfx mario_000_displaylist_001_mesh_layer_4_tri_1[] = { +++ gsSPVertex(mario_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSPEndDisplayList(), +++}; +++ +++ +++Gfx mat_mario_sonic_blue_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_blue_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_skin_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_skin_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_metal_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), +++ gsSPSetGeometryMode(G_TEXTURE_GEN), +++ gsSPTexture(4031, 1983, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_metal_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 2047, 128), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), +++ gsDPSetTileSize(0, 0, 0, 252, 124), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_revert_mario_metal_v4[] = { +++ gsDPPipeSync(), +++ gsSPClearGeometryMode(G_TEXTURE_GEN), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_eye_texture[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_eye_texture_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_mouth_none[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_mouth_none_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_nose_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_nose_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_mouth[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_mouth_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_mouth_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_eye_half[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_half_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_eye_half_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_eye_closed[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_closed_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_eye_closed_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_eye_dead[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_soniceyenew_dead_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_eye_dead_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_gloves_001_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_gloves_001_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_gloves_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_gloves_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_texture_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_sonic_new2_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 1023, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 124), +++ gsSPSetLights1(mario_sonic_texture_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_white_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_white_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_buckle_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_buckle_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_sonic_shoe_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(mario_sonic_shoe_v4_lights), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_wing_2_001_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), +++ gsSPClearGeometryMode(G_CULL_BACK), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing_2_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 2047, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 252), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_revert_mario_wing_2_001_v4[] = { +++ gsDPPipeSync(), +++ gsSPSetGeometryMode(G_CULL_BACK), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_mario_wing_1_001_v4[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), +++ gsSPClearGeometryMode(G_CULL_BACK), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsDPTileSync(), +++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_wing1_rgba16), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), +++ gsDPLoadSync(), +++ gsDPLoadBlock(7, 0, 0, 2047, 256), +++ gsDPPipeSync(), +++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), +++ gsDPSetTileSize(0, 0, 0, 124, 252), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mat_revert_mario_wing_1_001_v4[] = { +++ gsDPPipeSync(), +++ gsSPSetGeometryMode(G_CULL_BACK), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_001_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_skinned_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_001_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_eye_texture), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_mouth_none), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_mario_sonic_nose_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_eye_texture), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_mouth), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_mario_sonic_nose_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_half_2[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_eye_half), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_mouth_none), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_mario_sonic_nose_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_eye_closed), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_mouth_none), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_mario_sonic_nose_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_4[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_eye_dead), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_mouth_none), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_mario_sonic_nose_v4), +++ gsSPDisplayList(mario_000_displaylist_mesh_layer_1_tri_4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_003_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_003_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_004_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_004_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_004_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), +++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_004_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04001090 ++-ALIGNED8 static const Texture mario_texture_yellow_button[] = { ++-#include "actors/mario/mario_overalls_button.rgba16.inc.c" +++Gfx mario_000_displaylist_003_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_gloves_001_v4), +++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04001890 ++-ALIGNED8 static const Texture mario_texture_m_logo[] = { ++-#include "actors/mario/mario_logo.rgba16.inc.c" +++Gfx mario_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_003_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04002090 ++-ALIGNED8 static const Texture mario_texture_hair_sideburn[] = { ++-#include "actors/mario/mario_sideburn.rgba16.inc.c" +++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_gloves_v4), +++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04002890 ++-ALIGNED8 static const Texture mario_texture_mustache[] = { ++-#include "actors/mario/mario_mustache.rgba16.inc.c" +++Gfx mario_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_002_switch_option_right_hand_open_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04003090 ++-ALIGNED8 static const Texture mario_texture_eyes_front[] = { ++-#include "actors/mario/mario_eyes_center.rgba16.inc.c" +++Gfx mario_000_offset_006_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04003890 ++-ALIGNED8 static const Texture mario_texture_eyes_half_closed[] = { ++-#include "actors/mario/mario_eyes_half_closed.rgba16.inc.c" +++Gfx mario_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_006_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04004090 ++-ALIGNED8 static const Texture mario_texture_eyes_closed[] = { ++-#include "actors/mario/mario_eyes_closed.rgba16.inc.c" +++Gfx mario_000_offset_007_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// Unreferenced ++-// 0x04004890 ++-ALIGNED8 static const Texture mario_texture_eyes_closed_unused1[] = { ++-#include "actors/mario/mario_eyes_closed_unused_0.rgba16.inc.c" +++Gfx mario_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_007_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// Unreferenced ++-// 0x04005090 ++-ALIGNED8 static const Texture mario_texture_eyes_closed_unused2[] = { ++-#include "actors/mario/mario_eyes_closed_unused_1.rgba16.inc.c" +++Gfx mario_000_offset_007_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_skin_v4), +++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), +++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04005890 ++-ALIGNED8 static const Texture mario_texture_eyes_right[] = { ++-#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c" +++Gfx mario_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_007_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04006090 ++-ALIGNED8 static const Texture mario_texture_eyes_left[] = { ++-#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c" +++Gfx mario_000_displaylist_004_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_gloves_001_v4), +++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04006890 ++-ALIGNED8 static const Texture mario_texture_eyes_up[] = { ++-#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c" +++Gfx mario_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_004_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04007090 ++-ALIGNED8 static const Texture mario_texture_eyes_down[] = { ++-#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c" ++-}; +++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_gloves_v4), +++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; ++ ++-// 0x04007890 ++-ALIGNED8 static const Texture mario_texture_eyes_dead[] = { ++-#include "actors/mario/mario_eyes_dead.rgba16.inc.c" +++Gfx mario_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_002_switch_option_left_hand_open_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04008090 ++-ALIGNED8 static const Texture mario_texture_wings_half_1[] = { ++-#include "actors/mario/mario_wing.rgba16.inc.c" +++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_gloves_v4), +++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; ++ ++-// 0x04009090 ++-ALIGNED8 static const Texture mario_texture_wings_half_2[] = { ++-#include "actors/mario/mario_wing_tip.rgba16.inc.c" ++-}; ++- ++-// 0x0400A090 ++-ALIGNED8 static const Texture mario_texture_metal_wings_half_1[] = { ++-#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c" ++-}; +++Gfx mario_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; ++ ++-// 0x0400B090 ++-ALIGNED8 static const Texture mario_texture_metal_wings_half_2[] = { ++-#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c" ++-}; ++- ++-// 0x0400C090 ++-static const Vtx mario_butt_dl_vertex_group1[] = { ++- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, ++- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, ++- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, ++- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, ++- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, ++- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, ++- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, ++- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, ++- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, ++- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, ++- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, ++- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, ++-}; ++- ++-// 0x0400C180 ++-static const Vtx mario_butt_dl_vertex_group2[] = { ++- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, ++- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, ++- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, ++- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, ++- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, ++- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, ++- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, ++- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, ++- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, ++- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, ++- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, ++- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, ++-}; ++- ++-// 0x0400C260 ++-static const Vtx mario_butt_dl_vertex_group3[] = { ++- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, ++- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, ++- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, ++- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, ++- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, ++- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, ++- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, ++- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, ++- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, ++- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, ++- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, ++- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, ++- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, ++- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, ++-}; ++- ++-// 0x0400C360 ++-static const Vtx mario_butt_dl_vertex_group4[] = { ++- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, ++- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, ++- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, ++- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, ++- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, ++- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, ++- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, ++- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, ++- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, ++- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, ++- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, ++- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, ++-}; ++- ++-// 0x0400C450 ++-static const Vtx mario_butt_dl_vertex_group5[] = { ++- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, ++- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, ++- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, ++- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, ++- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, ++- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, ++- {{{ 52, 70, -39}, 0, { 0, 0}, {0x59, 0x56, 0xe5, 0x00}}}, ++- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, ++- {{{ 43, 40, 91}, 0, { 0, 0}, {0x4e, 0x30, 0x57, 0x00}}}, ++- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, ++- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, ++- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++-}; ++- ++-// 0x0400C540 ++-static const Vtx mario_butt_dl_vertex_group6[] = { ++- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, ++- {{{ 43, 40, -91}, 0, { 0, 0}, {0x4e, 0x30, 0xa9, 0x00}}}, ++- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, ++- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, ++- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, ++- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, ++- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, ++- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, ++- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, ++- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, ++- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, ++-}; ++- ++-// 0x0400C630 ++-static const Vtx mario_butt_dl_vertex_group7[] = { ++- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, ++- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, ++- {{{ -17, 32, -79}, 0, { 0, 0}, {0xa4, 0x23, 0xb1, 0x00}}}, ++- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, ++- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, ++- {{{ 73, 11, 0}, 0, { 0, 0}, {0x7e, 0x04, 0x00, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, ++- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, ++- {{{ 44, -10, -92}, 0, { 0, 0}, {0x4f, 0xf2, 0x9e, 0x00}}}, ++- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, ++-}; ++- ++-// 0x0400C720 ++-static const Vtx mario_butt_dl_vertex_group8[] = { ++- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, ++- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, ++- {{{ 36, -52, 79}, 0, { 0, 0}, {0x30, 0xb8, 0x5c, 0x00}}}, ++- {{{ -9, 73, -34}, 0, { 0, 0}, {0xc2, 0x6b, 0xe6, 0x00}}}, ++- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, ++- {{{ 27, 72, -63}, 0, { 0, 0}, {0x07, 0x6b, 0xbe, 0x00}}}, ++- {{{ 27, 72, 63}, 0, { 0, 0}, {0x06, 0x6c, 0x42, 0x00}}}, ++- {{{ -5, 59, 72}, 0, { 0, 0}, {0xc0, 0x52, 0x47, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ 6, 33, -95}, 0, { 0, 0}, {0xe6, 0x26, 0x8b, 0x00}}}, ++- {{{ -5, 59, -72}, 0, { 0, 0}, {0xc0, 0x52, 0xb9, 0x00}}}, ++- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, ++- {{{ 52, 70, 38}, 0, { 0, 0}, {0x53, 0x5d, 0x16, 0x00}}}, ++- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, ++-}; ++- ++-// 0x0400C820 ++-static const Vtx mario_butt_dl_vertex_group9[] = { ++- {{{ 4, -48, -86}, 0, { 0, 0}, {0xd8, 0xba, 0x9f, 0x00}}}, ++- {{{ 36, -51, -79}, 0, { 0, 0}, {0x30, 0xb8, 0xa4, 0x00}}}, ++- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, ++- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, ++- {{{ -18, 32, 79}, 0, { 0, 0}, {0xa4, 0x23, 0x4f, 0x00}}}, ++- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, ++- {{{ 8, -8, -99}, 0, { 0, 0}, {0xf3, 0xee, 0x84, 0x00}}}, ++- {{{ 7, 33, 95}, 0, { 0, 0}, {0xe6, 0x26, 0x75, 0x00}}}, ++- {{{ 8, -8, 99}, 0, { 0, 0}, {0xf3, 0xef, 0x7c, 0x00}}}, ++- {{{ 44, -9, 92}, 0, { 0, 0}, {0x4f, 0xf2, 0x62, 0x00}}}, ++- {{{ -9, 73, 34}, 0, { 0, 0}, {0xbe, 0x6a, 0x12, 0x00}}}, ++- {{{ 22, 82, 26}, 0, { 0, 0}, {0x07, 0x7d, 0x11, 0x00}}}, ++- {{{ 22, 82, -26}, 0, { 0, 0}, {0x07, 0x7e, 0xf5, 0x00}}}, ++- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, ++- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, ++- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, ++-}; ++- ++-// 0x0400C920 ++-static const Vtx mario_butt_dl_vertex_group10[] = { ++- {{{ -31, -51, 42}, 0, { 0, 0}, {0x8d, 0xd7, 0x1f, 0x00}}}, ++- {{{ -9, -69, 55}, 0, { 0, 0}, {0xcd, 0x97, 0x30, 0x00}}}, ++- {{{ 4, -49, 86}, 0, { 0, 0}, {0xd8, 0xb9, 0x61, 0x00}}}, ++- {{{ -20, -7, 81}, 0, { 0, 0}, {0xa3, 0xf9, 0x55, 0x00}}}, ++- {{{ -32, 40, 39}, 0, { 0, 0}, {0x8b, 0x25, 0x1d, 0x00}}}, ++- {{{ -32, 40, -39}, 0, { 0, 0}, {0x89, 0x25, 0xeb, 0x00}}}, ++- {{{ -20, -8, -81}, 0, { 0, 0}, {0xa3, 0xf8, 0xab, 0x00}}}, ++- {{{ -31, -51, -42}, 0, { 0, 0}, {0x91, 0xd0, 0xdc, 0x00}}}, ++- {{{ 55, -61, 36}, 0, { 0, 0}, {0x60, 0xb3, 0x1a, 0x00}}}, ++- {{{ 26, -74, 45}, 0, { 0, 0}, {0x12, 0x88, 0x22, 0x00}}}, ++- {{{ 26, -74, -46}, 0, { 0, 0}, {0x18, 0x88, 0xe2, 0x00}}}, ++- {{{ -14, -74, 0}, 0, { 0, 0}, {0xcb, 0x8d, 0x00, 0x00}}}, ++- {{{ -9, -69, -55}, 0, { 0, 0}, {0xcd, 0x97, 0xd0, 0x00}}}, ++- {{{ 55, -61, -36}, 0, { 0, 0}, {0x67, 0xbe, 0xe1, 0x00}}}, ++-}; ++- ++-// 0x0400CA00 - 0x0400CC98 ++-const Gfx mario_butt_dl[] = { ++- gsSPVertex(mario_butt_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 5, 10, 0x0), ++- gsSP2Triangles( 4, 11, 10, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles(12, 3, 13, 0x0, 6, 8, 12, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 1, 7, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles(11, 9, 12, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group4, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 2, 0x0), ++- gsSP2Triangles( 9, 7, 10, 0x0, 11, 12, 7, 0x0), ++- gsSP1Triangle(13, 11, 14, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group5, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 2, 7, 8, 0x0), ++- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group6, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles(11, 10, 9, 0x0, 12, 13, 14, 0x0), ++- gsSP1Triangle( 0, 13, 12, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group7, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 2, 3, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 9, 8, 11, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 1, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group8, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 5, 0x0), ++- gsSP2Triangles( 4, 11, 12, 0x0, 6, 11, 13, 0x0), ++- gsSP2Triangles(13, 3, 14, 0x0, 15, 2, 1, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group9, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 1, 0, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 0, 13, 14, 0x0), ++- gsSP1Triangle(15, 0, 14, 0x0), ++- gsSPVertex(mario_butt_dl_vertex_group10, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 0, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), ++- gsSP2Triangles( 9, 1, 11, 0x0, 11, 12, 10, 0x0), ++- gsSP1Triangle(10, 13, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400CC98 - 0x0400CCC8 ++-const Gfx mario_butt[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400CCC8 - 0x0400CD40 ++-const Gfx mario_metal_butt[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400CD40 ++-static const Vtx mario_left_arm_shared_dl_vertex_group1[] = { ++- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, ++- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, ++- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, ++- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, ++- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, ++- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, ++- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, ++- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, ++- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, ++- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, ++- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, ++- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, ++- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, ++- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, ++- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, ++-}; ++- ++-// 0x0400CE30 ++-static const Vtx mario_left_arm_shared_dl_vertex_group2[] = { ++- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, ++- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, ++- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, ++- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, ++- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, ++- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, ++- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, ++- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, ++- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, ++- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, ++- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, ++- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, ++- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, ++- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, ++- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, ++-}; ++- ++-// 0x0400CF20 ++-static const Vtx mario_left_arm_shared_dl_vertex_group3[] = { ++- {{{ 5, -42, -5}, 0, { 0, 0}, {0xd3, 0x8a, 0xff, 0x00}}}, ++- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, ++- {{{ 6, -13, -42}, 0, { 0, 0}, {0xd6, 0xde, 0x8e, 0x00}}}, ++- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, ++- {{{ 7, 29, -26}, 0, { 0, 0}, {0xda, 0x62, 0xbb, 0x00}}}, ++- {{{ -8, 16, 10}, 0, { 0, 0}, {0x9a, 0x44, 0x1d, 0x00}}}, ++- {{{ 7, 27, 20}, 0, { 0, 0}, {0xda, 0x61, 0x47, 0x00}}}, ++- {{{ 58, -13, -34}, 0, { 0, 0}, {0x3b, 0xfb, 0x90, 0x00}}}, ++- {{{ 57, -36, -5}, 0, { 0, 0}, {0x3e, 0x93, 0xef, 0x00}}}, ++- {{{ 6, -16, 32}, 0, { 0, 0}, {0xd5, 0xdc, 0x71, 0x00}}}, ++- {{{ 58, -15, 25}, 0, { 0, 0}, {0x32, 0xc6, 0x64, 0x00}}}, ++- {{{ 59, 20, 15}, 0, { 0, 0}, {0x44, 0x4a, 0x4c, 0x00}}}, ++- {{{ 59, 21, -21}, 0, { 0, 0}, {0x37, 0x67, 0xd0, 0x00}}}, ++- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, ++-}; ++- ++-// 0x0400D000 ++-static const Vtx mario_left_arm_shared_dl_vertex_group4[] = { ++- {{{ 68, 12, 9}, 0, { 0, 0}, {0x78, 0x1f, 0x1b, 0x00}}}, ++- {{{ 68, -10, -25}, 0, { 0, 0}, {0x75, 0xe7, 0xd9, 0x00}}}, ++- {{{ 68, 13, -16}, 0, { 0, 0}, {0x6a, 0x38, 0xd9, 0x00}}}, ++- {{{ 67, -12, 16}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, ++- {{{ 67, -26, -5}, 0, { 0, 0}, {0x6e, 0xc2, 0xfe, 0x00}}}, ++- {{{ -8, 17, -17}, 0, { 0, 0}, {0x90, 0x2a, 0xd6, 0x00}}}, ++- {{{ -8, -9, -27}, 0, { 0, 0}, {0x8e, 0xe8, 0xce, 0x00}}}, ++- {{{ -8, -11, 18}, 0, { 0, 0}, {0x8b, 0xff, 0x2f, 0x00}}}, ++- {{{ -9, -26, -5}, 0, { 0, 0}, {0x96, 0xbd, 0x0e, 0x00}}}, ++-}; ++- ++-// 0x0400D090 - 0x0400D1D8 ++-const Gfx mario_left_arm_shared_dl[] = { ++- gsSPVertex(mario_left_arm_shared_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), ++- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), ++- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), ++- gsSPVertex(mario_left_arm_shared_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), ++- gsSP2Triangles( 1, 7, 6, 0x0, 2, 1, 6, 0x0), ++- gsSP2Triangles( 6, 5, 8, 0x0, 8, 5, 3, 0x0), ++- gsSP2Triangles( 3, 0, 9, 0x0, 9, 0, 2, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_left_arm_shared_dl_vertex_group3, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 2, 4, 7, 0x0), ++- gsSP2Triangles( 0, 2, 8, 0x0, 9, 0, 10, 0x0), ++- gsSP2Triangles( 6, 9, 11, 0x0, 4, 6, 12, 0x0), ++- gsSP1Triangle(13, 5, 3, 0x0), ++- gsSPVertex(mario_left_arm_shared_dl_vertex_group4, 9, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), ++- gsSP1Triangle( 6, 8, 7, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400D1D8 - 0x0400D1F8 ++-const Gfx mario_left_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_left_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400D1F8 ++-static const Vtx mario_left_forearm_shared_dl_vertex[] = { ++- {{{ -2, 19, 16}, 0, { 0, 0}, {0xdb, 0x61, 0x48, 0x00}}}, ++- {{{ 47, 14, 13}, 0, { 0, 0}, {0x44, 0x44, 0x51, 0x00}}}, ++- {{{ 47, 16, -19}, 0, { 0, 0}, {0x45, 0x61, 0xd6, 0x00}}}, ++- {{{ -3, -17, 26}, 0, { 0, 0}, {0xd7, 0xdb, 0x71, 0x00}}}, ++- {{{ 46, -17, 22}, 0, { 0, 0}, {0x41, 0xc7, 0x5c, 0x00}}}, ++- {{{ -3, -38, -4}, 0, { 0, 0}, {0xd4, 0x89, 0xfe, 0x00}}}, ++- {{{ 45, -34, -4}, 0, { 0, 0}, {0x3f, 0x95, 0xe8, 0x00}}}, ++- {{{ -3, -14, -34}, 0, { 0, 0}, {0xd7, 0xde, 0x8e, 0x00}}}, ++- {{{ 46, -14, -30}, 0, { 0, 0}, {0x42, 0xf4, 0x95, 0x00}}}, ++- {{{ -2, 21, -21}, 0, { 0, 0}, {0xdb, 0x63, 0xbb, 0x00}}}, ++- {{{ -14, 13, -15}, 0, { 0, 0}, {0x93, 0x2c, 0xd3, 0x00}}}, ++- {{{ -14, 11, 10}, 0, { 0, 0}, {0x93, 0x3b, 0x19, 0x00}}}, ++- {{{ -15, -11, -24}, 0, { 0, 0}, {0x9a, 0xde, 0xbe, 0x00}}}, ++- {{{ -15, -27, -4}, 0, { 0, 0}, {0x8b, 0xd2, 0x0a, 0x00}}}, ++- {{{ -15, -13, 17}, 0, { 0, 0}, {0x9b, 0xfb, 0x4c, 0x00}}}, ++- {{{ 58, -7, -3}, 0, { 0, 0}, {0x7e, 0xfc, 0x00, 0x00}}}, ++-}; ++- ++-// 0x0400D2F8 - 0x0400D3E8 ++-const Gfx mario_left_forearm_shared_dl[] = { ++- gsSPVertex(mario_left_forearm_shared_dl_vertex, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), ++- gsSP2Triangles( 9, 2, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 7, 12, 10, 0x0, 5, 13, 12, 0x0), ++- gsSP2Triangles( 3, 14, 13, 0x0, 0, 11, 14, 0x0), ++- gsSP2Triangles( 8, 15, 6, 0x0, 6, 15, 4, 0x0), ++- gsSP2Triangles( 4, 15, 1, 0x0, 1, 15, 2, 0x0), ++- gsSP2Triangles( 2, 15, 8, 0x0, 0, 14, 3, 0x0), ++- gsSP2Triangles( 3, 13, 5, 0x0, 5, 12, 7, 0x0), ++- gsSP2Triangles( 7, 10, 9, 0x0, 9, 11, 0, 0x0), ++- gsSP2Triangles( 7, 9, 8, 0x0, 5, 7, 6, 0x0), ++- gsSP2Triangles( 3, 5, 4, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 9, 0, 2, 0x0, 12, 13, 10, 0x0), ++- gsSP2Triangles(13, 11, 10, 0x0, 13, 14, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400D3E8 ++-static const Vtx mario_left_hand_closed_shared_dl_vertex_group1[] = { ++- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, ++- {{{ 17, -1, 27}, 0, { 0, 0}, {0x00, 0xfd, 0x7f, 0x00}}}, ++- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, ++- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, ++- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, ++- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, ++- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, ++- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, ++- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, ++- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, ++- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, ++- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, ++- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, ++- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, ++- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, ++- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, ++-}; ++- ++-// 0x0400D4E8 ++-static const Vtx mario_left_hand_closed_shared_dl_vertex_group2[] = { ++- {{{ 90, 17, -46}, 0, { 0, 0}, {0x43, 0x35, 0xa3, 0x00}}}, ++- {{{ 57, 55, -37}, 0, { 0, 0}, {0x22, 0x54, 0xa9, 0x00}}}, ++- {{{ 99, 40, -16}, 0, { 0, 0}, {0x6c, 0x3c, 0xe5, 0x00}}}, ++- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, ++- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, ++- {{{ 59, 81, 8}, 0, { 0, 0}, {0x11, 0x7a, 0x1d, 0x00}}}, ++- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, ++- {{{ 100, -6, -46}, 0, { 0, 0}, {0x63, 0x0a, 0xb3, 0x00}}}, ++- {{{ 107, -26, 4}, 0, { 0, 0}, {0x67, 0xc5, 0x2b, 0x00}}}, ++- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, ++- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, ++- {{{ 86, 29, 41}, 0, { 0, 0}, {0x4b, 0x20, 0x60, 0x00}}}, ++- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, ++- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, ++-}; ++- ++-// 0x0400D5C8 ++-static const Vtx mario_left_hand_closed_shared_dl_vertex_group3[] = { ++- {{{ 27, -58, 6}, 0, { 0, 0}, {0xa3, 0xad, 0x12, 0x00}}}, ++- {{{ -14, -14, -4}, 0, { 0, 0}, {0x8c, 0xcd, 0x02, 0x00}}}, ++- {{{ 17, -38, -39}, 0, { 0, 0}, {0x1a, 0xb7, 0x9d, 0x00}}}, ++- {{{ -10, 26, -38}, 0, { 0, 0}, {0xf0, 0x41, 0x95, 0x00}}}, ++- {{{ -18, 45, 8}, 0, { 0, 0}, {0x84, 0xf3, 0x13, 0x00}}}, ++- {{{ 5, -6, 36}, 0, { 0, 0}, {0x99, 0xd2, 0x38, 0x00}}}, ++- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, ++- {{{ 27, -58, 6}, 0, { 0, 0}, {0x73, 0xd5, 0x1d, 0x00}}}, ++- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, ++- {{{ -18, 45, 8}, 0, { 0, 0}, {0x2d, 0x71, 0x21, 0x00}}}, ++- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, ++- {{{ 5, -6, 36}, 0, { 0, 0}, {0x44, 0x1b, 0x67, 0x00}}}, ++- {{{ 36, 6, 42}, 0, { 0, 0}, {0xe1, 0xf0, 0x79, 0x00}}}, ++- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, ++- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, ++-}; ++- ++-// 0x0400D6B8 ++-static const Vtx mario_left_hand_closed_shared_dl_vertex_group4[] = { ++- {{{ 26, -25, -32}, 0, { 0, 0}, {0x09, 0xc7, 0x8f, 0x00}}}, ++- {{{ 33, 7, -44}, 0, { 0, 0}, {0xc6, 0xfe, 0x90, 0x00}}}, ++- {{{ 80, -31, -61}, 0, { 0, 0}, {0x0c, 0xb2, 0x9d, 0x00}}}, ++- {{{ 58, -45, 7}, 0, { 0, 0}, {0x01, 0x85, 0x1c, 0x00}}}, ++- {{{ 34, -41, 3}, 0, { 0, 0}, {0x42, 0xa3, 0x36, 0x00}}}, ++- {{{ 61, 12, -60}, 0, { 0, 0}, {0x00, 0x21, 0x86, 0x00}}}, ++- {{{ 12, 59, 10}, 0, { 0, 0}, {0xaa, 0x58, 0x1b, 0x00}}}, ++- {{{ 32, 63, -28}, 0, { 0, 0}, {0xd0, 0x4f, 0xaa, 0x00}}}, ++- {{{ 4, 24, -31}, 0, { 0, 0}, {0xd5, 0x3f, 0x9c, 0x00}}}, ++- {{{ -1, 39, 5}, 0, { 0, 0}, {0xea, 0x6e, 0x3a, 0x00}}}, ++-}; ++- ++-// 0x0400D758 - 0x0400D8F0 ++-const Gfx mario_left_hand_closed_shared_dl[] = { ++- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 1, 0, 0x0, 2, 1, 7, 0x0), ++- gsSP2Triangles( 7, 1, 6, 0x0, 6, 4, 8, 0x0), ++- gsSP2Triangles( 8, 4, 3, 0x0, 9, 3, 2, 0x0), ++- gsSP2Triangles( 0, 10, 11, 0x0, 12, 10, 0, 0x0), ++- gsSP1Triangle(13, 14, 15, 0x0), ++- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 5, 1, 3, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 10, 3, 0x0, 1, 0, 9, 0x0), ++- gsSP2Triangles( 9, 3, 1, 0x0, 5, 2, 1, 0x0), ++- gsSP2Triangles( 0, 2, 7, 0x0, 7, 2, 8, 0x0), ++- gsSP2Triangles( 8, 2, 11, 0x0, 11, 2, 5, 0x0), ++- gsSP2Triangles( 9, 7, 6, 0x0, 6, 8, 12, 0x0), ++- gsSP2Triangles(12, 8, 13, 0x0, 13, 5, 4, 0x0), ++- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), ++- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 2, 0x0), ++- gsSP2Triangles( 8, 2, 3, 0x0, 3, 9, 10, 0x0), ++- gsSP2Triangles(10, 9, 11, 0x0, 11, 7, 6, 0x0), ++- gsSP2Triangles(10, 12, 13, 0x0, 6, 14, 12, 0x0), ++- gsSPVertex(mario_left_hand_closed_shared_dl_vertex_group4, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 1, 5, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), ++- gsSP1Triangle( 7, 1, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400D8F0 - 0x0400D910 ++-const Gfx mario_left_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_left_hand_closed_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400D910 ++-static const Vtx mario_right_arm_shared_dl_vertex_group1[] = { ++- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, ++- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, ++- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, ++- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, ++- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, ++- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, ++- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, ++- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, ++- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, ++- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, ++- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, ++- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, ++- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, ++- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, ++- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, ++- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, ++-}; ++- ++-// 0x0400DA10 ++-static const Vtx mario_right_arm_shared_dl_vertex_group2[] = { ++- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, ++- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, ++- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, ++- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, ++- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, ++- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, ++- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, ++- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, ++- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, ++- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, ++- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, ++- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, ++- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, ++- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, ++- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, ++- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, ++-}; ++- ++-// 0x0400DB10 ++-static const Vtx mario_right_arm_shared_dl_vertex_group3[] = { ++- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, ++- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, ++- {{{ 7, 27, -13}, 0, { 0, 0}, {0xda, 0x67, 0xc2, 0x00}}}, ++- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, ++- {{{ 6, -15, -30}, 0, { 0, 0}, {0xd6, 0xe6, 0x8c, 0x00}}}, ++- {{{ 58, 19, -9}, 0, { 0, 0}, {0x3e, 0x4a, 0xaf, 0x00}}}, ++- {{{ 57, -14, -22}, 0, { 0, 0}, {0x33, 0xcf, 0x97, 0x00}}}, ++- {{{ 58, 17, 27}, 0, { 0, 0}, {0x44, 0x59, 0x39, 0x00}}}, ++- {{{ 57, -17, 37}, 0, { 0, 0}, {0x33, 0xe8, 0x71, 0x00}}}, ++- {{{ 7, 25, 32}, 0, { 0, 0}, {0xd9, 0x5c, 0x4d, 0x00}}}, ++- {{{ 57, -38, 6}, 0, { 0, 0}, {0x3e, 0x93, 0x07, 0x00}}}, ++- {{{ 6, -19, 44}, 0, { 0, 0}, {0xd5, 0xd4, 0x6e, 0x00}}}, ++- {{{ 5, -44, 5}, 0, { 0, 0}, {0xd3, 0x8a, 0xf7, 0x00}}}, ++- {{{ 67, -12, -13}, 0, { 0, 0}, {0x68, 0xeb, 0xbc, 0x00}}}, ++- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, ++- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, ++-}; ++- ++-// 0x0400DC10 ++-static const Vtx mario_right_arm_shared_dl_vertex_group4[] = { ++- {{{ -9, -10, -15}, 0, { 0, 0}, {0x8f, 0x01, 0xc7, 0x00}}}, ++- {{{ -9, -28, 6}, 0, { 0, 0}, {0x96, 0xbf, 0xec, 0x00}}}, ++- {{{ -9, -13, 30}, 0, { 0, 0}, {0x8a, 0xe9, 0x26, 0x00}}}, ++- {{{ -8, 15, -5}, 0, { 0, 0}, {0x91, 0x39, 0xed, 0x00}}}, ++- {{{ -8, 14, 22}, 0, { 0, 0}, {0x99, 0x2e, 0x38, 0x00}}}, ++- {{{ 67, 11, -4}, 0, { 0, 0}, {0x78, 0x26, 0xf1, 0x00}}}, ++- {{{ 67, -14, 28}, 0, { 0, 0}, {0x6f, 0xe8, 0x37, 0x00}}}, ++- {{{ 66, -28, 6}, 0, { 0, 0}, {0x75, 0xd1, 0xfe, 0x00}}}, ++- {{{ 67, 10, 21}, 0, { 0, 0}, {0x71, 0x2a, 0x25, 0x00}}}, ++-}; ++- ++-// 0x0400DCA0 - 0x0400DDE8 ++-const Gfx mario_right_arm_shared_dl[] = { ++- gsSPVertex(mario_right_arm_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), ++- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), ++- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), ++- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), ++- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), ++- gsSPVertex(mario_right_arm_shared_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 3, 6, 4, 0x0), ++- gsSP2Triangles( 1, 6, 3, 0x0, 0, 7, 1, 0x0), ++- gsSP2Triangles( 8, 7, 0, 0x0, 5, 4, 8, 0x0), ++- gsSP2Triangles( 9, 10, 11, 0x0, 12, 9, 13, 0x0), ++- gsSP1Triangle(14, 12, 15, 0x0), ++- gsSPVertex(mario_right_arm_shared_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 7, 5, 2, 0x0), ++- gsSP2Triangles( 8, 7, 9, 0x0, 10, 8, 11, 0x0), ++- gsSP2Triangles( 6, 10, 12, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_right_arm_shared_dl_vertex_group4, 9, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), ++- gsSP1Triangle( 5, 8, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400DDE8 - 0x0400DE08 ++-const Gfx mario_right_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_right_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400DE08 ++-static const Vtx mario_right_forearm_shared_dl_vertex[] = { ++- {{{ 47, -15, -19}, 0, { 0, 0}, {0x41, 0xcf, 0x9f, 0x00}}}, ++- {{{ -3, -39, 6}, 0, { 0, 0}, {0xd4, 0x8a, 0xf8, 0x00}}}, ++- {{{ -2, -15, -23}, 0, { 0, 0}, {0xd7, 0xe5, 0x8c, 0x00}}}, ++- {{{ 46, -36, 6}, 0, { 0, 0}, {0x3f, 0x94, 0x0f, 0x00}}}, ++- {{{ -2, -18, 38}, 0, { 0, 0}, {0xd6, 0xd5, 0x6f, 0x00}}}, ++- {{{ 47, -17, 34}, 0, { 0, 0}, {0x42, 0xec, 0x6a, 0x00}}}, ++- {{{ -1, 18, 28}, 0, { 0, 0}, {0xdb, 0x5d, 0x4d, 0x00}}}, ++- {{{ 48, 13, 25}, 0, { 0, 0}, {0x45, 0x5d, 0x32, 0x00}}}, ++- {{{ -1, 20, -9}, 0, { 0, 0}, {0xdb, 0x67, 0xc1, 0x00}}}, ++- {{{ 48, 15, -7}, 0, { 0, 0}, {0x45, 0x4c, 0xb6, 0x00}}}, ++- {{{ -14, -28, 6}, 0, { 0, 0}, {0x90, 0xc9, 0xef, 0x00}}}, ++- {{{ -14, -12, -13}, 0, { 0, 0}, {0x91, 0x01, 0xc3, 0x00}}}, ++- {{{ -13, 12, -4}, 0, { 0, 0}, {0x9e, 0x4b, 0xe7, 0x00}}}, ++- {{{ -13, 10, 21}, 0, { 0, 0}, {0x8d, 0x22, 0x28, 0x00}}}, ++- {{{ -14, -14, 28}, 0, { 0, 0}, {0x9a, 0xd8, 0x3f, 0x00}}}, ++- {{{ 59, -8, 7}, 0, { 0, 0}, {0x7f, 0xfd, 0x00, 0x00}}}, ++-}; ++- ++-// 0x0400DF08 - 0x0400DFF8 ++-const Gfx mario_right_forearm_shared_dl[] = { ++- gsSPVertex(mario_right_forearm_shared_dl_vertex, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 7, 8, 6, 0x0), ++- gsSP2Triangles( 9, 2, 8, 0x0, 1, 10, 2, 0x0), ++- gsSP2Triangles( 2, 11, 8, 0x0, 8, 12, 6, 0x0), ++- gsSP2Triangles( 6, 13, 4, 0x0, 4, 14, 1, 0x0), ++- gsSP2Triangles( 9, 15, 0, 0x0, 0, 15, 3, 0x0), ++- gsSP2Triangles( 3, 15, 5, 0x0, 5, 15, 7, 0x0), ++- gsSP2Triangles( 7, 15, 9, 0x0, 14, 10, 1, 0x0), ++- gsSP2Triangles(13, 14, 4, 0x0, 12, 13, 6, 0x0), ++- gsSP2Triangles(11, 12, 8, 0x0, 10, 11, 2, 0x0), ++- gsSP2Triangles( 9, 0, 2, 0x0, 7, 9, 8, 0x0), ++- gsSP2Triangles( 5, 7, 6, 0x0, 3, 5, 4, 0x0), ++- gsSP2Triangles( 0, 3, 1, 0x0, 11, 13, 12, 0x0), ++- gsSP2Triangles(11, 10, 13, 0x0, 10, 14, 13, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400DFF8 ++-static const Vtx mario_right_hand_closed_dl_vertex_group1[] = { ++- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, ++- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, ++- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, ++- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, ++- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, ++- {{{ 24, -57, -4}, 0, { 0, 0}, {0x73, 0xd4, 0xe6, 0x00}}}, ++- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, ++- {{{ -19, 47, -4}, 0, { 0, 0}, {0x30, 0x72, 0xe5, 0x00}}}, ++- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, ++- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, ++- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, ++- {{{ 24, -57, -4}, 0, { 0, 0}, {0xa2, 0xaf, 0xe7, 0x00}}}, ++- {{{ -16, -12, 6}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0x00}}}, ++- {{{ 4, -3, -33}, 0, { 0, 0}, {0x9b, 0xd5, 0xc2, 0x00}}}, ++- {{{ -19, 47, -4}, 0, { 0, 0}, {0x85, 0xf5, 0xe7, 0x00}}}, ++- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, ++-}; ++- ++-// 0x0400E0F8 ++-static const Vtx mario_right_hand_closed_dl_vertex_group2[] = { ++- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, ++- {{{ 104, -26, 1}, 0, { 0, 0}, {0x68, 0xc5, 0xd7, 0x00}}}, ++- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, ++- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, ++- {{{ 96, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x51, 0x00}}}, ++- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, ++- {{{ 58, 81, 0}, 0, { 0, 0}, {0x14, 0x7b, 0xe9, 0x00}}}, ++- {{{ 97, 39, 24}, 0, { 0, 0}, {0x6b, 0x3a, 0x21, 0x00}}}, ++- {{{ 86, 30, -33}, 0, { 0, 0}, {0x4f, 0x22, 0xa4, 0x00}}}, ++- {{{ 86, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x61, 0x00}}}, ++- {{{ 54, 54, 44}, 0, { 0, 0}, {0x20, 0x51, 0x5c, 0x00}}}, ++- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, ++- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, ++- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, ++-}; ++- ++-// 0x0400E1D8 ++-static const Vtx mario_right_hand_closed_dl_vertex_group3[] = { ++- {{{ 31, -40, -1}, 0, { 0, 0}, {0x43, 0xa4, 0xc9, 0x00}}}, ++- {{{ 23, -26, 35}, 0, { 0, 0}, {0x04, 0xc3, 0x6e, 0x00}}}, ++- {{{ 13, -38, 41}, 0, { 0, 0}, {0x15, 0xb3, 0x61, 0x00}}}, ++- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd2, 0x3c, 0x65, 0x00}}}, ++- {{{ -14, 26, 41}, 0, { 0, 0}, {0xed, 0x3d, 0x6d, 0x00}}}, ++- {{{ -2, 41, -1}, 0, { 0, 0}, {0xed, 0x70, 0xc9, 0x00}}}, ++- {{{ 15, 0, -23}, 0, { 0, 0}, {0x04, 0x01, 0x82, 0x00}}}, ++- {{{ 4, -3, -33}, 0, { 0, 0}, {0x48, 0x1e, 0x9d, 0x00}}}, ++- {{{ 35, 9, -37}, 0, { 0, 0}, {0xe5, 0xf5, 0x85, 0x00}}}, ++- {{{ 29, 6, 49}, 0, { 0, 0}, {0xc2, 0xfa, 0x6e, 0x00}}}, ++- {{{ 55, -44, -4}, 0, { 0, 0}, {0x00, 0x86, 0xdf, 0x00}}}, ++- {{{ 75, -33, 66}, 0, { 0, 0}, {0x08, 0xaf, 0x60, 0x00}}}, ++- {{{ 57, 10, 66}, 0, { 0, 0}, {0xfd, 0x1c, 0x7b, 0x00}}}, ++- {{{ 10, 60, -4}, 0, { 0, 0}, {0xac, 0x5a, 0xe5, 0x00}}}, ++- {{{ 29, 62, 34}, 0, { 0, 0}, {0xce, 0x4c, 0x57, 0x00}}}, ++-}; ++- ++-// 0x0400E2C8 - 0x0400E458 ++-const Gfx mario_right_hand_closed_dl[] = { ++- gsSPVertex(mario_right_hand_closed_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 2, 5, 6, 0x0, 6, 7, 4, 0x0), ++- gsSP2Triangles( 4, 7, 8, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles( 9, 5, 2, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(13, 12, 14, 0x0, 14, 12, 8, 0x0), ++- gsSP2Triangles( 8, 12, 9, 0x0, 9, 12, 11, 0x0), ++- gsSP1Triangle( 3, 15, 0, 0x0), ++- gsSPVertex(mario_right_hand_closed_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 8, 7, 1, 0x0, 1, 7, 4, 0x0), ++- gsSP2Triangles( 4, 7, 9, 0x0, 10, 7, 6, 0x0), ++- gsSP2Triangles( 9, 10, 5, 0x0, 10, 11, 5, 0x0), ++- gsSP2Triangles(11, 12, 5, 0x0, 1, 4, 3, 0x0), ++- gsSP2Triangles(11, 10, 6, 0x0, 6, 13, 11, 0x0), ++- gsSP2Triangles( 7, 10, 9, 0x0, 4, 9, 5, 0x0), ++- gsSP2Triangles( 0, 8, 1, 0x0, 6, 8, 0, 0x0), ++- gsSPVertex(mario_right_hand_closed_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 7, 6, 0, 0x0, 8, 6, 5, 0x0), ++- gsSP2Triangles( 9, 3, 1, 0x0, 0, 6, 8, 0x0), ++- gsSP2Triangles(10, 11, 1, 0x0, 11, 9, 1, 0x0), ++- gsSP2Triangles(11, 12, 9, 0x0, 1, 0, 10, 0x0), ++- gsSP2Triangles(13, 5, 3, 0x0, 3, 9, 14, 0x0), ++- gsSP1Triangle(14, 13, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E458 - 0x0400E478 ++-const Gfx mario_right_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_right_hand_closed_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E478 - 0x0400E4A8 ++-const Gfx mario_metal_right_hand_closed[] = { ++- gsSPDisplayList(mario_right_hand_closed_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E4A8 ++-static const Vtx mario_left_thigh_dl_vertex_group1[] = { ++- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, ++- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, ++- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, ++- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, ++- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, ++- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, ++- {{{ 116, 10, 8}, 0, { 0, 0}, {0x7e, 0x09, 0x01, 0x00}}}, ++- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, ++- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, ++- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, ++- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, ++- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, ++- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, ++- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, ++- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, ++-}; ++- ++-// 0x0400E5A8 ++-static const Vtx mario_left_thigh_dl_vertex_group2[] = { ++- {{{ 18, -15, 58}, 0, { 0, 0}, {0xea, 0xda, 0x76, 0x00}}}, ++- {{{ 1, -44, 8}, 0, { 0, 0}, {0xab, 0xa2, 0x00, 0x00}}}, ++- {{{ 21, -54, 8}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0x00}}}, ++- {{{ 19, -15, -42}, 0, { 0, 0}, {0xec, 0xd9, 0x8a, 0x00}}}, ++- {{{ -1, -12, 47}, 0, { 0, 0}, {0x9e, 0xe3, 0x49, 0x00}}}, ++- {{{ -15, 0, 7}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 98, -37, 8}, 0, { 0, 0}, {0x46, 0x97, 0x01, 0x00}}}, ++- {{{ 13, 48, 38}, 0, { 0, 0}, {0xe7, 0x6d, 0x3a, 0x00}}}, ++- {{{ 91, 45, 32}, 0, { 0, 0}, {0x3c, 0x4e, 0x4f, 0x00}}}, ++- {{{ 14, 48, -23}, 0, { 0, 0}, {0xd7, 0x67, 0xc5, 0x00}}}, ++- {{{ 92, 45, -16}, 0, { 0, 0}, {0x35, 0x5d, 0xbd, 0x00}}}, ++- {{{ 96, -5, -31}, 0, { 0, 0}, {0x50, 0xe8, 0xa1, 0x00}}}, ++- {{{ 95, -5, 48}, 0, { 0, 0}, {0x4e, 0xe9, 0x60, 0x00}}}, ++- {{{ 0, -13, -32}, 0, { 0, 0}, {0x9f, 0xe1, 0xb5, 0x00}}}, ++- {{{ -5, 37, 31}, 0, { 0, 0}, {0xa0, 0x3f, 0x34, 0x00}}}, ++- {{{ -4, 37, -17}, 0, { 0, 0}, {0x9e, 0x30, 0xc0, 0x00}}}, ++-}; ++- ++-// 0x0400E6A8 - 0x0400E7B0 ++-const Gfx mario_left_thigh_dl[] = { ++- gsSPVertex(mario_left_thigh_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0), ++- gsSP2Triangles( 9, 7, 10, 0x0, 10, 7, 11, 0x0), ++- gsSP2Triangles(11, 7, 6, 0x0, 12, 3, 13, 0x0), ++- gsSP2Triangles(13, 4, 14, 0x0, 14, 4, 15, 0x0), ++- gsSPVertex(mario_left_thigh_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 4, 5, 1, 0x0, 0, 2, 6, 0x0), ++- gsSP2Triangles( 7, 0, 8, 0x0, 9, 7, 10, 0x0), ++- gsSP2Triangles( 3, 9, 10, 0x0, 2, 3, 6, 0x0), ++- gsSP2Triangles( 3, 11, 6, 0x0, 10, 11, 3, 0x0), ++- gsSP2Triangles( 7, 8, 10, 0x0, 0, 12, 8, 0x0), ++- gsSP2Triangles( 6, 12, 0, 0x0, 1, 13, 3, 0x0), ++- gsSP2Triangles( 0, 4, 1, 0x0, 14, 4, 0, 0x0), ++- gsSP2Triangles( 9, 15, 14, 0x0, 3, 13, 15, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E7B0 - 0x0400E7E0 ++-const Gfx mario_left_thigh[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E7E0 - 0x0400E858 ++-const Gfx mario_metal_left_thigh[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E858 ++-static const Vtx mario_left_leg_shared_dl_vertex[] = { ++- {{{ 4, -37, 9}, 0, { 0, 0}, {0xc1, 0x93, 0x00, 0x00}}}, ++- {{{ 64, -46, 9}, 0, { 0, 0}, {0x4b, 0x9a, 0x01, 0x00}}}, ++- {{{ 65, -11, 54}, 0, { 0, 0}, {0x2d, 0xdb, 0x70, 0x00}}}, ++- {{{ 8, 44, 33}, 0, { 0, 0}, {0xcc, 0x5e, 0x43, 0x00}}}, ++- {{{ 68, 45, 37}, 0, { 0, 0}, {0x52, 0x4b, 0x3c, 0x00}}}, ++- {{{ 69, 45, -18}, 0, { 0, 0}, {0x42, 0x61, 0xd1, 0x00}}}, ++- {{{ 9, 44, -16}, 0, { 0, 0}, {0xc4, 0x4d, 0xaf, 0x00}}}, ++- {{{ 66, -11, -36}, 0, { 0, 0}, {0x2e, 0xda, 0x91, 0x00}}}, ++- {{{ 6, -6, -31}, 0, { 0, 0}, {0xb4, 0xe5, 0x9f, 0x00}}}, ++- {{{ 6, -6, 49}, 0, { 0, 0}, {0xb3, 0xe7, 0x60, 0x00}}}, ++- {{{ -14, 8, 8}, 0, { 0, 0}, {0x82, 0x06, 0xff, 0x00}}}, ++- {{{ 81, 3, 9}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++-}; ++- ++-// 0x0400E918 - 0x0400E9C8 ++-const Gfx mario_left_leg_shared_dl[] = { ++- gsSPVertex(mario_left_leg_shared_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), ++- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), ++- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), ++- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), ++- gsSP2Triangles( 3, 10, 9, 0x0, 5, 11, 7, 0x0), ++- gsSP2Triangles( 7, 11, 1, 0x0, 1, 11, 2, 0x0), ++- gsSP2Triangles( 2, 11, 4, 0x0, 4, 11, 5, 0x0), ++- gsSP2Triangles( 9, 10, 0, 0x0, 0, 10, 8, 0x0), ++- gsSP2Triangles( 8, 10, 6, 0x0, 6, 10, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400E9C8 ++-static const Vtx mario_left_foot_shared_dl_vertex_group1[] = { ++- {{{ 110, 9, 35}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 110, 8, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 76, 20, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 78, 21, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -12, 53, -32}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -11, 54, 53}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -39, 64, -8}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -41, 65, 26}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, ++- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, ++- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, ++- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, ++- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, ++- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, ++- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, ++- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, ++-}; ++- ++-// 0x0400EAC8 ++-static const Vtx mario_left_foot_shared_dl_vertex_group2[] = { ++- {{{ 44, -12, -33}, 0, { 0, 0}, {0x01, 0xb7, 0x99, 0x00}}}, ++- {{{ 76, 20, -41}, 0, { 0, 0}, {0x0c, 0xd8, 0x89, 0x00}}}, ++- {{{ 110, 8, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, ++- {{{ 80, -31, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, ++- {{{ 110, 9, 35}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, ++- {{{ 78, 21, 61}, 0, { 0, 0}, {0x15, 0xdb, 0x77, 0x00}}}, ++- {{{ 43, -18, 54}, 0, { 0, 0}, {0x07, 0xb3, 0x64, 0x00}}}, ++- {{{ -34, 12, 44}, 0, { 0, 0}, {0xb2, 0xd2, 0x58, 0x00}}}, ++- {{{ -11, 54, 53}, 0, { 0, 0}, {0xd9, 0x00, 0x78, 0x00}}}, ++- {{{ -41, 65, 26}, 0, { 0, 0}, {0x90, 0x17, 0x35, 0x00}}}, ++- {{{ -39, 64, -8}, 0, { 0, 0}, {0x93, 0x16, 0xc4, 0x00}}}, ++- {{{ -35, 11, -21}, 0, { 0, 0}, {0xb5, 0xd2, 0xa5, 0x00}}}, ++- {{{ -54, 15, 8}, 0, { 0, 0}, {0x88, 0xd8, 0xfd, 0x00}}}, ++- {{{ -12, 53, -32}, 0, { 0, 0}, {0xd7, 0xfd, 0x89, 0x00}}}, ++- {{{ 27, -35, 11}, 0, { 0, 0}, {0xdb, 0x87, 0xfc, 0x00}}}, ++-}; ++- ++-// 0x0400EBB8 - 0x0400ECA0 ++-const Gfx mario_left_foot_shared_dl[] = { ++- gsSPVertex(mario_left_foot_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), ++- gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(14, 8, 10, 0x0, 11, 13, 15, 0x0), ++- gsSPVertex(mario_left_foot_shared_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), ++- gsSP2Triangles( 2, 3, 0, 0x0, 4, 5, 6, 0x0), ++- gsSP2Triangles( 6, 3, 4, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), ++- gsSP2Triangles(12, 9, 10, 0x0, 9, 12, 7, 0x0), ++- gsSP2Triangles(14, 0, 3, 0x0, 11, 0, 14, 0x0), ++- gsSP2Triangles( 3, 6, 14, 0x0, 14, 6, 7, 0x0), ++- gsSP2Triangles(14, 7, 12, 0x0, 12, 11, 14, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400ECA0 - 0x0400ECC0 ++-const Gfx mario_left_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_left_foot_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400ECC0 ++-static const Vtx mario_right_thigh_shared_dl_vertex_group1[] = { ++- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, ++- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, ++- {{{ 22, -54, -9}, 0, { 0, 0}, {0xf2, 0x82, 0xfd, 0x00}}}, ++- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, ++- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, ++- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, ++- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, ++- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, ++- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, ++- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, ++- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, ++- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, ++- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, ++- {{{ 116, 11, -9}, 0, { 0, 0}, {0x7e, 0x0b, 0xfe, 0x00}}}, ++- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, ++-}; ++- ++-// 0x0400EDC0 ++-static const Vtx mario_right_thigh_shared_dl_vertex_group2[] = { ++- {{{ -5, 36, 18}, 0, { 0, 0}, {0x9e, 0x2d, 0x42, 0x00}}}, ++- {{{ -15, 0, -7}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 0, -14, 31}, 0, { 0, 0}, {0xa0, 0xdf, 0x4b, 0x00}}}, ++- {{{ 1, -44, -9}, 0, { 0, 0}, {0xad, 0xa1, 0xff, 0x00}}}, ++- {{{ 19, -16, 41}, 0, { 0, 0}, {0xee, 0xd6, 0x76, 0x00}}}, ++- {{{ -6, 38, -31}, 0, { 0, 0}, {0x9e, 0x3f, 0xcf, 0x00}}}, ++- {{{ 13, 48, 24}, 0, { 0, 0}, {0xd6, 0x66, 0x3e, 0x00}}}, ++- {{{ 18, -13, -58}, 0, { 0, 0}, {0xea, 0xdc, 0x89, 0x00}}}, ++- {{{ -1, -11, -47}, 0, { 0, 0}, {0x9d, 0xe3, 0xb7, 0x00}}}, ++- {{{ 95, -3, -49}, 0, { 0, 0}, {0x4d, 0xec, 0x9e, 0x00}}}, ++- {{{ 98, -35, -10}, 0, { 0, 0}, {0x47, 0x97, 0xfc, 0x00}}}, ++- {{{ 90, 47, -32}, 0, { 0, 0}, {0x3b, 0x50, 0xb2, 0x00}}}, ++- {{{ 91, 46, 16}, 0, { 0, 0}, {0x35, 0x5c, 0x44, 0x00}}}, ++- {{{ 12, 49, -37}, 0, { 0, 0}, {0xe5, 0x6e, 0xc9, 0x00}}}, ++- {{{ 96, -5, 30}, 0, { 0, 0}, {0x51, 0xe7, 0x5d, 0x00}}}, ++-}; ++- ++-// 0x0400EEB0 - 0x0400EFB8 ++-const Gfx mario_right_thigh_shared_dl[] = { ++- gsSPVertex(mario_right_thigh_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 3, 5, 4, 0x0, 6, 7, 5, 0x0), ++- gsSP2Triangles( 0, 2, 7, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles( 1, 8, 2, 0x0, 2, 8, 7, 0x0), ++- gsSP2Triangles( 7, 11, 5, 0x0, 5, 11, 4, 0x0), ++- gsSP2Triangles( 4, 12, 1, 0x0, 13, 14, 0, 0x0), ++- gsSP2Triangles( 0, 14, 15, 0x0, 15, 14, 3, 0x0), ++- gsSP2Triangles( 3, 14, 6, 0x0, 6, 14, 13, 0x0), ++- gsSP2Triangles(10, 9, 11, 0x0, 11, 9, 12, 0x0), ++- gsSPVertex(mario_right_thigh_shared_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 6, 0x0), ++- gsSP2Triangles( 7, 8, 5, 0x0, 3, 8, 7, 0x0), ++- gsSP2Triangles( 4, 2, 3, 0x0, 7, 9, 10, 0x0), ++- gsSP2Triangles(11, 9, 7, 0x0, 12, 11, 13, 0x0), ++- gsSP2Triangles( 4, 14, 12, 0x0, 10, 14, 4, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400EFB8 - 0x0400EFD8 ++-const Gfx mario_right_thigh[] = { ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_right_thigh_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400EFD8 ++-static const Vtx mario_right_leg_shared_dl_vertex_group1[] = { ++- {{{ 63, -45, -12}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, ++- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, ++- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, ++- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, ++- {{{ 69, 45, 18}, 0, { 0, 0}, {0xfc, 0x22, 0x7a, 0x00}}}, ++- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, ++- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, ++- {{{ 69, 46, -37}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, ++- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, ++- {{{ 69, 46, -37}, 0, { 0, 0}, {0xf7, 0x27, 0x88, 0x00}}}, ++- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, ++- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, ++- {{{ 63, -45, -12}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, ++- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, ++- {{{ -13, 10, -9}, 0, { 0, 0}, {0x82, 0x08, 0x02, 0x00}}}, ++- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, ++-}; ++- ++-// 0x0400F0D8 ++-static const Vtx mario_right_leg_shared_dl_vertex_group2[] = { ++- {{{ 65, -9, -56}, 0, { 0, 0}, {0x75, 0xee, 0xd5, 0x00}}}, ++- {{{ 83, 4, -10}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 63, -45, -12}, 0, { 0, 0}, {0x75, 0xd1, 0xfd, 0x00}}}, ++- {{{ 66, -11, 34}, 0, { 0, 0}, {0x77, 0xec, 0x26, 0x00}}}, ++- {{{ 69, 45, 18}, 0, { 0, 0}, {0x7a, 0x18, 0x17, 0x00}}}, ++- {{{ 69, 46, -37}, 0, { 0, 0}, {0x79, 0x19, 0xe6, 0x00}}}, ++- {{{ 4, -36, -10}, 0, { 0, 0}, {0xc0, 0x93, 0xfe, 0x00}}}, ++- {{{ 5, -3, -50}, 0, { 0, 0}, {0xb2, 0xea, 0xa0, 0x00}}}, ++- {{{ 65, -9, -56}, 0, { 0, 0}, {0xef, 0xa0, 0xb0, 0x00}}}, ++- {{{ 65, -9, -56}, 0, { 0, 0}, {0xf8, 0x28, 0x88, 0x00}}}, ++- {{{ 9, 46, -33}, 0, { 0, 0}, {0xcd, 0x60, 0xc0, 0x00}}}, ++- {{{ 9, 44, 16}, 0, { 0, 0}, {0xc6, 0x4b, 0x53, 0x00}}}, ++- {{{ 69, 45, 18}, 0, { 0, 0}, {0xff, 0x7f, 0x03, 0x00}}}, ++- {{{ 6, -6, 30}, 0, { 0, 0}, {0xb4, 0xe4, 0x61, 0x00}}}, ++- {{{ 66, -11, 34}, 0, { 0, 0}, {0xfb, 0x22, 0x7a, 0x00}}}, ++- {{{ 66, -11, 34}, 0, { 0, 0}, {0xf2, 0x9b, 0x4a, 0x00}}}, ++-}; ++- ++-// 0x0400F1D8 - 0x0400F290 ++-const Gfx mario_right_leg_shared_dl[] = { ++- gsSPVertex(mario_right_leg_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 8, 0x0), ++- gsSP2Triangles(11, 12, 2, 0x0, 13, 14, 2, 0x0), ++- gsSP2Triangles( 2, 14, 15, 0x0, 15, 14, 8, 0x0), ++- gsSP2Triangles( 8, 14, 5, 0x0, 5, 14, 13, 0x0), ++- gsSPVertex(mario_right_leg_shared_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), ++- gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 7, 10, 0x0, 10, 11, 12, 0x0), ++- gsSP2Triangles(11, 13, 14, 0x0, 15, 13, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400F290 ++-static const Vtx mario_right_foot_dl_vertex_group1[] = { ++- {{{ 27, -35, -11}, 0, { 0, 0}, {0xdc, 0x87, 0x06, 0x00}}}, ++- {{{ -36, 11, 19}, 0, { 0, 0}, {0xb5, 0xd3, 0x5b, 0x00}}}, ++- {{{ -54, 14, -10}, 0, { 0, 0}, {0x89, 0xd6, 0x03, 0x00}}}, ++- {{{ -34, 11, -46}, 0, { 0, 0}, {0xb4, 0xd0, 0xa8, 0x00}}}, ++- {{{ 43, -18, -55}, 0, { 0, 0}, {0x0a, 0xb2, 0x9d, 0x00}}}, ++- {{{ 80, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, ++- {{{ 44, -11, 32}, 0, { 0, 0}, {0x01, 0xb8, 0x68, 0x00}}}, ++- {{{ -42, 64, -29}, 0, { 0, 0}, {0x90, 0x14, 0xc9, 0x00}}}, ++- {{{ -40, 63, 5}, 0, { 0, 0}, {0x92, 0x15, 0x3b, 0x00}}}, ++- {{{ -14, 54, 29}, 0, { 0, 0}, {0xd5, 0xfe, 0x77, 0x00}}}, ++- {{{ -11, 53, -56}, 0, { 0, 0}, {0xda, 0xfe, 0x87, 0x00}}}, ++- {{{ 110, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, ++- {{{ 78, 22, -61}, 0, { 0, 0}, {0x17, 0xd9, 0x8a, 0x00}}}, ++- {{{ 109, 11, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, ++- {{{ 75, 23, 40}, 0, { 0, 0}, {0x0b, 0xda, 0x78, 0x00}}}, ++-}; ++- ++-// 0x0400F380 ++-static const Vtx mario_right_foot_dl_vertex_group2[] = { ++- {{{ -42, 64, -29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -40, 63, 5}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -11, 53, -56}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -14, 54, 29}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 78, 22, -61}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 75, 23, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 110, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 109, 11, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++-}; ++- ++-// 0x0400F400 - 0x0400F4E8 ++-const Gfx mario_right_foot_dl[] = { ++- gsSPVertex(mario_right_foot_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 3, 4, 0, 0x0, 0, 4, 5, 0x0), ++- gsSP2Triangles( 0, 6, 1, 0x0, 5, 6, 0, 0x0), ++- gsSP2Triangles( 3, 2, 7, 0x0, 8, 7, 2, 0x0), ++- gsSP2Triangles( 1, 9, 8, 0x0, 2, 1, 8, 0x0), ++- gsSP2Triangles( 7, 10, 3, 0x0, 11, 5, 4, 0x0), ++- gsSP2Triangles( 4, 12, 11, 0x0, 6, 5, 13, 0x0), ++- gsSP2Triangles(11, 13, 5, 0x0, 13, 14, 6, 0x0), ++- gsSP2Triangles(14, 9, 6, 0x0, 10, 4, 3, 0x0), ++- gsSP2Triangles( 9, 1, 6, 0x0, 10, 12, 4, 0x0), ++- gsSPVertex(mario_right_foot_dl_vertex_group2, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 3, 4, 2, 0x0, 3, 5, 4, 0x0), ++- gsSP2Triangles( 5, 6, 4, 0x0, 5, 7, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400F4E8 - 0x0400F528 ++-const Gfx mario_right_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_right_foot_dl), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400F528 - 0x0400F568 ++-const Gfx mario_metal_right_foot[] = { ++- gsSPDisplayList(mario_right_foot_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400F568 ++-static const Vtx mario_yellow_button_dl_vertex[] = { ++- {{{ 9, 89, 41}, 0, { 180, 962}, {0x14, 0x78, 0x23, 0xff}}}, ++- {{{ 3, 77, 62}, 0, { 682, 966}, {0x04, 0x6a, 0x44, 0xff}}}, ++- {{{ 47, 75, 35}, 0, { 34, 106}, {0x39, 0x6a, 0x26, 0xff}}}, ++- {{{ 28, 85, 30}, 0, { -60, 572}, {0x2c, 0x76, 0x08, 0xff}}}, ++- {{{ 17, 66, 76}, 0, { 966, 590}, {0x19, 0x58, 0x57, 0xff}}}, ++- {{{ 32, 62, 74}, 0, { 902, 252}, {0x29, 0x53, 0x56, 0xff}}}, ++- {{{ 48, 64, 59}, 0, { 548, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, ++- {{{ 9, 89, -40}, 0, { 776, 920}, {0x10, 0x7b, 0xe7, 0xff}}}, ++- {{{ 28, 85, -29}, 0, { 990, 512}, {0x2d, 0x75, 0xf2, 0xff}}}, ++- {{{ 47, 75, -34}, 0, { 850, 72}, {0x3e, 0x6a, 0xe2, 0xff}}}, ++- {{{ 3, 77, -61}, 0, { 264, 972}, {0x03, 0x6a, 0xbb, 0xff}}}, ++- {{{ 48, 64, -58}, 0, { 312, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, ++- {{{ 32, 62, -73}, 0, { -24, 310}, {0x29, 0x52, 0xa9, 0xff}}}, ++- {{{ 17, 66, -75}, 0, { -58, 642}, {0x17, 0x58, 0xa8, 0xff}}}, ++-}; ++- ++-// 0x0400F648 ++-static const Vtx mario_tshirt_shared_dl_vertex_group1[] = { ++- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, ++- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, ++- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, ++- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, ++- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, ++- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, ++- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, ++- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, ++- {{{ 46, -34, -83}, 0, { 0, 0}, {0x24, 0xc8, 0x95, 0xff}}}, ++- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, ++- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, ++- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, ++- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, ++- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, ++- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, ++- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, ++-}; ++- ++-// 0x0400F748 ++-static const Vtx mario_tshirt_shared_dl_vertex_group2[] = { ++- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, ++- {{{ 46, -34, 84}, 0, { 0, 0}, {0x24, 0xc8, 0x6b, 0xff}}}, ++- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, ++- {{{ 47, 3, 89}, 0, { 0, 0}, {0x30, 0x08, 0x75, 0xff}}}, ++- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, ++- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, ++- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, ++- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, ++- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, ++- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, ++- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, ++- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, ++- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, ++- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, ++-}; ++- ++-// 0x0400F828 ++-static const Vtx mario_tshirt_shared_dl_vertex_group3[] = { ++- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, ++- {{{ 47, 3, -88}, 0, { 0, 0}, {0x30, 0x09, 0x8b, 0xff}}}, ++- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, ++- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, ++- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, ++-}; ++- ++-// 0x0400F878 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group1[] = { ++- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, ++- {{{ 28, 85, 30}, 0, { 0, 0}, {0x2c, 0x76, 0x08, 0xff}}}, ++- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, ++- {{{ 28, 85, -29}, 0, { 0, 0}, {0x2d, 0x75, 0xf2, 0xff}}}, ++- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, ++- {{{ 9, 89, -40}, 0, { 0, 0}, {0x10, 0x7b, 0xe7, 0xff}}}, ++- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, ++- {{{ -15, 87, -35}, 0, { 0, 0}, {0xea, 0x76, 0xda, 0xff}}}, ++- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, ++- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, ++- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, ++- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, ++- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, ++- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, ++- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, ++-}; ++- ++-// 0x0400F968 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group2[] = { ++- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, ++- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, ++- {{{ 48, 64, -58}, 0, { 0, 0}, {0x4d, 0x50, 0xc5, 0xff}}}, ++- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, ++- {{{ 9, 89, 41}, 0, { 0, 0}, {0x14, 0x78, 0x23, 0xff}}}, ++- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, ++- {{{ 47, 75, 35}, 0, { 0, 0}, {0x39, 0x6a, 0x26, 0xff}}}, ++- {{{ 48, 64, 59}, 0, { 0, 0}, {0x4d, 0x51, 0x3a, 0xff}}}, ++- {{{ 82, 37, 27}, 0, { 0, 0}, {0x66, 0x48, 0x14, 0xff}}}, ++- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, ++- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, ++- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, ++- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, ++- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, ++- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, ++- {{{ 47, 75, -34}, 0, { 0, 0}, {0x3e, 0x6a, 0xe2, 0xff}}}, ++-}; ++- ++-// 0x0400FA68 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group3[] = { ++- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, ++- {{{ 82, 37, -26}, 0, { 0, 0}, {0x69, 0x43, 0xec, 0xff}}}, ++- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, ++- {{{ 20, -61, -67}, 0, { 0, 0}, {0x0a, 0x9a, 0xb7, 0xff}}}, ++- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, ++- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, ++- {{{ -27, -25, -86}, 0, { 0, 0}, {0xcb, 0xd5, 0x96, 0xff}}}, ++- {{{ 6, -10, -92}, 0, { 0, 0}, {0x00, 0xeb, 0x83, 0xff}}}, ++- {{{ -29, -58, -59}, 0, { 0, 0}, {0xc9, 0x9a, 0xcf, 0xff}}}, ++- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, ++- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, ++- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, ++- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, ++- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, ++- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, ++- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, ++-}; ++- ++-// 0x0400FB68 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group4[] = { ++- {{{ 8, -74, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, ++- {{{ 20, -61, 68}, 0, { 0, 0}, {0x0a, 0x99, 0x49, 0xff}}}, ++- {{{ -29, -58, 59}, 0, { 0, 0}, {0xc8, 0x99, 0x30, 0xff}}}, ++- {{{ -27, -25, 87}, 0, { 0, 0}, {0xcb, 0xd3, 0x69, 0xff}}}, ++- {{{ 6, -11, 93}, 0, { 0, 0}, {0x00, 0xea, 0x7c, 0xff}}}, ++- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, ++- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, ++- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, ++- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, ++- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, ++- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, ++- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, ++- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, ++- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, ++- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, ++- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, ++-}; ++- ++-// 0x0400FC68 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group5[] = { ++- {{{ -71, 54, -29}, 0, { 0, 0}, {0x8f, 0x2a, 0xda, 0xff}}}, ++- {{{ -43, 83, -24}, 0, { 0, 0}, {0xcc, 0x72, 0xee, 0xff}}}, ++- {{{ -40, 72, -54}, 0, { 0, 0}, {0xc5, 0x5f, 0xc6, 0xff}}}, ++- {{{ -59, -28, -37}, 0, { 0, 0}, {0x90, 0xd5, 0xd9, 0xff}}}, ++- {{{ -59, -28, 38}, 0, { 0, 0}, {0x8d, 0xd8, 0x21, 0xff}}}, ++- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, ++- {{{ -43, 83, 25}, 0, { 0, 0}, {0xbc, 0x69, 0x11, 0xff}}}, ++- {{{ -71, 54, 30}, 0, { 0, 0}, {0x94, 0x2a, 0x31, 0xff}}}, ++- {{{ -30, -66, 0}, 0, { 0, 0}, {0xb8, 0x98, 0x00, 0xff}}}, ++- {{{ -27, 26, 91}, 0, { 0, 0}, {0xc8, 0x0e, 0x70, 0xff}}}, ++- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, ++- {{{ -40, 72, 55}, 0, { 0, 0}, {0xc4, 0x5e, 0x3a, 0xff}}}, ++- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, ++- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, ++-}; ++- ++-// 0x0400FD48 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group6[] = { ++- {{{ -27, 26, -89}, 0, { 0, 0}, {0xc7, 0x0f, 0x90, 0xff}}}, ++- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, ++- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, ++- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, ++- {{{ 80, 14, -61}, 0, { 0, 0}, {0x60, 0x28, 0xb8, 0xff}}}, ++- {{{ 100, 1, -23}, 0, { 0, 0}, {0x7c, 0x09, 0xea, 0xff}}}, ++- {{{ 84, -29, -62}, 0, { 0, 0}, {0x5f, 0xde, 0xb4, 0xff}}}, ++- {{{ 93, -36, -25}, 0, { 0, 0}, {0x66, 0xb7, 0xf0, 0xff}}}, ++- {{{ 66, -52, -50}, 0, { 0, 0}, {0x3b, 0x9a, 0xd3, 0xff}}}, ++- {{{ 54, -63, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}}, ++- {{{ 66, -52, 51}, 0, { 0, 0}, {0x3b, 0x9a, 0x2d, 0xff}}}, ++- {{{ 93, -36, 26}, 0, { 0, 0}, {0x6b, 0xbf, 0x0d, 0xff}}}, ++- {{{ 84, -29, 63}, 0, { 0, 0}, {0x5f, 0xde, 0x4c, 0xff}}}, ++- {{{ 100, 1, 24}, 0, { 0, 0}, {0x7a, 0x17, 0x16, 0xff}}}, ++- {{{ 80, 14, 62}, 0, { 0, 0}, {0x60, 0x28, 0x47, 0xff}}}, ++-}; ++- ++-// 0x0400FE38 ++-static const Vtx mario_pants_overalls_shared_dl_vertex_group7[] = { ++- {{{ 17, 66, -75}, 0, { 0, 0}, {0x17, 0x58, 0xa8, 0xff}}}, ++- {{{ -4, 58, -82}, 0, { 0, 0}, {0xf9, 0x42, 0x94, 0xff}}}, ++- {{{ 3, 77, -61}, 0, { 0, 0}, {0x03, 0x6a, 0xbb, 0xff}}}, ++- {{{ -28, 63, -74}, 0, { 0, 0}, {0xd1, 0x4f, 0xaa, 0xff}}}, ++- {{{ 32, 62, 74}, 0, { 0, 0}, {0x29, 0x53, 0x56, 0xff}}}, ++- {{{ 17, 66, 76}, 0, { 0, 0}, {0x19, 0x58, 0x57, 0xff}}}, ++- {{{ 13, 33, 91}, 0, { 0, 0}, {0x12, 0x20, 0x79, 0xff}}}, ++- {{{ -28, 63, 75}, 0, { 0, 0}, {0xd0, 0x50, 0x55, 0xff}}}, ++- {{{ -4, 58, 84}, 0, { 0, 0}, {0xfb, 0x43, 0x6b, 0xff}}}, ++- {{{ 3, 77, 62}, 0, { 0, 0}, {0x04, 0x6a, 0x44, 0xff}}}, ++- {{{ -15, 88, 35}, 0, { 0, 0}, {0xec, 0x7a, 0x1c, 0xff}}}, ++- {{{ 12, 33, -90}, 0, { 0, 0}, {0x11, 0x20, 0x87, 0xff}}}, ++- {{{ 32, 62, -73}, 0, { 0, 0}, {0x29, 0x52, 0xa9, 0xff}}}, ++- {{{ 43, 51, -74}, 0, { 0, 0}, {0x3c, 0x32, 0x9d, 0xff}}}, ++- {{{ 44, 51, 75}, 0, { 0, 0}, {0x3c, 0x34, 0x62, 0xff}}}, ++-}; ++- ++-// 0x0400FF28 - 0x0400FF88 ++-const Gfx mario_yellow_button_dl[] = { ++- gsSPVertex(mario_yellow_button_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 1, 4, 2, 0x0, 5, 6, 2, 0x0), ++- gsSP2Triangles( 4, 5, 2, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 7, 9, 0x0, 9, 11, 12, 0x0), ++- gsSP2Triangles(12, 13, 9, 0x0, 13, 10, 9, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0400FF88 - 0x04010260 ++-const Gfx mario_pants_overalls_shared_dl[] = { ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 1, 5, 0x0, 1, 3, 5, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), ++- gsSP2Triangles( 7, 5, 8, 0x0, 9, 6, 7, 0x0), ++- gsSP2Triangles( 7, 8, 10, 0x0, 10, 11, 7, 0x0), ++- gsSP2Triangles( 9, 7, 11, 0x0, 12, 6, 13, 0x0), ++- gsSP2Triangles( 9, 13, 6, 0x0, 6, 12, 14, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles( 7, 10, 11, 0x0, 11, 8, 7, 0x0), ++- gsSP2Triangles(12, 8, 11, 0x0, 13, 0, 2, 0x0), ++- gsSP2Triangles( 2, 1, 14, 0x0, 2, 15, 13, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 3, 6, 7, 0x0, 3, 8, 6, 0x0), ++- gsSP2Triangles( 5, 9, 3, 0x0, 8, 3, 9, 0x0), ++- gsSP2Triangles( 6, 8, 10, 0x0, 11, 10, 8, 0x0), ++- gsSP2Triangles( 9, 11, 8, 0x0, 6, 12, 7, 0x0), ++- gsSP2Triangles(12, 6, 10, 0x0, 7, 12, 13, 0x0), ++- gsSP2Triangles(14, 5, 15, 0x0, 14, 9, 5, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 1, 4, 3, 0x0, 5, 4, 6, 0x0), ++- gsSP2Triangles( 4, 5, 3, 0x0, 2, 3, 7, 0x0), ++- gsSP2Triangles( 7, 3, 5, 0x0, 8, 2, 7, 0x0), ++- gsSP2Triangles( 2, 8, 0, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles(12, 11, 10, 0x0, 11, 7, 13, 0x0), ++- gsSP1Triangle(14, 15, 11, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group5, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), ++- gsSP2Triangles( 2, 5, 0, 0x0, 6, 0, 7, 0x0), ++- gsSP2Triangles( 4, 3, 8, 0x0, 9, 7, 4, 0x0), ++- gsSP2Triangles( 7, 10, 11, 0x0, 11, 6, 7, 0x0), ++- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), ++- gsSP1Triangle( 7, 9, 10, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group6, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0), ++- gsSP2Triangles(14, 12, 13, 0x0, 11, 10, 9, 0x0), ++- gsSPVertex(mario_pants_overalls_shared_dl_vertex_group7, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 7, 9, 0x0, 9, 8, 5, 0x0), ++- gsSP2Triangles( 5, 8, 6, 0x0, 11, 1, 0, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 6, 14, 4, 0x0), ++- gsSP1Triangle(11, 0, 12, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04010260 - 0x04010348 ++-const Gfx mario_tshirt_shared_dl[] = { ++- gsSPVertex(mario_tshirt_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), ++- gsSP2Triangles( 6, 8, 10, 0x0, 11, 8, 12, 0x0), ++- gsSP2Triangles(12, 8, 7, 0x0, 8, 11, 10, 0x0), ++- gsSP1Triangle(13, 14, 15, 0x0), ++- gsSPVertex(mario_tshirt_shared_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0), ++- gsSP2Triangles( 6, 2, 3, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 7, 9, 10, 0x0, 11, 10, 9, 0x0), ++- gsSP2Triangles(12, 3, 4, 0x0, 13, 3, 12, 0x0), ++- gsSP1Triangle( 6, 3, 13, 0x0), ++- gsSPVertex(mario_tshirt_shared_dl_vertex_group3, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP1Triangle( 1, 4, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04010348 - 0x04010370 ++-const Gfx mario_torso_dl[] = { ++- gsSPDisplayList(mario_pants_overalls_shared_dl), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04010370 - 0x040103F0 ++-const Gfx mario_torso[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_yellow_button_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_torso_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040103F0 - 0x04010410 ++-const Gfx mario_metal_torso_shared_dl[] = { ++- gsSPDisplayList(mario_yellow_button_dl), ++- gsSPDisplayList(mario_pants_overalls_shared_dl), ++- gsSPDisplayList(mario_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04010410 ++-static const Vtx mario_m_logo_dl_vertex[] = { ++- {{{ 195, 93, 32}, 0, { 744, 732}, {0x51, 0x54, 0x30, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 1250, 1066}, {0x04, 0x46, 0x69, 0xff}}}, ++- {{{ 252, 62, 70}, 0, { 1032, 152}, {0x39, 0x4a, 0x55, 0xff}}}, ++- {{{ 272, 85, 0}, 0, { 472, -16}, {0x5f, 0x54, 0x00, 0xff}}}, ++- {{{ 252, 62, -69}, 0, { -78, 158}, {0x39, 0x4a, 0xab, 0xff}}}, ++- {{{ 195, 93, -31}, 0, { 232, 736}, {0x51, 0x54, 0xcf, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { -258, 1076}, {0x03, 0x46, 0x97, 0xff}}}, ++-}; ++- ++-// 0x04010480 ++-static const Vtx mario_eyes_cap_on_dl_vertex[] = { ++- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, ++- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 106, 130}, {0xc6, 0x6d, 0xe7, 0xff}}}, ++- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, ++- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, ++- {{{ 175, 91, 39}, 0, { 842, 112}, {0xc6, 0x6d, 0x19, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { -404, 342}, {0x03, 0x46, 0x97, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, ++- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x04, 0x46, 0x69, 0xff}}}, ++-}; ++- ++-// 0x04010540 ++-static const Vtx mario_hair_sideburn_cap_on_dl_vertex[] = { ++- {{{ 120, -12, -109}, 0, { 916, 184}, {0xed, 0x24, 0x88, 0xff}}}, ++- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { 90, -58}, {0x03, 0x46, 0x97, 0xff}}}, ++- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 922, 122}, {0xed, 0x24, 0x78, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 22, -68}, {0x04, 0x46, 0x69, 0xff}}}, ++-}; ++- ++-// 0x04010600 ++-static const Vtx mario_mustache_cap_on_dl_vertex_group1[] = { ++- {{{ 77, 108, 34}, 0, { 342, 368}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 92, 88, 84}, 0, { 898, -18}, {0x23, 0x59, 0x53, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 224, 146}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 48, 94, 76}, 0, { 888, 564}, {0xd7, 0x60, 0x47, 0xff}}}, ++- {{{ 52, 111, 31}, 0, { 354, 690}, {0xa8, 0x33, 0x4b, 0xff}}}, ++- {{{ 27, 100, 30}, 0, { 442, 982}, {0xb1, 0x60, 0x16, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 70, 924}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 1296, 438}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 3, 54, 52}, 0, { 892, 1090}, {0x95, 0x1d, 0x3c, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 340, 684}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, ++- {{{ 27, 100, -29}, 0, { 394, 998}, {0xb1, 0x60, 0xea, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 806, 1162}, {0x95, 0x1d, 0xc4, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 50, 900}, {0x95, 0x44, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04010700 ++-static const Vtx mario_mustache_cap_on_dl_vertex_group2[] = { ++- {{{ 48, 94, -75}, 0, { 856, 608}, {0xd7, 0x60, 0xb9, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 362, 344}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 92, 88, -83}, 0, { 922, -4}, {0x23, 0x59, 0xad, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 274, 100}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 1250, 518}, {0xda, 0x21, 0x8c, 0xff}}}, ++-}; ++- ++-// 0x04010750 ++-static const Vtx mario_face_cap_dl_vertex_group1[] = { ++- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, ++- {{{ 122, -139, -48}, 0, { 0, 0}, {0x28, 0x94, 0xcd, 0xff}}}, ++- {{{ 131, -56, -123}, 0, { 0, 0}, {0xde, 0xd4, 0x8f, 0xff}}}, ++- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, ++- {{{ 77, -138, -50}, 0, { 0, 0}, {0xbc, 0x9e, 0xd8, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, ++- {{{ 122, -139, 49}, 0, { 0, 0}, {0x2d, 0x8f, 0x22, 0xff}}}, ++- {{{ 77, -138, 51}, 0, { 0, 0}, {0xc1, 0xa4, 0x3c, 0xff}}}, ++- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, ++- {{{ 131, -56, 124}, 0, { 0, 0}, {0xdf, 0xd3, 0x71, 0xff}}}, ++- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, ++- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, ++-}; ++- ++-// 0x04010850 ++-static const Vtx mario_face_cap_dl_vertex_group2[] = { ++- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, ++- {{{ 187, -6, -133}, 0, { 0, 0}, {0x1e, 0x04, 0x85, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, ++- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, ++- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, ++- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, ++- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, ++- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, ++- {{{ 187, -6, 134}, 0, { 0, 0}, {0x1f, 0x04, 0x7a, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, ++- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, ++- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, ++- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, ++-}; ++- ++-// 0x04010940 ++-static const Vtx mario_face_cap_dl_vertex_group3[] = { ++- {{{ 195, 93, 32}, 0, { 0, 0}, {0x51, 0x54, 0x30, 0xff}}}, ++- {{{ 173, 132, 66}, 0, { 0, 0}, {0xda, 0x5a, 0x50, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, ++- {{{ 175, 91, 39}, 0, { 0, 0}, {0xc6, 0x6d, 0x19, 0xff}}}, ++- {{{ 164, -89, -74}, 0, { 0, 0}, {0x51, 0xa9, 0xd5, 0xff}}}, ++- {{{ 271, 0, -41}, 0, { 0, 0}, {0x6e, 0xcf, 0xdc, 0xff}}}, ++- {{{ 164, -89, 75}, 0, { 0, 0}, {0x4e, 0xa6, 0x2b, 0xff}}}, ++- {{{ 271, 0, 42}, 0, { 0, 0}, {0x71, 0xdc, 0x2b, 0xff}}}, ++- {{{ 252, 62, -69}, 0, { 0, 0}, {0x39, 0x4a, 0xab, 0xff}}}, ++- {{{ 272, 85, 0}, 0, { 0, 0}, {0x5f, 0x54, 0x00, 0xff}}}, ++- {{{ 182, 155, 0}, 0, { 0, 0}, {0xed, 0x7d, 0x00, 0xff}}}, ++- {{{ 195, 93, -31}, 0, { 0, 0}, {0x51, 0x54, 0xcf, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 0, 0}, {0xc6, 0x6d, 0xe7, 0xff}}}, ++- {{{ 173, 132, -65}, 0, { 0, 0}, {0xda, 0x5a, 0xb0, 0xff}}}, ++- {{{ 252, 62, 70}, 0, { 0, 0}, {0x39, 0x4a, 0x55, 0xff}}}, ++-}; ++- ++-// 0x04010A30 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group1[] = { ++- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, ++- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, ++- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, ++- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, ++- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, ++-}; ++- ++-// 0x04010B20 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group2[] = { ++- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xed, 0x24, 0x88, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, ++- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xed, 0x24, 0x78, 0xff}}}, ++- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, ++- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, ++- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, ++- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++-}; ++- ++-// 0x04010C20 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group3[] = { ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, ++- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, ++- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++-}; ++- ++-// 0x04010D10 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group4[] = { ++- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, ++- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, ++- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, ++- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, ++- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, ++- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, ++- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, ++- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, ++-}; ++- ++-// 0x04010E10 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group5[] = { ++- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, ++- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, ++- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, ++- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 0, 0}, {0x04, 0x46, 0x69, 0xff}}}, ++- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, ++- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, ++- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, ++-}; ++- ++-// 0x04010F00 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group6[] = { ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { 0, 0}, {0x03, 0x46, 0x97, 0xff}}}, ++- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, ++- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, ++- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, ++- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, ++- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04011000 ++-static const Vtx mario_face_part_cap_on_dl_vertex_group7[] = { ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, ++- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, ++- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, ++- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++-}; ++- ++-// 0x040110D0 ++-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group1[] = { ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, ++- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, ++- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, ++- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, ++- {{{ 64, -103, 52}, 0, { 0, 0}, {0xc9, 0x9a, 0x31, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xd9, 0xaf, 0x59, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, ++- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, ++- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++-}; ++- ++-// 0x040111D0 ++-static const Vtx mario_face_back_hair_cap_on_dl_vertex_group2[] = { ++- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, ++- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, ++- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xd9, 0xb0, 0xa7, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xde, 0x94, 0xc7, 0xff}}}, ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, ++- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, ++- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, ++- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, ++-}; ++- ++-// 0x040112B0 - 0x040112E8 ++-const Gfx mario_m_logo_dl[] = { ++- gsSPVertex(mario_m_logo_dl_vertex, 7, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 2, 3, 0, 0x0, 3, 5, 0, 0x0), ++- gsSP1Triangle( 4, 6, 5, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040112E8 - 0x04011350 ++-const Gfx mario_eyes_cap_on_dl[] = { ++- gsSPVertex(mario_eyes_cap_on_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 3, 0, 4, 0x0, 6, 3, 5, 0x0), ++- gsSP2Triangles( 3, 1, 0, 0x0, 4, 0, 7, 0x0), ++- gsSP2Triangles( 5, 4, 8, 0x0, 2, 9, 10, 0x0), ++- gsSP2Triangles(10, 7, 2, 0x0, 11, 7, 10, 0x0), ++- gsSP1Triangle( 7, 0, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011350 - 0x040113A0 ++-const Gfx mario_hair_sideburn_cap_on_dl[] = { ++- gsSPVertex(mario_hair_sideburn_cap_on_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 4, 5, 1, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), ++- gsSP2Triangles( 9, 10, 6, 0x0, 11, 6, 10, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040113A0 - 0x04011438 ++-const Gfx mario_mustache_cap_on_dl[] = { ++- gsSPVertex(mario_mustache_cap_on_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), ++- gsSP2Triangles( 0, 4, 3, 0x0, 5, 3, 4, 0x0), ++- gsSP2Triangles( 5, 4, 6, 0x0, 7, 3, 8, 0x0), ++- gsSP2Triangles( 8, 3, 5, 0x0, 3, 7, 1, 0x0), ++- gsSP2Triangles( 9, 10, 11, 0x0, 12, 10, 13, 0x0), ++- gsSP2Triangles(11, 10, 12, 0x0, 10, 9, 14, 0x0), ++- gsSP1Triangle(15, 9, 11, 0x0), ++- gsSPVertex(mario_mustache_cap_on_dl_vertex_group2, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP1Triangle( 2, 4, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011438 - 0x040116F8 ++-const Gfx mario_face_part_cap_on_dl[] = { ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 4, 2, 0x0, 1, 5, 3, 0x0), ++- gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), ++- gsSP2Triangles( 6, 3, 5, 0x0, 4, 7, 8, 0x0), ++- gsSP2Triangles( 9, 4, 8, 0x0, 10, 6, 5, 0x0), ++- gsSP2Triangles(10, 5, 11, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 5, 6, 8, 0x0), ++- gsSP2Triangles( 3, 8, 7, 0x0, 9, 3, 7, 0x0), ++- gsSP2Triangles( 3, 9, 4, 0x0, 10, 11, 12, 0x0), ++- gsSP2Triangles( 0, 10, 1, 0x0, 10, 0, 11, 0x0), ++- gsSP2Triangles(11, 0, 2, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 3, 0, 7, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 11, 9, 8, 0x0), ++- gsSP2Triangles(12, 13, 8, 0x0, 8, 13, 11, 0x0), ++- gsSP1Triangle( 9, 11, 14, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), ++- gsSP2Triangles( 5, 2, 4, 0x0, 2, 6, 3, 0x0), ++- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 3, 0x0), ++- gsSP2Triangles( 9, 4, 3, 0x0, 7, 10, 3, 0x0), ++- gsSP2Triangles( 3, 10, 8, 0x0, 11, 4, 9, 0x0), ++- gsSP2Triangles(12, 11, 9, 0x0, 13, 9, 8, 0x0), ++- gsSP2Triangles( 9, 13, 12, 0x0, 4, 11, 5, 0x0), ++- gsSP1Triangle(14, 15, 11, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group5, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 1, 5, 6, 0x0, 1, 3, 5, 0x0), ++- gsSP2Triangles( 2, 1, 6, 0x0, 2, 6, 7, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 6, 5, 11, 0x0), ++- gsSP2Triangles(12, 13, 8, 0x0, 10, 12, 8, 0x0), ++- gsSP1Triangle(14, 8, 13, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group6, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 6, 5, 8, 0x0), ++- gsSP2Triangles( 5, 7, 3, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 6, 12, 7, 0x0, 13, 10, 9, 0x0), ++- gsSP2Triangles(14, 13, 9, 0x0, 15, 10, 13, 0x0), ++- gsSPVertex(mario_face_part_cap_on_dl_vertex_group7, 13, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 1, 5, 3, 0x0, 2, 1, 4, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), ++- gsSP2Triangles( 7, 9, 3, 0x0, 5, 7, 3, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 12, 6, 10, 0x0), ++- gsSP1Triangle(12, 8, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040116F8 - 0x04011870 ++-const Gfx mario_face_cap_dl[] = { ++- gsSPVertex(mario_face_cap_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), ++- gsSP2Triangles( 4, 2, 5, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 2, 1, 6, 0x0, 6, 7, 2, 0x0), ++- gsSP2Triangles( 5, 2, 7, 0x0, 6, 1, 8, 0x0), ++- gsSP2Triangles( 8, 1, 0, 0x0, 6, 8, 9, 0x0), ++- gsSP2Triangles(10, 7, 6, 0x0, 9, 10, 6, 0x0), ++- gsSP2Triangles(11, 10, 9, 0x0, 9, 8, 11, 0x0), ++- gsSP2Triangles(11, 8, 12, 0x0, 0, 12, 8, 0x0), ++- gsSP2Triangles(13, 10, 11, 0x0, 11, 12, 14, 0x0), ++- gsSP2Triangles(15, 11, 14, 0x0, 13, 11, 15, 0x0), ++- gsSPVertex(mario_face_cap_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 4, 5, 0, 0x0, 0, 6, 1, 0x0), ++- gsSP2Triangles( 7, 1, 8, 0x0, 8, 1, 6, 0x0), ++- gsSP2Triangles( 9, 10, 11, 0x0, 9, 12, 10, 0x0), ++- gsSP2Triangles(12, 9, 13, 0x0, 13, 9, 14, 0x0), ++- gsSPVertex(mario_face_cap_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), ++- gsSP2Triangles( 8, 9, 5, 0x0, 0, 10, 1, 0x0), ++- gsSP2Triangles( 1, 10, 3, 0x0, 11, 10, 0, 0x0), ++- gsSP2Triangles(12, 3, 10, 0x0, 12, 10, 13, 0x0), ++- gsSP2Triangles(13, 10, 11, 0x0, 5, 9, 7, 0x0), ++- gsSP1Triangle( 7, 9, 14, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011870 - 0x04011960 ++-const Gfx mario_face_back_hair_cap_on_dl[] = { ++- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 5, 8, 6, 0x0), ++- gsSP2Triangles( 5, 4, 8, 0x0, 7, 3, 5, 0x0), ++- gsSP2Triangles( 0, 2, 6, 0x0, 6, 9, 7, 0x0), ++- gsSP2Triangles( 0, 6, 8, 0x0, 3, 7, 10, 0x0), ++- gsSP2Triangles( 1, 11, 12, 0x0, 12, 13, 14, 0x0), ++- gsSP2Triangles(11, 13, 12, 0x0, 1, 12, 2, 0x0), ++- gsSP2Triangles(14, 2, 12, 0x0, 15, 14, 13, 0x0), ++- gsSPVertex(mario_face_back_hair_cap_on_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 2, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles( 2, 1, 11, 0x0, 2, 11, 7, 0x0), ++- gsSP2Triangles( 9, 12, 13, 0x0, 10, 9, 13, 0x0), ++- gsSP1Triangle( 8, 12, 9, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011960 - 0x040119A0 ++-const Gfx mario_face_cap_on_dl[] = { ++- gsSPDisplayList(mario_face_part_cap_on_dl), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_face_cap_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_face_back_hair_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040119A0 - 0x04011A90 ++-const Gfx mario_cap_on_eyes_front[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011A90 - 0x04011B80 ++-const Gfx mario_cap_on_eyes_half_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011B80 - 0x04011C70 ++-const Gfx mario_cap_on_eyes_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011C70 - 0x04011D60 ++-const Gfx mario_cap_on_eyes_right[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011D60 - 0x04011E50 ++-const Gfx mario_cap_on_eyes_left[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011E50 - 0x04011F40 ++-const Gfx mario_cap_on_eyes_up[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04011F40 - 0x04012030 ++-const Gfx mario_cap_on_eyes_down[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04012030 - 0x04012120 ++-const Gfx mario_cap_on_eyes_dead[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04012120 - 0x04012160 ++-const Gfx mario_metal_cap_on_shared_dl[] = { ++- gsSPDisplayList(mario_m_logo_dl), ++- gsSPDisplayList(mario_eyes_cap_on_dl), ++- gsSPDisplayList(mario_hair_sideburn_cap_on_dl), ++- gsSPDisplayList(mario_mustache_cap_on_dl), ++- gsSPDisplayList(mario_face_part_cap_on_dl), ++- gsSPDisplayList(mario_face_cap_dl), ++- gsSPDisplayList(mario_face_back_hair_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// Unreferenced light group ++-UNUSED static const Lights1 mario_lights_unused1 = gdSPDefLights1( ++- 0x3f, 0x30, 0x1e, ++- 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 ++-); ++- ++-// Unreferenced light group ++-UNUSED static const Lights1 mario_lights_unused2 = gdSPDefLights1( ++- 0x1c, 0x01, 0x00, ++- 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 ++-); ++- ++-// 0x04012190 ++-static const Vtx mario_eyes_cap_off_dl_vertex[] = { ++- {{{ 104, 87, -69}, 0, { -160, 898}, {0x30, 0x5c, 0xb7, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 256, 970}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 144, 83, -66}, 0, { -146, 460}, {0x19, 0x5b, 0xad, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 1362, 296}, {0x05, 0x38, 0x71, 0xff}}}, ++- {{{ 175, 91, 39}, 0, { 842, 112}, {0x01, 0x75, 0x2f, 0xff}}}, ++- {{{ 144, 83, 67}, 0, { 1108, 428}, {0x19, 0x5b, 0x53, 0xff}}}, ++- {{{ 145, 101, 0}, 0, { 480, 446}, {0x13, 0x7d, 0x00, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 724, 958}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 106, 130}, {0xf5, 0x73, 0xcc, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 1138, 864}, {0x30, 0x5c, 0x49, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { -404, 342}, {0xfe, 0x36, 0x8e, 0xff}}}, ++- {{{ 108, 105, 0}, 0, { 488, 854}, {0x69, 0x46, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04012250 ++-static const Vtx mario_hair_sideburn_cap_off_dl_vertex[] = { ++- {{{ 42, 0, 103}, 0, { 968, 1192}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 85, -23, 111}, 0, { 1238, 518}, {0x04, 0x58, 0x5a, 0xff}}}, ++- {{{ 96, 49, 94}, 0, { -74, 726}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 196, 1366}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 22, -68}, {0x05, 0x38, 0x71, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 922, 122}, {0xff, 0x13, 0x7d, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 842, 1210}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 118, 1334}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 96, 49, -93}, 0, { -70, 700}, {0x11, 0x27, 0x89, 0xff}}}, ++- {{{ 85, -23, -110}, 0, { 1150, 582}, {0x06, 0x59, 0xa6, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 916, 184}, {0xff, 0x13, 0x83, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { 90, -58}, {0xfe, 0x36, 0x8e, 0xff}}}, ++-}; ++- ++-// 0x04012310 ++-static const Vtx mario_mustache_cap_off_dl_vertex_group1[] = { ++- {{{ 92, 88, -83}, 0, { 992, -10}, {0x23, 0x59, 0xad, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 360, 296}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 298, 20}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 1272, 592}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 92, 88, 84}, 0, { 948, -8}, {0x23, 0x59, 0x53, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 330, 316}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 48, 94, 76}, 0, { 848, 630}, {0xd7, 0x60, 0x47, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 248, 50}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 52, 111, 31}, 0, { 292, 670}, {0xa8, 0x33, 0x4b, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 1276, 566}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 3, 54, 52}, 0, { 768, 1210}, {0x95, 0x1d, 0x3c, 0xff}}}, ++- {{{ 27, 100, 30}, 0, { 336, 1006}, {0xb1, 0x60, 0x16, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { -30, 876}, {0x95, 0x44, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04012410 ++-static const Vtx mario_mustache_cap_off_dl_vertex_group2[] = { ++- {{{ 41, 109, 0}, 0, { -38, 852}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 294, 656}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 27, 100, -29}, 0, { 310, 1002}, {0xb1, 0x60, 0xea, 0xff}}}, ++- {{{ 48, 94, -75}, 0, { 844, 640}, {0xd7, 0x60, 0xb9, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 720, 1228}, {0x95, 0x1d, 0xc4, 0xff}}}, ++-}; ++- ++-// 0x04012460 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group1[] = { ++- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 108, 105, 0}, 0, { 0, 0}, {0x69, 0x46, 0x00, 0xff}}}, ++- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, ++- {{{ 92, 88, -83}, 0, { 0, 0}, {0x23, 0x59, 0xad, 0xff}}}, ++- {{{ 97, 103, -24}, 0, { 0, 0}, {0x40, 0x5a, 0xc3, 0xff}}}, ++- {{{ 104, 87, -69}, 0, { 0, 0}, {0x30, 0x5c, 0xb7, 0xff}}}, ++- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 92, 88, 84}, 0, { 0, 0}, {0x23, 0x59, 0x53, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, ++-}; ++- ++-// 0x04012550 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group2[] = { ++- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, ++- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, ++- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, ++- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, ++- {{{ 104, 87, 70}, 0, { 0, 0}, {0x30, 0x5c, 0x49, 0xff}}}, ++- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, ++- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, ++- {{{ 97, 103, 25}, 0, { 0, 0}, {0x40, 0x5a, 0x3d, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 42, 0, 103}, 0, { 0, 0}, {0xc3, 0x05, 0x6e, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, ++-}; ++- ++-// 0x04012650 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group3[] = { ++- {{{ 96, 49, 94}, 0, { 0, 0}, {0x10, 0x28, 0x77, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, ++- {{{ 144, 83, 67}, 0, { 0, 0}, {0x19, 0x5b, 0x53, 0xff}}}, ++- {{{ 64, -25, 135}, 0, { 0, 0}, {0xcc, 0xe5, 0x70, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, ++- {{{ 102, -33, 135}, 0, { 0, 0}, {0x30, 0x18, 0x72, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 85, -23, 111}, 0, { 0, 0}, {0x04, 0x58, 0x5a, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, ++- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++-}; ++- ++-// 0x04012740 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group4[] = { ++- {{{ 27, 100, 30}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}}, ++- {{{ 27, 100, -29}, 0, { 0, 0}, {0xb1, 0x60, 0xea, 0xff}}}, ++- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 144, 83, -66}, 0, { 0, 0}, {0x19, 0x5b, 0xad, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, ++- {{{ 96, 49, -93}, 0, { 0, 0}, {0x11, 0x27, 0x89, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 44, 44, -96}, 0, { 0, 0}, {0xda, 0x21, 0x8c, 0xff}}}, ++- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, ++- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, ++- {{{ 85, -23, -110}, 0, { 0, 0}, {0x06, 0x59, 0xa6, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, ++-}; ++- ++-// 0x04012830 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group5[] = { ++- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 102, -33, -134}, 0, { 0, 0}, {0x32, 0x19, 0x8f, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 64, -25, -134}, 0, { 0, 0}, {0xcc, 0xe5, 0x90, 0xff}}}, ++- {{{ 42, 0, -102}, 0, { 0, 0}, {0xc3, 0x05, 0x92, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 3, 54, -51}, 0, { 0, 0}, {0x95, 0x1d, 0xc4, 0xff}}}, ++- {{{ -7, 62, 0}, 0, { 0, 0}, {0x85, 0x1d, 0x00, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, ++- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, ++- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04012930 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group6[] = { ++- {{{ 104, 162, 41}, 0, { 0, 0}, {0x52, 0x27, 0x58, 0xff}}}, ++- {{{ 101, 179, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++- {{{ 78, 163, 46}, 0, { 0, 0}, {0x03, 0x55, 0x5d, 0xff}}}, ++- {{{ 52, 164, 41}, 0, { 0, 0}, {0xc8, 0x3d, 0x5f, 0xff}}}, ++- {{{ 75, 130, 46}, 0, { 0, 0}, {0x00, 0xec, 0x7d, 0xff}}}, ++- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, ++- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, ++- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, ++- {{{ 33, 165, 0}, 0, { 0, 0}, {0x8f, 0x38, 0x09, 0xff}}}, ++- {{{ 102, 129, 41}, 0, { 0, 0}, {0x45, 0xd6, 0x61, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, ++-}; ++- ++-// 0x04012A30 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group7[] = { ++- {{{ 52, 111, 31}, 0, { 0, 0}, {0xa8, 0x33, 0x4b, 0xff}}}, ++- {{{ 47, 131, 41}, 0, { 0, 0}, {0xb0, 0xe4, 0x5e, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 77, 108, 34}, 0, { 0, 0}, {0x0e, 0x16, 0x7c, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++- {{{ 78, 163, -45}, 0, { 0, 0}, {0x03, 0x54, 0xa2, 0xff}}}, ++- {{{ 75, 130, -45}, 0, { 0, 0}, {0x00, 0xec, 0x83, 0xff}}}, ++- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, ++- {{{ 60, 181, 0}, 0, { 0, 0}, {0xea, 0x7c, 0x00, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 41, 109, 0}, 0, { 0, 0}, {0x95, 0x44, 0x00, 0xff}}}, ++- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, ++- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, ++-}; ++- ++-// 0x04012B30 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group8[] = { ++- {{{ 102, 129, -40}, 0, { 0, 0}, {0x50, 0xdc, 0xa6, 0xff}}}, ++- {{{ 104, 162, -40}, 0, { 0, 0}, {0x44, 0x31, 0xa1, 0xff}}}, ++- {{{ 119, 161, 0}, 0, { 0, 0}, {0x79, 0x23, 0xf6, 0xff}}}, ++- {{{ 117, 128, 0}, 0, { 0, 0}, {0x7a, 0xe1, 0x06, 0xff}}}, ++- {{{ 32, 132, 0}, 0, { 0, 0}, {0x84, 0xe8, 0xf8, 0xff}}}, ++- {{{ 47, 131, -40}, 0, { 0, 0}, {0xbc, 0xde, 0x9c, 0xff}}}, ++- {{{ 52, 111, -30}, 0, { 0, 0}, {0xa8, 0x32, 0xb5, 0xff}}}, ++- {{{ 77, 108, -33}, 0, { 0, 0}, {0x0e, 0x16, 0x84, 0xff}}}, ++- {{{ 52, 164, -40}, 0, { 0, 0}, {0xb8, 0x34, 0xa6, 0xff}}}, ++-}; ++- ++-// 0x04012BC0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group1[] = { ++- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, ++- {{{ 200, 70, -97}, 0, { 0, 0}, {0x07, 0x48, 0x99, 0xff}}}, ++- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, ++- {{{ 153, 33, 95}, 0, { 0, 0}, {0x05, 0x38, 0x71, 0xff}}}, ++- {{{ 200, 75, 84}, 0, { 0, 0}, {0x10, 0x52, 0x5f, 0xff}}}, ++- {{{ 151, 72, 70}, 0, { 0, 0}, {0xe4, 0x5c, 0x51, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, ++- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, ++- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, ++- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, ++- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, ++- {{{ 151, 72, -68}, 0, { 0, 0}, {0xd6, 0x5b, 0xb3, 0xff}}}, ++- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, ++- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, ++- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, ++-}; ++- ++-// 0x04012CC0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group2[] = { ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, ++- {{{ 153, 33, -94}, 0, { 0, 0}, {0xfe, 0x36, 0x8e, 0xff}}}, ++- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, ++- {{{ 227, -14, 59}, 0, { 0, 0}, {0x72, 0xec, 0x32, 0xff}}}, ++- {{{ 241, -34, 0}, 0, { 0, 0}, {0x7a, 0xe0, 0x00, 0xff}}}, ++- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, ++- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, ++- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, ++- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, ++- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, ++- {{{ 227, -14, -58}, 0, { 0, 0}, {0x72, 0xf1, 0xcc, 0xff}}}, ++- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, ++- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, ++- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, ++- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, ++-}; ++- ++-// 0x04012DB0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group3[] = { ++- {{{ 221, 35, -73}, 0, { 0, 0}, {0x71, 0x03, 0xc8, 0xff}}}, ++- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, ++- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, ++- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, ++- {{{ 175, 91, -38}, 0, { 0, 0}, {0xf5, 0x73, 0xcc, 0xff}}}, ++- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, ++- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, ++- {{{ 189, -102, -71}, 0, { 0, 0}, {0x50, 0xb9, 0xbd, 0xff}}}, ++- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, ++- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, ++- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, ++- {{{ 200, -117, 0}, 0, { 0, 0}, {0x3f, 0x93, 0x00, 0xff}}}, ++- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, ++- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, ++- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, ++- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, ++-}; ++- ++-// 0x04012EB0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group4[] = { ++- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, ++- {{{ 189, -102, 73}, 0, { 0, 0}, {0x50, 0xbb, 0x44, 0xff}}}, ++- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, ++- {{{ 201, 125, -13}, 0, { 0, 0}, {0xe4, 0x7b, 0xfb, 0xff}}}, ++- {{{ 209, 86, 60}, 0, { 0, 0}, {0x38, 0x60, 0x3c, 0xff}}}, ++- {{{ 248, 104, -43}, 0, { 0, 0}, {0x76, 0x2c, 0xf3, 0xff}}}, ++- {{{ 231, 81, 33}, 0, { 0, 0}, {0x71, 0x27, 0x2a, 0xff}}}, ++- {{{ 232, 69, -34}, 0, { 0, 0}, {0x72, 0xe4, 0xd1, 0xff}}}, ++- {{{ 211, 91, -71}, 0, { 0, 0}, {0x31, 0x46, 0xa3, 0xff}}}, ++- {{{ 237, 64, 0}, 0, { 0, 0}, {0x7e, 0xf9, 0xff, 0xff}}}, ++- {{{ 227, 35, 75}, 0, { 0, 0}, {0x6d, 0x12, 0x3d, 0xff}}}, ++- {{{ 175, 91, 39}, 0, { 0, 0}, {0x01, 0x75, 0x2f, 0xff}}}, ++- {{{ 160, 96, 0}, 0, { 0, 0}, {0xb7, 0x67, 0xfe, 0xff}}}, ++- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, ++- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, ++-}; ++- ++-// 0x04012FB0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group5[] = { ++- {{{ 145, -83, 105}, 0, { 0, 0}, {0xef, 0xd0, 0x73, 0xff}}}, ++- {{{ 181, -9, 116}, 0, { 0, 0}, {0x2d, 0x01, 0x76, 0xff}}}, ++- {{{ 120, -11, 111}, 0, { 0, 0}, {0xff, 0x13, 0x7d, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, ++- {{{ 116, -124, -67}, 0, { 0, 0}, {0xfc, 0x8f, 0xc8, 0xff}}}, ++- {{{ 119, -134, 0}, 0, { 0, 0}, {0xe8, 0x84, 0xff, 0xff}}}, ++- {{{ 145, -84, -104}, 0, { 0, 0}, {0xef, 0xcf, 0x8d, 0xff}}}, ++- {{{ 182, -9, -115}, 0, { 0, 0}, {0x2f, 0xfe, 0x8b, 0xff}}}, ++- {{{ 120, -12, -109}, 0, { 0, 0}, {0xff, 0x13, 0x83, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, ++- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, ++- {{{ 116, -126, 68}, 0, { 0, 0}, {0xfb, 0x8f, 0x38, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, ++- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, ++-}; ++- ++-// 0x040130B0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group6[] = { ++- {{{ 64, -103, 52}, 0, { 0, 0}, {0xf3, 0x8b, 0x2e, 0xff}}}, ++- {{{ 91, -54, 86}, 0, { 0, 0}, {0xe9, 0xa9, 0x59, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 31, -84, 0}, 0, { 0, 0}, {0xa0, 0xae, 0x00, 0xff}}}, ++- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, ++- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, ++- {{{ 36, -116, -35}, 0, { 0, 0}, {0xfb, 0x8e, 0x37, 0xff}}}, ++- {{{ 64, -103, -51}, 0, { 0, 0}, {0xf3, 0x8b, 0xd2, 0xff}}}, ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 91, -54, -85}, 0, { 0, 0}, {0xe8, 0xaa, 0xa7, 0xff}}}, ++- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, ++- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, ++-}; ++- ++-// 0x040131B0 ++-static const Vtx mario_face_hair_cap_off_dl_vertex_group7[] = { ++- {{{ 36, -116, 36}, 0, { 0, 0}, {0xfb, 0x8e, 0xc9, 0xff}}}, ++- {{{ 35, -120, 68}, 0, { 0, 0}, {0xda, 0x94, 0x35, 0xff}}}, ++- {{{ 9, -88, 59}, 0, { 0, 0}, {0x87, 0xdf, 0x0b, 0xff}}}, ++- {{{ 58, -114, 60}, 0, { 0, 0}, {0x57, 0xb4, 0x32, 0xff}}}, ++- {{{ 35, -120, -67}, 0, { 0, 0}, {0xda, 0x94, 0xcb, 0xff}}}, ++- {{{ 31, -85, -86}, 0, { 0, 0}, {0xdb, 0xfd, 0x87, 0xff}}}, ++- {{{ 58, -114, -59}, 0, { 0, 0}, {0x57, 0xb4, 0xce, 0xff}}}, ++- {{{ 9, -88, -58}, 0, { 0, 0}, {0x87, 0xdf, 0xf5, 0xff}}}, ++- {{{ 56, -45, -76}, 0, { 0, 0}, {0xe3, 0xca, 0x92, 0xff}}}, ++- {{{ 17, -52, -46}, 0, { 0, 0}, {0x89, 0xf8, 0xd7, 0xff}}}, ++- {{{ 31, -85, 87}, 0, { 0, 0}, {0xdb, 0xfd, 0x79, 0xff}}}, ++- {{{ 56, -45, 77}, 0, { 0, 0}, {0xe3, 0xca, 0x6e, 0xff}}}, ++- {{{ 17, -52, 47}, 0, { 0, 0}, {0x89, 0xf8, 0x29, 0xff}}}, ++-}; ++- ++-// 0x04013280 ++-static const Vtx mario_face_part_cap_off_dl_vertex_group9[] = { ++- {{{ 44, 44, 97}, 0, { 0, 0}, {0xda, 0x21, 0x74, 0xff}}}, ++- {{{ 48, 94, 76}, 0, { 0, 0}, {0xd7, 0x60, 0x47, 0xff}}}, ++- {{{ 3, 54, 52}, 0, { 0, 0}, {0x95, 0x1d, 0x3c, 0xff}}}, ++-}; ++- ++-// 0x040132B0 - 0x04013318 ++-const Gfx mario_eyes_cap_off_dl[] = { ++- gsSPVertex(mario_eyes_cap_off_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 6, 7, 0x0, 8, 6, 4, 0x0), ++- gsSP2Triangles( 5, 4, 7, 0x0, 7, 9, 5, 0x0), ++- gsSP2Triangles( 2, 8, 10, 0x0, 1, 6, 8, 0x0), ++- gsSP2Triangles( 1, 8, 2, 0x0, 6, 11, 7, 0x0), ++- gsSP1Triangle( 1, 11, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013318 - 0x040133A8 ++-const Gfx mario_mustache_cap_off_dl[] = { ++- gsSPVertex(mario_mustache_cap_off_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 0, 4, 3, 0x0, 3, 5, 1, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 7, 6, 9, 0x0), ++- gsSP2Triangles( 7, 10, 8, 0x0, 8, 11, 6, 0x0), ++- gsSP2Triangles(12, 8, 13, 0x0, 13, 8, 10, 0x0), ++- gsSP2Triangles(14, 3, 4, 0x0, 13, 10, 15, 0x0), ++- gsSPVertex(mario_mustache_cap_off_dl_vertex_group2, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP1Triangle( 2, 3, 4, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040133A8 - 0x040133F8 ++-const Gfx mario_hair_sideburn_cap_off_dl[] = { ++- gsSPVertex(mario_hair_sideburn_cap_off_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 4, 2, 5, 0x0, 1, 5, 2, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0), ++- gsSP2Triangles( 9, 8, 10, 0x0, 10, 8, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040133F8 - 0x040136D0 ++-const Gfx mario_face_part_cap_off_dl[] = { ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 3, 5, 0x0, 3, 6, 7, 0x0), ++- gsSP2Triangles( 4, 8, 2, 0x0, 8, 4, 9, 0x0), ++- gsSP2Triangles( 2, 1, 4, 0x0, 6, 5, 10, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 14, 13, 12, 0x0), ++- gsSP1Triangle(13, 14, 0, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 8, 7, 0x0), ++- gsSP2Triangles(10, 1, 11, 0x0, 1, 12, 11, 0x0), ++- gsSP2Triangles(12, 1, 0, 0x0, 13, 11, 14, 0x0), ++- gsSP2Triangles(12, 14, 11, 0x0, 11, 13, 15, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), ++- gsSP2Triangles( 8, 7, 5, 0x0, 4, 8, 5, 0x0), ++- gsSP2Triangles( 9, 10, 11, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group4, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 4, 1, 0, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 8, 3, 9, 0x0, 10, 11, 12, 0x0), ++- gsSP2Triangles(13, 11, 10, 0x0, 11, 13, 14, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group5, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 5, 0x0, 8, 7, 6, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 8, 6, 9, 0x0), ++- gsSP2Triangles( 9, 11, 10, 0x0, 9, 12, 11, 0x0), ++- gsSP2Triangles( 0, 13, 1, 0x0, 13, 14, 1, 0x0), ++- gsSP1Triangle( 1, 14, 15, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group6, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), ++- gsSP2Triangles( 2, 4, 0, 0x0, 1, 0, 5, 0x0), ++- gsSP2Triangles( 1, 6, 7, 0x0, 1, 5, 6, 0x0), ++- gsSP2Triangles( 7, 8, 1, 0x0, 3, 9, 4, 0x0), ++- gsSP2Triangles( 9, 3, 10, 0x0, 4, 11, 0, 0x0), ++- gsSP2Triangles(11, 4, 12, 0x0, 4, 9, 12, 0x0), ++- gsSP2Triangles(10, 13, 14, 0x0, 0, 11, 15, 0x0), ++- gsSP2Triangles( 5, 0, 15, 0x0, 14, 9, 10, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group7, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), ++- gsSP2Triangles( 8, 5, 4, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 2, 12, 0, 0x0, 13, 4, 6, 0x0), ++- gsSP2Triangles( 6, 14, 15, 0x0, 6, 7, 14, 0x0), ++- gsSP1Triangle(13, 6, 15, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group8, 9, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 6, 5, 0x0), ++- gsSP1Triangle( 8, 5, 4, 0x0), ++- gsSPVertex(mario_face_part_cap_off_dl_vertex_group9, 3, 0), ++- gsSP1Triangle( 0, 1, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040136D0 - 0x040139C0 ++-const Gfx mario_face_hair_cap_off_dl[] = { ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0), ++- gsSP2Triangles( 8, 4, 9, 0x0, 7, 10, 4, 0x0), ++- gsSP2Triangles( 4, 10, 9, 0x0, 8, 5, 4, 0x0), ++- gsSP2Triangles(11, 1, 12, 0x0, 1, 0, 12, 0x0), ++- gsSP2Triangles( 1, 13, 2, 0x0, 1, 11, 14, 0x0), ++- gsSP2Triangles(13, 1, 14, 0x0, 15, 2, 13, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 3, 6, 0x0, 3, 7, 6, 0x0), ++- gsSP2Triangles( 8, 7, 3, 0x0, 5, 8, 3, 0x0), ++- gsSP2Triangles( 9, 10, 4, 0x0, 11, 4, 6, 0x0), ++- gsSP2Triangles(11, 9, 4, 0x0, 10, 5, 4, 0x0), ++- gsSP2Triangles(10, 12, 5, 0x0, 5, 13, 14, 0x0), ++- gsSP2Triangles( 8, 5, 14, 0x0, 9, 2, 10, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 1, 4, 5, 0x0, 4, 6, 5, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 10, 7, 9, 0x0), ++- gsSP2Triangles( 8, 7, 11, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(14, 11, 13, 0x0, 14, 8, 11, 0x0), ++- gsSP1Triangle(15, 13, 12, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 5, 0x0), ++- gsSP2Triangles( 8, 3, 5, 0x0, 9, 7, 5, 0x0), ++- gsSP2Triangles(10, 6, 4, 0x0, 4, 3, 11, 0x0), ++- gsSP2Triangles( 3, 12, 11, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group5, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 4, 3, 0x0, 7, 6, 8, 0x0), ++- gsSP2Triangles( 9, 6, 3, 0x0, 6, 9, 8, 0x0), ++- gsSP2Triangles(10, 11, 0, 0x0, 12, 0, 2, 0x0), ++- gsSP2Triangles(10, 0, 12, 0x0, 10, 5, 11, 0x0), ++- gsSP2Triangles(13, 14, 15, 0x0, 13, 3, 10, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group6, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 5, 0, 2, 0x0, 5, 4, 0, 0x0), ++- gsSP2Triangles( 3, 6, 7, 0x0, 8, 9, 7, 0x0), ++- gsSP2Triangles( 6, 10, 7, 0x0, 8, 7, 10, 0x0), ++- gsSP2Triangles( 3, 11, 12, 0x0, 13, 14, 3, 0x0), ++- gsSP2Triangles(12, 6, 3, 0x0, 6, 15, 10, 0x0), ++- gsSP1Triangle(12, 15, 6, 0x0), ++- gsSPVertex(mario_face_hair_cap_off_dl_vertex_group7, 13, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), ++- gsSP2Triangles( 6, 5, 8, 0x0, 9, 8, 5, 0x0), ++- gsSP2Triangles( 5, 7, 9, 0x0, 10, 11, 12, 0x0), ++- gsSP2Triangles(11, 10, 3, 0x0, 12, 2, 10, 0x0), ++- gsSP2Triangles( 2, 1, 10, 0x0, 10, 1, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040139C0 - 0x040139E8 ++-const Gfx mario_face_cap_off_dl[] = { ++- gsSPDisplayList(mario_face_part_cap_off_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_face_hair_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040139E8 - 0x04013AB8 ++-const Gfx mario_cap_off_eyes_front[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013AB8 - 0x04013B88 ++-const Gfx mario_cap_off_eyes_half_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013B88 - 0x04013C58 ++-const Gfx mario_cap_off_eyes_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013C58 - 0x04013D28 ++-const Gfx mario_cap_off_eyes_right[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013D28 - 0x04013DF8 ++-const Gfx mario_cap_off_eyes_left[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013DF8 - 0x04013EC8 ++-const Gfx mario_cap_off_eyes_up[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013EC8 - 0x04013F98 ++-const Gfx mario_cap_off_eyes_down[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04013F98 - 0x04014068 ++-const Gfx mario_cap_off_eyes_dead[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014068 - 0x04014098 ++-const Gfx mario_metal_cap_off_shared_dl[] = { ++- gsSPDisplayList(mario_eyes_cap_off_dl), ++- gsSPDisplayList(mario_mustache_cap_off_dl), ++- gsSPDisplayList(mario_hair_sideburn_cap_off_dl), ++- gsSPDisplayList(mario_face_part_cap_off_dl), ++- gsSPDisplayList(mario_face_hair_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014098 ++-static const Vtx mario_medium_poly_butt_dl_vertex_group1[] = { ++- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, ++- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, ++- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, ++- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, ++- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, ++- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, ++- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, ++- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, ++- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, ++- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, ++- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, ++- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, ++- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, ++- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, ++- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, ++- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, ++-}; ++- ++-// 0x04014198 ++-static const Vtx mario_medium_poly_butt_dl_vertex_group2[] = { ++- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, ++- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, ++- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, ++- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, ++- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, ++- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, ++- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, ++- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, ++- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, ++- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, ++- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, ++- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, ++- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, ++- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, ++- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, ++- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, ++-}; ++- ++-// 0x04014298 ++-static const Vtx mario_medium_poly_butt_dl_vertex_group3[] = { ++- {{{ -2, 41, -95}, 0, { 0, 0}, {0xba, 0x3b, 0xaa, 0x00}}}, ++- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, ++- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, ++- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, ++- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, ++- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, ++- {{{ -2, 41, 95}, 0, { 0, 0}, {0xba, 0x3b, 0x57, 0x00}}}, ++- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, ++- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, ++- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, ++- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, ++- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, ++- {{{ -5, -45, -97}, 0, { 0, 0}, {0xc7, 0xdd, 0x95, 0x00}}}, ++- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, ++- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, ++- {{{ -33, -45, -31}, 0, { 0, 0}, {0x87, 0xe9, 0xe3, 0x00}}}, ++-}; ++- ++-// 0x04014398 ++-static const Vtx mario_medium_poly_butt_dl_vertex_group4[] = { ++- {{{ -5, -45, 97}, 0, { 0, 0}, {0xc7, 0xde, 0x6b, 0x00}}}, ++- {{{ 43, -48, 97}, 0, { 0, 0}, {0x3b, 0xc2, 0x5c, 0x00}}}, ++- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, ++- {{{ -33, -45, 31}, 0, { 0, 0}, {0x86, 0xe5, 0x15, 0x00}}}, ++- {{{ -32, 43, 22}, 0, { 0, 0}, {0x8c, 0x2c, 0x18, 0x00}}}, ++- {{{ -32, 43, -22}, 0, { 0, 0}, {0x8b, 0x2d, 0xf0, 0x00}}}, ++- {{{ -6, -84, 50}, 0, { 0, 0}, {0xd5, 0x90, 0x26, 0x00}}}, ++- {{{ -6, -84, -50}, 0, { 0, 0}, {0xc1, 0x9a, 0xd9, 0x00}}}, ++- {{{ 41, -86, -45}, 0, { 0, 0}, {0x35, 0x90, 0xe7, 0x00}}}, ++- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, ++- {{{ 0, 78, -37}, 0, { 0, 0}, {0xc5, 0x6c, 0xe2, 0x00}}}, ++- {{{ 0, 78, 37}, 0, { 0, 0}, {0xc7, 0x6f, 0x14, 0x00}}}, ++- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, ++- {{{ 44, 35, -96}, 0, { 0, 0}, {0x3c, 0x22, 0x96, 0x00}}}, ++- {{{ 43, -48, -97}, 0, { 0, 0}, {0x3b, 0xc1, 0xa4, 0x00}}}, ++- {{{ 41, -86, 45}, 0, { 0, 0}, {0x44, 0x9b, 0x1f, 0x00}}}, ++-}; ++- ++-// 0x04014498 ++-static const Vtx mario_medium_poly_butt_dl_vertex_group5[] = { ++- {{{ 44, 36, 95}, 0, { 0, 0}, {0x3d, 0x22, 0x69, 0x00}}}, ++- {{{ 85, -5, 0}, 0, { 0, 0}, {0x7f, 0xfe, 0x00, 0x00}}}, ++- {{{ 44, 80, 46}, 0, { 0, 0}, {0x36, 0x68, 0x2e, 0x00}}}, ++- {{{ 43, 80, -45}, 0, { 0, 0}, {0x2c, 0x70, 0xdb, 0x00}}}, ++-}; ++- ++-// 0x040144D8 - 0x04014638 ++-const Gfx mario_medium_poly_butt_dl[] = { ++- gsSPVertex(mario_medium_poly_butt_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 6, 0x0), ++- gsSP1Triangle( 3, 10, 7, 0x0), ++- gsSPVertex(mario_medium_poly_butt_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 0, 2, 6, 0x0, 7, 5, 4, 0x0), ++- gsSP2Triangles( 7, 8, 6, 0x0, 9, 10, 8, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 2, 1, 5, 0x0), ++- gsSP1Triangle(14, 15, 0, 0x0), ++- gsSPVertex(mario_medium_poly_butt_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 3, 7, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(11, 10, 14, 0x0, 0, 12, 15, 0x0), ++- gsSP2Triangles(14, 9, 6, 0x0, 2, 13, 12, 0x0), ++- gsSPVertex(mario_medium_poly_butt_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 9, 12, 13, 0x0, 13, 12, 14, 0x0), ++- gsSP2Triangles(14, 12, 8, 0x0, 8, 12, 15, 0x0), ++- gsSP2Triangles(15, 12, 1, 0x0, 1, 12, 2, 0x0), ++- gsSPVertex(mario_medium_poly_butt_dl_vertex_group5, 4, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014638 - 0x04014668 ++-const Gfx mario_medium_poly_butt[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014668 - 0x040146E0 ++-const Gfx mario_metal_medium_poly_butt[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040146E0 ++-static const Vtx mario_medium_poly_left_arm_shared_dl_vertex[] = { ++- {{{ -6, -32, -22}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, ++- {{{ 60, -27, -18}, 0, { 0, 0}, {0x3d, 0xc5, 0xa3, 0x00}}}, ++- {{{ 60, -18, 26}, 0, { 0, 0}, {0x5c, 0xbe, 0x36, 0x00}}}, ++- {{{ -6, -32, -22}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, ++- {{{ -7, 21, -27}, 0, { 0, 0}, {0x07, 0xf5, 0x82, 0x00}}}, ++- {{{ 59, 16, -22}, 0, { 0, 0}, {0x5b, 0x4f, 0xda, 0x00}}}, ++- {{{ -7, 20, 18}, 0, { 0, 0}, {0x0c, 0x73, 0x32, 0x00}}}, ++- {{{ 59, 14, 14}, 0, { 0, 0}, {0x38, 0x4b, 0x55, 0x00}}}, ++- {{{ -6, -21, 33}, 0, { 0, 0}, {0x0b, 0x2a, 0x77, 0x00}}}, ++- {{{ -7, 21, -27}, 0, { 0, 0}, {0x0a, 0x7e, 0x04, 0x00}}}, ++- {{{ -6, -21, 33}, 0, { 0, 0}, {0x08, 0x84, 0x18, 0x00}}}, ++- {{{ -7, 21, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -6, -32, -22}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -6, -21, 33}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -7, 20, 18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++-}; ++- ++-// 0x040147D0 - 0x04014840 ++-const Gfx mario_medium_poly_left_arm_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_left_arm_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), ++- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), ++- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), ++- gsSP2Triangles( 5, 2, 1, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(13, 14, 11, 0x0, 5, 7, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014840 - 0x04014860 ++-const Gfx mario_medium_poly_left_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014860 ++-static const Vtx mario_medium_poly_left_forearm_shared_dl_vertex[] = { ++- {{{ -9, -29, -18}, 0, { 0, 0}, {0x05, 0x84, 0x19, 0x00}}}, ++- {{{ 53, -26, -17}, 0, { 0, 0}, {0x59, 0xd0, 0xb5, 0x00}}}, ++- {{{ 53, -17, 24}, 0, { 0, 0}, {0x3d, 0xab, 0x47, 0x00}}}, ++- {{{ -9, -29, -18}, 0, { 0, 0}, {0x04, 0xf3, 0x82, 0x00}}}, ++- {{{ -9, 16, -24}, 0, { 0, 0}, {0x04, 0xf4, 0x82, 0x00}}}, ++- {{{ 53, 13, -21}, 0, { 0, 0}, {0x3b, 0x64, 0xce, 0x00}}}, ++- {{{ -9, 15, 15}, 0, { 0, 0}, {0x07, 0x75, 0x30, 0x00}}}, ++- {{{ 53, 13, 12}, 0, { 0, 0}, {0x52, 0x41, 0x47, 0x00}}}, ++- {{{ -9, -19, 28}, 0, { 0, 0}, {0x07, 0x2c, 0x76, 0x00}}}, ++- {{{ -9, 16, -24}, 0, { 0, 0}, {0x06, 0x7e, 0x02, 0x00}}}, ++- {{{ -9, -19, 28}, 0, { 0, 0}, {0x05, 0x84, 0x1a, 0x00}}}, ++- {{{ -9, 16, -24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -9, -29, -18}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -9, -19, 28}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -9, 15, 15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04014950 - 0x040149C0 ++-const Gfx mario_medium_poly_left_forearm_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_left_forearm_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 5, 0x0), ++- gsSP2Triangles( 8, 2, 7, 0x0, 6, 8, 7, 0x0), ++- gsSP2Triangles( 9, 6, 5, 0x0, 10, 0, 2, 0x0), ++- gsSP2Triangles( 1, 7, 2, 0x0, 1, 5, 7, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040149C0 ++-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group1[] = { ++- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, ++- {{{ 12, 1, 26}, 0, { 0, 0}, {0xf1, 0xf7, 0x7d, 0x00}}}, ++- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, ++- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, ++- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, ++- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, ++- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, ++- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, ++- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, ++- {{{ 81, 32, 40}, 0, { 0, 0}, {0x48, 0x1f, 0x63, 0x00}}}, ++- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, ++- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, ++- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, ++- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, ++- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, ++- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, ++-}; ++- ++-// 0x04014AC0 ++-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group2[] = { ++- {{{ 31, 10, 40}, 0, { 0, 0}, {0xd8, 0xed, 0x76, 0x00}}}, ++- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, ++- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, ++- {{{ 27, -32, -3}, 0, { 0, 0}, {0x06, 0x82, 0x0b, 0x00}}}, ++- {{{ 14, -51, -2}, 0, { 0, 0}, {0x37, 0xd5, 0x97, 0x00}}}, ++- {{{ -6, -5, -32}, 0, { 0, 0}, {0x1c, 0x0e, 0x86, 0x00}}}, ++- {{{ -26, 40, -1}, 0, { 0, 0}, {0x05, 0x48, 0x98, 0x00}}}, ++- {{{ -2, 36, -2}, 0, { 0, 0}, {0xb0, 0x61, 0x03, 0x00}}}, ++- {{{ -26, 40, -1}, 0, { 0, 0}, {0x11, 0x50, 0x60, 0x00}}}, ++- {{{ -5, -5, 34}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, ++- {{{ 14, -51, -2}, 0, { 0, 0}, {0x49, 0xd5, 0x5e, 0x00}}}, ++- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, ++- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, ++- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, ++- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, ++-}; ++- ++-// 0x04014BB0 ++-static const Vtx mario_medium_poly_left_hand_closed_shared_dl_vertex_group3[] = { ++- {{{ 54, 58, -32}, 0, { 0, 0}, {0x02, 0x4e, 0x9d, 0x00}}}, ++- {{{ 95, 43, -12}, 0, { 0, 0}, {0x6e, 0x36, 0xe0, 0x00}}}, ++- {{{ 84, -10, -41}, 0, { 0, 0}, {0x39, 0xe2, 0x93, 0x00}}}, ++- {{{ 7, 62, 10}, 0, { 0, 0}, {0xa7, 0x5a, 0x00, 0x00}}}, ++- {{{ 55, 84, 9}, 0, { 0, 0}, {0x14, 0x74, 0x2c, 0x00}}}, ++- {{{ 53, -42, 9}, 0, { 0, 0}, {0x04, 0x83, 0x0f, 0x00}}}, ++- {{{ 102, -23, 6}, 0, { 0, 0}, {0x64, 0xc4, 0x31, 0x00}}}, ++- {{{ 18, 37, -31}, 0, { 0, 0}, {0xc7, 0x28, 0x97, 0x00}}}, ++- {{{ 44, -22, -46}, 0, { 0, 0}, {0xde, 0xb9, 0x9d, 0x00}}}, ++- {{{ 11, 2, -28}, 0, { 0, 0}, {0xca, 0xf6, 0x8e, 0x00}}}, ++- {{{ -5, -5, 34}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, ++- {{{ -6, -5, -32}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, ++- {{{ 14, -51, -2}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, ++- {{{ -26, 40, -1}, 0, { 0, 0}, {0x8c, 0xce, 0x01, 0x00}}}, ++-}; ++- ++-// 0x04014C90 - 0x04014DC0 ++-const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), ++- gsSP2Triangles( 5, 3, 6, 0x0, 6, 1, 0, 0x0), ++- gsSP2Triangles( 2, 1, 7, 0x0, 7, 1, 6, 0x0), ++- gsSP2Triangles( 6, 3, 8, 0x0, 3, 2, 8, 0x0), ++- gsSP2Triangles( 0, 9, 10, 0x0, 11, 9, 0, 0x0), ++- gsSP2Triangles(10, 12, 13, 0x0, 14, 12, 11, 0x0), ++- gsSP2Triangles(11, 12, 9, 0x0, 9, 12, 10, 0x0), ++- gsSP1Triangle(15, 11, 0, 0x0), ++- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 9, 10, 3, 0x0, 7, 0, 2, 0x0), ++- gsSP2Triangles( 7, 2, 11, 0x0, 3, 12, 13, 0x0), ++- gsSP2Triangles( 3, 13, 0, 0x0, 11, 2, 14, 0x0), ++- gsSPVertex(mario_medium_poly_left_hand_closed_shared_dl_vertex_group3, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 5, 2, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 7, 2, 8, 0x0, 7, 0, 2, 0x0), ++- gsSP2Triangles( 5, 8, 2, 0x0, 10, 11, 12, 0x0), ++- gsSP1Triangle(10, 13, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014DC0 - 0x04014DE0 ++-const Gfx mario_medium_poly_left_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014DE0 ++-static const Vtx mario_medium_poly_right_arm_shared_dl_vertex[] = { ++- {{{ 60, -28, 22}, 0, { 0, 0}, {0x3b, 0xc7, 0x60, 0x00}}}, ++- {{{ 60, -19, -19}, 0, { 0, 0}, {0x5a, 0xbc, 0xc7, 0x00}}}, ++- {{{ 60, 14, 24}, 0, { 0, 0}, {0x5b, 0x4f, 0x26, 0x00}}}, ++- {{{ -7, -31, 24}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, ++- {{{ -7, -20, -27}, 0, { 0, 0}, {0x04, 0x84, 0xe6, 0x00}}}, ++- {{{ -8, 21, -15}, 0, { 0, 0}, {0x11, 0x73, 0xce, 0x00}}}, ++- {{{ -8, 22, 27}, 0, { 0, 0}, {0x0e, 0x7e, 0xfd, 0x00}}}, ++- {{{ 60, 13, -9}, 0, { 0, 0}, {0x3c, 0x46, 0xaa, 0x00}}}, ++- {{{ -7, -20, -27}, 0, { 0, 0}, {0x0e, 0x23, 0x88, 0x00}}}, ++- {{{ -8, 22, 27}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, ++- {{{ -7, -31, 24}, 0, { 0, 0}, {0x03, 0xfa, 0x7e, 0x00}}}, ++- {{{ -7, -20, -27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -7, -31, 24}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -8, 22, 27}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -8, 21, -15}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04014ED0 - 0x04014F40 ++-const Gfx mario_medium_poly_right_arm_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_right_arm_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 2, 5, 6, 0x0, 7, 8, 5, 0x0), ++- gsSP2Triangles( 7, 1, 8, 0x0, 2, 7, 5, 0x0), ++- gsSP2Triangles( 0, 2, 9, 0x0, 0, 9, 10, 0x0), ++- gsSP2Triangles( 1, 0, 3, 0x0, 11, 12, 13, 0x0), ++- gsSP2Triangles(13, 14, 11, 0x0, 1, 7, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014F40 - 0x04014F60 ++-const Gfx mario_medium_poly_right_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04014F60 ++-static const Vtx mario_medium_poly_right_forearm_shared_dl_vertex[] = { ++- {{{ -5, -18, -24}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, ++- {{{ -3, -29, 21}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, ++- {{{ -4, 17, 26}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, ++- {{{ 52, 13, -10}, 0, { 0, 0}, {0x51, 0x40, 0xb7, 0x00}}}, ++- {{{ 53, 13, 22}, 0, { 0, 0}, {0x3d, 0x63, 0x31, 0x00}}}, ++- {{{ 53, -26, 19}, 0, { 0, 0}, {0x5b, 0xd0, 0x49, 0x00}}}, ++- {{{ 52, -17, -21}, 0, { 0, 0}, {0x3a, 0xac, 0xb6, 0x00}}}, ++- {{{ -3, -29, 21}, 0, { 0, 0}, {0x04, 0x85, 0xe4, 0x00}}}, ++- {{{ -5, -18, -24}, 0, { 0, 0}, {0x03, 0x85, 0xe3, 0x00}}}, ++- {{{ -5, 17, -12}, 0, { 0, 0}, {0x09, 0x75, 0xd1, 0x00}}}, ++- {{{ -4, 17, 26}, 0, { 0, 0}, {0x08, 0x7e, 0x00, 0x00}}}, ++- {{{ -5, -18, -24}, 0, { 0, 0}, {0x06, 0x2a, 0x89, 0x00}}}, ++- {{{ -4, 17, 26}, 0, { 0, 0}, {0x06, 0xf5, 0x7e, 0x00}}}, ++- {{{ -3, -29, 21}, 0, { 0, 0}, {0x06, 0xf4, 0x7e, 0x00}}}, ++- {{{ -5, 17, -12}, 0, { 0, 0}, {0x81, 0xfe, 0x03, 0x00}}}, ++-}; ++- ++-// 0x04015050 - 0x040150C0 ++-const Gfx mario_medium_poly_right_forearm_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_right_forearm_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 3, 5, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 4, 9, 10, 0x0, 3, 11, 9, 0x0), ++- gsSP2Triangles( 3, 6, 11, 0x0, 4, 3, 9, 0x0), ++- gsSP2Triangles( 5, 4, 12, 0x0, 5, 12, 13, 0x0), ++- gsSP2Triangles( 6, 5, 7, 0x0, 2, 14, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040150C0 ++-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group1[] = { ++- {{{ -7, -4, 36}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, ++- {{{ -26, 40, 0}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, ++- {{{ -4, -7, -34}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, ++- {{{ 14, -51, 7}, 0, { 0, 0}, {0x8c, 0xcd, 0xfd, 0x00}}}, ++- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, ++- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, ++- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, ++- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, ++- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, ++- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, ++- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, ++- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, ++- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, ++- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, ++- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, ++- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, ++-}; ++- ++-// 0x040151C0 ++-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group2[] = { ++- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, ++- {{{ 7, 62, -11}, 0, { 0, 0}, {0xa7, 0x5a, 0xf9, 0x00}}}, ++- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, ++- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, ++- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, ++- {{{ 14, -51, 7}, 0, { 0, 0}, {0x4f, 0xd0, 0xaa, 0x00}}}, ++- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, ++- {{{ -26, 40, 0}, 0, { 0, 0}, {0x15, 0x51, 0xa1, 0x00}}}, ++- {{{ -26, 40, 0}, 0, { 0, 0}, {0x02, 0x4f, 0x62, 0x00}}}, ++- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, ++- {{{ 14, -51, 7}, 0, { 0, 0}, {0x36, 0xd7, 0x6b, 0x00}}}, ++- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, ++- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, ++- {{{ 54, -42, -4}, 0, { 0, 0}, {0x04, 0x82, 0xf6, 0x00}}}, ++- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, ++- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, ++-}; ++- ++-// 0x040152C0 ++-static const Vtx mario_medium_poly_right_hand_closed_dl_vertex_group3[] = { ++- {{{ 102, -23, 0}, 0, { 0, 0}, {0x65, 0xc1, 0xd7, 0x00}}}, ++- {{{ 94, 43, 18}, 0, { 0, 0}, {0x6d, 0x38, 0x21, 0x00}}}, ++- {{{ 81, -8, 49}, 0, { 0, 0}, {0x36, 0xe6, 0x6f, 0x00}}}, ++- {{{ 52, 59, 37}, 0, { 0, 0}, {0xff, 0x55, 0x5e, 0x00}}}, ++- {{{ 55, 84, -8}, 0, { 0, 0}, {0x15, 0x73, 0xd1, 0x00}}}, ++- {{{ 32, 8, -40}, 0, { 0, 0}, {0xda, 0xe8, 0x8a, 0x00}}}, ++- {{{ 83, 30, -39}, 0, { 0, 0}, {0x4e, 0x1c, 0xa1, 0x00}}}, ++- {{{ -7, -4, 36}, 0, { 0, 0}, {0x19, 0x13, 0x7a, 0x00}}}, ++- {{{ 26, -32, 8}, 0, { 0, 0}, {0x08, 0x82, 0xfa, 0x00}}}, ++- {{{ 10, 3, 33}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0x00}}}, ++- {{{ -3, 37, 3}, 0, { 0, 0}, {0xb0, 0x62, 0xf7, 0x00}}}, ++- {{{ 13, 0, -26}, 0, { 0, 0}, {0xf5, 0xf2, 0x83, 0x00}}}, ++- {{{ -4, -7, -34}, 0, { 0, 0}, {0x37, 0x10, 0x8f, 0x00}}}, ++- {{{ 16, 38, 35}, 0, { 0, 0}, {0xc1, 0x2d, 0x63, 0x00}}}, ++- {{{ 42, -20, 54}, 0, { 0, 0}, {0xd9, 0xbb, 0x62, 0x00}}}, ++-}; ++- ++-// 0x040153B0 - 0x040154E0 ++-const Gfx mario_medium_poly_right_hand_closed_dl[] = { ++- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), ++- gsSP2Triangles( 5, 4, 8, 0x0, 9, 5, 8, 0x0), ++- gsSP2Triangles(10, 4, 6, 0x0, 7, 11, 12, 0x0), ++- gsSP2Triangles( 4, 13, 7, 0x0, 7, 12, 8, 0x0), ++- gsSP2Triangles(14, 6, 15, 0x0, 6, 5, 15, 0x0), ++- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 2, 0x0), ++- gsSP2Triangles( 2, 8, 9, 0x0, 9, 10, 4, 0x0), ++- gsSP2Triangles( 1, 11, 3, 0x0, 3, 12, 13, 0x0), ++- gsSP2Triangles(11, 14, 15, 0x0, 15, 14, 12, 0x0), ++- gsSPVertex(mario_medium_poly_right_hand_closed_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), ++- gsSP2Triangles( 5, 6, 0, 0x0, 4, 6, 5, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 7, 9, 10, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 8, 0x0), ++- gsSP2Triangles( 5, 11, 10, 0x0, 10, 9, 13, 0x0), ++- gsSP2Triangles(14, 9, 8, 0x0, 8, 11, 5, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040154E0 - 0x04015500 ++-const Gfx mario_medium_poly_right_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015500 - 0x04015530 ++-const Gfx mario_metal_medium_poly_right_hand_closed[] = { ++- gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015530 ++-static const Vtx mario_medium_poly_left_thigh_dl_vertex[] = { ++- {{{ 18, -12, 58}, 0, { 0, 0}, {0x13, 0xdd, 0x78, 0x00}}}, ++- {{{ 22, -52, 8}, 0, { 0, 0}, {0x1c, 0x85, 0x01, 0x00}}}, ++- {{{ 99, -35, 8}, 0, { 0, 0}, {0x3e, 0x92, 0x01, 0x00}}}, ++- {{{ 14, 51, 38}, 0, { 0, 0}, {0x08, 0x75, 0x30, 0x00}}}, ++- {{{ 92, 47, 33}, 0, { 0, 0}, {0x36, 0x4b, 0x56, 0x00}}}, ++- {{{ 14, 50, -23}, 0, { 0, 0}, {0x0a, 0x65, 0xb5, 0x00}}}, ++- {{{ 92, 47, -16}, 0, { 0, 0}, {0x47, 0x55, 0xc5, 0x00}}}, ++- {{{ 19, -13, -42}, 0, { 0, 0}, {0x15, 0xdb, 0x89, 0x00}}}, ++- {{{ 96, -3, -31}, 0, { 0, 0}, {0x68, 0xf1, 0xba, 0x00}}}, ++- {{{ 96, -3, 48}, 0, { 0, 0}, {0x71, 0xf8, 0x38, 0x00}}}, ++- {{{ 19, -13, -42}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 22, -52, 8}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 18, -12, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 14, 51, 38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 14, 50, -23}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++-}; ++- ++-// 0x04015620 - 0x040156B0 ++-const Gfx mario_medium_poly_left_thigh_dl[] = { ++- gsSPVertex(mario_medium_poly_left_thigh_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 5, 3, 6, 0x0, 7, 5, 6, 0x0), ++- gsSP2Triangles( 1, 7, 2, 0x0, 7, 8, 2, 0x0), ++- gsSP2Triangles( 6, 8, 7, 0x0, 3, 4, 6, 0x0), ++- gsSP2Triangles( 0, 9, 4, 0x0, 2, 9, 0, 0x0), ++- gsSP2Triangles( 9, 2, 8, 0x0, 10, 11, 12, 0x0), ++- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), ++- gsSP2Triangles( 8, 6, 9, 0x0, 6, 4, 9, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040156B0 - 0x040156E0 ++-const Gfx mario_medium_poly_left_thigh[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040156E0 - 0x04015758 ++-const Gfx mario_metal_medium_poly_left_thigh[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015758 ++-static const Vtx mario_medium_poly_left_leg_shared_dl_vertex[] = { ++- {{{ 5, -35, 9}, 0, { 0, 0}, {0xca, 0x8e, 0x00, 0x00}}}, ++- {{{ 65, -44, 10}, 0, { 0, 0}, {0xee, 0x83, 0x01, 0x00}}}, ++- {{{ 66, -9, 54}, 0, { 0, 0}, {0xf2, 0xdc, 0x78, 0x00}}}, ++- {{{ 9, 46, 33}, 0, { 0, 0}, {0xd5, 0x61, 0x45, 0x00}}}, ++- {{{ 69, 47, 37}, 0, { 0, 0}, {0xf9, 0x66, 0x4b, 0x00}}}, ++- {{{ 70, 47, -18}, 0, { 0, 0}, {0xfb, 0x74, 0xcf, 0x00}}}, ++- {{{ 10, 46, -16}, 0, { 0, 0}, {0xaf, 0x40, 0xb7, 0x00}}}, ++- {{{ 67, -9, -36}, 0, { 0, 0}, {0xf4, 0xda, 0x88, 0x00}}}, ++- {{{ 7, -4, -31}, 0, { 0, 0}, {0x9b, 0xee, 0xb6, 0x00}}}, ++- {{{ 7, -4, 49}, 0, { 0, 0}, {0x8f, 0xf5, 0x37, 0x00}}}, ++- {{{ 66, -9, 54}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 65, -44, 10}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 67, -9, -36}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 70, 47, -18}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 69, 47, 37}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++-}; ++- ++-// 0x04015848 - 0x040158D8 ++-const Gfx mario_medium_poly_left_leg_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_left_leg_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 6, 5, 7, 0x0), ++- gsSP2Triangles( 0, 7, 1, 0x0, 0, 8, 7, 0x0), ++- gsSP2Triangles( 7, 8, 6, 0x0, 5, 6, 3, 0x0), ++- gsSP2Triangles( 3, 9, 2, 0x0, 2, 9, 0, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 8, 0, 9, 0x0), ++- gsSP2Triangles( 9, 6, 8, 0x0, 9, 3, 6, 0x0), ++- gsSP2Triangles(12, 13, 10, 0x0, 13, 14, 10, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040158D8 ++-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group1[] = { ++- {{{ 108, 10, 36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 108, 9, -20}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 75, 21, -41}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 76, 22, 61}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -14, 55, -27}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -13, 55, 49}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -41, 65, 9}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, ++- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, ++- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, ++- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, ++- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, ++- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, ++- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, ++- {{{ 75, 21, -41}, 0, { 0, 0}, {0x09, 0xda, 0x88, 0x00}}}, ++- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, ++-}; ++- ++-// 0x040159D8 ++-static const Vtx mario_medium_poly_left_foot_shared_dl_vertex_group2[] = { ++- {{{ 78, -30, 7}, 0, { 0, 0}, {0x34, 0x8d, 0xfb, 0x00}}}, ++- {{{ 108, 9, -20}, 0, { 0, 0}, {0x44, 0xad, 0xbe, 0x00}}}, ++- {{{ 108, 10, 36}, 0, { 0, 0}, {0x4c, 0xaf, 0x3c, 0x00}}}, ++- {{{ 42, -11, -33}, 0, { 0, 0}, {0xff, 0xb8, 0x98, 0x00}}}, ++- {{{ 76, 22, 61}, 0, { 0, 0}, {0x12, 0xdd, 0x78, 0x00}}}, ++- {{{ 41, -18, 54}, 0, { 0, 0}, {0x04, 0xb4, 0x65, 0x00}}}, ++- {{{ -36, 13, 39}, 0, { 0, 0}, {0xa0, 0xd0, 0x42, 0x00}}}, ++- {{{ -13, 55, 49}, 0, { 0, 0}, {0xce, 0x07, 0x74, 0x00}}}, ++- {{{ -41, 65, 9}, 0, { 0, 0}, {0x83, 0x15, 0x00, 0x00}}}, ++- {{{ -14, 55, -27}, 0, { 0, 0}, {0xcc, 0x02, 0x8d, 0x00}}}, ++- {{{ -37, 12, -16}, 0, { 0, 0}, {0xa1, 0xcf, 0xbd, 0x00}}}, ++- {{{ 25, -34, 11}, 0, { 0, 0}, {0xdd, 0x87, 0xfb, 0x00}}}, ++-}; ++- ++-// 0x04015A98 - 0x04015B60 ++-const Gfx mario_medium_poly_left_foot_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), ++- gsSP2Triangles( 6, 5, 4, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 13, 7, 9, 0x0), ++- gsSP2Triangles(10, 12, 14, 0x0, 10, 14, 15, 0x0), ++- gsSPVertex(mario_medium_poly_left_foot_shared_dl_vertex_group2, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), ++- gsSP2Triangles( 2, 4, 5, 0x0, 5, 0, 2, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles(11, 3, 0, 0x0, 10, 3, 11, 0x0), ++- gsSP2Triangles( 0, 5, 11, 0x0, 11, 5, 6, 0x0), ++- gsSP2Triangles(11, 6, 10, 0x0, 6, 8, 10, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015B60 - 0x04015B80 ++-const Gfx mario_medium_poly_left_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015B80 ++-static const Vtx mario_medium_poly_right_thigh_shared_dl_vertex[] = { ++- {{{ 18, -11, -58}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 23, -52, -9}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 20, -14, 41}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 97, -3, 30}, 0, { 0, 0}, {0x69, 0xf1, 0x45, 0x00}}}, ++- {{{ 99, -33, -10}, 0, { 0, 0}, {0x40, 0x93, 0xfc, 0x00}}}, ++- {{{ 95, -1, -49}, 0, { 0, 0}, {0x71, 0xfb, 0xc7, 0x00}}}, ++- {{{ 18, -11, -58}, 0, { 0, 0}, {0x12, 0xe0, 0x87, 0x00}}}, ++- {{{ 91, 49, -33}, 0, { 0, 0}, {0x34, 0x4e, 0xab, 0x00}}}, ++- {{{ 92, 48, 16}, 0, { 0, 0}, {0x47, 0x55, 0x3d, 0x00}}}, ++- {{{ 13, 52, -37}, 0, { 0, 0}, {0x06, 0x76, 0xd3, 0x00}}}, ++- {{{ 20, -14, 41}, 0, { 0, 0}, {0x16, 0xd9, 0x76, 0x00}}}, ++- {{{ 23, -52, -9}, 0, { 0, 0}, {0x1d, 0x85, 0xfd, 0x00}}}, ++- {{{ 14, 50, 24}, 0, { 0, 0}, {0x0a, 0x63, 0x4d, 0x00}}}, ++- {{{ 13, 52, -37}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 14, 50, 24}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++-}; ++- ++-// 0x04015C70 - 0x04015D00 ++-const Gfx mario_medium_poly_right_thigh_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_right_thigh_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 5, 4, 0x0, 7, 5, 6, 0x0), ++- gsSP2Triangles( 8, 7, 9, 0x0, 10, 3, 8, 0x0), ++- gsSP2Triangles( 4, 3, 10, 0x0, 4, 10, 11, 0x0), ++- gsSP2Triangles( 8, 12, 10, 0x0, 8, 9, 12, 0x0), ++- gsSP2Triangles( 7, 6, 9, 0x0, 4, 11, 6, 0x0), ++- gsSP2Triangles( 5, 8, 3, 0x0, 5, 7, 8, 0x0), ++- gsSP2Triangles( 2, 13, 0, 0x0, 2, 14, 13, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015D00 - 0x04015D20 ++-const Gfx mario_medium_poly_right_thigh[] = { ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015D20 ++-static const Vtx mario_medium_poly_right_leg_shared_dl_vertex[] = { ++- {{{ 6, -1, -50}, 0, { 0, 0}, {0x8e, 0xf7, 0xca, 0x00}}}, ++- {{{ 5, -34, -11}, 0, { 0, 0}, {0xc9, 0x8e, 0xfe, 0x00}}}, ++- {{{ 7, -4, 30}, 0, { 0, 0}, {0x9b, 0xed, 0x4a, 0x00}}}, ++- {{{ 67, -9, 34}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 64, -43, -12}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 66, -7, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 66, -7, -56}, 0, { 0, 0}, {0xf1, 0xde, 0x87, 0x00}}}, ++- {{{ 10, 48, -33}, 0, { 0, 0}, {0xd6, 0x63, 0xbe, 0x00}}}, ++- {{{ 10, 46, 16}, 0, { 0, 0}, {0xb1, 0x3f, 0x4b, 0x00}}}, ++- {{{ 71, 47, 18}, 0, { 0, 0}, {0xfd, 0x73, 0x33, 0x00}}}, ++- {{{ 67, -9, 34}, 0, { 0, 0}, {0xf4, 0xd8, 0x77, 0x00}}}, ++- {{{ 64, -43, -12}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, ++- {{{ 70, 49, -37}, 0, { 0, 0}, {0xfa, 0x67, 0xb8, 0x00}}}, ++- {{{ 71, 47, 18}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 70, 49, -37}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++-}; ++- ++-// 0x04015E10 - 0x04015EA0 ++-const Gfx mario_medium_poly_right_leg_shared_dl[] = { ++- gsSPVertex(mario_medium_poly_right_leg_shared_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 1, 0, 6, 0x0, 6, 0, 7, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 8, 2, 10, 0x0), ++- gsSP2Triangles(10, 2, 1, 0x0, 11, 10, 1, 0x0), ++- gsSP2Triangles(10, 9, 8, 0x0, 9, 12, 7, 0x0), ++- gsSP2Triangles(12, 6, 7, 0x0, 6, 11, 1, 0x0), ++- gsSP2Triangles( 5, 13, 3, 0x0, 5, 14, 13, 0x0), ++- gsSP2Triangles( 2, 8, 0, 0x0, 8, 7, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04015EA0 ++-static const Vtx mario_medium_poly_right_foot_dl_vertex_group1[] = { ++- {{{ -38, 12, 14}, 0, { 0, 0}, {0xa1, 0xcf, 0x43, 0x00}}}, ++- {{{ -43, 65, -12}, 0, { 0, 0}, {0x83, 0x13, 0xff, 0x00}}}, ++- {{{ -36, 12, -41}, 0, { 0, 0}, {0xa1, 0xce, 0xbe, 0x00}}}, ++- {{{ 25, -34, -11}, 0, { 0, 0}, {0xdf, 0x86, 0x07, 0x00}}}, ++- {{{ 41, -18, -55}, 0, { 0, 0}, {0x07, 0xb3, 0x9c, 0x00}}}, ++- {{{ 79, -29, -7}, 0, { 0, 0}, {0x36, 0x8e, 0x08, 0x00}}}, ++- {{{ 42, -10, 32}, 0, { 0, 0}, {0xff, 0xba, 0x69, 0x00}}}, ++- {{{ -15, 55, 24}, 0, { 0, 0}, {0xcb, 0x04, 0x73, 0x00}}}, ++- {{{ -14, 54, -51}, 0, { 0, 0}, {0xcf, 0x04, 0x8c, 0x00}}}, ++- {{{ 108, 11, -36}, 0, { 0, 0}, {0x4e, 0xb0, 0xc6, 0x00}}}, ++- {{{ 76, 23, -62}, 0, { 0, 0}, {0x14, 0xdb, 0x89, 0x00}}}, ++- {{{ 107, 12, 20}, 0, { 0, 0}, {0x45, 0xaf, 0x44, 0x00}}}, ++- {{{ 74, 24, 40}, 0, { 0, 0}, {0x08, 0xdc, 0x79, 0x00}}}, ++- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -43, 65, -12}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04015FA0 ++-static const Vtx mario_medium_poly_right_foot_dl_vertex_group2[] = { ++- {{{ -15, 55, 24}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 76, 23, -62}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -14, 54, -51}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 74, 24, 40}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 108, 11, -36}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 107, 12, 20}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04016000 - 0x040160C8 ++-const Gfx mario_medium_poly_right_foot_dl[] = { ++- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 3, 6, 0, 0x0, 5, 6, 3, 0x0), ++- gsSP2Triangles( 0, 7, 1, 0x0, 1, 8, 2, 0x0), ++- gsSP2Triangles( 9, 5, 4, 0x0, 4, 10, 9, 0x0), ++- gsSP2Triangles( 6, 5, 11, 0x0, 9, 11, 5, 0x0), ++- gsSP2Triangles(11, 12, 6, 0x0, 12, 7, 6, 0x0), ++- gsSP2Triangles( 8, 4, 2, 0x0, 7, 0, 6, 0x0), ++- gsSP2Triangles( 8, 10, 4, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_medium_poly_right_foot_dl_vertex_group2, 6, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040160C8 - 0x04016108 ++-const Gfx mario_medium_poly_right_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_right_foot_dl), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016108 - 0x04016148 ++-const Gfx mario_metal_medium_poly_right_foot[] = { ++- gsSPDisplayList(mario_medium_poly_right_foot_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016148 ++-static const Vtx mario_seg4_vertex_04016148[] = { ++- {{{ 75, 24, -60}, 0, { -74, -930}, {0x60, 0x27, 0xb8, 0xff}}}, ++- {{{ 36, 47, -76}, 0, { -174, 168}, {0x2e, 0x36, 0x98, 0xff}}}, ++- {{{ 44, 78, -35}, 0, { 988, 92}, {0x45, 0x65, 0xe2, 0xff}}}, ++- {{{ -26, 49, -87}, 0, { -538, 1590}, {0xc4, 0x29, 0x99, 0xff}}}, ++- {{{ 1, 87, -53}, 0, { 638, 1164}, {0x0e, 0x74, 0xd1, 0xff}}}, ++- {{{ 1, 87, 54}, 0, { 2522, 702}, {0x11, 0x74, 0x2f, 0xff}}}, ++- {{{ 1, 87, 54}, 0, { 272, 1122}, {0x11, 0x74, 0x2f, 0xff}}}, ++- {{{ 44, 78, 37}, 0, { -92, 108}, {0x47, 0x5f, 0x2a, 0xff}}}, ++- {{{ 44, 78, -35}, 0, { -1398, -128}, {0x45, 0x65, 0xe2, 0xff}}}, ++- {{{ -26, 49, 88}, 0, { 1514, 1490}, {0xc4, 0x29, 0x67, 0xff}}}, ++- {{{ 36, 47, 77}, 0, { 1110, 130}, {0x2f, 0x37, 0x68, 0xff}}}, ++- {{{ 75, 24, 60}, 0, { 968, -926}, {0x62, 0x27, 0x46, 0xff}}}, ++-}; ++- ++-// 0x04016208 ++-static const Vtx mario_seg4_vertex_04016208[] = { ++- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, ++- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, ++- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, ++- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, ++- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, ++- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, ++- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, ++- {{{ 56, -4, 79}, 0, { 0, 0}, {0x39, 0x04, 0x71, 0xff}}}, ++- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, ++- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, ++- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, ++- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, ++- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, ++- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, ++- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, ++- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, ++-}; ++- ++-// 0x04016308 ++-static const Vtx mario_seg4_vertex_04016308[] = { ++- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, ++- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, ++- {{{ 56, -4, -77}, 0, { 0, 0}, {0x38, 0x04, 0x8f, 0xff}}}, ++- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, ++- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, ++- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, ++- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, ++- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, ++- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, ++-}; ++- ++-// 0x04016398 ++-static const Vtx mario_seg4_vertex_04016398[] = { ++- {{{ 83, -29, -58}, 0, { 0, 0}, {0x52, 0xc9, 0xb2, 0xff}}}, ++- {{{ 95, -39, -25}, 0, { 0, 0}, {0x79, 0xe6, 0xe8, 0xff}}}, ++- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, ++- {{{ 75, 24, -60}, 0, { 0, 0}, {0x60, 0x27, 0xb8, 0xff}}}, ++- {{{ 82, 37, -28}, 0, { 0, 0}, {0x71, 0x35, 0xea, 0xff}}}, ++- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, ++- {{{ 44, 78, -35}, 0, { 0, 0}, {0x45, 0x65, 0xe2, 0xff}}}, ++- {{{ 75, 24, 60}, 0, { 0, 0}, {0x62, 0x27, 0x46, 0xff}}}, ++- {{{ 82, 37, 28}, 0, { 0, 0}, {0x71, 0x36, 0x0e, 0xff}}}, ++- {{{ 44, 78, 37}, 0, { 0, 0}, {0x47, 0x5f, 0x2a, 0xff}}}, ++- {{{ 83, -29, 58}, 0, { 0, 0}, {0x54, 0xc8, 0x4c, 0xff}}}, ++- {{{ 95, -39, 25}, 0, { 0, 0}, {0x75, 0xdb, 0x1d, 0xff}}}, ++- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, ++- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, ++- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, ++- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, ++-}; ++- ++-// 0x04016498 ++-static const Vtx mario_seg4_vertex_04016498[] = { ++- {{{ 1, 87, -53}, 0, { 0, 0}, {0x0e, 0x74, 0xd1, 0xff}}}, ++- {{{ -30, 88, -41}, 0, { 0, 0}, {0xc7, 0x6a, 0xda, 0xff}}}, ++- {{{ -30, 88, 42}, 0, { 0, 0}, {0xd3, 0x72, 0x1f, 0xff}}}, ++- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, ++- {{{ -71, 56, 0}, 0, { 0, 0}, {0x89, 0x2b, 0x00, 0xff}}}, ++- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, ++- {{{ 1, 87, 54}, 0, { 0, 0}, {0x11, 0x74, 0x2f, 0xff}}}, ++- {{{ -59, -44, 0}, 0, { 0, 0}, {0x88, 0xd8, 0x00, 0xff}}}, ++- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, ++- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, ++- {{{ -26, -41, 85}, 0, { 0, 0}, {0xcc, 0xc2, 0x61, 0xff}}}, ++- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, ++- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, ++- {{{ 22, -41, 87}, 0, { 0, 0}, {0x1f, 0xc9, 0x6d, 0xff}}}, ++- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, ++- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04016598 ++-static const Vtx mario_seg4_vertex_04016598[] = { ++- {{{ -26, 49, 88}, 0, { 0, 0}, {0xc4, 0x29, 0x67, 0xff}}}, ++- {{{ 9, 0, 94}, 0, { 0, 0}, {0x0e, 0x03, 0x7e, 0xff}}}, ++- {{{ 36, 47, 77}, 0, { 0, 0}, {0x2f, 0x37, 0x68, 0xff}}}, ++- {{{ 9, 0, -93}, 0, { 0, 0}, {0x0e, 0x03, 0x82, 0xff}}}, ++- {{{ -26, 49, -87}, 0, { 0, 0}, {0xc4, 0x29, 0x99, 0xff}}}, ++- {{{ 36, 47, -76}, 0, { 0, 0}, {0x2e, 0x36, 0x98, 0xff}}}, ++- {{{ -26, -41, -84}, 0, { 0, 0}, {0xcc, 0xc2, 0x9f, 0xff}}}, ++- {{{ 22, -41, -86}, 0, { 0, 0}, {0x1e, 0xca, 0x92, 0xff}}}, ++- {{{ 40, -66, -47}, 0, { 0, 0}, {0x1d, 0x91, 0xcb, 0xff}}}, ++- {{{ -26, -72, -38}, 0, { 0, 0}, {0xda, 0x8b, 0xe5, 0xff}}}, ++- {{{ 54, -68, 0}, 0, { 0, 0}, {0x2d, 0x8a, 0x00, 0xff}}}, ++- {{{ -26, -72, 39}, 0, { 0, 0}, {0xda, 0x8b, 0x1b, 0xff}}}, ++- {{{ 40, -66, 48}, 0, { 0, 0}, {0x1d, 0x91, 0x35, 0xff}}}, ++-}; ++- ++-// 0x04016668 - 0x040166B8 ++-const Gfx mario_medium_poly_yellow_button_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04016148, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), ++- gsSP2Triangles( 6, 10, 7, 0x0, 7, 10, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040166B8 - 0x04016800 ++-const Gfx mario_medium_poly_pants_overalls_shared_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04016398, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), ++- gsSP2Triangles( 3, 4, 1, 0x0, 2, 5, 0, 0x0), ++- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 7, 10, 11, 0x0, 8, 7, 11, 0x0), ++- gsSP2Triangles(11, 10, 2, 0x0, 10, 12, 2, 0x0), ++- gsSP1Triangle(13, 14, 15, 0x0), ++- gsSPVertex(mario_seg4_vertex_04016498, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 2, 1, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 5, 2, 4, 0x0, 6, 2, 5, 0x0), ++- gsSP2Triangles( 4, 3, 7, 0x0, 8, 9, 7, 0x0), ++- gsSP2Triangles( 5, 4, 7, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles(11, 8, 7, 0x0, 3, 11, 7, 0x0), ++- gsSP2Triangles( 7, 10, 5, 0x0, 10, 9, 12, 0x0), ++- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), ++- gsSP2Triangles( 5, 10, 14, 0x0, 9, 8, 15, 0x0), ++- gsSPVertex(mario_seg4_vertex_04016598, 13, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 4, 3, 0x0, 6, 3, 7, 0x0), ++- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 8, 10, 0x0, 11, 10, 12, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016800 - 0x040168A0 ++-const Gfx mario_medium_poly_tshirt_shared_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04016208, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 1, 0, 4, 0x0, 0, 5, 4, 0x0), ++- gsSP2Triangles( 6, 4, 5, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 9, 10, 7, 0x0, 7, 10, 11, 0x0), ++- gsSP2Triangles( 7, 12, 8, 0x0, 11, 12, 7, 0x0), ++- gsSP1Triangle(13, 14, 15, 0x0), ++- gsSPVertex(mario_seg4_vertex_04016308, 9, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), ++- gsSP2Triangles( 5, 3, 2, 0x0, 6, 7, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040168A0 - 0x040168C8 ++-const Gfx mario_medium_poly_torso_dl[] = { ++- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040168C8 - 0x04016948 ++-const Gfx mario_medium_poly_torso[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_medium_poly_yellow_button_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_medium_poly_torso_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016948 - 0x04016968 ++-const Gfx mario_metal_medium_poly_torso[] = { ++- gsSPDisplayList(mario_medium_poly_yellow_button_dl), ++- gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), ++- gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016968 ++-static const Vtx mario_low_poly_butt_dl_vertex[] = { ++- {{{ -37, -37, 0}, 0, { 0, 0}, {0x82, 0xf5, 0x00, 0x00}}}, ++- {{{ -2, 52, 92}, 0, { 0, 0}, {0xb1, 0x3c, 0x4e, 0x00}}}, ++- {{{ -35, 55, 0}, 0, { 0, 0}, {0x97, 0x45, 0x00, 0x00}}}, ++- {{{ -7, -86, 85}, 0, { 0, 0}, {0xbf, 0xc4, 0x5a, 0x00}}}, ++- {{{ 49, 46, 96}, 0, { 0, 0}, {0x4b, 0x1d, 0x61, 0x00}}}, ++- {{{ -7, -86, -85}, 0, { 0, 0}, {0xcf, 0xaa, 0xb2, 0x00}}}, ++- {{{ -2, 52, -92}, 0, { 0, 0}, {0xb0, 0x3b, 0xb2, 0x00}}}, ++- {{{ 48, 44, -98}, 0, { 0, 0}, {0x29, 0x22, 0x8e, 0x00}}}, ++- {{{ 46, -71, -89}, 0, { 0, 0}, {0x73, 0xd9, 0xdd, 0x00}}}, ++- {{{ 46, -71, 89}, 0, { 0, 0}, {0x44, 0xa1, 0x2f, 0x00}}}, ++- {{{ 49, 96, 0}, 0, { 0, 0}, {0x2b, 0x77, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04016A18 - 0x04016AB8 ++-const Gfx mario_low_poly_butt_dl[] = { ++- gsSPVertex(mario_low_poly_butt_dl_vertex, 11, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 6, 0x0), ++- gsSP2Triangles( 6, 5, 0, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 7, 8, 5, 0x0, 3, 9, 4, 0x0), ++- gsSP2Triangles( 8, 7, 10, 0x0, 4, 9, 8, 0x0), ++- gsSP2Triangles( 5, 9, 3, 0x0, 3, 0, 5, 0x0), ++- gsSP2Triangles( 5, 8, 9, 0x0, 10, 7, 6, 0x0), ++- gsSP2Triangles(10, 4, 8, 0x0, 2, 1, 10, 0x0), ++- gsSP2Triangles( 6, 2, 10, 0x0, 1, 4, 10, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016AB8 - 0x04016AE8 ++-const Gfx mario_low_poly_butt[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016AE8 - 0x04016B60 ++-const Gfx mario_metal_low_poly_butt[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_butt_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016B60 ++-static const Vtx mario_low_poly_left_arm_shared_dl_vertex[] = { ++- {{{ -6, 28, 10}, 0, { 0, 0}, {0x09, 0x65, 0xb5, 0x00}}}, ++- {{{ 72, 21, 8}, 0, { 0, 0}, {0x44, 0x4d, 0x48, 0x00}}}, ++- {{{ 71, -11, -34}, 0, { 0, 0}, {0x3f, 0x57, 0xbe, 0x00}}}, ++- {{{ -8, -30, 31}, 0, { 0, 0}, {0x09, 0x26, 0x78, 0x00}}}, ++- {{{ 71, -30, 23}, 0, { 0, 0}, {0x5e, 0x15, 0x51, 0x00}}}, ++- {{{ -6, 28, 10}, 0, { 0, 0}, {0x07, 0x29, 0x77, 0x00}}}, ++- {{{ -8, -7, -41}, 0, { 0, 0}, {0x0b, 0x67, 0xb8, 0x00}}}, ++- {{{ -8, -30, 31}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, ++- {{{ -6, 28, 10}, 0, { 0, 0}, {0x81, 0x02, 0x00, 0x00}}}, ++- {{{ -8, -7, -41}, 0, { 0, 0}, {0xa4, 0xad, 0xe5, 0x00}}}, ++- {{{ 71, -11, -34}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, ++- {{{ 71, -30, 23}, 0, { 0, 0}, {0xfd, 0x88, 0xd9, 0x00}}}, ++-}; ++- ++-// 0x04016C20 - 0x04016C70 ++-const Gfx mario_low_poly_left_arm_shared_dl[] = { ++- gsSPVertex(mario_low_poly_left_arm_shared_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), ++- gsSP2Triangles( 7, 9, 10, 0x0, 7, 10, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016C70 - 0x04016C90 ++-const Gfx mario_low_poly_left_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_left_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016C90 ++-static const Vtx mario_low_poly_left_forearm_shared_dl_vertex[] = { ++- {{{ -5, 20, 6}, 0, { 0, 0}, {0x05, 0x62, 0xb0, 0x00}}}, ++- {{{ 67, 16, 5}, 0, { 0, 0}, {0x43, 0x4b, 0x4c, 0x00}}}, ++- {{{ 67, -14, -31}, 0, { 0, 0}, {0x3c, 0x55, 0xba, 0x00}}}, ++- {{{ -5, -30, 21}, 0, { 0, 0}, {0x05, 0x20, 0x7a, 0x00}}}, ++- {{{ 67, -30, 17}, 0, { 0, 0}, {0x5c, 0x14, 0x54, 0x00}}}, ++- {{{ -5, 20, 6}, 0, { 0, 0}, {0x04, 0x22, 0x7a, 0x00}}}, ++- {{{ -5, -12, -35}, 0, { 0, 0}, {0x07, 0x63, 0xb2, 0x00}}}, ++- {{{ -5, -30, 21}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, ++- {{{ -5, 20, 6}, 0, { 0, 0}, {0x81, 0x01, 0x00, 0x00}}}, ++- {{{ -5, -12, -35}, 0, { 0, 0}, {0xa5, 0xad, 0xe5, 0x00}}}, ++- {{{ 67, -30, 17}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, ++- {{{ 67, -14, -31}, 0, { 0, 0}, {0xfe, 0x88, 0xd9, 0x00}}}, ++-}; ++- ++-// 0x04016D50 - 0x04016DA0 ++-const Gfx mario_low_poly_left_forearm_shared_dl[] = { ++- gsSPVertex(mario_low_poly_left_forearm_shared_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 3, 1, 0x0, 6, 0, 2, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 2, 1, 4, 0x0), ++- gsSP2Triangles(10, 7, 9, 0x0, 10, 9, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016DA0 ++-static const Vtx mario_low_poly_left_hand_closed_shared_dl_vertex[] = { ++- {{{ -6, 34, -25}, 0, { 0, 0}, {0xa0, 0x13, 0xb0, 0x00}}}, ++- {{{ -9, 39, 24}, 0, { 0, 0}, {0xb3, 0x43, 0x4a, 0x00}}}, ++- {{{ 91, 80, -34}, 0, { 0, 0}, {0x13, 0x7c, 0xee, 0x00}}}, ++- {{{ 90, 35, 33}, 0, { 0, 0}, {0x41, 0x14, 0x6b, 0x00}}}, ++- {{{ 20, -34, 21}, 0, { 0, 0}, {0xd4, 0x9a, 0x3c, 0x00}}}, ++- {{{ 122, 4, -45}, 0, { 0, 0}, {0x63, 0xbb, 0x25, 0x00}}}, ++- {{{ 122, 4, -45}, 0, { 0, 0}, {0xf2, 0x15, 0x84, 0x00}}}, ++- {{{ 20, -31, -44}, 0, { 0, 0}, {0xcb, 0xae, 0xb1, 0x00}}}, ++-}; ++- ++-// 0x04016E20 - 0x04016E80 ++-const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { ++- gsSPVertex(mario_low_poly_left_hand_closed_shared_dl_vertex, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 4, 5, 3, 0x0, 0, 6, 7, 0x0), ++- gsSP2Triangles( 0, 2, 6, 0x0, 4, 7, 5, 0x0), ++- gsSP2Triangles( 3, 1, 4, 0x0, 2, 3, 5, 0x0), ++- gsSP2Triangles( 0, 7, 4, 0x0, 4, 1, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016E80 - 0x04016EA0 ++-const Gfx mario_low_poly_left_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016EA0 ++-static const Vtx mario_low_poly_right_arm_shared_dl_vertex[] = { ++- {{{ 65, 30, 23}, 0, { 0, 0}, {0x5e, 0xeb, 0x51, 0x00}}}, ++- {{{ 66, -21, 8}, 0, { 0, 0}, {0x45, 0xb3, 0x49, 0x00}}}, ++- {{{ 65, 11, -34}, 0, { 0, 0}, {0x40, 0xa9, 0xbf, 0x00}}}, ++- {{{ -10, 7, -41}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, ++- {{{ -9, -28, 10}, 0, { 0, 0}, {0x81, 0xfe, 0x00, 0x00}}}, ++- {{{ -10, 30, 30}, 0, { 0, 0}, {0xa4, 0x52, 0xe5, 0x00}}}, ++- {{{ -9, -28, 10}, 0, { 0, 0}, {0x09, 0x9a, 0xb6, 0x00}}}, ++- {{{ -10, 7, -41}, 0, { 0, 0}, {0x0c, 0x99, 0xb8, 0x00}}}, ++- {{{ -10, 30, 30}, 0, { 0, 0}, {0x0a, 0xdb, 0x78, 0x00}}}, ++- {{{ -9, -28, 10}, 0, { 0, 0}, {0x07, 0xd8, 0x78, 0x00}}}, ++- {{{ 65, 30, 23}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, ++- {{{ 65, 11, -34}, 0, { 0, 0}, {0xfc, 0x78, 0xd9, 0x00}}}, ++-}; ++- ++-// 0x04016F60 - 0x04016FB0 ++-const Gfx mario_low_poly_right_arm_shared_dl[] = { ++- gsSPVertex(mario_low_poly_right_arm_shared_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 2, 6, 7, 0x0, 1, 8, 9, 0x0), ++- gsSP2Triangles( 1, 0, 8, 0x0, 2, 1, 6, 0x0), ++- gsSP2Triangles( 5, 10, 11, 0x0, 5, 11, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016FB0 - 0x04016FD0 ++-const Gfx mario_low_poly_right_arm[] = { ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_right_arm_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04016FD0 ++-static const Vtx mario_low_poly_right_forearm_shared_dl_vertex[] = { ++- {{{ -13, 12, -35}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, ++- {{{ -13, -20, 6}, 0, { 0, 0}, {0x81, 0xff, 0x00, 0x00}}}, ++- {{{ -13, 30, 21}, 0, { 0, 0}, {0xa5, 0x53, 0xe5, 0x00}}}, ++- {{{ 54, 14, -31}, 0, { 0, 0}, {0x3d, 0xaa, 0xba, 0x00}}}, ++- {{{ -13, -20, 6}, 0, { 0, 0}, {0x05, 0x9e, 0xb1, 0x00}}}, ++- {{{ -13, 12, -35}, 0, { 0, 0}, {0x07, 0x9c, 0xb3, 0x00}}}, ++- {{{ 55, -16, 5}, 0, { 0, 0}, {0x43, 0xb5, 0x4c, 0x00}}}, ++- {{{ -13, 30, 21}, 0, { 0, 0}, {0x05, 0xe0, 0x7a, 0x00}}}, ++- {{{ -13, -20, 6}, 0, { 0, 0}, {0x04, 0xde, 0x7a, 0x00}}}, ++- {{{ 54, 30, 17}, 0, { 0, 0}, {0x5c, 0xed, 0x54, 0x00}}}, ++- {{{ 54, 30, 17}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, ++- {{{ 54, 14, -31}, 0, { 0, 0}, {0xfe, 0x78, 0xd8, 0x00}}}, ++-}; ++- ++-// 0x04017090 - 0x040170E0 ++-const Gfx mario_low_poly_right_forearm_shared_dl[] = { ++- gsSPVertex(mario_low_poly_right_forearm_shared_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), ++- gsSP2Triangles( 3, 6, 4, 0x0, 2, 10, 11, 0x0), ++- gsSP2Triangles( 2, 11, 0, 0x0, 9, 6, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040170E0 ++-static const Vtx mario_low_poly_right_hand_closed_dl_vertex[] = { ++- {{{ 85, -38, -32}, 0, { 0, 0}, {0x3d, 0xe3, 0x96, 0x00}}}, ++- {{{ -15, -35, -22}, 0, { 0, 0}, {0x99, 0xdc, 0xc1, 0x00}}}, ++- {{{ 17, 37, -22}, 0, { 0, 0}, {0xfe, 0x69, 0xb9, 0x00}}}, ++- {{{ 116, -10, 36}, 0, { 0, 0}, {0x66, 0x47, 0x16, 0x00}}}, ++- {{{ 82, -85, 44}, 0, { 0, 0}, {0x13, 0x8a, 0xd8, 0x00}}}, ++- {{{ -15, -35, 43}, 0, { 0, 0}, {0x9d, 0xec, 0x4c, 0x00}}}, ++- {{{ 82, -85, 44}, 0, { 0, 0}, {0x02, 0x15, 0x7d, 0x00}}}, ++- {{{ 14, 30, 26}, 0, { 0, 0}, {0xca, 0x50, 0x51, 0x00}}}, ++-}; ++- ++-// 0x04017160 - 0x040171C0 ++-const Gfx mario_low_poly_right_hand_closed_dl[] = { ++- gsSPVertex(mario_low_poly_right_hand_closed_dl_vertex, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 0, 3, 0x0, 4, 5, 1, 0x0), ++- gsSP2Triangles( 6, 3, 7, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 0, 4, 1, 0x0, 3, 2, 7, 0x0), ++- gsSP2Triangles( 1, 5, 7, 0x0, 7, 2, 1, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040171C0 - 0x040171E0 ++-const Gfx mario_low_poly_right_hand_closed[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040171E0 - 0x04017210 ++-const Gfx mario_metal_low_poly_right_hand_closed[] = { ++- gsSPDisplayList(mario_low_poly_right_hand_closed_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017210 ++-static const Vtx mario_low_poly_left_thigh_dl_vertex[] = { ++- {{{ 10, 51, 45}, 0, { 0, 0}, {0x08, 0x73, 0x34, 0x00}}}, ++- {{{ 17, -44, 58}, 0, { 0, 0}, {0x0a, 0x11, 0x7d, 0x00}}}, ++- {{{ 94, 48, 38}, 0, { 0, 0}, {0x38, 0x40, 0x5d, 0x00}}}, ++- {{{ 11, 51, -27}, 0, { 0, 0}, {0x0b, 0x5e, 0xad, 0x00}}}, ++- {{{ 95, 48, -19}, 0, { 0, 0}, {0x4a, 0x4f, 0xbf, 0x00}}}, ++- {{{ 18, -45, -38}, 0, { 0, 0}, {0x0c, 0x0f, 0x83, 0x00}}}, ++- {{{ 101, -28, -28}, 0, { 0, 0}, {0x5b, 0xca, 0xbc, 0x00}}}, ++- {{{ 100, -28, 48}, 0, { 0, 0}, {0x63, 0xbd, 0x29, 0x00}}}, ++- {{{ 17, -44, 58}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 10, 51, 45}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 18, -45, -38}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 11, 51, -27}, 0, { 0, 0}, {0x82, 0xf7, 0xff, 0x00}}}, ++- {{{ 18, -45, -38}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, ++- {{{ 17, -44, 58}, 0, { 0, 0}, {0x18, 0x84, 0x01, 0x00}}}, ++-}; ++- ++-// 0x040172F0 - 0x04017360 ++-const Gfx mario_low_poly_left_thigh_dl[] = { ++- gsSPVertex(mario_low_poly_left_thigh_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 5, 3, 4, 0x0, 4, 6, 5, 0x0), ++- gsSP2Triangles( 0, 2, 4, 0x0, 1, 7, 2, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), ++- gsSP2Triangles( 6, 4, 7, 0x0, 4, 2, 7, 0x0), ++- gsSP2Triangles(12, 7, 13, 0x0, 12, 6, 7, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017360 - 0x04017390 ++-const Gfx mario_low_poly_left_thigh[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017390 - 0x04017408 ++-const Gfx mario_metal_low_poly_left_thigh[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_left_thigh_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017408 ++-static const Vtx mario_low_poly_left_leg_shared_dl_vertex[] = { ++- {{{ 7, 47, 38}, 0, { 0, 0}, {0xcf, 0x59, 0x4b, 0x00}}}, ++- {{{ 70, -39, 53}, 0, { 0, 0}, {0xf8, 0x10, 0x7d, 0x00}}}, ++- {{{ 75, 52, 42}, 0, { 0, 0}, {0xf4, 0x5e, 0x53, 0x00}}}, ++- {{{ 75, 52, -23}, 0, { 0, 0}, {0xf5, 0x72, 0xca, 0x00}}}, ++- {{{ 7, 47, -20}, 0, { 0, 0}, {0xab, 0x34, 0xb2, 0x00}}}, ++- {{{ 71, -39, -34}, 0, { 0, 0}, {0xfa, 0x0f, 0x83, 0x00}}}, ++- {{{ 3, -29, -29}, 0, { 0, 0}, {0xbb, 0xa4, 0xcd, 0x00}}}, ++- {{{ 2, -29, 48}, 0, { 0, 0}, {0x92, 0xdb, 0x31, 0x00}}}, ++- {{{ 71, -39, -34}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 75, 52, -23}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 70, -39, 53}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 75, 52, 42}, 0, { 0, 0}, {0x7e, 0xfa, 0x01, 0x00}}}, ++- {{{ 71, -39, -34}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, ++- {{{ 70, -39, 53}, 0, { 0, 0}, {0xed, 0x83, 0x00, 0x00}}}, ++-}; ++- ++-// 0x040174E8 - 0x04017558 ++-const Gfx mario_low_poly_left_leg_shared_dl[] = { ++- gsSPVertex(mario_low_poly_left_leg_shared_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), ++- gsSP2Triangles( 3, 4, 0, 0x0, 0, 7, 1, 0x0), ++- gsSP2Triangles( 7, 4, 6, 0x0, 7, 0, 4, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), ++- gsSP2Triangles( 6, 12, 13, 0x0, 13, 7, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017558 ++-static const Vtx mario_low_poly_left_foot_shared_dl_vertex[] = { ++- {{{ 110, 11, 56}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 109, 10, -33}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -50, 69, -36}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ -49, 70, 63}, 0, { 0, 0}, {0x2b, 0x77, 0xff, 0x00}}}, ++- {{{ 74, -39, 51}, 0, { 0, 0}, {0x13, 0xb0, 0x60, 0x00}}}, ++- {{{ 110, 11, 56}, 0, { 0, 0}, {0x5b, 0xbb, 0x36, 0x00}}}, ++- {{{ -49, 70, 63}, 0, { 0, 0}, {0x00, 0xf4, 0x7e, 0x00}}}, ++- {{{ 73, -40, -25}, 0, { 0, 0}, {0x18, 0x96, 0xc0, 0x00}}}, ++- {{{ -56, 20, -30}, 0, { 0, 0}, {0xa4, 0xc5, 0xc2, 0x00}}}, ++- {{{ -50, 69, -36}, 0, { 0, 0}, {0xfe, 0xf0, 0x83, 0x00}}}, ++- {{{ -54, 20, 58}, 0, { 0, 0}, {0x99, 0xc2, 0x26, 0x00}}}, ++- {{{ 109, 10, -33}, 0, { 0, 0}, {0x44, 0xc2, 0xaa, 0x00}}}, ++- {{{ -50, 69, -36}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, ++- {{{ -49, 70, 63}, 0, { 0, 0}, {0x82, 0x0e, 0x01, 0x00}}}, ++-}; ++- ++-// 0x04017638 - 0x040176A8 ++-const Gfx mario_low_poly_left_foot_shared_dl[] = { ++- gsSPVertex(mario_low_poly_left_foot_shared_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles(10, 4, 6, 0x0, 7, 9, 11, 0x0), ++- gsSP2Triangles(12, 10, 13, 0x0, 7, 10, 8, 0x0), ++- gsSP2Triangles( 7, 11, 5, 0x0, 5, 4, 7, 0x0), ++- gsSP2Triangles( 7, 4, 10, 0x0, 12, 8, 10, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040176A8 - 0x040176C8 ++-const Gfx mario_low_poly_left_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_left_foot_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040176C8 ++-static const Vtx mario_low_poly_right_thigh_shared_dl_vertex[] = { ++- {{{ 102, -25, -48}, 0, { 0, 0}, {0x64, 0xbf, 0xd5, 0x00}}}, ++- {{{ 103, -27, 25}, 0, { 0, 0}, {0x5c, 0xc9, 0x42, 0x00}}}, ++- {{{ 25, -45, 35}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, ++- {{{ 24, -42, -56}, 0, { 0, 0}, {0x1b, 0x85, 0xfd, 0x00}}}, ++- {{{ 95, 50, -36}, 0, { 0, 0}, {0x37, 0x42, 0xa3, 0x00}}}, ++- {{{ 96, 49, 18}, 0, { 0, 0}, {0x4a, 0x4e, 0x41, 0x00}}}, ++- {{{ 25, -45, 35}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 17, 51, 27}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 15, 53, -42}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 24, -42, -56}, 0, { 0, 0}, {0x82, 0xf5, 0x02, 0x00}}}, ++- {{{ 24, -42, -56}, 0, { 0, 0}, {0x09, 0x13, 0x83, 0x00}}}, ++- {{{ 15, 53, -42}, 0, { 0, 0}, {0x07, 0x74, 0xce, 0x00}}}, ++- {{{ 25, -45, 35}, 0, { 0, 0}, {0x0d, 0x0c, 0x7d, 0x00}}}, ++- {{{ 17, 51, 27}, 0, { 0, 0}, {0x0b, 0x5c, 0x55, 0x00}}}, ++-}; ++- ++-// 0x040177A8 - 0x04017818 ++-const Gfx mario_low_poly_right_thigh_shared_dl[] = { ++- gsSPVertex(mario_low_poly_right_thigh_shared_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 0, 4, 5, 0x0, 0, 5, 1, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), ++- gsSP2Triangles( 4, 0, 10, 0x0, 5, 4, 11, 0x0), ++- gsSP2Triangles(12, 1, 5, 0x0, 5, 13, 12, 0x0), ++- gsSP2Triangles( 5, 11, 13, 0x0, 4, 10, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017818 - 0x04017838 ++-const Gfx mario_low_poly_right_thigh[] = { ++- gsSPLight(&mario_blue_lights_group.l, 1), ++- gsSPLight(&mario_blue_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017838 ++-static const Vtx mario_low_poly_right_leg_shared_dl_vertex[] = { ++- {{{ 2, -29, 27}, 0, { 0, 0}, {0xba, 0xa3, 0x31, 0x00}}}, ++- {{{ 1, -26, -50}, 0, { 0, 0}, {0x91, 0xdd, 0xcf, 0x00}}}, ++- {{{ 68, -37, -56}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, ++- {{{ 70, -40, 30}, 0, { 0, 0}, {0xec, 0x83, 0xfd, 0x00}}}, ++- {{{ 68, -37, -56}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 74, 54, -43}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 75, 52, 21}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 70, -40, 30}, 0, { 0, 0}, {0x7e, 0xf9, 0xfe, 0x00}}}, ++- {{{ 6, 47, 19}, 0, { 0, 0}, {0xad, 0x33, 0x50, 0x00}}}, ++- {{{ 6, 49, -38}, 0, { 0, 0}, {0xcf, 0x5b, 0xb7, 0x00}}}, ++- {{{ 68, -37, -56}, 0, { 0, 0}, {0xf8, 0x13, 0x83, 0x00}}}, ++- {{{ 75, 52, 21}, 0, { 0, 0}, {0xf7, 0x71, 0x38, 0x00}}}, ++- {{{ 70, -40, 30}, 0, { 0, 0}, {0xfb, 0x0c, 0x7e, 0x00}}}, ++- {{{ 74, 54, -43}, 0, { 0, 0}, {0xf4, 0x60, 0xaf, 0x00}}}, ++-}; ++- ++-// 0x04017918 - 0x04017988 ++-const Gfx mario_low_poly_right_leg_shared_dl[] = { ++- gsSPVertex(mario_low_poly_right_leg_shared_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), ++- gsSP2Triangles( 8, 9, 1, 0x0, 0, 8, 1, 0x0), ++- gsSP2Triangles(10, 1, 9, 0x0, 9, 8, 11, 0x0), ++- gsSP2Triangles( 8, 0, 12, 0x0, 12, 11, 8, 0x0), ++- gsSP2Triangles(11, 13, 9, 0x0, 13, 10, 9, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017988 ++-static const Vtx mario_low_poly_right_foot_dl_vertex[] = { ++- {{{ -55, 19, -59}, 0, { 0, 0}, {0x9a, 0xc0, 0xda, 0x00}}}, ++- {{{ -57, 20, 28}, 0, { 0, 0}, {0xa4, 0xc5, 0x3e, 0x00}}}, ++- {{{ -52, 69, 34}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, ++- {{{ 73, -38, -50}, 0, { 0, 0}, {0x15, 0xae, 0xa2, 0x00}}}, ++- {{{ 71, -37, 25}, 0, { 0, 0}, {0x19, 0x98, 0x42, 0x00}}}, ++- {{{ 108, 12, -55}, 0, { 0, 0}, {0x5c, 0xbc, 0xcc, 0x00}}}, ++- {{{ 106, 13, 33}, 0, { 0, 0}, {0x44, 0xc5, 0x58, 0x00}}}, ++- {{{ -50, 68, -65}, 0, { 0, 0}, {0x82, 0x0c, 0xfd, 0x00}}}, ++- {{{ -52, 69, 34}, 0, { 0, 0}, {0xfd, 0xf2, 0x7e, 0x00}}}, ++- {{{ -50, 68, -65}, 0, { 0, 0}, {0x02, 0xf2, 0x82, 0x00}}}, ++- {{{ -52, 69, 34}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 108, 12, -55}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ -50, 68, -65}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++- {{{ 106, 13, 33}, 0, { 0, 0}, {0x29, 0x77, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04017A68 - 0x04017AD8 ++-const Gfx mario_low_poly_right_foot_dl[] = { ++- gsSPVertex(mario_low_poly_right_foot_dl_vertex, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), ++- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 4, 0x0), ++- gsSP2Triangles( 1, 0, 4, 0x0, 7, 0, 2, 0x0), ++- gsSP2Triangles( 6, 8, 4, 0x0, 9, 3, 0, 0x0), ++- gsSP2Triangles( 8, 1, 4, 0x0, 9, 5, 3, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017AD8 - 0x04017B18 ++-const Gfx mario_low_poly_right_foot[] = { ++- gsSPLight(&mario_brown1_lights_group.l, 1), ++- gsSPLight(&mario_brown1_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_right_foot_dl), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017B18 - 0x04017B58 ++-const Gfx mario_metal_low_poly_right_foot[] = { ++- gsSPDisplayList(mario_low_poly_right_foot_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPSetEnvColor(255, 255, 255, 255), ++- gsDPSetAlphaCompare(G_AC_NONE), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017B58 ++-static const Vtx mario_seg4_vertex_04017B58[] = { ++- {{{ -28, 41, -88}, 0, { -396, 1646}, {0xb7, 0x31, 0xa5, 0xff}}}, ++- {{{ 0, 98, 0}, 0, { 1968, 722}, {0xf0, 0x7d, 0x00, 0xff}}}, ++- {{{ 35, 64, -82}, 0, { -390, 132}, {0x29, 0x4b, 0xa3, 0xff}}}, ++- {{{ 39, 90, 0}, 0, { 1698, -280}, {0x4a, 0x67, 0x00, 0xff}}}, ++- {{{ -28, 41, 89}, 0, { 1610, 1512}, {0xd1, 0x37, 0x67, 0xff}}}, ++- {{{ 35, 64, 83}, 0, { 1070, -68}, {0x29, 0x4b, 0x5d, 0xff}}}, ++- {{{ 0, 98, 0}, 0, { -1064, 968}, {0xf0, 0x7d, 0x00, 0xff}}}, ++- {{{ 39, 90, 0}, 0, { -1146, -124}, {0x4a, 0x67, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04017BD8 ++-static const Vtx mario_seg4_vertex_04017BD8[] = { ++- {{{ -28, -71, 81}, 0, { 0, 0}, {0x9a, 0xbd, 0x20, 0xff}}}, ++- {{{ -28, 41, -88}, 0, { 0, 0}, {0xb7, 0x31, 0xa5, 0xff}}}, ++- {{{ -28, -71, -80}, 0, { 0, 0}, {0xb7, 0xb5, 0xba, 0xff}}}, ++- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, ++- {{{ -28, 41, 89}, 0, { 0, 0}, {0xd1, 0x37, 0x67, 0xff}}}, ++- {{{ -28, 89, 0}, 0, { 0, 0}, {0x97, 0x46, 0x00, 0xff}}}, ++- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, ++- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, ++- {{{ 0, 98, 0}, 0, { 0, 0}, {0xf0, 0x7d, 0x00, 0xff}}}, ++- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, ++- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, ++- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, ++- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, ++- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, ++- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, ++-}; ++- ++-// 0x04017CC8 ++-static const Vtx mario_seg4_vertex_04017CC8[] = { ++- {{{ 74, 26, 60}, 0, { 0, 0}, {0x61, 0x25, 0x47, 0xff}}}, ++- {{{ 87, 42, 0}, 0, { 0, 0}, {0x76, 0x2d, 0x00, 0xff}}}, ++- {{{ 39, 90, 0}, 0, { 0, 0}, {0x4a, 0x67, 0x00, 0xff}}}, ++- {{{ 39, -79, -73}, 0, { 0, 0}, {0x27, 0xb3, 0xa4, 0xff}}}, ++- {{{ 35, 64, -82}, 0, { 0, 0}, {0x29, 0x4b, 0xa3, 0xff}}}, ++- {{{ 74, 26, -59}, 0, { 0, 0}, {0x61, 0x25, 0xb9, 0xff}}}, ++- {{{ 89, -45, -42}, 0, { 0, 0}, {0x70, 0xd0, 0xdf, 0xff}}}, ++- {{{ 39, -79, 74}, 0, { 0, 0}, {0x37, 0xba, 0x59, 0xff}}}, ++- {{{ 89, -45, 43}, 0, { 0, 0}, {0x75, 0xe4, 0x28, 0xff}}}, ++- {{{ 35, 64, 83}, 0, { 0, 0}, {0x29, 0x4b, 0x5d, 0xff}}}, ++-}; ++- ++-// 0x04017D68 - 0x04017D98 ++-const Gfx mario_low_poly_yellow_button_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04017B58, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017D98 - 0x04017E20 ++-const Gfx mario_low_poly_pants_overalls_shared_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04017BD8, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 0, 4, 5, 0x0, 3, 6, 0, 0x0), ++- gsSP2Triangles( 4, 0, 6, 0x0, 0, 5, 1, 0x0), ++- gsSP2Triangles( 7, 4, 6, 0x0, 5, 4, 8, 0x0), ++- gsSP2Triangles( 8, 1, 5, 0x0, 3, 1, 9, 0x0), ++- gsSP2Triangles( 3, 2, 1, 0x0, 6, 3, 10, 0x0), ++- gsSP2Triangles(10, 11, 6, 0x0, 12, 9, 13, 0x0), ++- gsSP1Triangle(13, 7, 14, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017E20 - 0x04017E78 ++-const Gfx mario_low_poly_tshirt_shared_dl[] = { ++- gsSPVertex(mario_seg4_vertex_04017CC8, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 5, 6, 3, 0x0, 2, 1, 5, 0x0), ++- gsSP2Triangles( 6, 5, 1, 0x0, 7, 8, 0, 0x0), ++- gsSP2Triangles( 7, 0, 9, 0x0, 8, 6, 1, 0x0), ++- gsSP1Triangle( 1, 0, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017E78 - 0x04017EA0 ++-const Gfx mario_low_poly_torso_dl[] = { ++- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017EA0 - 0x04017F20 ++-const Gfx mario_low_poly_torso[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_yellow_button), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_yellow_button_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_torso_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017F20 - 0x04017F40 ++-const Gfx mario_metal_low_poly_torso[] = { ++- gsSPDisplayList(mario_low_poly_yellow_button_dl), ++- gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), ++- gsSPDisplayList(mario_low_poly_tshirt_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04017F40 ++-static const Vtx mario_low_poly_mario_m_logo_dl_vertex[] = { ++- {{{ 272, 48, 53}, 0, { 904, 0}, {0x42, 0x51, 0x47, 0xff}}}, ++- {{{ 174, 79, -9}, 0, { 452, 816}, {0x51, 0x61, 0xfa, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 1238, 962}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ 272, 48, -52}, 0, { -2, 0}, {0x62, 0x27, 0xba, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { -334, 962}, {0x03, 0x39, 0x8f, 0xff}}}, ++-}; ++- ++-// 0x04017F90 ++-static const Vtx mario_low_poly_eyes_cap_on_dl_vertex[] = { ++- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ 168, 79, 0}, 0, { 458, 68}, {0xd9, 0x78, 0x00, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { -398, 212}, {0x03, 0x39, 0x8f, 0xff}}}, ++-}; ++- ++-// 0x04017FE0 ++-static const Vtx mario_low_poly_mustache_cap_on_dl_vertex[] = { ++- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x03, 0x39, 0x8f, 0xff}}}, ++- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, ++- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, ++-}; ++- ++-// 0x04018080 ++-static const Vtx mario_low_poly_face_cap_dl_vertex[] = { ++- {{{ 272, 48, -52}, 0, { 0, 0}, {0x62, 0x27, 0xba, 0xff}}}, ++- {{{ 272, 48, 53}, 0, { 0, 0}, {0x42, 0x51, 0x47, 0xff}}}, ++- {{{ 149, -87, 138}, 0, { 0, 0}, {0x43, 0xb6, 0x4d, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, ++- {{{ 149, -87, -137}, 0, { 0, 0}, {0x33, 0xc2, 0x9f, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, ++- {{{ 98, -165, 0}, 0, { 0, 0}, {0xfd, 0x82, 0x00, 0xff}}}, ++- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, ++- {{{ 168, 79, 0}, 0, { 0, 0}, {0xd9, 0x78, 0x00, 0xff}}}, ++- {{{ 175, 154, 0}, 0, { 0, 0}, {0xe1, 0x6c, 0xc6, 0xff}}}, ++- {{{ 174, 79, -9}, 0, { 0, 0}, {0x51, 0x61, 0xfa, 0xff}}}, ++-}; ++- ++-// 0x04018140 ++-static const Vtx mario_low_poly_face_part_cap_on_dl_vertex[] = { ++- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, ++- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, ++- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, ++- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, ++- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, ++- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, ++-}; ++- ++-// 0x04018210 ++-static const Vtx mario_low_poly_face_back_hair_cap_on_dl_vertex[] = { ++- {{{ 58, -114, 81}, 0, { 0, 0}, {0xba, 0xad, 0x40, 0xff}}}, ++- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, ++- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, ++- {{{ 58, -114, -80}, 0, { 0, 0}, {0xbc, 0xb8, 0xb2, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 0, 0}, {0x03, 0x3a, 0x70, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 0, 0}, {0x03, 0x39, 0x8f, 0xff}}}, ++-}; ++- ++-// 0x04018270 - 0x04018298 ++-const Gfx mario_low_poly_mario_m_logo_dl[] = { ++- gsSPVertex(mario_low_poly_mario_m_logo_dl_vertex, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP1Triangle( 3, 1, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018298 - 0x040182C0 ++-const Gfx mario_low_poly_eyes_cap_on_dl[] = { ++- gsSPVertex(mario_low_poly_eyes_cap_on_dl_vertex, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), ++- gsSP1Triangle( 3, 2, 1, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040182C0 - 0x04018300 ++-const Gfx mario_low_poly_mustache_cap_on_dl[] = { ++- gsSPVertex(mario_low_poly_mustache_cap_on_dl_vertex, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 7, 8, 5, 0x0, 6, 9, 7, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018300 - 0x04018370 ++-const Gfx mario_low_poly_face_part_cap_on_dl[] = { ++- gsSPVertex(mario_low_poly_face_part_cap_on_dl_vertex, 13, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 5, 0x0), ++- gsSP2Triangles( 4, 1, 0, 0x0, 4, 0, 3, 0x0), ++- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 6, 8, 0x0, 8, 7, 10, 0x0), ++- gsSP2Triangles(10, 7, 11, 0x0, 10, 11, 12, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018370 - 0x040183F0 ++-const Gfx mario_low_poly_face_cap_dl[] = { ++- gsSPVertex(mario_low_poly_face_cap_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), ++- gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0), ++- gsSP2Triangles( 6, 2, 5, 0x0, 6, 7, 2, 0x0), ++- gsSP2Triangles( 7, 4, 2, 0x0, 3, 4, 8, 0x0), ++- gsSP2Triangles( 4, 7, 8, 0x0, 9, 10, 3, 0x0), ++- gsSP2Triangles(10, 11, 3, 0x0, 8, 7, 6, 0x0), ++- gsSP2Triangles(10, 5, 11, 0x0, 10, 9, 5, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040183F0 - 0x04018420 ++-const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { ++- gsSPVertex(mario_low_poly_face_back_hair_cap_on_dl_vertex, 6, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 1, 0, 0x0, 3, 2, 5, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018420 - 0x04018460 ++-const Gfx mario_low_poly_face_cap_on_dl[] = { ++- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_face_cap_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018460 - 0x04018530 ++-const Gfx mario_low_poly_cap_on_eyes_front[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018530 - 0x04018600 ++-const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018600 - 0x040186D0 ++-const Gfx mario_low_poly_cap_on_eyes_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040186D0 - 0x040187A0 ++-const Gfx mario_low_poly_cap_on_eyes_right[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040187A0 - 0x04018870 ++-const Gfx mario_low_poly_cap_on_eyes_left[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018870 - 0x04018940 ++-const Gfx mario_low_poly_cap_on_eyes_up[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018940 - 0x04018A10 ++-const Gfx mario_low_poly_cap_on_eyes_down[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018A10 - 0x04018AE0 ++-const Gfx mario_low_poly_cap_on_eyes_dead[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018AE0 - 0x04018B18 ++-const Gfx mario_metal_low_poly_cap_on[] = { ++- gsSPDisplayList(mario_low_poly_mario_m_logo_dl), ++- gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), ++- gsSPDisplayList(mario_low_poly_mustache_cap_on_dl), ++- gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), ++- gsSPDisplayList(mario_low_poly_face_cap_dl), ++- gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018B18 ++-static const Vtx mario_low_poly_mario_eyes_cap_off_dl_vertex[] = { ++- {{{ 146, 27, 92}, 0, { 1316, 212}, {0x16, 0x25, 0x77, 0xff}}}, ++- {{{ 168, 79, 0}, 0, { 458, 68}, {0x27, 0x78, 0x00, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 762, 990}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 88, 101, -32}, 0, { 154, 990}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { -398, 212}, {0x14, 0x26, 0x89, 0xff}}}, ++-}; ++- ++-// 0x04018B68 ++-static const Vtx mario_low_poly_mustache_cap_off_dl_vertex[] = { ++- {{{ 34, 39, -98}, 0, { 1306, 732}, {0xcd, 0x40, 0xa0, 0xff}}}, ++- {{{ 44, 113, 0}, 0, { 10, 800}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ 88, 101, -32}, 0, { 398, 214}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 300, 1456}, {0x88, 0x28, 0x00, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 1408, -550}, {0x14, 0x26, 0x89, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 294, 258}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 44, 113, 0}, 0, { 34, 840}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ 34, 39, 99}, 0, { 1314, 634}, {0xcd, 0x40, 0x60, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 470, 1412}, {0x88, 0x28, 0x00, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 1132, -556}, {0x16, 0x25, 0x77, 0xff}}}, ++-}; ++- ++-// 0x04018C08 ++-static const Vtx mario_low_poly_face_part_cap_off_dl_vertex[] = { ++- {{{ 44, 113, 0}, 0, { 0, 0}, {0x9c, 0x4d, 0x00, 0xff}}}, ++- {{{ 94, 146, -32}, 0, { 0, 0}, {0x3b, 0x35, 0x9e, 0xff}}}, ++- {{{ 88, 101, -32}, 0, { 0, 0}, {0x1e, 0x5d, 0xb1, 0xff}}}, ++- {{{ 50, 153, 0}, 0, { 0, 0}, {0xad, 0x5f, 0x00, 0xff}}}, ++- {{{ 88, 101, 33}, 0, { 0, 0}, {0x38, 0x55, 0x4b, 0xff}}}, ++- {{{ 94, 146, 33}, 0, { 0, 0}, {0xff, 0x44, 0x6b, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, ++- {{{ 34, 39, 99}, 0, { 0, 0}, {0xcd, 0x40, 0x60, 0xff}}}, ++- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, ++- {{{ -5, 58, 0}, 0, { 0, 0}, {0x88, 0x28, 0x00, 0xff}}}, ++- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, ++- {{{ 34, 39, -98}, 0, { 0, 0}, {0xcd, 0x40, 0xa0, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, ++-}; ++- ++-// 0x04018CD8 ++-static const Vtx mario_low_poly_face_hair_cap_off_dl_vertex[] = { ++- {{{ 58, -114, 81}, 0, { 0, 0}, {0xd3, 0x9b, 0x3d, 0xff}}}, ++- {{{ 7, -85, 79}, 0, { 0, 0}, {0xaa, 0xdc, 0x54, 0xff}}}, ++- {{{ 7, -85, -78}, 0, { 0, 0}, {0xa9, 0xc7, 0xb9, 0xff}}}, ++- {{{ 146, 27, 92}, 0, { 0, 0}, {0x16, 0x25, 0x77, 0xff}}}, ++- {{{ 167, -121, 77}, 0, { 0, 0}, {0x3c, 0xad, 0x4a, 0xff}}}, ++- {{{ 58, -114, -80}, 0, { 0, 0}, {0xd8, 0xa3, 0xb5, 0xff}}}, ++- {{{ 90, -136, 0}, 0, { 0, 0}, {0xf0, 0x83, 0x00, 0xff}}}, ++- {{{ 146, 27, -91}, 0, { 0, 0}, {0x14, 0x26, 0x89, 0xff}}}, ++- {{{ 167, -121, -81}, 0, { 0, 0}, {0x3a, 0xad, 0xb5, 0xff}}}, ++- {{{ 218, 48, -52}, 0, { 0, 0}, {0x5f, 0x3b, 0xc6, 0xff}}}, ++- {{{ 168, 79, 0}, 0, { 0, 0}, {0x27, 0x78, 0x00, 0xff}}}, ++- {{{ 192, -28, -80}, 0, { 0, 0}, {0x55, 0xf7, 0xa3, 0xff}}}, ++- {{{ 223, -38, -1}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}}, ++- {{{ 218, 48, 53}, 0, { 0, 0}, {0x60, 0x39, 0x3a, 0xff}}}, ++- {{{ 192, -28, 78}, 0, { 0, 0}, {0x56, 0xf4, 0x5c, 0xff}}}, ++-}; ++- ++-// 0x04018DC8 - 0x04018DF0 ++-const Gfx mario_low_poly_mario_eyes_cap_off_dl[] = { ++- gsSPVertex(mario_low_poly_mario_eyes_cap_off_dl_vertex, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), ++- gsSP1Triangle( 3, 2, 1, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018DF0 - 0x04018E30 ++-const Gfx mario_low_poly_mustache_cap_off_dl[] = { ++- gsSPVertex(mario_low_poly_mustache_cap_off_dl_vertex, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 2, 4, 0, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 6, 8, 7, 0x0, 7, 9, 5, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018E30 - 0x04018EA0 ++-const Gfx mario_low_poly_face_part_cap_off_dl[] = { ++- gsSPVertex(mario_low_poly_face_part_cap_off_dl_vertex, 13, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 5, 0, 0x0, 5, 3, 0, 0x0), ++- gsSP2Triangles( 1, 3, 5, 0x0, 2, 1, 4, 0x0), ++- gsSP2Triangles( 1, 5, 4, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 7, 9, 8, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles(10, 9, 11, 0x0, 10, 11, 12, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018EA0 - 0x04018F68 ++-const Gfx mario_low_poly_face_hair_cap_off_dl[] = { ++- gsSPVertex(mario_low_poly_face_hair_cap_off_dl_vertex, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), ++- gsSP2Triangles( 5, 6, 0, 0x0, 0, 6, 4, 0x0), ++- gsSP2Triangles( 5, 2, 7, 0x0, 7, 8, 5, 0x0), ++- gsSP2Triangles( 8, 6, 5, 0x0, 9, 7, 10, 0x0), ++- gsSP2Triangles( 7, 9, 11, 0x0, 7, 11, 8, 0x0), ++- gsSP2Triangles( 6, 8, 4, 0x0, 8, 11, 12, 0x0), ++- gsSP2Triangles( 4, 8, 12, 0x0, 11, 9, 12, 0x0), ++- gsSP2Triangles(13, 14, 12, 0x0, 14, 4, 12, 0x0), ++- gsSP2Triangles( 4, 14, 3, 0x0, 13, 10, 3, 0x0), ++- gsSP2Triangles(14, 13, 3, 0x0, 9, 10, 13, 0x0), ++- gsSP1Triangle( 9, 13, 12, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018F68 - 0x04018F90 ++-const Gfx mario_low_poly_face_cap_off_dl[] = { ++- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04018F90 - 0x04019040 ++-const Gfx mario_low_poly_cap_off_eyes_front[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019040 - 0x040190F0 ++-const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040190F0 - 0x040191A0 ++-const Gfx mario_low_poly_cap_off_eyes_closed[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040191A0 - 0x04019250 ++-const Gfx mario_low_poly_cap_off_eyes_right[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019250 - 0x04019300 ++-const Gfx mario_low_poly_cap_off_eyes_left[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019300 - 0x040193B0 ++-const Gfx mario_low_poly_cap_off_eyes_up[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x040193B0 - 0x04019460 ++-const Gfx mario_low_poly_cap_off_eyes_down[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019460 - 0x04019510 ++-const Gfx mario_low_poly_cap_off_eyes_dead[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_beige_lights_group.l, 1), ++- gsSPLight(&mario_beige_lights_group.a, 2), ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_low_poly_face_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019510 - 0x04019538 ++-const Gfx mario_metal_low_poly_cap_off[] = { ++- gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), ++- gsSPDisplayList(mario_low_poly_mustache_cap_off_dl), ++- gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), ++- gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019538 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group1[] = { ++- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, ++- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, ++- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, ++- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, ++- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, ++- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, ++- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, ++- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, ++- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, ++- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, ++- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, ++- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, ++-}; ++- ++-// 0x04019618 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group2[] = { ++- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, ++- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, ++- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, ++- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, ++- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, ++- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, ++- {{{ 20, -46, 12}, 0, { 0, 0}, {0x26, 0x9e, 0x45, 0x00}}}, ++- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, ++- {{{ -17, 40, -8}, 0, { 0, 0}, {0xbc, 0x68, 0x16, 0x00}}}, ++- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, ++- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, ++- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, ++- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, ++- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, ++-}; ++- ++-// 0x04019718 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group3[] = { ++- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, ++- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, ++- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, ++- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, ++- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, ++- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, ++- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, ++- {{{ 141, 34, -7}, 0, { 0, 0}, {0x77, 0x0c, 0x29, 0x00}}}, ++- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, ++- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, ++- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, ++- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, ++- {{{ 121, 73, -21}, 0, { 0, 0}, {0x47, 0x60, 0x2b, 0x00}}}, ++- {{{ 119, 70, -42}, 0, { 0, 0}, {0x3d, 0x44, 0xa9, 0x00}}}, ++-}; ++- ++-// 0x04019818 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group4[] = { ++- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, ++- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, ++- {{{ 26, 41, -41}, 0, { 0, 0}, {0x05, 0x34, 0x8d, 0x00}}}, ++- {{{ 78, 59, -34}, 0, { 0, 0}, {0xfe, 0x0b, 0x82, 0x00}}}, ++- {{{ 69, 10, -36}, 0, { 0, 0}, {0x35, 0x1c, 0x91, 0x00}}}, ++- {{{ 89, -47, -37}, 0, { 0, 0}, {0x56, 0xaa, 0xdf, 0x00}}}, ++- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, ++- {{{ 76, -18, -48}, 0, { 0, 0}, {0x27, 0x0a, 0x88, 0x00}}}, ++- {{{ 45, -34, 10}, 0, { 0, 0}, {0xfe, 0x9a, 0x4a, 0x00}}}, ++- {{{ 89, -6, -27}, 0, { 0, 0}, {0x5c, 0xf5, 0xab, 0x00}}}, ++- {{{ 83, -17, 10}, 0, { 0, 0}, {0x4d, 0xbd, 0x4a, 0x00}}}, ++- {{{ 70, 89, -20}, 0, { 0, 0}, {0xec, 0x7c, 0xf6, 0x00}}}, ++- {{{ 6, 53, -9}, 0, { 0, 0}, {0xaf, 0x61, 0x00, 0x00}}}, ++- {{{ 133, 28, -40}, 0, { 0, 0}, {0x45, 0xc9, 0xa6, 0x00}}}, ++- {{{ 77, 41, 21}, 0, { 0, 0}, {0x1d, 0x2a, 0x74, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++-}; ++- ++-// 0x04019918 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group5[] = { ++- {{{ 6, -38, 7}, 0, { 0, 0}, {0xae, 0xab, 0x2b, 0x00}}}, ++- {{{ 1, -33, -23}, 0, { 0, 0}, {0x9c, 0xbb, 0xe0, 0x00}}}, ++- {{{ 13, -39, -31}, 0, { 0, 0}, {0x18, 0x9a, 0xba, 0x00}}}, ++- {{{ -15, 4, -32}, 0, { 0, 0}, {0x89, 0xdd, 0xe7, 0x00}}}, ++- {{{ -10, 14, -43}, 0, { 0, 0}, {0xd3, 0x19, 0x8d, 0x00}}}, ++- {{{ -20, 22, -7}, 0, { 0, 0}, {0x83, 0x06, 0x14, 0x00}}}, ++- {{{ -6, -3, 17}, 0, { 0, 0}, {0x90, 0xda, 0x2d, 0x00}}}, ++- {{{ 2, 3, 26}, 0, { 0, 0}, {0xf5, 0x17, 0x7c, 0x00}}}, ++- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, ++- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, ++- {{{ 1, 15, -37}, 0, { 0, 0}, {0xd2, 0x09, 0x8b, 0x00}}}, ++- {{{ -3, 35, -9}, 0, { 0, 0}, {0xcd, 0x72, 0x13, 0x00}}}, ++- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++- {{{ 11, 29, -52}, 0, { 0, 0}, {0xba, 0x2a, 0xa0, 0x00}}}, ++- {{{ 25, -1, -44}, 0, { 0, 0}, {0xe4, 0xe0, 0x89, 0x00}}}, ++-}; ++- ++-// 0x04019A18 ++-static const Vtx mario_left_hand_open_shared_dl_vertex_group6[] = { ++- {{{ 26, -32, 6}, 0, { 0, 0}, {0x34, 0xa6, 0x47, 0x00}}}, ++- {{{ 20, -27, -27}, 0, { 0, 0}, {0x09, 0xbf, 0x94, 0x00}}}, ++- {{{ 41, -37, -36}, 0, { 0, 0}, {0xd8, 0x9b, 0xbf, 0x00}}}, ++- {{{ 26, 16, 28}, 0, { 0, 0}, {0xda, 0x0c, 0x78, 0x00}}}, ++- {{{ 11, 5, 17}, 0, { 0, 0}, {0xff, 0x1b, 0x7c, 0x00}}}, ++-}; ++- ++-// 0x04019A68 - 0x04019CA0 ++-const Gfx mario_left_hand_open_shared_dl[] = { ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group1, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 6, 3, 7, 0x0), ++- gsSP2Triangles( 1, 0, 5, 0x0, 5, 4, 1, 0x0), ++- gsSP2Triangles( 5, 3, 6, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles( 8, 11, 9, 0x0, 12, 13, 11, 0x0), ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 0, 10, 7, 0x0, 11, 10, 0, 0x0), ++- gsSP2Triangles(12, 13, 11, 0x0, 9, 8, 13, 0x0), ++- gsSP2Triangles( 7, 5, 8, 0x0, 10, 14, 7, 0x0), ++- gsSP2Triangles(11, 14, 10, 0x0, 13, 4, 11, 0x0), ++- gsSP2Triangles( 8, 5, 13, 0x0, 3, 15, 1, 0x0), ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 1, 9, 10, 0x0, 5, 11, 1, 0x0), ++- gsSP2Triangles(12, 13, 5, 0x0, 14, 9, 15, 0x0), ++- gsSP1Triangle( 4, 7, 12, 0x0), ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 7, 0, 2, 0x0), ++- gsSP2Triangles( 8, 6, 5, 0x0, 5, 9, 10, 0x0), ++- gsSP2Triangles(11, 3, 2, 0x0, 2, 12, 11, 0x0), ++- gsSP2Triangles( 3, 13, 9, 0x0, 6, 0, 7, 0x0), ++- gsSP2Triangles( 7, 4, 9, 0x0, 10, 14, 15, 0x0), ++- gsSP1Triangle(15, 14, 11, 0x0), ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group5, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 7, 6, 0, 0x0, 2, 8, 9, 0x0), ++- gsSP2Triangles( 4, 10, 8, 0x0, 11, 10, 4, 0x0), ++- gsSP2Triangles( 7, 12, 11, 0x0, 9, 12, 7, 0x0), ++- gsSP2Triangles( 6, 3, 1, 0x0, 6, 5, 3, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 14, 10, 11, 0x0), ++- gsSP2Triangles( 8, 10, 15, 0x0, 10, 14, 15, 0x0), ++- gsSPVertex(mario_left_hand_open_shared_dl_vertex_group6, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019CA0 - 0x04019CC0 ++-const Gfx mario_left_hand_open[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_left_hand_open_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x04019CC0 ++-static const Vtx mario_right_hand_open_dl_vertex_group1[] = { ++- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, ++- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, ++- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, ++- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, ++- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, ++- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, ++- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, ++- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, ++- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, ++- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, ++- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, ++- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, ++-}; ++- ++-// 0x04019DA0 ++-static const Vtx mario_right_hand_open_dl_vertex_group2[] = { ++- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, ++- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, ++- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, ++- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, ++- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, ++- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, ++- {{{ 25, -46, -9}, 0, { 0, 0}, {0x21, 0x97, 0xc1, 0x00}}}, ++- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, ++- {{{ -9, 41, 5}, 0, { 0, 0}, {0xbc, 0x66, 0xe5, 0x00}}}, ++- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, ++- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, ++- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, ++- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, ++- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, ++-}; ++- ++-// 0x04019EA0 ++-static const Vtx mario_right_hand_open_dl_vertex_group3[] = { ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, ++- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, ++- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, ++- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, ++- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, ++- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, ++- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, ++- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, ++- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, ++- {{{ 143, 31, -1}, 0, { 0, 0}, {0x75, 0x06, 0xd2, 0x00}}}, ++- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, ++- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, ++- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, ++- {{{ 124, 69, 30}, 0, { 0, 0}, {0x44, 0x49, 0x4d, 0x00}}}, ++- {{{ 125, 71, 9}, 0, { 0, 0}, {0x47, 0x5a, 0xcb, 0x00}}}, ++-}; ++- ++-// 0x04019FA0 ++-static const Vtx mario_right_hand_open_dl_vertex_group4[] = { ++- {{{ 34, 43, 36}, 0, { 0, 0}, {0x0c, 0x3d, 0x6e, 0x00}}}, ++- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, ++- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, ++- {{{ 75, 11, 32}, 0, { 0, 0}, {0x3c, 0x23, 0x69, 0x00}}}, ++- {{{ 84, 59, 25}, 0, { 0, 0}, {0x04, 0x15, 0x7c, 0x00}}}, ++- {{{ 81, -15, 45}, 0, { 0, 0}, {0x2f, 0x13, 0x74, 0x00}}}, ++- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, ++- {{{ 93, -45, 36}, 0, { 0, 0}, {0x57, 0xac, 0x23, 0x00}}}, ++- {{{ 48, -35, -9}, 0, { 0, 0}, {0xf7, 0x94, 0xbe, 0x00}}}, ++- {{{ 86, -19, -13}, 0, { 0, 0}, {0x49, 0xb6, 0xb8, 0x00}}}, ++- {{{ 93, -5, 22}, 0, { 0, 0}, {0x61, 0xfa, 0x50, 0x00}}}, ++- {{{ 76, 88, 9}, 0, { 0, 0}, {0xef, 0x7d, 0x00, 0x00}}}, ++- {{{ 13, 53, 5}, 0, { 0, 0}, {0xb0, 0x62, 0xfc, 0x00}}}, ++- {{{ 136, 28, 31}, 0, { 0, 0}, {0x4a, 0xcf, 0x5a, 0x00}}}, ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++- {{{ 81, 37, -28}, 0, { 0, 0}, {0x18, 0x20, 0x88, 0x00}}}, ++-}; ++- ++-// 0x0401A0A0 ++-static const Vtx mario_right_hand_open_dl_vertex_group5[] = { ++- {{{ 19, -36, 33}, 0, { 0, 0}, {0x1a, 0xa0, 0x4d, 0x00}}}, ++- {{{ 7, -30, 26}, 0, { 0, 0}, {0x9b, 0xc0, 0x29, 0x00}}}, ++- {{{ 11, -38, -3}, 0, { 0, 0}, {0xa9, 0xaa, 0xe0, 0x00}}}, ++- {{{ -1, 18, 42}, 0, { 0, 0}, {0xd9, 0x23, 0x73, 0x00}}}, ++- {{{ -7, 7, 32}, 0, { 0, 0}, {0x8a, 0xe2, 0x20, 0x00}}}, ++- {{{ -12, 23, 6}, 0, { 0, 0}, {0x83, 0x07, 0xf1, 0x00}}}, ++- {{{ 7, 1, -26}, 0, { 0, 0}, {0xee, 0x0d, 0x84, 0x00}}}, ++- {{{ 0, -4, -15}, 0, { 0, 0}, {0x8d, 0xda, 0xdc, 0x00}}}, ++- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, ++- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, ++- {{{ 9, 18, 35}, 0, { 0, 0}, {0xd8, 0x13, 0x76, 0x00}}}, ++- {{{ 3, 36, 6}, 0, { 0, 0}, {0xce, 0x71, 0xe6, 0x00}}}, ++- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++- {{{ 20, 33, 48}, 0, { 0, 0}, {0xbf, 0x32, 0x60, 0x00}}}, ++- {{{ 32, 2, 43}, 0, { 0, 0}, {0xe9, 0xeb, 0x7a, 0x00}}}, ++-}; ++- ++-// 0x0401A1A0 ++-static const Vtx mario_right_hand_open_dl_vertex_group6[] = { ++- {{{ 46, -35, 37}, 0, { 0, 0}, {0xd8, 0xa2, 0x4a, 0x00}}}, ++- {{{ 26, -24, 28}, 0, { 0, 0}, {0x0d, 0xc8, 0x70, 0x00}}}, ++- {{{ 30, -32, -4}, 0, { 0, 0}, {0x2f, 0x9f, 0xbe, 0x00}}}, ++- {{{ 16, 4, -17}, 0, { 0, 0}, {0xf9, 0x11, 0x83, 0x00}}}, ++- {{{ 30, 13, -30}, 0, { 0, 0}, {0xd3, 0x03, 0x8a, 0x00}}}, ++-}; ++- ++-// 0x0401A1F0 - 0x0401A428 ++-const Gfx mario_right_hand_open_dl[] = { ++- gsSPVertex(mario_right_hand_open_dl_vertex_group1, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 4, 0x0), ++- gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0), ++- gsSP2Triangles( 4, 3, 5, 0x0, 8, 9, 10, 0x0), ++- gsSP2Triangles( 9, 11, 10, 0x0, 11, 12, 13, 0x0), ++- gsSPVertex(mario_right_hand_open_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 9, 10, 2, 0x0, 2, 10, 11, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 12, 8, 7, 0x0), ++- gsSP2Triangles( 8, 5, 9, 0x0, 9, 14, 10, 0x0), ++- gsSP2Triangles(10, 14, 11, 0x0, 11, 6, 12, 0x0), ++- gsSP2Triangles(12, 5, 8, 0x0, 1, 15, 3, 0x0), ++- gsSPVertex(mario_right_hand_open_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 10, 1, 0x0, 1, 11, 4, 0x0), ++- gsSP2Triangles( 4, 12, 13, 0x0, 14, 10, 15, 0x0), ++- gsSP1Triangle(13, 7, 5, 0x0), ++- gsSPVertex(mario_right_hand_open_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 5, 0x0), ++- gsSP2Triangles( 7, 6, 8, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles( 0, 4, 11, 0x0, 11, 12, 0, 0x0), ++- gsSP2Triangles(10, 13, 4, 0x0, 5, 2, 6, 0x0), ++- gsSP2Triangles(10, 3, 5, 0x0, 14, 15, 9, 0x0), ++- gsSP1Triangle(11, 15, 14, 0x0), ++- gsSPVertex(mario_right_hand_open_dl_vertex_group5, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0), ++- gsSP2Triangles( 2, 7, 6, 0x0, 8, 9, 0, 0x0), ++- gsSP2Triangles( 9, 10, 3, 0x0, 3, 10, 11, 0x0), ++- gsSP2Triangles(11, 12, 6, 0x0, 6, 12, 8, 0x0), ++- gsSP2Triangles( 1, 4, 7, 0x0, 4, 5, 7, 0x0), ++- gsSP2Triangles(13, 12, 11, 0x0, 11, 10, 14, 0x0), ++- gsSP2Triangles(15, 10, 9, 0x0, 15, 14, 10, 0x0), ++- gsSPVertex(mario_right_hand_open_dl_vertex_group6, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401A428 - 0x0401A448 ++-const Gfx mario_right_hand_open[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_right_hand_open_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401A448 - 0x0401A478 ++-const Gfx mario_metal_right_hand_open[] = { ++- gsSPDisplayList(mario_right_hand_open_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401A478 ++-static const Vtx mario_right_hand_cap_m_logo_dl_vertex[] = { ++- {{{ 131, 47, -1}, 0, { 1104, 228}, {0xd7, 0x60, 0xb8, 0xff}}}, ++- {{{ 107, -19, -33}, 0, { 474, 32}, {0xd1, 0x0e, 0x8c, 0xff}}}, ++- {{{ 78, 11, 40}, 0, { 772, 818}, {0xd0, 0x3e, 0x9d, 0xff}}}, ++- {{{ 70, -52, 35}, 0, { 196, 800}, {0xc5, 0xde, 0x96, 0xff}}}, ++- {{{ 114, -92, -11}, 0, { -148, 188}, {0xc4, 0xb8, 0xac, 0xff}}}, ++-}; ++- ++-// 0x0401A4C8 ++-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group1[] = { ++- {{{ 1, 24, 35}, 0, { 0, 0}, {0xd4, 0x3c, 0x66, 0xff}}}, ++- {{{ 29, 7, 48}, 0, { 0, 0}, {0xc3, 0xfa, 0x6e, 0xff}}}, ++- {{{ 29, 62, 34}, 0, { 0, 0}, {0xcd, 0x4c, 0x57, 0xff}}}, ++- {{{ 11, 60, -3}, 0, { 0, 0}, {0xab, 0x59, 0xe6, 0xff}}}, ++- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, ++- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, ++- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, ++- {{{ -2, 41, 0}, 0, { 0, 0}, {0xee, 0x71, 0xca, 0xff}}}, ++- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, ++- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, ++- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, ++- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, ++- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, ++- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, ++- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, ++-}; ++- ++-// 0x0401A5B8 ++-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group2[] = { ++- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, ++- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, ++- {{{ 75, -32, 65}, 0, { 0, 0}, {0x08, 0xae, 0x60, 0xff}}}, ++- {{{ 31, -39, 0}, 0, { 0, 0}, {0x42, 0xa3, 0xca, 0xff}}}, ++- {{{ 23, -25, 35}, 0, { 0, 0}, {0x04, 0xc2, 0x6e, 0xff}}}, ++- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, ++- {{{ 55, -43, -3}, 0, { 0, 0}, {0x00, 0x86, 0xe0, 0xff}}}, ++- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, ++- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, ++- {{{ 16, 1, -22}, 0, { 0, 0}, {0x04, 0x00, 0x82, 0xff}}}, ++- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, ++- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, ++- {{{ 56, 11, 65}, 0, { 0, 0}, {0xfc, 0x1b, 0x7b, 0xff}}}, ++- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, ++- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, ++- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, ++-}; ++- ++-// 0x0401A6B8 ++-static const Vtx mario_right_hand_cap_hand_position_dl_vertex_group3[] = { ++- {{{ 35, 9, -36}, 0, { 0, 0}, {0xe4, 0xf4, 0x85, 0xff}}}, ++- {{{ 85, 30, -32}, 0, { 0, 0}, {0x4f, 0x21, 0xa3, 0xff}}}, ++- {{{ 103, -25, 1}, 0, { 0, 0}, {0x67, 0xc4, 0xd6, 0xff}}}, ++- {{{ 58, 81, 0}, 0, { 0, 0}, {0x13, 0x7a, 0xe8, 0xff}}}, ++- {{{ 24, -55, -4}, 0, { 0, 0}, {0x04, 0x8b, 0xd1, 0xff}}}, ++- {{{ -15, -12, 7}, 0, { 0, 0}, {0x8c, 0xcf, 0xf8, 0xff}}}, ++- {{{ 4, -3, -32}, 0, { 0, 0}, {0x11, 0x06, 0x83, 0xff}}}, ++- {{{ -19, 47, -4}, 0, { 0, 0}, {0xad, 0x54, 0xd3, 0xff}}}, ++- {{{ -13, 26, 41}, 0, { 0, 0}, {0xee, 0x3c, 0x6e, 0xff}}}, ++- {{{ 13, -37, 41}, 0, { 0, 0}, {0x12, 0xb1, 0x61, 0xff}}}, ++- {{{ 96, 39, 24}, 0, { 0, 0}, {0x6b, 0x39, 0x21, 0xff}}}, ++- {{{ 54, 54, 44}, 0, { 0, 0}, {0x1f, 0x50, 0x5c, 0xff}}}, ++- {{{ 95, -8, 52}, 0, { 0, 0}, {0x60, 0x06, 0x52, 0xff}}}, ++- {{{ 85, 15, 52}, 0, { 0, 0}, {0x40, 0x30, 0x62, 0xff}}}, ++-}; ++- ++-// 0x0401A798 ++-static const Vtx mario_right_hand_cap_top_dl_vertex_group1[] = { ++- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, ++- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, ++- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, ++- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, ++- {{{ 151, -168, 67}, 0, { 0, 0}, {0xf4, 0x87, 0xdc, 0xff}}}, ++- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, ++- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, ++- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, ++- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, ++- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, ++- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, ++- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, ++- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, ++- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, ++- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, ++-}; ++- ++-// 0x0401A888 ++-static const Vtx mario_right_hand_cap_top_dl_vertex_group2[] = { ++- {{{ 78, 11, 40}, 0, { 0, 0}, {0xd0, 0x3e, 0x9d, 0xff}}}, ++- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, ++- {{{ 131, 47, -1}, 0, { 0, 0}, {0xd7, 0x60, 0xb8, 0xff}}}, ++- {{{ 45, 49, 53}, 0, { 0, 0}, {0xa8, 0x5a, 0x0a, 0xff}}}, ++- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, ++- {{{ 183, 100, 86}, 0, { 0, 0}, {0x11, 0x7c, 0xed, 0xff}}}, ++- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, ++- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, ++- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, ++- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, ++- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, ++- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, ++- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, ++- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, ++- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, ++- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, ++-}; ++- ++-// 0x0401A988 ++-static const Vtx mario_right_hand_cap_top_dl_vertex_group3[] = { ++- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, ++- {{{ 18, -13, 33}, 0, { 0, 0}, {0x84, 0x10, 0xed, 0xff}}}, ++- {{{ 29, -82, 43}, 0, { 0, 0}, {0x95, 0xbd, 0x00, 0xff}}}, ++- {{{ 70, -52, 35}, 0, { 0, 0}, {0xc5, 0xde, 0x96, 0xff}}}, ++- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, ++- {{{ 114, -92, -11}, 0, { 0, 0}, {0xc4, 0xb8, 0xac, 0xff}}}, ++- {{{ 107, -19, -33}, 0, { 0, 0}, {0xd1, 0x0e, 0x8c, 0xff}}}, ++- {{{ 182, -72, -8}, 0, { 0, 0}, {0x4d, 0xd9, 0xa4, 0xff}}}, ++- {{{ 192, 11, -2}, 0, { 0, 0}, {0x4b, 0x29, 0xa3, 0xff}}}, ++- {{{ 246, 29, 128}, 0, { 0, 0}, {0x72, 0x20, 0xd4, 0xff}}}, ++- {{{ 228, -121, 117}, 0, { 0, 0}, {0x66, 0xcd, 0xcb, 0xff}}}, ++- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, ++- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, ++- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, ++- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, ++- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, ++-}; ++- ++-// 0x0401AA88 ++-static const Vtx mario_right_hand_cap_top_dl_vertex_group4[] = { ++- {{{ 181, -167, 138}, 0, { 0, 0}, {0x06, 0x88, 0x26, 0xff}}}, ++- {{{ 273, -105, 188}, 0, { 0, 0}, {0x5f, 0xbf, 0x34, 0xff}}}, ++- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, ++- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, ++- {{{ 285, -6, 196}, 0, { 0, 0}, {0x79, 0x23, 0x0b, 0xff}}}, ++- {{{ 211, 81, 156}, 0, { 0, 0}, {0x22, 0x6c, 0x37, 0xff}}}, ++- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, ++- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, ++-}; ++- ++-// 0x0401AB08 ++-static const Vtx mario_right_hand_cap_bottom_dl_vertex[] = { ++- {{{ 65, -53, 55}, 0, { 0, 0}, {0xb7, 0x01, 0x67, 0xff}}}, ++- {{{ 106, -124, 90}, 0, { 0, 0}, {0x9d, 0xb2, 0x09, 0xff}}}, ++- {{{ 137, -137, 134}, 0, { 0, 0}, {0x9f, 0xdf, 0x49, 0xff}}}, ++- {{{ 73, 11, 60}, 0, { 0, 0}, {0xbb, 0xfb, 0x6a, 0xff}}}, ++- {{{ 129, 65, 103}, 0, { 0, 0}, {0xa7, 0x50, 0x27, 0xff}}}, ++- {{{ 160, 65, 148}, 0, { 0, 0}, {0xb3, 0x47, 0x47, 0xff}}}, ++- {{{ 192, 42, 190}, 0, { 0, 0}, {0xb3, 0x23, 0x5d, 0xff}}}, ++- {{{ 171, -129, 178}, 0, { 0, 0}, {0xb3, 0xd1, 0x58, 0xff}}}, ++- {{{ 216, -104, 220}, 0, { 0, 0}, {0xe5, 0xcc, 0x70, 0xff}}}, ++- {{{ 228, 1, 228}, 0, { 0, 0}, {0x14, 0x22, 0x78, 0xff}}}, ++-}; ++- ++-// 0x0401ABA8 - 0x0401ABD0 ++-const Gfx mario_right_hand_cap_m_logo_dl[] = { ++- gsSPVertex(mario_right_hand_cap_m_logo_dl_vertex, 5, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), ++- gsSP1Triangle( 1, 4, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401ABD0 - 0x0401AD40 ++-const Gfx mario_right_hand_cap_top_dl[] = { ++- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 2, 4, 5, 0x0, 6, 2, 1, 0x0), ++- gsSP2Triangles( 2, 6, 4, 0x0, 7, 4, 8, 0x0), ++- gsSP2Triangles( 8, 4, 6, 0x0, 4, 9, 5, 0x0), ++- gsSP2Triangles( 4, 7, 9, 0x0, 5, 9, 10, 0x0), ++- gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0), ++- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 0, 3, 1, 0x0, 5, 2, 1, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 0, 9, 3, 0x0), ++- gsSP2Triangles(10, 9, 0, 0x0, 11, 12, 2, 0x0), ++- gsSP2Triangles( 2, 5, 11, 0x0, 3, 9, 4, 0x0), ++- gsSP2Triangles(13, 14, 15, 0x0, 11, 5, 14, 0x0), ++- gsSP1Triangle( 7, 14, 5, 0x0), ++- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group3, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 7, 8, 9, 0x0, 7, 6, 8, 0x0), ++- gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 9, 0x0), ++- gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0), ++- gsSP1Triangle(13, 12, 15, 0x0), ++- gsSPVertex(mario_right_hand_cap_top_dl_vertex_group4, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), ++- gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 6, 0x0), ++- gsSP1Triangle( 7, 0, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401AD40 - 0x0401AED0 ++-const Gfx mario_right_hand_cap_hand_position_dl[] = { ++- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group1, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 6, 0x0), ++- gsSP2Triangles( 6, 3, 2, 0x0, 5, 2, 4, 0x0), ++- gsSP2Triangles( 3, 7, 0, 0x0, 3, 6, 8, 0x0), ++- gsSP2Triangles( 3, 8, 7, 0x0, 9, 0, 7, 0x0), ++- gsSP2Triangles(10, 0, 9, 0x0, 1, 0, 10, 0x0), ++- gsSP2Triangles(11, 1, 10, 0x0, 11, 4, 1, 0x0), ++- gsSP2Triangles( 7, 12, 13, 0x0, 8, 12, 7, 0x0), ++- gsSP2Triangles(13, 14, 7, 0x0, 7, 14, 9, 0x0), ++- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group2, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 3, 6, 0x0, 6, 2, 4, 0x0), ++- gsSP2Triangles( 7, 5, 4, 0x0, 8, 9, 3, 0x0), ++- gsSP2Triangles( 3, 9, 10, 0x0, 10, 6, 3, 0x0), ++- gsSP2Triangles( 5, 11, 3, 0x0, 3, 11, 8, 0x0), ++- gsSP2Triangles(10, 0, 6, 0x0, 6, 0, 2, 0x0), ++- gsSP2Triangles( 2, 1, 12, 0x0, 5, 13, 11, 0x0), ++- gsSP2Triangles( 1, 14, 12, 0x0, 14, 15, 12, 0x0), ++- gsSPVertex(mario_right_hand_cap_hand_position_dl_vertex_group3, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), ++- gsSP2Triangles( 7, 5, 8, 0x0, 8, 5, 9, 0x0), ++- gsSP2Triangles( 3, 10, 1, 0x0, 11, 10, 3, 0x0), ++- gsSP2Triangles( 1, 10, 2, 0x0, 2, 10, 12, 0x0), ++- gsSP2Triangles(12, 10, 13, 0x0, 10, 11, 13, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401AED0 - 0x0401AF20 ++-const Gfx mario_right_hand_cap_bottom_dl[] = { ++- gsSPVertex(mario_right_hand_cap_bottom_dl_vertex, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), ++- gsSP2Triangles( 6, 5, 2, 0x0, 6, 2, 7, 0x0), ++- gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401AF20 - 0x0401AF60 ++-const Gfx mario_right_hand_cap_dl[] = { ++- gsSPDisplayList(mario_right_hand_cap_top_dl), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_right_hand_cap_bottom_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401AF60 ++-static const Vtx mario_right_hand_cap_wings_half_1_dl_vertex[] = { ++- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x65, 0xda, 0xff}}}, ++- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, ++- {{{ 212, 96, 143}, 0, { 990, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, ++- {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 322, 87, -67}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 178, -177, 128}, 0, { 990, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, ++- {{{ 149, -100, 60}, 0, { 0, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, ++- {{{ 319, -248, -14}, 0, { 990, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, ++- {{{ 290, -171, -81}, 0, { 0, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, ++-}; ++- ++-// 0x0401B000 ++-static const Vtx mario_right_hand_cap_wings_half_2_dl_vertex[] = { ++- {{{ 414, 206, 82}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 212, 96, 143}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 258, 156, 218}, 0, { 990, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 368, 146, 7}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, ++- {{{ 178, -177, 128}, 0, { 0, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, ++- {{{ 319, -248, -14}, 0, { 0, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, ++- {{{ 349, -325, 53}, 0, { 990, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, ++- {{{ 207, -253, 195}, 0, { 990, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, ++-}; ++- ++-// 0x0401B080 - 0x0401B0B0 ++-const Gfx mario_right_hand_cap_wings_half_1_dl[] = { ++- gsSPVertex(mario_right_hand_cap_wings_half_1_dl_vertex, 10, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B0B0 - 0x0401B0E0 ++-const Gfx mario_right_hand_cap_wings_half_2_dl[] = { ++- gsSPVertex(mario_right_hand_cap_wings_half_2_dl_vertex, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B0E0 - 0x0401B138 ++-const Gfx mario_right_hand_cap_wings_intial_dl[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B138 - 0x0401B158 ++-const Gfx mario_right_hand_cap_wings_end_dl[] = { ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B158 - 0x0401B1D8 ++-const Gfx mario_right_hand_cap[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPDisplayList(mario_right_hand_cap_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B1D8 - 0x0401B230 ++-const Gfx mario_right_hand_cap_wings[] = { ++- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), ++- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B230 - 0x0401B278 ++-const Gfx mario_metal_right_hand_cap_shared_dl[] = { ++- gsSPDisplayList(mario_right_hand_cap_m_logo_dl), ++- gsSPDisplayList(mario_right_hand_cap_top_dl), ++- gsSPDisplayList(mario_right_hand_cap_hand_position_dl), ++- gsSPDisplayList(mario_right_hand_cap_bottom_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B278 - 0x0401B2D0 ++-const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = { ++- gsSPDisplayList(mario_right_hand_cap_wings_intial_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_right_hand_cap_wings_half_2_dl), ++- gsSPDisplayList(mario_right_hand_cap_wings_end_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401B2D0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group1[] = { ++- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0x00}}}, ++- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0x00}}}, ++- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0x00}}}, ++- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, ++- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, ++- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, ++- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, ++- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, ++- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, ++- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, ++- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, ++- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, ++- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0xff}}}, ++- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, ++- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, ++-}; ++- ++-// 0x0401B3D0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group2[] = { ++- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, ++- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0x00}}}, ++- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, ++- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0xff}}}, ++- {{{ 8, 58, -2}, 0, { 0, 0}, {0xbc, 0x55, 0x40, 0xff}}}, ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, ++- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, ++- {{{ 24, -59, -3}, 0, { 0, 0}, {0xc4, 0xb9, 0xab, 0xff}}}, ++- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, ++- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, ++- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, ++-}; ++- ++-// 0x0401B4B0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group3[] = { ++- {{{ -22, 43, -3}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0xff}}}, ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0x31, 0x4d, 0xa8, 0x00}}}, ++- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, ++- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, ++- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, ++- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, ++- {{{ -21, 9, 33}, 0, { 0, 0}, {0x8a, 0xe1, 0x1f, 0xff}}}, ++- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, ++- {{{ 0, -35, 32}, 0, { 0, 0}, {0x9d, 0xba, 0x22, 0xff}}}, ++- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, ++- {{{ 6, -49, 0}, 0, { 0, 0}, {0xa9, 0xa7, 0xec, 0xff}}}, ++- {{{ 24, -59, -3}, 0, { 0, 0}, {0xce, 0x92, 0x24, 0xff}}}, ++- {{{ 8, 58, -2}, 0, { 0, 0}, {0xd0, 0x30, 0x96, 0xff}}}, ++- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, ++- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, ++-}; ++- ++-// 0x0401B5A0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group4[] = { ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, ++- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0x00}}}, ++- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, ++- {{{ 56, 80, 1}, 0, { 0, 0}, {0xfe, 0x41, 0x94, 0xff}}}, ++- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, ++- {{{ 98, 10, 29}, 0, { 0, 0}, {0x0a, 0x7a, 0x21, 0xff}}}, ++- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, ++- {{{ 46, 49, 45}, 0, { 0, 0}, {0xf8, 0x44, 0x6a, 0xff}}}, ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, ++- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, ++- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, ++- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, ++- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0xb3, 0x18, 0x9f, 0xff}}}, ++-}; ++- ++-// 0x0401B6A0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group5[] = { ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, ++- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0x00}}}, ++- {{{ 18, 30, 41}, 0, { 0, 0}, {0xc1, 0x2b, 0x64, 0x00}}}, ++- {{{ 45, -29, 52}, 0, { 0, 0}, {0xeb, 0xb9, 0x66, 0xff}}}, ++- {{{ 23, -29, 36}, 0, { 0, 0}, {0xe3, 0x8b, 0x25, 0xff}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0xeb, 0x89, 0x24, 0xff}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0xdd, 0xba, 0x9d, 0xff}}}, ++- {{{ 14, -1, -22}, 0, { 0, 0}, {0xbe, 0xe5, 0x98, 0xff}}}, ++- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, ++- {{{ 166, -13, -17}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, ++- {{{ 162, 14, -11}, 0, { 0, 0}, {0x79, 0x01, 0x25, 0xff}}}, ++- {{{ 153, 7, 24}, 0, { 0, 0}, {0x7a, 0x08, 0x21, 0xff}}}, ++- {{{ 155, -15, 21}, 0, { 0, 0}, {0x79, 0x06, 0x23, 0xff}}}, ++- {{{ 84, 60, -7}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, ++- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, ++-}; ++- ++-// 0x0401B7A0 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group6[] = { ++- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, ++- {{{ 126, 84, -3}, 0, { 0, 0}, {0x5f, 0x47, 0x2a, 0x00}}}, ++- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0x00}}}, ++- {{{ 126, 84, -3}, 0, { 0, 0}, {0xfd, 0x37, 0x8e, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, ++- {{{ 84, 60, -7}, 0, { 0, 0}, {0xfb, 0x44, 0x96, 0xff}}}, ++- {{{ 146, 59, -8}, 0, { 0, 0}, {0x15, 0x2a, 0x8b, 0xff}}}, ++- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x06, 0x7e, 0xff, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, ++- {{{ 162, 14, -11}, 0, { 0, 0}, {0x26, 0x1e, 0x8b, 0xff}}}, ++- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, ++- {{{ 56, 80, 1}, 0, { 0, 0}, {0x1a, 0x6a, 0x40, 0xff}}}, ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0xff}}}, ++- {{{ 84, 60, -7}, 0, { 0, 0}, {0x4d, 0x5d, 0x24, 0xff}}}, ++-}; ++- ++-// 0x0401B890 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group7[] = { ++- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0x00}}}, ++- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0x00}}}, ++- {{{ 33, 7, -37}, 0, { 0, 0}, {0xde, 0xf5, 0x87, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, ++- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, ++- {{{ 88, -34, 39}, 0, { 0, 0}, {0x38, 0xa1, 0x3d, 0xff}}}, ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, ++- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, ++- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0xff}}}, ++- {{{ 155, -15, 21}, 0, { 0, 0}, {0x19, 0x85, 0xf1, 0xff}}}, ++- {{{ 166, -13, -17}, 0, { 0, 0}, {0x10, 0x83, 0x00, 0xff}}}, ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, ++- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, ++- {{{ 98, 10, 29}, 0, { 0, 0}, {0x07, 0xd6, 0x77, 0xff}}}, ++-}; ++- ++-// 0x0401B980 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group8[] = { ++- {{{ 139, 53, 25}, 0, { 0, 0}, {0xfc, 0x13, 0x7d, 0xff}}}, ++- {{{ 123, 72, 21}, 0, { 0, 0}, {0xfc, 0x15, 0x7d, 0x00}}}, ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0x32, 0x3d, 0x62, 0x00}}}, ++- {{{ 98, 10, 29}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, ++- {{{ 155, -15, 21}, 0, { 0, 0}, {0xf5, 0xef, 0x7d, 0xff}}}, ++- {{{ 153, 7, 24}, 0, { 0, 0}, {0xff, 0xe2, 0x7b, 0xff}}}, ++- {{{ 90, -3, 52}, 0, { 0, 0}, {0x50, 0x07, 0x61, 0xff}}}, ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, ++- {{{ 146, 59, -8}, 0, { 0, 0}, {0x57, 0xa6, 0xf0, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x51, 0xa6, 0xdd, 0xff}}}, ++- {{{ 166, -13, -17}, 0, { 0, 0}, {0x18, 0xf9, 0x84, 0xff}}}, ++- {{{ 94, -22, -18}, 0, { 0, 0}, {0x07, 0xcd, 0x8d, 0xff}}}, ++- {{{ 89, 18, -34}, 0, { 0, 0}, {0x0a, 0x1b, 0x85, 0xff}}}, ++-}; ++- ++-// 0x0401BA70 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group9[] = { ++- {{{ 84, 48, 24}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0xff}}}, ++- {{{ 123, 72, 21}, 0, { 0, 0}, {0xc3, 0x66, 0x29, 0x00}}}, ++- {{{ 126, 84, -3}, 0, { 0, 0}, {0xc2, 0x66, 0x28, 0x00}}}, ++- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, ++- {{{ 98, 10, 29}, 0, { 0, 0}, {0x5b, 0xa8, 0x02, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x59, 0xa6, 0xf7, 0xff}}}, ++- {{{ 105, 17, 3}, 0, { 0, 0}, {0x0a, 0x7c, 0x14, 0xff}}}, ++- {{{ 153, 7, 24}, 0, { 0, 0}, {0x0c, 0x7a, 0x1e, 0xff}}}, ++- {{{ 162, 14, -11}, 0, { 0, 0}, {0x0a, 0x7d, 0x0d, 0xff}}}, ++- {{{ 123, 72, 21}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, ++- {{{ 139, 53, 25}, 0, { 0, 0}, {0x5a, 0x52, 0x21, 0xff}}}, ++- {{{ 146, 59, -8}, 0, { 0, 0}, {0x5d, 0x4d, 0x26, 0xff}}}, ++- {{{ 24, -59, -3}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0x68, 0xc7, 0x2c, 0xff}}}, ++- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, ++- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, ++-}; ++- ++-// 0x0401BB70 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group10[] = { ++- {{{ 2, -5, -33}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0xff}}}, ++- {{{ 14, -1, -22}, 0, { 0, 0}, {0x47, 0x20, 0x9d, 0x00}}}, ++- {{{ 32, -43, 0}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0x00}}}, ++- {{{ 24, -59, -3}, 0, { 0, 0}, {0x52, 0xee, 0xa2, 0xff}}}, ++- {{{ 2, -5, -33}, 0, { 0, 0}, {0xad, 0xda, 0xa9, 0xff}}}, ++- {{{ -8, -12, -20}, 0, { 0, 0}, {0x93, 0xcf, 0xd7, 0xff}}}, ++- {{{ -25, 24, 0}, 0, { 0, 0}, {0x84, 0xf8, 0xea, 0xff}}}, ++- {{{ -22, 43, -3}, 0, { 0, 0}, {0x86, 0x10, 0xe4, 0xff}}}, ++- {{{ -15, 23, 43}, 0, { 0, 0}, {0xd6, 0x31, 0x6c, 0xff}}}, ++- {{{ 0, 21, 37}, 0, { 0, 0}, {0xfe, 0x44, 0x6a, 0xff}}}, ++- {{{ -4, 38, 0}, 0, { 0, 0}, {0xd3, 0x66, 0x3c, 0xff}}}, ++- {{{ -22, 43, -3}, 0, { 0, 0}, {0x1a, 0x72, 0x2f, 0xff}}}, ++- {{{ 15, -39, 42}, 0, { 0, 0}, {0x0c, 0xbe, 0x6b, 0xff}}}, ++- {{{ 23, -29, 36}, 0, { 0, 0}, {0x12, 0xec, 0x7b, 0xff}}}, ++-}; ++- ++-// 0x0401BC50 ++-static const Vtx mario_right_hand_peace_shared_dl_vertex_group11[] = { ++- {{{ 101, -29, 15}, 0, { 0, 0}, {0x53, 0xa3, 0x15, 0xff}}}, ++- {{{ 56, -47, -5}, 0, { 0, 0}, {0x0c, 0x87, 0xde, 0x00}}}, ++- {{{ 94, -22, -18}, 0, { 0, 0}, {0x1c, 0x85, 0x00, 0x00}}}, ++-}; ++- ++-// 0x0401BC80 - 0x0401BF30 ++-const Gfx mario_right_hand_peace_shared_dl[] = { ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), ++- gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), ++- gsSP2Triangles( 8, 7, 9, 0x0, 7, 6, 10, 0x0), ++- gsSP2Triangles( 7, 10, 9, 0x0, 11, 8, 9, 0x0), ++- gsSP2Triangles( 7, 12, 5, 0x0, 10, 13, 14, 0x0), ++- gsSP2Triangles( 6, 15, 10, 0x0, 10, 14, 9, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group2, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 5, 6, 7, 0x0, 8, 0, 9, 0x0), ++- gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), ++- gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 9, 8, 10, 0x0, 9, 10, 11, 0x0), ++- gsSP1Triangle(12, 13, 14, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group4, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 2, 12, 13, 0x0, 3, 5, 12, 0x0), ++- gsSP1Triangle(12, 14, 15, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group5, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group6, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), ++- gsSP2Triangles( 4, 10, 11, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group7, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), ++- gsSP2Triangles(10, 9, 11, 0x0, 12, 13, 14, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group8, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 3, 2, 7, 0x0), ++- gsSP2Triangles( 8, 3, 7, 0x0, 9, 10, 11, 0x0), ++- gsSP1Triangle(12, 13, 14, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group9, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group10, 14, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), ++- gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), ++- gsSP2Triangles(12, 13, 9, 0x0, 12, 9, 8, 0x0), ++- gsSPVertex(mario_right_hand_peace_shared_dl_vertex_group11, 3, 0), ++- gsSP1Triangle( 0, 1, 2, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401BF30 - 0x0401BF50 ++-const Gfx mario_right_hand_peace[] = { ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_right_hand_peace_shared_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401BF50 ++-static const Vtx mario_cap_unused_m_logo_dl_vertex[] = { ++- {{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}}, ++- {{{ 96, 22, 45}, 0, { 1240, 876}, {0x48, 0xa4, 0x31, 0xff}}}, ++- {{{ 71, 101, 113}, 0, { 1028, 148}, {0x55, 0x16, 0x5b, 0xff}}}, ++- {{{ 0, 110, 143}, 0, { 460, 68}, {0x00, 0x34, 0x73, 0xff}}}, ++- {{{ -31, 35, 118}, 0, { 206, 762}, {0xd0, 0x26, 0x6f, 0xff}}}, ++- {{{ -70, 101, 113}, 0, { -106, 158}, {0xab, 0x16, 0x5b, 0xff}}}, ++- {{{ -95, 22, 46}, 0, { -302, 890}, {0xa8, 0xb9, 0x38, 0xff}}}, ++-}; ++- ++-// 0x0401BFC0 ++-static const Vtx mario_cap_unused_base_top_dl_vertex_group1[] = { ++- {{{ -66, 2, 139}, 0, { 0, 0}, {0xb0, 0xbb, 0x45, 0xff}}}, ++- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, ++- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, ++- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, ++- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, ++- {{{ -95, 22, 46}, 0, { 0, 0}, {0xa8, 0xb9, 0x38, 0xff}}}, ++- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, ++- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, ++- {{{ -135, 70, 23}, 0, { 0, 0}, {0x84, 0x15, 0x10, 0xff}}}, ++- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, ++- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, ++- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, ++- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, ++- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, ++- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, ++- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, ++-}; ++- ++-// 0x0401C0C0 ++-static const Vtx mario_cap_unused_base_top_dl_vertex_group2[] = { ++- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, ++- {{{ 136, 70, 22}, 0, { 0, 0}, {0x7b, 0x16, 0x10, 0xff}}}, ++- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, ++- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, ++- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, ++- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, ++- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, ++- {{{ 67, 2, 139}, 0, { 0, 0}, {0x50, 0xba, 0x44, 0xff}}}, ++- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, ++- {{{ 33, 35, 118}, 0, { 0, 0}, {0x30, 0x26, 0x6e, 0xff}}}, ++- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, ++- {{{ 0, 0, 163}, 0, { 0, 0}, {0x00, 0xba, 0x69, 0xff}}}, ++- {{{ -31, 35, 118}, 0, { 0, 0}, {0xd0, 0x26, 0x6f, 0xff}}}, ++- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, ++- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, ++-}; ++- ++-// 0x0401C1B0 ++-static const Vtx mario_cap_unused_base_top_dl_vertex_group3[] = { ++- {{{ -76, 84, -60}, 0, { 0, 0}, {0xd5, 0x6e, 0xd3, 0xff}}}, ++- {{{ -41, 144, 64}, 0, { 0, 0}, {0xdc, 0x79, 0x00, 0xff}}}, ++- {{{ 76, 84, -60}, 0, { 0, 0}, {0x2a, 0x6c, 0xcf, 0xff}}}, ++- {{{ 0, 110, 143}, 0, { 0, 0}, {0x00, 0x34, 0x73, 0xff}}}, ++- {{{ 42, 144, 64}, 0, { 0, 0}, {0x2b, 0x76, 0x0d, 0xff}}}, ++- {{{ -70, 101, 113}, 0, { 0, 0}, {0xab, 0x16, 0x5b, 0xff}}}, ++- {{{ 71, 101, 113}, 0, { 0, 0}, {0x55, 0x16, 0x5b, 0xff}}}, ++- {{{ 49, 62, -139}, 0, { 0, 0}, {0x32, 0x49, 0xa6, 0xff}}}, ++- {{{ 126, 38, -46}, 0, { 0, 0}, {0x73, 0xec, 0xd0, 0xff}}}, ++- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, ++- {{{ -49, 62, -138}, 0, { 0, 0}, {0xce, 0x1a, 0x8f, 0xff}}}, ++- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, ++- {{{ -125, 38, -45}, 0, { 0, 0}, {0x8d, 0xec, 0xd1, 0xff}}}, ++- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, ++- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, ++-}; ++- ++-// 0x0401C2A0 ++-static const Vtx mario_cap_unused_base_bottom_dl_vertex[] = { ++- {{{ 86, 1, -60}, 0, { 0, 0}, {0x20, 0x86, 0xfe, 0xff}}}, ++- {{{ -86, 1, -60}, 0, { 0, 0}, {0xce, 0x8c, 0xf6, 0xff}}}, ++- {{{ -52, 0, -118}, 0, { 0, 0}, {0xd2, 0x9d, 0xc1, 0xff}}}, ++- {{{ 33, 17, 109}, 0, { 0, 0}, {0xfb, 0x84, 0xea, 0xff}}}, ++- {{{ -32, 17, 109}, 0, { 0, 0}, {0x00, 0x83, 0xf0, 0xff}}}, ++- {{{ -101, 10, -7}, 0, { 0, 0}, {0xd8, 0x89, 0x11, 0xff}}}, ++- {{{ 96, 22, 45}, 0, { 0, 0}, {0x48, 0xa4, 0x31, 0xff}}}, ++- {{{ 103, 10, -6}, 0, { 0, 0}, {0x42, 0x96, 0x12, 0xff}}}, ++- {{{ 53, 0, -118}, 0, { 0, 0}, {0x2c, 0xb5, 0xa5, 0xff}}}, ++-}; ++- ++-// 0x0401C330 - 0x0401C368 ++-const Gfx mario_cap_unused_m_logo_dl[] = { ++- gsSPVertex(mario_cap_unused_m_logo_dl_vertex, 7, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), ++- gsSP2Triangles( 3, 5, 4, 0x0, 2, 3, 0, 0x0), ++- gsSP1Triangle( 5, 6, 4, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C368 - 0x0401C4C8 ++-const Gfx mario_cap_unused_base_top_dl[] = { ++- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group1, 16, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 3, 1, 0, 0x0, 3, 5, 6, 0x0), ++- gsSP2Triangles( 3, 0, 5, 0x0, 5, 7, 8, 0x0), ++- gsSP2Triangles( 5, 8, 6, 0x0, 0, 2, 5, 0x0), ++- gsSP2Triangles( 6, 9, 10, 0x0, 8, 9, 6, 0x0), ++- gsSP2Triangles(11, 8, 7, 0x0, 8, 12, 9, 0x0), ++- gsSP2Triangles(12, 8, 11, 0x0, 13, 14, 15, 0x0), ++- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group2, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), ++- gsSP2Triangles( 4, 2, 1, 0x0, 5, 1, 0, 0x0), ++- gsSP2Triangles( 1, 6, 3, 0x0, 6, 7, 8, 0x0), ++- gsSP2Triangles( 9, 7, 6, 0x0, 10, 4, 3, 0x0), ++- gsSP2Triangles( 9, 11, 7, 0x0, 7, 11, 8, 0x0), ++- gsSP2Triangles(12, 11, 9, 0x0, 13, 14, 4, 0x0), ++- gsSPVertex(mario_cap_unused_base_top_dl_vertex_group3, 15, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), ++- gsSP2Triangles( 5, 3, 1, 0x0, 1, 4, 2, 0x0), ++- gsSP2Triangles( 4, 3, 6, 0x0, 0, 2, 7, 0x0), ++- gsSP2Triangles( 8, 7, 2, 0x0, 9, 10, 11, 0x0), ++- gsSP2Triangles(12, 10, 9, 0x0, 7, 10, 0, 0x0), ++- gsSP2Triangles(10, 7, 11, 0x0, 0, 10, 12, 0x0), ++- gsSP2Triangles(11, 8, 13, 0x0, 14, 12, 9, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C4C8 - 0x0401C510 ++-const Gfx mario_cap_unused_base_bottom_dl[] = { ++- gsSPVertex(mario_cap_unused_base_bottom_dl_vertex, 9, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), ++- gsSP2Triangles( 0, 7, 5, 0x0, 0, 5, 1, 0x0), ++- gsSP1Triangle( 2, 8, 0, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C510 - 0x0401C538 ++-const Gfx mario_cap_unused_base_dl[] = { ++- gsSPDisplayList(mario_cap_unused_base_top_dl), ++- gsSPLight(&mario_brown2_lights_group.l, 1), ++- gsSPLight(&mario_brown2_lights_group.a, 2), ++- gsSPDisplayList(mario_cap_unused_base_bottom_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C538 ++-static const Vtx mario_wings_half_1_unused_dl_vertex[] = { ++- {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, ++- {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, ++- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, ++- {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, ++- {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, ++- {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, ++- {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, ++- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, ++- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, ++- {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, ++- {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, ++- {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, ++-}; ++- ++-// 0x0401C5F8 ++-static const Vtx mario_wings_half_2_unused_dl_vertex[] = { ++- {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, ++- {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, ++- {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, ++- {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, ++- {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, ++- {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, ++- {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, ++- {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, ++-}; ++- ++-// 0x0401C678 - 0x0401C6A8 ++-const Gfx mario_wings_half_1_unused_dl[] = { ++- gsSPVertex(mario_wings_half_1_unused_dl_vertex, 12, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), ++- gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C6A8 - 0x0401C6D8 ++-const Gfx mario_wings_half_2_unused_dl[] = { ++- gsSPVertex(mario_wings_half_2_unused_dl_vertex, 8, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C6D8 - 0x0401C730 ++-const Gfx mario_cap_wings_unused_intial_dl[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C730 - 0x0401C758 ++-const Gfx mario_cap_wings_unused_end_dl[] = { ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C758 - 0x0401C7E8 # Unreferenced, possibly a early duplicate of the cap object used in segment 03 ++-const Gfx mario_cap_unused_dl[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPLight(&mario_red_lights_group.l, 1), ++- gsSPLight(&mario_red_lights_group.a, 2), ++- gsSPDisplayList(mario_cap_unused_m_logo_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPDisplayList(mario_cap_unused_base_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C7E8 - 0x0401C890 # Unreferenced, possibly an early duplicate of the cap object used in segment 03 ++-const Gfx mario_metal_cap_unused_dl[] = { ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsSPDisplayList(mario_cap_unused_m_logo_dl), ++- gsSPDisplayList(mario_cap_unused_base_top_dl), ++- gsSPDisplayList(mario_cap_unused_base_bottom_dl), ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C890 - 0x0401C8E8 # Unreferenced, unused like the duplicated cap, same case ++-const Gfx mario_cap_wings_unused[] = { ++- gsSPDisplayList(mario_cap_wings_unused_intial_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_unused_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_unused_dl), ++- gsSPDisplayList(mario_cap_wings_unused_end_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C8E8 - 0x0401C940 # Unreferenced, unused like the duplicated cap, same case ++-const Gfx mario_metal_cap_wings_unused[] = { ++- gsSPDisplayList(mario_cap_wings_unused_intial_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_unused_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_unused_dl), ++- gsSPDisplayList(mario_cap_wings_unused_end_dl), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C940 ++-static const Vtx mario_wings_half_1_dl_vertex[] = { ++- {{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, ++-}; ++- ++-// 0x0401C980 ++-static const Vtx mario_wings_half_2_dl_vertex[] = { ++- {{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, ++- {{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, ++-}; ++- ++-// 0x0401C9C0 - 0x0401C9E0 ++-const Gfx mario_wings_half_1_dl[] = { ++- gsSPVertex(mario_wings_half_1_dl_vertex, 4, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401C9E0 - 0x0401CA00 ++-const Gfx mario_wings_half_2_dl[] = { ++- gsSPVertex(mario_wings_half_2_dl_vertex, 4, 0), ++- gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401CA00 - 0x0401CAB8 ++-const Gfx mario_cap_wings[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401CAB8 - 0x0401CB70 ++-const Gfx mario_cap_wings_transparent[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), ++- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401CB70 - 0x0401CC28 ++-const Gfx mario_metal_cap_wings[] = { ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsSPLight(&mario_white_lights_group.l, 1), ++- gsSPLight(&mario_white_lights_group.a, 2), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++- gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsSPEndDisplayList(), ++-}; ++- ++-// 0x0401CC28 - 0x0401CD20 ++-const Gfx mario_metal_cap_wings_transparent[] = { ++- gsDPPipeSync(), ++- gsSPClearGeometryMode(G_TEXTURE_GEN), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), ++- gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++- gsDPTileSync(), ++- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++- gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_1_dl), ++- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_2), ++- gsDPLoadSync(), ++- gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++- gsSPDisplayList(mario_wings_half_2_dl), ++- gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++- gsDPPipeSync(), ++- gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), ++- gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++- gsSPEndDisplayList(), +++Gfx mario_000_offset_009_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), ++ }; +++ +++Gfx mario_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_009_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_009_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), +++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_009_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_010_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_010_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_texture_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_white_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_010_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_texture_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_buckle_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_shoe_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_white_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_011_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_002_mesh_layer_4[] = { +++ gsSPDisplayList(mat_mario_wing_2_001_v4), +++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), +++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), +++ gsSPDisplayList(mat_mario_wing_1_001_v4), +++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), +++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_wing_2_001_v4), +++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_0), +++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), +++ gsSPDisplayList(mat_mario_wing_1_001_v4), +++ gsSPDisplayList(mario_000_displaylist_002_mesh_layer_4_tri_1), +++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_012_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_012_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_012_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), +++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_012_mesh_layer_1_tri_1), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_013_skinned_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_013_skinned_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_texture_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_white_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_blue_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_offset_013_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1[] = { +++ gsSPDisplayList(mat_mario_sonic_texture_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_mario_sonic_shoe_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_mario_sonic_white_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_mario_sonic_buckle_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_0), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_1), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_2), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPDisplayList(mat_mario_metal_v4), +++ gsSPDisplayList(mario_000_displaylist_005_mesh_layer_1_tri_3), +++ gsSPDisplayList(mat_revert_mario_metal_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_001_mesh_layer_4[] = { +++ gsSPDisplayList(mat_mario_wing_2_001_v4), +++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), +++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), +++ gsSPDisplayList(mat_mario_wing_1_001_v4), +++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), +++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { +++ gsSPDisplayList(mat_mario_wing_2_001_v4), +++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_0), +++ gsSPDisplayList(mat_revert_mario_wing_2_001_v4), +++ gsSPDisplayList(mat_mario_wing_1_001_v4), +++ gsSPDisplayList(mario_000_displaylist_001_mesh_layer_4_tri_1), +++ gsSPDisplayList(mat_revert_mario_wing_1_001_v4), +++ gsSPEndDisplayList(), +++}; +++ +++Gfx mario_material_revert_render_settings[] = { +++ gsDPPipeSync(), +++ gsSPSetGeometryMode(G_LIGHTING), +++ gsSPClearGeometryMode(G_TEXTURE_GEN), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 0), +++ gsDPSetEnvColor(255, 255, 255, 255), +++ gsDPSetAlphaCompare(G_AC_NONE), +++ gsSPEndDisplayList(), +++}; +++ +diff --git a/actors/mario/sonic_mouth.rgba16.png b/actors/mario/sonic_mouth.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..c728d40b5df85086524e253496cd289bc6bef728 +GIT binary patch +literal 419 +zcmV;U0bKrxP)41X&I^zyBqJdErt9 +z9$wT!lpIHpSEwR%9Wv*kn5ZX4|ntYz+7BvcR}t`rYAT6h1x<(GEZleo!G~VEmiG +z%I+7~{Nsn&z@dWAGHi0FPRFJKD28r1x-v!OKMbN`j0~4AurjDKVvG5rE;Z9hsZg*hBV6BPo~vJBZ`7@Ooo2-8R{dei}s(0 +zSa`Xs?QBFd(jE*3< +zr_+kX`LJshp-ZhqLDzNH{zFiNLLqAR&>Dcm)Br@3(akpv0K>3$#+Q4RLiBcs=j4@1 +zvjS*MlM96c0liQ+?q9`MTRVVdR1JkryjYq~rhm`2rrSdR{mxJ9j2i?#)T6?531u2mF^#h@^U0Vhhqb5sq`ed-dp +zil2)J!|9>|#85QAwr7Wdz^VW-$aOwC&vV$QXaI*?E_dF@6D2TLI;BtDpm)H`F1-n( +zW9zThf%~`a?AIB5%nFEWdS)6r69t}#3VTlt!r?F+=5Ea4SuU4(iURP51B)#(b{*(w +z*&x_)r)fPkP$ZGO)oPW7D9)~cJ-|yC!Pp4ku-#yf+=+mfG62S0`?QfK4<8;f%s>p~ +zqj#f!HT1s-|_9ixduF! +zffZnBA@cfDiLC&9Isq$9SB7$y#I^>o;+lnPoqUbIPrm&))BtY0inwTdAD{>h0L=Yi +z<3Iq?Y&KikFUf@5MrW_-T6=SGYiTb@EIY|vNyq6(V^4hEQ|ADffV1fFUJ~rQuE-b& +v1SFk94Z3dE2!kSUv?=#$;*}-KNKWuyVtyz4^-&sT00000NkvXXu0mjfJa&;G + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/sonic_trail_circle_0.ia16.png b/actors/mario/sonic_trail_circle_0.ia16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..4a5db9793d260ebb7923a7147397a554d4940857 +GIT binary patch +literal 5529 +zcmeHLc~}$I77rDW0+vM(T2Mn!S#(G;*+;@6TcSjeO+*Bf$pi+-(#b#)aG@=hf}%XF +z;8S=lRca}=6_-}5ibbBbDi-vs6;~=~eO1xA6s+636A;6z&pyBJ^*{4{N#@@BJHK=8 +z@1Aoeld|~PF=OoCu&2>zW2BPE1n^C#-gegDvrE5iDUJ5Z?ZTu~GC^*j>j|v!CMv;cfrmyePZ4!r^%a_=%O_U56!#0PBtK9W(7JXf!_Exu~ +zTs$;BWpcr^hpwha|8VTQYQK@?B +zVB^i$OMRVwzxnyEb}B0ViM{TgCUnP|CEgFVmJYNZJ>K{CiPxs|yE%nt^w*p_P}7sT +zK=!&%`_CVJUVlyOc-EQd$~@x#?)=WL_PV(_eS6*(5r4U>jvLsv9}bwadFGmf=lMB0 +z_OA;gj+~|CbfvFw5R_THe>{-ewMpVJ`l#)m<=z+eb%bcUHs|)P+ch>C4quTHSdzRr +z=3Y|vv9-4%J8z_Z!_1J{3C1-iqi)3=du~bkX_=SqrKQ_g=R0jj-{NUX+dd{QpFHf_ +z74Bdgcp9Bwc{h>f(|XoEOAia*{2MKG(v7KYz +zN%cE-?NMb>_qc@L{WOdI=HPJ7PzgT#de7_c7pG;m@S&NfUj0nH>+Lse&N#gjI6Y)Q +z_Ish%qu-WQcg(sn`HpMht9wf_W<0K_jD2A8A6WCqD}U`rt3z7K)ij#bWIQ4wUK$bc +zB>h3s*VI-dWC?pg2T#S2t@q2S<+|(82VMtc!Zl*Xjjvl6bX+NB%;m{gGF=3gjY|p%EU|EQ5?Yvxij<7d +z5c^;w0tnO?DW@CNc^W-p6f?}c2)L%EnGCuaLgtDYsj_%_gqFbQ+#qfc3yL!01u!GT +zo*qmnRY*c)^biFYi5b}>sY94dgTWAF-~?%jEGAnd5;0jY6NVvxfb=E}DK|nIy)Q*E +z$PtO@Q3BVIxK=}_IOPg$J}G7}z&d@19IT>IMld<#fEt_W^`w$11p_YF4*)P>7E1`R +zU9f~WqTX`xR7ZJU{Z>9zR;ibWM* +z8q(L&sV*;HZ|O5%k5N!z>~P@=>d({54G}#K!Cep{t@UWdYNM}>xx8b(R|9OG*Zl<;zg8N +z6jvhVO94l~6DfoWh{Hui5Ld+KLJA=Zh4`?Duiy#!d<7e`ppt6zq+Eky6cr#3!U2y; +z!B+`U42I-<4hQ05m=Y4I1Q;Zc!)y*)fXP{M)Pf?8z(FO*^DLvHsFZ+8uHeIb0gOTl +zB^!pgDj0(l93=>e#p1vmff9vPEHf2#4oG;sRLp>bEN0^K3OOTdBoPeCadp$BPBv9eh~Fl=5?qDVC0l!J7`)$%NisncYc +z7pQ|lz;=MNa;iE2vw0ru28kdrIjJR*wAwr|gNl|;QJRa29z0YoNURn$8=AqGlB&3& +znwufdVw#7+%;$msz?7J+HE8}fo~O`ZmT-bJXo=i7B2JNmq2%*2XPfB28k5l3g++x3ISVyieS}9cD+_b8sr2Po&|CM +zoHHmc^EuP~hw?9AB;JsXQOU)E*$|5lv4u%2Hp1Z|JPu>43nZ7|h?WHQ83 +zk6@}tAyO(46Z3VtJRBoN>hvUU{tM2+eke!(%-j+-XdR)|nLrh1lW_*kbKO4!ILHu- +zqnJjoeO~C6kU?22ZbTsF!8ve)1NTej@C|b)OQ=Hn3tvOo_ZNBq)GwX9kiIYFdMVcn +zDeywzm)Z4Ft`}0^g}^Vf>;EQ~{nJNoOap%R8NdTIksz%G596;WX2nF(?rE;!N>_Lp#?t<+g^om9|L2 +zzVV5%nQmw6jVSGs;&peJ1~<29%5OXBoP8ojRVnQ}h1sQzz1$yqKU&_T;aQGcKK +z>W2HR`-mXVnT^eJd^X$;CX2h*+H7phpJQsXyf|?O>au}4?8_`Lsjt>clrsd=BD5utz2Tz{c|eD*_>KKujpM} +zvNxlxwyvzEHY3u`F5rzL4l~}q{d3JWMoxBwYZJ0yahJqp{zY3m>CrE1+6(<`x8%Cy +td}8~UdvfB|)Ct>8J61R5-za=+W&2pi`DMlKoj`D!G-`I_=Q9?*{cpoC{U`tc + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/sonic_trail_circle_1.ia16.png b/actors/mario/sonic_trail_circle_1.ia16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..469150d966756cd4f31d77233e7cf1d2c6ea7371 +GIT binary patch +literal 5513 +zcmeHLc~}$I77v1ghy{_Y3K&AQpiK6V#e_YOC;>`n&?@L;GJ%n7O$HJ`0gk( +zMG6(GRIR93OSMo@YNd4nEv{{)TD!Q{1$-^`-3f@{)n}jI_xhjtzDaWL{hi-A_jk`Z +zlSye(LflyA3C<)EX{=NdlMFt|#O34w-p`tL6_Q9J?&hV;!joY$*&8 +z`?MAuyJhd~IWwRkm&%Wu+fd);=~r?1)!r)QxvTv@+!@yre&%3*5$xV%TzGHcs@7}x +z7+;w<@q4G->60`St}_Jp`lUZtODf~OT2bJ +zn4A;R@1Fax#-;PB^G3RBK#l~i=0w~JU4dUOLYn-{~9uRQhRXA?Wsa} +zbN=1Z{?TQZ5BkryxTsssyI!xKS9@;B-211QWj%_!TH45V`(1k%CsaVXpmJwMWBiO$4PEs+_m)qX8!tR_g2^p< +zE!6u`n@maC)Z{D+4en~U+iiD~a(FMT>G+)czf9myxl!_FyxYcg&hV?>zY^wIW!fZs +z>a``(dVhTEnca1k>4J?Hfw(Q`GB3l8=Ck0CdoNbytwTC +z88218N5pda-nJLr-Il)-6D((|1EYNX7EUdxo_u?hLw$!|y3zee(GtHU&9_%|hE=X} +zWgQDCO45YbS5Z8-bst#z$Ii=N)_wTC^wr%}pL%VdZS1HreZ2pL)&mJJFT9uYZghXPKHYI_eU~IU&OdbF+E-pq)^^0pGipK?RnFEg@OWX{&5qLzo#JwH +za#roPr*3_Cc5>uZUT3?@A>O#<=P5-cSK31an-0NsbG}x>*PKyH!+AZY`@N^s +z!Mo2V{vf?|3DfQN-Q;b5GF5xY5WC*rD|*Vx(qL?+JUd}0f3@Ip-vzmw1fksfpend| +zoTt&q^J=Di`@t0b){d*eXi&w@{qb#nr9zqimBQB3VaK)}{o;#|JEqnJM;od(j@uvJ +zR_2&>yb(`Zv#0NOEr*rExpSObVCSElRFqdOvye!x)fi|Pvt;oCM6ad7D!me=TC@hx +zP)H7G$x(SgXm0% +z$*0-cgH@Sq$XaI_R1xS&v%m%#gG#4qwZkk-xH#vrzb9IlQb6CPC8H*Nwh=+aIj9Z~ +zv~_CGWSeY#W}8rA${M#urKW+Pte$Oc;-s>qAsa%*3`}dVS`cVkqzW0r8M2KUD@KLT +zPz|aDftUa@V;COC)Q=Bn*nWtWzXSr@4e<{{Khnz@i&a-aj2_7*oJwOv6e3=MN{?VF +zf%Pkcq2_Z`>`;gU)720g;h+%ARP!OFn#n|YY_2L4=Gst6btW9vAt*rw$f+3MVe?Uz +zT8YAtnyq9*Y#tH{@mL%LV$wM*9*56kpj@>LMWPV{l>lpOqavtOfQrvYICPlFhhR2` +z2dF@%z$lXk@p%XrWviJ=28U^-BF;e&nIsiam{j`XnIsL2tMx`LC@)N>(wj|>mr^h- +zD#u|$Hby9u#pg14d@h~IrgLrV6{yh!(wtyr(5cJ;Un)cp3pinrZkQI%KxqbDhLx8% +z7y;N0kQOGY129|X!EOZ6Mij>N#uU9?Bcc$|k_k#{QIUm%p0|FQsklzI7pepMT038RGkW5&Yfr5TJ +zSZt5xu_q+5lEa7Y^D-s@##tyAK?vWH|f>588)Jk86XG1 +zIfLS|o-;XUF#m#w2f%_$G=!Q9%B}5_pgRjBt`v*M$>gP_LN#EykJ(ug5 +z6nG}^^Xz&q*E1>bOyK9)^?#Gg`SBw+ssq3K%;16gc(hwBco-j{oEaBGdZ4?8m4VS{ +zgJiaeL>e=mxa>$()jnX-5tquujz5kX=S|_esB65y-yxCGn8*~#;r4a1tR)d1;)_Y3d6 +z+s~Hg-Ns-#15QwMy&`N5=5Gio<GDCe&6;#^L2c`_X|_Q?=KC1Ywg^;V@8e7;%@0%)zOE0r}r$5{WQ3~^0@QH +z%0mvbj%++S^dq@p_J_Mtoa7zkNpWwKuY2QFi=^?RFWtIQZ+KR}ar5pGpTQ|pH*MR} +zx3i!88GCp6Ma}%|;fVI0yDM{Y<3Fpv5f|DYwokGw^>*T}s?fF*cJQR{_wKGJ>FM#+ +z_G#`Ncs_V=&-}gUcjfK3`c;LgOT6;49OPjgZ3TAw^iB!?I=M^kZFh+~%y2vqB@U8? +zEG$mU?OSZAGv2xCde7DEWI<5tO|R3r2WOv`2S5AjSF)egYW&XWX_=dHiVNsXIh}(@ +z=jz>!bsI~+C13h7;U}NTdWYugO_VxM!h0O25KU@UP0re;A9A6_iR(Tp=-%5pNKY#@D<(2zO!+3MKa7aDR{pFBGwvi8jluS>K;^LED8oZtL*U8h7h{NnzvKcDBF^39f} +z#GNHGZq%F$`MCbl;{DO<&aK{2GQDs$!{uN&&9S3osVS=HXz0O;Pusq7KXo&~vnsa4 +z%b`xXdy_tMO?!~x8UJ5gg@@Yn^9L7DAFjq5&98(sG!gH3_+HOD7x-7{YwHFIq+4dK +z8Hydwp84xf`Q>M$ulnA8KHKq=ywuS9ua(C9Y-tV7za%^ru%n{T!>^e}o8XJfWbtyD +z>_Ps6tgqTys)#xo@0Nc!xt;;LgiGz`h#(PX&R>2#dvRNQk3+;FyiCa{dO_|#*t+$q +z5_YjSU!3gbos(+1*cy{-5YH~pIg@om+Eu*1rsA7|xe)p8n#(J)mz-;x2_<){3RVQq +z+c&taFCk~)%edDo_{^r^=HR%1jm05wVy*P8^0Okho-QtLxAK>B1J#AIk0n>sY#)-h +zc=~Ne_V>i~%5V1J`u*Ouo_1YJbbW@1avu+w-^L<;JUTHWcCWY;zC3gx(IpaP{8(4% +z-~61r(J1n0X8gO(k9hyoHGgd08+%(~+GZ6=6h7asIsE0q&i6ZxAAj){d3aSvedW&Q +zT7uh(r=*|RV_LE4z|cLNfR`z_bw>E=1fPWXwb@k)3yn6d3I`1%MG*s|gpP@*2qng} +z=nSBt&}foiivdB?F%w;hrQ!M@#*L2;Gw8S~h_OVVU@HtVOoK;e8?nUf*d#PN9Tlq> +z!3&)v78nrdFcU(z=(KtgwgfS(yfCOEjg9#_}bcz#E5*el-1_P|qN6En|8g2oTqYkLCm7X-ISaLAngZ%&ii_2z< +zAT}4`idnYyU{#?Qv(}TNDgr%O7R12fFxf1fZkz>a3eSA#?~xW{66o8k1dJpyj3^eK +ziRn#qY@Hgk8KkYx3=*TJtZ{2qY8D8}>e<$2kz5f!W<$xChU*Mg3kq$ERH0)yLxxdn +z#i&pgrp0t15E3wR#^Fu4`r!eM+Yhz!yFh@uG5&Gr2YOj!vFZwk5oiYGR2~+@pyGv9 +z1d6L*>!m=Y5@8}92MXk19Ei^ofVx&;VlWh|g_siMg9{rfxt=s3dK9Cm067x}JZvGt +zQK^tXNW|r;AU;PB2qAo>5@IVk0zN86MIwZ4LlI}hK_wts+o&ii6`&IEFg0H+}4`OhcBjnbZcr9X56Gj~hnPDElcp9l75W1ox}Ns#6gD~HYGa;@en6pjF#2uL?vhooUFgFel= +zKphMWwgaR^sOkXB)_JfSSZ2f!6Jbmu2yGC9ij7WDT8oM<87&t$hCr=`RxqZbDsHsq +zLXk9Z38fZj>u0UnV8CY1VG1;B~*jx(=gC) +zM~m&jJpPD87V?BDky^lk*nE@=@kL@bq!fxdkWk3wb2td57Nh*}>?EN!nGqu+Y9h#4cNO_#8!4*OuY5~>F&6tJxx +z5~@eRaw-uMGYkeTjv2@6^dN8k3(m%VG)Mo)+!i)sEh7wBpo%r7IJ5q-?jHdhVTi#| +zOivPz3*8nnB8$z92*f-x2X1iSe#siUVUA`ARY-s0Yc%`*L=S-asgozt_o-Y@<$59o +zo(TLjyPnGRL<&3+_-S_i-{f+7_{fdv!S6mZc%b(Cly(9Nt`uY%;i0V2A +zACIWKwWTsV#39A_&-=ms9`o((qo+-h?y2!|$*T>j8EE{da!cLjP6hV&TOFOb*II7v +zH{4Bc?PwPsfylXpcYWPN`{=<6SGxFzQ#_Ws5Y;N%?e5s0URdqx8z(92q1i_(lPz2C +zI8T=!ew`VzM}4&S-Z$BiPCt2{FC6p_TmKy!J+eV_-AmScnZi=2 +zZEE4vhHC{UqRKD*<9z>e=jt=dzPPw*c>Ob10;d1%`}NP>-0j)Qv&&6iOH8ctgD%xi +z+qJ8qD_!uKQ)yR<-HZdt@V2mJwb4{}?>OffRefyp>CgyS#44XF#k1~CnqF45 +z_0ZV?-D&x}2$!;TH3QKrf+M@9F*-Mt{kpGq#gU{YU#fx)lLY +OY4Y&cu*T4p>wW_pzWm$( + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/sonic_trail_circle_3.ia16.png b/actors/mario/sonic_trail_circle_3.ia16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d69c0499dce95692f28ebdc81e4d9c68be6d9057 +GIT binary patch +literal 5465 +zcmeHLYg7~077o=apyHz-R8eD43zf+e@|Y$dhF6pb1up1qp-yHdFqmZG%s>*-L{nE6JR5zWwce +zzO(n9OmbspL=15q<;vl3hG-%~W5G9vgd1IX}d2MVP<{V2lwB1`epGnC`Y~Jy(;_D?Y!*ULL +z1-ot7{rG|6*ii3y|E1*})$QJM%U8K3GRmeiYUbJK63W$Oob0;$_LF;cd=pu?yEEd_ +zuC@2)X3xqUGrcBs%dXYqGm{Yaj-*Il+Q=a90$XfB-i&bVH81DFvz}-1ipE#^x0lI3 +zmnAPvdEK%iXisp+%J~=i4PNotY0JZs&3D^cb3CreB-0P2yt{j2OPsR5Z41f_MSnc` +zL)s~4BFHlx!haT;)nDMMb#D%?C?$8gyAS>1@&H(M@Z*wz*K3c8ec!B@mi5aw(loQ^ +z_L=N;)lTR3S9^JyM)dRDIxBUzW+mTk{SfQR2}c%`1d_8F1F5JM7oQE>aEZsUsv~9d +zUk^ADWh=dIscQACpRi=~>Xs^z>y*^DZRL}XCfb4~B|3#9AsPO=PjnVsSaYVO$Tnfn +z{@KN)s^md?-*x4Nu7B(5U>E1wsM0llqxKCSpYImrG4;$UYrmIbzjG5Pa%OMLdtHjuY9x?P>p_WJjsyANz_v8TrvH>QoVZP${cP)772Z +zyP?`+Cx6S^szcQS1<8XvKkL{&(Q|V0v`UZF3BHNSBvEnG2eOM_Z+q*q;m${f1LGI` +zGp(80*HN-I;SI};3$JC~Z2Gh?+0wjn+PvoU`a_*Z3O{u#Z!TDwov$?9_bt18&ewb9 +zm9@L#%9f21#L~szp1ZaE;=~a8jk9%wYvse=zcgXdl8!omcxx?Ey79E`YW0Vr!{=No +z8Yc``OuW_GKho#FWFF}$y9H)td +zS{)>JiEv*CGz2_w}tw*Egn-${<=hfSO3Te#CDqnvkX97f5ENoB8Ol&$f8cMi` +zfq?f%k!qdaa%*y6*kD-FExrKRl47sIzN1WTy4Vo +z@{;?S!=95$kbRe;uW4?z5vG0KTRr{o;izL{a+TV#9SdvD2c6mZ)rk}Scj%h5 +zuPTemh93?-mN#%t{ca{{^?~~jje(Mkz&rJ_cb&$@#w^O*q_uK5LpKqiU(D1-!6<3u +zBN(Z}`BtMD^b-z88EiEp=p3Bk>hKi8q~iT_sD{TSFcmK`P%G4$)p#lqnMvVsnKRxx3WY)-6br;+2p}NZW?~R4 +zWTJgoiY|^&oJJ|a%n+oB%W@(*GM!QJcwn8|O%7JkFe{kscEFD9^fZGBG++<__5%O{ +zu}~<7gkngn5IEX{Rjszi+C+D&2=o+K5wk$V7YdBVJ{B|+meK3)sTOoRXxoBVoF>yL +z6c5Y5O^lDDQ?ntRcJ!G}~s+L#_2R>l;ehT{-|N&+EFfn$0Zjv#V5Vy9xy0S<}LsCZ(&uy-cLfG~QJGJ^6VOc-gQdzaz~ +zBOb>ftZX8wSfY@L6+)3zrVxn&dO-;|MT0bFSw%v=xNGMa3Wozu1f&~bL{e~p*_2{8 +zVGjld+X2!dY;^!;`#jhUtfp{;A*pzhG^luNv|N_bUQ}FVce%h(Bx*ObgK>9!DTLvA9frtpy$qA~Wv59!V?ii9Bn9LEIA>5? +z_H*X?cITg8U%Vw1XOl}P7C}NOB$CGqMX)3g7K(UXr_EIg*be(-w@S7LX|=GU9!j=H +z!5TIZG$1A$Y0b$XIF{{`n@-<_j>W$p;;vR0F38>r$`CfZ_pru(M=yBMMf6gSc2 +zvqE=-bjjjyBLXpZ&4C*nxL*o-ZkXL!!WPos`0CESztIDre&OV~^nD@M3%Q<4f#(9h +z$gUT1J(mK{1%8oT|2Mf@dmp)R6ZqX{0T0yK_kVi?9>!nNO^*oW{A&7<$O9u6bL1?V +z!x{7n`*z|KZSn$>0~w7rY~XhThI{%rsTO+HfxkmWXhK8cBTsg&eKY6y6z~to^6XIw +z+e>y#j=x*^_;JPE%F^0!$ftJ1#M3v`(1xfp*|12sy%uj}QyVT($>%Nj9eP(hX7g;j1hGt*90T0Z8~<*Oz~ +zB&(0--toHnNkR0wtl6J$QDSAK>-`^xxo=l2YF|`Tmpx_flm||~M#A^X4V}{3$RoHg +zb9%;cne)!a{=DYJhV5BHBFnCQ_<&=HF59+Z$BmqlgHF(-nWoeQi}EGsxvgm@FE$mI +zy6rz37x!z{xw)bB`;i9k&bgxw75foNXLXzDMTtBeo +e@S_iY<9wO@wq)w8sZKyJjwWnI=)b1UUi=>)(D(KL + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/sonic_trail_circle_4.ia16.png b/actors/mario/sonic_trail_circle_4.ia16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..76601b9d81dccd1f0536305dc327637e4034bb5d +GIT binary patch +literal 5446 +zcmeHLdsq`!7Ec5f@r8;?6)}V=Qk`TnNywv#ydPN-f{+zyOShBB1O}2!%nT$z>l-O( +zEd>z}wW3&RwQ7~FwNh}YkL^nktuO3WM8(#{YU>uXTK7&s2wT^#-?#nGeBUIw_x{fB +zocp`yoXMmxAwFib=M+yCi#1vm8<_|`In3qZ4&KjEdl$1}Y=8QZu_Gjz2uT;3d?_0j9 +z`BwQx%hIjeuYEVwpX_|2>sGX?wjpH1#tEO@PR~7|t+siNm@c{I{qC{7dY*+W-_sS- +zw!5rn;mVZ4X>pB_n|7D_=cc0GS5srT8I$Jv7Uv`u7sW?wF8O$rpO}0CZ(O%x$*bPA +zJx6!kRA0GqBJk(HStVohmb42h?pQ+VN*DRw+Y^4zXe7G79GhL5S5&}hrdHoTSKnWd +zs(Hr$tIjREw(ayAX7M<%^B7XpuDfk6TXu +ztIa=J5v29Lzh>gSOO-3ESV@&Qn(gt%>^JG5JiD|OtI3)|m=5IdkZoMA=d?KMecq3>3H{E;BEY(d#T3g;K7(E?7RW&8w?fStV +zvoh#;9Z?x$>Z+#ri4Q)TZV8lEF7*i)*YpZTP9X_s-YNLdUJ&-99SAyMB?6?%b_U +zCEr~)_p}XvIh7qxduCA4MDEVSWM7K=TDh=@o~MMONz +zevtDUHWq9C^l5^3e&hV@T)9_Nn0tT}k_rL>e{H$AIibxXI)*6G3kv;JK{pOl8Zv9| +zjm;g2d2|0l_`F6;-F^2!h<5hsqELC#wy<^OEmH5clZbGq{{HE%w_l%rcz#7qb&slk +z^2};ShOF+2^}$vfIgIbB8s$+;39E%+-ZKL|jr<{0FjP`Q@GqNnWuS_h0X< +z4>~YzqRl3qbb$NKJ2S~0pI;BcXTAABy}D^yp+e(#b#ddFxyN^Wb@b?*pQy%+uePt> +zI<7vXsc3j+^By|2^uwNC%wl1-_@`#cBDP;*!jjw#8V8Ftb^`(0#R835j*(^_Y9RGE +z&tbNLcEVyQLL62U%fxAp9#11IO70H_8@U|9pyVctHL%7Sfu|F(xi&m0H(rP3W@0h} +zH)O7-!XXC)W}HSj4ztNZ$sJ0rlUEMDGt+!7#|fb`mD~lI1Wp8L!#N_JhzCPa4k8=j +z&h_LdYzCt|F*3T30*sX0begux`Fy+G&a(@7q%DmvkjZ3x7~vxb1P~CFW1&$8WT65W +zie8RLoWg8`l_p3Fhv7u^WEQRDa=|*Mj~uLGQ4TQK=YSbI=_%U4SAl^D><0k&2n)n^ukGgHpEO$H+$1m*PXY7?WQFCG#WuP +zh#1mKL?AekC|G0^OC>^q(MiRegFGxjrQ{+!cwi>MgwjURW(MU&SPZ0{8d%a1W;}^T +z8QBEEh)^a$WUx?%z`;V{0BAmLqd=N7tOA&aAkGy7CXWW3C`dQLjHcmyt0m33z#NPm +zYzIh-GSvZ?o%3Kf@(3G_(xgpCk|rgWiI&4qI*W><=qnewn#7!jPB3m@Dz2~Q!qGIo +zbEx1y4*VOYq;%45`QLa3p#3aiHrh_wGPO3XJ_E<-$MZZ2+|QHG8<3+|uly96jT@Xt0CenK!qQPo8V>qxU$H%$ +zCmxZ=I4aglr8o-drDBlCM%V~RMG^#(ibZ<87!ym47&@4pB8{{iwc%lDAP2xXgW__Y +zGiO#`{sj%j+tYC-xnM*9!NHI~s)Ge`p;!(JxxJ^&QSg}#`*61krUz*>a#uYROplVQ +zm_$slll$c;+tpf=^{I>5vD5Pe)sB54SCWq51P1Nu!!^TYxa67p$`wI9wgr$lM)5RX^D$}fLg1uHwUmm_W*8TnT +zGs_=5NY1fl5fevkOW0#jzCQAfsT|5fIx7Q(KQ)x98}77?t7pH)DpU_wmwq;K-J!Cn +z<~ix(%jV51E@h9N7gK)xNFKYv_ApIp?-=FL`?BCC_g!dpodZW643YN9V85z8cbK>YB3RR?O>5}Ku+SHbjGbW~rKH0iO{l!^ZXv}#yeax=P`~Dg6r`Rj1 +z$8;HD^GmiCICx2SwAU3)%aPAZe_rOL^&8@Npmsa%mh#tmVUwH6KLPTvR8jGfyTV^t +F_HWZo1sz3|k3TliGusV4^#{@*4Q6d;vP%G5Q%n$~XOq>}=g6}8Awu)MX +zQnfr(wCal57wZE=YOC7{RBH=Tv<0bki`BJO``C5wB#3eA+V%Uk|C#U0F!$cy`JHor +z_nb3Kic@DK4)z=F$Kh}WYm?&i;4hc``V0iuHu}&~4rjov!t_~;9>P;dq1lh1H#iMt=`d7*B!oK$40+QMm;hyOZLIr*Ya;T{67!)(RyiK*}(nbrQ4ft +zmTt2wuikU@+py8(H?Q{IOwiUGkM`a6-02^33tLkvDL>y)imSo9KRjgMTgcMd-o%Rs +zHs4*aW_Iz2>Gg5j4{RD;n1uxQWF_(PhDL>#IP@iJXC&yp9_CZp8rphtN#TlRi-K$J +zp4xjO`O5Xyh#w;&%S>&agVvw;*!D~1wja7K7lnMSkW4>fTvGc+N1A$|V>`+Opx=FX +zE$@sE5fz#b;kSj>*pG0{mYIWUs>r>;!2ut2dcm4^->;ND-_#(EoLMt%<&U4q^Q@wq +zXV+}0^Em%@-LO#0v!0PVXXn;xH}Hp)4Yog%aeQ&5jGTQ=MkROnj(MG%APH&Qcf5Mh +z^U_nvj;gD+eV0R<$F2(7)Ui+GHzjwjW5>jXOh?rCOpll>q+n9*sos(=UOU@S?ilO; +z_PmNJO}77`C4StvvKPJ@fnLWv~oENgM=hT{C4|ac4`Bs(o&xgzZI&}YR>P$KPu3Ax_XE=TS +z(Cc*}d->bvYL3)-3$pz~PxR~_7dkO}+MbY28IhUlEK$XUR~2oa?s}oqbZfuqozaWu +zcZS5PTEo{$kKGJ)<^w^Lc?Ij!5tW%rrMpk#8j|`u6 +zY4d@!>X(NL^mN6S=Wpz88y7=QZaqDyNg4Fg#j(p)^_-pr?`%S<-uT$?Ro$DSqvw5V +z&W-h2K}1}LQ5=cx9{K+2*Zx%;_F{Kq+?^5Z#kcNGM^wdyZ$94@@B4DgqQS=0>dUuJ +zR-9Qk>bUkr^5mtc8_yQ{9$S??RZv;lGW}|O(8lG_0naS`bg8G&UbVqv@w(X@j>kA6 +zHa1lo8+$+fLDFyCR-&7BGBtR0ea0Rh92g%naEuaCipE6ztL1V<>P4S~L}H^sR6JTc +z;d;Zis|Gl5pzX3(aQMP(=5j;wBCBdt>B45m_c7}sc0-j*DUSMD$Kml7zSmu +zVMSTdk%z8VbmUwv@IggD;*FOZFN5d7<~smqs;Z +zlF>aL-N)cw8rhnXlo^(xq}^Nebsm`BJ_R +zinkL5VqTOVS509#us$xKj{=M|yj+H{!UBQKX5-r=e3CK>L@Jd^AQTJ4VhA80+F@Z3 +zJ7l59uoNziIGjc)!pab&h0Agx1~Q+~@OWUI+eZ#o(Re$U>~p}5o%A$=3AA7!1^WR2 +zfmkS1LP9YlRteng!KzNzZ*8IbR0Mho?1)t$;tK_4^FtOi6JPMa-y<#PbkMd1dYmTn +zDHM+{z%9%ecc)fUKJD%^pT^lKXWS+%M*xCydUm%-)ap|EZCDwNgxTt}VA1YK4DH8R +z^C^=PgP{W4gquMiG+-7zglCAH2M6@fe%O`Y1OnXk^FM^Xua`3xr><}uiRQCTwQ(9A +z8!wEJD1pJwTZ2KO66T175QfQ6NGcRbAVjK=LsE$n!Np365)&eBR9XwoAQlv7sQ@{j +z06ZeONRFdo8Kh7da6q9@LMj!egv1iLL4?WWN~uWbMv+1hpb`+1dsHkH#!}(9L5`vr +zBvs%b8kHD_3@Tg-iNHmkBUdRf1anfc=K#l~YBfAD-$m}6Ni`u%4oR6oc@Y+jw9ya1 +z>4X_iV-Qw0kz6cMDa0zFTrQQ0rP2qW44k4tnzO7TAzv(Zu3#vf05}nlZiE>z;sUG1 +z=v-hA1_s*!(jshi0A}Yr*bN*@;Rr)g=_F~=@YvY6ETyxkxaz)gfs;wpY3Kyw7+Z0D +zH8&M83Y^Hp~CU^8nh<5<@XIlA51Fr5N&XlzBYQqrm-4deH4?hH_|s +zXH)-yQ@av23D}a9!_9vhzQ8qdwImbal#0uBwgDJHUGmdN0q)8VprdOE%|$Fm9Q511 +zV!J<2JR*@%nHZDd1_>mR2o;djpb|rd92K|&IW0kPsRSgn^ML!=X)=egAru~C1UUfC +z85EcEoVk&G`8VNVye$`JlS?QTK|(nsQl<+xmS2 +zBJk7fdMeiwDey$#r`h#?lgsbHD>rTd|M%Iz3$^Ds@&oWPKENclgz8Tr&7oJ!+vy*PpC=R0Q +zBRUT(Gmbj2v3q&Vt`VaL?BD9s7MCcSGB>mBljcTYvZiP!GAGa&()nw}?tAO6gmOZu +Xh?vaVUQ{mFB}W@SBknI#=dJiRmDte6 + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/sonic_trail_circle_6.ia16.png b/actors/mario/sonic_trail_circle_6.ia16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d4584dac529b66e70fe52ce67dd605d3ffd4e5fd +GIT binary patch +literal 5378 +zcmeHLc~}$I77yYAxBwM|r&MFGipwOEjU;0NB4LRVpuhud3wAOyfx#pbX9kksz8C9) +zprTYQn_IOHxAv9if<^1rR@~}>sHjNog3Gh5yxQ7#Cm@7ZpM8Gc>wo6^Cds|`cYf#G +z-#zC{Ci#i+F@3!TdhvL?zPea#68PkEmq&N-ewo=lo5$<+FfU~in}pi$2zV&F~3^p@2t^R|@Th1=<^jW+= +zFudQooxlC8s`U;^8MCmmxw>k@3%Sk9lbAl|75-X_S)_r1{H6t +zdr-W=GPh#eoo@yWrM_O)@*rBb|hcecb_ +zsaoASZPDcXS0~nJH&zu5%}Yo9n$u$i*#p9Y3LHrVOX8#THv>J2&jg$y9-Zsoy{SU^ +znIdCh<|x~WuwCI1D`#AC@3Z35FKmy?HvDj_ak2kRg>>S+%vn3%Ye-gicWlI1Z|wVH +z-)5imAj1N3AmT^Z8hM=1ta-i9mU3#lpP%>fYdsOo$DfqRMjbgM33+|Xg!w;x6`E}o +zKRC5$O|{$kz14vMmRH2^PnDjz@e>7e=5 +z50;)8`1#4jf0;gDTu8aA +z%r~;@={?P5t5e6?zPU6a@9u>I#TmBxl@q4d=hW?MIaqw4UuAv4%03&V}-_r?3q +zdu};5tmiy(#DxgOzVN2OpDbMUB!AG9rdsWzSGhOO>PHP>r5C=wxH-!6-P1GrW+qlN +z{&=|b- +zy+%exCh8(1pQb-Z`t=(M^b-yz`Yo(U-6lYMq9VEnDm2tY&Mlc=x%T?vVGy%rc2jy@+J)Ld +zQ0irTae8>j?z^S8lBS1EAp>WUgQ|Y64o?`pbjdg*c~iui;?qjME9WHA9fn^ow7mb$ +zkRz#UE6ZAS`vZoTp?j_*+|=E_MOyX*Z3=Kdmu9|YjV>NMAaeN9{E_6u`%cDof +zJY;IJzuZ<*;k!S)c1f?PbvxPgqK{f1o8{76`NKNJEVsc)iF5MS>+L+A_j(fai%I%8 +z1f$GC6sHV?&~CPZe!}Ca!|hfSn@X^J1CdEuG=h8kY6N@|*9g+&dRT9bB(liZJeo+( +zi%-GwreZ2w5FX~Gwj+SROt2{5ZZ=sM#I6xIc@glPn-&T9P6#_yBbcO5m=|A7<3=P&8{JL;MjAmD%UThU$Y!$%ZBijcXNtrsl}ZFlL=p)E5D??A +zu&5ofFu@!}8;6!)Fq*WoBxT`qoT!1yVKo8)Sm(EsgH4hAc;!kY7bWR`VMOg)2<@WQ)EZ2BC!w_nay1+7&a=m)88{Km=w^qMM(rh +z<X +zE?xwuFcL?cUsX!E48s*lNTnb!NG4Z>LI$Z!0TBd-$`z;#HA=-UR5}a8q85zcr~tW; +z1Uw1@0ZWXS7(!*R43dSSMo1MZ2WM;{RX36!Pi6pAuw1YERyj?!6Fe06)dAaNAtG<1RqoU6F@ +znj4R1ikw5W=y~AZF(qeFHp~CU(+TZhiJ(~O()B+%^`mUig= +zU{n8rQ@15-EU=|$hl~GYVp`j%ttFXAr&N5tvkf39)+RrL<`TH`2!M`lOIQ|a$s|C( +zZ7;T`^W-xUSz?qLQ3H-cuu?9DWJ+8Psgy<)WWZpl+z_ge8gXS;c7`&tHk2kJGC>Z2 +za|XrbJZFALd;X2=innDETynt@F$9M~Vr2>}Mx=5CRtnlqo39pe9ro#N)m#tK>k(Hy +z)Lf53bX+1P=UA;KlAycl^fYh&3(m#9JxBk@+!fYl9Z6Xopo+8D1e@i#?wVYX)pS4e;2t3CVvL=S-arIQ!Z_oZAf<$56n +zUI_d$yI#umLJGVP_+@te-{kV@eB>r9;CG)5JW!8t55d60csIku7%lH#mhZ_WVB~3y +zoy_ofz58>Q8?R)2AeijM>hw{)Zuj&J2=>rcRGGolKAkoqCH7d$>Z|?c!F{6Zj@N1n +z?mtP;S^LL$Jgl7)_<7ZX33-?Ij`;3k)jF>k0lvK&y?Fx~+QIW;>OhMlkjo|Q(9$8*rZ2dJK_A4~3Z2d)h +zJZ9M0z;JP4#pcJybI*U0GiS{!b&qGcZ%lflQa$h3*`+>ndyalQZGwA@oSzqLrf*(4 +t`FBlf#>}`;W2Q_Un^wAf_6_jQ1g}n>AYFCJ2W*3DMLN<|q${XM +z5orp-2BcajH=uiO_dVbJ&fU*B-@l#bSxM%Y?|8?Uqs+DDN-#UE$HK_VNI^ltVxX^W +zLH-3ET=aD0Z{OhH4GIe8s9-BQk_9RN=uPy(6Wnn?Qjj+ehzlg(DJTL*?`0FN%+y_p +z*`GP)OM_;RdDiBtpqM=~@UakHF4Z`;l=JxXE$vG*4`M?^+hyZxHsb<$~I7`trwJrUHl1{h5aE&1`kY5Kp(=`U@iJ35oou+^{#HY6%hBdWp*@dTr53%tnc#N=U+VKJwh`qGzFUnA`Ea4W +z0-Z3>T>gvH(-uuBxO1_!KIfLpKi@gBb$ZZ#0NdFXv>s_ESg^A;A=t9w^X>UD%aI~) +zW)xM%{a1FHOtPv+Vy>Lqi(z+gd=T}T=3UpTRTb{=XC47{3)0jO)1LPWy-epzQo?68 +zQv|MybcgH@uh_vVfOr^-P>Jao%6PT&$`AS8SG*Zeo8r|N^vsrKS{ev!y`8P +zV2}5!>T7Pl#B|**DAU^3A?!O#rvGToI=FGU=6j^8L_TS0*7CH3aAMn<)h<{hWnhJQ%nen`8}4|yu$B**}Y3+lZ7=_9v?U+bo2?Og{o;ArygvY +zh44Hhj^Fy!ciPH+oOhD2~G~xtSFngkaI&`sr?VxSD#YidXylJXI54R0VS<|JVKJ?7{G5r9)deCAQ+d6^JsyI;6ZzuTjVN_Y& +zsr7~YRsBl(J}>5YV~t`WCY!bqZgf03H6^{BKsbSF<9K4@ai+kMo`$P@!V8#Cc5&@J +z!524~-W-3|4@+Nx2#gMe#!AFv63U8F3)C~Lr-6K!lX(u2-I%%MbeWJY#?dd +zx}5v+6#6+$UNgP6j>EV`V;X)%hLZ}1ce-0CcODh9`D)jbsjGWLWtnY_r+H=NE3N1+Q($?!u1t__~SdM8CESv|=sTIVtazx~uNcshY= +z3ap)oj@-~LE?i#l6+@@EH%`^(fY@1^>@GhB>Ey)dZ;b_a@KHfMl=CH(ioUXWct~4R +zF4GwT+Z<+Ml2u0#49Dx-yGztqohUh^LyA8tTkbe-2x2B1DTeJ6&5n;m(%Dwb;bwc~g75n))1gq4#TMPI0WUu%pCy +z=LdvUP2RaLlAN~&5Sx`VhD|ap#Nkh&Wse7Mik8lIk9krr^b4uGm-d|rO;iBvu3liq +zo~80h&|Rq(%B?#up7l{2^+GajEIqN8iTWYKjTm~sSGHw;%`lyb&0xYkKQoE^?OxFo +z#hsU_@)lRkgcwN%?h22O4o6$15wmm(1;hg6>7S{DnI)eQur)a~WIWz1<@OZKQd5#L +z_zpg0&mvX54l8MT)Th7r2%SoGjsJFwee>ka)JGYBo6Rsv&rbL#c;mbNaQ2GmhhxmP +zC$A;D#%(7>Q+(7hr9L|n&3TVjkg~-LJ5VTTotA}?4Po>cOR*^#CI)6ydC!ZSV1!L2 +zrQhw6HT2XO$9;nI1(j1#My(Q{pFiHqVwYuMYJT&P +zv6ewKd-dh`i{>0&?5Sq2j#uxb(czQ!8Ct!N3%xA66QaEHUy$)^v_&%;Gia0Hu^k!v +z^ha$^6>ZnweqRdgpJ*-~+>SnTKdk#{idxwf+-`BMgUd>kFGr6JuO~)1al%Bk+!%nv +zTByfnJiiGu{Aie)D{I=F)5@&E{iw_%P%`c<8#Uf!{H=vRI$lujenpc5ioKZfg~qg~ +zr#waOp8U;+_Y?x79$)KnfcWOVcp`3HGdn0|8Y>V|bg@{L^Z8nzSQi6MIe*dSw1Luy +zJ{;^*&8=VIt)@7Cf8vZwROU;n2^f%B4lt^jxEDFc5M3txG$Rvn8~vEY;{!h +z#`oPqxqKmjQ4gqhmmOx|UrTKQeL0s-b^gJ{5_>u+eNOLV9@4qCKu?dOF~t$Q=R0#a +zhKzf+Tle*g+ri8+2`5WqGV4V(;#Q~o4Xk9SVsx7V3f~3$j&Lj0&I0?RhX?YH>MZ3c +zYHVSR>s~yWE4C`D)a~Y|4mJd$M0vXC`&Si;r(w^NwDAKqsDXNCL0RXe_$2MI7j%tu +z1>Rll9x^g4Nz)gCvO2!%f0rm@dlepc*_)dmn_;~-mI3o1isX>mg4kO?+oi5hZ@`JW +zdB(!rS;N(@?PtyL6Qg-n@a9@OO)E+6t_xd$fl|$O6QG$7h1))}9X +z`37ytAx^;aXy=>^~ +zQd3%(JkRy0b0LnZu85fX+b}W%VaWFzrh7BJPJ5%hv@Jt(jWfC`?IQI}HheK}N3}re +zX%ln#M^0$pb8k#rAEe%|9yax_`0}1IQ(Lj&e88v)?YRC%3=d1nw``v6gv=X?z3s

mXYs_kU>^@|F+;FMU=+(s= +zU40WSy2{m3&caNB4~H_QhJ|dc;!{;B?zx#IobdCzP1V*`RI2+1ZoB26 +z-^fVyD#uA1d55E{gUQ>YbPpZXv9&fAH~VJfCc#;kLM6??;Q54q$ktiuy($;T%o#(6 +z1k_sei_1cralyiB$&xCcAFSs+ztHMj&(0cmHUGC(Wz`mcGh7GlZfG^Q@zL`pu$dfR +zOZNQ!IO&~!cy=H}=U%J|NYeZ*#8UFc9Sj=M;=69f=3ZM9u@o+0rF7JR?MV%*-MRYl +zJ~Q+Ahlwwd`9RL2qcaOKC<;C#L5I^W)Rg^AAD2w9%)Y&c41JZZMtxH^px5TI!+Qh& +zylDNx*X(Y)tVS>`nh{ABtiVA3>*)5ZOU@S-b1KJLSrJ_Y6+M0-E+YY%0H`#d)aPS9R_5~E+(fW+UaeAjCa>E>dJEKX +zFiY041QAcem8Q)oj2*6wWR&T2d8H3ayS-Z%7vB20q)RN_jXH^cy;L)H_DkFT`+!=! +z53${Z@mb`3?y)@{x~N9=D$lXWXEhVblsf~hnXk8O`C5A=7B*|RRH%Y$BNG>E#8)V< +zo>JdW2Oqy8@|D2&M0oXr?qmkwn`h**b#3iy)zg9zGJe%0YJPqy5wY%b>wy8KRkh&* +zkG_4U3>qfhX`{y5P*AXj5Xi?vI}>9h#>)eY!g`@`;6M*=^6`;^LRl@)8-;Phk$`BN +zGr?0uc%`vL7)ZdX2;0h=Kux^0a4rP>U?R>k__P%!*bRfg3ahCyDhDFT1RgjN3K;0& +z?&*sRR1rSpMUwv?h#|tjLkP)DMcB^745;Nr!~x~Na$qP(Cy?L|7gl8iDig7Iq=mNb +zPYUu#Mc9Qz@ckS7Th2=eq5IiUE#p^fv! +z5DDHSf|n=ofD?uG@*}AT3zO%8Kgr3n7@a_}@TY-;@gco02@5eG59G+}Ap;C34ERID^F?b;+D4a=8&aP|i4rx2N;r#6e<^C@*^z2+-J!?|B#XI-{i*u$RE!GKbzoS +zpZE`cem2*C&;ptIA0vM&zW;>lpK$%H2>dPZKh^b5xc*iI{ucP3>iS;`7vrCA6mXv8 +z$Jzk$`+`~Heg^Wp20FBno;C%VB8j5fAQM?lmN0nh+xt>bFmW7QloZ$Uc*sHk$-qPh +zFbANgW#rmK7@Z?a+zhletn50TTy=;)YkT}z_~e<8f}Y--*}QsD*&zd20$5;lJH6u>rE0TSDk+ +zz36pW*^dtgn(q$8RXcyc5|e;Yd8%v?D~^9bO*olX6a!jWm57t7!RkkimtXHVjJxF**1 +zP3Y7I243YHu#@RXcmqdhN4HGN&`!Um{u?1T5qmoA3sDhxp=-yw;DEmCss0g@RNQOf +zAv}-D)FC~xt@ex>=~33a=I=rNRQ3_BYA!5RJJ}9e^M&?INpH?M^09EWjYrL9pAX4p +zzg^NI@IHoe42#vf9!b2E@Fe|Gq-ez5`L=562D(S)+|jb{?@HvvrZNsjtOnFdYe1-S +zHN=_6GNMl{_9oqjy719}Bb8!1HLhvArmW46uAl@#K~R&_5fQ}ZCs9h#<1}6&GYyU} +zEGhjeot-kHU+J94vqJ?CGEJY?A#ruMH{)zDDKY#OcV)F7i^NIJ2chzwTn%@OKNxJ*Yn8D*nXz +zu_~urW&!7*x#SRpqAl=JPu-*0$ltEj+B|W%BYEctCqP`sgyuPgD~7f2V^D{D6{}-p +zuV({ro)&T=bXbPC;L3z-Y^9A)XsbyZmlC5+|9-~N(}Gz+(}dZ8wkZBe@K<>X7TE3h +z^zBxGFWWS%w}zncqE`M#23_uoTr1Qr_3*fL>CGeQeCm~z!UT4$hkP%E=+OnBmu+HP +zm!wsWjhu_`72X!Gc>0v7DIAO=_|Uo!xe??b_k#5}Ip4(H28u^bn-qL`POncpEELP^ +z$B@mc-@s@daNRZnsfQOo&L_n}!+#mFO7PJdVSGY>J-}kWM^=v{M +zSQhcRm|Zt?4`yfgIOVIf2z_IyHHp?NF?CM5@!mB)Q71liH5z&Px8ss5>i1fxSf1rm +zP7Td56Qs6}33%eNk3yurOMFlG#CG$Qd2=xOqN%{Cu4cWbN}CfX-KP*s@VUt5L{@N- +z_}bKzW+DBVh`XuI<`}n-<#$Q`%XLq*T!XwPS+ENOOAO^pU)Q+l@3KGRq``fg?-=I( +z)D+Cs><6EFJ47pfG%nP?tTVA?dDbQX*aLb^;V2kS`JfaDec32T-@~0##_U5{VFZNl +z^DjOtxUp3oAC?Z?e+L5(K+NvE{`z%+-EwF>bY>A~RI$1>2ecYKgT4LeO$=~H%E2+|E%UCTO +z$j`so$!~5ox3N&ww1ZDi0bf;T79WfKM1QBF71+f(q9Mv3tzL=|)ykW!m)?wUwPpe7!}v+{Z3ksA?Vl6-I>;TD(*`IxdA3en(xi}`HA9L& +z{DV?OfB$+;2cXnS+UlY-wpOY)tS;Rq1n^YcWuDbRr-L=BnLki^qG^t($82}%!rHOp +zG@jW;zE#Sfhs~#_g!}`9i_ZvMS5`;D+BP<5(gAnO*3^yw%+4FuZE1A7jz(!l#OQe8 +z6ukrVnoKST#vEroS^h%Q9+l*L;fqnT@3fDhUP(L{Vm2pZEiMTfwh!E-%?>~Ifvc?I +z^6Hmq>vI`^lU%nKI{l0Z?SLB$ySicl2-f(D>^3@C$&<Ab@%@kj43a8FF*;)aHcstuG=`ub(M@ +zwaY2{#G);5bWtXcGE2NLjH2{q7Nc5LM9bx{1f^4&W{EZ3cgF<+F-PGP58Fnl#9TTj +zZ(4?CUp+q%xJ_g$@t j?MH*m7)-PE%`$In9SwE!DSZB6ic?TVBE0QW0ukXLN8>er(^**A7B{VJ9%W>w@D?Pi4yFpZKHFO{E)8OwD +z1{fH5rLWQQT-CTk6DuAfT~QSJavYAC#EpaIjwzP(<$oz018Gmx&QzG + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/soniceyenew.rgba16.png b/actors/mario/soniceyenew.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..5c7e6102f8605ab811eacd4b1c60c56279067e03 +GIT binary patch +literal 327 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDEQOU +z#W5s;Gx^V_r>E=N7+HKww$E<(p7EZ+jje5eePQ+FZ+r~5&Yn4Q;KO_QGWQJ$;>Yx> +zUSHGw!_}}UD=SMQYeqrER2B9EI%a?GahlC}`7Yhy@Bd@cBBveZ1S=XJNP5BN7=EHd +zTl^2Znw(q0pMwl1ie?;D*k~W7-SEkSD}igF$!jJ3w)#_hc$Qn9HgsZ+)a+|;+$s~v +zy!EDqGsA4xl3u19zJ|_&GE9$?7jqu9_2KtaWVr0&E0r#_V43QVGfJlz7sxnjJ4|8z +z@Wia^uIm(Ljcu&`jEngscpEPYNLVU1tTtI1&GA6X_vJH&nAV3YnBANcOjy`#SQz5M +WTsj-Jm_-2tfx*+&&t;ucLK6Uz`*@H5 + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/soniceyenew_closed.rgba16.png b/actors/mario/soniceyenew_closed.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..219a12e973b4500c1ebb11a5b05dd64ec052795e +GIT binary patch +literal 152 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDCp(s +z;usRanOw6^{kc7}?7_{~=SzxQk(I35Ykim@$@t>MyftCHRtY97ZqE1#28M|ZJVMjv +S|NaUzmBG{1&t;ucLK6U0sV8dy + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/soniceyenew_dead.rgba16.png b/actors/mario/soniceyenew_dead.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..73b833d303d6fbfefb0be489a681aad723849caa +GIT binary patch +literal 675 +zcmV;U0$lxxP)= +zpjN8|nUq77pYZA=kJ#}k1JRw$W^sFa%Z_KUScKJTWkAR;LdMR%LZUY@M18m0MWIk& +zddFfhJUl#r3}`l+5ekK%QmH_`*gqY7dk=^y +z@-ML`04D}c3>=LCx=p#p(E#v$UmOhp*W1(H3BZYg69eDQzz2-L<%5a(oOS>J002ov +JPDHLkV1oKKEN%b* + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/soniceyenew_half.rgba16.png b/actors/mario/soniceyenew_half.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..57298ef09e2426eb76c527995cc921b391dee216 +GIT binary patch +literal 316 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDEQ9P +z#W5s;Gr4A;`g40`&IdPNpXcFv)yK2{-rPinjaO@zPg)=ytSP)qV5%!eMgKRxgp`CI +zzs0vN&v?(U;O?0-JUsvZC6=>rmnA-O&A+>=HFV>wSyEjV!hGw4-Y|UDHs$%BzsGSS +z&k;*eBW9hpcLF7?BGwO<_;EJ}&JoS%z&M>?tBz3Mqy@rbqb{t|`rEeetDXd1D}ZPuqbE4lr>+ +zm*wB%j5(LiGWHxerfKG2&YrMYM#bz^!$koJ-bO}#MuvOc+EPe5m?2jzIS_@1cUB;gNF)-8L?V$$Boc{4BKZkOBoc{4 +zB9TZW636zJ-7n{MCK(ubZ_Sc(dMc?@-FvIj-7~OQ{EVLt{NFpU@n1IJ`uh5Pb91v$ +zV!8gPfXmCvLI}~;)>a{u7|Zx00xm8tRuZR(zlx0C^l^TEUWt=r)%@3Q;$A?WSd!v% +z-m~BCz}eYZA%1&%>z;FuG=1Od!0GAfJH%F5CY_4im)JP$mpgEBa#F|vbx6>&#weII +z^Dhe^S@I+tJ#G@FkS_~3Iyx%np2Y23BCVBc6|{B-4i672IUp@@t|h@TBu~4x0Fr4l +zBgwM$W%J*UB*T^K?d|RL?t%UN{iSz#ieTP@Dl1*%@&dQ0&>Y0;kP63ISPYJO41OkwC`UJ-+LSk+1G5?eR$plGaK=3;tmK>h~ +znd?vcp@8Yk-UU%WYXNUZigGWBoqs5xCF`w|Kwx}|(1&g39}38Jx8xG1g}{!reg&k6 +zl>)f=1nZGoAw+<_zP{F~SCOZXl>%B)*MN`6GbSrdQpIA20@k_tUS3{if>u>emr}s+ +z2MLvo+TT`hN80LpRU;q;4?D1mTme?%8X@?!DF9;c5wLf6cNcqmd;KGz{Z^CU`XFFV +zC6Fk#Fvo`iAa+bQb|DtG+X0DMD+m@)2n5PKiM7Tb92^v}_#Hz5RK;jTxPE?qp6v-J +zsqMysMY|c2W5HSy(BAzdNs49A`reQn3#qLqFX!SAwN+sfYz<%>@bM +zTy#y5;tvG~-dX_kr6_@^eEQ{7Iv|P1$({fB__%m_dMbjzSrT9po4sNC+kJ&W!kmhY +zNsBo4@9ypj{E`6FlF++IWF#PK{kEKS#ir7$s)&^aO@r+Ni1 +z2@qT|0XZ*y0%8H=&K?O+B$jb}d|Yf-06RSrlNCdpK7jBG$R5M}e^!g~<--$VoIJGy +z?H7<_SgJHZKrB^r=d%Yeq*$(u=e$|74;I7yDgcMh5)mIgKR(D6U_Mr&+uPg4{r!D; +z+{9>Y6`-m%z{)&hbxA^e<}kN2(_hl%g+tZEXPh`yKntXxOf*TGtu`N<{^?(K^;m4b +zMS)!f2&zif1oQ*|z-3n?C&&EEBhId54D*=)li64`c#jjy+b>0!L#5pDiI;QZurmQ} +z5X@y2uG!~(U}tQp;8;6@IEH&=(fOzX4Aer>8xIc;)om=K4tzWr2xS;k7V!Z-c~wB{ +z4X1$dCPM_tZ3h(1o6(^F_tH*r8#4h0o7`HGIddK_25W@yT_7-`^n<5g?CHI*k+?Gf +zxj~{y_#sMQWAP)1*f!oAJH@g1L&W@{00I(}H(C-{8RQTdpO$Vhydk+auCA_%&yS&i +zB;(9!GebY1{JgSC0o`|vwR6*d)MxEyuL>Z@s@QPg^`tN!672rIJKs31QjYbvF3jknxm(KvEs%Pt7-a5Wt +zZLk$V-aE54{=4g$fSa3}QeCg|?-Kpwk2>%-@U)_FskK$M00000NkvXXu0mjfc++m= + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario/wing_2.rgba16.png b/actors/mario/wing_2.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7be615e006b8d62ac8994478b24167ca48d40c42 +GIT binary patch +literal 1032 +zcmV+j1o!)iP)e5n5|YTF%*T{yG9_9NF=h4&`01AkURpi5{cvykjTnP +zBoc{4B5@^OSUc>5q-5q&#J$a0({qyZvv>!_9n7OVr*r^O9 +zfzG((M(H*Ci;IhSGIT15K&OA^rdcB)F{Q^*v +za=9E`ehAMW9v->~_zcn6zP^Q3m2evFB(m9TwoZ1?EMVgx^aa2^_gkceiw})Bd}v`U +zqzQRGbmDvr|BQfukOIf)yH=8G`2!v*keTB_1em~;OfvKSiw@vVPfxS+^YiQ$4gLTr +z%LCp|5Fszm2?&&JzzB%ICEZaZkgmH=OJ|J%&N)##DMAQg`MwZP0*tNZfb!88eRB8(iQ4S(O}jwAl1hZEH3xKEzD@w}@W%9I_V}g>2)LA< +zPxIM7F`NtLz>h-v?SxJ_l~;o(z2~iFsHo +z>G|y-N?eY4U%DhQtc6g~?n=aMD6pE;LKBGk_-f2`?Sxvc+E_+F$vv@xWK$oXa*RF? +zoiQ!#0uNH+8WH))$0f7Byu9o#Ke^ILsKgGccFn!Bv9$hn2YhLz~rLEmr|9`fj-P1zl=jlz*CM~&*%C)lrWtG +z0BL5F7M(_wWV^k+om6TEb$uS*R3iZ|yYx~L7-m2D+;?E<>4ijKGL(Idw{DZ{V`Y;- +znFwHR%as2B%3R)01bonSfCWBfpL?#F9?yZ&pfV%1L+u0iC!frXWQoNDDG0|EK$RSscQe*s{%|5nQuq3(U{GkRZyA_0K8n0ffi +zeXonIoXEh@s)x*PExeM%p?|2rp#p~r94hdCSKu8HX2-i06$$bH0000B_R&{9|JHj +zfXYn>u5N}%zx##|1Iho#2^g^1!$7nHjvhs|2xeJQ5_WOy?!d5*foR`z2w+(B?b);c +z{{=9`|8Lp*|38r-fvYmYOgM~;q-6x$l^lve*m41;<~@%su}V#Q35@Pvpz +z3cS%uwc=vJLF(v*sivj{w?4d4KzyP?1oBn1Xeh46mJH$L4+CBYd;=D6>tCm002ovPDHLk +FV1g@;(24*6 + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario_cap/mario_cap_metal.rgba16.png b/actors/mario_cap/mario_cap_metal.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..d17d38bee693b7a83558f893653efbb04e36c85c +GIT binary patch +literal 4790 +zcmWNVX;>5Y7RLWGlguP!Ab)cCB{O`LC5kh$FuhU;J7<#zC1oNd2K35nwyCQ40LgyMgz^a5*L>N$!873 +zk*mWA?*do*=oNK;wA{_qz6c`1Itiai-8)e&79`VVgp2iH3Y*0eu!7{z%ZS~*bcv?3 +z?u!T~SdTtJr}smXBI7e;OXEPjALl;!{?!3KUXY0{2x|MYpng#DYrsq)_IgnV8$gNc>H4`a%#P= +zP$)$G{8pjS5wWN~+#44qt5OO^4UJ5FJ%sO@O*E@WbN>rIVmJ{lX8AitYBZ>XmERxE +zoNi{|7|U{R7*|or!yuk#GtF7qK+W^?jW@q)i$!$vu&?5b&l=_wYdHak*%Y3zLX^edx4$n&#wbvHOmu +ziEGUk3u5ROY0aAMMHO`?9c-FeBIbFx;Qa1Py$Mc0=e}@_Bjz^nKfUDJxZ9Cpx{-%Q +zLOkbjBx#>&Pi9)6xZ)A2D=;bs)qe>WxC{M-A5@uk+dgAua%wg^4Gw*OdedF9zTUv_ +z{5Aap6VO%v6{8V;9%xKL460Z;F)TZ;^ONQwE}|;cY^Q&T1>h_8yBUeE)N9`I+ql|9 +zi{6A*{M^NlEM~i13#VLbz+gC4$#Vb5c737JHd$a_7YXFMEOzc5edB{7c|q=B8Y-c! +zBj#GMSG_@7A*p2=26N>^fkvKC>{8;DD4b-?Y$m5w+IYwB6qaXYY69$a#gLZrf8?L4 +zbZkjgyfianE$994BmT7wV~~YtZ>8N+hM_nj$8bgCxvh!bIw#IpBv|p +z7`So+INYjTY3Iv}&s3S|_-W$9n25P2QXS_9B7$dbEuS^Tzp#*8u}9lHV@A~6LU~*v +zQeqVfKEDsX%Xo78-dEI(Fdf#;OO~cTyIRzl +zONk3c%b^lNDANvDh^qZ;F`b}PHcsSHB +z>e4J^xlh$Qq^$dvwXH6IEM}E*8v>cEt+uar&eATIliJO}s)=XFhY%L)%NlIbR(REmdH3Pf)IZN39iNS_ +zrl!6)GRvFE{Lx@SO4bELP@dSUyVw@{b?`#)D!*P@b+6P%V$8CT{CjD +zv(ANV&uCp|jE`Se@Thg2eJA@Y9y1B`bBIP~BqgD-lN?aHyV3ZC<_BxceP+aPWHvMM +z!?3TRtFA}zavQy#yUvorhHf=8DLxAnlGXYgta)|QM6qh+@yrovZk*Wu#p2onO +za5sX#{2!l@zv9;zI~~{_0aJw$=s|upUdEJkLEW2UlcG@Pzk=~|-r<78q^0!o6Mof$ +zCV^mr8jty_53goMJR6{GAsDYs^G$LHSZ;U!3*)4%u(`bC8;4i35^`Ktw^PUp)~oL! +z@p|Yih+Y+q29S7%$_`J|o;rc_<@Trq?OQ+WJ{*Go!Z_Wp +zZEO_ZGw4m`JG;Mj3Rgxf4xJ{Uy +zrAW=pwqS-_kJ*AmnM~*u@Vg*8%VID+ubYt5vn5%Y2RH5;{-#`7y|W*7e8`NgT=6Vz +z;Yi(q<}tvJfU{2Iw|2NBL3>I*WC2S!6~u0M@sn@LM^eltG%ZYl$7e>tjpJfTaVT_s +zsbh(wjJ|iGldszWPu+D_WP}fl7m&mjzv|3>cF{vYd)7|qKZ2y3FNDQ~yaBD`s2j)# +zMH%SFDzeTSV2u5lfl4Q)C@+%|KP__!oTJ4J7~MyE>DuK +z1m|qqr%RO<>hjWFQFya*baZ>paCo`jyR|Ybrbf)C-?6r56Q4IORNp^Ln#By)`+q?K +zC;D;ku&4}w_A|2S=$9`vnQbn(}F6 +z4x(Ygl=Cn*g&H<4HzF-5rD~!F;cewAPI1yIemTw3{6abF0{ZFB(E5kNpM9uOFKwYU +zxb6p~-}se6%C*rAHwvz+tiifzM({UB+p_d!5x{(P6Y5P+;*a4Vu!ejrLN1HPgS#P- +z_@iqr{;jMhL_Q81ugBT9IbLQx-FjSZU$S3Sy^K{l3b%bdW|P9U%os!0? +zW^Ip9*8DxSaS5tWL5}{~&tVdhdNW4ZR#w8pWI6t&L-WqsB=$^UpG%Tga^kOMfrO4y +zqLIECO9rMEY)d7pROR}6E!?*6{%q2{uiL2{L^koMMnLW>l{-tkYrPsw#^zl)Jxq09 +z5C8OQcHyCyKxoN@9(97QXp~IB8Wbvuo5z-X8N0Zp5U*r5Q=M%cn2IKOCXxCLw@pZ5 +zT9|csZ)ej97yN>%dcB!@9-h2;H&@#iqE*Mtr{vM`#hrY9MFD*ED!p^G(IwKt4mizR +z5$Srxp71uVbifnlRVi;t(C7;!Iw{#1O(x5GiXNvLNw%{Zu4XP`iP{XnTW2Rec39KN +zlMbi`P2<`Waj8{V!*dL4N#Q5t(drcFajQz41Rmi~*AC^=VT%T8T@Rg!wNth_g6?QY +z5yp-Jmu|k?6{SqhwmTO?|rhld-!}dw3dB +z5qq1P?;iQ0077e!B^=#0P`or;Afr76vTAr{T{h7uE0~k%oN2ePmx*(I^g0N8M`W3y +z*Vh3LswmhwjX7=ihD%@a +z@ThkuPqG%*cAU`UFVoi5AUCGx7vgGh-BxO7c{BYWO^lQ*lMjwy+v2(Nx$q^tWj;D@ +z-U5`(orlUvk^=_lMcHH!YvZyEb(%J`jI@)SK{T$3X7$k1x~45_t1KfyRe$IIYg(_~ +z`-G>>mCp!;bA%Q&J +z45vpx6MQa&-%0^}w~&67+x9r~bV;`Oe`Yb&=Wd_kq!0AL16e6X_INo{eDa*u4Kb`H`QI!#qQ5um +zDAd-z&J4VR3EMwshl_V}$UpQZmlCx+bfMzVAYbYzOQQFmnY~5u-O5`{$`SL9oJJ;$ +z$qg5;wx&@2`pGBv{563!V5RSHHG8IDx@A-AmG50!9LZI)I1O4R(QH8kHB2>o;nOna +z++^Ublo7V}iVAyz2_*aoK}4H +ztb_EzM&B&#b5J(;?XifsL7kOWgZ;K}7cn5LN&wf`0&QOt)RbMw=;I-i8RYRByqWfn +ztDEsf*B-2^%C>}5-C!>qniZz~*_Q0J+e+nB$OP{4!6m@o2)x6xDYxO{P~lCP9x2Yr +z$-$GEHyp=e!iVgB!P*N~)u7JdUpoA#A4z5!(3NHK-<_E_X1LR5XkPN8$hZX7T^6Qm +zFHQvmAF{!sOf)K*G_YSrXjd`t=irJK$cHYrP&tne^x7Y=g6$XRy$IIwqLhK{inbGm +zjmD~~Y|+1d?5V?VnT;a|RxtwoY(Gjpnu$kJdm$cpe2_`-H1NsQ)*vZxqDQ}NN#muv +zCxFBZD<~F) +zT&>w`ckY6UT5*gx0taMe@;5Fc+=eH<{E^)Esg4)Pk`f3~_M^MlfjvD<9?&|lc35!r +z_Z4XRIq1f15xLurgm@colEP{3GKm-TiItY=>Qt*O{zaTS#qa~U={=^CB7?2dC3*UL +zjr*W?p(Lp!7Lkg@^wY^A!Y*h21Z9>Lt8y3^3BA2lJEc2F0j0eY6&=&>eb28C0rgA5 +z+mV2+>Ww@*H1dW`J^Ek*uq}QG_AlW8ES;ily%Lw|D1;^ZWs|MXup-4r-wT+Z~Gd}keGNDB)44>ISE`5IZ@wrvX*XX7Ez7+ +z-u`_63SQYPB)TOw83a5SmR2-`A(M%xIvIjpuEDxjDazSj+e?bsG~!gsyori+Xp=x| +zloM^wpQWCtNRsluEdJ*?)^e%$WS2|i$RJP21?A8Xw0V-IHg8-=(U1muV!^t$L)txJ +z-Tsd+hQ3#>e!;F{cJn7W?Y54Dw)rZGhoLKnXb$oDzI{bMYonQ(XybZ9gQ6{Wn07Z^ +zQ(y+m`RUh0F5F{B1%Qf=J>aU3%-x9!4U13~q8qkoJ=(uoc3-@}a38+wUl9Q}0cLrp +z<&W*mM?~<@*o5o0vfcJOv#zkSsk5HRQYnR)FvOF3Ug^{3?T`yDH`;8z$%QxBN5~_T +z?^G)O;sz#!>lN-!c`mSDxnKV4bmbtPuA}e5HOMi4?edqw*lk`ReE$!8t +zEZuJXWRBOv$;nh|UT=XDy!dg4Fc}=HW55XTB;D +zk&NAOmrS7lXKN!t(}Yl^jercO + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png b/actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..8e70c22725f9eee79f5c8429c0ff8bbcac315562 +GIT binary patch +literal 2860 +zcmWNTX;>5Y7RLXRNirdXgiQz-$poQ9r5GhB5i}D)T(D`>h`5vvf)shs%PQWwFbRu@ +zsDVp0RjOm%qIHQDDb|IFK?!03d#Od`maw~rO<9G@hjZSq@AIDL{XOTPO1a#D?a2lJ +zIILU|zIIB{sliyxslDe&<~0D=11rN7>fJGMr8*ssGE-7gB;&(Vk0*kjJ^M-HVM++kj@ +z$*UTAKYz|*>OB4Yu1`iqMHKyg{oC(AUQ;@`X{m;y*~jRhl9CdRBr;ZNQAie8LL|s6 +zu^1D8^3ExboQSBXNe7LHo`#AGPsy_zu+@dJsTmpc-(&0xeEB#RFy>jdZfQf(=xZ(G +zJyu8X=6L+>iE&wQQvGRpJ?LLN@AaXFb#-s$mZd6h*bj9sky%VAC+!`AbD^i`@|G%I +z1`AG=I%5PEIW8v9jbR#QjZ$qz_-i7)AWT&8ZUzOY6(kA*zge{8R +z_n_aabI*#|xuc&$bj%m@^VkcSCKogoqgmRK6#<$Ndg80e9wEhWI!ls1l6kWqM6TC) +zaq$^6w&rcmHP}9Y8xg&8>j>mu6WceLqk(Ikux_4`$>oy%mc`f!mshlu0twMUzvAY4 +zv81GsgXQ7&n#@Ppoul-q8ba{BFgkln&)s_Pc)OtS@=uI-S;6NSNkMuZTZ~udlns1F +zRNdx1Mh3~(frNG3d>b|m-Jr;@0|WO6!aK*?7yvP@`lt@0y2E8OS)OSFQ4 +ziN)b^<09s$hrUS>G&E)-7YVADOM`>S8{UB91d&yWH<-!KLRjYFZmKh=--j~VP1j>F +zsI>aE^%DqgRvfDut_Lei<$T>f<|;MCN*D%(V?);5sar;8vb4#}Ik|bBI}y}3s?=?o +zePt6Z|Irw)Rdlt?CP$_IsAm0_Vk5TkBVzcS@tj>WU~7<_*+xg;YLT3O3LfwhPZW1p +zLnQb1?&e-1G2gCq9A@7BCw2s?a7<(bufg`xKFNb$D(()q)$GaVk$1UITCMZHT}w-x +zRR}F2Iq^E&`BkM5L#mL%dmz6# +z%K#I;zB3K<@UPGKw`OCWM+A-GjM=*s-(v@PSKQyY6htI$sX9QPW%y&n%iyS{#&tUS +z$zDO}HdEeoNmI;TaJ-O;2JU~^s^TgxoH@Lf{74PL^Sw%ou&&9YLR|`A%oQ)20Grqs +z6we(C7^d1%c(qnAD&Uupz3@{xcDQ6nC;jNfXH&n^+Q)=?nd>W1(At(pR*rM$^Sx=; +z?gjgJ?8jXEEG*r!)-%@_f6v4saS{DUIN5SwsKH|im~*kmb~;e|Gpt^zDNiA9YZ&VK +z?C*#OAZ}AQFb@&mhhevELQIyUfn-Tko5Sjb0*dz5yhk5FzQ(3w+v)sUMRGjPQxZFY +zW8vO6XGZg>Wi!KBQ~0^u7oxUn&cy1@q}Ed=6Y<8L6o~sK2#?91`o<0k8&_yM(E?XL +zHRr!h{;j5%HXJ->_;?V{PeG+wqE#{v$}|Ko-@r+9ms~K(!mzbkr)T%+H6fC!?A^ST +zR!NWOj@K8=fC4@}*z|(~EcF`)316n%>-BOS6!NWJ)hoiNWIN6@NQqZr>jtXM5k505 +ze&qfK2ZrVnsmww4m2+_vH+qSL3PfSUV~zBSY-}q{e||slf-Mk>SlvWMY8sKoL#7J2 +z{G45~j&}ByTr%OISrB+P8``eNoQ2}U_}6qw3JQf#K^K-uav$+lKopqcr1*gs`ayF9 +zTEEH~QAmPH_Om8>&=T~2S!BaxRrZ9o4;Hhr+Z_lTL(vK|bPb|g0n#9N1_&@wc}=|1 +zC0wzDu5rsbF;PPOBQeNX0R_Zm>inBSV^mCEI{wtYkjB)4EnLFcIr#E^Y_>O^<*ql9 +zN`w)J_+%1En<1_OPmd%NOEJ(gGfGWAMqoi!Hu5S?H8BZ&k{!#f)4cX_*pyqk6pY`8-{%9 +zr=b=f_}M!Sx}4B%0+&6DWtz{B3Z544SQ)>UceRbU>X#Bo3w4Ee_Gm6|R`t-kzvVKw +zI*TONvwMh5HFo{e5JUAg@G;l=6rOz%pNe_KNw6h`aDIP)S2TqXPaPQA-8)!hlp%kL +z8DE_0A)j$o3_pVg8tmgK3&QAUo|4>GSbC^DC@s*vMP1ROGo>u3BgwCX*X>TP_kE1qlYBDt^A@pTR@bLmH>&C@~A +zxOqOA%h-7WKAY=enZiTYzwli-4qKpgv(CAXmqDGIqrcWSR*FOmHFX*u=?JzqQ_hB5 +zmr~$XS=L+5;l`+Hw!W;`QDn4Ucx0JXhu}X$8{s$6_d!Gs%^08au{s;POc}CG;vgu% +z2G>k{djGP9)h`S3&(Gu78}9d5JBj8IcJPlemYc +ze(@O}Heow}a8AC|j7Ehb>n~B=P3ibq+B4%gNbU%Gci=aUq20|*b^IjUY;L1-BZ!bo +zn6L_LVou-1sHpLv-q#Pw`M8KuJj8J*(;K}yo!e_+z$p{$iyIZB(kC&c9m&`W1j8u} +z>*l&f*PjkyCXY-ILq(cXapNGVLGyhb*&Y1kx2B`}jkW$mwkjNK9G=l~dd$RnoM6+O +z7oGdngr!qylcW0{jajb^@xndLiHtw%XFSQqmQ42NwKbfUb2#XeUgVDj=eGMMzKM$^ +zW9G*vm_l~sB{-990Uv;kn;)1c#m8#G?O3!w!A@-y&$wyb +z@$1jg%ISVqC7fXtxEl1e9y2Yn#7+D&iwNcYh)+({(27&J5*hy$L(gaO0SK-LT)B~3 +Sc6I6t1}m2-!>=vHwf_fXfy>$e + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png b/actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..cfdd06a87ae8f8f93c38e8832a231d30ddc4d7b5 +GIT binary patch +literal 3399 +zcmWNUYgAKr+Qt7TC&>v(NK%NBU?2xX35XD`CdHByKnz}JM8+2>)u1p%OI;DX(8}c` +zAq13SRA4AF_UJ^5%Ggwe0c+(Tpa?2aVT$d%8U)nAS_DNvE*U=T{j9Y=?2o@^?NW8Z +zT4$y^69C{GuZm4vxafi~27SQ~mG8f_kaOZ=l}WkVc2=0p8i9&zmy()ZDBx-d6dxZ? +z=WsaI2R+{_zL**tM7DfMrO|}dU+3o5jnK`*H8nNtl#~>s+ +z1Uzm*L)~3nA;~EzA?k1{7L}Nkln&%zh-dD>ZkUWWCr6(;aa|cx$Yk2(uoE(n+OB#C}QxDWP<=1&4(u7FXKDbuVdcatdKPc +zQTafdiK|_!Gl)lg%u7|-0O=hzH}N%Ks{}>I#L+A%&Ng*~#;)|X6-vPsZ{9D3j#E0Q +znn%<9Rp%m!=YZy948x&6b0D2VuP0FY2Yz~#w53h&nH4TQ?bQKb35HeaZw@0@Ytd^W +zAY^wvBC_FUn{|%Wt3~Yk!ersRbY3$xKFERt>RR%qZ@!s$^?!uG0(NA~!2v9paDH|g +z4s=b%GvF2001Y%IECCvE4l@ML<2H);Om%+esUbUF#F1Duo1pPvNv}}$B$PohczQ+? +zFF_pZ!6wp+gu=k7&iPQ>z^lF`S8hFQP$u%8VdkZ+dj^Xvg=ScIqtJB7mA_nsMX82v +zbI)``396A|pAiRo7#1|w>P2h{ww<*uI^YHVMG%Lc$&VR_D&UJQ1^A=EL-aFOylkOt +zdmbxDpi^{+8NykO+GsnSwU< +z5lys1|Gjd(v^IDL~l^Cr2PH9IBf95@)oiBX-FOx8!ma>lFO;j#COH=UgBc?akh)XMWQ&^d3BNRmz+!7C>9iMFV|hrFc4agZ|1W +z*@?^DYW##~UpNdWQT(X*jRD-PQlveo-zrjz^&4FAypX3-HDlRQo8v>n{) +zZx!fSP}BqM1$XgDvI+Y2E7X7)*)ZZW)>_ZQKcj6ZGN*v&5n7%$TEslS=*=G52M)Ax +zn_dX9uC4YcRGD?qz2&1-t;$f(WsT!XKH;MH>M_|pCd +z3Uf60MNVtOYhv@hJ +zVZ{exEs**mLqxIOf+eFdpIvk)<5&z;h{}H*`TIAFZXxe+DRk;aYbn!0=Vub+6sNmc +z8?O0b0fCIpyaY|sWs>R1u~3(R_YFR9CuGkSojOw}#UG7ud2^oIUQ5yDGFMS=E%8t| +zu(v6O*xTcE2Lx8hiO0O&9S{wX9Psg3wt%-qLK&$n?~FA+WM__<#CA{Twu3&KBTbs +zk+f|?MQbQlKB)8{quISlJ8>hWPCW>IeauEH?X|RTv5G9ls|GxVCg>&VkS{_wb+kA8 +zD9ljRW%_in>u>J#zWqd_0r*PGTjvn9(FfdbR1m|RlVWqgxJQ4keQFGD2n1gGh)iDL{*~rt^nDpM_$-7qDNnvRI4#o@Z~Locjbmvu_3pDl5RV=eTNDzMxJaBRJ49 +zQD$>1PL*M=*JxCJl9YR~}Ff-M4Ow#>qb +zfmoN1<_~>nM}D!GNOR+;RoHr)*fz`BPqWzI<>OotdHH#i&3K$0@TO6L)K9dL;Np+i +z*+sJcLd+Z9(icMdyJ@z30O6u7kMofUy{;VmO{|c$_67IvBoaSL2X})>)gg!OgpS4^ +z<*_|dsTs|q(iH_#DSCTp(_)-Kdc5~MLw)H>91{y<#NeV@w*Jk&H-n$-%PVnxxQ*hw +zhj>%~W?pL$YLf}X{KWxnLPpB)B)xl&*=$ONL*7P8tFa7f +zW>Oja+f&d`7j@l%r@EmV9MJg>4~QP9WH}+5rOhV9O%v +zcj)=ks2lwIv0BW7*h`OB=Omb+KR|LT9Qaz<*y>+3Y9@@81NL-U!e)_OQ!HZ(t{ygb +zy=pt8I#tNs;KsHUc`+_jP*D%QdM7hU;DinGhg7zg?yMa$T9W=|;!3LK4eRR_PABeeIIhV;q457jYH4erYn!nIy2)EQ +zB~M!XQr6 +zUBi)Z+rijN(1e&OL(h74o-P@mL1bNjZg1&f1Ue}{&(Q9qRt=l4ERibKQ#zCzSJ2gA +z_^^yz^ARH1hZ%dhwp>V3R3Oz*II3@%%ulqsTO=d#Ev1^K<7hySP$FjSOJ-W01 +zemi4JyY`~zX{ZVfKXGj4q@n3m0&*3&6vi!~4Ircc6ngyD=1K6`t{BdXIWo3()%wr9$dZz7%iipAE{ +zF*uCD>FQ?N3zpjUsMUs;sg6U%GdcxnSpK +zhq?sODv~LGpI?qE}~?AnHIV302>irkS;W+ZZpjOi*_COcsw$DNBi-$ +z$=G|{;XyGGQmfNJEYAaXe(-Zr*{?rtM?Q@rJ}Vy(*RApCH>I`XpKgP}$u>@La&^wCg@FX(*CfPV +Iiq`1=2i?hHiU0rr + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario_cap/mario_cap_wing.rgba16.png b/actors/mario_cap/mario_cap_wing.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..ff7d11bf142485b35a024ca8c64a141f9a1a3850 +GIT binary patch +literal 1673 +zcmV;426p+0P)P +zG&E!wNWjD}z+lt?qanaT&oo$ET>PJdg9B_Oi00(vWT2@7qN1YygDe4ACLkcd0J9WC +z!yG~r2LuHL{fAiwvl!iSnuLItm)C!o?_fSB#HU&=09lTlo{)nXpJOPF0w*V@{~(Kh +z{P@9uEuLWx!4(n|g@C1{<^S*Bzr#~CECi4(1^FH%j+_RNLyGJW09IoELB8gIW-D|{ +z&=VcZQji{GHrWn9wj4Qlab-7)QOblDxV=E6pj)GyLLIC7?nB^b? +zK|u-Q!xAHM&?BdOWOc|15Tu@{D0u$-Io7yGjsgZO069Uzq>&RQj7=~E(Bqm=!bA2w +zEXQE8nCK_~1tEIe!yJXp=g5f;Jz*lpJuD&OO@yGthuoq;4|bRjVe$Fl!v_XzK@W;+ +zWXnNppxF!{j5i8E79f{)$f+IKB9H|z%aPTfXGfSLVCq49oFM>8e7Jm%YzfHsFJ8Q0 +zzy+}R9OPJ72;g)8$P)CpM{ZgnXFCuZ7Co?N!4>Qv%YmL_fT_b71<3gxJtrVrf*$X< +zf*s^zm|Bq8nwpvnpq@Ea2cYMDm~W9&KZp(T$q%HqAbK>wf*)i#Ob%3^fGmckA*>ES +z_AzoIM798AD98fj#0Zl|j(1pyfPC-h=*R%_JxCs=7OMkbMK5yPBF8a^egFP_24sh# +zTMi3ukV8S1!UjTMmcty6;Q(yGkDmBIL60rfBl{ebgFudec>=~p4mGTG0dhQ}SD`RV +zLD>$Q?_u&15)urcxCUX6g|KV~3N@G`VGhFx0p!95*%A;NBnNUevLn%h9^`W?D=P+A +z`vDf6Ajg1G{`vFg8LnTy4lV^barKU|S%B<&nCp?F0T#4cT3QSsHYo042^5xXK{Uv5 +zAbF4@K>9I40KHw09RJ_ZdO$Ahg>KjTMCj#b`XdUas( +zdm|$wa8#i<06n|GTn)2}1FatjOVObC1UU>@Keo_<)dL{k!yL?lEvR7zA&10+2M@5; +z^&sDXQa1WX2+UmMN(m$e9JT>V!5oMY1<1aH8G;<2=m`%N@8~{;C0LjlpezW=As}_g +zX$9^8^b!yj{~#Jx@SsIIIIqJxDu`rMTKp_Dt$v}<(X@>O&&_z5JO-s1NlF7CO`rq? +z%3dHFU3%PAm- +z!9ofYE$Hn@yitH`=)QgXP%0ysk3p8h(g1Q|1UUlMEQ2LT1qB5LkU2z!0J86o9XrMV +zYeK=|8)PVOte627GB88Y%M6e>EWs^Xwu})y$-zSaqzGHe2Z@2ITl7*7l>b3NitcM< +z3t$$5q5v55jM&mUayA4h_>Zm#ny46I!3k=%!F&axIj}TRU}iwm3s#F^YVf83kgwOR +zTZdu*&>@WIzJ&47Ll9eZ;EV#81WXe)%Nb|@P{s#<2@UK!P|%_KoPkDQboLwoh#}Ub +Tsq{Jj00000NkvXXu0mjf(jK}u + +literal 0 +HcmV?d00001 + +diff --git a/actors/mario_cap/mario_cap_wing_tip.rgba16.png b/actors/mario_cap/mario_cap_wing_tip.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7da437f9512e1c8e69db004a9c0a63505c822a24 +GIT binary patch +literal 1132 +zcmV-y1e5!TP)P +zG&E!wNWjD}z+iYeAUQetKdAvqwGfDkiuzAZdSan82{bo1|Nrsh2ZNxXAcLZ!BFVF3136U%)H?<#Xh$iJopi`XnSIz*_h2-3#{+x}!n*(4&e4Iq$+O0?{BJ5}PiN +z)#1|va_GK&`%q$v1>{SRWiZPrDG%_a0g&a_uU}`Vt*u3gA{OKd1Y1fbw|qc$49Id& +zJppn6x+7UYk|0Z9mSb}SEL30#4rBmlGgIJb3VcVcD`}7&!#P0q8jaTfD-2kIi8q^)OE%mlwE7N_Z~776sTs2Ie4K +zmc!&>jsVdh%eQUYhP8ZPK~@NJJ%~mR31r7`pfz5wr3Yl+<7=qE3nGvOFipq~!50eH +zLIXJjKyeRhCjdhLXX(g-Y%we}U?G4WE$EKnz|)Ka1v}I{yhSq$tY$-Z2&jk#6;L2? +z+7MO*anwktCgFrMfsT@5-&Ye5=-^j>_uwWNeL07HbnM4zM2s^Dq#JBb?erV +zUJigt38$%rlg2^CxnBmx%X4kof*^uY#LeNWC906sUNbj`3S1X&EToSb}4 +zC_q?1_{-s1F!%Gm@({u_GIYe0OSS)Ebg&&qiN+Da4rB@46E6IBN%jvdw3cE +y6|JyJhF%E|IW$M-j7BG|MnhmU1V%$(Gz0*=6WM}={=n4$0000s(0 +zSa`Xs?QBFd(jE*3< +zr_+kX`LJshp-ZhqLDzNH{zFiNLLqAR&>Dcm)Br@3(akpv0K>3$#+Q4RLiBcs=j4@1 +zvjS*MlM96c0liQ+?q9`MTRVVdR1JkryjYq~rhm`2rrSdR{mxJ9j2i?#)T6?531u2mF^#h@^U0Vhhqb5sq`ed-dp +zil2)J!|9>|#85QAwr7Wdz^VW-$aOwC&vV$QXaI*?E_dF@6D2TLI;BtDpm)H`F1-n( +zW9zThf%~`a?AIB5%nFEWdS)6r69t}#3VTlt!r?F+=5Ea4SuU4(iURP51B)#(b{*(w +z*&x_)r)fPkP$ZGO)oPW7D9)~cJ-|yC!Pp4ku-#yf+=+mfG62S0`?QfK4<8;f%s>p~ +zqj#f!HT1s-|_9ixduF! +zffZnBA@cfDiLC&9Isq$9SB7$y#I^>o;+lnPoqUbIPrm&))BtY0inwTdAD{>h0L=Yi +z<3Iq?Y&KikFUf@5MrW_-T6=SGYiTb@EIY|vNyq6(V^4hEQ|ADffV1fFUJ~rQuE-b& +v1SFk94Z3dE2!kSUv?=#$;*}-KNKWuyVtyz4^-&sT00000NkvXXu0mjfJa&;G + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_metal_cap/geo.inc.c b/actors/marios_metal_cap/geo.inc.c +new file mode 100644 +index 0000000..a1bfd80 +--- /dev/null ++++ b/actors/marios_metal_cap/geo.inc.c +@@ -0,0 +1,26 @@ ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout marios_metal_cap_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(0, 180, 75), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(10, geo_update_layer_transparency), ++ GEO_SWITCH_CASE(2, geo_switch_anim_state), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_metal_cap_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_metal_cap_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/actors/marios_metal_cap/geo_header.h b/actors/marios_metal_cap/geo_header.h +new file mode 100644 +index 0000000..f82fd1e +--- /dev/null ++++ b/actors/marios_metal_cap/geo_header.h +@@ -0,0 +1,8 @@ ++extern const GeoLayout marios_metal_cap_geo[]; ++extern u8 marios_metal_cap_metal_rgba16[]; ++extern Vtx marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380]; ++extern Gfx marios_metal_cap_000_displaylist_mesh_layer_1_tri_0[]; ++extern Gfx mat_marios_metal_cap_metal_v3[]; ++extern Gfx mat_revert_marios_metal_cap_metal_v3[]; ++extern Gfx marios_metal_cap_000_displaylist_mesh_layer_1[]; ++extern Gfx marios_metal_cap_material_revert_render_settings[]; +diff --git a/actors/marios_metal_cap/metal.rgba16.png b/actors/marios_metal_cap/metal.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..3b2ac00b875ba4886448eb37e9ee588b201f369d +GIT binary patch +literal 3378 +zcmV-24bAe2P)dgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_metal_cap/model.inc.c b/actors/marios_metal_cap/model.inc.c +new file mode 100644 +index 0000000..4066416 +--- /dev/null ++++ b/actors/marios_metal_cap/model.inc.c +@@ -0,0 +1,789 @@ ++Gfx marios_metal_cap_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_metal_cap_metal_rgba16[] = { ++ #include "actors/marios_metal_cap/metal.rgba16.inc.c" ++}; ++ ++Vtx marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380] = { ++ {{{104, 6, -74},0, {2016, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{111, 34, -71},0, {1680, -7},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 2, -33},0, {2016, 32},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{122, 24, -33},0, {1745, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{123, 16, 35},0, {1809, 192},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 2, 35},0, {2016, 192},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{120, 16, 98},0, {1808, 258},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{119, 2, 99},0, {2017, 258},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{114, 17, 136},0, {1812, 323},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{113, 3, 136},0, {2017, 323},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {2017, 395},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{91, 22, 178},0, {1831, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{62, 20, 203},0, {2017, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{62, 30, 200},0, {1846, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{16, 18, 135},0, {1812, 323},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{16, 4, 135},0, {2017, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{8, 17, 98},0, {1808, 258},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{8, 3, 98},0, {2017, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {1809, 192},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{3, 3, 34},0, {2016, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{3, 3, -34},0, {2016, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{3, 25, -34},0, {1745, 32},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{14, 7, -75},0, {2016, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{12, 35, -71},0, {1680, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{123, 16, 35},0, {15, 981},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{111, 34, -71},0, {19, 992},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{75, 53, -82},0, {29, 994},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{60, 96, -67},0, {34, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{42, 54, -82},0, {37, 994},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{12, 35, -71},0, {44, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{3, 25, -34},0, {45, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {45, 981},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{99, 95, -33},0, {24, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, ++ {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{106, 88, 35},0, {22, 981},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{59, 102, 34},0, {34, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{116, 37, 98},0, {17, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{120, 16, 98},0, {16, 974},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{61, 85, 98},0, {33, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{23, 74, 98},0, {42, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{28, 62, 135},0, {40, 970},{0xA9, 0x50, 0x30, 0xFF}}}, ++ {{{8, 17, 98},0, {44, 974},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{16, 18, 135},0, {42, 970},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{35, 22, 178},0, {37, 966},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{62, 51, 183},0, {31, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, ++ {{{62, 30, 200},0, {30, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{91, 22, 178},0, {23, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{104, 6, -74},0, {2016, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{75, 53, -82},0, {1342, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{37, 14, -91},0, {2016, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{42, 54, -82},0, {1342, 734},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{12, 35, -71},0, {1625, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{14, 7, -75},0, {2016, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{37, 14, -91},0, {852, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{84, 13, -91},0, {949, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{104, 6, -74},0, {993, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{14, 7, -75},0, {805, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{3, 3, -34},0, {783, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{120, 2, -33},0, {1029, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{3, 3, 34},0, {784, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{119, 2, 99},0, {1028, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{16, 4, 135},0, {813, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{113, 3, 136},0, {1016, 23},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {970, -261},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{33, 11, 178},0, {847, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{62, 20, 203},0, {904, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{-12, 25, -34},0, {1745, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-14, 7, -75},0, {2016, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 35, -71},0, {1680, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-12, 3, -34},0, {2016, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-12, 18, 34},0, {1809, 192},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-11, 3, 34},0, {2016, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 4, 135},0, {2017, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 18, 135},0, {1812, 323},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-33, 11, 178},0, {2017, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-34, 22, 178},0, {1831, 395},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-61, 20, 203},0, {2017, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-61, 30, 200},0, {1846, 431},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-91, 22, 178},0, {1831, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-91, 10, 178},0, {2017, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-113, 17, 136},0, {1812, 323},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-113, 3, 136},0, {2017, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-118, 2, 99},0, {2017, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-119, 16, 99},0, {1808, 258},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-120, 2, -33},0, {2016, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 24, -33},0, {1745, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-111, 34, -70},0, {1680, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {2016, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-12, 18, 34},0, {56, 981},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-12, 25, -34},0, {56, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-12, 35, -71},0, {58, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-42, 54, -82},0, {64, 994},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-111, 34, -70},0, {82, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-122, 24, -33},0, {85, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-121, 40, 35},0, {85, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 16, 35},0, {86, 981},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-106, 88, 35},0, {79, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-59, 102, 34},0, {67, 981},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-12, 35, -71},0, {1625, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-14, 7, -75},0, {2016, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-37, 14, -91},0, {2016, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-42, 54, -82},0, {1342, 734},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-75, 53, -82},0, {1342, 770},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-84, 13, -90},0, {2016, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-111, 34, -70},0, {1625, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {2016, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {856, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-104, 6, -74},0, {998, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-84, 13, -90},0, {953, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-14, 7, -75},0, {809, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 3, -34},0, {788, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-120, 2, -33},0, {1033, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-11, 3, 34},0, {788, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-122, 2, 35},0, {1038, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-8, 3, 98},0, {800, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-118, 2, 99},0, {1033, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-16, 4, 135},0, {818, 23},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-113, 3, 136},0, {1021, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-91, 10, 178},0, {974, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-33, 11, 178},0, {851, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-61, 20, 203},0, {908, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-116, 37, 98},0, {84, 974},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-119, 16, 99},0, {85, 974},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-113, 17, 136},0, {84, 970},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-99, 61, 135},0, {78, 970},{0xAD, 0x52, 0x32, 0xFF}}}, ++ {{{-91, 22, 178},0, {78, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-61, 51, 183},0, {70, 965},{0x2, 0x5D, 0x57, 0xFF}}}, ++ {{{-61, 30, 200},0, {71, 963},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-34, 22, 178},0, {64, 966},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-28, 62, 135},0, {61, 970},{0x57, 0x50, 0x2F, 0xFF}}}, ++ {{{-16, 18, 135},0, {60, 970},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-8, 17, 98},0, {58, 974},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-22, 74, 98},0, {59, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-61, 72, 135},0, {69, 970},{0x1, 0x76, 0x2F, 0xFF}}}, ++ {{{-61, 85, 98},0, {68, 974},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-105, 73, 98},0, {79, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{123, 16, 35},0, {658, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, ++ {{{130, 20, 37},0, {659, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, ++ {{{120, 16, 98},0, {691, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, ++ {{{121, 20, 30},0, {656, 26},{0x48, 0xEE, 0x99, 0xFF}}}, ++ {{{116, 55, 30},0, {656, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{125, 54, 37},0, {659, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{114, 60, 35},0, {658, -2},{0x48, 0x65, 0xE5, 0xFF}}}, ++ {{{117, 54, 96},0, {690, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, ++ {{{106, 61, 98},0, {691, -1},{0x46, 0x62, 0x28, 0xFF}}}, ++ {{{107, 56, 103},0, {694, 2},{0x48, 0x38, 0x59, 0xFF}}}, ++ {{{127, 20, 96},0, {690, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, ++ {{{117, 20, 103},0, {694, 26},{0x49, 0xFB, 0x68, 0xFF}}}, ++ {{{119, 28, 89},0, {686, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, ++ {{{121, 28, 44},0, {663, 20},{0x63, 0x38, 0x39, 0xFF}}}, ++ {{{120, 45, 44},0, {663, 8},{0x72, 0xEB, 0x34, 0xFF}}}, ++ {{{116, 45, 89},0, {686, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, ++ {{{108, 143, -24},0, {1166, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{58, 102, -4},0, {1204, 64},{0x6, 0x7F, 0x5, 0xFF}}}, ++ {{{108, 143, 13},0, {1237, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{79, 146, -48},0, {1119, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{40, 148, -46},0, {1124, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{14, 148, -18},0, {1176, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{16, 146, 20},0, {1250, 576},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{45, 145, 44},0, {1296, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{83, 143, 42},0, {1291, 576},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-14, 148, -18},0, {1176, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-40, 148, -46},0, {1124, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-79, 146, -48},0, {1119, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-108, 143, -24},0, {1166, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-83, 143, 42},0, {1291, 576},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-45, 145, 44},0, {1296, 576},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, ++ {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-126, 20, 96},0, {690, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, ++ {{{-119, 16, 99},0, {691, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, ++ {{{-117, 20, 103},0, {694, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, ++ {{{-130, 20, 37},0, {659, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, ++ {{{-119, 28, 89},0, {686, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, ++ {{{-116, 54, 96},0, {690, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, ++ {{{-107, 56, 103},0, {694, 2},{0xB8, 0x37, 0x59, 0xFF}}}, ++ {{{-106, 61, 98},0, {691, -1},{0xBA, 0x62, 0x28, 0xFF}}}, ++ {{{-114, 60, 35},0, {658, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, ++ {{{-124, 54, 37},0, {659, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, ++ {{{-115, 55, 30},0, {656, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, ++ {{{-120, 20, 31},0, {656, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, ++ {{{-122, 16, 35},0, {658, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, ++ {{{-120, 45, 44},0, {663, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, ++ {{{-121, 28, 44},0, {663, 20},{0x9D, 0x38, 0x39, 0xFF}}}, ++ {{{-116, 45, 89},0, {686, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, ++}; ++ ++Gfx marios_metal_cap_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(15, 12, 13, 0), ++ gsSP1Triangle(15, 8, 12, 0), ++ gsSP1Triangle(15, 6, 8, 0), ++ gsSP1Triangle(5, 6, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(0, 3, 6, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(6, 8, 0, 0), ++ gsSP1Triangle(0, 8, 1, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 10, 13, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(1, 8, 11, 0), ++ gsSP1Triangle(1, 4, 8, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(3, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(8, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 9, 5, 0), ++ gsSP1Triangle(10, 5, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(13, 9, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 192, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 207, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 222, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 237, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(10, 11, 2, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(10, 1, 12, 0), ++ gsSP1Triangle(12, 1, 13, 0), ++ gsSP1Triangle(14, 13, 1, 0), ++ gsSP1Triangle(5, 14, 1, 0), ++ gsSP1Triangle(14, 5, 15, 0), ++ gsSP1Triangle(7, 15, 5, 0), ++ gsSP1Triangle(7, 12, 15, 0), ++ gsSP1Triangle(10, 12, 7, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 253, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 269, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(3, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 285, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 301, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 15, 11, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 317, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 333, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 349, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 0, 11, 0), ++ gsSP1Triangle(0, 4, 11, 0), ++ gsSP1Triangle(4, 5, 11, 0), ++ gsSP1Triangle(5, 7, 11, 0), ++ gsSPVertex(marios_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 364, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_marios_metal_cap_metal_v3[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_metal_cap_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_metal_cap_metal_v3[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_metal_cap_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_marios_metal_cap_metal_v3), ++ gsSPDisplayList(marios_metal_cap_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_marios_metal_cap_metal_v3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_metal_cap_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/marios_wing_cap/geo.inc.c b/actors/marios_wing_cap/geo.inc.c +new file mode 100644 +index 0000000..0237d9b +--- /dev/null ++++ b/actors/marios_wing_cap/geo.inc.c +@@ -0,0 +1,28 @@ ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout marios_wing_cap_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(0, 180, 75), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(10, geo_update_layer_transparency), ++ GEO_SWITCH_CASE(2, geo_switch_anim_state), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_wing_cap_000_displaylist_mesh_layer_1), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, marios_wing_cap_001_displaylist_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, marios_wing_cap_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, marios_wing_cap_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/actors/marios_wing_cap/geo_header.h b/actors/marios_wing_cap/geo_header.h +new file mode 100644 +index 0000000..5c6bcb4 +--- /dev/null ++++ b/actors/marios_wing_cap/geo_header.h +@@ -0,0 +1,31 @@ ++extern const GeoLayout mario_wing_cap_geo[]; ++extern Lights1 marios_wing_cap_sonic_texture_v4_lights; ++extern Lights1 marios_wing_cap_sonic_buckle_v4_lights; ++extern Lights1 marios_wing_cap_sonic_shoe_v4_lights; ++extern Lights1 marios_wing_cap_sonic_white_v4_lights; ++extern u8 marios_wing_cap_sonic_new2_rgba16[]; ++extern u8 marios_wing_cap_wing_2_rgba16[]; ++extern u8 marios_wing_cap_wing1_rgba16[]; ++extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0[134]; ++extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_0[]; ++extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1[32]; ++extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_1[]; ++extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2[92]; ++extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_2[]; ++extern Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3[112]; ++extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_3[]; ++extern Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0[8]; ++extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_0[]; ++extern Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1[8]; ++extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_1[]; ++extern Gfx mat_marios_wing_cap_sonic_texture_v4[]; ++extern Gfx mat_marios_wing_cap_sonic_buckle_v4[]; ++extern Gfx mat_marios_wing_cap_sonic_shoe_v4[]; ++extern Gfx mat_marios_wing_cap_sonic_white_v4[]; ++extern Gfx mat_marios_wing_cap_wing_2_001_v4[]; ++extern Gfx mat_revert_marios_wing_cap_wing_2_001_v4[]; ++extern Gfx mat_marios_wing_cap_wing_1_001_v4[]; ++extern Gfx mat_revert_marios_wing_cap_wing_1_001_v4[]; ++extern Gfx marios_wing_cap_000_displaylist_mesh_layer_1[]; ++extern Gfx marios_wing_cap_001_displaylist_mesh_layer_4[]; ++extern Gfx marios_wing_cap_material_revert_render_settings[]; +diff --git a/actors/marios_wing_cap/model.inc.c b/actors/marios_wing_cap/model.inc.c +new file mode 100644 +index 0000000..3a66629 +--- /dev/null ++++ b/actors/marios_wing_cap/model.inc.c +@@ -0,0 +1,943 @@ ++Lights1 marios_wing_cap_sonic_texture_v4_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 marios_wing_cap_sonic_buckle_v4_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x0, ++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); ++ ++Lights1 marios_wing_cap_sonic_shoe_v4_lights = gdSPDefLights1( ++ 0x7F, 0x0, 0x1, ++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); ++ ++Lights1 marios_wing_cap_sonic_white_v4_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); ++ ++Gfx marios_wing_cap_sonic_new2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_wing_cap_sonic_new2_rgba16[] = { ++ #include "actors/marios_wing_cap/sonic_new2.rgba16.inc.c" ++}; ++ ++Gfx marios_wing_cap_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_wing_cap_wing_2_rgba16[] = { ++ #include "actors/marios_wing_cap/wing_2.rgba16.inc.c" ++}; ++ ++Gfx marios_wing_cap_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_wing_cap_wing1_rgba16[] = { ++ #include "actors/marios_wing_cap/wing1.rgba16.inc.c" ++}; ++ ++Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0[134] = { ++ {{{104, 6, -74},0, {1000, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{111, 34, -71},0, {832, -7},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 2, -33},0, {1000, 32},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{122, 24, -33},0, {864, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{123, 16, 35},0, {896, 192},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 2, 35},0, {1000, 192},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{120, 16, 98},0, {896, 258},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{119, 2, 99},0, {1000, 258},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{114, 17, 136},0, {898, 323},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{113, 3, 136},0, {1001, 323},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {1001, 395},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{91, 22, 178},0, {907, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{62, 20, 203},0, {1001, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{62, 30, 200},0, {915, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{35, 22, 178},0, {907, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{16, 18, 135},0, {898, 323},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{33, 11, 178},0, {1001, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{16, 4, 135},0, {1001, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{8, 17, 98},0, {896, 258},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{8, 3, 98},0, {1000, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {896, 192},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{3, 3, 34},0, {1000, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{3, 3, -34},0, {1000, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{3, 25, -34},0, {864, 32},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{14, 7, -75},0, {1000, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{12, 35, -71},0, {832, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{104, 6, -74},0, {1000, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{111, 34, -71},0, {805, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{37, 14, -91},0, {1000, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{75, 53, -82},0, {663, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{84, 13, -91},0, {1000, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{42, 54, -82},0, {663, 734},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{12, 35, -71},0, {805, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{14, 7, -75},0, {1000, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{37, 14, -91},0, {418, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{84, 13, -91},0, {467, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{104, 6, -74},0, {489, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{14, 7, -75},0, {395, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{3, 3, -34},0, {384, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{120, 2, -33},0, {506, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{3, 3, 34},0, {384, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{122, 2, 35},0, {509, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{8, 3, 98},0, {390, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{119, 2, 99},0, {506, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{16, 4, 135},0, {399, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{113, 3, 136},0, {500, 23},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {477, -261},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{33, 11, 178},0, {415, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{62, 20, 203},0, {444, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{-12, 25, -34},0, {864, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-14, 7, -75},0, {1000, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 35, -71},0, {832, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-12, 3, -34},0, {1000, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-12, 18, 34},0, {896, 192},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-11, 3, 34},0, {1000, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-8, 3, 98},0, {1000, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-16, 18, 135},0, {898, 323},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-16, 4, 135},0, {1001, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-8, 17, 98},0, {896, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-33, 11, 178},0, {1001, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-34, 22, 178},0, {907, 395},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-61, 20, 203},0, {1001, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-61, 30, 200},0, {915, 431},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-91, 22, 178},0, {907, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-91, 10, 178},0, {1001, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-113, 17, 136},0, {898, 323},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-113, 3, 136},0, {1001, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-118, 2, 99},0, {1000, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-119, 16, 99},0, {896, 258},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-122, 2, 35},0, {1000, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 24, -33},0, {864, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-120, 2, -33},0, {1000, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 16, 35},0, {896, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-111, 34, -70},0, {832, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {1000, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-12, 35, -71},0, {805, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-14, 7, -75},0, {1000, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-37, 14, -91},0, {1000, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-42, 54, -82},0, {663, 734},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-75, 53, -82},0, {663, 770},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-84, 13, -90},0, {1000, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-111, 34, -70},0, {805, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {1000, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-84, 13, -90},0, {469, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-14, 7, -75},0, {397, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-104, 6, -74},0, {491, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {420, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-12, 3, -34},0, {386, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-120, 2, -33},0, {508, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-11, 3, 34},0, {386, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-122, 2, 35},0, {511, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-8, 3, 98},0, {392, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-118, 2, 99},0, {508, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-16, 4, 135},0, {401, 23},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-113, 3, 136},0, {502, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-91, 10, 178},0, {479, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-33, 11, 178},0, {417, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-61, 20, 203},0, {446, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{108, 143, -24},0, {575, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{58, 102, -4},0, {594, 64},{0x6, 0x7F, 0x5, 0xFF}}}, ++ {{{108, 143, 13},0, {610, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{79, 146, -48},0, {552, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{40, 148, -46},0, {554, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{14, 148, -18},0, {580, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{16, 146, 20},0, {617, 576},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{45, 145, 44},0, {640, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{83, 143, 42},0, {638, 576},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-14, 148, -18},0, {580, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-40, 148, -46},0, {554, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-79, 146, -48},0, {552, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-108, 143, -24},0, {575, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-108, 143, 13},0, {610, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-83, 143, 42},0, {638, 576},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-58, 102, -4},0, {594, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-45, 145, 44},0, {640, 576},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-16, 146, 20},0, {617, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 8, 7, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 110, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 15, 11, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_0 + 126, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1[32] = { ++ {{{123, 16, 35},0, {321, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, ++ {{{130, 20, 37},0, {322, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, ++ {{{120, 16, 98},0, {338, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, ++ {{{121, 20, 30},0, {320, 26},{0x48, 0xEE, 0x99, 0xFF}}}, ++ {{{116, 55, 30},0, {320, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{125, 54, 37},0, {322, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{120, 45, 44},0, {324, 8},{0x72, 0xEB, 0x34, 0xFF}}}, ++ {{{116, 45, 89},0, {335, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, ++ {{{117, 54, 96},0, {337, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, ++ {{{114, 60, 35},0, {321, -2},{0x48, 0x65, 0xE5, 0xFF}}}, ++ {{{106, 61, 98},0, {338, -1},{0x46, 0x62, 0x28, 0xFF}}}, ++ {{{107, 56, 103},0, {339, 2},{0x48, 0x38, 0x59, 0xFF}}}, ++ {{{127, 20, 96},0, {337, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, ++ {{{117, 20, 103},0, {339, 26},{0x49, 0xFB, 0x68, 0xFF}}}, ++ {{{119, 28, 89},0, {335, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, ++ {{{121, 28, 44},0, {323, 20},{0x63, 0x38, 0x39, 0xFF}}}, ++ {{{-126, 20, 96},0, {337, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, ++ {{{-119, 16, 99},0, {338, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, ++ {{{-117, 20, 103},0, {339, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, ++ {{{-130, 20, 37},0, {322, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, ++ {{{-119, 28, 89},0, {335, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, ++ {{{-116, 54, 96},0, {337, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, ++ {{{-107, 56, 103},0, {339, 2},{0xB8, 0x37, 0x59, 0xFF}}}, ++ {{{-106, 61, 98},0, {338, -1},{0xBA, 0x62, 0x28, 0xFF}}}, ++ {{{-114, 60, 35},0, {321, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, ++ {{{-124, 54, 37},0, {322, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, ++ {{{-115, 55, 30},0, {320, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, ++ {{{-120, 20, 31},0, {320, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, ++ {{{-122, 16, 35},0, {321, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, ++ {{{-120, 45, 44},0, {324, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, ++ {{{-121, 28, 44},0, {323, 20},{0x9D, 0x38, 0x39, 0xFF}}}, ++ {{{-116, 45, 89},0, {335, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_1[] = { ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 6, 1, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 2, 0), ++ gsSP1Triangle(1, 12, 2, 0), ++ gsSP1Triangle(12, 1, 14, 0), ++ gsSP1Triangle(14, 1, 15, 0), ++ gsSP1Triangle(6, 15, 1, 0), ++ gsSP1Triangle(12, 14, 8, 0), ++ gsSP1Triangle(8, 14, 7, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2[92] = { ++ {{{123, 16, 35},0, {0, 981},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 24, -33},0, {0, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{111, 34, -71},0, {1, 992},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{75, 53, -82},0, {6, 994},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{42, 54, -82},0, {10, 994},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{12, 35, -71},0, {14, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{17, 88, 34},0, {14, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{3, 25, -34},0, {15, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{3, 17, 34},0, {15, 981},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{57, 99, -18},0, {10, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{20, 95, -34},0, {14, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{26, 97, -63},0, {13, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{60, 96, -67},0, {9, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{98, 97, -62},0, {4, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{99, 95, -33},0, {4, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, ++ {{{106, 88, 35},0, {3, 981},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{59, 102, 34},0, {9, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{120, 50, -33},0, {1, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{121, 40, 35},0, {0, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{109, 52, -68},0, {2, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{14, 53, -68},0, {14, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{116, 37, 98},0, {1, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{114, 17, 136},0, {1, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{120, 16, 98},0, {0, 974},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{99, 61, 135},0, {3, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{105, 73, 98},0, {3, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{61, 72, 135},0, {8, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{61, 85, 98},0, {9, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{23, 74, 98},0, {13, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{28, 62, 135},0, {12, 970},{0xA9, 0x50, 0x30, 0xFF}}}, ++ {{{8, 17, 98},0, {14, 974},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{16, 18, 135},0, {13, 970},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{35, 22, 178},0, {11, 966},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{62, 51, 183},0, {8, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, ++ {{{62, 30, 200},0, {7, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{91, 22, 178},0, {3, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-12, 18, 34},0, {20, 981},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-12, 25, -34},0, {20, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-12, 35, -71},0, {21, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-42, 54, -82},0, {24, 994},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {28, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-111, 34, -70},0, {33, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 16, 35},0, {35, 981},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-121, 40, 35},0, {34, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 24, -33},0, {35, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-106, 88, 35},0, {32, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-120, 50, -33},0, {34, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-99, 95, -33},0, {30, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-57, 99, -18},0, {25, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-59, 102, 34},0, {25, 981},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-17, 88, 34},0, {20, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-20, 95, -34},0, {21, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-26, 97, -63},0, {21, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-14, 53, -68},0, {21, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-60, 96, -67},0, {26, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-98, 97, -62},0, {30, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-109, 52, -68},0, {32, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-116, 37, 98},0, {34, 974},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-119, 16, 99},0, {35, 974},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-113, 17, 136},0, {34, 970},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-99, 61, 135},0, {31, 970},{0xAD, 0x52, 0x32, 0xFF}}}, ++ {{{-91, 22, 178},0, {31, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-61, 51, 183},0, {27, 965},{0x2, 0x5D, 0x57, 0xFF}}}, ++ {{{-61, 30, 200},0, {27, 963},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-34, 22, 178},0, {24, 966},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-28, 62, 135},0, {22, 970},{0x57, 0x50, 0x2F, 0xFF}}}, ++ {{{-16, 18, 135},0, {22, 970},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-8, 17, 98},0, {21, 974},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-22, 74, 98},0, {21, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-61, 72, 135},0, {26, 970},{0x1, 0x76, 0x2F, 0xFF}}}, ++ {{{-61, 85, 98},0, {26, 974},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-105, 73, 98},0, {32, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_2[] = { ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(9, 8, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(10, 3, 0, 0), ++ gsSP1Triangle(8, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 13, 8, 0), ++ gsSP1Triangle(8, 13, 7, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(5, 12, 3, 0), ++ gsSP1Triangle(5, 8, 12, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 46, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 62, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(3, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(6, 10, 12, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(5, 6, 13, 0), ++ gsSP1Triangle(5, 13, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_2 + 77, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3[112] = { ++ {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, ++ {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_000_displaylist_mesh_layer_1_tri_3[] = { ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(5, 0, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(marios_wing_cap_000_displaylist_mesh_layer_1_vtx_3 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(11, 13, 15, 0), ++ gsSP1Triangle(13, 1, 15, 0), ++ gsSP1Triangle(1, 0, 15, 0), ++ gsSP1Triangle(0, 4, 15, 0), ++ gsSP1Triangle(4, 5, 15, 0), ++ gsSP1Triangle(5, 8, 15, 0), ++ gsSP1Triangle(8, 9, 15, 0), ++ gsSP1Triangle(9, 11, 15, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0[8] = { ++ {{{194, 17, -65},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{279, -15, -131},0, {974, 1978},{0x52, 0x34, 0x52, 0xFF}}}, ++ {{{267, 178, -241},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{182, 210, -175},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{-193, 17, -68},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-278, -15, -134},0, {974, 1978},{0x52, 0xCC, 0xAE, 0xFF}}}, ++ {{{-266, 178, -244},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-182, 210, -178},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_0[] = { ++ gsSPVertex(marios_wing_cap_001_displaylist_mesh_layer_4_vtx_0 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1[8] = { ++ {{{98, 243, -109},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{109, 49, 0},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{194, 17, -65},0, {974, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{182, 210, -175},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{-97, 243, -112},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-193, 17, -68},0, {974, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-182, 210, -178},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-108, 49, -3},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++}; ++ ++Gfx marios_wing_cap_001_displaylist_mesh_layer_4_tri_1[] = { ++ gsSPVertex(marios_wing_cap_001_displaylist_mesh_layer_4_vtx_1 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_marios_wing_cap_sonic_texture_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_sonic_new2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(marios_wing_cap_sonic_texture_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_wing_cap_sonic_buckle_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(marios_wing_cap_sonic_buckle_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_wing_cap_sonic_shoe_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(marios_wing_cap_sonic_shoe_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_wing_cap_sonic_white_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(marios_wing_cap_sonic_white_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_wing_cap_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_wing_2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_wing_cap_wing_2_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_wing_cap_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, marios_wing_cap_wing1_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_wing_cap_wing_1_001_v4[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_wing_cap_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_marios_wing_cap_sonic_texture_v4), ++ gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_marios_wing_cap_sonic_buckle_v4), ++ gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_marios_wing_cap_sonic_shoe_v4), ++ gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_marios_wing_cap_sonic_white_v4), ++ gsSPDisplayList(marios_wing_cap_000_displaylist_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_wing_cap_001_displaylist_mesh_layer_4[] = { ++ gsSPDisplayList(mat_marios_wing_cap_wing_2_001_v4), ++ gsSPDisplayList(marios_wing_cap_001_displaylist_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_marios_wing_cap_wing_2_001_v4), ++ gsSPDisplayList(mat_marios_wing_cap_wing_1_001_v4), ++ gsSPDisplayList(marios_wing_cap_001_displaylist_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_marios_wing_cap_wing_1_001_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_wing_cap_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/marios_wing_cap/sonic_new2.rgba16.png b/actors/marios_wing_cap/sonic_new2.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..b1a02ad92fc51e4355617643fa47187c6acbfbcc +GIT binary patch +literal 869 +zcmV-r1DgDaP)s(0 +zSa`Xs?QBFd(jE*3< +zr_+kX`LJshp-ZhqLDzNH{zFiNLLqAR&>Dcm)Br@3(akpv0K>3$#+Q4RLiBcs=j4@1 +zvjS*MlM96c0liQ+?q9`MTRVVdR1JkryjYq~rhm`2rrSdR{mxJ9j2i?#)T6?531u2mF^#h@^U0Vhhqb5sq`ed-dp +zil2)J!|9>|#85QAwr7Wdz^VW-$aOwC&vV$QXaI*?E_dF@6D2TLI;BtDpm)H`F1-n( +zW9zThf%~`a?AIB5%nFEWdS)6r69t}#3VTlt!r?F+=5Ea4SuU4(iURP51B)#(b{*(w +z*&x_)r)fPkP$ZGO)oPW7D9)~cJ-|yC!Pp4ku-#yf+=+mfG62S0`?QfK4<8;f%s>p~ +zqj#f!HT1s-|_9ixduF! +zffZnBA@cfDiLC&9Isq$9SB7$y#I^>o;+lnPoqUbIPrm&))BtY0inwTdAD{>h0L=Yi +z<3Iq?Y&KikFUf@5MrW_-T6=SGYiTb@EIY|vNyq6(V^4hEQ|ADffV1fFUJ~rQuE-b& +v1SFk94Z3dE2!kSUv?=#$;*}-KNKWuyVtyz4^-&sT00000NkvXXu0mjfJa&;G + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_wing_cap/wing1.rgba16.png b/actors/marios_wing_cap/wing1.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..394cbd582cae233fc7664fb14e296d5178bf2675 +GIT binary patch +literal 1341 +zcmV-D1;YA?P)e5m?2jzIS_@1cUB;gNF)-8L?V$$Boc{4BKZkOBoc{4 +zB9TZW636zJ-7n{MCK(ubZ_Sc(dMc?@-FvIj-7~OQ{EVLt{NFpU@n1IJ`uh5Pb91v$ +zV!8gPfXmCvLI}~;)>a{u7|Zx00xm8tRuZR(zlx0C^l^TEUWt=r)%@3Q;$A?WSd!v% +z-m~BCz}eYZA%1&%>z;FuG=1Od!0GAfJH%F5CY_4im)JP$mpgEBa#F|vbx6>&#weII +z^Dhe^S@I+tJ#G@FkS_~3Iyx%np2Y23BCVBc6|{B-4i672IUp@@t|h@TBu~4x0Fr4l +zBgwM$W%J*UB*T^K?d|RL?t%UN{iSz#ieTP@Dl1*%@&dQ0&>Y0;kP63ISPYJO41OkwC`UJ-+LSk+1G5?eR$plGaK=3;tmK>h~ +znd?vcp@8Yk-UU%WYXNUZigGWBoqs5xCF`w|Kwx}|(1&g39}38Jx8xG1g}{!reg&k6 +zl>)f=1nZGoAw+<_zP{F~SCOZXl>%B)*MN`6GbSrdQpIA20@k_tUS3{if>u>emr}s+ +z2MLvo+TT`hN80LpRU;q;4?D1mTme?%8X@?!DF9;c5wLf6cNcqmd;KGz{Z^CU`XFFV +zC6Fk#Fvo`iAa+bQb|DtG+X0DMD+m@)2n5PKiM7Tb92^v}_#Hz5RK;jTxPE?qp6v-J +zsqMysMY|c2W5HSy(BAzdNs49A`reQn3#qLqFX!SAwN+sfYz<%>@bM +zTy#y5;tvG~-dX_kr6_@^eEQ{7Iv|P1$({fB__%m_dMbjzSrT9po4sNC+kJ&W!kmhY +zNsBo4@9ypj{E`6FlF++IWF#PK{kEKS#ir7$s)&^aO@r+Ni1 +z2@qT|0XZ*y0%8H=&K?O+B$jb}d|Yf-06RSrlNCdpK7jBG$R5M}e^!g~<--$VoIJGy +z?H7<_SgJHZKrB^r=d%Yeq*$(u=e$|74;I7yDgcMh5)mIgKR(D6U_Mr&+uPg4{r!D; +z+{9>Y6`-m%z{)&hbxA^e<}kN2(_hl%g+tZEXPh`yKntXxOf*TGtu`N<{^?(K^;m4b +zMS)!f2&zif1oQ*|z-3n?C&&EEBhId54D*=)li64`c#jjy+b>0!L#5pDiI;QZurmQ} +z5X@y2uG!~(U}tQp;8;6@IEH&=(fOzX4Aer>8xIc;)om=K4tzWr2xS;k7V!Z-c~wB{ +z4X1$dCPM_tZ3h(1o6(^F_tH*r8#4h0o7`HGIddK_25W@yT_7-`^n<5g?CHI*k+?Gf +zxj~{y_#sMQWAP)1*f!oAJH@g1L&W@{00I(}H(C-{8RQTdpO$Vhydk+auCA_%&yS&i +zB;(9!GebY1{JgSC0o`|vwR6*d)MxEyuL>Z@s@QPg^`tN!672rIJKs31QjYbvF3jknxm(KvEs%Pt7-a5Wt +zZLk$V-aE54{=4g$fSa3}QeCg|?-Kpwk2>%-@U)_FskK$M00000NkvXXu0mjfc++m= + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_wing_cap/wing_2.rgba16.png b/actors/marios_wing_cap/wing_2.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7be615e006b8d62ac8994478b24167ca48d40c42 +GIT binary patch +literal 1032 +zcmV+j1o!)iP)e5n5|YTF%*T{yG9_9NF=h4&`01AkURpi5{cvykjTnP +zBoc{4B5@^OSUc>5q-5q&#J$a0({qyZvv>!_9n7OVr*r^O9 +zfzG((M(H*Ci;IhSGIT15K&OA^rdcB)F{Q^*v +za=9E`ehAMW9v->~_zcn6zP^Q3m2evFB(m9TwoZ1?EMVgx^aa2^_gkceiw})Bd}v`U +zqzQRGbmDvr|BQfukOIf)yH=8G`2!v*keTB_1em~;OfvKSiw@vVPfxS+^YiQ$4gLTr +z%LCp|5Fszm2?&&JzzB%ICEZaZkgmH=OJ|J%&N)##DMAQg`MwZP0*tNZfb!88eRB8(iQ4S(O}jwAl1hZEH3xKEzD@w}@W%9I_V}g>2)LA< +zPxIM7F`NtLz>h-v?SxJ_l~;o(z2~iFsHo +z>G|y-N?eY4U%DhQtc6g~?n=aMD6pE;LKBGk_-f2`?Sxvc+E_+F$vv@xWK$oXa*RF? +zoiQ!#0uNH+8WH))$0f7Byu9o#Ke^ILsKgGccFn!Bv9$hn2YhLz~rLEmr|9`fj-P1zl=jlz*CM~&*%C)lrWtG +z0BL5F7M(_wWV^k+om6TEb$uS*R3iZ|yYx~L7-m2D+;?E<>4ijKGL(Idw{DZ{V`Y;- +znFwHR%as2B%3R)01bonSfCWBfpL?#F9?yZ&pfV%1L+u0iC!frXWQoNDDG0|EK$RSscQe*s{%|5nQuq3(U{GkRZyA_0K8n0ffi +zeXonIoXEh@s)x*PExeM%p?|2rp#p~r94hdCSKu8HX2-i06$$bH0000dgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_winged_metal_cap/model.inc.c b/actors/marios_winged_metal_cap/model.inc.c +new file mode 100644 +index 0000000..49e074a +--- /dev/null ++++ b/actors/marios_winged_metal_cap/model.inc.c +@@ -0,0 +1,893 @@ ++Gfx marios_winged_metal_cap_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_winged_metal_cap_metal_rgba16[] = { ++ #include "actors/marios_winged_metal_cap/metal.rgba16.inc.c" ++}; ++ ++Gfx marios_winged_metal_cap_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_winged_metal_cap_wing_2_rgba16[] = { ++ #include "actors/marios_winged_metal_cap/wing_2.rgba16.inc.c" ++}; ++ ++Gfx marios_winged_metal_cap_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 marios_winged_metal_cap_wing1_rgba16[] = { ++ #include "actors/marios_winged_metal_cap/wing1.rgba16.inc.c" ++}; ++ ++Vtx marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0[380] = { ++ {{{104, 6, -74},0, {2016, -7},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{111, 34, -71},0, {1680, -7},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 2, -33},0, {2016, 32},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{122, 24, -33},0, {1745, 32},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{123, 16, 35},0, {1809, 192},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 2, 35},0, {2016, 192},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{120, 16, 98},0, {1808, 258},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{119, 2, 99},0, {2017, 258},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{114, 17, 136},0, {1812, 323},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{113, 3, 136},0, {2017, 323},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {2017, 395},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{91, 22, 178},0, {1831, 395},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{62, 20, 203},0, {2017, 436},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{62, 30, 200},0, {1846, 431},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{35, 22, 178},0, {1831, 395},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{16, 18, 135},0, {1812, 323},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{33, 11, 178},0, {2017, 395},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{16, 4, 135},0, {2017, 323},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{8, 17, 98},0, {1808, 258},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{8, 3, 98},0, {2017, 258},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {1809, 192},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{3, 3, 34},0, {2016, 192},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{3, 3, -34},0, {2016, 32},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{3, 25, -34},0, {1745, 32},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{14, 7, -75},0, {2016, -7},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{12, 35, -71},0, {1680, -7},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{123, 16, 35},0, {15, 981},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{122, 24, -33},0, {16, 988},{0x7E, 0xFF, 0xEE, 0xFF}}}, ++ {{{111, 34, -71},0, {19, 992},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{75, 53, -82},0, {29, 994},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{60, 96, -67},0, {34, 992},{0x0, 0x63, 0xB1, 0xFF}}}, ++ {{{42, 54, -82},0, {37, 994},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{12, 35, -71},0, {44, 992},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{3, 25, -34},0, {45, 988},{0x82, 0xC, 0xF3, 0xFF}}}, ++ {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{3, 17, 34},0, {45, 981},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{99, 95, -33},0, {24, 988},{0x4D, 0x65, 0xFF, 0xFF}}}, ++ {{{98, 97, -62},0, {25, 992},{0x45, 0x5A, 0xC7, 0xFF}}}, ++ {{{57, 99, -18},0, {35, 987},{0xFF, 0x7F, 0x2, 0xFF}}}, ++ {{{106, 88, 35},0, {22, 981},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{59, 102, 34},0, {34, 981},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {44, 981},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{120, 50, -33},0, {17, 988},{0x7A, 0x1E, 0xEF, 0xFF}}}, ++ {{{121, 40, 35},0, {16, 981},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{109, 52, -68},0, {20, 992},{0x5E, 0x20, 0xB0, 0xFF}}}, ++ {{{20, 95, -34},0, {44, 988},{0xA9, 0x5C, 0xFF, 0xFF}}}, ++ {{{26, 97, -63},0, {43, 992},{0xC2, 0x5D, 0xC3, 0xFF}}}, ++ {{{14, 53, -68},0, {44, 992},{0x9C, 0x1C, 0xB7, 0xFF}}}, ++ {{{120, 16, 98},0, {-16, -16},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{123, 16, 35},0, {-16, -16},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{116, 37, 98},0, {-16, -16},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{121, 40, 35},0, {-16, -16},{0x7D, 0x17, 0x5, 0xFF}}}, ++ {{{105, 73, 98},0, {-16, -16},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{106, 88, 35},0, {-16, -16},{0x56, 0x5D, 0xB, 0xFF}}}, ++ {{{61, 85, 98},0, {-16, -16},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{59, 102, 34},0, {-16, -16},{0xFF, 0x7E, 0xC, 0xFF}}}, ++ {{{17, 88, 34},0, {-16, -16},{0xA4, 0x56, 0xE, 0xFF}}}, ++ {{{23, 74, 98},0, {-16, -16},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{3, 17, 34},0, {-16, -16},{0x82, 0xE, 0x6, 0xFF}}}, ++ {{{8, 17, 98},0, {-16, -16},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{116, 37, 98},0, {17, 974},{0x7A, 0x1E, 0x11, 0xFF}}}, ++ {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{120, 16, 98},0, {16, 974},{0x7E, 0x5, 0xD, 0xFF}}}, ++ {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{61, 85, 98},0, {33, 974},{0xFF, 0x7A, 0x24, 0xFF}}}, ++ {{{61, 72, 135},0, {33, 970},{0xFF, 0x76, 0x2F, 0xFF}}}, ++ {{{105, 73, 98},0, {21, 974},{0x58, 0x57, 0x1E, 0xFF}}}, ++ {{{23, 74, 98},0, {42, 974},{0xA6, 0x54, 0x1F, 0xFF}}}, ++ {{{28, 62, 135},0, {40, 970},{0xA9, 0x50, 0x30, 0xFF}}}, ++ {{{8, 17, 98},0, {44, 974},{0x83, 0xF, 0x12, 0xFF}}}, ++ {{{16, 18, 135},0, {42, 970},{0x87, 0x10, 0x24, 0xFF}}}, ++ {{{35, 22, 178},0, {37, 966},{0x9D, 0x22, 0x48, 0xFF}}}, ++ {{{62, 51, 183},0, {31, 965},{0xFE, 0x5D, 0x57, 0xFF}}}, ++ {{{62, 30, 200},0, {30, 963},{0xFF, 0x3D, 0x70, 0xFF}}}, ++ {{{91, 22, 178},0, {23, 966},{0x5F, 0x1F, 0x4E, 0xFF}}}, ++ {{{99, 61, 135},0, {23, 970},{0x53, 0x52, 0x32, 0xFF}}}, ++ {{{114, 17, 136},0, {17, 970},{0x78, 0xE, 0x27, 0xFF}}}, ++ {{{104, 6, -74},0, {2016, 1070},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{84, 13, -91},0, {2016, 782},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{75, 53, -82},0, {1342, 770},{0x16, 0x21, 0x87, 0xFF}}}, ++ {{{111, 34, -71},0, {1625, 1213},{0x63, 0xA, 0xB1, 0xFF}}}, ++ {{{37, 14, -91},0, {2016, 722},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{42, 54, -82},0, {1342, 734},{0xE7, 0x21, 0x88, 0xFF}}}, ++ {{{12, 35, -71},0, {1625, 291},{0x9A, 0xF, 0xB6, 0xFF}}}, ++ {{{14, 7, -75},0, {2016, 434},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{37, 14, -91},0, {852, 1519},{0xE5, 0xCF, 0x8E, 0xFF}}}, ++ {{{84, 13, -91},0, {949, 1519},{0x1C, 0xCF, 0x8E, 0xFF}}}, ++ {{{104, 6, -74},0, {993, 1413},{0x42, 0xAA, 0xBE, 0xFF}}}, ++ {{{14, 7, -75},0, {805, 1413},{0xB4, 0xB4, 0xBD, 0xFF}}}, ++ {{{3, 3, -34},0, {783, 1139},{0xA4, 0xAA, 0xF0, 0xFF}}}, ++ {{{120, 2, -33},0, {1029, 1139},{0x56, 0xA4, 0xED, 0xFF}}}, ++ {{{3, 3, 34},0, {784, 690},{0xA3, 0xA9, 0x4, 0xFF}}}, ++ {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{8, 3, 98},0, {796, 269},{0xA5, 0xA8, 0xE, 0xFF}}}, ++ {{{122, 2, 35},0, {1034, 690},{0x58, 0xA4, 0x0, 0xFF}}}, ++ {{{119, 2, 99},0, {1028, 269},{0x57, 0xA4, 0xA, 0xFF}}}, ++ {{{16, 4, 135},0, {813, 23},{0xAA, 0xA8, 0x20, 0xFF}}}, ++ {{{113, 3, 136},0, {1016, 23},{0x55, 0xA8, 0x21, 0xFF}}}, ++ {{{92, 10, 178},0, {970, -261},{0x46, 0xB2, 0x47, 0xFF}}}, ++ {{{33, 11, 178},0, {847, -261},{0xB1, 0xB6, 0x43, 0xFF}}}, ++ {{{62, 20, 203},0, {904, -427},{0xFD, 0xDF, 0x7B, 0xFF}}}, ++ {{{-12, 25, -34},0, {1745, 32},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-14, 7, -75},0, {2016, -7},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 35, -71},0, {1680, -7},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-12, 3, -34},0, {2016, 32},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-12, 18, 34},0, {1809, 192},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-11, 3, 34},0, {2016, 192},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 4, 135},0, {2017, 323},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-8, 3, 98},0, {2017, 258},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-8, 17, 98},0, {1808, 258},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-16, 18, 135},0, {1812, 323},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-33, 11, 178},0, {2017, 395},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-34, 22, 178},0, {1831, 395},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-61, 20, 203},0, {2017, 436},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-61, 30, 200},0, {1846, 431},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-91, 22, 178},0, {1831, 395},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-91, 10, 178},0, {2017, 395},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-113, 17, 136},0, {1812, 323},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-113, 3, 136},0, {2017, 323},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-118, 2, 99},0, {2017, 258},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-119, 16, 99},0, {1808, 258},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-122, 2, 35},0, {2016, 192},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-122, 16, 35},0, {1809, 192},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-120, 2, -33},0, {2016, 32},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-122, 24, -33},0, {1745, 32},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-111, 34, -70},0, {1680, -7},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {2016, -7},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-12, 18, 34},0, {56, 981},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-12, 25, -34},0, {56, 988},{0x7F, 0x5, 0xFF, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-12, 35, -71},0, {58, 992},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-42, 54, -82},0, {64, 994},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-75, 53, -82},0, {72, 994},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-111, 34, -70},0, {82, 992},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-122, 24, -33},0, {85, 988},{0x82, 0xFF, 0xEE, 0xFF}}}, ++ {{{-121, 40, 35},0, {85, 981},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-122, 16, 35},0, {86, 981},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-106, 88, 35},0, {79, 981},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-59, 102, 34},0, {67, 981},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-17, 88, 34},0, {57, 981},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-20, 95, -34},0, {57, 988},{0x5B, 0x59, 0x0, 0xFF}}}, ++ {{{-14, 53, -68},0, {57, 992},{0x6B, 0x18, 0xBF, 0xFF}}}, ++ {{{-26, 97, -63},0, {59, 992},{0x3E, 0x5D, 0xC3, 0xFF}}}, ++ {{{-57, 99, -18},0, {66, 987},{0x1, 0x7F, 0x2, 0xFF}}}, ++ {{{-60, 96, -67},0, {67, 992},{0xFF, 0x63, 0xB1, 0xFF}}}, ++ {{{-98, 97, -62},0, {76, 992},{0xBB, 0x5A, 0xC7, 0xFF}}}, ++ {{{-99, 95, -33},0, {77, 988},{0xB3, 0x65, 0x0, 0xFF}}}, ++ {{{-109, 52, -68},0, {81, 992},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{-120, 50, -33},0, {84, 988},{0x86, 0x1E, 0xEF, 0xFF}}}, ++ {{{-22, 74, 98},0, {-16, -16},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-8, 17, 98},0, {-16, -16},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-12, 18, 34},0, {-16, -16},{0x7F, 0x8, 0x0, 0xFF}}}, ++ {{{-17, 88, 34},0, {-16, -16},{0x61, 0x51, 0xD, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-59, 102, 34},0, {-16, -16},{0x1, 0x7E, 0xC, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-105, 73, 98},0, {-16, -16},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{-61, 85, 98},0, {-16, -16},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-106, 88, 35},0, {-16, -16},{0xAA, 0x5D, 0xC, 0xFF}}}, ++ {{{-121, 40, 35},0, {-16, -16},{0x83, 0x17, 0x6, 0xFF}}}, ++ {{{-116, 37, 98},0, {-16, -16},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-122, 16, 35},0, {-16, -16},{0x81, 0x0, 0x2, 0xFF}}}, ++ {{{-119, 16, 99},0, {-16, -16},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-12, 35, -71},0, {1625, 291},{0x6E, 0xD, 0xC2, 0xFF}}}, ++ {{{-14, 7, -75},0, {2016, 434},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-37, 14, -91},0, {2016, 722},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-42, 54, -82},0, {1342, 734},{0x19, 0x21, 0x88, 0xFF}}}, ++ {{{-75, 53, -82},0, {1342, 770},{0xEA, 0x21, 0x87, 0xFF}}}, ++ {{{-84, 13, -90},0, {2016, 782},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-111, 34, -70},0, {1625, 1213},{0x9D, 0xA, 0xB2, 0xFF}}}, ++ {{{-104, 6, -74},0, {2016, 1070},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-37, 14, -91},0, {856, 1519},{0x1B, 0xCF, 0x8E, 0xFF}}}, ++ {{{-104, 6, -74},0, {998, 1413},{0xBE, 0xAA, 0xBE, 0xFF}}}, ++ {{{-84, 13, -90},0, {953, 1519},{0xE4, 0xCF, 0x8E, 0xFF}}}, ++ {{{-14, 7, -75},0, {809, 1413},{0x54, 0xB4, 0xC6, 0xFF}}}, ++ {{{-12, 3, -34},0, {788, 1139},{0x5A, 0xA7, 0xF9, 0xFF}}}, ++ {{{-120, 2, -33},0, {1033, 1139},{0xAA, 0xA4, 0xED, 0xFF}}}, ++ {{{-11, 3, 34},0, {788, 690},{0x5B, 0xA7, 0xFE, 0xFF}}}, ++ {{{-122, 2, 35},0, {1038, 690},{0xA8, 0xA4, 0x0, 0xFF}}}, ++ {{{-8, 3, 98},0, {800, 269},{0x5D, 0xAA, 0x8, 0xFF}}}, ++ {{{-118, 2, 99},0, {1033, 269},{0xA9, 0xA4, 0xA, 0xFF}}}, ++ {{{-16, 4, 135},0, {818, 23},{0x57, 0xA9, 0x20, 0xFF}}}, ++ {{{-113, 3, 136},0, {1021, 23},{0xAB, 0xA7, 0x21, 0xFF}}}, ++ {{{-91, 10, 178},0, {974, -261},{0xBA, 0xB2, 0x47, 0xFF}}}, ++ {{{-33, 11, 178},0, {851, -261},{0x4F, 0xB6, 0x43, 0xFF}}}, ++ {{{-61, 20, 203},0, {908, -427},{0x3, 0xDF, 0x7B, 0xFF}}}, ++ {{{-116, 37, 98},0, {84, 974},{0x86, 0x1E, 0x11, 0xFF}}}, ++ {{{-119, 16, 99},0, {85, 974},{0x82, 0x5, 0xD, 0xFF}}}, ++ {{{-113, 17, 136},0, {84, 970},{0x88, 0xE, 0x27, 0xFF}}}, ++ {{{-99, 61, 135},0, {78, 970},{0xAD, 0x52, 0x32, 0xFF}}}, ++ {{{-91, 22, 178},0, {78, 966},{0xA1, 0x1F, 0x4F, 0xFF}}}, ++ {{{-61, 51, 183},0, {70, 965},{0x2, 0x5D, 0x57, 0xFF}}}, ++ {{{-61, 30, 200},0, {71, 963},{0x1, 0x3D, 0x70, 0xFF}}}, ++ {{{-34, 22, 178},0, {64, 966},{0x63, 0x22, 0x48, 0xFF}}}, ++ {{{-28, 62, 135},0, {61, 970},{0x57, 0x50, 0x2F, 0xFF}}}, ++ {{{-16, 18, 135},0, {60, 970},{0x79, 0x10, 0x24, 0xFF}}}, ++ {{{-8, 17, 98},0, {58, 974},{0x7E, 0xF, 0x9, 0xFF}}}, ++ {{{-22, 74, 98},0, {59, 974},{0x5D, 0x52, 0x1C, 0xFF}}}, ++ {{{-61, 72, 135},0, {69, 970},{0x1, 0x76, 0x2F, 0xFF}}}, ++ {{{-61, 85, 98},0, {68, 974},{0x1, 0x7A, 0x24, 0xFF}}}, ++ {{{-105, 73, 98},0, {79, 974},{0xA8, 0x57, 0x1F, 0xFF}}}, ++ {{{123, 16, 35},0, {658, 28},{0x44, 0xA2, 0xCC, 0xFF}}}, ++ {{{130, 20, 37},0, {659, 24},{0x76, 0xDF, 0xDF, 0xFF}}}, ++ {{{120, 16, 98},0, {691, 29},{0x4A, 0xAB, 0x3B, 0xFF}}}, ++ {{{121, 20, 30},0, {656, 26},{0x48, 0xEE, 0x99, 0xFF}}}, ++ {{{116, 55, 30},0, {656, 1},{0x4B, 0x31, 0xA6, 0xFF}}}, ++ {{{125, 54, 37},0, {659, 1},{0x71, 0x32, 0xE2, 0xFF}}}, ++ {{{114, 60, 35},0, {658, -2},{0x48, 0x65, 0xE5, 0xFF}}}, ++ {{{117, 54, 96},0, {690, 2},{0x68, 0x3A, 0x2D, 0xFF}}}, ++ {{{106, 61, 98},0, {691, -1},{0x46, 0x62, 0x28, 0xFF}}}, ++ {{{107, 56, 103},0, {694, 2},{0x48, 0x38, 0x59, 0xFF}}}, ++ {{{127, 20, 96},0, {690, 25},{0x76, 0xE8, 0x2A, 0xFF}}}, ++ {{{117, 20, 103},0, {694, 26},{0x49, 0xFB, 0x68, 0xFF}}}, ++ {{{119, 28, 89},0, {686, 20},{0x6A, 0x3E, 0xDE, 0xFF}}}, ++ {{{121, 28, 44},0, {663, 20},{0x63, 0x38, 0x39, 0xFF}}}, ++ {{{120, 45, 44},0, {663, 8},{0x72, 0xEB, 0x34, 0xFF}}}, ++ {{{116, 45, 89},0, {686, 8},{0x7E, 0xFE, 0xF3, 0xFF}}}, ++ {{{108, 143, -24},0, {1166, 576},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{58, 102, -4},0, {1204, 64},{0x6, 0x7F, 0x5, 0xFF}}}, ++ {{{108, 143, 13},0, {1237, 576},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{79, 146, -48},0, {1119, 576},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{40, 148, -46},0, {1124, 576},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{14, 148, -18},0, {1176, 576},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{16, 146, 20},0, {1250, 576},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{45, 145, 44},0, {1296, 576},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{83, 143, 42},0, {1291, 576},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{108, 143, 13},0, {-16, -16},{0x4E, 0x61, 0x1A, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{45, 145, 44},0, {-16, -16},{0xE8, 0x64, 0x4A, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{83, 143, 42},0, {-16, -16},{0x26, 0x62, 0x47, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{16, 146, 20},0, {-16, -16},{0xB8, 0x62, 0x24, 0xFF}}}, ++ {{{14, 148, -18},0, {-16, -16},{0xB5, 0x64, 0xEA, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{40, 148, -46},0, {-16, -16},{0xE2, 0x69, 0xBE, 0xFF}}}, ++ {{{79, 146, -48},0, {-16, -16},{0x1C, 0x66, 0xB9, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{108, 143, -24},0, {-16, -16},{0x50, 0x5E, 0xE0, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{102, 114, -22},0, {-16, -16},{0x75, 0x6, 0xCE, 0xFF}}}, ++ {{{101, 113, 12},0, {-16, -16},{0x77, 0x2, 0x2C, 0xFF}}}, ++ {{{80, 111, 39},0, {-16, -16},{0x39, 0x7, 0x71, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{46, 112, 41},0, {-16, -16},{0xD6, 0x8, 0x78, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{22, 114, 18},0, {-16, -16},{0x8E, 0x5, 0x38, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{20, 117, -18},0, {-16, -16},{0x88, 0x7, 0xD7, 0xFF}}}, ++ {{{42, 118, -43},0, {-16, -16},{0xC9, 0xE, 0x8E, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{76, 117, -45},0, {-16, -16},{0x29, 0xC, 0x88, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{109, 89, -26},0, {-16, -16},{0x6B, 0xD0, 0xCE, 0xFF}}}, ++ {{{57, 66, -4},0, {-16, -16},{0xF8, 0x82, 0xF8, 0xFF}}}, ++ {{{79, 93, -53},0, {-16, -16},{0x25, 0xD8, 0x8D, 0xFF}}}, ++ {{{108, 87, 14},0, {-16, -16},{0x6D, 0xCB, 0x25, 0xFF}}}, ++ {{{84, 85, 44},0, {-16, -16},{0x35, 0xCA, 0x66, 0xFF}}}, ++ {{{44, 87, 46},0, {-16, -16},{0xD6, 0xCC, 0x6C, 0xFF}}}, ++ {{{16, 90, 20},0, {-16, -16},{0x93, 0xD2, 0x2F, 0xFF}}}, ++ {{{14, 94, -22},0, {-16, -16},{0x8F, 0xD8, 0xD6, 0xFF}}}, ++ {{{39, 95, -51},0, {-16, -16},{0xCB, 0xDC, 0x92, 0xFF}}}, ++ {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-14, 148, -18},0, {1176, 576},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-40, 148, -46},0, {1124, 576},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-79, 146, -48},0, {1119, 576},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-108, 143, -24},0, {1166, 576},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-108, 143, 13},0, {1237, 576},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-83, 143, 42},0, {1291, 576},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-58, 102, -4},0, {1204, 64},{0xFA, 0x7F, 0x5, 0xFF}}}, ++ {{{-45, 145, 44},0, {1296, 576},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-16, 146, 20},0, {1250, 576},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-16, 146, 20},0, {-16, -16},{0x48, 0x62, 0x24, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-45, 145, 44},0, {-16, -16},{0x18, 0x64, 0x4A, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-83, 143, 42},0, {-16, -16},{0xDA, 0x62, 0x47, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-108, 143, 13},0, {-16, -16},{0xB2, 0x61, 0x1A, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-108, 143, -24},0, {-16, -16},{0xB0, 0x5E, 0xE0, 0xFF}}}, ++ {{{-79, 146, -48},0, {-16, -16},{0xE4, 0x66, 0xB9, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-40, 148, -46},0, {-16, -16},{0x1E, 0x69, 0xBE, 0xFF}}}, ++ {{{-14, 148, -18},0, {-16, -16},{0x4B, 0x64, 0xEA, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-22, 114, 18},0, {-16, -16},{0x72, 0x5, 0x38, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-46, 112, 41},0, {-16, -16},{0x2A, 0x8, 0x78, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-108, 87, 14},0, {-16, -16},{0x93, 0xCB, 0x25, 0xFF}}}, ++ {{{-80, 111, 39},0, {-16, -16},{0xC7, 0x7, 0x71, 0xFF}}}, ++ {{{-101, 113, 12},0, {-16, -16},{0x89, 0x2, 0x2C, 0xFF}}}, ++ {{{-102, 114, -22},0, {-16, -16},{0x8B, 0x6, 0xCE, 0xFF}}}, ++ {{{-109, 89, -26},0, {-16, -16},{0x95, 0xD0, 0xCE, 0xFF}}}, ++ {{{-79, 93, -53},0, {-16, -16},{0xDB, 0xD8, 0x8D, 0xFF}}}, ++ {{{-76, 117, -45},0, {-16, -16},{0xD7, 0xC, 0x88, 0xFF}}}, ++ {{{-39, 95, -51},0, {-16, -16},{0x35, 0xDC, 0x92, 0xFF}}}, ++ {{{-42, 118, -43},0, {-16, -16},{0x37, 0xE, 0x8E, 0xFF}}}, ++ {{{-14, 94, -22},0, {-16, -16},{0x71, 0xD8, 0xD6, 0xFF}}}, ++ {{{-20, 117, -18},0, {-16, -16},{0x78, 0x7, 0xD7, 0xFF}}}, ++ {{{-57, 66, -4},0, {-16, -16},{0x8, 0x82, 0xF8, 0xFF}}}, ++ {{{-16, 90, 20},0, {-16, -16},{0x6D, 0xD2, 0x2F, 0xFF}}}, ++ {{{-44, 87, 46},0, {-16, -16},{0x2A, 0xCC, 0x6C, 0xFF}}}, ++ {{{-84, 85, 44},0, {-16, -16},{0xCB, 0xCA, 0x66, 0xFF}}}, ++ {{{-126, 20, 96},0, {690, 25},{0x8A, 0xE8, 0x2A, 0xFF}}}, ++ {{{-119, 16, 99},0, {691, 29},{0xB6, 0xAB, 0x3B, 0xFF}}}, ++ {{{-117, 20, 103},0, {694, 26},{0xB7, 0xFB, 0x68, 0xFF}}}, ++ {{{-130, 20, 37},0, {659, 24},{0x8A, 0xDE, 0xDF, 0xFF}}}, ++ {{{-119, 28, 89},0, {686, 20},{0x96, 0x3E, 0xDE, 0xFF}}}, ++ {{{-116, 54, 96},0, {690, 2},{0x99, 0x3A, 0x2E, 0xFF}}}, ++ {{{-107, 56, 103},0, {694, 2},{0xB8, 0x37, 0x59, 0xFF}}}, ++ {{{-106, 61, 98},0, {691, -1},{0xBA, 0x62, 0x28, 0xFF}}}, ++ {{{-114, 60, 35},0, {658, -2},{0xB8, 0x65, 0xE5, 0xFF}}}, ++ {{{-124, 54, 37},0, {659, 1},{0x8F, 0x32, 0xE2, 0xFF}}}, ++ {{{-115, 55, 30},0, {656, 1},{0xB5, 0x31, 0xA6, 0xFF}}}, ++ {{{-120, 20, 31},0, {656, 26},{0xB8, 0xEE, 0x99, 0xFF}}}, ++ {{{-122, 16, 35},0, {658, 28},{0xBC, 0xA2, 0xCD, 0xFF}}}, ++ {{{-120, 45, 44},0, {663, 8},{0x8E, 0xEB, 0x34, 0xFF}}}, ++ {{{-121, 28, 44},0, {663, 20},{0x9D, 0x38, 0x39, 0xFF}}}, ++ {{{-116, 45, 89},0, {686, 8},{0x82, 0xFE, 0xF3, 0xFF}}}, ++}; ++ ++Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(15, 12, 13, 0), ++ gsSP1Triangle(15, 8, 12, 0), ++ gsSP1Triangle(15, 6, 8, 0), ++ gsSP1Triangle(5, 6, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(0, 3, 6, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(6, 8, 0, 0), ++ gsSP1Triangle(0, 8, 1, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 10, 13, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(1, 8, 11, 0), ++ gsSP1Triangle(1, 4, 8, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(3, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(8, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 160, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 9, 5, 0), ++ gsSP1Triangle(10, 5, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 176, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(13, 9, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 192, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 207, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 222, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 237, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(10, 11, 2, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(10, 1, 12, 0), ++ gsSP1Triangle(12, 1, 13, 0), ++ gsSP1Triangle(14, 13, 1, 0), ++ gsSP1Triangle(5, 14, 1, 0), ++ gsSP1Triangle(14, 5, 15, 0), ++ gsSP1Triangle(7, 15, 5, 0), ++ gsSP1Triangle(7, 12, 15, 0), ++ gsSP1Triangle(10, 12, 7, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 253, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 269, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(3, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 285, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 301, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 15, 11, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 317, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 333, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 349, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 0, 11, 0), ++ gsSP1Triangle(0, 4, 11, 0), ++ gsSP1Triangle(4, 5, 11, 0), ++ gsSP1Triangle(5, 7, 11, 0), ++ gsSPVertex(marios_winged_metal_cap_000_displaylist_mesh_layer_1_vtx_0 + 364, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_0[8] = { ++ {{{194, 17, -65},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{279, -15, -131},0, {974, 1978},{0x52, 0x34, 0x52, 0xFF}}}, ++ {{{267, 178, -241},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{182, 210, -175},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{-193, 17, -68},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-278, -15, -134},0, {974, 1978},{0x52, 0xCC, 0xAE, 0xFF}}}, ++ {{{-266, 178, -244},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-182, 210, -178},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++}; ++ ++Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_0[] = { ++ gsSPVertex(marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_0 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_1[8] = { ++ {{{98, 243, -109},0, {-16, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{109, 49, 0},0, {-16, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{194, 17, -65},0, {974, 1978},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{182, 210, -175},0, {974, -34},{0x53, 0x33, 0x52, 0xFF}}}, ++ {{{-97, 243, -112},0, {-16, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-193, 17, -68},0, {974, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-182, 210, -178},0, {974, -34},{0x53, 0xCD, 0xAE, 0xFF}}}, ++ {{{-108, 49, -3},0, {-16, 1978},{0x53, 0xCD, 0xAE, 0xFF}}}, ++}; ++ ++Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_1[] = { ++ gsSPVertex(marios_winged_metal_cap_001_displaylist_mesh_layer_4_vtx_1 + 0, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_marios_winged_metal_cap_metal_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, marios_winged_metal_cap_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadTile(7, 0, 0, 252, 124), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_winged_metal_cap_metal_v4[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_winged_metal_cap_wing_2_001_v4_003[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, marios_winged_metal_cap_wing_2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadTile(7, 0, 0, 124, 252), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_winged_metal_cap_wing_2_001_v4_003[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_marios_winged_metal_cap_wing_1_001_v4_003[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, marios_winged_metal_cap_wing1_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadTile(7, 0, 0, 124, 252), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_marios_winged_metal_cap_wing_1_001_v4_003[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_winged_metal_cap_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_marios_winged_metal_cap_metal_v4), ++ gsSPDisplayList(marios_winged_metal_cap_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_marios_winged_metal_cap_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_winged_metal_cap_001_displaylist_mesh_layer_4[] = { ++ gsSPDisplayList(mat_marios_winged_metal_cap_wing_2_001_v4_003), ++ gsSPDisplayList(marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_marios_winged_metal_cap_wing_2_001_v4_003), ++ gsSPDisplayList(mat_marios_winged_metal_cap_wing_1_001_v4_003), ++ gsSPDisplayList(marios_winged_metal_cap_001_displaylist_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_marios_winged_metal_cap_wing_1_001_v4_003), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx marios_winged_metal_cap_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/marios_winged_metal_cap/wing1.rgba16.png b/actors/marios_winged_metal_cap/wing1.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..394cbd582cae233fc7664fb14e296d5178bf2675 +GIT binary patch +literal 1341 +zcmV-D1;YA?P)e5m?2jzIS_@1cUB;gNF)-8L?V$$Boc{4BKZkOBoc{4 +zB9TZW636zJ-7n{MCK(ubZ_Sc(dMc?@-FvIj-7~OQ{EVLt{NFpU@n1IJ`uh5Pb91v$ +zV!8gPfXmCvLI}~;)>a{u7|Zx00xm8tRuZR(zlx0C^l^TEUWt=r)%@3Q;$A?WSd!v% +z-m~BCz}eYZA%1&%>z;FuG=1Od!0GAfJH%F5CY_4im)JP$mpgEBa#F|vbx6>&#weII +z^Dhe^S@I+tJ#G@FkS_~3Iyx%np2Y23BCVBc6|{B-4i672IUp@@t|h@TBu~4x0Fr4l +zBgwM$W%J*UB*T^K?d|RL?t%UN{iSz#ieTP@Dl1*%@&dQ0&>Y0;kP63ISPYJO41OkwC`UJ-+LSk+1G5?eR$plGaK=3;tmK>h~ +znd?vcp@8Yk-UU%WYXNUZigGWBoqs5xCF`w|Kwx}|(1&g39}38Jx8xG1g}{!reg&k6 +zl>)f=1nZGoAw+<_zP{F~SCOZXl>%B)*MN`6GbSrdQpIA20@k_tUS3{if>u>emr}s+ +z2MLvo+TT`hN80LpRU;q;4?D1mTme?%8X@?!DF9;c5wLf6cNcqmd;KGz{Z^CU`XFFV +zC6Fk#Fvo`iAa+bQb|DtG+X0DMD+m@)2n5PKiM7Tb92^v}_#Hz5RK;jTxPE?qp6v-J +zsqMysMY|c2W5HSy(BAzdNs49A`reQn3#qLqFX!SAwN+sfYz<%>@bM +zTy#y5;tvG~-dX_kr6_@^eEQ{7Iv|P1$({fB__%m_dMbjzSrT9po4sNC+kJ&W!kmhY +zNsBo4@9ypj{E`6FlF++IWF#PK{kEKS#ir7$s)&^aO@r+Ni1 +z2@qT|0XZ*y0%8H=&K?O+B$jb}d|Yf-06RSrlNCdpK7jBG$R5M}e^!g~<--$VoIJGy +z?H7<_SgJHZKrB^r=d%Yeq*$(u=e$|74;I7yDgcMh5)mIgKR(D6U_Mr&+uPg4{r!D; +z+{9>Y6`-m%z{)&hbxA^e<}kN2(_hl%g+tZEXPh`yKntXxOf*TGtu`N<{^?(K^;m4b +zMS)!f2&zif1oQ*|z-3n?C&&EEBhId54D*=)li64`c#jjy+b>0!L#5pDiI;QZurmQ} +z5X@y2uG!~(U}tQp;8;6@IEH&=(fOzX4Aer>8xIc;)om=K4tzWr2xS;k7V!Z-c~wB{ +z4X1$dCPM_tZ3h(1o6(^F_tH*r8#4h0o7`HGIddK_25W@yT_7-`^n<5g?CHI*k+?Gf +zxj~{y_#sMQWAP)1*f!oAJH@g1L&W@{00I(}H(C-{8RQTdpO$Vhydk+auCA_%&yS&i +zB;(9!GebY1{JgSC0o`|vwR6*d)MxEyuL>Z@s@QPg^`tN!672rIJKs31QjYbvF3jknxm(KvEs%Pt7-a5Wt +zZLk$V-aE54{=4g$fSa3}QeCg|?-Kpwk2>%-@U)_FskK$M00000NkvXXu0mjfc++m= + +literal 0 +HcmV?d00001 + +diff --git a/actors/marios_winged_metal_cap/wing_2.rgba16.png b/actors/marios_winged_metal_cap/wing_2.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7be615e006b8d62ac8994478b24167ca48d40c42 +GIT binary patch +literal 1032 +zcmV+j1o!)iP)e5n5|YTF%*T{yG9_9NF=h4&`01AkURpi5{cvykjTnP +zBoc{4B5@^OSUc>5q-5q&#J$a0({qyZvv>!_9n7OVr*r^O9 +zfzG((M(H*Ci;IhSGIT15K&OA^rdcB)F{Q^*v +za=9E`ehAMW9v->~_zcn6zP^Q3m2evFB(m9TwoZ1?EMVgx^aa2^_gkceiw})Bd}v`U +zqzQRGbmDvr|BQfukOIf)yH=8G`2!v*keTB_1em~;OfvKSiw@vVPfxS+^YiQ$4gLTr +z%LCp|5Fszm2?&&JzzB%ICEZaZkgmH=OJ|J%&N)##DMAQg`MwZP0*tNZfb!88eRB8(iQ4S(O}jwAl1hZEH3xKEzD@w}@W%9I_V}g>2)LA< +zPxIM7F`NtLz>h-v?SxJ_l~;o(z2~iFsHo +z>G|y-N?eY4U%DhQtc6g~?n=aMD6pE;LKBGk_-f2`?Sxvc+E_+F$vv@xWK$oXa*RF? +zoiQ!#0uNH+8WH))$0f7Byu9o#Ke^ILsKgGccFn!Bv9$hn2YhLz~rLEmr|9`fj-P1zl=jlz*CM~&*%C)lrWtG +z0BL5F7M(_wWV^k+om6TEb$uS*R3iZ|yYx~L7-m2D+;?E<>4ijKGL(Idw{DZ{V`Y;- +znFwHR%as2B%3R)01bonSfCWBfpL?#F9?yZ&pfV%1L+u0iC!frXWQoNDDG0|EK$RSscQe*s{%|5nQuq3(U{GkRZyA_0K8n0ffi +zeXonIoXEh@s)x*PExeM%p?|2rp#p~r94hdCSKu8HX2-i06$$bH0000_xq|NY##GjnIgnDJw1MuR(2QL>}ZNOH%I43(WcY9;mDgod_#4YjffcV@&; +zY3h-sR98zowQ6Uh*6!0ccTgzGws!lmZH7?VdQe0WUw@qQ{_p&8UaxcBuT!LqjCD^`BPGd?}WcNJoN!9-tARf^^hD;Ct$C{;z`w020`mCecg9wSU5xP}&+1z2Cf)ZC8fWEV=Q7UcqJ+M!Po@$X_fv1>h +zp6kVqiTFDC&G2`Uw%QlUI(b<-dWh4;jU*44V7zL=*@)RxvlfA?HfbJ6%*YDxxUGs| +zCHXSFgXs6<;Vc&LfxX5EU#pIJrZ5kXL6B(kv58@`yijc=9o6(>Oppp0Tlhv;USh#1 +z9-gw73=sF*u8qJ2M7>6E23}4VsSs={&Op4$~xD9*F_fp9whuW`O2ES>PuEmGvWlpoF|aweRY^71B238}sgi>%#tR%7lZ3^gxei7^7=q0xb;H +z_90%`aO$El>cfn4>8G2aceA4lTwQPKd=i{Jo-yd6o56V{u^LK@6y+Iol!V4T$tTC) +zsAestAIMMIt~P4LkguQ_!u}%47KA&=+$G6CTH(Wr;)HlHohWvcQA;U%r+KvQ +zXw5dI9r<9p@|E;DJ*=JV_!dMpFw-VSA>ogP3$}1GU%@O$ +zc9qMO?{!I$O2@+9UBJdqEvXHVWnN?>!`M@Hj=T +zdIde%M|}Xf05PLg<%AVns%M_&uH)lhEAL_@A4lNWeX}^OsfiNoCm6Pm2dDTvW?Yd6 +zYsq6F265VlxMY5tMlY1}6oEGVgToeDFKnF7kKoI`0LygOB;}SGmlIalmZSD@5B@Lj +znBYq>mupCLQ27{5v;zM}p>2#HubUi`dH|zJwP&bTz!?_wjkARZOyJ7)y;-R*X8w@~CZK!n;8{St6bxH(Pa? +zCMM*U{qZu|7jTaV_p2ts`Li!T;A`YY<{*8LuKob7l%oaOt=-hVruHKJqVgQ{g-L1w +zVmqpq9t#yOjmAT!d2jv8`5gkT;k>9c(6VWz$956Ark@@&tT}m%tOm{56_BeFR*_}L09!)I~YkA+bDNz708J1{0N +ze^rMPBot_)iF7%^Vx4jV5q9oCTf;9h|u8MJLz +zW(oGM)SUsDa|&xqd&C$_T@GccqdtPvsN9I?H(WzL;ty3y^C%eZPNW5#vXA=|@_*6XV(vq9ot(3vRF>D#ox&?t<)4zYqwL$XBpin|WmV!(6HBUP=gGb(A8+ +z&Y>Gsi*+|X=%Cv7Q`zM|QDbhPT`nfa#+)ln*p53CQRawAn&|ukreUIj(;db9HB1>p +zvr9Cobk}ChHO|ICd*V9O7`kLBlj(5|id$i&Jsc8^`%jxkTu#L160ZyW$AxH-QchX1{xrppkp8~i2rK35M;MECQxF%fM%CBBu +zQX?bg-3qo`6qmlhPx9dgI{kaLYK2vIec~k86E{tC^R|fq(;b;70Mev1Y5aUEB0nZ!4#e8{eimXy4Y9M(|nZS(2R~(D$dS8OAKcl +zL3Y0VDjvL?zgfJ(hk6~7`S<=fN_%y9KU1B|9Ai}fjc`-c*Pj#n!_Wdv{4H1N;-^5b +zbgeaV6233WCC43hi2lPqe%s)tx9|TPVyeG^y@${<9G)t7b_R}-$3(8Imkfu4Bha<)>15M3hd{BM{&bmc+taSS$|wBp#x*$qxS)xeR} +znPa+M{t^BvS^@pjW? +z<%YJM7&?U&**@L415_})RvMVFd>a%U$0B9UX^#;64!ni)PiqcH303-7N0tRsqchGy +z(Pp0!__$2IamM+?Ci&xULzQ5GwMm`GlArp5^o6b{unlR-pE+?6#Nn;v2d%}9SC%6) +zRGQ78XvS3;*+w#|TiY}-H=1h?C57@7wp_dX?gGOT`|f+l_YsP8y66M&drY2DDprmL +zRlnDjy|Vy1LPHu +z)Wy16?ik?Xu>r>);qL+{wgxIq!G2-Hh;>g4lp{b|LQ%UiPf7SFKWq_gV4FICWd~pT +z6o8I$eq2gzSgnWY0RhSr5}Batkb}{W5!FIYLKhwB1vDfkm9^mPVmcH +zIH{bO5>UJV%bX?LrHUcM2kQ4wKbeKv3$$HEXj62sa61;HRlr?U-io@_qDLWzt`(av +z(gjE2>^k`PW_q^Wk_nd<&D!QE*I=RLmJjSPyq7w?Lp$QYU2fem2JUwUzLJ2ttPU8~J(Y14cs?`)xo&L)*n%L1pIe9RdQ(~Z{ssrBW6PFd4VxcZtm)P`T_Bx!F?QNY +zWE638R%`9uT5Qn(b(RkW`R-CQWw4aAoqFa|XZW=Bs9nSVkns}v1vSO(Cmv?u&3RZs +zavt{IRLj#5IQ}yq)Oyq{g5PaB;xBP4TrQ;!KODC4&yu-Z07hHi_g2eYx^alVC=`Cv +z%73YU#aGmHg2P+YA{~pB^k3<1L`J~&q<`@0g}NNx`b#5%j-r_98L-md=H#lZuzZaU +zT5h-n4Ly@v1@Md_i#mVNSBgm10I}*wF_l=}8x&Koso)FskR{A&Q(MtmofqSU41EqG +zUI&CisxF1JnI=+n!1ta!)T`(C^AhOzPBaQnJp?^))>Xirf0A^o(alV@h0VHh*h%*2pNN-8P}$(}8e +zBB?Bur6M7sg(M}U-r`kB^~!l>sPsGU?>(o_=bZoY`HXq)`~F_v>$<=9bzS#72b@>i +zsj29yz+f;nnmyG8`i4tC(-ffpZKCtLU@%3WAU6-O3lIPo2>EOd7lexg1t1)haM&=I +zq&^*I3@;$BO>V&d0(} +zVjI;*-%}2q8XaQ4NFr%yzIuyybD~rZsK3EC4WH+p*0(&~bYyd*uRb`Yy0Eak>dU*7 +z%1-V2ndO$D(`P$rl*=i6Nm8aSS4*9~!pHoDtF`%|-BITx=hfYMH^-LsUghkXsh|0n +z*EHzBF1?Lxpd<%Wazn+o>~ +zrB!RaiA+sPd4KkD#O@C>>@8jw%>N*`7g&3KlemR&spDjiV2VbDWw34kXoxd+`J&G+ +z?FtlqY&v-#=lR5+Tv;d=IAz1=p&R|>?x*z5dOquKYFRN?)Y_iYwX5sP{iY4#z&>tC +ziM+9sp@QnN8p9wfjZ4OsTKXfUPf#y))6$F@rcUQxsP(ZBIsMw+#fSUYCL{Y@#S +za2z715p(RMwDYL_C>*GAQVMRNB{N*5leGWLu;_voU~L#djyqgnQ`an=WEE)FEj$KrXy`lGImCC?K!D(lZ) +zn)}?vF*nP7%ao%Tt!^S@@%{T~&Yqrq&1&;Eyt*2`pzK|%2z6!Hq|0LQ3?0t%HT5|e +zbjxaLN<61`Jv;feKxtF|{_uJIwRWVJ&9gW8h0QvC=EBgjytDp!z4dYLTSi6qI9#^grBU)7teteN8$(9#*J2h~(VuC3BIVbWLtXZ_cDD0V|-HkL)v!vra +zyw?^n+nXD%k6aVKJucjLcT~AYHS4o&$(_<2C)=O%a9s3hjq0e(_K?AifhJo9!_E8q +zvOZp#lZUSqdc +zJMZ@grx^-U@~2@!DJ=;RHE$w;{A@);Vl)>3hdFCNOp>E7v^g5Ed_8f +zdKCix>VZO+N^6e#R;`UUfGNgE#^JRwR+;h5gB49~21)uCuPnRFRL?*9=>(Mq(^54b +z*{s`C7&TYR=?DsEWxU1DD2_1c{O3Xi{iX> +zk9B3O^7fgMcXI_D9#cUv=qb)srd;2feZFarz_4k5VMwq;f8)|1$xvAPFlLxA?fD_( +zR@$+%Xv{3KW_zyI+Iyu#hB1JV=3QMYIj!Dviggne�z9{<_0P?YbFAODkGhSiZezP`66oPV>wKPHdUN(X0WRY-#K9ABs%^Gxh983^~i*EVFoD3<MD~n1WS~oR{<3`R`UDKbwOG)7M?DRvi?V|ax(tS +z_0U-dDEpgev^j_q*J0CN)qYF}F3ow^q2f-t)@{-0?GftFf0H18-G4U0cQn1KxcqQk +z2;=w28OqdChSYNh)ZjOLPKbY#IH~LUI4|6G?dfWEB~A&<+;CYB8*6~B+eod$)$L5W +z*s!r$u32+*4Q_f;$LYlE>$b@Vr|f0~|gc;9c|QV!x*Td!PJ8Bl9l3+MsxF@dYKf(2L~fgZ2GgZ%Q?qyYKCjjT?XdBBHGf<-2v%y +zTC6n6r|?%+wtb)~DHTb&x_69>T>W6)7t(#xU}^6MIPG@FzyihNm9b?b`>J&l@oj4K +z=;H0CcKF=sTdtOeLcVgh{Lr_4|Gu#3Mz`EsLt45@4E_dooIAH;xUA-xQlXwcXUR^j +z0V<8v_QwC1gt61?wcpx({Wf=o-RZ%N-Yu12#a;|XAIUl0sJ!5_OKMWoc9lpxJEzkP +zr*E2Wz1qSq{i^+?+*^;%4v`&nYMH;G5(Rb$r^N8lCj-St-ue_35^h(So!KB-=7kUa +zVCSLcIjR$P&i8!W&TIMXn|bUnA8(?J^qj*Um2SNQgQ+KRpj+C5?nq|x{fq$?p8*<6 +z`~=V~4uhFlN(2DY7Zk%8pcjW{ju}!tjpgY4Ud?5(O8{>`9NE->q +zAB(V1ftv|gY_bd0c7g&LnIpW#VgVV23J3@=4!{}ngahkd9^aA~6d^g9dnL +zKM(+gMWcyGG!}^^p(fiyt91G|Yo2IAMMzJS1Q4Jw#%PqE-wzfdv5o(Ce}8Eqa)W*> +zp9|-$v(G@B@e{}_ +zr0B^=7V{fUuuaI7VOUHQ$OZkNKtvET<_El(!~T9iKkP@k@-Klv?!NK=fc~nNEEbur +zWGbJzP3n|JHAhI}CA0WU4vQ>%Br%z$rg%0U2>>h>63;XtB1t9;CeoAu01P6D$YK$| +zNmMkRNDT0ppp*(CH|9V*Yz&jYB%ql{JOC1rcoP#7Bm)OM0VGo_6K%o2VJZu(|YzuJ$P`Yva051?F;CabRqz6NWwgX8ENUH;4md!)EAyb4PAm$6*_J12bvuz*7)bj!oBBUEv+;zrhiv)6z)AjH!L8$?@s`Bp +z$fSb9Wo>{AFvsN=0sbIMb_9@)<4a6$fae85{dS_*zRq+0B9TcZI5da_@JJ9#A|dfO +z5(dd&U;rcl5-=Im3-6@^9&n_yBKEnp|is +zM%n~1L^mv!jKh)9XvFww!_83A4*PYtX3`!+r;{h^VJ7WSWSTS)UAGAYTn;GwQKzqY +z^Z(!`*-zx?zcZf<8@HzL1%Xf%dyAa{cz^5uFM#6=jvOY)6Y>8p^vRHMSteaXP|V|V +z&;YNpqn| +zB{7X|qtqj>HER(pX)Hb&GE$*Yt=#NuvSQa9NknVxwbU!1XSsfE9UGf-?$ips#e#)q +za}D*6+ZV@#gd{(1J5k)QcH|u4>hOA>fTwQ`1+KMHdn{M*`==`&m6}QG<>Et%_w4D% +ztn?XMzGh`aiW*ndu_D;!X;<0#Lap@=Z&ftb+1`Jo6F+x#$kZp+zMaWoVb>c~xU73! +zHWiq8bjN40u{wwgT?vFv!H3eS_zkw#XTgu|wh27qPAPvG8@W(FuOov-V1cgm!rSZG +zYPRbve{>~Go(m&lab0uc3y3F{_9xbR%SG@N?(Z|dz}sGd=`JK1iV50>OSHv&Z +z?G7)0;}Ji?@MIWZnXs1Tz=EtBiB<`j`#{5Pdv&?Porh`^B=R%m;{Qkvnf^4i3bXT3 +z;o?B~-A$p%kq(C4Nc;I0W1CG96?Xz#iJlctl-H4?6u8(9k4xDJD{2eAR1t0AS&6o_ +zktwFX{R4co>QM@OR=Vkvk&V@4d_#k2`iaAP-6XDg^|!;@@-Q(RUTEkX6TMnpD<&k`q~>`rYr7lKkiP)f_fR4H*p0DMv+slzjQ(zfPfX*u>SeIV#OrIzlcP5bAxSYCwU2C1=KS-3EBV +zBTQau+seBX0@{Uj`4CEWzARzNfpbO+1U4LufN+M(b4d&I>iO$2gVA8fkZ)agugt_v +zTSgq051|S;yA40fj~dHuz?V?+4+a>K)zXiAU8N33Y|ht9N?U+9Z3Q_VG_foQds)k| +zjDg2u!x!2{^+?$Ql*1STKpE&qC9mmaf50a$jd5|mVz#iWVpTv3 +uC2*PH3|A&oDa7rv5M#58e7nG}2>Jl&d!pZ)#9m1N0000dgna^t@=NZQzw-U^N1T!FkrmTWz!3$&Xf($X(hlTi% +zg9|Ba4uSU2Lyr9?dgxzKNN>q4IrQM(Txh|D23F7oE3knv*f0VMW?)q`feG#B`;4_~ +zCrh%MAARM~%)CFI_xbsKo>$&5v;T7a-&&xZg1~gIZ|xerrzG`N)J+~(P43C|k +zfhHtjK9D3X?u#wf!b`vafxWrJtumr0vN%+K$W?Nof>mw&v7~b4yik%a{_$TMkoeIa +zAYoo!Za`LPg>8*{TlmT4 +z8-M*E1-P&X6{V3SLF}$8E?~{dLJYOma;a{4K`pP~Pl}OB#JD>s}B@!Jxu +z6&0ZnU(7A?nWi1BMk%8CChd(BAi>i#wf+5lcC0Kfa+~J``vq3kbGN28cX1HrP7JeF +z@=GvTwqpHDW&;~BP-!up5<_E}`*My3UpDcgCJ&IuB=V9VvJ$#;c?H+&v|lpmkKZ>@ +zo87y2&-V6qEK7$LHyx|4mo{$twy_~$76@NiQ#WQ!qdyvVzQtz4chCsdIvy(9orpgC +zgo#p9$33HSv#$1aJzr<0yPA`19}##>y=1tgif=xI2zcv)1x20Yw41Q?i-aB$4aWo}AjMtgO($jlI<0+NbSVKWm1(;=G#M{HAkl +zYk%cShSRgt=B_3s2~-^~Zl1j_GK&d<0;_AxBS;I9(BiVT#4^jP0=BjDtJ`;aK!(tV +zJ9{?S=vf~c;q}6H4j)^(cW7ZZgvrMKdG-(c{Ni&gfHh<%xW_0iz*@WVh1PcMV4zg?quo){3_bTqJ|ci*Xbhn4sN5D_1K!Is3a!XD62D +zxw~}|C4@p@qa+0zW;{C-N*|09-?uS=jx`=s?*6i8>kF@9(rIAr7JSXN(-HhARknTU +zD6u2~hcME~$*F}&OXd8urMU}Ft5s=d^ZB>1K?=Xqw8{P`wWCpnCxP<&pgrzh%y6|j +zwog9#lM9^#dh*v%G_ntm{y>-<*$jn{2w-Gx$HyO&zG9wBVzKfxCQWSOvX}{lFcG1Z +z-gLk1@^={03mOp6No4W2V)h6c8GxJ@rRDPi9uprs*x!YZb9jZO!UjW}Bm5C_W0ZD0 +zo!!~%P6&wjA;LdO_HEed*!a;Ndk^jMS!~Oz+NM>GGyccIcu0SMn^pE`=g5BZ>kllt +zH?$!f28@NzYkM%hkAF5cTd=0WiJ{FOe$2WCz?9GeO<}*nCs25_PA@+6yuPbDkpBa2 +z8~xhGc-z6l9qUFN8}_?4K(K1LvUDr9F(I%dEdKT7!j>T8a!F{_3#$p)Y=Gy$4en3Lpb=Ov>bX*s +z!lWxE*kI7J9)6l61KZsl(kI8O2)|4AsjN3d@loTLFo;JOrM7<5MF}0tXA28RBTF<` +z&6l1P-bTJ_u%TKCY0O?IKrVI|ZQ1r)yEZ2Nt$t?B@)*k@;K3tnvisKS4c*o5-%D*! +z^)1A*Jz{$}POLNh(z>16y4@|77PhD^u|{l%zx%!QiO*pG^H^C{znWjLwQ!)pYV7$i +zMXs*Rmskpg3=llx>cCUBli33-oEIn-rVFmBXl#K)%$_Z{o>`|G+1C9SkLlSE5AO8) +zmY~qfd5Qnh*8~7B9=Am4{hn?26MIUS%0pi$AjOJ%AYC$^AoPYcXt$}y7GU*eYn$aO +ztk!iT24k(6U0G8+wP*`q`C9DnkRnqnro`RV7cd`MnjKjEyrD2zSh1L6sgdPZSGM3; +zics8-!51NUT|dW4HJ$>Rqo^)SYh8mv6vtQ0xw_(c0e$)eUI}k2(fOSTeDRaokTND)3Av{Awxak$8dXrIYMOj!0BNQ>^ +zU?mpWS3A%0nMgVfR{)QWvH{4N*BAE5>A6o3lJ1hyEIRQ*M@*-22+vNYO;aAl>0J|Qbms%&DZRlqrc*cb1jBY9+@JYU@iCxwyc!;#-P2BO>2E>Nz( +zQ2e?gc!>C@Pbi=5W@Mn$t3&1LINE2QnZ<;0U8c~UQzO9UUp}>*`E!&2WiOmW@`VD# +zOo)Z&FrQZ!zL~UqI-4?WY5}>nCf#5USEkgL6Gtx01$u>{2^+qDxQ%6CQ1WnTTw^Jp +zTy&7UqPEaoUNvRkI-=IVXcbmFIh|VgM5&H<6xJF_^}ZCtJU#~*Y5M3f-l6?hc)$Uf +zRbF)AbCNLgdmzY9-Z9Ikb~rf%IA?ZTOCI)?C1{QTs^P}G47x+RXi6)HjYa`O>d{!@ +zuHX29L$PUqodU{78EXPC0f1Q$v-$PEZTzb-z_)8Ppjmvqv@e@E$a`&Hc?xW6{SoAQ +z0=hwD4~AoFdME;5p7XVYmKfA=$+I74hh)H9giHar58nH&Wk>H@uivpgF&~aI3%Y<{ +z)CYS2!2nRE`s;K_iFp6A`id-)+S6w)=Tu>{sxdz?8Kzhidw%Y&b67v2bmW|@?Ni$Si5d3JOp&WyYOy2SagJA +z^$o^po-05Pg;)fob?A9QNvqQxJ8-dp{HmZqTnCq!n8%OZt?O06VWe;+2-E~-E~fwu +zR~HFUkvH;tk2~=S5EZNjD~>BELWy}M&7qSQT7b)IUyma~2-aeZ0Y#fk-m%Tm#A1{Y +zvCfg7cu~lNy0ee&ZP^IlfUnNlr_*Db6|GzfOBr457yiwcVqcYBMDETcpcvF3z$k$X +zx5CGGMiKt5K1fk`>l_eqU~ucO^Gra&oCHvel_^3}6HFteNhnmSF8xIdFo&S$e=3<-n43!hR^4{Yxa)FA_J@*e7&l(B-`=_??0Q$H$*p +z;o0g&bSjh#ffYvzo!bUBso{exxb<0?33-gU2=4XU?q=VKVSI!idgHz +zY|x=jfcaiTPG)`ioOmM$iE4Z9c{rq+qs}14LzTXe-|kRWql_i7e7~213w_osjqtV( +zmEkyk%j|1Tc-f8}zV{(%V#_M9gDGH6D~zz?YgC{UrAp=oBZOUwrNzR&0Qk<%{$@`( +z1610O(Y6G4`E{VY`hILP8_LGnBiPcNOe} +z8)KnuLML$-CcG}d1Kd80K<5yXm&(=Pi~DKI2w-4Ywo9yLw!#yYR%`Zxip?=d#F+9K +zySU}unj?CKFFbEkXJSK7NW20serWyz~*%^PHAVPxlb*r6I?lkW&nMZ +zD)yAdl8nMdBC;0%OBv8Uvfj7nRr=@K*J_Ud!7~6(p+l%+D7YjBbuyLP&q(92k0MFG +z@)&vbt@Z*0Z}s`4IrD1H`UMI|Ng?p+6`bZpSjj6o6)D7b;+2LBk0`{T08iUwgo8po +z7%`_pKv{u&?pB~s5hlnUD;CsVZE6$JA0Q*)#OzAk3o_@e0b~Iw!@UQIWhlt#kAd1| +zrwIPpClpv5iK`1bF$O%$wUe0oMth|P+@3Q+2w7ViR;3t|XIE5f^{OR!^!TwI9v#7u +z7(;kjNDAOCMG!skrA`EeK?z(SpoHTOCZ#l<^$~-7@#+%QCF_W(fbjAmzGZO{P7qwF +znMlP@Q_>;`Kc8{}oDyNsB-Lq+=sDi%`4#PZ6`(b)T{cYd24#srzYmJKV1duk;}1Fb +zOq@LW@&Q$76$$~SJ$UBYd0#qxgt(D-GR~IpW$gWVY>gZDau*nrFy%iUZ +z7qi(ZS*)!&QViuv&at^`lttgsUP}S%^#T$025jUJNP1&s#c@V@N>hpwF3-`PrdSC# +z5=`MNnQDafdV&}A7js8|)(eO;`G|CcFSRS!PllByo!jBQ2Bc@#;0tw;s2mvtXijqcIL>W~rLBR@#0x+J}xnl^V +zTP095IjSSFw$!dar2S|Gd~;Lr?&k;%NI7uU;({tX39d>KSEf_7{fPP^Kq=$_C)Eao +zzEKKZy#l}W!>9i3rP#*QPFITgDcVo2fNwG-g{WlpUw?H+H06I;QeouH`&%ovf@zKx +ja@U-nNZ59>yWjrdgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/sonic_ball/model.inc.c b/actors/sonic_ball/model.inc.c +new file mode 100644 +index 0000000..dcdcec2 +--- /dev/null ++++ b/actors/sonic_ball/model.inc.c +@@ -0,0 +1,260 @@ ++Lights1 sonic_ball_sm64_material_012_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Gfx sonic_ball_sonicball_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 sonic_ball_sonicball_rgba16[] = { ++ #include "actors/sonic_ball/sonicball.rgba16.inc.c" ++}; ++ ++Gfx sonic_ball_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 sonic_ball_metal_rgba16[] = { ++ #include "actors/sonic_ball/metal.rgba16.inc.c" ++}; ++ ++Vtx sonic_ball_000_offset_mesh_layer_1_vtx_0[90] = { ++ {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, ++ {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, ++ {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, ++ {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, ++ {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, ++ {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, ++ {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, ++ {{{15, 260, 0},0, {773, 82},{0x7, 0x7F, 0x0, 0xFF}}}, ++ {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, ++ {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, ++ {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, ++ {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, ++ {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, ++ {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, ++ {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, ++ {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, ++ {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, ++ {{{-105, 85, -221},0, {399, 278},{0xCB, 0x2A, 0x94, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, ++ {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, ++ {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, ++ {{{-1, 0, -260},0, {469, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, ++ {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, ++ {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, ++ {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, ++ {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, ++ {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, ++ {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, ++ {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, ++ {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{15, 260, 0},0, {773, 83},{0x7, 0x7F, 0x0, 0xFF}}}, ++ {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, ++ {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, ++ {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, ++ {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, ++ {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, ++ {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, ++ {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, ++ {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{-34, 131, 221},0, {542, 279},{0xEF, 0x42, 0x6B, 0xFF}}}, ++ {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, ++ {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, ++ {{{-1, 0, 261},0, {469, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, ++ {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, ++}; ++ ++Gfx sonic_ball_000_offset_mesh_layer_1_tri_0[] = { ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 4, 7, 0), ++ gsSP1Triangle(9, 0, 4, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 7, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(sonic_ball_000_offset_mesh_layer_1_vtx_0 + 80, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 2, 5, 0), ++ gsSP1Triangle(7, 0, 2, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 5, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_sonic_ball_sm64_material_012[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, sonic_ball_sonicball_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_MIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(sonic_ball_sm64_material_012_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_sonic_ball_metal_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, sonic_ball_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_sonic_ball_metal_v4[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx sonic_ball_000_offset_mesh_layer_1[] = { ++ gsSPDisplayList(mat_sonic_ball_sm64_material_012), ++ gsSPDisplayList(sonic_ball_000_offset_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx sonic_ball_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_sonic_ball_metal_v4), ++ gsSPDisplayList(sonic_ball_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_sonic_ball_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx sonic_ball_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/sonic_ball/sonicball.rgba16.png b/actors/sonic_ball/sonicball.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..34291fc77286d473c78090703cc3da77ed5cf6e6 +GIT binary patch +literal 2096 +zcmV-02+#M4P)k7R9FecS4(VLRT}=zec5hq5<3q_TBmWEw1iSh)D9vlNCRRR +zKw^;vppG<;F4!O;SRf(9iX}oIWq}YHB!pNYb!MQO5(!4rL8DGIAefdw4Yb99K4K@C +z*ohs#uJ7ghk9~>L1UkcJe(Ct0d(MCU|NEckTG@v$2lzjdwMBObM{y^dU&|zWLcul+ +zD%@zTB9JgJ94ONn +z;s(*eFxBWGuRyT$NNj|>3`;u*IZN6MK$L3$3Vo)B-Q9WY8d$-_Y=C7dt%-b(48mhb +z%tdj9L!R<340N3m_epM$u|@#F91z`0Z8tVS3r3Ma5SsyTO*SN~L)``Jjb|~EETL3T +z$RI`lJlT-bWKdMbJV3x9K$N(KLo08xG+j=9k6x;znHN#+OM;RF07;~6Lk0q)0|yTS +zAAKIdXK5eR3S;ZhwL04vW6-@)35p5Hs!)pidhRjzR+)F=4FSrbA7vKL8J-uA8!CSU +zK!7R}@Z{;;IFoizsm0)XM9(aux$Yd@@kPyg>iMeJ5emIaj8yW6mAlf4j_eUH}h4KIFsU} +zLRh+ifT=U-yk5R@F4e+N`E~9)1kmc38vq1UNHRCF*t0Ld;7$i$pYf2(uF$#?1#wd> +zpaI&&?Pp}k-=Wh)Nhl&qT%oV){oHVQ)~6>GMTpm$(ccU}6pJV2i98M;N?~v?!p3G} +z;mQ?SBLW=CjL-lIHl)+F$Y6fxcsGd4p)LVRs~vVlalh)}Gfw3J3xy4c +z^#)Go4D9Uk;ji@J!diew?sQQ|SCC2#~-wooPyZZ3z@vl%^YM^Xg)c^we +zK*^2i+q9Mr7B8@QDVwcY5rl+Z@<+TR*!Vzq*D?qGikR8X+!@q{bOQ=?p +zatbgpc^mQzdCZ&w9)H@y3)2o#2W;Gvi{dYTrkjOKJ{v8ICGJc}oovjPKuS?=MIoJI +z&8Y@p$3Dj)w-=McE7<$N>sXt56p7zfFp>f?U;YyFnFU1SdAv3q#rQ-9fA}5c=1$^` +zSCW`ph{BK3G6HQXXQMLda&HH7q=&ks1lb+gDFZ_QQE>~0K+pg>j3Rc74x#?hEF9iw +zrqR&KrBvH^ar9^fl?pEx(tGb^F}GI0H;Xs%J49kn-|F&Y^N~`OvNJo$DeFbLpNXoN +z1MLEvyTD>DfkgjVoXx(2VLOY7*|(woeu~O?iLv>J(if)FoToXDV|w}&PW-cki}P~1 +z7%&<)P-#C$A4Rg<6q}FP!?^P)!{WNZp$Mow2gt3fz$-?OD4xWzCyt{3kFP^rz62Dj +zure7G$H(#POYdSL>EhHJFf}!fho&Z3sRqt`u|}c$DTTu2P;s#yqguq)av%n@TJK(27MlhghvGZ&S`C0r5j0ST}xw3v)BL_t8nz +z`g(C=wE{(DUTO?pGKqiHW8@D#+*RxP0D2!Q=hl@WQg$55!7Q8Y*tH_6PSj +zMQ8x(+W!T;`QPKIV|U}hWG5=~3y7yUCXb<#$zx&WO_s&&Ksw7t)Q^1j5}srTYR&|z +z-9=bk2MC0kO>s4EK~er=)Y=nAZKCD)TX^}6M{xVE4xnRKuP)jA?3>8{o7tb?r6QEh +z@upygQb;qWI8jv2YS1wb#o +zgZ>?WcG3I0h15VsgwztTTpTcE#Zj +zSNV-Npu_W=x(N+t{!-#MsPAflXghzs>2(2!fS&a~Ar<=@cK60{NB0_*NB6;78Pd1* +zr=9m>>GWlstBqby*S7or6@d1Wqs9z|lb^Bc9${!q6!N!XX{`tI@_+GX(EkkJXXyCJ +aBi{o^cHou( + +literal 0 +HcmV?d00001 + +diff --git a/actors/sonic_trail/geo.inc.c b/actors/sonic_trail/geo.inc.c +new file mode 100644 +index 0000000..d48108c +--- /dev/null ++++ b/actors/sonic_trail/geo.inc.c +@@ -0,0 +1,39 @@ ++ ++// 0x16000B8C ++const GeoLayout sonic_trail_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(8, geo_switch_anim_state), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B500), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B518), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B530), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B548), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B560), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B578), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B590), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B5A8), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; ++ ++ ++// 0x16000B8C ++const GeoLayout super_trail_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(8, geo_switch_anim_state), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3B0), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3C8), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3E0), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B3F8), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B410), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B428), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B440), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, sonic_trail_seg3_dl_0301B458), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/actors/sonic_trail/model.inc.c b/actors/sonic_trail/model.inc.c +new file mode 100644 +index 0000000..b62664f +--- /dev/null ++++ b/actors/sonic_trail/model.inc.c +@@ -0,0 +1,203 @@ ++// Flame ++ ++// 0x030172E0 ++static const Vtx sonic_trail_seg3_vertex_030172E0[] = { ++ {{{ -80, -80, 0}, 0, { 0, 992}, {0x00, 0x00, 0x00, 0x00}}}, ++ {{{ 80, -80, 0}, 0, { 992, 992}, {0x00, 0x00, 0x00, 0x00}}}, ++ {{{ 80, 80, 0}, 0, { 992, 0}, {0x00, 0x00, 0x00, 0x00}}}, ++ {{{ -80, 80, 0}, 0, { 0, 0}, {0x00, 0x00, 0x00, 0x00}}}, ++}; ++ ++// 0x03017320 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03017320[] = { ++#include "actors/mario/sonic_trail_circle_0.ia16.inc.c" ++}; ++ ++// 0x03017B20 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03017B20[] = { ++#include "actors/mario/sonic_trail_circle_0.ia16.inc.c" ++}; ++ ++// 0x03018320 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03018320[] = { ++#include "actors/mario/sonic_trail_circle_1.ia16.inc.c" ++}; ++ ++// 0x03018B20 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03018B20[] = { ++#include "actors/mario/sonic_trail_circle_2.ia16.inc.c" ++}; ++ ++// 0x03019320 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03019320[] = { ++#include "actors/mario/sonic_trail_circle_3.ia16.inc.c" ++}; ++ ++// 0x03019B20 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_03019B20[] = { ++#include "actors/mario/sonic_trail_circle_4.ia16.inc.c" ++}; ++ ++// 0x0301A320 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_0301A320[] = { ++#include "actors/mario/sonic_trail_circle_5.ia16.inc.c" ++}; ++ ++// 0x0301AB20 ++ALIGNED8 static const u8 sonic_trail_seg3_texture_0301AB20[] = { ++#include "actors/mario/sonic_trail_circle_6.ia16.inc.c" ++}; ++ ++// super_ball ++const Gfx sonic_trail_seg3_dl_0301B320[] = { ++ gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), ++ gsDPSetEnvColor(255, 255, 155, 200), ++ gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++ gsDPLoadSync(), ++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++ gsSPVertex(sonic_trail_seg3_vertex_030172E0, 4, 0), ++ gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++ gsSPEndDisplayList(), ++}; ++ ++// 0x0301B3B0 - 0x0301B3C8 ++const Gfx sonic_trail_seg3_dl_0301B3B0[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B3C8 - 0x0301B3E0 ++const Gfx sonic_trail_seg3_dl_0301B3C8[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B3E0 - 0x0301B3F8 ++const Gfx sonic_trail_seg3_dl_0301B3E0[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B3F8 - 0x0301B410 ++const Gfx sonic_trail_seg3_dl_0301B3F8[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B410 - 0x0301B428 ++const Gfx sonic_trail_seg3_dl_0301B410[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B428 - 0x0301B440 ++const Gfx sonic_trail_seg3_dl_0301B428[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B440 - 0x0301B458 ++const Gfx sonic_trail_seg3_dl_0301B440[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301A320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// 0x0301B458 - 0x0301B470 ++const Gfx sonic_trail_seg3_dl_0301B458[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301AB20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B320), ++}; ++ ++// regular ball ++const Gfx sonic_trail_seg3_dl_0301B470[] = { ++ gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), ++ gsDPSetEnvColor(0, 115, 255, 200), ++ gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++ gsDPLoadSync(), ++ gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), ++ gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), ++ gsSPVertex(sonic_trail_seg3_vertex_030172E0, 4, 0), ++ gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++ gsSPEndDisplayList(), ++}; ++ ++// 0x0301B500 - 0x0301B518 ++const Gfx sonic_trail_seg3_dl_0301B500[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B518 - 0x0301B530 ++const Gfx sonic_trail_seg3_dl_0301B518[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03017B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B530 - 0x0301B548 ++const Gfx sonic_trail_seg3_dl_0301B530[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B548 - 0x0301B560 ++const Gfx sonic_trail_seg3_dl_0301B548[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03018B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B560 - 0x0301B578 ++const Gfx sonic_trail_seg3_dl_0301B560[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B578 - 0x0301B590 ++const Gfx sonic_trail_seg3_dl_0301B578[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_03019B20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B590 - 0x0301B5A8 ++const Gfx sonic_trail_seg3_dl_0301B590[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301A320), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; ++ ++// 0x0301B5A8 - 0x0301B5C0 ++const Gfx sonic_trail_seg3_dl_0301B5A8[] = { ++ gsDPPipeSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, sonic_trail_seg3_texture_0301AB20), ++ gsSPBranchList(sonic_trail_seg3_dl_0301B470), ++}; +diff --git a/actors/star/model.inc.c b/actors/star/model.inc.c +index b8a6ea9..b0a4dfc 100644 +--- a/actors/star/model.inc.c ++++ b/actors/star/model.inc.c +@@ -56,7 +56,7 @@ const Gfx star_seg3_dl_0302B870[] = { + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), +- gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), //! Dimensions loaded as 32x64 despite this texture having only 32x32 dimensions, harmless due to environment mapping (G_TEXTURE_GEN & gsSPTexture values) ++ gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), + gsSPDisplayList(star_seg3_dl_0302B7B0), + gsDPPipeSync(), +diff --git a/actors/star/model.inc.c.rej b/actors/star/model.inc.c.rej +new file mode 100644 +index 0000000..f970b7c +--- /dev/null ++++ b/actors/star/model.inc.c.rej +@@ -0,0 +1,10 @@ ++diff a/actors/star/model.inc.c b/actors/star/model.inc.c (rejected hunks) ++@@ -56,7 +56,7 @@ const Gfx star_seg3_dl_0302B870[] = { ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), ++- gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), //! Dimensions loaded as 32x64 despite this texture having only 32x32 dimensions, harmless due to environment mapping (G_TEXTURE_GEN & gsSPTexture values) +++ gsDPLoadTextureBlock(star_seg3_texture_0302A6F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD), ++ gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), ++ gsSPDisplayList(star_seg3_dl_0302B7B0), ++ gsDPPipeSync(), +diff --git a/actors/super_ball/geo.inc.c b/actors/super_ball/geo.inc.c +new file mode 100644 +index 0000000..9ca0d18 +--- /dev/null ++++ b/actors/super_ball/geo.inc.c +@@ -0,0 +1,92 @@ ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout super_ball_002_switch_opt0_001_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_ball_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_ball_002_switch_opt0_001_switch_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_ball_002_switch_opt0_001_switch_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_ball_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(1, 180, 100), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mirror_mario_backface_culling), ++ GEO_ASM(0, geo_mirror_mario_set_alpha), ++ GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_ball_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt1), ++ GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt2), ++ GEO_BRANCH(1, super_ball_002_switch_opt0_001_switch_opt3), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ASM(1, geo_mirror_mario_backface_culling), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_ball_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_ball_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/actors/super_ball/geo_header.h b/actors/super_ball/geo_header.h +new file mode 100644 +index 0000000..961b9cc +--- /dev/null ++++ b/actors/super_ball/geo_header.h +@@ -0,0 +1,15 @@ ++extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_ball_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_ball_geo[]; ++extern u8 super_ball_sonic_super_surface_rgba16[]; ++extern u8 super_ball_metal_rgba16[]; ++extern Vtx super_ball_000_offset_mesh_layer_1_vtx_0[90]; ++extern Gfx super_ball_000_offset_mesh_layer_1_tri_0[]; ++extern Gfx mat_super_ball_super_ball_texture[]; ++extern Gfx mat_revert_super_ball_super_ball_texture[]; ++extern Gfx mat_super_ball_metal_v4_001[]; ++extern Gfx mat_revert_super_ball_metal_v4_001[]; ++extern Gfx super_ball_000_offset_mesh_layer_1[]; ++extern Gfx super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0[]; ++extern Gfx super_ball_material_revert_render_settings[]; +diff --git a/actors/super_ball/metal.rgba16.png b/actors/super_ball/metal.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..3b2ac00b875ba4886448eb37e9ee588b201f369d +GIT binary patch +literal 3378 +zcmV-24bAe2P)dgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_ball/model.inc.c b/actors/super_ball/model.inc.c +new file mode 100644 +index 0000000..406f879 +--- /dev/null ++++ b/actors/super_ball/model.inc.c +@@ -0,0 +1,263 @@ ++Gfx super_ball_sonic_super_surface_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_ball_sonic_super_surface_rgba16[] = { ++ #include "actors/super_ball/sonic_super_surface.rgba16.inc.c" ++}; ++ ++Gfx super_ball_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_ball_metal_rgba16[] = { ++ #include "actors/super_ball/metal.rgba16.inc.c" ++}; ++ ++Vtx super_ball_000_offset_mesh_layer_1_vtx_0[90] = { ++ {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, ++ {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, ++ {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, ++ {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, ++ {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, ++ {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, ++ {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, ++ {{{15, 260, 0},0, {773, 82},{0x7, 0x7F, 0x0, 0xFF}}}, ++ {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{196, 126, -116},0, {976, 497},{0x5E, 0x3C, 0xC3, 0xFF}}}, ++ {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, ++ {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, ++ {{{232, -12, -116},0, {880, 792},{0x70, 0xFA, 0xC5, 0xFF}}}, ++ {{{180, -147, -116},0, {626, 976},{0x57, 0xBA, 0xC3, 0xFF}}}, ++ {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, ++ {{{60, -224, -116},0, {315, 976},{0x1D, 0x93, 0xC5, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, ++ {{{-114, -74, -221},0, {241, 497},{0xC7, 0xDB, 0x95, 0xFF}}}, ++ {{{-84, -216, -116},0, {61, 792},{0xD8, 0x98, 0xC3, 0xFF}}}, ++ {{{-195, -126, -116},0, {-34, 495},{0xA1, 0xC3, 0xC5, 0xFF}}}, ++ {{{-232, 13, -116},0, {62, 199},{0x91, 0x6, 0xC3, 0xFF}}}, ++ {{{-105, 85, -221},0, {399, 278},{0xCB, 0x2A, 0x94, 0xFF}}}, ++ {{{-180, 147, -116},0, {315, 16},{0xA9, 0x47, 0xC5, 0xFF}}}, ++ {{{-60, 225, -116},0, {626, 15},{0xE3, 0x6C, 0xC3, 0xFF}}}, ++ {{{49, 128, -221},0, {657, 359},{0x18, 0x40, 0x95, 0xFF}}}, ++ {{{83, 217, -116},0, {878, 198},{0x28, 0x69, 0xC5, 0xFF}}}, ++ {{{-1, 0, -260},0, {469, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{35, -131, -221},0, {399, 714},{0x11, 0xBE, 0x95, 0xFF}}}, ++ {{{136, -8, -221},0, {656, 632},{0x44, 0xFC, 0x95, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{-163, -202, 0},0, {-16, 656},{0xB0, 0x9D, 0x0, 0xFF}}}, ++ {{{-15, -260, 0},0, {169, 909},{0xF9, 0x81, 0x0, 0xFF}}}, ++ {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, ++ {{{142, -218, 0},0, {472, 1008},{0x45, 0x95, 0x0, 0xFF}}}, ++ {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, ++ {{{243, -94, 0},0, {771, 911},{0x76, 0xD2, 0x0, 0xFF}}}, ++ {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, ++ {{{252, 66, 0},0, {957, 655},{0x7B, 0x20, 0x0, 0xFF}}}, ++ {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, ++ {{{164, 202, 0},0, {957, 336},{0x50, 0x63, 0x0, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{15, 260, 0},0, {773, 83},{0x7, 0x7F, 0x0, 0xFF}}}, ++ {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-243, 93, 0},0, {169, 82},{0x89, 0x2D, 0x0, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-142, 218, 0},0, {469, -16},{0xBB, 0x6B, 0x0, 0xFF}}}, ++ {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, ++ {{{-251, -66, 0},0, {-16, 337},{0x85, 0xE0, 0x0, 0xFF}}}, ++ {{{-195, -126, 117},0, {-32, 495},{0xA2, 0xC4, 0x3C, 0xFF}}}, ++ {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, ++ {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, ++ {{{-84, -216, 117},0, {63, 790},{0xD7, 0x97, 0x3A, 0xFF}}}, ++ {{{60, -224, 117},0, {316, 974},{0x1D, 0x94, 0x3D, 0xFF}}}, ++ {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, ++ {{{180, -147, 117},0, {626, 974},{0x57, 0xB9, 0x3B, 0xFF}}}, ++ {{{232, -12, 117},0, {877, 791},{0x6F, 0xFA, 0x3D, 0xFF}}}, ++ {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, ++ {{{196, 126, 117},0, {973, 497},{0x5F, 0x3D, 0x3A, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{114, 74, 221},0, {699, 495},{0x39, 0x25, 0x6B, 0xFF}}}, ++ {{{83, 217, 117},0, {876, 199},{0x28, 0x68, 0x3D, 0xFF}}}, ++ {{{-34, 131, 221},0, {542, 279},{0xEF, 0x42, 0x6B, 0xFF}}}, ++ {{{-60, 225, 117},0, {625, 18},{0xE3, 0x6D, 0x3A, 0xFF}}}, ++ {{{-180, 147, 117},0, {316, 18},{0xA9, 0x46, 0x3D, 0xFF}}}, ++ {{{-135, 8, 221},0, {286, 361},{0xBC, 0x4, 0x6B, 0xFF}}}, ++ {{{-232, 13, 117},0, {64, 201},{0x90, 0x6, 0x3B, 0xFF}}}, ++ {{{-1, 0, 261},0, {469, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{106, -85, 221},0, {542, 713},{0x35, 0xD6, 0x6C, 0xFF}}}, ++ {{{-50, -127, 221},0, {284, 630},{0xE8, 0xC1, 0x6C, 0xFF}}}, ++}; ++ ++Gfx super_ball_000_offset_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 4, 7, 0), ++ gsSP1Triangle(9, 0, 4, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(9, 7, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_ball_000_offset_mesh_layer_1_vtx_0 + 80, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 2, 5, 0), ++ gsSP1Triangle(7, 0, 2, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 5, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_super_ball_super_ball_texture[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(1983, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_ball_sonic_super_surface_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_ball_super_ball_texture[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_ball_metal_v4_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_ball_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_ball_metal_v4_001[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_ball_000_offset_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_ball_super_ball_texture), ++ gsSPDisplayList(super_ball_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_ball_super_ball_texture), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_ball_000_offset_mesh_layer_1_mat_override_metal_v4_001_0[] = { ++ gsSPDisplayList(mat_super_ball_metal_v4_001), ++ gsSPDisplayList(super_ball_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_ball_metal_v4_001), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_ball_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/super_ball/sonic_super_surface.rgba16.png b/actors/super_ball/sonic_super_surface.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..6d09216c4ddcdacc9fc73679d38bf9569907b825 +GIT binary patch +literal 1445 +zcmV;W1zP%vP)lWnwec6T{!jh-Z|hpixidFko!5}VT4|D3+DUe_q{ELWky0t(kih8Mz~&Oez?`lz +zvDa4m%(q6G>sSKN#NL)OkFz=F&6-cefZUAcj*>xZ&p-@AFcJW===5Q(X8wQ@?PTr{ +zCZ&ae^Oz@o6R>asAi1;VjFFEQ<`sK}g{2B$lZ{|&C8KF9_xj-Ygn{hi~me?N!; +z{~c5LlvWh!r*kXTLUo}WVTOd>q4?af&fJT|m&sB(+QPE7jNt1AXSrT&U3WGf-`iRp +z#Hk%)hvBl`VM+&p2>|k&KqT?0{$@2(HTgFIU_L9BhKl_Y=Mox+*^c}S23y&ZVZQb# +zSUVf@9&2yS`_5MHt*cv0ZjTL}h0p+C_bn%&)gjaoU;>eegN!7_LPl~H)v}ghL}|qy +zFj+s@JgwHVlzTevU)Z|idq(s;+z=ig%*89HCo8(Wt#QZqo^Vi%)$9r%ISI`P$GLYn +z=ALgfC!|QJ=%4w0k}K2!1kMHjj=~5QTz~SCfUsq)h=sa_AhILuEQZRGKUkX%=EK2a +zg&xBVB@5gQA1DlL&aWq$(W&UQwI|*(ec>RBBfcI|A!QQt0>D_}QNd40S7NQg2Mbi^ +zoz>7H`hBc$0qeOYURu^*BHX}$)5U|NWk=An!2&kVD8Zrgvn5h2%&U3V+X99K>W{Ki +zRzrJfu;6yg5Yx$y7_46iIsm!KF%pa%c0LsFDXKn0eX$5L^*K-Ypfm^Ce| +z(Hj6LBNthH)~O-uPT{ET7Rd~Zm8)#1_ST`yx~g0kng#?YQyhMGxHyw>d0hdJ6!ADt +zA?#U1Vn$P5j{t!QE)<{`o)E^8zqR6$xjtYN_Yink?t-`8-&)ncYWp5A2dvamiDd1>Za4)=6~td$t}9Z8=FW!>=*Tn}8JGr{y3yJZ?b +zEd)zc^c320pEx^GZ?OFz(&0bLFQ?f8fJ`fv0wUl;+# +zJ^Cxu+_4C+lcEU|GtsjLgd$(5#C59Fbkqh}otoBaIQIcXQmR01DPn=HR4yroau59q +z>;eLXh~jD_z7#Nu;7Z@7c|yfl>c;t70amU? +z(nLUXfsyM)sa*87x5S(F0$hbGU{JpQG24+q{JNfxN?;E1r!iATOZn8Z;|%i!|&1f~*x8|t}STiS*13GM;%b3;A%qI<)8BAT8^ +z8|t}DMCOL~M4X@cP4%4OPOOmz7rrOrK#Fgv=Srn5?}<2Utmoyr-SD0$S)f$Bw4R@C +zK<>;7-xCGEmU`|gvS7n|BDNdr`PTPDe0R02o?F!2fBAbNru|21!{zndlIs2C?}_NI +zej);~;=+1v%LA3~4i+wZPef}`zM-CPeNX%Yoje)4VFG?j00000NkvXXu0mjfumHDZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/geo.inc.c b/actors/super_sonic/geo.inc.c +new file mode 100644 +index 0000000..42fbc6a +--- /dev/null ++++ b/actors/super_sonic/geo.inc.c +@@ -0,0 +1,889 @@ ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout super_sonic_right_hand_open_armature_001[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_left_hand_open_armature_002[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_left_hand_peace_armature_005[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_001_skinned_mesh_layer_1), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_004_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_003_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_007_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_004_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_009_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_010_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_002_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_012_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_013_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_005_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_001_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_ANIMATED_PART(LAYER_TRANSPARENT, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout super_sonic_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SHADOW(1, 180, 100), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(LAYER_FORCE, 16384), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mirror_mario_backface_culling), ++ GEO_ASM(0, geo_mirror_mario_set_alpha), ++ GEO_SWITCH_CASE(0, geo_switch_mario_stand_run), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_001_skinned_mesh_layer_1), ++ GEO_ASM(0, geo_move_mario_part_from_parent), ++ GEO_ASM(0, geo_mario_tilt_torso), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, super_sonic_000_offset_001_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_head_rotation), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_eyes), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 67, -10, 79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_003_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_004_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_004_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(1, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_003_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_right_hand_open_armature_001), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 68, -10, -79, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_006_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_007_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, super_sonic_000_offset_007_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_hand), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_hand_foot_scaler), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_004_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_HELD_OBJECT(0, 0, 0, 0, geo_switch_mario_hand_grab_pos), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_left_hand_open_armature_002), ++ GEO_BRANCH(1, super_sonic_left_hand_peace_armature_005), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_009_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, 42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_009_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_010_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_010_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, 1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_011_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -9, 70, 78, 29, 25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(1, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_002_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_012_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 13, -8, -42, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, super_sonic_000_offset_012_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_offset_013_skinned_mesh_layer_1), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 89, 0, 0, super_sonic_000_offset_013_mesh_layer_1), ++ GEO_OPEN_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 67, 0, 0, -1, 0, -1), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), ++ GEO_OPEN_NODE(), ++ GEO_ASM(2, geo_mario_hand_foot_scaler), ++ GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), ++ GEO_OPEN_NODE(), ++ GEO_NODE_START(), ++ GEO_CLOSE_NODE(), ++ GEO_SCALE(LAYER_FORCE, 65536), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_000_displaylist_005_mesh_layer_1), ++ GEO_CLOSE_NODE(), ++ GEO_TRANSLATE_ROTATE(LAYER_FORCE, -11, 70, -77, -29, -25, 138), ++ GEO_OPEN_NODE(), ++ GEO_ASM(0, geo_mario_rotate_wing_cap_wings), ++ GEO_ROTATION_NODE(LAYER_FORCE, 0, 0, 0), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_000_displaylist_001_mesh_layer_4), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt1), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt2), ++ GEO_BRANCH(1, super_sonic_002_switch_opt0_001_switch_opt3), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ASM(1, geo_mirror_mario_backface_culling), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, super_sonic_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_ALPHA, super_sonic_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_TRANSPARENT, super_sonic_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/actors/super_sonic/geo_header.h b/actors/super_sonic/geo_header.h +new file mode 100644 +index 0000000..fdd7978 +--- /dev/null ++++ b/actors/super_sonic/geo_header.h +@@ -0,0 +1,254 @@ ++extern const GeoLayout super_sonic_right_hand_open_armature_001[]; ++extern const GeoLayout super_sonic_left_hand_open_armature_002[]; ++extern const GeoLayout super_sonic_left_hand_peace_armature_005[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_right_hand_open_armature_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_open_armature_002[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_jump_super_sonic_left_hand_peace_armature_005[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_right_hand_open_armature_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_open_armature_002[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2_jump_super_sonic_left_hand_peace_armature_005[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_right_hand_open_armature_001[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_open_armature_002[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3_jump_super_sonic_left_hand_peace_armature_005[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[]; ++extern const GeoLayout super_sonic_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[]; ++extern const GeoLayout super_sonic_geo[]; ++extern Lights1 super_sonic_sonic_skin_lights; ++extern Lights1 super_sonic_black_material_f3d_001_v4_lights; ++extern Lights1 super_sonic_sonic_mouth_none_lights; ++extern Lights1 super_sonic_super_eye_texture_lights; ++extern Lights1 super_sonic_sonic_mouth_lights; ++extern Lights1 super_sonic_super_eye_half_lights; ++extern Lights1 super_sonic_sonic_eye_closed_lights; ++extern Lights1 super_sonic_sonic_eye_dead_001_lights; ++extern Lights1 super_sonic_gloves_001_v4_001_lights; ++extern Lights1 super_sonic_gloves_v4_001_lights; ++extern Lights1 super_sonic_sonic_t128_lights; ++extern Lights1 super_sonic_white_material_f3d_v4_lights; ++extern Lights1 super_sonic_sonic_buckle_lights; ++extern Lights1 super_sonic_sonic_shoe_lights; ++extern Lights1 super_sonic_sonic_white_lights; ++extern u8 super_sonic_sonic_super_surface_rgba16[]; ++extern u8 super_sonic_metal_rgba16[]; ++extern u8 super_sonic_super_eye_rgba16[]; ++extern u8 super_sonic_sonic_super_surface_replacer_rgba16[]; ++extern u8 super_sonic_sonic_mouth_rgba16[]; ++extern u8 super_sonic_super_eye_half_rgba16[]; ++extern u8 super_sonic_soniceyenew_closed_rgba16[]; ++extern u8 super_sonic_soniceyenew_dead_rgba16[]; ++extern u8 super_sonic_sonic_new2_rgba16_rgba16[]; ++extern u8 super_sonic_wing_2_rgba16[]; ++extern u8 super_sonic_wing1_rgba16[]; ++extern Vtx super_sonic_000_offset_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_mesh_layer_1_vtx_1[24]; ++extern Gfx super_sonic_000_offset_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0[11]; ++extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1[3]; ++extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_0[16]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_1[6]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_2[100]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_3[14]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_0[13]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_1[99]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_2[11]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_3[31]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_4[446]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_4[]; ++extern Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_5[3]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_tri_5[]; ++extern Vtx super_sonic_000_offset_003_mesh_layer_1_vtx_0[31]; ++extern Gfx super_sonic_000_offset_003_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_004_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_1[12]; ++extern Gfx super_sonic_000_offset_004_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_displaylist_003_mesh_layer_1_vtx_0[44]; ++extern Gfx super_sonic_000_displaylist_003_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_006_mesh_layer_1_vtx_0[40]; ++extern Gfx super_sonic_000_offset_006_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_007_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_1[12]; ++extern Gfx super_sonic_000_offset_007_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_displaylist_004_mesh_layer_1_vtx_0[43]; ++extern Gfx super_sonic_000_displaylist_004_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0[11]; ++extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_0[8]; ++extern Gfx super_sonic_000_offset_009_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_1[13]; ++extern Gfx super_sonic_000_offset_009_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_1[9]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_2[41]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_3[16]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_0[61]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_1[16]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_2[56]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_3[12]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_0[]; ++extern Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_1[]; ++extern Vtx super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0[11]; ++extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_0[8]; ++extern Gfx super_sonic_000_offset_012_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_1[13]; ++extern Gfx super_sonic_000_offset_012_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_0[6]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_1[9]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_2[41]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_3[16]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_0[55]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_0[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_1[46]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_1[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_2[12]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_2[]; ++extern Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_3[16]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_3[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_0[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_0[]; ++extern Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_1[4]; ++extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_1[]; ++extern Gfx mat_super_sonic_sonic_skin[]; ++extern Gfx mat_super_sonic_sonic_super_surface[]; ++extern Gfx mat_revert_super_sonic_sonic_super_surface[]; ++extern Gfx mat_super_sonic_metal_v4[]; ++extern Gfx mat_revert_super_sonic_metal_v4[]; ++extern Gfx mat_super_sonic_black_material_f3d_001_v4[]; ++extern Gfx mat_super_sonic_sonic_mouth_none[]; ++extern Gfx mat_super_sonic_super_eye_texture[]; ++extern Gfx mat_super_sonic_super_surface_replacer[]; ++extern Gfx mat_revert_super_sonic_super_surface_replacer[]; ++extern Gfx mat_super_sonic_sonic_mouth[]; ++extern Gfx mat_super_sonic_super_eye_half[]; ++extern Gfx mat_super_sonic_sonic_eye_closed[]; ++extern Gfx mat_super_sonic_sonic_eye_dead_001[]; ++extern Gfx mat_super_sonic_gloves_001_v4_001[]; ++extern Gfx mat_super_sonic_gloves_v4_001[]; ++extern Gfx mat_super_sonic_sonic_t128[]; ++extern Gfx mat_super_sonic_white_material_f3d_v4[]; ++extern Gfx mat_super_sonic_sonic_buckle[]; ++extern Gfx mat_super_sonic_sonic_shoe[]; ++extern Gfx mat_super_sonic_sonic_white[]; ++extern Gfx mat_super_sonic_wing_2_001_v4_001[]; ++extern Gfx mat_revert_super_sonic_wing_2_001_v4_001[]; ++extern Gfx mat_super_sonic_wing_1_001_v4_001[]; ++extern Gfx mat_revert_super_sonic_wing_1_001_v4_001[]; ++extern Gfx super_sonic_000_offset_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5[]; ++extern Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6[]; ++extern Gfx super_sonic_000_offset_003_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_004_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_layer_1[]; ++extern Gfx super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1[]; ++extern Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_006_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_007_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_layer_1[]; ++extern Gfx super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1[]; ++extern Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1[]; ++extern Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_009_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_layer_4[]; ++extern Gfx super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_012_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1[]; ++extern Gfx super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1[]; ++extern Gfx super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_layer_4[]; ++extern Gfx super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[]; ++extern Gfx super_sonic_material_revert_render_settings[]; +diff --git a/actors/super_sonic/metal.rgba16.png b/actors/super_sonic/metal.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..3b2ac00b875ba4886448eb37e9ee588b201f369d +GIT binary patch +literal 3378 +zcmV-24bAe2P)dgm@R+fRu+d(cMSv#1Ox;O1OfyC3<3-W1QY}m3@9jA +zP`Dps;eLn(g#!mH2n;9)C@=^R2rw`ZFc2^h@b9<#Jm=aonRdF<>9l(jThhJfo|pf5 +zyYg2N@gF|_w^1pns>191LTb(2?4Of-%}|t?7es%;?cz`12}_i(v?R@aC*oqf238oH +zBP}jq)O8&KQT9!Fodp9{^E{R71*Ee3i@(2u!xu+@#=QTe15@GRXLT&b7U#Y+eu{}n +zZPv(gof8CUtGbGso0)3`K>@7*GP#kF0Oj59`}$n~q_G%PcXhN?ouSKDUZ>IUE#6A2 +zUPQrcRPZk_LZS&7>{#wK=F6-!W&NdD7ochY$<18qqzom-3@Gyaobg!zXn5CkvDs{p +zIK^(<#kd=hSK-Mqy{Ygt2V*|SVfJdjhUwXf{qL2n08%3uOlpQ}(!Qs0@%<>#z&ep( +z+O$Rq&XDiOob$hB{1u{qe2P$EtJNxQZmy&6ny62Um=4ESotA9Xm;=U7ahgvNr<4B- +zuDR+R%AG80iwxs_Q8P!JKqyR$jEu#3-<ppJFYnJ~ +zErw}~@l0^>bw2W?pJ@3 +z;W4VVFc}_;yfr%6MjyxV7qy|lSm^Uxh8s5AwS89jc0)K3?&H8`uH(%Q|4gHI6g}fr +z!@s}#J85zk1Aypyfw;eaL;EU4i2%(urr{kSi<=TeiEVFQUxxe(b;>PPTj&x9u2P$t +zJq3A3TJA8c287govqq1h6hgq&5d+5GL2Go}Z-)}UeFkca7Q@pyqi*N3}je6BYgNC_woa1WM5uc|R4(yo-Vhzv&Qs;D{ +zU}}a%)7o$PRHjD>diC)Ba&@{g{wZ#;oMQ#(o9pXX)Qf0Hg$BbWWOi3IYgHUci=Unk +zailUHkEGUoAkC`i8$pWL9guk*9{_OOtm5m{O?34tma8j>7jbwx#(X5VZm*;2uA=R) +z5o-Tm#!b^lPj_gR0`l)TZ2uMWp4xjL|DK=XX}^utHM~%`1E3zIHStKS3P4tHc(>$l +zv#g+7CMdQrv4S9)hWbOCw&ebL-7sh1O{Cu*Ia4ef_SWc^K(shzhR*^J7O@)+ftu78 +zy2NAu_FItevZ@e9?xOm=2e{fE|wT-sC9U^nU+!E +z*(JH%tlC&K&*-aBS8N^QFzxY19k<{8EtceGQ=vS7>h(S62ObFj6JA5+b%$Mx7>{@g +zK#abc&jOwL>prgVs-b>F>5&`1c5hY?S;vD@$Cz`a12_bcj)m3-#oDbh$W9Tq6zz7v3$ +z$9vZId+rbLXU^i)QcoH{+M{brBzVA5`Ps1dk7!r`7~jYz4cT-!jyPtO=a?hs2Knd< +ziW67%d%COfswqbfA$!U8AS7 +z(Dy{eR0G5o{ZtXTN*;DY+A5C(fTdDpQD`^s;>}|r@JP9)rA7Ua2OSxA(qR0AV!izl +zCM^ccFjeu6*6C?!(&&c=Ib$U2S&=b7#re}7J+#}Ql9Mu$_R_w9Z!O(!k)6y7>z)oH3DDX_UM6vXPaDit>bS;1n9}B!YHno7+VaT@tOwc^#>xR +z+PcOwk*8hytxjN|<8MPfy1RRQmQPEhYZ*<%ue*5e^Qv6WEwS6i?fRC&ImG>}J@8M^ +z&qdGzv|_qhG_j*ajpWA3gdyQw^No+>$`=lEGbnZ@RIaji;skc0z#Pcg-QkJ6rt-Jz +zn5irBdOlGUS+f;+60{SvuwPo}8VVTQ=R|uW&2hkyV#mD^fZ^HwC~|EBEk_3Unu;#6s5(9^pYlF%#9K$)?E&rSd7zH$safcYd|PcsfC!uIIrIqj +zC3<*7&*bZ;dFld}c51l=C_c^!G1;pps4v&!dhk)AVDZ$C^+h7=(B@)x#T*$4C0w0s&}io&10>_ +zbPbVw@-2z{G1T+-19qEE7H0p}gmOo8*^b?(998E(=^)E%5!$i#p$S-u*BGtPSrd8xBqYfJ{4rbpsRAoaD%}*D{P8PO#K~ +z`}?;<4Z>K>^)u1Ca{yUEe?Ej0uE>p{*LlZB6Cuvj&c@oV+tz)f=omvPwNY@5s&xx@#g-A7`EH= +zyR$$4ZQvIG$TkZUOj-^#ro=cIx+(f1GL6=owxco(T|Ap8l>2cvv7dYNRPZo7(&pYq +zJ5y_DW%A5WRz0=H_{r$gOjBh#-?Bf&^9Uw>=iZcup8js3oR)2FpUFYrObz>iHa=*w{JLL4anKC +z_v`>A74?~WKRy}(@0XQGw25Z>x|%tD68^Q1`0A +zc^czhns@gw^VzSw$|KPO7A(#sz6D&y8g4i0q@&1c8z3HMpWVqlGLy}(jZXsL +zMr5SWP5}7WQM3$wVUkgWxj)8m;jfmW5RkhW9Fai7Y6R=0a-@WK^Wh +zsYL?N!MC!#`A&kDO|6k<`E)o-dH!1cQdSE5$k%TI;Ia>~f}hclJs*S0vjuEJjq0fz +zed*EJrr3!#8kQjNs8_vbD(6RXtr)KHdfIRobPX;7l%eNq7HV522K%nTRu(vrkv>zl +zIIi+N%T&y##%BTWl9|6BWHhKKsGoI(gbqN2^d4B~*S<9Q_GsefI|B8j;>@7#ncm!} +zbTaVb;8~;ns=YWtPVXq79+oik96c0SXx#75aLN$O&l$fPfQt}4lYf9cZJzlvZ)i6-G)avexusLNUp2y{cinffC;DQpZVvOE8MaFZ%w& +z0r=tsluRs~$^ZZW07*qo +IM6N<$f&=V}BLDyZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/model.inc.c b/actors/super_sonic/model.inc.c +new file mode 100644 +index 0000000..59c669c +--- /dev/null ++++ b/actors/super_sonic/model.inc.c +@@ -0,0 +1,4777 @@ ++Lights1 super_sonic_sonic_skin_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_black_material_f3d_001_v4_lights = gdSPDefLights1( ++ 0x0, 0x0, 0x0, ++ 0x0, 0x0, 0x0, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_mouth_none_lights = gdSPDefLights1( ++ 0x73, 0x5D, 0x36, ++ 0xE7, 0xBB, 0x6C, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_super_eye_texture_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_mouth_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_super_eye_half_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_eye_closed_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_eye_dead_001_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_gloves_001_v4_001_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_gloves_v4_001_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_t128_lights = gdSPDefLights1( ++ 0x7F, 0x7F, 0x7F, ++ 0xFE, 0xFE, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_white_material_f3d_v4_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_buckle_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x0, ++ 0xFE, 0xF3, 0x1, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_shoe_lights = gdSPDefLights1( ++ 0x7F, 0x0, 0x1, ++ 0xFE, 0x0, 0x2, 0x28, 0x28, 0x28); ++ ++Lights1 super_sonic_sonic_white_lights = gdSPDefLights1( ++ 0x73, 0x73, 0x73, ++ 0xE7, 0xE7, 0xE7, 0x28, 0x28, 0x28); ++ ++Gfx super_sonic_sonic_super_surface_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_sonic_super_surface_rgba16[] = { ++ #include "actors/super_sonic/sonic_super_surface.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_metal_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_metal_rgba16[] = { ++ #include "actors/super_sonic/metal.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_super_eye_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_super_eye_rgba16[] = { ++ #include "actors/super_sonic/super_eye.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_sonic_super_surface_replacer_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_sonic_super_surface_replacer_rgba16[] = { ++ #include "actors/super_sonic/sonic_super_surface_replacer.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_sonic_mouth_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_sonic_mouth_rgba16[] = { ++ #include "actors/super_sonic/sonic_mouth.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_super_eye_half_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_super_eye_half_rgba16[] = { ++ #include "actors/super_sonic/super_eye_half.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_soniceyenew_closed_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_soniceyenew_closed_rgba16[] = { ++ #include "actors/super_sonic/soniceyenew_closed.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_soniceyenew_dead_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_soniceyenew_dead_rgba16[] = { ++ #include "actors/super_sonic/soniceyenew_dead.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_sonic_new2_rgba16_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_sonic_new2_rgba16_rgba16[] = { ++ #include "actors/super_sonic/sonic_new2_rgba16.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_wing_2_rgba16[] = { ++ #include "actors/super_sonic/wing_2.rgba16.inc.c" ++}; ++ ++Gfx super_sonic_wing1_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 super_sonic_wing1_rgba16[] = { ++ #include "actors/super_sonic/wing1.rgba16.inc.c" ++}; ++ ++Vtx super_sonic_000_offset_mesh_layer_1_vtx_0[6] = { ++ {{{52, 30, 26},0, {-16, -16},{0xB9, 0x64, 0x20, 0xFF}}}, ++ {{{53, 33, 0},0, {-16, -16},{0xCC, 0x74, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {-16, -16},{0xAC, 0x5C, 0x19, 0xFF}}}, ++ {{{43, 27, 0},0, {-16, -16},{0xAA, 0x5E, 0x0, 0xFF}}}, ++ {{{45, 28, -13},0, {-16, -16},{0xAC, 0x5C, 0xE7, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xB9, 0x64, 0xDF, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_mesh_layer_1_vtx_1[24] = { ++ {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, ++ {{{45, 28, 13},0, {13, 22},{0xAC, 0x5C, 0x19, 0xFF}}}, ++ {{{43, 27, 0},0, {16, 22},{0xAA, 0x5E, 0x0, 0xFF}}}, ++ {{{45, 28, -13},0, {18, 22},{0xAC, 0x5C, 0xE7, 0xFF}}}, ++ {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {13, 28},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{27, -57, 0},0, {16, 30},{0x68, 0xB8, 0xF5, 0xFF}}}, ++ {{{18, -51, 12},0, {14, 30},{0xD3, 0xD6, 0x6F, 0xFF}}}, ++ {{{21, -77, 0},0, {16, 32},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{17, -76, 4},0, {15, 32},{0xEC, 0xE3, 0x7A, 0xFF}}}, ++ {{{15, -74, 0},0, {16, 32},{0x93, 0xFE, 0x42, 0xFF}}}, ++ {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, ++ {{{11, -51, -12},0, {18, 30},{0xAA, 0xDE, 0xA9, 0xFF}}}, ++ {{{11, -76, -4},0, {16, 32},{0x94, 0xDF, 0xC6, 0xFF}}}, ++ {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{11, -76, -4},0, {16, 32},{0x94, 0xDF, 0xC6, 0xFF}}}, ++ {{{21, -77, 0},0, {16, 32},{0x79, 0xE3, 0xE7, 0xFF}}}, ++ {{{19, -108, 0},0, {16, 36},{0x7, 0x81, 0x0, 0xFF}}}, ++ {{{17, -76, 4},0, {15, 32},{0xEC, 0xE3, 0x7A, 0xFF}}}, ++ {{{15, -74, 0},0, {16, 32},{0x93, 0xFE, 0x42, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(12, 11, 8, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 9, 0), ++ gsSP1Triangle(13, 7, 9, 0), ++ gsSP1Triangle(15, 7, 13, 0), ++ gsSP1Triangle(15, 6, 7, 0), ++ gsSPVertex(super_sonic_000_offset_mesh_layer_1_vtx_1 + 16, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0[11] = { ++ {{{52, -3, 54},0, {7, 25},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {7, 23},{0xC8, 0x47, 0x59, 0xFF}}}, ++ {{{56, -27, 45},0, {8, 27},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{52, 30, 26},0, {11, 22},{0xB9, 0x64, 0x20, 0xFF}}}, ++ {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{51, -36, 0},0, {16, 28},{0x11, 0x82, 0x0, 0xFF}}}, ++ {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {23, 27},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, 30, -26},0, {20, 22},{0xB9, 0x64, 0xDF, 0xFF}}}, ++ {{{50, 16, -51},0, {24, 23},{0xC8, 0x47, 0xA7, 0xFF}}}, ++ {{{52, -3, -54},0, {25, 25},{0xDC, 0xEB, 0x88, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1[3] = { ++ {{{52, 30, 26},0, {-16, -16},{0xB9, 0x64, 0x20, 0xFF}}}, ++ {{{52, 30, -26},0, {-16, -16},{0xB9, 0x64, 0xDF, 0xFF}}}, ++ {{{53, 33, 0},0, {-16, -16},{0xCC, 0x74, 0x0, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_001_skinned_mesh_layer_1_vtx_1 + 0, 3, 11), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_0[16] = { ++ {{{10, 35, 40},0, {9, 21},{0xE0, 0x65, 0x47, 0xFF}}}, ++ {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, ++ {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, ++ {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, ++ {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, ++ {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, ++ {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, ++ {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, ++ {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, ++ {{{10, 35, -40},0, {22, 21},{0xE0, 0x65, 0xB9, 0xFF}}}, ++ {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 0, 2, 14), ++ gsSP1Triangle(3, 1, 14, 0), ++ gsSP1Triangle(1, 15, 14, 0), ++ gsSP1Triangle(15, 1, 0, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 2, 2, 14), ++ gsSP1Triangle(0, 14, 15, 0), ++ gsSP1Triangle(14, 0, 2, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 4, 2, 14), ++ gsSP1Triangle(14, 15, 2, 0), ++ gsSP1Triangle(4, 14, 2, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 6, 2, 14), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSP1Triangle(14, 4, 5, 0), ++ gsSP1Triangle(14, 5, 6, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 8, 2, 14), ++ gsSP1Triangle(6, 14, 15, 0), ++ gsSP1Triangle(6, 7, 14, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 10, 2, 14), ++ gsSP1Triangle(14, 7, 15, 0), ++ gsSP1Triangle(15, 7, 10, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 12, 2, 14), ++ gsSP1Triangle(10, 14, 15, 0), ++ gsSP1Triangle(14, 10, 9, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_0 + 14, 2, 14), ++ gsSP1Triangle(9, 14, 15, 0), ++ gsSP1Triangle(8, 14, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_1[6] = { ++ {{{10, 35, 40},0, {-16, -16},{0xE0, 0x65, 0x47, 0xFF}}}, ++ {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, ++ {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, ++ {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE0, 0x65, 0xB9, 0xFF}}}, ++ {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 0, 2, 14), ++ gsSP1Triangle(14, 15, 11, 0), ++ gsSP1Triangle(13, 11, 15, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 2, 2, 14), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_1 + 4, 2, 14), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_2[100] = { ++ {{{10, 35, 40},0, {9, 21},{0xE0, 0x65, 0x47, 0xFF}}}, ++ {{{16, -4, 65},0, {5, 25},{0xE0, 0x12, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {8, 21},{0x1, 0x5B, 0x58, 0xFF}}}, ++ {{{45, -5, 70},0, {4, 25},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{42, -30, 72},0, {4, 28},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{19, -34, 59},0, {6, 28},{0xB1, 0xF2, 0x63, 0xFF}}}, ++ {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, ++ {{{2, -68, 51},0, {7, 32},{0x8B, 0x2D, 0x17, 0xFF}}}, ++ {{{10, -42, 24},0, {12, 29},{0x9F, 0xB1, 0xE8, 0xFF}}}, ++ {{{17, -76, 16},0, {13, 32},{0xC3, 0xC8, 0x9F, 0xFF}}}, ++ {{{44, -48, 0},0, {16, 29},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{12, -39, 0},0, {16, 29},{0xDD, 0x86, 0x0, 0xFF}}}, ++ {{{10, -42, -24},0, {20, 29},{0x9F, 0xB1, 0x18, 0xFF}}}, ++ {{{17, -76, -16},0, {18, 32},{0xC3, 0xC8, 0x61, 0xFF}}}, ++ {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, ++ {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, ++ {{{19, -34, -59},0, {25, 28},{0xB1, 0xF2, 0x9D, 0xFF}}}, ++ {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, ++ {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, ++ {{{42, -30, -72},0, {28, 28},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{16, -4, -65},0, {26, 25},{0xE0, 0x12, 0x86, 0xFF}}}, ++ {{{45, -5, -70},0, {27, 25},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{43, 37, -48},0, {24, 21},{0x1, 0x5B, 0xA8, 0xFF}}}, ++ {{{10, 35, -40},0, {22, 21},{0xE0, 0x65, 0xB9, 0xFF}}}, ++ {{{64, 35, -43},0, {23, 21},{0x37, 0x5B, 0xBA, 0xFF}}}, ++ {{{74, -5, -65},0, {26, 25},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {23, 24},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{83, 29, -18},0, {19, 22},{0x62, 0x4D, 0xE7, 0xFF}}}, ++ {{{99, -1, 0},0, {16, 25},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{86, 27, 0},0, {16, 22},{0x68, 0x49, 0x0, 0xFF}}}, ++ {{{83, 29, 18},0, {13, 22},{0x62, 0x4D, 0x19, 0xFF}}}, ++ {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{83, 29, 18},0, {13, 22},{0x62, 0x4D, 0x19, 0xFF}}}, ++ {{{64, 35, 43},0, {8, 21},{0x37, 0x5B, 0x46, 0xFF}}}, ++ {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{74, -5, 65},0, {5, 25},{0x3E, 0x20, 0x6A, 0xFF}}}, ++ {{{45, -5, 70},0, {4, 25},{0x1, 0x24, 0x7A, 0xFF}}}, ++ {{{43, 37, 48},0, {8, 21},{0x1, 0x5B, 0x58, 0xFF}}}, ++ {{{73, -32, 68},0, {4, 28},{0x50, 0xEB, 0x61, 0xFF}}}, ++ {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, ++ {{{42, -30, 72},0, {4, 28},{0xF2, 0x6, 0x7E, 0xFF}}}, ++ {{{1, -117, 65},0, {5, 36},{0x2C, 0x89, 0x2, 0xFF}}}, ++ {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{-36, -122, 83},0, {2, 37},{0x9C, 0xCE, 0x3C, 0xFF}}}, ++ {{{-9, -108, 79},0, {3, 36},{0xB, 0x7, 0x7E, 0xFF}}}, ++ {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, ++ {{{2, -68, 51},0, {7, 32},{0x8B, 0x2D, 0x17, 0xFF}}}, ++ {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, ++ {{{25, -77, 75},0, {3, 32},{0x4, 0xF4, 0x7E, 0xFF}}}, ++ {{{17, -76, 16},0, {13, 32},{0xC3, 0xC8, 0x9F, 0xFF}}}, ++ {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{44, -48, 0},0, {16, 29},{0xCC, 0x8C, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {17, 32},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{17, -76, -16},0, {18, 32},{0xC3, 0xC8, 0x61, 0xFF}}}, ++ {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{-11, -109, -55},0, {25, 36},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, ++ {{{2, -68, -51},0, {24, 32},{0x8B, 0x2D, 0xE9, 0xFF}}}, ++ {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, ++ {{{-9, -108, -79},0, {29, 36},{0xB, 0x7, 0x82, 0xFF}}}, ++ {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, ++ {{{25, -77, -75},0, {28, 32},{0x4, 0xF4, 0x82, 0xFF}}}, ++ {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{73, -32, -68},0, {27, 28},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{42, -30, -72},0, {28, 28},{0xF2, 0x6, 0x82, 0xFF}}}, ++ {{{45, -5, -70},0, {27, 25},{0x1, 0x24, 0x86, 0xFF}}}, ++ {{{74, -5, -65},0, {26, 25},{0x3E, 0x20, 0x96, 0xFF}}}, ++ {{{87, 4, -47},0, {23, 24},{0x6D, 0x1E, 0xC7, 0xFF}}}, ++ {{{88, -41, -21},0, {19, 29},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{99, -1, 0},0, {16, 25},{0x7F, 0x7, 0x0, 0xFF}}}, ++ {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{87, 4, 47},0, {8, 24},{0x6D, 0x1E, 0x39, 0xFF}}}, ++ {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{61, -74, 10},0, {14, 32},{0x30, 0xA8, 0xB2, 0xFF}}}, ++ {{{88, -41, 21},0, {12, 29},{0x74, 0xCC, 0x3, 0xFF}}}, ++ {{{51, -91, 46},0, {8, 34},{0x46, 0x96, 0xC, 0xFF}}}, ++ {{{-16, -99, 63},0, {5, 35},{0x92, 0x40, 0xFB, 0xFF}}}, ++ {{{-36, -122, 83},0, {2, 37},{0x9C, 0xCE, 0x3C, 0xFF}}}, ++ {{{-9, -108, 79},0, {3, 36},{0xB, 0x7, 0x7E, 0xFF}}}, ++ {{{-11, -109, 55},0, {7, 36},{0xC6, 0xC0, 0xA3, 0xFF}}}, ++ {{{84, -34, 0},0, {16, 28},{0x6D, 0xBE, 0x0, 0xFF}}}, ++ {{{61, -74, -10},0, {17, 32},{0x30, 0xA8, 0x4E, 0xFF}}}, ++ {{{88, -41, -21},0, {19, 29},{0x74, 0xCC, 0xFD, 0xFF}}}, ++ {{{51, -91, -46},0, {23, 34},{0x46, 0x96, 0xF4, 0xFF}}}, ++ {{{73, -32, -68},0, {27, 28},{0x50, 0xEB, 0x9F, 0xFF}}}, ++ {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, ++ {{{-11, -109, -55},0, {25, 36},{0xC6, 0xC0, 0x5D, 0xFF}}}, ++ {{{-36, -122, -83},0, {30, 37},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, ++ {{{-16, -99, -63},0, {26, 35},{0x92, 0x40, 0x5, 0xFF}}}, ++ {{{-9, -108, -79},0, {29, 36},{0xB, 0x7, 0x82, 0xFF}}}, ++ {{{-36, -122, -83},0, {30, 37},{0x9C, 0xCE, 0xC4, 0xFF}}}, ++ {{{1, -117, -65},0, {26, 36},{0x2C, 0x89, 0xFE, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(8, 5, 6, 0), ++ gsSP1Triangle(5, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 3, 4, 0), ++ gsSP1Triangle(6, 2, 3, 0), ++ gsSP1Triangle(7, 2, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(10, 6, 4, 0), ++ gsSP1Triangle(11, 8, 9, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(11, 9, 14, 0), ++ gsSP1Triangle(14, 9, 15, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(5, 8, 9, 0), ++ gsSP1Triangle(10, 5, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(12, 13, 15, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 4, 3, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_2 + 96, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_001_mesh_layer_1_vtx_3[14] = { ++ {{{64, 35, 43},0, {-16, -16},{0x37, 0x5B, 0x46, 0xFF}}}, ++ {{{83, 29, 18},0, {-16, -16},{0x62, 0x4D, 0x19, 0xFF}}}, ++ {{{86, 27, 0},0, {-16, -16},{0x68, 0x49, 0x0, 0xFF}}}, ++ {{{42, 51, 0},0, {-16, -16},{0xFB, 0x7F, 0x0, 0xFF}}}, ++ {{{64, 35, -43},0, {-16, -16},{0x37, 0x5B, 0xBA, 0xFF}}}, ++ {{{83, 29, -18},0, {-16, -16},{0x62, 0x4D, 0xE7, 0xFF}}}, ++ {{{43, 47, -28},0, {-16, -16},{0x2, 0x7A, 0xDD, 0xFF}}}, ++ {{{43, 37, -48},0, {-16, -16},{0x1, 0x5B, 0xA8, 0xFF}}}, ++ {{{10, 35, -40},0, {-16, -16},{0xE0, 0x65, 0xB9, 0xFF}}}, ++ {{{10, 40, -23},0, {-16, -16},{0xDB, 0x77, 0xE8, 0xFF}}}, ++ {{{10, 40, 23},0, {-16, -16},{0xDB, 0x77, 0x18, 0xFF}}}, ++ {{{43, 47, 28},0, {-16, -16},{0x2, 0x7A, 0x23, 0xFF}}}, ++ {{{10, 35, 40},0, {-16, -16},{0xE0, 0x65, 0x47, 0xFF}}}, ++ {{{43, 37, 48},0, {-16, -16},{0x1, 0x5B, 0x58, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_offset_001_mesh_layer_1_vtx_3 + 0, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(4, 6, 3, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(3, 6, 9, 0), ++ gsSP1Triangle(10, 3, 9, 0), ++ gsSP1Triangle(10, 11, 3, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(11, 13, 0, 0), ++ gsSP1Triangle(3, 11, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_0[13] = { ++ {{{55, 137, -6},0, {-16, -16},{0x12, 0x48, 0x67, 0xFF}}}, ++ {{{42, 129, -11},0, {-16, -16},{0x8A, 0x2F, 0xFC, 0xFF}}}, ++ {{{51, 122, -2},0, {-16, -16},{0x9, 0x5, 0x7F, 0xFF}}}, ++ {{{50, 138, -12},0, {-16, -16},{0xAE, 0x61, 0xF8, 0xFF}}}, ++ {{{57, 140, -12},0, {-16, -16},{0x1C, 0x7B, 0xF6, 0xFF}}}, ++ {{{61, 136, -12},0, {-16, -16},{0x79, 0x27, 0xFD, 0xFF}}}, ++ {{{60, 127, -11},0, {-16, -16},{0x7D, 0xEA, 0x1, 0xFF}}}, ++ {{{56, 114, -10},0, {-16, -16},{0x7C, 0xE5, 0x2, 0xFF}}}, ++ {{{52, 89, -8},0, {-16, -16},{0x39, 0x8F, 0x9, 0xFF}}}, ++ {{{43, 90, -8},0, {-16, -16},{0xB2, 0x9C, 0x8, 0xFF}}}, ++ {{{40, 116, -10},0, {-16, -16},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{51, 121, -19},0, {-16, -16},{0x9, 0xEF, 0x82, 0xFF}}}, ++ {{{55, 136, -18},0, {-16, -16},{0x12, 0x35, 0x8E, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_0 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(0, 2, 6, 0), ++ gsSP1Triangle(7, 6, 2, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(2, 9, 8, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(1, 10, 2, 0), ++ gsSP1Triangle(1, 11, 10, 0), ++ gsSP1Triangle(12, 11, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSP1Triangle(12, 3, 4, 0), ++ gsSP1Triangle(4, 5, 12, 0), ++ gsSP1Triangle(5, 6, 12, 0), ++ gsSP1Triangle(12, 6, 11, 0), ++ gsSP1Triangle(7, 11, 6, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSP1Triangle(11, 8, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_1[99] = { ++ {{{195, 16, -103},0, {406, 585},{0xC8, 0x6E, 0xE0, 0xFF}}}, ++ {{{158, 2, -93},0, {406, 585},{0xF3, 0x60, 0xAE, 0xFF}}}, ++ {{{180, 14, -73},0, {406, 585},{0xE6, 0x5E, 0xAE, 0xFF}}}, ++ {{{190, 41, -58},0, {407, 583},{0x9, 0x62, 0xAF, 0xFF}}}, ++ {{{206, 38, -76},0, {407, 583},{0xC1, 0x5C, 0xC2, 0xFF}}}, ++ {{{180, 14, -73},0, {407, 583},{0xE6, 0x5E, 0xAE, 0xFF}}}, ++ {{{180, 14, -73},0, {410, 586},{0xE6, 0x5E, 0xAE, 0xFF}}}, ++ {{{231, 35, -109},0, {410, 586},{0xC2, 0x64, 0xD0, 0xFF}}}, ++ {{{195, 16, -103},0, {410, 586},{0xC8, 0x6E, 0xE0, 0xFF}}}, ++ {{{206, 38, -76},0, {410, 586},{0xC1, 0x5C, 0xC2, 0xFF}}}, ++ {{{36, 23, -73},0, {409, 585},{0xBB, 0x15, 0x97, 0xFF}}}, ++ {{{46, 14, -76},0, {409, 585},{0xCE, 0x13, 0x8D, 0xFF}}}, ++ {{{23, 0, -55},0, {409, 585},{0x98, 0x0, 0xB7, 0xFF}}}, ++ {{{46, 48, -65},0, {409, 585},{0xF7, 0x48, 0x98, 0xFF}}}, ++ {{{57, 36, -72},0, {409, 585},{0xF4, 0x46, 0x96, 0xFF}}}, ++ {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, ++ {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, ++ {{{46, 48, -65},0, {409, 585},{0xF7, 0x48, 0x98, 0xFF}}}, ++ {{{43, 64, -48},0, {409, 585},{0x3D, 0x56, 0xB9, 0xFF}}}, ++ {{{35, 64, -47},0, {409, 585},{0xCD, 0x4F, 0xAB, 0xFF}}}, ++ {{{41, 79, -33},0, {409, 585},{0xE9, 0x66, 0xB8, 0xFF}}}, ++ {{{27, 68, -34},0, {409, 585},{0xA1, 0x41, 0xCB, 0xFF}}}, ++ {{{28, 76, -19},0, {409, 585},{0xA3, 0x52, 0xE6, 0xFF}}}, ++ {{{17, 57, -19},0, {409, 585},{0x8C, 0x2E, 0xE6, 0xFF}}}, ++ {{{14, 54, -5},0, {409, 585},{0x8A, 0x2F, 0xFC, 0xFF}}}, ++ {{{10, 27, -22},0, {409, 585},{0x84, 0x11, 0xE9, 0xFF}}}, ++ {{{7, 21, -2},0, {409, 585},{0x81, 0x4, 0x0, 0xFF}}}, ++ {{{12, 2, -29},0, {409, 585},{0x85, 0x5, 0xDF, 0xFF}}}, ++ {{{8, 6, -1},0, {409, 585},{0x81, 0xFD, 0x0, 0xFF}}}, ++ {{{12, 7, 28},0, {409, 585},{0x86, 0xB, 0x20, 0xFF}}}, ++ {{{10, 30, 17},0, {409, 585},{0x84, 0x15, 0x14, 0xFF}}}, ++ {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, ++ {{{12, 7, 28},0, {409, 585},{0x86, 0xB, 0x20, 0xFF}}}, ++ {{{23, 9, 54},0, {409, 585},{0x98, 0xC, 0x48, 0xFF}}}, ++ {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, ++ {{{25, 46, 46},0, {409, 585},{0x9C, 0x2E, 0x3F, 0xFF}}}, ++ {{{36, 35, 68},0, {409, 585},{0xBB, 0x27, 0x63, 0xFF}}}, ++ {{{46, 27, 72},0, {409, 585},{0xCE, 0x26, 0x6E, 0xFF}}}, ++ {{{46, 59, 56},0, {409, 585},{0xFD, 0x5C, 0x58, 0xFF}}}, ++ {{{57, 48, 65},0, {409, 585},{0xF4, 0x57, 0x5B, 0xFF}}}, ++ {{{53, 57, 54},0, {409, 585},{0x5E, 0x4E, 0x22, 0xFF}}}, ++ {{{43, 71, 36},0, {409, 585},{0x55, 0x57, 0x25, 0xFF}}}, ++ {{{44, 67, 28},0, {409, 585},{0x7C, 0x19, 0xE, 0xFF}}}, ++ {{{45, 82, 20},0, {409, 585},{0x5F, 0x3F, 0x38, 0xFF}}}, ++ {{{57, 83, -7},0, {409, 585},{0x75, 0x31, 0xFC, 0xFF}}}, ++ {{{51, 90, 0},0, {409, 585},{0x34, 0x70, 0x1C, 0xFF}}}, ++ {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, ++ {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, ++ {{{57, 83, -7},0, {409, 585},{0x75, 0x31, 0xFC, 0xFF}}}, ++ {{{45, 78, -34},0, {409, 585},{0x60, 0x34, 0xBE, 0xFF}}}, ++ {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, ++ {{{44, 61, -39},0, {409, 585},{0x7C, 0x16, 0xEE, 0xFF}}}, ++ {{{43, 64, -48},0, {409, 585},{0x3D, 0x56, 0xB9, 0xFF}}}, ++ {{{53, 47, -63},0, {409, 585},{0x11, 0x35, 0x8E, 0xFF}}}, ++ {{{41, 79, -33},0, {409, 585},{0xE9, 0x66, 0xB8, 0xFF}}}, ++ {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, ++ {{{28, 76, -19},0, {409, 585},{0xA3, 0x52, 0xE6, 0xFF}}}, ++ {{{28, 78, -7},0, {409, 585},{0xA7, 0x5B, 0xF8, 0xFF}}}, ++ {{{14, 54, -5},0, {409, 585},{0x8A, 0x2F, 0xFC, 0xFF}}}, ++ {{{28, 78, 5},0, {409, 585},{0xA3, 0x56, 0xB, 0xFF}}}, ++ {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, ++ {{{10, 30, 17},0, {409, 585},{0x84, 0x15, 0x14, 0xFF}}}, ++ {{{7, 21, -2},0, {409, 585},{0x81, 0x4, 0x0, 0xFF}}}, ++ {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, ++ {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, ++ {{{14, 38, 31},0, {409, 585},{0x8C, 0x1C, 0x2B, 0xFF}}}, ++ {{{27, 73, 21},0, {409, 585},{0xA1, 0x49, 0x29, 0xFF}}}, ++ {{{25, 46, 46},0, {409, 585},{0x9C, 0x2E, 0x3F, 0xFF}}}, ++ {{{35, 71, 35},0, {409, 585},{0xCD, 0x5D, 0x46, 0xFF}}}, ++ {{{37, 55, 53},0, {409, 585},{0xB8, 0x45, 0x4F, 0xFF}}}, ++ {{{36, 35, 68},0, {409, 585},{0xBB, 0x27, 0x63, 0xFF}}}, ++ {{{46, 59, 56},0, {409, 585},{0xFD, 0x5C, 0x58, 0xFF}}}, ++ {{{43, 71, 36},0, {409, 585},{0x55, 0x57, 0x25, 0xFF}}}, ++ {{{41, 84, 19},0, {409, 585},{0xE9, 0x71, 0x35, 0xFF}}}, ++ {{{45, 82, 20},0, {409, 585},{0x5F, 0x3F, 0x38, 0xFF}}}, ++ {{{51, 90, 0},0, {409, 585},{0x34, 0x70, 0x1C, 0xFF}}}, ++ {{{43, 89, 1},0, {409, 585},{0xD7, 0x78, 0x7, 0xFF}}}, ++ {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, ++ {{{43, 89, -8},0, {409, 585},{0xD6, 0x78, 0xF6, 0xFF}}}, ++ {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, ++ {{{43, 88, -17},0, {409, 585},{0xD7, 0x75, 0xE5, 0xFF}}}, ++ {{{51, 89, -8},0, {409, 585},{0x1D, 0x7B, 0xF6, 0xFF}}}, ++ {{{51, 88, -16},0, {409, 585},{0x34, 0x6A, 0xD0, 0xFF}}}, ++ {{{28, 78, -7},0, {409, 585},{0xA7, 0x5B, 0xF8, 0xFF}}}, ++ {{{43, 89, -8},0, {409, 585},{0xD6, 0x78, 0xF6, 0xFF}}}, ++ {{{43, 89, 1},0, {409, 585},{0xD7, 0x78, 0x7, 0xFF}}}, ++ {{{28, 78, 5},0, {409, 585},{0xA3, 0x56, 0xB, 0xFF}}}, ++ {{{41, 84, 19},0, {409, 585},{0xE9, 0x71, 0x35, 0xFF}}}, ++ {{{27, 73, 21},0, {409, 585},{0xA1, 0x49, 0x29, 0xFF}}}, ++ {{{17, 59, 9},0, {409, 585},{0x8C, 0x32, 0x11, 0xFF}}}, ++ {{{35, 71, 35},0, {409, 585},{0xCD, 0x5D, 0x46, 0xFF}}}, ++ {{{206, 51, 68},0, {408, 584},{0xC1, 0x65, 0x2D, 0xFF}}}, ++ {{{190, 50, 50},0, {408, 584},{0x9, 0x6E, 0x3F, 0xFF}}}, ++ {{{180, 27, 70},0, {408, 584},{0xE6, 0x6B, 0x40, 0xFF}}}, ++ {{{231, 54, 102},0, {408, 584},{0xC2, 0x6B, 0x1E, 0xFF}}}, ++ {{{195, 34, 99},0, {408, 584},{0xC8, 0x71, 0xC, 0xFF}}}, ++ {{{158, 18, 91},0, {408, 584},{0xF3, 0x6D, 0x40, 0xFF}}}, ++ {{{195, 34, 99},0, {408, 584},{0xC8, 0x71, 0xC, 0xFF}}}, ++ {{{180, 27, 70},0, {408, 584},{0xE6, 0x6B, 0x40, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 6, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 13, 11, 0), ++ gsSP1Triangle(11, 13, 14, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(14, 10, 13, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 2, 0), ++ gsSP1Triangle(2, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(12, 13, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 4, 5, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(7, 8, 10, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_1 + 96, 3, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_2[11] = { ++ {{{36, 23, -73},0, {282, 885},{0xBB, 0x15, 0x97, 0xFF}}}, ++ {{{37, 45, -62},0, {236, 532},{0xB8, 0x36, 0xA6, 0xFF}}}, ++ {{{46, 48, -65},0, {88, 525},{0xF7, 0x48, 0x98, 0xFF}}}, ++ {{{25, 37, -53},0, {480, 552},{0x9C, 0x22, 0xB9, 0xFF}}}, ++ {{{23, 0, -55},0, {737, 1034},{0x98, 0x0, 0xB7, 0xFF}}}, ++ {{{14, 32, -37},0, {759, 486},{0x8C, 0x15, 0xD1, 0xFF}}}, ++ {{{12, 2, -29},0, {1089, 787},{0x85, 0x5, 0xDF, 0xFF}}}, ++ {{{10, 27, -22},0, {989, 424},{0x84, 0x11, 0xE9, 0xFF}}}, ++ {{{17, 57, -19},0, {753, 32},{0x8C, 0x2E, 0xE6, 0xFF}}}, ++ {{{27, 68, -34},0, {444, 15},{0xA1, 0x41, 0xCB, 0xFF}}}, ++ {{{35, 64, -47},0, {260, 176},{0xCD, 0x4F, 0xAB, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_2 + 0, 11, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(5, 8, 9, 0), ++ gsSP1Triangle(9, 3, 5, 0), ++ gsSP1Triangle(10, 3, 9, 0), ++ gsSP1Triangle(10, 1, 3, 0), ++ gsSP1Triangle(10, 2, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_3[31] = { ++ {{{141, 56, -78},0, {136, 701},{0xF8, 0x39, 0x8F, 0xFF}}}, ++ {{{141, 19, -90},0, {209, 1005},{0xF5, 0x27, 0x88, 0xFF}}}, ++ {{{112, 18, -88},0, {437, 949},{0xF4, 0x26, 0x87, 0xFF}}}, ++ {{{81, 30, -79},0, {654, 772},{0xE0, 0x2B, 0x8D, 0xFF}}}, ++ {{{56, 67, -48},0, {776, 349},{0xDF, 0x5F, 0xB2, 0xFF}}}, ++ {{{53, 47, -63},0, {835, 539},{0xFC, 0x50, 0x9D, 0xFF}}}, ++ {{{55, 27, -71},0, {869, 716},{0xD3, 0x26, 0x8F, 0xFF}}}, ++ {{{43, 64, -45},0, {887, 328},{0xDD, 0x5E, 0xB2, 0xFF}}}, ++ {{{46, 78, -21},0, {838, 109},{0xDA, 0x6E, 0xCE, 0xFF}}}, ++ {{{58, 82, -23},0, {730, 115},{0xE0, 0x72, 0xD3, 0xFF}}}, ++ {{{47, 82, -7},0, {821, -11},{0xD9, 0x79, 0xF6, 0xFF}}}, ++ {{{66, 88, -8},0, {660, -11},{0xE7, 0x7C, 0xF6, 0xFF}}}, ++ {{{58, 85, 8},0, {730, 115},{0xE0, 0x79, 0x18, 0xFF}}}, ++ {{{46, 81, 8},0, {838, 109},{0xDA, 0x75, 0x1E, 0xFF}}}, ++ {{{56, 74, 36},0, {776, 349},{0xDF, 0x6B, 0x3C, 0xFF}}}, ++ {{{43, 71, 33},0, {887, 328},{0xDD, 0x6A, 0x3D, 0xFF}}}, ++ {{{56, 74, 36},0, {776, 349},{0xDF, 0x6B, 0x3C, 0xFF}}}, ++ {{{43, 71, 33},0, {887, 328},{0xDD, 0x6A, 0x3D, 0xFF}}}, ++ {{{53, 57, 54},0, {835, 539},{0xFC, 0x60, 0x53, 0xFF}}}, ++ {{{81, 44, 73},0, {654, 772},{0xE0, 0x3F, 0x6A, 0xFF}}}, ++ {{{55, 38, 65},0, {869, 716},{0xD3, 0x39, 0x68, 0xFF}}}, ++ {{{141, 69, 67},0, {136, 701},{0xF8, 0x4C, 0x66, 0xFF}}}, ++ {{{112, 33, 84},0, {437, 949},{0xF4, 0x3B, 0x70, 0xFF}}}, ++ {{{141, 34, 86},0, {209, 1005},{0xF5, 0x3C, 0x70, 0xFF}}}, ++ {{{112, 85, 42},0, {318, 420},{0xEE, 0x72, 0x35, 0xFF}}}, ++ {{{58, 85, 8},0, {730, 115},{0xE0, 0x79, 0x18, 0xFF}}}, ++ {{{66, 88, -8},0, {660, -11},{0xE7, 0x7C, 0xF6, 0xFF}}}, ++ {{{56, 67, -48},0, {776, 349},{0xDF, 0x5F, 0xB2, 0xFF}}}, ++ {{{112, 76, -56},0, {318, 420},{0xEE, 0x67, 0xB8, 0xFF}}}, ++ {{{141, 56, -78},0, {136, 701},{0xF8, 0x39, 0x8F, 0xFF}}}, ++ {{{58, 82, -23},0, {730, 115},{0xE0, 0x72, 0xD3, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 4, 5, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(9, 4, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_3 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(0, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 8, 0, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(10, 12, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_4[446] = { ++ {{{57, 36, -72},0, {10, 7},{0xF4, 0x46, 0x96, 0xFF}}}, ++ {{{53, 47, -63},0, {11, 6},{0xA, 0x55, 0xA2, 0xFF}}}, ++ {{{60, 39, -69},0, {11, 7},{0xF, 0x62, 0xB1, 0xFF}}}, ++ {{{109, 42, -37},0, {13, 7},{0xB9, 0x23, 0x9D, 0xFF}}}, ++ {{{92, 26, -90},0, {9, 8},{0x26, 0x38, 0x94, 0xFF}}}, ++ {{{147, 15, -101},0, {8, 9},{0x34, 0xBF, 0xA0, 0xFF}}}, ++ {{{135, 50, -89},0, {9, 6},{0xC2, 0xA, 0x91, 0xFF}}}, ++ {{{121, 74, -78},0, {10, 4},{0xD3, 0x2D, 0x92, 0xFF}}}, ++ {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, ++ {{{83, 88, -41},0, {13, 3},{0xA7, 0x14, 0xA7, 0xFF}}}, ++ {{{68, 88, -27},0, {15, 3},{0xB1, 0x5, 0x9D, 0xFF}}}, ++ {{{59, 79, -18},0, {15, 4},{0x9E, 0xC, 0xB0, 0xFF}}}, ++ {{{65, 92, -21},0, {15, 3},{0xAB, 0x4C, 0xC8, 0xFF}}}, ++ {{{58, 85, -12},0, {16, 4},{0x92, 0x3E, 0xF2, 0xFF}}}, ++ {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, ++ {{{60, 84, -7},0, {16, 4},{0xA0, 0x46, 0x2D, 0xFF}}}, ++ {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, ++ {{{60, 84, -7},0, {16, 4},{0xA0, 0x46, 0x2D, 0xFF}}}, ++ {{{67, 91, -8},0, {16, 3},{0xF9, 0x7C, 0xE7, 0xFF}}}, ++ {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, ++ {{{58, 85, -3},0, {16, 4},{0x92, 0x3F, 0x3, 0xFF}}}, ++ {{{65, 94, 5},0, {15, 3},{0xAB, 0x55, 0x29, 0xFF}}}, ++ {{{59, 81, 4},0, {15, 4},{0x9E, 0x19, 0x4D, 0xFF}}}, ++ {{{68, 91, 11},0, {15, 3},{0xAA, 0x2F, 0x51, 0xFF}}}, ++ {{{109, 48, 29},0, {13, 7},{0xAB, 0x2C, 0x54, 0xFF}}}, ++ {{{83, 94, 25},0, {13, 3},{0xA7, 0x23, 0x54, 0xFF}}}, ++ {{{104, 93, 48},0, {12, 3},{0xB2, 0x31, 0x58, 0xFF}}}, ++ {{{121, 86, 64},0, {10, 4},{0xD3, 0x3F, 0x65, 0xFF}}}, ++ {{{135, 65, 79},0, {9, 6},{0xC2, 0x27, 0x68, 0xFF}}}, ++ {{{147, 33, 96},0, {8, 9},{0x3, 0x6D, 0x42, 0xFF}}}, ++ {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, ++ {{{60, 51, 61},0, {11, 7},{0xB, 0x70, 0x3B, 0xFF}}}, ++ {{{53, 57, 54},0, {11, 6},{0xA, 0x64, 0x4E, 0xFF}}}, ++ {{{60, 51, 61},0, {11, 7},{0xB, 0x70, 0x3B, 0xFF}}}, ++ {{{109, 48, 29},0, {13, 7},{0xAB, 0x2C, 0x54, 0xFF}}}, ++ {{{57, 48, 65},0, {10, 7},{0xF4, 0x57, 0x5B, 0xFF}}}, ++ {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, ++ {{{46, 27, 72},0, {10, 10},{0xCE, 0x26, 0x6E, 0xFF}}}, ++ {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, ++ {{{28, -20, 73},0, {10, 13},{0xA5, 0x29, 0x4F, 0xFF}}}, ++ {{{23, 9, 54},0, {12, 10},{0x98, 0xC, 0x48, 0xFF}}}, ++ {{{12, 7, 28},0, {14, 11},{0x86, 0xB, 0x20, 0xFF}}}, ++ {{{-3, -58, 51},0, {12, 16},{0x8D, 0xCA, 0xF6, 0xFF}}}, ++ {{{8, -13, 1},0, {16, 12},{0x81, 0xF5, 0x0, 0xFF}}}, ++ {{{8, 6, -1},0, {16, 10},{0x81, 0xFD, 0x0, 0xFF}}}, ++ {{{12, 2, -29},0, {14, 11},{0x85, 0x5, 0xDF, 0xFF}}}, ++ {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, ++ {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, ++ {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, ++ {{{12, 2, -29},0, {14, 11},{0x85, 0x5, 0xDF, 0xFF}}}, ++ {{{23, 0, -55},0, {12, 10},{0x98, 0x0, 0xB7, 0xFF}}}, ++ {{{46, 14, -76},0, {10, 10},{0xCE, 0x13, 0x8D, 0xFF}}}, ++ {{{85, -26, -97},0, {8, 11},{0x6, 0xF9, 0x81, 0xFF}}}, ++ {{{92, 26, -90},0, {9, 8},{0x26, 0x38, 0x94, 0xFF}}}, ++ {{{57, 36, -72},0, {10, 7},{0xF4, 0x46, 0x96, 0xFF}}}, ++ {{{60, 39, -69},0, {11, 7},{0xF, 0x62, 0xB1, 0xFF}}}, ++ {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, ++ {{{147, 15, -101},0, {8, 9},{0x34, 0xBF, 0xA0, 0xFF}}}, ++ {{{148, 50, -90},0, {9, 6},{0x3D, 0x48, 0xAB, 0xFF}}}, ++ {{{135, 50, -89},0, {9, 6},{0xC2, 0xA, 0x91, 0xFF}}}, ++ {{{121, 74, -78},0, {10, 4},{0xD3, 0x2D, 0x92, 0xFF}}}, ++ {{{135, 78, -74},0, {11, 4},{0x33, 0x65, 0xC6, 0xFF}}}, ++ {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, ++ {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, ++ {{{88, 96, -39},0, {14, 2},{0xCF, 0x63, 0xC2, 0xFF}}}, ++ {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, ++ {{{104, 83, -64},0, {12, 3},{0xB2, 0x21, 0xA1, 0xFF}}}, ++ {{{83, 88, -41},0, {13, 3},{0xA7, 0x14, 0xA7, 0xFF}}}, ++ {{{65, 92, -21},0, {15, 3},{0xAB, 0x4C, 0xC8, 0xFF}}}, ++ {{{68, 88, -27},0, {15, 3},{0xB1, 0x5, 0x9D, 0xFF}}}, ++ {{{85, 99, -25},0, {15, 2},{0xEF, 0x7A, 0xE2, 0xFF}}}, ++ {{{117, 92, -42},0, {13, 3},{0x24, 0x75, 0xDF, 0xFF}}}, ++ {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, ++ {{{84, 102, -14},0, {16, 2},{0xE, 0x7C, 0x15, 0xFF}}}, ++ {{{64, 94, -12},0, {16, 3},{0xC7, 0x71, 0xD, 0xFF}}}, ++ {{{67, 91, -8},0, {16, 3},{0xF9, 0x7C, 0xE7, 0xFF}}}, ++ {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, ++ {{{84, 103, -4},0, {16, 2},{0xEE, 0x65, 0xB5, 0xFF}}}, ++ {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, ++ {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, ++ {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, ++ {{{64, 94, -4},0, {16, 3},{0xBD, 0x56, 0xBE, 0xFF}}}, ++ {{{65, 94, 5},0, {15, 3},{0xAB, 0x55, 0x29, 0xFF}}}, ++ {{{88, 102, 21},0, {14, 2},{0xCF, 0x6D, 0x2C, 0xFF}}}, ++ {{{83, 94, 25},0, {13, 3},{0xA7, 0x23, 0x54, 0xFF}}}, ++ {{{68, 91, 11},0, {15, 3},{0xAA, 0x2F, 0x51, 0xFF}}}, ++ {{{104, 93, 48},0, {12, 3},{0xB2, 0x31, 0x58, 0xFF}}}, ++ {{{112, 100, 40},0, {12, 3},{0x2, 0x7B, 0x21, 0xFF}}}, ++ {{{121, 86, 64},0, {10, 4},{0xD3, 0x3F, 0x65, 0xFF}}}, ++ {{{135, 89, 59},0, {11, 4},{0x33, 0x6D, 0x28, 0xFF}}}, ++ {{{148, 64, 80},0, {9, 6},{0x2B, 0x56, 0x54, 0xFF}}}, ++ {{{135, 65, 79},0, {9, 6},{0xC2, 0x27, 0x68, 0xFF}}}, ++ {{{147, 33, 96},0, {8, 9},{0x3, 0x6D, 0x42, 0xFF}}}, ++ {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, ++ {{{92, 42, 84},0, {9, 8},{0xF6, 0x34, 0x74, 0xFF}}}, ++ {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, ++ {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, ++ {{{85, -8, 100},0, {8, 11},{0xC8, 0x54, 0x4D, 0xFF}}}, ++ {{{181, -31, 113},0, {7, 14},{0x22, 0x42, 0x67, 0xFF}}}, ++ {{{130, -41, 117},0, {7, 15},{0xBB, 0x1, 0x6B, 0xFF}}}, ++ {{{110, -48, 75},0, {10, 16},{0x27, 0xC4, 0x69, 0xFF}}}, ++ {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, ++ {{{67, -74, 158},0, {3, 18},{0xC5, 0x59, 0x45, 0xFF}}}, ++ {{{36, -54, 109},0, {7, 16},{0xAD, 0x3A, 0x4D, 0xFF}}}, ++ {{{28, -20, 73},0, {10, 13},{0xA5, 0x29, 0x4F, 0xFF}}}, ++ {{{-3, -58, 51},0, {12, 16},{0x8D, 0xCA, 0xF6, 0xFF}}}, ++ {{{21, -100, 106},0, {8, 20},{0x8B, 0xD8, 0xE2, 0xFF}}}, ++ {{{16, -62, 22},0, {15, 16},{0x9E, 0xAF, 0x1, 0xFF}}}, ++ {{{8, -13, 1},0, {16, 12},{0x81, 0xF5, 0x0, 0xFF}}}, ++ {{{29, -96, 8},0, {16, 19},{0x8D, 0xC9, 0x4, 0xFF}}}, ++ {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, ++ {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, ++ {{{21, -117, -87},0, {8, 20},{0x8A, 0xF6, 0xD2, 0xFF}}}, ++ {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, ++ {{{-3, -66, -40},0, {12, 16},{0x81, 0x4, 0x0, 0xFF}}}, ++ {{{36, -72, -98},0, {7, 16},{0xA9, 0x20, 0xA9, 0xFF}}}, ++ {{{28, -33, -69},0, {10, 13},{0xA5, 0x1B, 0xAB, 0xFF}}}, ++ {{{85, -26, -97},0, {8, 11},{0x6, 0xF9, 0x81, 0xFF}}}, ++ {{{67, -100, -143},0, {3, 18},{0xEB, 0x2D, 0x8B, 0xFF}}}, ++ {{{114, -68, -124},0, {5, 16},{0x5C, 0x21, 0xAF, 0xFF}}}, ++ {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, ++ {{{130, -60, -109},0, {7, 15},{0xD1, 0x0, 0x8A, 0xFF}}}, ++ {{{181, -51, -106},0, {7, 14},{0x22, 0x2F, 0x8F, 0xFF}}}, ++ {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, ++ {{{206, -25, -72},0, {10, 12},{0x26, 0x38, 0x94, 0xFF}}}, ++ {{{194, 14, -108},0, {7, 9},{0xEB, 0x16, 0x85, 0xFF}}}, ++ {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, ++ {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, ++ {{{152, -4, -97},0, {8, 11},{0x27, 0xE1, 0x8B, 0xFF}}}, ++ {{{148, 50, -90},0, {9, 6},{0x3D, 0x48, 0xAB, 0xFF}}}, ++ {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, ++ {{{141, 76, -59},0, {12, 4},{0x4A, 0x5C, 0xD1, 0xFF}}}, ++ {{{135, 78, -74},0, {11, 4},{0x33, 0x65, 0xC6, 0xFF}}}, ++ {{{117, 92, -42},0, {13, 3},{0x24, 0x75, 0xDF, 0xFF}}}, ++ {{{112, 92, -57},0, {12, 3},{0x2, 0x73, 0xCA, 0xFF}}}, ++ {{{162, 76, -44},0, {13, 4},{0x41, 0x5F, 0xCA, 0xFF}}}, ++ {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, ++ {{{191, 44, -51},0, {12, 7},{0x46, 0x45, 0xAF, 0xFF}}}, ++ {{{200, 46, -33},0, {14, 7},{0x56, 0x49, 0xC6, 0xFF}}}, ++ {{{208, 49, -4},0, {16, 7},{0x58, 0x5C, 0xF8, 0xFF}}}, ++ {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, ++ {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, ++ {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, ++ {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, ++ {{{82, 97, -9},0, {16, 3},{0x19, 0x79, 0xE2, 0xFF}}}, ++ {{{120, 99, -25},0, {15, 2},{0xD, 0x71, 0xC8, 0xFF}}}, ++ {{{84, 102, -14},0, {16, 2},{0xE, 0x7C, 0x15, 0xFF}}}, ++ {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, ++ {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, ++ {{{84, 103, -4},0, {16, 2},{0xEE, 0x65, 0xB5, 0xFF}}}, ++ {{{85, 102, 8},0, {15, 2},{0xEF, 0x7E, 0x8, 0xFF}}}, ++ {{{117, 98, 25},0, {13, 3},{0x24, 0x79, 0xC, 0xFF}}}, ++ {{{112, 100, 40},0, {12, 3},{0x2, 0x7B, 0x21, 0xFF}}}, ++ {{{88, 102, 21},0, {14, 2},{0xCF, 0x6D, 0x2C, 0xFF}}}, ++ {{{135, 89, 59},0, {11, 4},{0x33, 0x6D, 0x28, 0xFF}}}, ++ {{{141, 85, 45},0, {12, 4},{0x4A, 0x63, 0x1F, 0xFF}}}, ++ {{{148, 64, 80},0, {9, 6},{0x2B, 0x56, 0x54, 0xFF}}}, ++ {{{163, 52, 68},0, {10, 7},{0x46, 0x44, 0x51, 0xFF}}}, ++ {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, ++ {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, ++ {{{194, 32, 104},0, {7, 9},{0xDB, 0x23, 0x74, 0xFF}}}, ++ {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, ++ {{{152, 13, 96},0, {8, 11},{0x18, 0x55, 0x5B, 0xFF}}}, ++ {{{206, -12, 75},0, {10, 12},{0x76, 0x1F, 0x23, 0xFF}}}, ++ {{{181, -31, 113},0, {7, 14},{0x22, 0x42, 0x67, 0xFF}}}, ++ {{{231, -40, 64},0, {11, 15},{0x5D, 0xF0, 0x55, 0xFF}}}, ++ {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, ++ {{{205, -118, 157},0, {4, 22},{0xF1, 0x14, 0x7D, 0xFF}}}, ++ {{{130, -41, 117},0, {7, 15},{0xBB, 0x1, 0x6B, 0xFF}}}, ++ {{{161, -108, 142},0, {5, 21},{0xBB, 0xE8, 0x68, 0xFF}}}, ++ {{{156, -137, 122},0, {7, 23},{0x9C, 0xC2, 0x30, 0xFF}}}, ++ {{{110, -48, 75},0, {10, 16},{0x27, 0xC4, 0x69, 0xFF}}}, ++ {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, ++ {{{123, -93, 99},0, {8, 19},{0x4F, 0x2, 0x9C, 0xFF}}}, ++ {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, ++ {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, ++ {{{138, -60, 158},0, {3, 17},{0x53, 0x51, 0xCC, 0xFF}}}, ++ {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, ++ {{{114, -45, 134},0, {5, 16},{0x6C, 0x43, 0xF6, 0xFF}}}, ++ {{{67, -74, 158},0, {3, 18},{0xC5, 0x59, 0x45, 0xFF}}}, ++ {{{119, -76, 183},0, {1, 19},{0xDC, 0x48, 0x62, 0xFF}}}, ++ {{{59, -120, 154},0, {4, 22},{0x93, 0xC1, 0x13, 0xFF}}}, ++ {{{36, -54, 109},0, {7, 16},{0xAD, 0x3A, 0x4D, 0xFF}}}, ++ {{{21, -100, 106},0, {8, 20},{0x8B, 0xD8, 0xE2, 0xFF}}}, ++ {{{101, -126, 109},0, {8, 22},{0xC, 0x90, 0xC5, 0xFF}}}, ++ {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, ++ {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, ++ {{{16, -62, 22},0, {15, 16},{0x9E, 0xAF, 0x1, 0xFF}}}, ++ {{{29, -96, 8},0, {16, 19},{0x8D, 0xC9, 0x4, 0xFF}}}, ++ {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, ++ {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, ++ {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, ++ {{{16, -65, -11},0, {15, 16},{0x8E, 0xC7, 0x3, 0xFF}}}, ++ {{{21, -117, -87},0, {8, 20},{0x8A, 0xF6, 0xD2, 0xFF}}}, ++ {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, ++ {{{75, -131, -56},0, {11, 21},{0xCC, 0x9C, 0x3B, 0xFF}}}, ++ {{{101, -143, -86},0, {8, 22},{0xB, 0x87, 0x25, 0xFF}}}, ++ {{{59, -145, -131},0, {4, 22},{0xE5, 0xB3, 0x9E, 0xFF}}}, ++ {{{36, -72, -98},0, {7, 16},{0xA9, 0x20, 0xA9, 0xFF}}}, ++ {{{67, -100, -143},0, {3, 18},{0xEB, 0x2D, 0x8B, 0xFF}}}, ++ {{{119, -107, -167},0, {1, 19},{0xD3, 0x1E, 0x8D, 0xFF}}}, ++ {{{138, -86, -145},0, {3, 17},{0x59, 0x39, 0xBA, 0xFF}}}, ++ {{{114, -68, -124},0, {5, 16},{0x5C, 0x21, 0xAF, 0xFF}}}, ++ {{{151, -105, -120},0, {5, 19},{0x7D, 0x16, 0x8, 0xFF}}}, ++ {{{123, -109, -82},0, {8, 19},{0x5E, 0x20, 0x50, 0xFF}}}, ++ {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, ++ {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, ++ {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, ++ {{{130, -60, -109},0, {7, 15},{0xD1, 0x0, 0x8A, 0xFF}}}, ++ {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, ++ {{{110, -60, -66},0, {10, 16},{0x20, 0xBE, 0x98, 0xFF}}}, ++ {{{161, -131, -121},0, {5, 21},{0xBB, 0xD6, 0x9E, 0xFF}}}, ++ {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, ++ {{{181, -51, -106},0, {7, 14},{0x22, 0x2F, 0x8F, 0xFF}}}, ++ {{{236, -112, -123},0, {5, 19},{0x29, 0x43, 0x9C, 0xFF}}}, ++ {{{231, -50, -56},0, {11, 15},{0x34, 0xDC, 0x92, 0xFF}}}, ++ {{{206, -25, -72},0, {10, 12},{0x26, 0x38, 0x94, 0xFF}}}, ++ {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, ++ {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, ++ {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, ++ {{{194, 14, -108},0, {7, 9},{0xEB, 0x16, 0x85, 0xFF}}}, ++ {{{231, 35, -109},0, {7, 7},{0xC2, 0x64, 0xD0, 0xFF}}}, ++ {{{195, 16, -103},0, {8, 9},{0xC8, 0x6E, 0xE0, 0xFF}}}, ++ {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, ++ {{{231, 35, -109},0, {7, 7},{0xC2, 0x64, 0xD0, 0xFF}}}, ++ {{{209, 41, -73},0, {10, 7},{0x2D, 0x76, 0xF, 0xFF}}}, ++ {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, ++ {{{206, 38, -76},0, {10, 7},{0xC1, 0x5C, 0xC2, 0xFF}}}, ++ {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, ++ {{{191, 44, -51},0, {12, 7},{0x46, 0x45, 0xAF, 0xFF}}}, ++ {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, ++ {{{200, 46, -33},0, {14, 7},{0x56, 0x49, 0xC6, 0xFF}}}, ++ {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, ++ {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, ++ {{{279, -25, 2},0, {16, 13},{0x5E, 0x56, 0xF9, 0xFF}}}, ++ {{{208, 49, -4},0, {16, 7},{0x58, 0x5C, 0xF8, 0xFF}}}, ++ {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, ++ {{{162, 82, 30},0, {13, 4},{0x41, 0x67, 0x24, 0xFF}}}, ++ {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, ++ {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, ++ {{{121, 105, -9},0, {16, 2},{0xD, 0x7E, 0xF5, 0xFF}}}, ++ {{{120, 102, 8},0, {15, 2},{0x23, 0x79, 0x11, 0xFF}}}, ++ {{{168, 85, -7},0, {16, 4},{0x3D, 0x6F, 0xF7, 0xFF}}}, ++ {{{162, 82, 30},0, {13, 4},{0x41, 0x67, 0x24, 0xFF}}}, ++ {{{117, 98, 25},0, {13, 3},{0x24, 0x79, 0xC, 0xFF}}}, ++ {{{141, 85, 45},0, {12, 4},{0x4A, 0x63, 0x1F, 0xFF}}}, ++ {{{163, 52, 68},0, {10, 7},{0x46, 0x44, 0x51, 0xFF}}}, ++ {{{190, 50, 50},0, {12, 7},{0x40, 0x6D, 0xE, 0xFF}}}, ++ {{{180, 27, 70},0, {10, 9},{0xE6, 0x6B, 0x40, 0xFF}}}, ++ {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, ++ {{{191, 52, 42},0, {12, 7},{0x50, 0x5B, 0xDA, 0xFF}}}, ++ {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, ++ {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, ++ {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, ++ {{{206, 51, 68},0, {10, 7},{0xC1, 0x65, 0x2D, 0xFF}}}, ++ {{{231, 54, 102},0, {7, 7},{0xC2, 0x6B, 0x1E, 0xFF}}}, ++ {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, ++ {{{231, 54, 102},0, {7, 7},{0xC2, 0x6B, 0x1E, 0xFF}}}, ++ {{{237, 56, 105},0, {7, 7},{0x70, 0x3B, 0xD, 0xFF}}}, ++ {{{194, 32, 104},0, {7, 9},{0xDB, 0x23, 0x74, 0xFF}}}, ++ {{{195, 34, 99},0, {8, 9},{0xC8, 0x71, 0xC, 0xFF}}}, ++ {{{158, 18, 91},0, {8, 10},{0xFB, 0x29, 0x78, 0xFF}}}, ++ {{{206, -12, 75},0, {10, 12},{0x76, 0x1F, 0x23, 0xFF}}}, ++ {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, ++ {{{242, -12, 59},0, {11, 12},{0x54, 0x37, 0x4D, 0xFF}}}, ++ {{{231, -40, 64},0, {11, 15},{0x5D, 0xF0, 0x55, 0xFF}}}, ++ {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, ++ {{{288, -116, 50},0, {13, 21},{0xF9, 0xD0, 0x75, 0xFF}}}, ++ {{{209, -76, 56},0, {12, 18},{0x4B, 0x9A, 0xF, 0xFF}}}, ++ {{{246, -121, 92},0, {9, 22},{0x4A, 0xE9, 0x9B, 0xFF}}}, ++ {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, ++ {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, ++ {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, ++ {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, ++ {{{236, -89, 140},0, {5, 19},{0x31, 0x52, 0x54, 0xFF}}}, ++ {{{247, -127, 159},0, {4, 23},{0x6, 0xFC, 0x7F, 0xFF}}}, ++ {{{205, -118, 157},0, {4, 22},{0xF1, 0x14, 0x7D, 0xFF}}}, ++ {{{195, -156, 140},0, {6, 25},{0xDF, 0x97, 0x40, 0xFF}}}, ++ {{{161, -108, 142},0, {5, 21},{0xBB, 0xE8, 0x68, 0xFF}}}, ++ {{{156, -137, 122},0, {7, 23},{0x9C, 0xC2, 0x30, 0xFF}}}, ++ {{{168, -146, 100},0, {9, 24},{0xCB, 0x95, 0xD4, 0xFF}}}, ++ {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, ++ {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, ++ {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, ++ {{{143, -127, 49},0, {13, 22},{0x4C, 0x1D, 0x62, 0xFF}}}, ++ {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, ++ {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, ++ {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, ++ {{{106, -57, 50},0, {12, 17},{0x2C, 0x8B, 0x19, 0xFF}}}, ++ {{{101, -126, 109},0, {8, 22},{0xC, 0x90, 0xC5, 0xFF}}}, ++ {{{75, -119, 78},0, {11, 21},{0xEE, 0xB5, 0x9B, 0xFF}}}, ++ {{{123, -93, 99},0, {8, 19},{0x4F, 0x2, 0x9C, 0xFF}}}, ++ {{{140, -120, 153},0, {4, 22},{0x24, 0x86, 0xFC, 0xFF}}}, ++ {{{151, -82, 136},0, {5, 19},{0x31, 0x3, 0x8B, 0xFF}}}, ++ {{{222, -77, 221},0, {-2, 19},{0x6F, 0xE8, 0x39, 0xFF}}}, ++ {{{138, -60, 158},0, {3, 17},{0x53, 0x51, 0xCC, 0xFF}}}, ++ {{{119, -76, 183},0, {1, 19},{0xDC, 0x48, 0x62, 0xFF}}}, ++ {{{118, -113, 182},0, {2, 22},{0xCB, 0x8D, 0x9, 0xFF}}}, ++ {{{59, -120, 154},0, {4, 22},{0x93, 0xC1, 0x13, 0xFF}}}, ++ {{{63, -95, 54},0, {12, 19},{0xF8, 0x81, 0x0, 0xFF}}}, ++ {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, ++ {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, ++ {{{98, -198, 17},0, {16, 28},{0xAA, 0xA3, 0x8, 0xFF}}}, ++ {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, ++ {{{58, -149, 13},0, {16, 24},{0x96, 0xBA, 0x6, 0xFF}}}, ++ {{{63, -103, -37},0, {12, 19},{0xDB, 0x90, 0xD0, 0xFF}}}, ++ {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, ++ {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, ++ {{{75, -131, -56},0, {11, 21},{0xCC, 0x9C, 0x3B, 0xFF}}}, ++ {{{101, -143, -86},0, {8, 22},{0xB, 0x87, 0x25, 0xFF}}}, ++ {{{123, -109, -82},0, {8, 19},{0x5E, 0x20, 0x50, 0xFF}}}, ++ {{{140, -145, -130},0, {4, 22},{0x46, 0x97, 0x11, 0xFF}}}, ++ {{{118, -143, -159},0, {2, 22},{0xE3, 0xF3, 0x85, 0xFF}}}, ++ {{{59, -145, -131},0, {4, 22},{0xE5, 0xB3, 0x9E, 0xFF}}}, ++ {{{119, -107, -167},0, {1, 19},{0xD3, 0x1E, 0x8D, 0xFF}}}, ++ {{{222, -114, -205},0, {-2, 19},{0x54, 0xE3, 0xA6, 0xFF}}}, ++ {{{138, -86, -145},0, {3, 17},{0x59, 0x39, 0xBA, 0xFF}}}, ++ {{{151, -105, -120},0, {5, 19},{0x7D, 0x16, 0x8, 0xFF}}}, ++ {{{237, 37, -113},0, {7, 7},{0x2D, 0x26, 0x8F, 0xFF}}}, ++ {{{209, 41, -73},0, {10, 7},{0x2D, 0x76, 0xF, 0xFF}}}, ++ {{{203, 9, -49},0, {12, 10},{0x68, 0x1A, 0xBC, 0xFF}}}, ++ {{{209, 53, 65},0, {10, 7},{0x2D, 0x71, 0xDB, 0xFF}}}, ++ {{{237, 56, 105},0, {7, 7},{0x70, 0x3B, 0xD, 0xFF}}}, ++ {{{203, 18, 47},0, {12, 10},{0x5F, 0x52, 0x16, 0xFF}}}, ++ {{{158, 2, -93},0, {8, 10},{0xFB, 0x14, 0x83, 0xFF}}}, ++ {{{163, 40, -76},0, {10, 7},{0x46, 0x35, 0xA4, 0xFF}}}, ++ {{{180, 14, -73},0, {10, 9},{0xE6, 0x5E, 0xAE, 0xFF}}}, ++ {{{190, 41, -58},0, {12, 7},{0x40, 0x69, 0xDF, 0xFF}}}, ++ {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, ++ {{{242, -12, 59},0, {11, 12},{0x54, 0x37, 0x4D, 0xFF}}}, ++ {{{265, -18, 30},0, {14, 13},{0x5A, 0x52, 0x26, 0xFF}}}, ++ {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, ++ {{{330, -85, 7},0, {16, 18},{0x64, 0x4E, 0xFA, 0xFF}}}, ++ {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, ++ {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, ++ {{{315, -86, 45},0, {14, 18},{0x4A, 0x2E, 0x5D, 0xFF}}}, ++ {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, ++ {{{348, -151, 40},0, {14, 24},{0x13, 0xED, 0x7C, 0xFF}}}, ++ {{{288, -116, 50},0, {13, 21},{0xF9, 0xD0, 0x75, 0xFF}}}, ++ {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, ++ {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, ++ {{{209, -76, 56},0, {12, 18},{0x4B, 0x9A, 0xF, 0xFF}}}, ++ {{{218, -154, 99},0, {8, 25},{0x17, 0xA0, 0xB1, 0xFF}}}, ++ {{{246, -121, 92},0, {9, 22},{0x4A, 0xE9, 0x9B, 0xFF}}}, ++ {{{257, -155, 119},0, {7, 25},{0x21, 0x8D, 0xD6, 0xFF}}}, ++ {{{275, -129, 110},0, {8, 23},{0x35, 0xE8, 0x8F, 0xFF}}}, ++ {{{250, -95, 111},0, {8, 20},{0x6C, 0x38, 0xDC, 0xFF}}}, ++ {{{276, -109, 123},0, {7, 21},{0x3B, 0x60, 0xC6, 0xFF}}}, ++ {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, ++ {{{365, -131, 153},0, {4, 23},{0x7B, 0xE5, 0xD, 0xFF}}}, ++ {{{247, -127, 159},0, {4, 23},{0x6, 0xFC, 0x7F, 0xFF}}}, ++ {{{365, -131, 153},0, {4, 23},{0x7B, 0xE5, 0xD, 0xFF}}}, ++ {{{267, -104, 144},0, {5, 21},{0x17, 0x72, 0x34, 0xFF}}}, ++ {{{241, -155, 144},0, {5, 25},{0x0, 0x93, 0x41, 0xFF}}}, ++ {{{195, -156, 140},0, {6, 25},{0xDF, 0x97, 0x40, 0xFF}}}, ++ {{{257, -155, 119},0, {7, 25},{0x21, 0x8D, 0xD6, 0xFF}}}, ++ {{{218, -154, 99},0, {8, 25},{0x17, 0xA0, 0xB1, 0xFF}}}, ++ {{{168, -146, 100},0, {9, 24},{0xCB, 0x95, 0xD4, 0xFF}}}, ++ {{{181, -93, 43},0, {13, 19},{0xF3, 0x8B, 0xCF, 0xFF}}}, ++ {{{275, -129, 110},0, {8, 23},{0x35, 0xE8, 0x8F, 0xFF}}}, ++ {{{276, -109, 123},0, {7, 21},{0x3B, 0x60, 0xC6, 0xFF}}}, ++ {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, ++ {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, ++ {{{181, -99, -26},0, {13, 19},{0x17, 0x89, 0x25, 0xFF}}}, ++ {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, ++ {{{143, -133, -26},0, {13, 22},{0x44, 0xF9, 0x95, 0xFF}}}, ++ {{{158, -106, 9},0, {16, 21},{0x54, 0xA1, 0x9, 0xFF}}}, ++ {{{165, -184, -13},0, {14, 26},{0x3D, 0xF1, 0x91, 0xFF}}}, ++ {{{143, -133, -26},0, {13, 22},{0x44, 0xF9, 0x95, 0xFF}}}, ++ {{{184, -179, 16},0, {16, 26},{0x74, 0x34, 0xFB, 0xFF}}}, ++ {{{165, -179, 44},0, {14, 26},{0x43, 0x1F, 0x68, 0xFF}}}, ++ {{{143, -127, 49},0, {13, 22},{0x4C, 0x1D, 0x62, 0xFF}}}, ++ {{{125, -188, 49},0, {13, 27},{0xEA, 0xD2, 0x74, 0xFF}}}, ++ {{{87, -139, 54},0, {13, 23},{0xD5, 0xE2, 0x74, 0xFF}}}, ++ {{{98, -198, 17},0, {16, 28},{0xAA, 0xA3, 0x8, 0xFF}}}, ++ {{{157, -234, 20},0, {16, 31},{0xCD, 0x8C, 0xA, 0xFF}}}, ++ {{{125, -194, -16},0, {13, 27},{0xEA, 0xBE, 0x96, 0xFF}}}, ++ {{{87, -146, -29},0, {13, 23},{0xD8, 0xCC, 0x93, 0xFF}}}, ++ {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, ++ {{{180, -231, 3},0, {15, 30},{0x36, 0xB2, 0xAC, 0xFF}}}, ++ {{{207, -223, 19},0, {16, 30},{0x5A, 0x46, 0xC8, 0xFF}}}, ++ {{{180, -227, 38},0, {15, 30},{0xFE, 0xA9, 0x5D, 0xFF}}}, ++ {{{157, -234, 20},0, {16, 31},{0xCD, 0x8C, 0xA, 0xFF}}}, ++ {{{243, -262, 23},0, {16, 33},{0x10, 0x82, 0xB, 0xFF}}}, ++ {{{180, -227, 38},0, {15, 30},{0xFE, 0xA9, 0x5D, 0xFF}}}, ++ {{{180, -231, 3},0, {15, 30},{0x36, 0xB2, 0xAC, 0xFF}}}, ++ {{{125, -194, -16},0, {13, 27},{0xEA, 0xBE, 0x96, 0xFF}}}, ++ {{{207, -223, 19},0, {16, 30},{0x5A, 0x46, 0xC8, 0xFF}}}, ++ {{{279, -25, 2},0, {16, 13},{0x5E, 0x56, 0xF9, 0xFF}}}, ++ {{{200, 51, 24},0, {14, 7},{0x5A, 0x4F, 0x2A, 0xFF}}}, ++ {{{265, -18, 30},0, {14, 13},{0x5A, 0x52, 0x26, 0xFF}}}, ++ {{{330, -85, 7},0, {16, 18},{0x64, 0x4E, 0xFA, 0xFF}}}, ++ {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, ++ {{{315, -92, -30},0, {14, 18},{0x4A, 0x1D, 0x9D, 0xFF}}}, ++ {{{368, -138, 12},0, {16, 23},{0x6C, 0x43, 0xFB, 0xFF}}}, ++ {{{363, -145, -2},0, {15, 23},{0x58, 0x24, 0xAC, 0xFF}}}, ++ {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, ++ {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, ++ {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, ++ {{{363, -142, 27},0, {15, 23},{0x59, 0x2F, 0x4E, 0xFF}}}, ++ {{{348, -151, 40},0, {14, 24},{0x13, 0xED, 0x7C, 0xFF}}}, ++ {{{333, -169, 15},0, {16, 25},{0xCC, 0x8C, 0xA, 0xFF}}}, ++ {{{251, -139, 12},0, {16, 23},{0xD7, 0x88, 0xA, 0xFF}}}, ++ {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, ++ {{{288, -122, -29},0, {13, 21},{0xFA, 0xBD, 0x94, 0xFF}}}, ++ {{{181, -99, -26},0, {13, 19},{0x17, 0x89, 0x25, 0xFF}}}, ++ {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, ++ {{{218, -169, -71},0, {8, 25},{0xFC, 0xA1, 0x54, 0xFF}}}, ++ {{{168, -161, -73},0, {9, 24},{0xC9, 0xA0, 0x3F, 0xFF}}}, ++ {{{106, -65, -40},0, {12, 17},{0x2A, 0x8D, 0xDE, 0xFF}}}, ++ {{{156, -156, -96},0, {7, 23},{0xA9, 0xAE, 0xD5, 0xFF}}}, ++ {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, ++ {{{161, -131, -121},0, {5, 21},{0xBB, 0xD6, 0x9E, 0xFF}}}, ++ {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, ++ {{{247, -153, -135},0, {4, 23},{0x3, 0xE4, 0x84, 0xFF}}}, ++ {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, ++ {{{205, -144, -134},0, {4, 22},{0xF1, 0xFF, 0x82, 0xFF}}}, ++ {{{236, -112, -123},0, {5, 19},{0x29, 0x43, 0x9C, 0xFF}}}, ++ {{{267, -127, -124},0, {5, 21},{0x29, 0x65, 0xBE, 0xFF}}}, ++ {{{250, -113, -93},0, {8, 20},{0x6D, 0x41, 0xFC, 0xFF}}}, ++ {{{231, -50, -56},0, {11, 15},{0x34, 0xDC, 0x92, 0xFF}}}, ++ {{{246, -136, -70},0, {9, 22},{0x43, 0xFB, 0x6C, 0xFF}}}, ++ {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, ++ {{{288, -122, -29},0, {13, 21},{0xFA, 0xBD, 0x94, 0xFF}}}, ++ {{{315, -92, -30},0, {14, 18},{0x4A, 0x1D, 0x9D, 0xFF}}}, ++ {{{242, -22, -56},0, {11, 12},{0x3A, 0xF, 0x90, 0xFF}}}, ++ {{{265, -23, -27},0, {14, 13},{0x5A, 0x4A, 0xCC, 0xFF}}}, ++ {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, ++ {{{363, -145, -2},0, {15, 23},{0x58, 0x24, 0xAC, 0xFF}}}, ++ {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, ++ {{{333, -169, 15},0, {16, 25},{0xCC, 0x8C, 0xA, 0xFF}}}, ++ {{{348, -156, -14},0, {14, 24},{0x19, 0xD6, 0x8B, 0xFF}}}, ++ {{{406, -212, 19},0, {16, 29},{0x4C, 0xA2, 0xD9, 0xFF}}}, ++ {{{195, -178, -110},0, {6, 25},{0xDF, 0x8E, 0xD3, 0xFF}}}, ++ {{{218, -169, -71},0, {8, 25},{0xFC, 0xA1, 0x54, 0xFF}}}, ++ {{{168, -161, -73},0, {9, 24},{0xC9, 0xA0, 0x3F, 0xFF}}}, ++ {{{257, -174, -90},0, {7, 25},{0x28, 0x9B, 0x41, 0xFF}}}, ++ {{{241, -178, -115},0, {5, 25},{0x1, 0x8B, 0xCE, 0xFF}}}, ++ {{{247, -153, -135},0, {4, 23},{0x3, 0xE4, 0x84, 0xFF}}}, ++ {{{365, -155, -128},0, {4, 23},{0x74, 0xF6, 0xCE, 0xFF}}}, ++ {{{267, -127, -124},0, {5, 21},{0x29, 0x65, 0xBE, 0xFF}}}, ++ {{{276, -129, -102},0, {7, 21},{0x3A, 0x6A, 0x27, 0xFF}}}, ++ {{{250, -113, -93},0, {8, 20},{0x6D, 0x41, 0xFC, 0xFF}}}, ++ {{{275, -146, -86},0, {8, 23},{0x40, 0x1D, 0x6A, 0xFF}}}, ++ {{{246, -136, -70},0, {9, 22},{0x43, 0xFB, 0x6C, 0xFF}}}, ++ {{{209, -84, -42},0, {12, 18},{0x48, 0x98, 0xFC, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_4[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 2, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(8, 3, 9, 0), ++ gsSP1Triangle(10, 9, 3, 0), ++ gsSP1Triangle(10, 3, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(12, 11, 8, 0), ++ gsSP1Triangle(12, 8, 13, 0), ++ gsSP1Triangle(8, 14, 13, 0), ++ gsSP1Triangle(15, 14, 8, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 4, 0), ++ gsSP1Triangle(9, 8, 5, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 0, 4, 0), ++ gsSP1Triangle(6, 1, 0, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(10, 9, 6, 0), ++ gsSP1Triangle(10, 6, 4, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(6, 3, 4, 0), ++ gsSP1Triangle(7, 3, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(1, 6, 5, 0), ++ gsSP1Triangle(7, 6, 1, 0), ++ gsSP1Triangle(7, 1, 8, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(9, 8, 5, 0), ++ gsSP1Triangle(5, 10, 9, 0), ++ gsSP1Triangle(5, 11, 10, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(11, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(3, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(11, 7, 12, 0), ++ gsSP1Triangle(7, 13, 12, 0), ++ gsSP1Triangle(13, 7, 5, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(3, 0, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(7, 3, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(10, 7, 8, 0), ++ gsSP1Triangle(7, 10, 11, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 160, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 176, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(0, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 192, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 208, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(8, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 224, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(1, 4, 5, 0), ++ gsSP1Triangle(1, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 7, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 240, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(3, 5, 6, 0), ++ gsSP1Triangle(7, 3, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 3, 7, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(7, 13, 10, 0), ++ gsSP1Triangle(14, 13, 7, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 256, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(3, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(9, 13, 12, 0), ++ gsSP1Triangle(9, 14, 13, 0), ++ gsSP1Triangle(15, 14, 9, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 272, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(9, 13, 12, 0), ++ gsSP1Triangle(14, 13, 9, 0), ++ gsSP1Triangle(15, 14, 9, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 288, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(1, 9, 10, 0), ++ gsSP1Triangle(4, 9, 1, 0), ++ gsSP1Triangle(6, 9, 4, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 304, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(11, 13, 7, 0), ++ gsSP1Triangle(6, 7, 13, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 318, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(10, 5, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 334, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 350, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(6, 4, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(1, 3, 5, 0), ++ gsSP1Triangle(9, 1, 5, 0), ++ gsSP1Triangle(10, 1, 9, 0), ++ gsSP1Triangle(11, 8, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 14, 12, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 366, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(11, 12, 2, 0), ++ gsSP1Triangle(10, 2, 1, 0), ++ gsSP1Triangle(1, 13, 10, 0), ++ gsSP1Triangle(13, 1, 14, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(4, 15, 14, 0), ++ gsSP1Triangle(15, 4, 6, 0), ++ gsSP1Triangle(6, 9, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 382, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(3, 5, 1, 0), ++ gsSP1Triangle(5, 2, 1, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(9, 10, 6, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 398, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(10, 7, 11, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 414, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 3, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 6, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(10, 13, 9, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_4 + 430, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(6, 13, 14, 0), ++ gsSP1Triangle(6, 14, 4, 0), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSP1Triangle(9, 13, 6, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(7, 9, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_mesh_layer_1_vtx_5[3] = { ++ {{{188, 57, -19},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{154, 57, 39},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{121, 57, -19},0, {-16, 1008},{0x0, 0x81, 0x0, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_tri_5[] = { ++ gsSPVertex(super_sonic_000_displaylist_mesh_layer_1_vtx_5 + 0, 3, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_003_mesh_layer_1_vtx_0[31] = { ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, -8},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, -11},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{49, -9, -8},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 3},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFB, 0x0, 0x81, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFA, 0x97, 0x47, 0xFF}}}, ++ {{{48, 0, 7},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{2, 0, 6},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{3, -8, 3},0, {-16, -16},{0xFA, 0x97, 0x47, 0xFF}}}, ++ {{{2, 9, 3},0, {-16, -16},{0xFA, 0x69, 0x47, 0xFF}}}, ++ {{{48, 10, 3},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{2, 9, -7},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, ++ {{{-21, 7, -6},0, {-16, -16},{0xD6, 0x65, 0xC0, 0xFF}}}, ++ {{{-21, 0, -9},0, {-16, -16},{0xDE, 0x0, 0x86, 0xFF}}}, ++ {{{2, 0, -11},0, {-16, -16},{0xFB, 0x0, 0x81, 0xFF}}}, ++ {{{-21, -6, -6},0, {-16, -16},{0xD6, 0x9B, 0xC0, 0xFF}}}, ++ {{{3, -8, -7},0, {-16, -16},{0xFB, 0x97, 0xB9, 0xFF}}}, ++ {{{-21, -6, 2},0, {-16, -16},{0xCF, 0xA1, 0x44, 0xFF}}}, ++ {{{-21, 0, 4},0, {-16, -16},{0xCF, 0x0, 0x75, 0xFF}}}, ++ {{{-21, 7, 2},0, {-16, -16},{0xCF, 0x5F, 0x44, 0xFF}}}, ++ {{{-30, 0, -4},0, {-16, -16},{0x82, 0x0, 0xEE, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSP1Triangle(14, 13, 3, 0), ++ gsSP1Triangle(5, 14, 3, 0), ++ gsSP1Triangle(5, 15, 14, 0), ++ gsSP1Triangle(7, 15, 5, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSPVertex(super_sonic_000_offset_003_mesh_layer_1_vtx_0 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(2, 9, 10, 0), ++ gsSP1Triangle(11, 9, 2, 0), ++ gsSP1Triangle(2, 12, 11, 0), ++ gsSP1Triangle(1, 12, 2, 0), ++ gsSP1Triangle(3, 12, 1, 0), ++ gsSP1Triangle(13, 12, 3, 0), ++ gsSP1Triangle(3, 6, 13, 0), ++ gsSP1Triangle(6, 14, 13, 0), ++ gsSP1Triangle(7, 14, 6, 0), ++ gsSP1Triangle(7, 9, 14, 0), ++ gsSP1Triangle(11, 14, 9, 0), ++ gsSP1Triangle(12, 14, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 4},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -8},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 0, 8},0, {-16, -16},{0xFA, 0xFF, 0x7F, 0xFF}}}, ++ {{{65, -9, 4},0, {-16, -16},{0xF9, 0x96, 0x46, 0xFF}}}, ++ {{{63, 0, -12},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{65, -9, -8},0, {-16, -16},{0xF9, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_004_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_0[6] = { ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_004_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 1, 0, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(8, 4, 1, 0), ++ gsSP1Triangle(9, 4, 8, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 3, 5, 0), ++ gsSP1Triangle(10, 3, 9, 0), ++ gsSP1Triangle(2, 3, 10, 0), ++ gsSP1Triangle(11, 2, 10, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSP1Triangle(6, 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_004_mesh_layer_1_vtx_1[12] = { ++ {{{58, 15, 6},0, {-16, -16},{0xF4, 0x6A, 0x45, 0xFF}}}, ++ {{{58, 15, -9},0, {-16, -16},{0xF6, 0x6D, 0xBF, 0xFF}}}, ++ {{{22, 12, 4},0, {-16, -16},{0xF6, 0x69, 0x47, 0xFF}}}, ++ {{{22, 11, -9},0, {-16, -16},{0xF7, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 0, -17},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{22, 0, -13},0, {-16, -16},{0xF8, 0x1, 0x81, 0xFF}}}, ++ {{{19, -10, -9},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, -13, -10},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++ {{{19, -10, 4},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{58, -13, 6},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{58, 0, 12},0, {-16, -16},{0xF6, 0xFE, 0x7F, 0xFF}}}, ++ {{{22, 0, 9},0, {-16, -16},{0xF7, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_004_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_004_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(10, 2, 11, 0), ++ gsSP1Triangle(0, 2, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_003_mesh_layer_1_vtx_0[44] = { ++ {{{26, -25, -32},0, {-16, -16},{0x17, 0xC9, 0x90, 0xFF}}}, ++ {{{4, 24, -31},0, {-16, -16},{0xFC, 0x44, 0x95, 0xFF}}}, ++ {{{33, 7, -44},0, {-16, -16},{0xC4, 0xFD, 0x90, 0xFF}}}, ++ {{{-10, 26, -38},0, {-16, -16},{0xCC, 0x39, 0x9B, 0xFF}}}, ++ {{{17, -38, -39},0, {-16, -16},{0x1, 0xB5, 0x99, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, ++ {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0x1C, 0x89, 0x23, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, ++ {{{34, -41, 3},0, {-16, -16},{0x3D, 0x97, 0x26, 0xFF}}}, ++ {{{17, -1, 27},0, {-16, -16},{0xFE, 0xFD, 0x7F, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, ++ {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, ++ {{{58, -45, 7},0, {-16, -16},{0x6, 0x8A, 0x2E, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{80, -31, -61},0, {-16, -16},{0x1C, 0xB6, 0x9C, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{61, 12, -60},0, {-16, -16},{0xF5, 0x17, 0x84, 0xFF}}}, ++ {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, ++ {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, ++ {{{32, 63, -28},0, {-16, -16},{0xD0, 0x5C, 0xB6, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{12, 59, 10},0, {-16, -16},{0xAF, 0x55, 0x30, 0xFF}}}, ++ {{{-1, 39, 5},0, {-16, -16},{0xDB, 0x71, 0x2D, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, ++ {{{-18, 45, 8},0, {-16, -16},{0xBC, 0x64, 0x27, 0xFF}}}, ++ {{{-14, -14, -4},0, {-16, -16},{0x8B, 0xCE, 0x3, 0xFF}}}, ++ {{{5, -6, 36},0, {-16, -16},{0xEA, 0xF5, 0x7D, 0xFF}}}, ++ {{{27, -58, 6},0, {-16, -16},{0x1C, 0x89, 0x23, 0xFF}}}, ++ {{{36, 6, 42},0, {-16, -16},{0xE3, 0xEF, 0x7B, 0xFF}}}, ++ {{{86, 29, 41},0, {-16, -16},{0x40, 0x19, 0x6B, 0xFF}}}, ++ {{{59, 81, 8},0, {-16, -16},{0x14, 0x79, 0x21, 0xFF}}}, ++ {{{107, -26, 4},0, {-16, -16},{0x65, 0xBF, 0x29, 0xFF}}}, ++ {{{99, 40, -16},0, {-16, -16},{0x6C, 0x40, 0xEB, 0xFF}}}, ++ {{{100, -6, -46},0, {-16, -16},{0x6A, 0xFE, 0xB9, 0xFF}}}, ++ {{{90, 17, -46},0, {-16, -16},{0x48, 0x31, 0xA3, 0xFF}}}, ++ {{{57, 55, -37},0, {-16, -16},{0x17, 0x55, 0xA4, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_003_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 5, 0, 0), ++ gsSP1Triangle(0, 7, 6, 0), ++ gsSP1Triangle(0, 2, 7, 0), ++ gsSP1Triangle(2, 8, 7, 0), ++ gsSP1Triangle(8, 2, 9, 0), ++ gsSP1Triangle(9, 2, 1, 0), ++ gsSP1Triangle(10, 9, 1, 0), ++ gsSP1Triangle(1, 11, 10, 0), ++ gsSP1Triangle(11, 1, 3, 0), ++ gsSP1Triangle(3, 12, 11, 0), ++ gsSP1Triangle(3, 13, 12, 0), ++ gsSP1Triangle(4, 13, 3, 0), ++ gsSP1Triangle(14, 13, 4, 0), ++ gsSP1Triangle(5, 14, 4, 0), ++ gsSP1Triangle(15, 14, 5, 0), ++ gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(3, 12, 13, 0), ++ gsSP1Triangle(14, 3, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(2, 1, 14, 0), ++ gsSP1Triangle(14, 15, 2, 0), ++ gsSPVertex(super_sonic_000_displaylist_003_mesh_layer_1_vtx_0 + 32, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(6, 8, 11, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[58] = { ++ {{{2, 3, 26},0, {-16, -16},{0x4A, 0x34, 0x59, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0x75, 0xDD, 0x23, 0xFF}}}, ++ {{{26, -32, 6},0, {-16, -16},{0x37, 0xA8, 0x49, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0x63, 0xDE, 0xB8, 0xFF}}}, ++ {{{20, -27, -27},0, {-16, -16},{0x10, 0xB2, 0x9D, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x32, 0x3C, 0x9C, 0xFF}}}, ++ {{{1, 15, -37},0, {-16, -16},{0xE1, 0x1C, 0x88, 0xFF}}}, ++ {{{-3, 35, -9},0, {-16, -16},{0xCE, 0x72, 0x18, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x2B, 0x78, 0x0, 0xFF}}}, ++ {{{11, 5, 17},0, {-16, -16},{0x5, 0x1B, 0x7C, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{26, 16, 28},0, {-16, -16},{0xDE, 0xD, 0x7A, 0xFF}}}, ++ {{{70, 89, -20},0, {-16, -16},{0xF0, 0x7E, 0xF9, 0xFF}}}, ++ {{{6, 53, -9},0, {-16, -16},{0xAC, 0x5D, 0x17, 0xFF}}}, ++ {{{77, 41, 21},0, {-16, -16},{0x14, 0x28, 0x77, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{45, -34, 10},0, {-16, -16},{0xFF, 0x9F, 0x52, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{41, -37, -36},0, {-16, -16},{0xD8, 0x9D, 0xBB, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{25, -1, -44},0, {-16, -16},{0xE0, 0xE3, 0x89, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{11, 29, -52},0, {-16, -16},{0xDB, 0x1E, 0x8A, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{133, 28, -40},0, {-16, -16},{0x50, 0xD8, 0xA6, 0xFF}}}, ++ {{{141, 34, -7},0, {-16, -16},{0x74, 0xF8, 0x34, 0xFF}}}, ++ {{{83, -17, 10},0, {-16, -16},{0x43, 0xC1, 0x58, 0xFF}}}, ++ {{{89, -6, -27},0, {-16, -16},{0x65, 0xE3, 0xB8, 0xFF}}}, ++ {{{89, -47, -37},0, {-16, -16},{0x4B, 0xA4, 0xD4, 0xFF}}}, ++ {{{76, -18, -48},0, {-16, -16},{0x2D, 0x3, 0x89, 0xFF}}}, ++ {{{69, 10, -36},0, {-16, -16},{0x33, 0x1D, 0x8F, 0xFF}}}, ++ {{{26, 41, -41},0, {-16, -16},{0xF5, 0x41, 0x93, 0xFF}}}, ++ {{{78, 59, -34},0, {-16, -16},{0xF6, 0x16, 0x83, 0xFF}}}, ++ {{{119, 70, -42},0, {-16, -16},{0x32, 0x41, 0x9F, 0xFF}}}, ++ {{{121, 73, -21},0, {-16, -16},{0x4D, 0x5F, 0x22, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{-17, 40, -8},0, {-16, -16},{0x84, 0x15, 0x10, 0xFF}}}, ++ {{{-20, 22, -7},0, {-16, -16},{0x83, 0x0, 0x16, 0xFF}}}, ++ {{{2, 3, 26},0, {-16, -16},{0xA8, 0xF0, 0x5A, 0xFF}}}, ++ {{{-10, 14, -43},0, {-16, -16},{0x91, 0xF4, 0xC3, 0xFF}}}, ++ {{{-15, 4, -32},0, {-16, -16},{0x8D, 0xDE, 0xD6, 0xFF}}}, ++ {{{1, -33, -23},0, {-16, -16},{0x9F, 0xB3, 0xE2, 0xFF}}}, ++ {{{13, -39, -31},0, {-16, -16},{0xB5, 0xA4, 0xD4, 0xFF}}}, ++ {{{6, -38, 7},0, {-16, -16},{0xA7, 0xB0, 0x2A, 0xFF}}}, ++ {{{20, -46, 12},0, {-16, -16},{0xB9, 0xA1, 0x2D, 0xFF}}}, ++ {{{-6, -3, 17},0, {-16, -16},{0x97, 0xE2, 0x42, 0xFF}}}, ++}; ++ ++Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(2, 11, 10, 0), ++ gsSP1Triangle(2, 12, 11, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(4, 13, 12, 0), ++ gsSP1Triangle(4, 6, 13, 0), ++ gsSP1Triangle(6, 14, 13, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSP1Triangle(7, 10, 15, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(10, 2, 1, 0), ++ gsSP1Triangle(1, 12, 10, 0), ++ gsSP1Triangle(13, 12, 1, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 14, 3, 0), ++ gsSP1Triangle(4, 15, 3, 0), ++ gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 3, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(8, 9, 0, 0), ++ gsSP1Triangle(9, 1, 0, 0), ++ gsSP1Triangle(10, 1, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_vtx_0 + 48, 10, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(9, 4, 5, 0), ++ gsSP1Triangle(9, 1, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_006_mesh_layer_1_vtx_0[40] = { ++ {{{-21, 0, 10},0, {-16, -16},{0xDE, 0x0, 0x7A, 0xFF}}}, ++ {{{-30, 0, 5},0, {-16, -16},{0x82, 0x0, 0x12, 0xFF}}}, ++ {{{-21, -6, 7},0, {-16, -16},{0xD6, 0x9B, 0x40, 0xFF}}}, ++ {{{-21, 7, 7},0, {-16, -16},{0xD6, 0x65, 0x40, 0xFF}}}, ++ {{{2, 9, 8},0, {-16, -16},{0xFA, 0x69, 0x47, 0xFF}}}, ++ {{{2, 0, 12},0, {-16, -16},{0xFB, 0x0, 0x7F, 0xFF}}}, ++ {{{3, -8, 8},0, {-16, -16},{0xFB, 0x97, 0x47, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFA, 0x97, 0xB9, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{49, -9, 9},0, {-16, -16},{0xFC, 0x97, 0x47, 0xFF}}}, ++ {{{3, -8, -2},0, {-16, -16},{0xFA, 0x97, 0xB9, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{2, 0, -5},0, {-16, -16},{0xFA, 0x0, 0x81, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, ++ {{{-21, -6, -1},0, {-16, -16},{0xCF, 0xA1, 0xBC, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, -2},0, {-16, -16},{0xFB, 0x69, 0xB9, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++ {{{48, 10, 9},0, {-16, -16},{0xFB, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{48, 0, 12},0, {-16, -16},{0xFC, 0x0, 0x7F, 0xFF}}}, ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{49, -9, -2},0, {-16, -16},{0xFC, 0x97, 0xB9, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{48, 0, -6},0, {-16, -16},{0xFC, 0x0, 0x81, 0xFF}}}, ++ {{{-21, 7, -1},0, {-16, -16},{0xCF, 0x5F, 0xBC, 0xFF}}}, ++ {{{2, 9, -2},0, {-16, -16},{0xFA, 0x69, 0xB9, 0xFF}}}, ++ {{{-21, 0, -3},0, {-16, -16},{0xCF, 0x0, 0x8B, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_006_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(2, 5, 0, 0), ++ gsSP1Triangle(6, 5, 2, 0), ++ gsSP1Triangle(7, 6, 2, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(8, 2, 1, 0), ++ gsSP1Triangle(9, 8, 1, 0), ++ gsSP1Triangle(9, 1, 10, 0), ++ gsSP1Triangle(3, 10, 1, 0), ++ gsSP1Triangle(11, 10, 3, 0), ++ gsSP1Triangle(4, 11, 3, 0), ++ gsSP1Triangle(12, 11, 4, 0), ++ gsSP1Triangle(13, 12, 4, 0), ++ gsSP1Triangle(13, 4, 5, 0), ++ gsSP1Triangle(14, 13, 5, 0), ++ gsSP1Triangle(6, 14, 5, 0), ++ gsSP1Triangle(15, 14, 6, 0), ++ gsSP1Triangle(15, 6, 7, 0), ++ gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(2, 6, 5, 0), ++ gsSP1Triangle(7, 4, 5, 0), ++ gsSP1Triangle(3, 4, 7, 0), ++ gsSP1Triangle(8, 3, 7, 0), ++ gsSP1Triangle(9, 3, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 1, 0), ++ gsSP1Triangle(15, 14, 1, 0), ++ gsSP1Triangle(15, 1, 0, 0), ++ gsSPVertex(super_sonic_000_offset_006_mesh_layer_1_vtx_0 + 32, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 0, 13},0, {-16, -16},{0xFA, 0x0, 0x7F, 0xFF}}}, ++ {{{65, -9, 9},0, {-16, -16},{0xF9, 0x97, 0x47, 0xFF}}}, ++ {{{65, -9, -3},0, {-16, -16},{0xF9, 0x96, 0xBA, 0xFF}}}, ++ {{{63, 0, -7},0, {-16, -16},{0xFA, 0xFF, 0x81, 0xFF}}}, ++ {{{63, 10, 9},0, {-16, -16},{0xF9, 0x69, 0x47, 0xFF}}}, ++ {{{63, 10, -3},0, {-16, -16},{0xF9, 0x69, 0xB9, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_007_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_0[6] = { ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_007_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_007_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(6, 0, 1, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(7, 4, 0, 0), ++ gsSP1Triangle(8, 4, 7, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(9, 5, 4, 0), ++ gsSP1Triangle(9, 10, 5, 0), ++ gsSP1Triangle(10, 3, 5, 0), ++ gsSP1Triangle(10, 11, 3, 0), ++ gsSP1Triangle(3, 11, 2, 0), ++ gsSP1Triangle(11, 6, 2, 0), ++ gsSP1Triangle(6, 1, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_007_mesh_layer_1_vtx_1[12] = { ++ {{{58, -13, 11},0, {-16, -16},{0xF6, 0x94, 0x43, 0xFF}}}, ++ {{{19, -10, 10},0, {-16, -16},{0xF7, 0x97, 0x47, 0xFF}}}, ++ {{{19, -10, -3},0, {-16, -16},{0xF7, 0x97, 0xB9, 0xFF}}}, ++ {{{58, 0, 18},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 0, 14},0, {-16, -16},{0xF8, 0x1, 0x7F, 0xFF}}}, ++ {{{22, 11, 10},0, {-16, -16},{0xF7, 0x69, 0x47, 0xFF}}}, ++ {{{58, 15, 10},0, {-16, -16},{0xF6, 0x6D, 0x41, 0xFF}}}, ++ {{{22, 12, -3},0, {-16, -16},{0xF6, 0x69, 0xB9, 0xFF}}}, ++ {{{58, 15, -5},0, {-16, -16},{0xF4, 0x6A, 0xBB, 0xFF}}}, ++ {{{58, 0, -11},0, {-16, -16},{0xF6, 0xFE, 0x81, 0xFF}}}, ++ {{{22, 0, -8},0, {-16, -16},{0xF7, 0x0, 0x81, 0xFF}}}, ++ {{{58, -13, -5},0, {-16, -16},{0xF6, 0x94, 0xBD, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_007_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_007_mesh_layer_1_vtx_1 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(9, 11, 2, 0), ++ gsSP1Triangle(11, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_004_mesh_layer_1_vtx_0[43] = { ++ {{{75, -33, 66},0, {-16, -16},{0x18, 0xB2, 0x62, 0xFF}}}, ++ {{{96, -8, 52},0, {-16, -16},{0x68, 0xFA, 0x49, 0xFF}}}, ++ {{{57, 10, 66},0, {-16, -16},{0xF3, 0x14, 0x7D, 0xFF}}}, ++ {{{104, -26, 1},0, {-16, -16},{0x65, 0xBF, 0xD7, 0xFF}}}, ++ {{{55, -44, -4},0, {-16, -16},{0x6, 0x8C, 0xCC, 0xFF}}}, ++ {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, ++ {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, ++ {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, ++ {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0xFC, 0xB1, 0x64, 0xFF}}}, ++ {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, ++ {{{23, -26, 35},0, {-16, -16},{0xF, 0xBF, 0x6C, 0xFF}}}, ++ {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, ++ {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, ++ {{{29, 6, 49},0, {-16, -16},{0xBF, 0xFA, 0x6D, 0xFF}}}, ++ {{{29, 62, 34},0, {-16, -16},{0xCE, 0x59, 0x4B, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{58, 81, 0},0, {-16, -16},{0x17, 0x7A, 0xE4, 0xFF}}}, ++ {{{54, 54, 44},0, {-16, -16},{0x14, 0x51, 0x5F, 0xFF}}}, ++ {{{97, 39, 24},0, {-16, -16},{0x6C, 0x3D, 0x1C, 0xFF}}}, ++ {{{86, 15, 52},0, {-16, -16},{0x45, 0x2D, 0x61, 0xFF}}}, ++ {{{86, 30, -33},0, {-16, -16},{0x45, 0x1C, 0x99, 0xFF}}}, ++ {{{35, 9, -37},0, {-16, -16},{0xE8, 0xF6, 0x84, 0xFF}}}, ++ {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, ++ {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, ++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0xF0, 0xFC, 0x82, 0xFF}}}, ++ {{{31, -40, -1},0, {-16, -16},{0x3D, 0x99, 0xD4, 0xFF}}}, ++ {{{24, -57, -4},0, {-16, -16},{0x1B, 0x89, 0xDB, 0xFF}}}, ++ {{{4, -3, -33},0, {-16, -16},{0xF0, 0xFC, 0x82, 0xFF}}}, ++ {{{13, -38, 41},0, {-16, -16},{0xFC, 0xB1, 0x64, 0xFF}}}, ++ {{{-16, -12, 6},0, {-16, -16},{0x8B, 0xD0, 0xF7, 0xFF}}}, ++ {{{-14, 26, 41},0, {-16, -16},{0xC5, 0x34, 0x64, 0xFF}}}, ++ {{{-19, 47, -4},0, {-16, -16},{0xBE, 0x66, 0xDB, 0xFF}}}, ++ {{{-2, 41, -1},0, {-16, -16},{0xDA, 0x71, 0xD4, 0xFF}}}, ++ {{{1, 24, 35},0, {-16, -16},{0xF5, 0x3F, 0x6E, 0xFF}}}, ++ {{{10, 60, -4},0, {-16, -16},{0xB1, 0x58, 0xD2, 0xFF}}}, ++ {{{15, 0, -23},0, {-16, -16},{0xC, 0x0, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_004_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(0, 2, 6, 0), ++ gsSP1Triangle(7, 6, 2, 0), ++ gsSP1Triangle(8, 7, 2, 0), ++ gsSP1Triangle(9, 8, 2, 0), ++ gsSP1Triangle(1, 9, 2, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(3, 10, 1, 0), ++ gsSP1Triangle(11, 10, 3, 0), ++ gsSP1Triangle(12, 11, 3, 0), ++ gsSP1Triangle(12, 3, 4, 0), ++ gsSP1Triangle(12, 4, 13, 0), ++ gsSP1Triangle(5, 13, 4, 0), ++ gsSP1Triangle(13, 5, 14, 0), ++ gsSP1Triangle(15, 14, 5, 0), ++ gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(6, 8, 10, 0), ++ gsSP1Triangle(6, 10, 11, 0), ++ gsSP1Triangle(5, 6, 11, 0), ++ gsSP1Triangle(5, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_004_mesh_layer_1_vtx_0 + 32, 11, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(2, 6, 7, 0), ++ gsSP1Triangle(2, 4, 6, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(7, 10, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[57] = { ++ {{{7, 1, -26},0, {-16, -16},{0x4C, 0x2A, 0xA3, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x31, 0x75, 0xF3, 0xFF}}}, ++ {{{3, 36, 6},0, {-16, -16},{0xD7, 0x74, 0xE1, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x3D, 0x42, 0x5A, 0xFF}}}, ++ {{{9, 18, 35},0, {-16, -16},{0xEA, 0x28, 0x77, 0xFF}}}, ++ {{{26, -24, 28},0, {-16, -16},{0xD, 0xBA, 0x69, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0x67, 0xE2, 0x44, 0xFF}}}, ++ {{{30, -32, -4},0, {-16, -16},{0x37, 0xA3, 0xBD, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0x77, 0xE1, 0xE0, 0xFF}}}, ++ {{{16, 4, -17},0, {-16, -16},{0x0, 0x11, 0x82, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{30, 13, -30},0, {-16, -16},{0xD7, 0x3, 0x88, 0xFF}}}, ++ {{{86, -19, -13},0, {-16, -16},{0x3E, 0xB9, 0xAB, 0xFF}}}, ++ {{{48, -35, -9},0, {-16, -16},{0xF7, 0x99, 0xB6, 0xFF}}}, ++ {{{81, 37, -28},0, {-16, -16},{0x10, 0x1D, 0x85, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{13, 53, 5},0, {-16, -16},{0xAE, 0x5E, 0xE7, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{20, 33, 48},0, {-16, -16},{0xE2, 0x2A, 0x74, 0xFF}}}, ++ {{{32, 2, 43},0, {-16, -16},{0xE3, 0xEE, 0x7A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{46, -35, 37},0, {-16, -16},{0xD8, 0xA4, 0x4E, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{124, 69, 30},0, {-16, -16},{0x39, 0x46, 0x5A, 0xFF}}}, ++ {{{125, 71, 9},0, {-16, -16},{0x4E, 0x5A, 0xD4, 0xFF}}}, ++ {{{76, 88, 9},0, {-16, -16},{0xF3, 0x7E, 0xFF, 0xFF}}}, ++ {{{84, 59, 25},0, {-16, -16},{0xFD, 0x21, 0x7B, 0xFF}}}, ++ {{{34, 43, 36},0, {-16, -16},{0xFD, 0x4A, 0x67, 0xFF}}}, ++ {{{75, 11, 32},0, {-16, -16},{0x3D, 0x24, 0x6A, 0xFF}}}, ++ {{{81, -15, 45},0, {-16, -16},{0x35, 0xB, 0x73, 0xFF}}}, ++ {{{93, -5, 22},0, {-16, -16},{0x68, 0xE6, 0x45, 0xFF}}}, ++ {{{93, -45, 36},0, {-16, -16},{0x4C, 0xA7, 0x30, 0xFF}}}, ++ {{{136, 28, 31},0, {-16, -16},{0x52, 0xDE, 0x5B, 0xFF}}}, ++ {{{143, 31, -1},0, {-16, -16},{0x73, 0xF0, 0xCC, 0xFF}}}, ++ {{{25, -46, -9},0, {-16, -16},{0xB8, 0x9E, 0xDA, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{-1, 18, 42},0, {-16, -16},{0x93, 0xFE, 0x42, 0xFF}}}, ++ {{{7, -30, 26},0, {-16, -16},{0x9E, 0xBA, 0x2A, 0xFF}}}, ++ {{{19, -36, 33},0, {-16, -16},{0xB6, 0xA8, 0x37, 0xFF}}}, ++ {{{-7, 7, 32},0, {-16, -16},{0x8D, 0xE7, 0x31, 0xFF}}}, ++ {{{-12, 23, 6},0, {-16, -16},{0x82, 0x0, 0xF0, 0xFF}}}, ++ {{{-9, 41, 5},0, {-16, -16},{0x83, 0x14, 0xF4, 0xFF}}}, ++ {{{7, 1, -26},0, {-16, -16},{0x9E, 0xE7, 0xB3, 0xFF}}}, ++ {{{0, -4, -15},0, {-16, -16},{0x91, 0xDE, 0xCC, 0xFF}}}, ++ {{{11, -38, -3},0, {-16, -16},{0xA4, 0xAD, 0xE3, 0xFF}}}, ++}; ++ ++Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(7, 8, 0, 0), ++ gsSP1Triangle(0, 9, 7, 0), ++ gsSP1Triangle(2, 9, 0, 0), ++ gsSP1Triangle(10, 9, 2, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(12, 11, 2, 0), ++ gsSP1Triangle(2, 4, 12, 0), ++ gsSP1Triangle(13, 12, 4, 0), ++ gsSP1Triangle(13, 4, 5, 0), ++ gsSP1Triangle(14, 13, 5, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(15, 14, 7, 0), ++ gsSP1Triangle(10, 15, 7, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 2, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(1, 12, 11, 0), ++ gsSP1Triangle(1, 13, 12, 0), ++ gsSP1Triangle(1, 14, 13, 0), ++ gsSP1Triangle(3, 14, 1, 0), ++ gsSP1Triangle(3, 15, 14, 0), ++ gsSP1Triangle(3, 4, 15, 0), ++ gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 9, 3, 0), ++ gsSP1Triangle(9, 0, 3, 0), ++ gsSP1Triangle(9, 10, 0, 0), ++ gsSP1Triangle(0, 10, 1, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 12, 11, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_vtx_0 + 48, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 4, 0, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(7, 8, 1, 0), ++ gsSP1Triangle(1, 3, 7, 0), ++ gsSP1Triangle(3, 4, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[63] = { ++ {{{166, -13, -17},0, {-16, -16},{0x7A, 0x9, 0x22, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x7A, 0xA, 0x21, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0x49, 0xF3, 0x67, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x47, 0xF9, 0x69, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{98, 10, 29},0, {-16, -16},{0x5D, 0x28, 0x4C, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{153, 7, 24},0, {-16, -16},{0xC, 0x7B, 0x1E, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0xB, 0x7D, 0x13, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0x1E, 0x6, 0x85, 0xFF}}}, ++ {{{94, -22, -18},0, {-16, -16},{0x1A, 0xA8, 0xA8, 0xFF}}}, ++ {{{89, 18, -34},0, {-16, -16},{0x23, 0x1F, 0x8A, 0xFF}}}, ++ {{{162, 14, -11},0, {-16, -16},{0x26, 0x1F, 0x8B, 0xFF}}}, ++ {{{56, -47, -5},0, {-16, -16},{0x3, 0x8A, 0xD1, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{88, -34, 39},0, {-16, -16},{0x3D, 0xA6, 0x41, 0xFF}}}, ++ {{{101, -29, 15},0, {-16, -16},{0x42, 0x96, 0x19, 0xFF}}}, ++ {{{155, -15, 21},0, {-16, -16},{0x15, 0x83, 0xF6, 0xFF}}}, ++ {{{166, -13, -17},0, {-16, -16},{0xF, 0x82, 0xFE, 0xFF}}}, ++ {{{90, -3, 52},0, {-16, -16},{0x48, 0x2, 0x69, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{56, 80, 1},0, {-16, -16},{0x6, 0x7D, 0xED, 0xFF}}}, ++ {{{84, 48, 24},0, {-16, -16},{0x53, 0x49, 0x3E, 0xFF}}}, ++ {{{84, 60, -7},0, {-16, -16},{0x51, 0x58, 0xD5, 0xFF}}}, ++ {{{105, 17, 3},0, {-16, -16},{0x41, 0x6C, 0xD, 0xFF}}}, ++ {{{46, 49, 45},0, {-16, -16},{0xF7, 0x48, 0x68, 0xFF}}}, ++ {{{8, 58, -2},0, {-16, -16},{0xAF, 0x5D, 0xE2, 0xFF}}}, ++ {{{33, 7, -37},0, {-16, -16},{0xDF, 0xFA, 0x85, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{32, -43, 0},0, {-16, -16},{0x33, 0x94, 0xD4, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{45, -29, 52},0, {-16, -16},{0xE7, 0xBC, 0x69, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-15, 23, 43},0, {-16, -16},{0xD4, 0x3B, 0x68, 0xFF}}}, ++ {{{0, 21, 37},0, {-16, -16},{0x5, 0x44, 0x6B, 0xFF}}}, ++ {{{-4, 38, 0},0, {-16, -16},{0xD9, 0x73, 0xD9, 0xFF}}}, ++ {{{-22, 43, -3},0, {-16, -16},{0xC3, 0x69, 0xDA, 0xFF}}}, ++ {{{14, -1, -22},0, {-16, -16},{0x3, 0x4, 0x81, 0xFF}}}, ++ {{{2, -5, -33},0, {-16, -16},{0xFA, 0x2, 0x81, 0xFF}}}, ++ {{{-25, 24, 0},0, {-16, -16},{0x84, 0xFB, 0xE5, 0xFF}}}, ++ {{{-8, -12, -20},0, {-16, -16},{0x9B, 0xD0, 0xC4, 0xFF}}}, ++ {{{24, -59, -3},0, {-16, -16},{0x26, 0x8D, 0xDB, 0xFF}}}, ++ {{{6, -49, 0},0, {-16, -16},{0xAB, 0xA5, 0xE6, 0xFF}}}, ++ {{{15, -39, 42},0, {-16, -16},{0x12, 0xBA, 0x68, 0xFF}}}, ++ {{{23, -29, 36},0, {-16, -16},{0x16, 0xC5, 0x6E, 0xFF}}}, ++ {{{18, 30, 41},0, {-16, -16},{0xC9, 0x2D, 0x69, 0xFF}}}, ++ {{{0, -35, 32},0, {-16, -16},{0xA3, 0xB8, 0x31, 0xFF}}}, ++ {{{-21, 9, 33},0, {-16, -16},{0x8D, 0xE7, 0x2F, 0xFF}}}, ++}; ++ ++Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 11, 14, 0), ++ gsSP1Triangle(14, 11, 15, 0), ++ gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(7, 4, 8, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 4, 1, 0), ++ gsSP1Triangle(1, 10, 9, 0), ++ gsSP1Triangle(10, 1, 11, 0), ++ gsSP1Triangle(8, 9, 12, 0), ++ gsSP1Triangle(8, 12, 7, 0), ++ gsSP1Triangle(7, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(5, 0, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 4, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSP1Triangle(14, 5, 7, 0), ++ gsSP1Triangle(7, 15, 14, 0), ++ gsSPVertex(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0 + 48, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(10, 11, 1, 0), ++ gsSP1Triangle(1, 11, 12, 0), ++ gsSP1Triangle(10, 1, 0, 0), ++ gsSP1Triangle(0, 13, 10, 0), ++ gsSP1Triangle(0, 14, 13, 0), ++ gsSP1Triangle(3, 14, 0, 0), ++ gsSP1Triangle(3, 6, 14, 0), ++ gsSP1Triangle(14, 6, 7, 0), ++ gsSP1Triangle(13, 14, 7, 0), ++ gsSP1Triangle(7, 9, 13, 0), ++ gsSP1Triangle(10, 13, 9, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0[11] = { ++ {{{52, -3, 54},0, {7, 25},{0xDC, 0xEB, 0x78, 0xFF}}}, ++ {{{50, 16, 51},0, {7, 23},{0xC8, 0x47, 0x59, 0xFF}}}, ++ {{{56, -27, 45},0, {8, 27},{0xC2, 0xA4, 0x3F, 0xFF}}}, ++ {{{58, -31, 18},0, {13, 28},{0xDA, 0x8A, 0x1D, 0xFF}}}, ++ {{{35, -33, 13},0, {13, 28},{0x10, 0xB3, 0x64, 0xFF}}}, ++ {{{52, 30, 26},0, {11, 22},{0xB9, 0x64, 0x20, 0xFF}}}, ++ {{{45, 28, 13},0, {13, 22},{0xAC, 0x5C, 0x19, 0xFF}}}, ++ {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, ++ {{{19, -6, 0},0, {16, 25},{0x8E, 0x38, 0x0, 0xFF}}}, ++ {{{18, -51, 12},0, {14, 30},{0xD3, 0xD6, 0x6F, 0xFF}}}, ++ {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_009_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_0[8] = { ++ {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{-3, 12, 1},0, {9, 27},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{7, 12, -19},0, {12, 27},{0xC3, 0x52, 0xB4, 0xFF}}}, ++ {{{4, -3, -29},0, {14, 25},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, ++ {{{-2, -23, 3},0, {8, 23},{0x9B, 0xC3, 0x30, 0xFF}}}, ++ {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, ++ {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_009_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_0 + 0, 5, 11), ++ gsSP1Triangle(11, 0, 1, 0), ++ gsSP1Triangle(12, 0, 11, 0), ++ gsSP1Triangle(12, 2, 0, 0), ++ gsSP1Triangle(2, 12, 3, 0), ++ gsSP1Triangle(12, 4, 3, 0), ++ gsSP1Triangle(4, 12, 13, 0), ++ gsSP1Triangle(13, 9, 4, 0), ++ gsSP1Triangle(13, 10, 9, 0), ++ gsSP1Triangle(8, 10, 13, 0), ++ gsSP1Triangle(13, 14, 8, 0), ++ gsSP1Triangle(15, 8, 14, 0), ++ gsSP1Triangle(8, 15, 7, 0), ++ gsSP1Triangle(15, 6, 7, 0), ++ gsSP1Triangle(15, 5, 6, 0), ++ gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_0 + 5, 3, 11), ++ gsSP1Triangle(11, 5, 12, 0), ++ gsSP1Triangle(11, 1, 5, 0), ++ gsSP1Triangle(13, 1, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_009_mesh_layer_1_vtx_1[13] = { ++ {{{-2, -23, 3},0, {8, 23},{0x9B, 0xC3, 0x30, 0xFF}}}, ++ {{{78, -17, 7},0, {5, 23},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{-3, -5, 9},0, {7, 25},{0x9A, 0x48, 0x17, 0xFF}}}, ++ {{{2, -23, -20},0, {12, 23},{0xAB, 0xC5, 0xB6, 0xFF}}}, ++ {{{79, -17, -10},0, {9, 23},{0xB, 0x98, 0xB7, 0xFF}}}, ++ {{{14, -5, -25},0, {13, 25},{0x21, 0xFE, 0x85, 0xFF}}}, ++ {{{4, -3, -29},0, {14, 25},{0x77, 0xF3, 0xD6, 0xFF}}}, ++ {{{7, 12, -19},0, {12, 27},{0xC3, 0x52, 0xB4, 0xFF}}}, ++ {{{63, 10, -11},0, {9, 27},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{-3, 12, 1},0, {9, 27},{0x99, 0x20, 0x43, 0xFF}}}, ++ {{{61, 10, 6},0, {5, 27},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{71, -3, 11},0, {4, 25},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{75, -3, -16},0, {11, 25},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_009_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_009_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(2, 11, 9, 0), ++ gsSP1Triangle(2, 1, 11, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSP1Triangle(5, 12, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{61, 10, 6},0, {5, 27},{0xF6, 0x68, 0x49, 0xFF}}}, ++ {{{78, -17, 7},0, {5, 23},{0xF8, 0x97, 0x48, 0xFF}}}, ++ {{{71, -3, 11},0, {4, 25},{0xF0, 0xFE, 0x7E, 0xFF}}}, ++ {{{63, 10, -11},0, {9, 27},{0x8, 0x6B, 0xBB, 0xFF}}}, ++ {{{79, -17, -10},0, {9, 23},{0xB, 0x98, 0xB7, 0xFF}}}, ++ {{{75, -3, -16},0, {11, 25},{0x10, 0x5, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_010_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_0[6] = { ++ {{{-6, -3, 14},0, {4, 25},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-2, -17, 9},0, {5, 23},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{0, -17, -9},0, {9, 23},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{-2, -3, -15},0, {10, 25},{0x12, 0x7, 0x82, 0xFF}}}, ++ {{{-8, 11, -8},0, {9, 27},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{-9, 11, 11},0, {4, 27},{0xEF, 0x61, 0x50, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(1, 6, 2, 0), ++ gsSP1Triangle(1, 7, 6, 0), ++ gsSP1Triangle(7, 1, 8, 0), ++ gsSP1Triangle(4, 8, 1, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(5, 9, 4, 0), ++ gsSP1Triangle(3, 9, 5, 0), ++ gsSP1Triangle(3, 10, 9, 0), ++ gsSP1Triangle(0, 10, 3, 0), ++ gsSP1Triangle(11, 10, 0, 0), ++ gsSP1Triangle(6, 11, 0, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_1[9] = { ++ {{{13, 9, 43},0, {575, 576},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{43, -5, 7},0, {594, 64},{0x81, 0xFB, 0x6, 0xFF}}}, ++ {{{13, -17, 43},0, {610, 576},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{11, 27, 22},0, {552, 576},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{10, 25, -6},0, {554, 576},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{10, 5, -25},0, {580, 576},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{11, -22, -23},0, {617, 576},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{12, -40, -3},0, {640, 576},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{13, -38, 25},0, {638, 576},{0x9E, 0xB9, 0x26, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_2[41] = { ++ {{{13, 9, 43},0, {-16, -16},{0xA2, 0x20, 0x50, 0xFF}}}, ++ {{{13, -17, 43},0, {-16, -16},{0x9F, 0xE6, 0x4E, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{13, -38, 25},0, {-16, -16},{0x9E, 0xB9, 0x26, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{12, -40, -3},0, {-16, -16},{0x9C, 0xB6, 0xE8, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{11, -22, -23},0, {-16, -16},{0x9E, 0xDC, 0xB8, 0xFF}}}, ++ {{{10, 5, -25},0, {-16, -16},{0x9C, 0x16, 0xB5, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{10, 25, -6},0, {-16, -16},{0x97, 0x42, 0xE2, 0xFF}}}, ++ {{{11, 27, 22},0, {-16, -16},{0x9A, 0x47, 0x1C, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{32, 25, 20},0, {-16, -16},{0xF4, 0x78, 0x29, 0xFF}}}, ++ {{{34, 8, 39},0, {-16, -16},{0xFA, 0x32, 0x75, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{35, -17, 38},0, {-16, -16},{0xFE, 0xD4, 0x77, 0xFF}}}, ++ {{{36, -36, 23},0, {-16, -16},{0xF9, 0x8F, 0x39, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{36, -37, -1},0, {-16, -16},{0xF8, 0x88, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{34, -21, -19},0, {-16, -16},{0xFB, 0xC8, 0x8E, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++ {{{32, 5, -20},0, {-16, -16},{0xF9, 0x29, 0x88, 0xFF}}}, ++ {{{31, 23, -4},0, {-16, -16},{0xF2, 0x72, 0xC9, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{49, 30, 22},0, {-16, -16},{0x28, 0x73, 0x25, 0xFF}}}, ++ {{{69, -5, 7},0, {-16, -16},{0x7E, 0x8, 0xF8, 0xFF}}}, ++ {{{48, 29, -7},0, {-16, -16},{0x24, 0x6E, 0xCB, 0xFF}}}, ++ {{{52, 11, 44},0, {-16, -16},{0x30, 0x32, 0x6B, 0xFF}}}, ++ {{{54, -18, 43},0, {-16, -16},{0x35, 0xDB, 0x6D, 0xFF}}}, ++ {{{55, -40, 26},0, {-16, -16},{0x36, 0x9A, 0x35, 0xFF}}}, ++ {{{54, -41, -3},0, {-16, -16},{0x34, 0x94, 0xD6, 0xFF}}}, ++ {{{51, -22, -23},0, {-16, -16},{0x2E, 0xD1, 0x93, 0xFF}}}, ++ {{{49, 8, -25},0, {-16, -16},{0x28, 0x2A, 0x8F, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSP1Triangle(14, 0, 15, 0), ++ gsSP1Triangle(15, 0, 2, 0), ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSP1Triangle(15, 14, 1, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(5, 1, 4, 0), ++ gsSP1Triangle(6, 1, 5, 0), ++ gsSP1Triangle(7, 1, 6, 0), ++ gsSP1Triangle(8, 1, 7, 0), ++ gsSP1Triangle(2, 1, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_010_mesh_layer_1_vtx_3[16] = { ++ {{{2, -3, 16},0, {3, 25},{0xE6, 0xF6, 0x7C, 0xFF}}}, ++ {{{43, -12, 22},0, {-1, 24},{0xEF, 0xD0, 0x74, 0xFF}}}, ++ {{{43, -1, 22},0, {-1, 26},{0xF7, 0x2C, 0x77, 0xFF}}}, ++ {{{-2, -17, 9},0, {5, 23},{0xED, 0x97, 0x45, 0xFF}}}, ++ {{{-6, -3, 14},0, {4, 25},{0xE0, 0xF2, 0x7A, 0xFF}}}, ++ {{{-9, 11, 11},0, {4, 27},{0xEF, 0x61, 0x50, 0xFF}}}, ++ {{{42, 7, 13},0, {2, 27},{0x7, 0x75, 0x31, 0xFF}}}, ++ {{{42, 7, 1},0, {5, 27},{0x11, 0x77, 0xD6, 0xFF}}}, ++ {{{-8, 11, -8},0, {9, 27},{0xB, 0x6E, 0xC2, 0xFF}}}, ++ {{{42, -1, -7},0, {8, 26},{0x17, 0x31, 0x8D, 0xFF}}}, ++ {{{6, -3, -13},0, {10, 25},{0x11, 0x9, 0x82, 0xFF}}}, ++ {{{42, -12, -7},0, {8, 24},{0x13, 0xCC, 0x8E, 0xFF}}}, ++ {{{0, -17, -9},0, {9, 23},{0x5, 0x97, 0xB8, 0xFF}}}, ++ {{{42, -20, 1},0, {5, 23},{0x2, 0x87, 0xD9, 0xFF}}}, ++ {{{42, -20, 13},0, {2, 23},{0xF5, 0x8B, 0x31, 0xFF}}}, ++ {{{-2, -3, -15},0, {10, 25},{0x12, 0x7, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_offset_010_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(0, 2, 5, 0), ++ gsSP1Triangle(5, 2, 6, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 3, 0), ++ gsSP1Triangle(14, 3, 13, 0), ++ gsSP1Triangle(14, 1, 3, 0), ++ gsSP1Triangle(15, 10, 12, 0), ++ gsSP1Triangle(8, 10, 15, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_0[61] = { ++ {{{-29, 59, 38},0, {1000, -7},{0xDD, 0x69, 0x3E, 0xFF}}}, ++ {{{-33, 39, 44},0, {832, -7},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{1, 53, 50},0, {1000, 32},{0xB, 0x61, 0x52, 0xFF}}}, ++ {{{-4, 38, 52},0, {864, 32},{0xF0, 0xC, 0x7D, 0xFF}}}, ++ {{{44, 28, 53},0, {896, 192},{0x2, 0x3, 0x7F, 0xFF}}}, ++ {{{47, 37, 52},0, {1000, 192},{0x1E, 0x5A, 0x54, 0xFF}}}, ++ {{{87, 13, 51},0, {896, 258},{0xA, 0xFC, 0x7F, 0xFF}}}, ++ {{{91, 22, 50},0, {1000, 258},{0x27, 0x58, 0x53, 0xFF}}}, ++ {{{112, 3, 47},0, {898, 323},{0x20, 0xEB, 0x79, 0xFF}}}, ++ {{{116, 13, 46},0, {1001, 323},{0x3C, 0x4C, 0x52, 0xFF}}}, ++ {{{143, -2, 31},0, {1001, 395},{0x5D, 0x36, 0x44, 0xFF}}}, ++ {{{140, -11, 31},0, {907, 395},{0x40, 0xCD, 0x61, 0xFF}}}, ++ {{{158, -16, 10},0, {1001, 436},{0x7F, 0xF9, 0xFD, 0xFF}}}, ++ {{{153, -22, 11},0, {915, 431},{0x56, 0xA2, 0x2, 0xFF}}}, ++ {{{140, -13, -10},0, {907, 395},{0x39, 0xC4, 0x9F, 0xFF}}}, ++ {{{143, -5, -11},0, {1001, 395},{0x57, 0x2D, 0xAF, 0xFF}}}, ++ {{{140, -13, -10},0, {907, 395},{0x39, 0xC4, 0x9F, 0xFF}}}, ++ {{{112, 0, -23},0, {898, 323},{0x1D, 0xE0, 0x88, 0xFF}}}, ++ {{{143, -5, -11},0, {1001, 395},{0x57, 0x2D, 0xAF, 0xFF}}}, ++ {{{115, 9, -24},0, {1001, 323},{0x3B, 0x44, 0xA6, 0xFF}}}, ++ {{{87, 9, -29},0, {896, 258},{0xC, 0xE7, 0x84, 0xFF}}}, ++ {{{90, 18, -30},0, {1000, 258},{0x2A, 0x4B, 0xA3, 0xFF}}}, ++ {{{43, 23, -34},0, {896, 192},{0x1, 0xEC, 0x83, 0xFF}}}, ++ {{{46, 33, -34},0, {1000, 192},{0x1F, 0x4E, 0xA0, 0xFF}}}, ++ {{{0, 49, -35},0, {1000, 32},{0xC, 0x53, 0xA1, 0xFF}}}, ++ {{{-5, 34, -34},0, {864, 32},{0xEF, 0xF4, 0x83, 0xFF}}}, ++ {{{-29, 56, -27},0, {1000, -7},{0xDA, 0x5A, 0xAF, 0xFF}}}, ++ {{{-33, 36, -27},0, {832, -7},{0xB5, 0x4, 0x9A, 0xFF}}}, ++ {{{-29, 59, 38},0, {1000, 1070},{0xDD, 0x69, 0x3E, 0xFF}}}, ++ {{{-41, 57, 24},0, {1000, 782},{0xA4, 0x55, 0x18, 0xFF}}}, ++ {{{-33, 39, 44},0, {805, 1213},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-45, 28, 18},0, {663, 770},{0x83, 0x7, 0x16, 0xFF}}}, ++ {{{-42, 56, -10},0, {1000, 722},{0xA4, 0x52, 0xE3, 0xFF}}}, ++ {{{-45, 28, 18},0, {663, 770},{0x83, 0x7, 0x16, 0xFF}}}, ++ {{{-41, 57, 24},0, {1000, 782},{0xA4, 0x55, 0x18, 0xFF}}}, ++ {{{-45, 26, -5},0, {663, 734},{0x84, 0x6, 0xE7, 0xFF}}}, ++ {{{-33, 36, -27},0, {805, 291},{0xB5, 0x4, 0x9A, 0xFF}}}, ++ {{{-29, 56, -27},0, {1000, 434},{0xDA, 0x5A, 0xAF, 0xFF}}}, ++ {{{-42, 56, -10},0, {433, 1520},{0xA4, 0x52, 0xE3, 0xFF}}}, ++ {{{-41, 57, 24},0, {456, 1520},{0xA4, 0x55, 0x18, 0xFF}}}, ++ {{{-29, 59, 38},0, {467, 1415},{0xDD, 0x69, 0x3E, 0xFF}}}, ++ {{{-29, 56, -27},0, {422, 1415},{0xDA, 0x5A, 0xAF, 0xFF}}}, ++ {{{0, 49, -35},0, {417, 1139},{0xC, 0x53, 0xA1, 0xFF}}}, ++ {{{1, 53, 50},0, {475, 1139},{0xB, 0x61, 0x52, 0xFF}}}, ++ {{{46, 33, -34},0, {417, 690},{0x1F, 0x4E, 0xA0, 0xFF}}}, ++ {{{47, 37, 52},0, {477, 690},{0x1E, 0x5A, 0x54, 0xFF}}}, ++ {{{90, 18, -30},0, {420, 268},{0x2A, 0x4B, 0xA3, 0xFF}}}, ++ {{{91, 22, 50},0, {475, 268},{0x27, 0x58, 0x53, 0xFF}}}, ++ {{{90, 18, -30},0, {420, 268},{0x2A, 0x4B, 0xA3, 0xFF}}}, ++ {{{91, 22, 50},0, {475, 268},{0x27, 0x58, 0x53, 0xFF}}}, ++ {{{115, 9, -24},0, {424, 23},{0x3B, 0x44, 0xA6, 0xFF}}}, ++ {{{116, 13, 46},0, {472, 23},{0x3C, 0x4C, 0x52, 0xFF}}}, ++ {{{143, -2, 31},0, {461, -261},{0x5D, 0x36, 0x44, 0xFF}}}, ++ {{{143, -5, -11},0, {432, -261},{0x57, 0x2D, 0xAF, 0xFF}}}, ++ {{{158, -16, 10},0, {446, -430},{0x7F, 0xF9, 0xFD, 0xFF}}}, ++ {{{-5, 34, -34},0, {15, 988},{0xEF, 0xF4, 0x83, 0xFF}}}, ++ {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, ++ {{{-33, 36, -27},0, {14, 992},{0xB5, 0x4, 0x9A, 0xFF}}}, ++ {{{77, -13, 50},0, {337, 2},{0x18, 0xBF, 0x6A, 0xFF}}}, ++ {{{77, -18, 43},0, {338, -1},{0x6, 0x99, 0x4A, 0xFF}}}, ++ {{{81, -16, 43},0, {339, 2},{0x42, 0xB2, 0x4B, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 0, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 6, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_0 + 48, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(2, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_1[16] = { ++ {{{77, -18, 43},0, {338, -1},{0x6, 0x99, 0x4A, 0xFF}}}, ++ {{{77, -13, 50},0, {337, 2},{0x18, 0xBF, 0x6A, 0xFF}}}, ++ {{{33, -3, 48},0, {321, -2},{0xC6, 0xAC, 0x4C, 0xFF}}}, ++ {{{36, 1, 55},0, {322, 1},{0xD4, 0xDF, 0x72, 0xFF}}}, ++ {{{74, -5, 49},0, {335, 8},{0xF5, 0xB, 0x7E, 0xFF}}}, ++ {{{78, 6, 51},0, {335, 20},{0xCB, 0xD5, 0x6B, 0xFF}}}, ++ {{{85, 10, 56},0, {337, 25},{0x30, 0xD, 0x75, 0xFF}}}, ++ {{{81, -16, 43},0, {339, 2},{0x42, 0xB2, 0x4B, 0xFF}}}, ++ {{{89, 9, 49},0, {339, 26},{0x65, 0xE7, 0x49, 0xFF}}}, ++ {{{87, 13, 51},0, {338, 29},{0x53, 0x40, 0x48, 0xFF}}}, ++ {{{44, 24, 58},0, {322, 24},{0xEB, 0x2F, 0x74, 0xFF}}}, ++ {{{44, 28, 53},0, {321, 28},{0xEE, 0x6C, 0x40, 0xFF}}}, ++ {{{40, 26, 51},0, {320, 26},{0xA4, 0x35, 0x46, 0xFF}}}, ++ {{{31, 1, 49},0, {320, 1},{0x9C, 0xF2, 0x4C, 0xFF}}}, ++ {{{43, 5, 51},0, {324, 8},{0x39, 0x8, 0x71, 0xFF}}}, ++ {{{47, 17, 52},0, {323, 20},{0x24, 0xBD, 0x65, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(6, 1, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(3, 10, 13, 0), ++ gsSP1Triangle(3, 13, 2, 0), ++ gsSP1Triangle(3, 14, 10, 0), ++ gsSP1Triangle(14, 3, 4, 0), ++ gsSP1Triangle(14, 15, 10, 0), ++ gsSP1Triangle(5, 10, 15, 0), ++ gsSP1Triangle(6, 10, 5, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_2[56] = { ++ {{{44, 28, 53},0, {0, 981},{0x2, 0x3, 0x7F, 0xFF}}}, ++ {{{-4, 38, 52},0, {0, 988},{0xF0, 0xC, 0x7D, 0xFF}}}, ++ {{{38, 11, 52},0, {0, 981},{0xFF, 0xEE, 0x7E, 0xFF}}}, ++ {{{-11, 20, 51},0, {1, 988},{0xE6, 0xEE, 0x7B, 0xFF}}}, ++ {{{-33, 39, 44},0, {1, 992},{0xB3, 0x13, 0x63, 0xFF}}}, ++ {{{-35, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-45, 28, 18},0, {6, 994},{0x83, 0x7, 0x16, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8C, 0xCC, 0x3, 0xFF}}}, ++ {{{-45, 26, -5},0, {10, 994},{0x84, 0x6, 0xE7, 0xFF}}}, ++ {{{-42, -8, -16},0, {13, 992},{0xA4, 0xC5, 0xBF, 0xFF}}}, ++ {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, ++ {{{-33, 36, -27},0, {14, 992},{0xB5, 0x4, 0x9A, 0xFF}}}, ++ {{{-21, -13, -20},0, {14, 988},{0xE3, 0xB6, 0x9D, 0xFF}}}, ++ {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, ++ {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, ++ {{{-21, -13, -20},0, {14, 988},{0xE3, 0xB6, 0x9D, 0xFF}}}, ++ {{{-5, 34, -34},0, {15, 988},{0xEF, 0xF4, 0x83, 0xFF}}}, ++ {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, ++ {{{-36, 23, -26},0, {14, 992},{0xB2, 0xF8, 0x9C, 0xFF}}}, ++ {{{43, 23, -34},0, {15, 981},{0x1, 0xEC, 0x83, 0xFF}}}, ++ {{{82, -2, 49},0, {1, 974},{0x7, 0xE4, 0x7C, 0xFF}}}, ++ {{{112, 3, 47},0, {1, 970},{0x20, 0xEB, 0x79, 0xFF}}}, ++ {{{87, 13, 51},0, {0, 974},{0xA, 0xFC, 0x7F, 0xFF}}}, ++ {{{102, -27, 38},0, {3, 970},{0x15, 0xA5, 0x57, 0xFF}}}, ++ {{{74, -26, 42},0, {3, 974},{0x2, 0xA7, 0x5B, 0xFF}}}, ++ {{{99, -36, 10},0, {8, 970},{0x6, 0x81, 0x3, 0xFF}}}, ++ {{{71, -36, 10},0, {9, 974},{0xFC, 0x81, 0x4, 0xFF}}}, ++ {{{73, -29, -17},0, {13, 974},{0x3, 0xA3, 0xA9, 0xFF}}}, ++ {{{101, -30, -13},0, {12, 970},{0x13, 0xA2, 0xAD, 0xFF}}}, ++ {{{87, 9, -29},0, {14, 974},{0xC, 0xE7, 0x84, 0xFF}}}, ++ {{{112, 0, -23},0, {13, 970},{0x1D, 0xE0, 0x88, 0xFF}}}, ++ {{{101, -30, -13},0, {12, 970},{0x13, 0xA2, 0xAD, 0xFF}}}, ++ {{{112, 0, -23},0, {13, 970},{0x1D, 0xE0, 0x88, 0xFF}}}, ++ {{{140, -13, -10},0, {11, 966},{0x39, 0xC4, 0x9F, 0xFF}}}, ++ {{{137, -32, 11},0, {8, 965},{0x34, 0x8C, 0x2, 0xFF}}}, ++ {{{153, -22, 11},0, {7, 963},{0x56, 0xA2, 0x2, 0xFF}}}, ++ {{{140, -11, 31},0, {3, 966},{0x40, 0xCD, 0x61, 0xFF}}}, ++ {{{102, -27, 38},0, {3, 970},{0x15, 0xA5, 0x57, 0xFF}}}, ++ {{{112, 3, 47},0, {1, 970},{0x20, 0xEB, 0x79, 0xFF}}}, ++ {{{99, -36, 10},0, {8, 970},{0x6, 0x81, 0x3, 0xFF}}}, ++ {{{38, 11, 52},0, {0, 981},{0xFF, 0xEE, 0x7E, 0xFF}}}, ++ {{{-11, 20, 51},0, {1, 988},{0xE6, 0xEE, 0x7B, 0xFF}}}, ++ {{{27, -22, 43},0, {3, 981},{0xF4, 0xAA, 0x5D, 0xFF}}}, ++ {{{-21, -11, 38},0, {4, 988},{0xE2, 0xB3, 0x61, 0xFF}}}, ++ {{{-35, 26, 43},0, {2, 992},{0xAA, 0xFF, 0x5E, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, ++ {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, ++ {{{-42, -6, 36},0, {4, 992},{0xAA, 0xCA, 0x4C, 0xFF}}}, ++ {{{-45, -5, 9},0, {9, 992},{0x8C, 0xCC, 0x3, 0xFF}}}, ++ {{{-15, -30, 7},0, {10, 987},{0xD8, 0x88, 0x1, 0xFF}}}, ++ {{{-42, -8, -16},0, {13, 992},{0xA4, 0xC5, 0xBF, 0xFF}}}, ++ {{{27, -22, 43},0, {3, 981},{0xF4, 0xAA, 0x5D, 0xFF}}}, ++ {{{-21, -11, 38},0, {4, 988},{0xE2, 0xB3, 0x61, 0xFF}}}, ++ {{{23, -33, 9},0, {9, 981},{0xF8, 0x81, 0x4, 0xFF}}}, ++ {{{26, -25, -21},0, {14, 981},{0xF9, 0xA8, 0xA4, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 10, 11, 0), ++ gsSP1Triangle(14, 10, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 0, 3, 0), ++ gsSP1Triangle(2, 1, 4, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(6, 5, 8, 0), ++ gsSP1Triangle(9, 8, 5, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(10, 12, 13, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 3, 6, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_2 + 48, 8, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(4, 2, 6, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_011_mesh_layer_1_vtx_3[12] = { ++ {{{87, 13, 51},0, {-16, -16},{0xA, 0xFC, 0x7F, 0xFF}}}, ++ {{{44, 28, 53},0, {-16, -16},{0x2, 0x3, 0x7F, 0xFF}}}, ++ {{{82, -2, 49},0, {-16, -16},{0x7, 0xE4, 0x7C, 0xFF}}}, ++ {{{38, 11, 52},0, {-16, -16},{0xFF, 0xEE, 0x7E, 0xFF}}}, ++ {{{74, -26, 42},0, {-16, -16},{0x2, 0xA7, 0x5B, 0xFF}}}, ++ {{{27, -22, 43},0, {-16, -16},{0xF4, 0xAA, 0x5D, 0xFF}}}, ++ {{{71, -36, 10},0, {-16, -16},{0xFC, 0x81, 0x4, 0xFF}}}, ++ {{{23, -33, 9},0, {-16, -16},{0xF8, 0x81, 0x4, 0xFF}}}, ++ {{{26, -25, -21},0, {-16, -16},{0xF9, 0xA8, 0xA4, 0xFF}}}, ++ {{{73, -29, -17},0, {-16, -16},{0x3, 0xA3, 0xA9, 0xFF}}}, ++ {{{43, 23, -34},0, {-16, -16},{0x1, 0xEC, 0x83, 0xFF}}}, ++ {{{87, 9, -29},0, {-16, -16},{0xC, 0xE7, 0x84, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_offset_011_mesh_layer_1_vtx_3 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 1, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, 24},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, 40},0, {974, 1978},{0xE7, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, 39},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_002_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_002_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, 9},0, {-16, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, 9},0, {-16, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, 24},0, {974, 1978},{0xE9, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, 24},0, {974, -34},{0xE9, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_002_mesh_layer_4_tri_1[] = { ++ gsSPVertex(super_sonic_000_displaylist_002_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0[11] = { ++ {{{19, -6, 0},0, {16, 25},{0x8E, 0x38, 0x0, 0xFF}}}, ++ {{{35, 17, 0},0, {16, 23},{0x95, 0x44, 0x0, 0xFF}}}, ++ {{{45, 28, -13},0, {18, 22},{0xAC, 0x5C, 0xE7, 0xFF}}}, ++ {{{52, 30, -26},0, {20, 22},{0xB9, 0x64, 0xDF, 0xFF}}}, ++ {{{14, -47, 0},0, {16, 29},{0x84, 0x5, 0x1B, 0xFF}}}, ++ {{{11, -51, -12},0, {18, 30},{0xAA, 0xDE, 0xA9, 0xFF}}}, ++ {{{35, -33, -13},0, {18, 28},{0xD, 0xB2, 0x9C, 0xFF}}}, ++ {{{58, -31, -18},0, {19, 28},{0xDA, 0x8A, 0xE3, 0xFF}}}, ++ {{{56, -27, -45},0, {23, 27},{0xC2, 0xA4, 0xC1, 0xFF}}}, ++ {{{52, -3, -54},0, {25, 25},{0xDC, 0xEB, 0x88, 0xFF}}}, ++ {{{50, 16, -51},0, {24, 23},{0xC8, 0x47, 0xA7, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_012_skinned_mesh_layer_1_vtx_0 + 0, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_0[8] = { ++ {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, ++ {{{-2, -23, -3},0, {23, 23},{0x9B, 0xC3, 0xD0, 0xFF}}}, ++ {{{-3, -5, -9},0, {24, 25},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{-3, 12, -1},0, {23, 27},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, ++ {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, ++ {{{4, -3, 29},0, {18, 25},{0x77, 0xF3, 0x2A, 0xFF}}}, ++ {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_012_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_0 + 0, 5, 11), ++ gsSP1Triangle(0, 1, 11, 0), ++ gsSP1Triangle(11, 1, 2, 0), ++ gsSP1Triangle(11, 2, 3, 0), ++ gsSP1Triangle(12, 11, 3, 0), ++ gsSP1Triangle(12, 3, 10, 0), ++ gsSP1Triangle(13, 12, 10, 0), ++ gsSP1Triangle(13, 10, 9, 0), ++ gsSP1Triangle(14, 13, 9, 0), ++ gsSP1Triangle(14, 9, 8, 0), ++ gsSP1Triangle(8, 7, 14, 0), ++ gsSP1Triangle(14, 7, 6, 0), ++ gsSP1Triangle(6, 15, 14, 0), ++ gsSP1Triangle(15, 6, 5, 0), ++ gsSP1Triangle(15, 5, 4, 0), ++ gsSP1Triangle(0, 15, 4, 0), ++ gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_0 + 5, 3, 11), ++ gsSP1Triangle(11, 0, 12, 0), ++ gsSP1Triangle(13, 12, 0, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_012_mesh_layer_1_vtx_1[13] = { ++ {{{2, -23, 20},0, {19, 23},{0xAB, 0xC5, 0x4A, 0xFF}}}, ++ {{{14, -5, 25},0, {19, 25},{0x21, 0xFE, 0x7B, 0xFF}}}, ++ {{{4, -3, 29},0, {18, 25},{0x77, 0xF3, 0x2A, 0xFF}}}, ++ {{{79, -17, 10},0, {22, 23},{0xB, 0x98, 0x49, 0xFF}}}, ++ {{{78, -17, -7},0, {26, 23},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{-2, -23, -3},0, {23, 23},{0x9B, 0xC3, 0xD0, 0xFF}}}, ++ {{{-3, -5, -9},0, {24, 25},{0x9A, 0x48, 0xE9, 0xFF}}}, ++ {{{71, -3, -11},0, {27, 25},{0xF0, 0xFE, 0x82, 0xFF}}}, ++ {{{-3, 12, -1},0, {23, 27},{0x99, 0x20, 0xBD, 0xFF}}}, ++ {{{61, 10, -6},0, {26, 27},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{63, 10, 11},0, {22, 27},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{7, 12, 19},0, {20, 27},{0xC3, 0x52, 0x4C, 0xFF}}}, ++ {{{75, -3, 16},0, {21, 25},{0x10, 0x5, 0x7E, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_012_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_012_mesh_layer_1_vtx_1 + 0, 13, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 0, 4, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(8, 11, 10, 0), ++ gsSP1Triangle(11, 1, 10, 0), ++ gsSP1Triangle(11, 2, 1, 0), ++ gsSP1Triangle(12, 10, 1, 0), ++ gsSP1Triangle(1, 3, 12, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0[6] = { ++ {{{63, 10, 11},0, {22, 27},{0x8, 0x6B, 0x45, 0xFF}}}, ++ {{{75, -3, 16},0, {21, 25},{0x10, 0x5, 0x7E, 0xFF}}}, ++ {{{79, -17, 10},0, {22, 23},{0xB, 0x98, 0x49, 0xFF}}}, ++ {{{78, -17, -7},0, {26, 23},{0xF8, 0x97, 0xB8, 0xFF}}}, ++ {{{61, 10, -6},0, {26, 27},{0xF6, 0x68, 0xB7, 0xFF}}}, ++ {{{71, -3, -11},0, {27, 25},{0xF0, 0xFE, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_013_skinned_mesh_layer_1_vtx_0 + 0, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_0[6] = { ++ {{{-2, -3, 15},0, {21, 25},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {23, 23},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{-2, -17, -9},0, {27, 23},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{-6, -3, -14},0, {28, 25},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {27, 27},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{-8, 11, 8},0, {23, 27},{0xB, 0x6E, 0x3E, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_0 + 0, 6, 6), ++ gsSP1Triangle(0, 1, 6, 0), ++ gsSP1Triangle(1, 2, 6, 0), ++ gsSP1Triangle(6, 2, 7, 0), ++ gsSP1Triangle(2, 3, 7, 0), ++ gsSP1Triangle(8, 7, 3, 0), ++ gsSP1Triangle(3, 9, 8, 0), ++ gsSP1Triangle(3, 5, 9, 0), ++ gsSP1Triangle(5, 4, 9, 0), ++ gsSP1Triangle(9, 4, 10, 0), ++ gsSP1Triangle(10, 4, 11, 0), ++ gsSP1Triangle(4, 0, 11, 0), ++ gsSP1Triangle(0, 6, 11, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_1[9] = { ++ {{{11, -22, 23},0, {617, 576},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{10, 5, 25},0, {580, 576},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{43, -5, -7},0, {594, 64},{0x81, 0xFB, 0xFA, 0xFF}}}, ++ {{{10, 25, 6},0, {554, 576},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{11, 27, -22},0, {552, 576},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{13, 9, -43},0, {575, 576},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{13, -17, -43},0, {610, 576},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{13, -38, -25},0, {638, 576},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{12, -40, 3},0, {640, 576},{0x9C, 0xB6, 0x18, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_1 + 0, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_2[41] = { ++ {{{11, -22, 23},0, {-16, -16},{0x9E, 0xDC, 0x48, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{10, 5, 25},0, {-16, -16},{0x9C, 0x16, 0x4B, 0xFF}}}, ++ {{{12, -40, 3},0, {-16, -16},{0x9C, 0xB6, 0x18, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{13, -38, -25},0, {-16, -16},{0x9E, 0xB9, 0xDA, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{13, -17, -43},0, {-16, -16},{0x9F, 0xE6, 0xB2, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{13, 9, -43},0, {-16, -16},{0xA2, 0x20, 0xB0, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{11, 27, -22},0, {-16, -16},{0x9A, 0x47, 0xE4, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{10, 25, 6},0, {-16, -16},{0x97, 0x42, 0x1E, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{32, 5, 20},0, {-16, -16},{0xF9, 0x29, 0x78, 0xFF}}}, ++ {{{34, -21, 19},0, {-16, -16},{0xFB, 0xC8, 0x72, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{36, -37, 1},0, {-16, -16},{0xF8, 0x88, 0x2A, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{36, -36, -23},0, {-16, -16},{0xF9, 0x8F, 0xC7, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{35, -17, -38},0, {-16, -16},{0xFE, 0xD4, 0x89, 0xFF}}}, ++ {{{34, 8, -39},0, {-16, -16},{0xFA, 0x32, 0x8B, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++ {{{32, 25, -20},0, {-16, -16},{0xF4, 0x78, 0xD7, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{31, 23, 4},0, {-16, -16},{0xF2, 0x72, 0x37, 0xFF}}}, ++ {{{48, 29, 7},0, {-16, -16},{0x24, 0x6E, 0x35, 0xFF}}}, ++ {{{49, 8, 25},0, {-16, -16},{0x28, 0x2A, 0x71, 0xFF}}}, ++ {{{69, -5, -7},0, {-16, -16},{0x7E, 0x8, 0x8, 0xFF}}}, ++ {{{51, -22, 23},0, {-16, -16},{0x2E, 0xD1, 0x6D, 0xFF}}}, ++ {{{54, -41, 3},0, {-16, -16},{0x34, 0x94, 0x2A, 0xFF}}}, ++ {{{55, -40, -26},0, {-16, -16},{0x36, 0x9A, 0xCB, 0xFF}}}, ++ {{{54, -18, -43},0, {-16, -16},{0x35, 0xDB, 0x93, 0xFF}}}, ++ {{{52, 11, -44},0, {-16, -16},{0x30, 0x32, 0x95, 0xFF}}}, ++ {{{49, 30, -22},0, {-16, -16},{0x28, 0x73, 0xDB, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 1, 3, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 9, 7, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 2, 13, 0), ++ gsSP1Triangle(15, 13, 2, 0), ++ gsSP1Triangle(1, 15, 2, 0), ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(14, 15, 0, 0), ++ gsSP1Triangle(0, 15, 1, 0), ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_2 + 32, 9, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(4, 5, 2, 0), ++ gsSP1Triangle(5, 6, 2, 0), ++ gsSP1Triangle(6, 7, 2, 0), ++ gsSP1Triangle(7, 8, 2, 0), ++ gsSP1Triangle(8, 0, 2, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_offset_013_mesh_layer_1_vtx_3[16] = { ++ {{{-2, -3, 15},0, {21, 25},{0x12, 0x7, 0x7E, 0xFF}}}, ++ {{{0, -17, 9},0, {23, 23},{0x5, 0x97, 0x48, 0xFF}}}, ++ {{{6, -3, 13},0, {21, 25},{0x11, 0x9, 0x7E, 0xFF}}}, ++ {{{42, -12, 7},0, {24, 24},{0x13, 0xCC, 0x72, 0xFF}}}, ++ {{{42, -20, -1},0, {26, 23},{0x2, 0x87, 0x27, 0xFF}}}, ++ {{{-2, -17, -9},0, {27, 23},{0xED, 0x97, 0xBB, 0xFF}}}, ++ {{{42, -20, -13},0, {29, 23},{0xF5, 0x8B, 0xCF, 0xFF}}}, ++ {{{43, -12, -22},0, {32, 24},{0xEF, 0xD0, 0x8C, 0xFF}}}, ++ {{{2, -3, -16},0, {28, 25},{0xE6, 0xF6, 0x84, 0xFF}}}, ++ {{{-6, -3, -14},0, {28, 25},{0xE0, 0xF2, 0x86, 0xFF}}}, ++ {{{-9, 11, -11},0, {27, 27},{0xEF, 0x61, 0xB0, 0xFF}}}, ++ {{{43, -1, -22},0, {32, 26},{0xF7, 0x2C, 0x89, 0xFF}}}, ++ {{{42, 7, -13},0, {29, 27},{0x7, 0x75, 0xCF, 0xFF}}}, ++ {{{42, 7, -1},0, {26, 27},{0x11, 0x77, 0x2A, 0xFF}}}, ++ {{{-8, 11, 8},0, {23, 27},{0xB, 0x6E, 0x3E, 0xFF}}}, ++ {{{42, -1, 7},0, {24, 26},{0x17, 0x31, 0x73, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_offset_013_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(4, 3, 1, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(5, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(8, 10, 11, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSP1Triangle(2, 15, 14, 0), ++ gsSP1Triangle(14, 0, 2, 0), ++ gsSP1Triangle(2, 3, 15, 0), ++ gsSP1Triangle(8, 11, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_0[55] = { ++ {{{-5, 34, 28},0, {864, 32},{0xFD, 0xF6, 0x7F, 0xFF}}}, ++ {{{-29, 56, 27},0, {1000, -7},{0xE1, 0x57, 0x58, 0xFF}}}, ++ {{{-33, 36, 27},0, {832, -7},{0xC1, 0x2, 0x6E, 0xFF}}}, ++ {{{0, 49, 28},0, {1000, 32},{0x15, 0x53, 0x5D, 0xFF}}}, ++ {{{43, 23, 27},0, {896, 192},{0xFD, 0xF3, 0x7E, 0xFF}}}, ++ {{{46, 33, 28},0, {1000, 192},{0x19, 0x51, 0x5E, 0xFF}}}, ++ {{{90, 18, 30},0, {1000, 258},{0x23, 0x4B, 0x60, 0xFF}}}, ++ {{{87, 9, 29},0, {896, 258},{0x4, 0xEA, 0x7D, 0xFF}}}, ++ {{{115, 9, 23},0, {1001, 323},{0x3B, 0x44, 0x59, 0xFF}}}, ++ {{{112, 0, 23},0, {898, 323},{0x1D, 0xE0, 0x78, 0xFF}}}, ++ {{{143, -5, 11},0, {1001, 395},{0x57, 0x2D, 0x51, 0xFF}}}, ++ {{{140, -13, 9},0, {907, 395},{0x39, 0xC4, 0x61, 0xFF}}}, ++ {{{158, -16, -10},0, {1001, 436},{0x7F, 0xF9, 0x3, 0xFF}}}, ++ {{{153, -22, -11},0, {915, 431},{0x56, 0xA2, 0xFE, 0xFF}}}, ++ {{{140, -11, -31},0, {907, 395},{0x40, 0xCD, 0x9F, 0xFF}}}, ++ {{{143, -2, -32},0, {1001, 395},{0x5D, 0x36, 0xBC, 0xFF}}}, ++ {{{140, -11, -31},0, {907, 395},{0x40, 0xCD, 0x9F, 0xFF}}}, ++ {{{112, 3, -47},0, {898, 323},{0x20, 0xEB, 0x87, 0xFF}}}, ++ {{{143, -2, -32},0, {1001, 395},{0x5D, 0x36, 0xBC, 0xFF}}}, ++ {{{115, 13, -46},0, {1001, 323},{0x3C, 0x4C, 0xAE, 0xFF}}}, ++ {{{90, 22, -50},0, {1000, 258},{0x27, 0x58, 0xAD, 0xFF}}}, ++ {{{87, 13, -51},0, {896, 258},{0xA, 0xFC, 0x81, 0xFF}}}, ++ {{{47, 37, -52},0, {1000, 192},{0x1E, 0x5A, 0xAC, 0xFF}}}, ++ {{{44, 28, -53},0, {896, 192},{0x2, 0x3, 0x81, 0xFF}}}, ++ {{{1, 53, -49},0, {1000, 32},{0xB, 0x61, 0xAE, 0xFF}}}, ++ {{{-5, 38, -52},0, {864, 32},{0xF0, 0xC, 0x83, 0xFF}}}, ++ {{{-33, 39, -44},0, {832, -7},{0xB2, 0x13, 0x9D, 0xFF}}}, ++ {{{-29, 59, -38},0, {1000, -7},{0xDD, 0x69, 0xC2, 0xFF}}}, ++ {{{-33, 36, 27},0, {805, 291},{0xC1, 0x2, 0x6E, 0xFF}}}, ++ {{{-29, 56, 27},0, {1000, 434},{0xE1, 0x57, 0x58, 0xFF}}}, ++ {{{-42, 56, 10},0, {1000, 722},{0xA4, 0x52, 0x1E, 0xFF}}}, ++ {{{-45, 26, 5},0, {663, 734},{0x84, 0x6, 0x19, 0xFF}}}, ++ {{{-45, 26, 5},0, {663, 734},{0x84, 0x6, 0x19, 0xFF}}}, ++ {{{-42, 56, 10},0, {1000, 722},{0xA4, 0x52, 0x1E, 0xFF}}}, ++ {{{-45, 28, -18},0, {663, 770},{0x83, 0x7, 0xEA, 0xFF}}}, ++ {{{-42, 57, -23},0, {1000, 782},{0xA4, 0x55, 0xE8, 0xFF}}}, ++ {{{-33, 39, -44},0, {805, 1213},{0xB2, 0x13, 0x9D, 0xFF}}}, ++ {{{-29, 59, -38},0, {1000, 1070},{0xDD, 0x69, 0xC2, 0xFF}}}, ++ {{{-42, 56, 10},0, {434, 1520},{0xA4, 0x52, 0x1E, 0xFF}}}, ++ {{{-29, 59, -38},0, {468, 1415},{0xDD, 0x69, 0xC2, 0xFF}}}, ++ {{{-42, 57, -23},0, {457, 1520},{0xA4, 0x55, 0xE8, 0xFF}}}, ++ {{{-29, 56, 27},0, {423, 1415},{0xE1, 0x57, 0x58, 0xFF}}}, ++ {{{0, 49, 28},0, {418, 1139},{0x15, 0x53, 0x5D, 0xFF}}}, ++ {{{1, 53, -49},0, {476, 1139},{0xB, 0x61, 0xAE, 0xFF}}}, ++ {{{46, 33, 28},0, {418, 690},{0x19, 0x51, 0x5E, 0xFF}}}, ++ {{{47, 37, -52},0, {478, 690},{0x1E, 0x5A, 0xAC, 0xFF}}}, ++ {{{90, 18, 30},0, {421, 268},{0x23, 0x4B, 0x60, 0xFF}}}, ++ {{{90, 22, -50},0, {476, 268},{0x27, 0x58, 0xAD, 0xFF}}}, ++ {{{90, 18, 30},0, {421, 268},{0x23, 0x4B, 0x60, 0xFF}}}, ++ {{{115, 9, 23},0, {425, 23},{0x3B, 0x44, 0x59, 0xFF}}}, ++ {{{90, 22, -50},0, {476, 268},{0x27, 0x58, 0xAD, 0xFF}}}, ++ {{{115, 13, -46},0, {473, 23},{0x3C, 0x4C, 0xAE, 0xFF}}}, ++ {{{143, -2, -32},0, {462, -261},{0x5D, 0x36, 0xBC, 0xFF}}}, ++ {{{143, -5, 11},0, {433, -261},{0x57, 0x2D, 0x51, 0xFF}}}, ++ {{{158, -16, -10},0, {447, -430},{0x7F, 0xF9, 0x3, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 4, 2, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 7, 6, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(11, 7, 10, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_0 + 48, 7, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_1[46] = { ++ {{{26, -25, 21},0, {20, 981},{0xFA, 0xAE, 0x61, 0xFF}}}, ++ {{{43, 23, 27},0, {20, 981},{0xFD, 0xF3, 0x7E, 0xFF}}}, ++ {{{-5, 34, 28},0, {20, 988},{0xFD, 0xF6, 0x7F, 0xFF}}}, ++ {{{-21, -13, 20},0, {21, 988},{0xE6, 0xB9, 0x66, 0xFF}}}, ++ {{{-36, 23, 26},0, {21, 992},{0xBB, 0xF9, 0x6B, 0xFF}}}, ++ {{{-33, 36, 27},0, {21, 992},{0xC1, 0x2, 0x6E, 0xFF}}}, ++ {{{-45, 26, 5},0, {24, 994},{0x84, 0x6, 0x19, 0xFF}}}, ++ {{{-42, -8, 16},0, {21, 992},{0xA5, 0xC5, 0x42, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8C, 0xCC, 0xFD, 0xFF}}}, ++ {{{-45, 28, -18},0, {28, 994},{0x83, 0x7, 0xEA, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xAA, 0xCA, 0xB4, 0xFF}}}, ++ {{{-35, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{-33, 39, -44},0, {33, 992},{0xB2, 0x13, 0x9D, 0xFF}}}, ++ {{{-11, 20, -51},0, {34, 988},{0xE5, 0xEE, 0x85, 0xFF}}}, ++ {{{-5, 38, -52},0, {35, 988},{0xF0, 0xC, 0x83, 0xFF}}}, ++ {{{38, 11, -52},0, {34, 981},{0xFE, 0xEE, 0x82, 0xFF}}}, ++ {{{44, 28, -53},0, {35, 981},{0x2, 0x3, 0x81, 0xFF}}}, ++ {{{38, 11, -52},0, {34, 981},{0xFE, 0xEE, 0x82, 0xFF}}}, ++ {{{-5, 38, -52},0, {35, 988},{0xF0, 0xC, 0x83, 0xFF}}}, ++ {{{27, -22, -43},0, {32, 981},{0xF4, 0xAA, 0xA3, 0xFF}}}, ++ {{{-11, 20, -51},0, {34, 988},{0xE5, 0xEE, 0x85, 0xFF}}}, ++ {{{-21, -11, -37},0, {30, 988},{0xE2, 0xB3, 0x9F, 0xFF}}}, ++ {{{-15, -30, -7},0, {25, 987},{0xD8, 0x88, 0xFF, 0xFF}}}, ++ {{{23, -33, -9},0, {25, 981},{0xF8, 0x81, 0xFC, 0xFF}}}, ++ {{{26, -25, 21},0, {20, 981},{0xFA, 0xAE, 0x61, 0xFF}}}, ++ {{{-21, -13, 20},0, {21, 988},{0xE6, 0xB9, 0x66, 0xFF}}}, ++ {{{-42, -8, 16},0, {21, 992},{0xA5, 0xC5, 0x42, 0xFF}}}, ++ {{{-36, 23, 26},0, {21, 992},{0xBB, 0xF9, 0x6B, 0xFF}}}, ++ {{{-45, -5, -9},0, {26, 992},{0x8C, 0xCC, 0xFD, 0xFF}}}, ++ {{{-42, -6, -36},0, {30, 992},{0xAA, 0xCA, 0xB4, 0xFF}}}, ++ {{{-35, 26, -43},0, {32, 992},{0xAA, 0xFF, 0xA2, 0xFF}}}, ++ {{{82, -2, -49},0, {34, 974},{0x7, 0xE4, 0x84, 0xFF}}}, ++ {{{87, 13, -51},0, {35, 974},{0xA, 0xFC, 0x81, 0xFF}}}, ++ {{{112, 3, -47},0, {34, 970},{0x20, 0xEB, 0x87, 0xFF}}}, ++ {{{102, -27, -38},0, {31, 970},{0x15, 0xA5, 0xA9, 0xFF}}}, ++ {{{140, -11, -31},0, {31, 966},{0x40, 0xCD, 0x9F, 0xFF}}}, ++ {{{137, -32, -11},0, {27, 965},{0x34, 0x8C, 0xFE, 0xFF}}}, ++ {{{153, -22, -11},0, {27, 963},{0x56, 0xA2, 0xFE, 0xFF}}}, ++ {{{140, -13, 9},0, {24, 966},{0x39, 0xC4, 0x61, 0xFF}}}, ++ {{{101, -30, 13},0, {22, 970},{0x13, 0xA2, 0x53, 0xFF}}}, ++ {{{112, 0, 23},0, {22, 970},{0x1D, 0xE0, 0x78, 0xFF}}}, ++ {{{87, 9, 29},0, {21, 974},{0x4, 0xEA, 0x7D, 0xFF}}}, ++ {{{73, -29, 17},0, {21, 974},{0x1, 0xA5, 0x59, 0xFF}}}, ++ {{{99, -36, -11},0, {26, 970},{0x6, 0x81, 0xFD, 0xFF}}}, ++ {{{71, -36, -11},0, {26, 974},{0xFC, 0x81, 0xFC, 0xFF}}}, ++ {{{74, -26, -42},0, {32, 974},{0x2, 0xA7, 0xA5, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_1[] = { ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(2, 4, 3, 0), ++ gsSP1Triangle(2, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(6, 9, 8, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 16, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(3, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(6, 9, 10, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(6, 10, 12, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(5, 6, 13, 0), ++ gsSP1Triangle(5, 13, 14, 0), ++ gsSP1Triangle(4, 5, 14, 0), ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_1 + 31, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 3, 0, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(12, 8, 11, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(3, 12, 14, 0), ++ gsSP1Triangle(14, 0, 3, 0), ++ gsSP1Triangle(12, 3, 5, 0), ++ gsSP1Triangle(12, 5, 8, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_2[12] = { ++ {{{73, -29, 17},0, {-16, -16},{0x1, 0xA5, 0x59, 0xFF}}}, ++ {{{87, 9, 29},0, {-16, -16},{0x4, 0xEA, 0x7D, 0xFF}}}, ++ {{{43, 23, 27},0, {-16, -16},{0xFD, 0xF3, 0x7E, 0xFF}}}, ++ {{{26, -25, 21},0, {-16, -16},{0xFA, 0xAE, 0x61, 0xFF}}}, ++ {{{71, -36, -11},0, {-16, -16},{0xFC, 0x81, 0xFC, 0xFF}}}, ++ {{{23, -33, -9},0, {-16, -16},{0xF8, 0x81, 0xFC, 0xFF}}}, ++ {{{27, -22, -43},0, {-16, -16},{0xF4, 0xAA, 0xA3, 0xFF}}}, ++ {{{74, -26, -42},0, {-16, -16},{0x2, 0xA7, 0xA5, 0xFF}}}, ++ {{{38, 11, -52},0, {-16, -16},{0xFE, 0xEE, 0x82, 0xFF}}}, ++ {{{82, -2, -49},0, {-16, -16},{0x7, 0xE4, 0x84, 0xFF}}}, ++ {{{44, 28, -53},0, {-16, -16},{0x2, 0x3, 0x81, 0xFF}}}, ++ {{{87, 13, -51},0, {-16, -16},{0xA, 0xFC, 0x81, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_2[] = { ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_2 + 0, 12, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 4, 6, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_005_mesh_layer_1_vtx_3[16] = { ++ {{{85, 10, -56},0, {337, 25},{0x30, 0xD, 0x8B, 0xFF}}}, ++ {{{87, 13, -51},0, {338, 29},{0x53, 0x40, 0xB8, 0xFF}}}, ++ {{{89, 9, -49},0, {339, 26},{0x65, 0xE7, 0xB6, 0xFF}}}, ++ {{{44, 24, -58},0, {322, 24},{0xEB, 0x2F, 0x8C, 0xFF}}}, ++ {{{78, 6, -51},0, {335, 20},{0xCB, 0xD5, 0x95, 0xFF}}}, ++ {{{77, -13, -50},0, {337, 2},{0x18, 0xBF, 0x96, 0xFF}}}, ++ {{{81, -16, -43},0, {339, 2},{0x42, 0xB2, 0xB5, 0xFF}}}, ++ {{{77, -18, -43},0, {338, -1},{0x6, 0x99, 0xB6, 0xFF}}}, ++ {{{33, -3, -48},0, {321, -2},{0xC6, 0xAC, 0xB4, 0xFF}}}, ++ {{{36, 1, -55},0, {322, 1},{0xD4, 0xDF, 0x8E, 0xFF}}}, ++ {{{31, 1, -49},0, {320, 1},{0x9B, 0xF2, 0xB4, 0xFF}}}, ++ {{{40, 26, -51},0, {320, 26},{0xA4, 0x35, 0xBA, 0xFF}}}, ++ {{{44, 28, -53},0, {321, 28},{0xEE, 0x6C, 0xC0, 0xFF}}}, ++ {{{43, 5, -51},0, {324, 8},{0x39, 0x8, 0x8F, 0xFF}}}, ++ {{{47, 17, -52},0, {323, 20},{0x24, 0xBD, 0x9B, 0xFF}}}, ++ {{{74, -5, -49},0, {335, 8},{0xF5, 0xB, 0x82, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1_tri_3[] = { ++ gsSPVertex(super_sonic_000_displaylist_005_mesh_layer_1_vtx_3 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(0, 5, 4, 0), ++ gsSP1Triangle(0, 6, 5, 0), ++ gsSP1Triangle(2, 6, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 3, 0), ++ gsSP1Triangle(3, 10, 11, 0), ++ gsSP1Triangle(12, 3, 11, 0), ++ gsSP1Triangle(12, 1, 3, 0), ++ gsSP1Triangle(9, 3, 13, 0), ++ gsSP1Triangle(13, 3, 14, 0), ++ gsSP1Triangle(4, 14, 3, 0), ++ gsSP1Triangle(13, 15, 9, 0), ++ gsSP1Triangle(5, 9, 15, 0), ++ gsSP1Triangle(5, 15, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_0[4] = { ++ {{{13, 23, -24},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{93, 23, -40},0, {974, 1978},{0x19, 0x0, 0x7D, 0xFF}}}, ++ {{{92, 184, -39},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_0[] = { ++ gsSPVertex(super_sonic_000_displaylist_001_mesh_layer_4_vtx_0 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx super_sonic_000_displaylist_001_mesh_layer_4_vtx_1[4] = { ++ {{{-67, 184, -9},0, {-16, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 23, -24},0, {974, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{13, 184, -24},0, {974, -34},{0x17, 0x0, 0x7D, 0xFF}}}, ++ {{{-67, 23, -9},0, {-16, 1978},{0x17, 0x0, 0x7D, 0xFF}}}, ++}; ++ ++Gfx super_sonic_000_displaylist_001_mesh_layer_4_tri_1[] = { ++ gsSPVertex(super_sonic_000_displaylist_001_mesh_layer_4_vtx_1 + 0, 4, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_super_sonic_sonic_skin[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_sonic_skin_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_super_surface[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(1983, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_super_surface_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_sonic_sonic_super_surface[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_metal_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(4031, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_metal_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 128), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), ++ gsDPSetTileSize(0, 0, 0, 252, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_sonic_metal_v4[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_black_material_f3d_001_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_black_material_f3d_001_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_mouth_none[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_sonic_mouth_none_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_super_eye_texture[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_super_eye_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_super_eye_texture_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_super_surface_replacer[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, TEXEL0, 0, 0, 0, ENVIRONMENT), ++ gsSPSetGeometryMode(G_TEXTURE_GEN), ++ gsSPTexture(1983, 1983, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_super_surface_replacer_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_sonic_super_surface_replacer[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_mouth[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_mouth_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_sonic_mouth_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_super_eye_half[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_super_eye_half_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_super_eye_half_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_eye_closed[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_soniceyenew_closed_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_sonic_eye_closed_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_eye_dead_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_soniceyenew_dead_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_sonic_eye_dead_001_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_gloves_001_v4_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_gloves_001_v4_001_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_gloves_v4_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_gloves_v4_001_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_t128[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_sonic_new2_rgba16_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(super_sonic_sonic_t128_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_white_material_f3d_v4[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_white_material_f3d_v4_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_buckle[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_sonic_buckle_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_shoe[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_sonic_shoe_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_sonic_white[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(super_sonic_sonic_white_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_wing_2_001_v4_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_wing_2_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_sonic_wing_2_001_v4_001[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_super_sonic_wing_1_001_v4_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, super_sonic_wing1_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 2047, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 252), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_super_sonic_wing_1_001_v4_001[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_001_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_001_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_skinned_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_001_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_001_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_texture), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_mouth_1[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_texture), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_super_eye_half_2[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_half), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_closed_3[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_sonic_eye_closed), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_4[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_texture), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_black_material_f3d_001_v4_5[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_texture), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_mesh_layer_1_mat_override_sonic_eye_dead_001_6[] = { ++ gsSPDisplayList(mat_super_sonic_black_material_f3d_001_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_mouth_none), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_super_eye_texture), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_4), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_super_surface_replacer), ++ gsSPDisplayList(super_sonic_000_displaylist_mesh_layer_1_tri_5), ++ gsSPDisplayList(mat_revert_super_sonic_super_surface_replacer), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_004_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_004_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_004_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_004_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_003_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_gloves_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_003_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_003_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_gloves_v4_001), ++ gsSPDisplayList(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_002_switch_option_right_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_006_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_006_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_006_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_006_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_007_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_007_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_007_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_007_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_skin), ++ gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_007_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_007_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_004_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_gloves_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_004_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_004_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_gloves_v4_001), ++ gsSPDisplayList(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_002_switch_option_left_hand_open_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_gloves_v4_001), ++ gsSPDisplayList(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_004_switch_option_left_hand_peace_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_009_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_009_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_009_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_009_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_009_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_009_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_010_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_010_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_sonic_t128), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_white_material_f3d_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_010_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_010_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_t128), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_buckle), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_shoe), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_sonic_white), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_011_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_011_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_002_mesh_layer_4[] = { ++ gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_002_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_002_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_012_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_012_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_012_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_012_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_012_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_012_mesh_layer_1_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_013_skinned_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_013_skinned_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_skinned_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPDisplayList(mat_super_sonic_sonic_t128), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_white_material_f3d_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_sonic_super_surface), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_sonic_super_surface), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_offset_013_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_offset_013_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1[] = { ++ gsSPDisplayList(mat_super_sonic_sonic_t128), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_super_sonic_sonic_shoe), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_super_sonic_sonic_white), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_super_sonic_sonic_buckle), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_005_mesh_layer_1_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_2), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPDisplayList(mat_super_sonic_metal_v4), ++ gsSPDisplayList(super_sonic_000_displaylist_005_mesh_layer_1_tri_3), ++ gsSPDisplayList(mat_revert_super_sonic_metal_v4), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_001_mesh_layer_4[] = { ++ gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_000_displaylist_001_mesh_layer_4_mat_override_metal_v4_0[] = { ++ gsSPDisplayList(mat_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_0), ++ gsSPDisplayList(mat_revert_super_sonic_wing_2_001_v4_001), ++ gsSPDisplayList(mat_super_sonic_wing_1_001_v4_001), ++ gsSPDisplayList(super_sonic_000_displaylist_001_mesh_layer_4_tri_1), ++ gsSPDisplayList(mat_revert_super_sonic_wing_1_001_v4_001), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx super_sonic_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/actors/super_sonic/sonic_mouth.rgba16.png b/actors/super_sonic/sonic_mouth.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..c728d40b5df85086524e253496cd289bc6bef728 +GIT binary patch +literal 419 +zcmV;U0bKrxP)41X&I^zyBqJdErt9 +z9$wT!lpIHpSEwR%9Wv*kn5ZX4|ntYz+7BvcR}t`rYAT6h1x<(GEZleo!G~VEmiG +z%I+7~{Nsn&z@dWAGHi0FPRFJKD28r1x-v!OKMbN`j0~4AurjDKVvG5rE;Z9hsZg*hBV6BPo~vJBZ`7@Ooo2-8R{dei}s(0 +zSa`Xs?QBFd(jE*3< +zr_+kX`LJshp-ZhqLDzNH{zFiNLLqAR&>Dcm)Br@3(akpv0K>3$#+Q4RLiBcs=j4@1 +zvjS*MlM96c0liQ+?q9`MTRVVdR1JkryjYq~rhm`2rrSdR{mxJ9j2i?#)T6?531u2mF^#h@^U0Vhhqb5sq`ed-dp +zil2)J!|9>|#85QAwr7Wdz^VW-$aOwC&vV$QXaI*?E_dF@6D2TLI;BtDpm)H`F1-n( +zW9zThf%~`a?AIB5%nFEWdS)6r69t}#3VTlt!r?F+=5Ea4SuU4(iURP51B)#(b{*(w +z*&x_)r)fPkP$ZGO)oPW7D9)~cJ-|yC!Pp4ku-#yf+=+mfG62S0`?QfK4<8;f%s>p~ +zqj#f!HT1s-|_9ixduF! +zffZnBA@cfDiLC&9Isq$9SB7$y#I^>o;+lnPoqUbIPrm&))BtY0inwTdAD{>h0L=Yi +z<3Iq?Y&KikFUf@5MrW_-T6=SGYiTb@EIY|vNyq6(V^4hEQ|ADffV1fFUJ~rQuE-b& +v1SFk94Z3dE2!kSUv?=#$;*}-KNKWuyVtyz4^-&sT00000NkvXXu0mjfJa&;G + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/sonic_super_surface.rgba16.png b/actors/super_sonic/sonic_super_surface.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..6d09216c4ddcdacc9fc73679d38bf9569907b825 +GIT binary patch +literal 1445 +zcmV;W1zP%vP)lWnwec6T{!jh-Z|hpixidFko!5}VT4|D3+DUe_q{ELWky0t(kih8Mz~&Oez?`lz +zvDa4m%(q6G>sSKN#NL)OkFz=F&6-cefZUAcj*>xZ&p-@AFcJW===5Q(X8wQ@?PTr{ +zCZ&ae^Oz@o6R>asAi1;VjFFEQ<`sK}g{2B$lZ{|&C8KF9_xj-Ygn{hi~me?N!; +z{~c5LlvWh!r*kXTLUo}WVTOd>q4?af&fJT|m&sB(+QPE7jNt1AXSrT&U3WGf-`iRp +z#Hk%)hvBl`VM+&p2>|k&KqT?0{$@2(HTgFIU_L9BhKl_Y=Mox+*^c}S23y&ZVZQb# +zSUVf@9&2yS`_5MHt*cv0ZjTL}h0p+C_bn%&)gjaoU;>eegN!7_LPl~H)v}ghL}|qy +zFj+s@JgwHVlzTevU)Z|idq(s;+z=ig%*89HCo8(Wt#QZqo^Vi%)$9r%ISI`P$GLYn +z=ALgfC!|QJ=%4w0k}K2!1kMHjj=~5QTz~SCfUsq)h=sa_AhILuEQZRGKUkX%=EK2a +zg&xBVB@5gQA1DlL&aWq$(W&UQwI|*(ec>RBBfcI|A!QQt0>D_}QNd40S7NQg2Mbi^ +zoz>7H`hBc$0qeOYURu^*BHX}$)5U|NWk=An!2&kVD8Zrgvn5h2%&U3V+X99K>W{Ki +zRzrJfu;6yg5Yx$y7_46iIsm!KF%pa%c0LsFDXKn0eX$5L^*K-Ypfm^Ce| +z(Hj6LBNthH)~O-uPT{ET7Rd~Zm8)#1_ST`yx~g0kng#?YQyhMGxHyw>d0hdJ6!ADt +zA?#U1Vn$P5j{t!QE)<{`o)E^8zqR6$xjtYN_Yink?t-`8-&)ncYWp5A2dvamiDd1>Za4)=6~td$t}9Z8=FW!>=*Tn}8JGr{y3yJZ?b +zEd)zc^c320pEx^GZ?OFz(&0bLFQ?f8fJ`fv0wUl;+# +zJ^Cxu+_4C+lcEU|GtsjLgd$(5#C59Fbkqh}otoBaIQIcXQmR01DPn=HR4yroau59q +z>;eLXh~jD_z7#Nu;7Z@7c|yfl>c;t70amU? +z(nLUXfsyM)sa*87x5S(F0$hbGU{JpQG24+q{JNfxN?;E1r!iATOZn8Z;|%i!|&1f~*x8|t}STiS*13GM;%b3;A%qI<)8BAT8^ +z8|t}DMCOL~M4X@cP4%4OPOOmz7rrOrK#Fgv=Srn5?}<2Utmoyr-SD0$S)f$Bw4R@C +zK<>;7-xCGEmU`|gvS7n|BDNdr`PTPDe0R02o?F!2fBAbNru|21!{zndlIs2C?}_NI +zej);~;=+1v%LA3~4i+wZPef}`zM-CPeNX%Yoje)4VFG?j00000NkvXXu0mjfumHDZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/sonic_super_surface_replacer.rgba16.png b/actors/super_sonic/sonic_super_surface_replacer.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..6d09216c4ddcdacc9fc73679d38bf9569907b825 +GIT binary patch +literal 1445 +zcmV;W1zP%vP)lWnwec6T{!jh-Z|hpixidFko!5}VT4|D3+DUe_q{ELWky0t(kih8Mz~&Oez?`lz +zvDa4m%(q6G>sSKN#NL)OkFz=F&6-cefZUAcj*>xZ&p-@AFcJW===5Q(X8wQ@?PTr{ +zCZ&ae^Oz@o6R>asAi1;VjFFEQ<`sK}g{2B$lZ{|&C8KF9_xj-Ygn{hi~me?N!; +z{~c5LlvWh!r*kXTLUo}WVTOd>q4?af&fJT|m&sB(+QPE7jNt1AXSrT&U3WGf-`iRp +z#Hk%)hvBl`VM+&p2>|k&KqT?0{$@2(HTgFIU_L9BhKl_Y=Mox+*^c}S23y&ZVZQb# +zSUVf@9&2yS`_5MHt*cv0ZjTL}h0p+C_bn%&)gjaoU;>eegN!7_LPl~H)v}ghL}|qy +zFj+s@JgwHVlzTevU)Z|idq(s;+z=ig%*89HCo8(Wt#QZqo^Vi%)$9r%ISI`P$GLYn +z=ALgfC!|QJ=%4w0k}K2!1kMHjj=~5QTz~SCfUsq)h=sa_AhILuEQZRGKUkX%=EK2a +zg&xBVB@5gQA1DlL&aWq$(W&UQwI|*(ec>RBBfcI|A!QQt0>D_}QNd40S7NQg2Mbi^ +zoz>7H`hBc$0qeOYURu^*BHX}$)5U|NWk=An!2&kVD8Zrgvn5h2%&U3V+X99K>W{Ki +zRzrJfu;6yg5Yx$y7_46iIsm!KF%pa%c0LsFDXKn0eX$5L^*K-Ypfm^Ce| +z(Hj6LBNthH)~O-uPT{ET7Rd~Zm8)#1_ST`yx~g0kng#?YQyhMGxHyw>d0hdJ6!ADt +zA?#U1Vn$P5j{t!QE)<{`o)E^8zqR6$xjtYN_Yink?t-`8-&)ncYWp5A2dvamiDd1>Za4)=6~td$t}9Z8=FW!>=*Tn}8JGr{y3yJZ?b +zEd)zc^c320pEx^GZ?OFz(&0bLFQ?f8fJ`fv0wUl;+# +zJ^Cxu+_4C+lcEU|GtsjLgd$(5#C59Fbkqh}otoBaIQIcXQmR01DPn=HR4yroau59q +z>;eLXh~jD_z7#Nu;7Z@7c|yfl>c;t70amU? +z(nLUXfsyM)sa*87x5S(F0$hbGU{JpQG24+q{JNfxN?;E1r!iATOZn8Z;|%i!|&1f~*x8|t}STiS*13GM;%b3;A%qI<)8BAT8^ +z8|t}DMCOL~M4X@cP4%4OPOOmz7rrOrK#Fgv=Srn5?}<2Utmoyr-SD0$S)f$Bw4R@C +zK<>;7-xCGEmU`|gvS7n|BDNdr`PTPDe0R02o?F!2fBAbNru|21!{zndlIs2C?}_NI +zej);~;=+1v%LA3~4i+wZPef}`zM-CPeNX%Yoje)4VFG?j00000NkvXXu0mjfumHDZ + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/soniceyenew_closed.rgba16.png b/actors/super_sonic/soniceyenew_closed.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..219a12e973b4500c1ebb11a5b05dd64ec052795e +GIT binary patch +literal 152 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDCp(s +z;usRanOw6^{kc7}?7_{~=SzxQk(I35Ykim@$@t>MyftCHRtY97ZqE1#28M|ZJVMjv +S|NaUzmBG{1&t;ucLK6U0sV8dy + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/soniceyenew_dead.rgba16.png b/actors/super_sonic/soniceyenew_dead.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..73b833d303d6fbfefb0be489a681aad723849caa +GIT binary patch +literal 675 +zcmV;U0$lxxP)= +zpjN8|nUq77pYZA=kJ#}k1JRw$W^sFa%Z_KUScKJTWkAR;LdMR%LZUY@M18m0MWIk& +zddFfhJUl#r3}`l+5ekK%QmH_`*gqY7dk=^y +z@-ML`04D}c3>=LCx=p#p(E#v$UmOhp*W1(H3BZYg69eDQzz2-L<%5a(oOS>J002ov +JPDHLkV1oKKEN%b* + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/super_eye.rgba16.png b/actors/super_sonic/super_eye.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..1b5a736bf1c534b7dcc322a31db8e00da95ce02b +GIT binary patch +literal 242 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND7eJa +z#W5s;Gx-lc3lB5L47Lk-8?G+qOHefDIyc|mKVbF3g^G@*D%K2XhT$6wZ+tkuUoi8> +zUHvT*cMI9pu&sA?*x3+K@b1pe|K=i+4<#byFQ`rM4)~BK$+jVCf?W*5*^>$Em!~GM +z?CcSd_UvQ|Ra(@L!hS%8yO^V=zxSB*_W<4$YlhjaPda!jq$ElYWN`GfVG;}sYU}zP +UkFS;B0lJsL)78&qol`;+05Q%{D*ylh + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/super_eye_half.rgba16.png b/actors/super_sonic/super_eye_half.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..df7ffeb912514f2c33b9f1105a2b4590e2d80439 +GIT binary patch +literal 253 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND7fC! +z#W5s;Gr4A;`g42cnGbHhKF`DTs*h*?y}5}D8+(<+CgcbSpR`)BCh-cR&J~`EpP!#! +zERmj((Q)Ybv4yLc^QvboxV7;y&y4=_iXo*AKUUXk@ZETuenjE)sS^ctZzI`a`XoNM +zcw7~T&}@4p|IjyGVjtsSmg(;u54wi3uW))SBgX$jr)?$Bq>haOX@)&+yv8#$WM2ld +h_p}|z;J_dl7=kt{+!U7H7X@@WgQu&X%Q~loCIAn;UswPD + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/wing1.rgba16.png b/actors/super_sonic/wing1.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..394cbd582cae233fc7664fb14e296d5178bf2675 +GIT binary patch +literal 1341 +zcmV-D1;YA?P)e5m?2jzIS_@1cUB;gNF)-8L?V$$Boc{4BKZkOBoc{4 +zB9TZW636zJ-7n{MCK(ubZ_Sc(dMc?@-FvIj-7~OQ{EVLt{NFpU@n1IJ`uh5Pb91v$ +zV!8gPfXmCvLI}~;)>a{u7|Zx00xm8tRuZR(zlx0C^l^TEUWt=r)%@3Q;$A?WSd!v% +z-m~BCz}eYZA%1&%>z;FuG=1Od!0GAfJH%F5CY_4im)JP$mpgEBa#F|vbx6>&#weII +z^Dhe^S@I+tJ#G@FkS_~3Iyx%np2Y23BCVBc6|{B-4i672IUp@@t|h@TBu~4x0Fr4l +zBgwM$W%J*UB*T^K?d|RL?t%UN{iSz#ieTP@Dl1*%@&dQ0&>Y0;kP63ISPYJO41OkwC`UJ-+LSk+1G5?eR$plGaK=3;tmK>h~ +znd?vcp@8Yk-UU%WYXNUZigGWBoqs5xCF`w|Kwx}|(1&g39}38Jx8xG1g}{!reg&k6 +zl>)f=1nZGoAw+<_zP{F~SCOZXl>%B)*MN`6GbSrdQpIA20@k_tUS3{if>u>emr}s+ +z2MLvo+TT`hN80LpRU;q;4?D1mTme?%8X@?!DF9;c5wLf6cNcqmd;KGz{Z^CU`XFFV +zC6Fk#Fvo`iAa+bQb|DtG+X0DMD+m@)2n5PKiM7Tb92^v}_#Hz5RK;jTxPE?qp6v-J +zsqMysMY|c2W5HSy(BAzdNs49A`reQn3#qLqFX!SAwN+sfYz<%>@bM +zTy#y5;tvG~-dX_kr6_@^eEQ{7Iv|P1$({fB__%m_dMbjzSrT9po4sNC+kJ&W!kmhY +zNsBo4@9ypj{E`6FlF++IWF#PK{kEKS#ir7$s)&^aO@r+Ni1 +z2@qT|0XZ*y0%8H=&K?O+B$jb}d|Yf-06RSrlNCdpK7jBG$R5M}e^!g~<--$VoIJGy +z?H7<_SgJHZKrB^r=d%Yeq*$(u=e$|74;I7yDgcMh5)mIgKR(D6U_Mr&+uPg4{r!D; +z+{9>Y6`-m%z{)&hbxA^e<}kN2(_hl%g+tZEXPh`yKntXxOf*TGtu`N<{^?(K^;m4b +zMS)!f2&zif1oQ*|z-3n?C&&EEBhId54D*=)li64`c#jjy+b>0!L#5pDiI;QZurmQ} +z5X@y2uG!~(U}tQp;8;6@IEH&=(fOzX4Aer>8xIc;)om=K4tzWr2xS;k7V!Z-c~wB{ +z4X1$dCPM_tZ3h(1o6(^F_tH*r8#4h0o7`HGIddK_25W@yT_7-`^n<5g?CHI*k+?Gf +zxj~{y_#sMQWAP)1*f!oAJH@g1L&W@{00I(}H(C-{8RQTdpO$Vhydk+auCA_%&yS&i +zB;(9!GebY1{JgSC0o`|vwR6*d)MxEyuL>Z@s@QPg^`tN!672rIJKs31QjYbvF3jknxm(KvEs%Pt7-a5Wt +zZLk$V-aE54{=4g$fSa3}QeCg|?-Kpwk2>%-@U)_FskK$M00000NkvXXu0mjfc++m= + +literal 0 +HcmV?d00001 + +diff --git a/actors/super_sonic/wing_2.rgba16.png b/actors/super_sonic/wing_2.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..7be615e006b8d62ac8994478b24167ca48d40c42 +GIT binary patch +literal 1032 +zcmV+j1o!)iP)e5n5|YTF%*T{yG9_9NF=h4&`01AkURpi5{cvykjTnP +zBoc{4B5@^OSUc>5q-5q&#J$a0({qyZvv>!_9n7OVr*r^O9 +zfzG((M(H*Ci;IhSGIT15K&OA^rdcB)F{Q^*v +za=9E`ehAMW9v->~_zcn6zP^Q3m2evFB(m9TwoZ1?EMVgx^aa2^_gkceiw})Bd}v`U +zqzQRGbmDvr|BQfukOIf)yH=8G`2!v*keTB_1em~;OfvKSiw@vVPfxS+^YiQ$4gLTr +z%LCp|5Fszm2?&&JzzB%ICEZaZkgmH=OJ|J%&N)##DMAQg`MwZP0*tNZfb!88eRB8(iQ4S(O}jwAl1hZEH3xKEzD@w}@W%9I_V}g>2)LA< +zPxIM7F`NtLz>h-v?SxJ_l~;o(z2~iFsHo +z>G|y-N?eY4U%DhQtc6g~?n=aMD6pE;LKBGk_-f2`?Sxvc+E_+F$vv@xWK$oXa*RF? +zoiQ!#0uNH+8WH))$0f7Byu9o#Ke^ILsKgGccFn!Bv9$hn2YhLz~rLEmr|9`fj-P1zl=jlz*CM~&*%C)lrWtG +z0BL5F7M(_wWV^k+om6TEb$uS*R3iZ|yYx~L7-m2D+;?E<>4ijKGL(Idw{DZ{V`Y;- +znFwHR%as2B%3R)01bonSfCWBfpL?#F9?yZ&pfV%1L+u0iC!frXWQoNDDG0|EK$RSscQe*s{%|5nQuq3(U{GkRZyA_0K8n0ffi +zeXonIoXEh@s)x*PExeM%p?|2rp#p~r94hdCSKu8HX2-i06$$bH0000ycRG>G@%4bZPexEJQxKw5HM7SiAo(1S{KBEw%&x``NGh= +z0|_ETi%2Qe$SH%?tI=x9-FfFGfM7+44qEW4yuZ{k0s=dP9*E>u8KPK{yg+)bk03hd56!Ns=pY6Yuo8B@FGXsTj_?^7wZa}NYXqX5y +z66-8uq#p1*@U;M$YX+8K>vTBvM2+invx|f_irW;6xAE#2pD%Ll^Yz5T{y;5G(k!F+ +zj93)E5(%Do7iLTbIIJxg9GT=gRwpCUc6%LM@QjP3{g_U~p&6A|h0pnTzcHVu?VcWP +zM-f{HQN#LJo42sCyv5eNC>{a!f7v;5u8$>zIO^Py`_>5_GsA^LOH-~;rYAG-2)SsJMaTvM45Km=qCI7FkA+3Gj)-^yK2LZ;GJ!)fE}rD7t%g4Nn-+e +z8xQF3iIp#xbPhTyO_h(V93Bt+Y^$z|%)i`0PDm-q6(*K%;9~L7am!`3Rcjk8N7~HS +zKyGLl6d?(f-s;WMM~}wZ5~Ph^j9-uJ8RS+PZ$Rmc2>pf^oNLAM$-io +zR4sj#rGula2DxI7+2CJ$r(Xw^x>ng=#8op105 +zgRjOGpm`5h+8=3;p7WfX!j^veG%s2=3E{`o`ou(nCJ@+KE5BJ+E9n{pOQM=G{=u^b +zh@aGNko%+*Tc{C|P^^+Z*C!0UT^z^84Z_+Wq2Fz~!78{kxuip68THn$q31jfV&0c6 +z_pUt@gI`%8D!1EqXZr;3i>3@QbBi7>_U3wQ-U8IQqr6gDB6>qu&i9TVv$^-s@OQ~Z> +z`so(vDXZ(aH#w%?`)9)5r)uedtX*@z?uY +zb-}~;!zidLg6erKKK&muRWI~>2i1I%eFMxuiU9rvTNG`3EvDY*dgxg>Z+Op7K%*== +zCv?gv#=QNewB-fpR|-5~&1}-d7?ekCB$9#5Zh)_95yegVx9DbZ*gc<9YSpJR!)OSr +zSA$qaMHn+N+G)_&Q$&puD=7gtNAVa%DDoJpO3lZM(d}M+V= +zWx_E`7R8H8x?zLHl$Xk}UbkVv|LOV#Cq;W?W@;^?G|WOJr&ojp^JBn>zj?2M*-+Dn +zDfMvZ)pXtpJ@iA;%Fu+u*V2}pdK=34v+T=gA@9Cl-&-+e;hC%tCvDQ~W*)bbcdI6OzRZUqRvZ`VP~X4bsr!ZLfg_Muk@gT<`y@`L%dGys=6SQ-!OAw}Hw+7pdYj!p#x@dkU>YEO7Uo?^l)wesWjJ|M8 +z3T%P)rxBLq!#x_c8dpn!R0t|vZQfLarJ;KpPzsGlta{; +z0U?{3wk~#cID@Azz_Cdt7|U7J|zX9qZO4+QT1c +zMjx0)qg5?v^^l>9-dLPIZSrFp%X3o53S%*w1=af7H+#71G@PiDRbbN^PG4sK#Y0+R +z4R6^sGR!E}{2x|P(>(wH + +literal 0 +HcmV?d00001 + +diff --git a/actors/ukiki/geo.inc.c b/actors/ukiki/geo.inc.c +index 72d864c..64d8dd9 100644 +--- a/actors/ukiki/geo.inc.c ++++ b/actors/ukiki/geo.inc.c +@@ -22,14 +22,24 @@ const GeoLayout ukiki_geo[] = { + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), + GEO_OPEN_NODE(), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(0x00, 0x40000), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), + GEO_OPEN_NODE(), +- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), ++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), ++ GEO_OPEN_NODE(), ++ GEO_SCALE(0x00, 0x40000), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH_AND_LINK(marios_cap_geo), ++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), +diff --git a/actors/ukiki/geo.inc.c.rej b/actors/ukiki/geo.inc.c.rej +new file mode 100644 +index 0000000..ac211e1 +--- /dev/null ++++ b/actors/ukiki/geo.inc.c.rej +@@ -0,0 +1,28 @@ ++diff a/actors/ukiki/geo.inc.c b/actors/ukiki/geo.inc.c (rejected hunks) ++@@ -22,14 +22,24 @@ const GeoLayout ukiki_geo[] = { ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), ++ GEO_OPEN_NODE(), ++- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), +++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), +++ GEO_OPEN_NODE(), +++ GEO_SCALE(0x00, 0x40000), +++ GEO_OPEN_NODE(), +++ GEO_BRANCH_AND_LINK(marios_cap_geo), +++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), ++ GEO_OPEN_NODE(), ++- GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), +++ GEO_TRANSLATE_ROTATE(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0), +++ GEO_OPEN_NODE(), +++ GEO_SCALE(0x00, 0x40000), +++ GEO_OPEN_NODE(), +++ GEO_BRANCH_AND_LINK(marios_cap_geo), +++ GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), +diff --git a/asm/crash.s b/asm/crash.s +new file mode 100644 +index 0000000..0b2a557 +--- /dev/null ++++ b/asm/crash.s +@@ -0,0 +1,153 @@ ++# SM64 Crash Handler ++# See Readme below. ++ ++.include "macros.inc" ++ ++/* --------------------------------------------------------------- ++ * IMPORTANT README: ++ * --------------------------------------------------------------- ++ * Frame buffer emulation is required. To enable it in GlideN64, ++ * check "Emulate frame buffer" and "Render frame buffer to output" ++ * in the "Frame buffer" tab. ++ * ++ * Your emulator's CPU core style should be set to interpreter for best results. ++ * ++ * See the DEBUG_ASSERT macro on how to call the crash screen for ++ * detected exceptions. ++ * ++ */ ++ ++.set noat ++.set noreorder ++.set gp=64 ++ ++.set COP0_CAUSE, $13 ++.set COP0_EPC, $14 ++.set COP0_BADVADDR, $8 ++ ++glabel crashFont ++ .incbin "enhancements/crash_font.bin" ++ .align 4 ++ ++glabel exceptionRegContext ++ .fill 0x108 ++ ++glabel pAssertFile ++ .dword 0 ++glabel nAssertLine ++ .dword 0 ++glabel pAssertExpression ++ .dword 0 ++glabel nAssertStopProgram ++ .dword 0 ++ ++glabel _n64_assert ++ lui $at, %hi(pAssertFile) ++ sw $a0, %lo(pAssertFile)($at) ++ lui $at, %hi(nAssertLine) ++ sw $a1, %lo(nAssertLine)($at) ++ lui $at, %hi(pAssertExpression) ++ sw $a2, %lo(pAssertExpression)($at) ++ lui $at, %hi(nAssertStopProgram) ++ sw $a3, %lo(nAssertStopProgram)($at) ++ beqz $a3, .end_2 ++ nop ++ syscall # trigger crash screen ++.end_2: ++ jr $ra ++ nop ++ ++glabel cop0_get_cause ++ jr $ra ++ mfc0 $v0, COP0_CAUSE ++ ++glabel cop0_get_epc ++ jr $ra ++ mfc0 $v0, COP0_EPC ++ ++glabel cop0_get_badvaddr ++ jr $ra ++ mfc0 $v0, COP0_BADVADDR ++ ++# If the error code field of cop0's cause register is non-zero, ++# draw crash details to the screen and hang ++# ++# If there wasn't an error, continue to the original handler ++ ++glabel __crash_handler_entry ++ mfc0 $k1, COP0_CAUSE ++ andi $k1, $k1, (0x1F << 2) ++ beqzl $k1, .end2 # exit if ExCode is 0 ++ lui $k0, %hi(__osException) ++ la $k0, exceptionRegContext ++ sd $zero, 0x018 ($k0) ++ sd $at, 0x020 ($k0) ++ sd $v0, 0x028 ($k0) ++ sd $v1, 0x030 ($k0) ++ sd $a0, 0x038 ($k0) ++ sd $a1, 0x040 ($k0) ++ sd $a2, 0x048 ($k0) ++ sd $a3, 0x050 ($k0) ++ sd $t0, 0x058 ($k0) ++ sd $t1, 0x060 ($k0) ++ sd $t2, 0x068 ($k0) ++ sd $t3, 0x070 ($k0) ++ sd $t4, 0x078 ($k0) ++ sd $t5, 0x080 ($k0) ++ sd $t6, 0x088 ($k0) ++ sd $t7, 0x090 ($k0) ++ sd $s0, 0x098 ($k0) ++ sd $s1, 0x0A0 ($k0) ++ sd $s2, 0x0A8 ($k0) ++ sd $s3, 0x0B0 ($k0) ++ sd $s4, 0x0B8 ($k0) ++ sd $s5, 0x0C0 ($k0) ++ sd $s6, 0x0C8 ($k0) ++ sd $s7, 0x0D0 ($k0) ++ sd $t8, 0x0D8 ($k0) ++ sd $t9, 0x0E0 ($k0) ++ sd $gp, 0x0E8 ($k0) ++ sd $sp, 0x0F0 ($k0) ++ sd $fp, 0x0F8 ($k0) ++ sd $ra, 0x100 ($k0) ++ # cop unusable exception fired twice on startup so we'll ignore it for now ++ li $t0, (0x0B << 2) ++ beq $k1, $t0, .end ++ nop ++ jal show_crash_screen_and_hang ++ nop ++ .end: ++ ld $at, 0x020 ($k0) ++ ld $v0, 0x028 ($k0) ++ ld $v1, 0x030 ($k0) ++ ld $a0, 0x038 ($k0) ++ ld $a1, 0x040 ($k0) ++ ld $a2, 0x048 ($k0) ++ ld $a3, 0x050 ($k0) ++ ld $t0, 0x058 ($k0) ++ ld $t1, 0x060 ($k0) ++ ld $t2, 0x068 ($k0) ++ ld $t3, 0x070 ($k0) ++ ld $t4, 0x078 ($k0) ++ ld $t5, 0x080 ($k0) ++ ld $t6, 0x088 ($k0) ++ ld $t7, 0x090 ($k0) ++ ld $s0, 0x098 ($k0) ++ ld $s1, 0x0A0 ($k0) ++ ld $s2, 0x0A8 ($k0) ++ ld $s3, 0x0B0 ($k0) ++ ld $s4, 0x0B8 ($k0) ++ ld $s5, 0x0C0 ($k0) ++ ld $s6, 0x0C8 ($k0) ++ ld $s7, 0x0D0 ($k0) ++ ld $t8, 0x0D8 ($k0) ++ ld $t9, 0x0E0 ($k0) ++ ld $gp, 0x0E8 ($k0) ++ ld $sp, 0x0F0 ($k0) ++ ld $fp, 0x0F8 ($k0) ++ ld $ra, 0x100 ($k0) ++ lui $k0, %hi(__osException) ++ .end2: ++ addiu $k0, $k0, %lo(__osException) ++ jr $k0 # run the original handler ++ nop +diff --git a/assets/anims/anim_27.inc.c b/assets/anims/anim_27.inc.c +index 565308e..d710e73 100644 +--- a/assets/anims/anim_27.inc.c ++++ b/assets/anims/anim_27.inc.c +@@ -12,590 +12,554 @@ static const struct Animation anim_27[] = { + + + static const u16 anim_27_indices[] = { +- 0x0070, 0x0001, 0x0070, 0x0071, 0x0070, 0x00E1, 0x0001, 0x0000, 0x0001, 0x0151, 0x0001, 0x0000, +- 0x0070, 0x103A, 0x0070, 0x10AA, 0x0070, 0x111A, +- 0x0070, 0x0EEA, 0x0070, 0x0F5A, 0x0070, 0x0FCA, +- 0x0070, 0x0D9A, 0x0070, 0x0E0A, 0x0070, 0x0E7A, +- 0x0001, 0x0D96, 0x0001, 0x0D97, 0x0001, 0x0D98, +- 0x0070, 0x0312, 0x0070, 0x0382, 0x0070, 0x03F2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x02A2, +- 0x0070, 0x0152, 0x0070, 0x01C2, 0x0070, 0x0232, +- 0x0001, 0x0D92, 0x0001, 0x0D93, 0x0001, 0x0D94, +- 0x0070, 0x0622, 0x0070, 0x0692, 0x0070, 0x0702, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x05B2, +- 0x0070, 0x0462, 0x0070, 0x04D2, 0x0070, 0x0542, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D95, +- 0x0070, 0x0C42, 0x0070, 0x0CB2, 0x0070, 0x0D22, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x0BD2, +- 0x0070, 0x0A82, 0x0070, 0x0AF2, 0x0070, 0x0B62, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D99, +- 0x0070, 0x0932, 0x0070, 0x09A2, 0x0070, 0x0A12, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x08C2, +- 0x0070, 0x0772, 0x0070, 0x07E2, 0x0070, 0x0852, ++ 0x0001, 0x0000, 0x0051, 0x0001, 0x002A, 0x0052, 0x0046, 0x007C, 0x005B, ++ 0x00C2, 0x004E, 0x011D, 0x005B, 0x016B, 0x0051, 0x01C6, 0x002A, 0x0217, ++ 0x005D, 0x0241, 0x005D, 0x029E, 0x005E, 0x02FB, 0x0051, 0x0359, 0x0051, ++ 0x03AA, 0x0051, 0x03FB, 0x0001, 0x044C, 0x0001, 0x044D, 0x0001, 0x044E, ++ 0x0051, 0x044F, 0x0051, 0x04A0, 0x0051, 0x04F1, 0x0051, 0x0542, 0x0051, ++ 0x0593, 0x0051, 0x05E4, 0x0051, 0x0635, 0x0051, 0x0686, 0x0051, 0x06D7, ++ 0x0042, 0x0728, 0x0042, 0x076A, 0x0042, 0x07AC, 0x0051, 0x07EE, 0x0051, ++ 0x083F, 0x0051, 0x0890, 0x0071, 0x08E1, 0x0071, 0x0952, 0x0071, 0x09C3, ++ 0x0071, 0x0A34, 0x0071, 0x0AA5, 0x0071, 0x0B16, 0x0049, 0x0B87, 0x0048, ++ 0x0BD0, 0x0049, 0x0C18, 0x0049, 0x0C61, 0x0049, 0x0CAA, 0x0049, 0x0CF3, ++ 0x0051, 0x0D3C, 0x0051, 0x0D8D, 0x0051, 0x0DDE, 0x0051, 0x0E2F, 0x0051, ++ 0x0E80, 0x0051, 0x0ED1, 0x005A, 0x0F22, 0x005B, 0x0F7C, 0x0001, 0x0FD7, ++ 0x0051, 0x0FD8, 0x0051, 0x1029, 0x0051, 0x107A, 0x0051, 0x10CB, 0x0051, ++ 0x111C, 0x0051, 0x116D, 0x0051, 0x11BE, 0x0051, 0x120F, 0x0051, 0x1260, + }; + + static const s16 anim_27_values[] = { +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0006, 0x0008, +- 0x000A, 0x000D, 0x0013, 0x0017, 0x0016, 0x000D, 0x0000, 0xFFF4, +- 0xFFF5, 0xFFF4, 0xFFDF, 0xFFC7, 0xFFC0, 0xFFD5, 0xFFF8, 0x0019, +- 0x002B, 0x002D, 0x002C, 0x0028, 0x0022, 0x001B, 0x0013, 0x000B, +- 0x0004, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, +- 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, +- 0x00AE, 0x00AE, 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, +- 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, +- 0x00B5, 0x00B6, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B8, 0x00B8, +- 0x00B8, 0x00B8, 0x00B8, 0x00B9, 0x00B9, 0x00B9, 0x00B9, 0x00B9, +- 0x00B9, 0x00B9, 0x00B8, 0x00B5, 0x00AE, 0x00A6, 0x00A0, 0x009E, +- 0x009D, 0x009C, 0x009C, 0x009C, 0x009B, 0x009B, 0x009B, 0x009C, +- 0x0099, 0x009B, 0x00A5, 0x00B0, 0x00BC, 0x00C8, 0x00D5, 0x00DF, +- 0x00E8, 0x00EE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F4, 0x00F3, +- 0x00EF, 0x00E9, 0x00E5, 0x00E2, 0x00E0, 0x00DE, 0x00DD, 0x00DB, +- 0x00D5, 0x00CD, 0x00C3, 0x00B8, 0x00AC, 0x00A1, 0x0095, 0x008A, +- 0x0080, 0x0078, 0x0074, 0x0075, 0x0077, 0x0077, 0x0077, 0x0077, +- 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, +- 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0000, 0x0000, 0x0000, 0xFFFD, 0xFFF6, 0xFFEE, 0xFFE7, 0xFFE1, +- 0xFFDB, 0xFFD6, 0xFFD1, 0xFFCD, 0xFFCC, 0xFFCB, 0xFFCC, 0xFFCC, +- 0xFFCA, 0xFFCA, 0xFFD0, 0xFFD6, 0xFFDE, 0xFFE5, 0xFFEC, 0xFFF1, +- 0xFFF5, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE5, 0xFFEB, 0xFFF5, 0x0000, +- 0x0007, 0x000D, 0x000D, 0x000B, 0x000B, 0x0010, 0x0018, 0x001D, +- 0x001B, 0x0012, 0x0005, 0xFFF7, 0xFFE7, 0xFFD6, 0xFFC7, 0xFFBA, +- 0xFFB1, 0xFFAC, 0xFFBD, 0xFFE3, 0x0000, 0x0007, 0x0003, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x3FFF, 0xF1BC, 0xF1BE, 0xF1C6, 0xF1D2, 0xF1E2, 0xF1F6, +- 0xF20E, 0xF228, 0xF246, 0xF266, 0xF288, 0xF2AC, 0xF2D1, 0xF2F8, +- 0xF31F, 0xF346, 0xF36E, 0xF395, 0xF3BC, 0xF3E2, 0xF406, 0xF429, +- 0xF449, 0xF469, 0xF48A, 0xF4AB, 0xF4CD, 0xF4F0, 0xF513, 0xF536, +- 0xF55A, 0xF57E, 0xF5A2, 0xF5C6, 0xF5E9, 0xF60D, 0xF631, 0xF654, +- 0xF677, 0xF699, 0xF6BB, 0xF6DC, 0xF6FC, 0xF71B, 0xF73A, 0xF758, +- 0xF774, 0xF78F, 0xF7A9, 0xF7C2, 0xF7D6, 0xF7E1, 0xF7E6, 0xF7E5, +- 0xF7E0, 0xF7D9, 0xF7D1, 0xF7CA, 0xF7C4, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, +- 0xF7C2, 0xF7C2, 0xF6B4, 0xF6B3, 0xF6AF, 0xF6AA, 0xF6A3, 0xF69A, +- 0xF68F, 0xF684, 0xF676, 0xF668, 0xF659, 0xF649, 0xF638, 0xF627, +- 0xF616, 0xF604, 0xF5F3, 0xF5E1, 0xF5D0, 0xF5BF, 0xF5AF, 0xF5A0, +- 0xF591, 0xF583, 0xF575, 0xF566, 0xF557, 0xF547, 0xF538, 0xF528, +- 0xF518, 0xF508, 0xF4F8, 0xF4E8, 0xF4D8, 0xF4C9, 0xF4B9, 0xF4A9, +- 0xF49A, 0xF48A, 0xF47C, 0xF46D, 0xF45E, 0xF450, 0xF443, 0xF436, +- 0xF429, 0xF41D, 0xF411, 0xF406, 0xF3FE, 0xF3F9, 0xF3F7, 0xF3F7, +- 0xF3F9, 0xF3FC, 0xF400, 0xF403, 0xF405, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, +- 0xF406, 0xF406, 0xD5DF, 0xD5DF, 0xD5DD, 0xD5DA, 0xD5D7, 0xD5D2, +- 0xD5CD, 0xD5C7, 0xD5C0, 0xD5B9, 0xD5B1, 0xD5A9, 0xD5A0, 0xD598, +- 0xD58F, 0xD586, 0xD57D, 0xD574, 0xD56B, 0xD563, 0xD55B, 0xD553, +- 0xD54C, 0xD544, 0xD53D, 0xD535, 0xD52E, 0xD526, 0xD51E, 0xD516, +- 0xD50E, 0xD506, 0xD4FE, 0xD4F6, 0xD4EE, 0xD4E6, 0xD4DE, 0xD4D6, +- 0xD4CE, 0xD4C6, 0xD4BE, 0xD4B7, 0xD4B0, 0xD4A9, 0xD4A2, 0xD49B, +- 0xD494, 0xD48E, 0xD488, 0xD483, 0xD47E, 0xD47C, 0xD47B, 0xD47B, +- 0xD47C, 0xD47E, 0xD47F, 0xD481, 0xD482, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, +- 0xD483, 0xD483, 0xD47F, 0xD47B, 0xD46F, 0xD45D, 0xD444, 0xD425, +- 0xD401, 0xD3D8, 0xD3AC, 0xD37C, 0xD349, 0xD315, 0xD2D6, 0xD288, +- 0xD22E, 0xD1CE, 0xD16C, 0xD10B, 0xD0B1, 0xD063, 0xD023, 0xCFF7, +- 0xCFE4, 0xD076, 0xD1AC, 0xD2B0, 0xD2AE, 0xD073, 0xCD22, 0xCB19, +- 0xCBA4, 0xCD7F, 0xCF73, 0xD04A, 0xCF80, 0xCDD7, 0xCC1A, 0xCB13, +- 0xCB86, 0xCCCC, 0xCD83, 0xCCF9, 0xCBDB, 0xCAA4, 0xC9CB, 0xC977, +- 0xC966, 0xC975, 0xC97F, 0xC97A, 0xC978, 0xC977, 0xC976, 0xC977, +- 0xC978, 0xC97A, 0xC97C, 0xC97D, 0xC97E, 0xC97F, 0xC97F, 0xC97F, +- 0xC97F, 0xC8B0, 0xC97F, 0xCCF2, 0xD0C7, 0xD4E5, 0xD935, 0xDD9D, +- 0xE205, 0xE654, 0xEA72, 0xEE45, 0xF1B6, 0xF4AB, 0xF70D, 0xF8C2, +- 0xFA00, 0xFB0F, 0xFBF2, 0xFCAB, 0xFD3D, 0xFDAA, 0xFDF4, 0xFE1E, +- 0xFE2B, 0xFE1E, 0xFDF7, 0xFDBA, 0xFD6A, 0xFD09, 0xFC99, 0xFC1D, +- 0xFB98, 0xFB0B, 0xFA7A, 0xF9E6, 0xF952, 0xF8C2, 0xF332, 0xEB50, +- 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, +- 0xEB50, 0xEB50, 0xF6FF, 0xF700, 0xF702, 0xF706, 0xF70A, 0xF710, +- 0xF717, 0xF71E, 0xF727, 0xF730, 0xF739, 0xF744, 0xF74E, 0xF759, +- 0xF764, 0xF76F, 0xF77B, 0xF786, 0xF791, 0xF79B, 0xF7A6, 0xF7B0, +- 0xF7B9, 0xF79E, 0xF741, 0xF6AA, 0xF5E2, 0xF4F0, 0xF3DD, 0xF2B2, +- 0xF176, 0xF032, 0xEEED, 0xEDB1, 0xEC86, 0xEB74, 0xEA82, 0xE9BA, +- 0xE924, 0xE8C7, 0xE8AD, 0xE8DD, 0xE960, 0xEA3D, 0xEB7E, 0xED2B, +- 0xEF4B, 0xF1E7, 0xF508, 0xF8B5, 0xFEC9, 0x089F, 0x1584, 0x24C5, +- 0x35AB, 0x4785, 0x599C, 0x6B3D, 0x7BB4, 0x8A4F, 0x978A, 0xA20B, +- 0xA653, 0x99E3, 0x8A4F, 0x83F5, 0x7D87, 0x771F, 0x70D0, 0x6AAF, +- 0x64D2, 0x5F4E, 0x5A38, 0x55A5, 0x51AC, 0x4E60, 0x4BD9, 0x4A2A, +- 0x4921, 0x4878, 0x4828, 0x482B, 0x4877, 0x4907, 0x49D4, 0x4AD5, +- 0x4C03, 0x4D59, 0x4ECD, 0x5059, 0x51F6, 0x539C, 0x5545, 0x56E8, +- 0x587F, 0x5A03, 0x5B6C, 0x5CB3, 0x5DD1, 0x5EBE, 0x5F1C, 0x5EED, +- 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, +- 0x5EBE, 0x5EBE, 0xE0ED, 0xE0EE, 0xE0F1, 0xE0F5, 0xE0FB, 0xE103, +- 0xE10B, 0xE115, 0xE120, 0xE12B, 0xE138, 0xE145, 0xE152, 0xE160, +- 0xE16F, 0xE17D, 0xE18C, 0xE19A, 0xE1A8, 0xE1B6, 0xE1C3, 0xE1CF, +- 0xE1DB, 0xE1F1, 0xE21B, 0xE255, 0xE29E, 0xE2F4, 0xE353, 0xE3B9, +- 0xE425, 0xE493, 0xE500, 0xE56C, 0xE5D2, 0xE632, 0xE688, 0xE6D1, +- 0xE70C, 0xE736, 0xE74D, 0xE74E, 0xE736, 0xE704, 0xE6B5, 0xE646, +- 0xE5B5, 0xE500, 0xE424, 0xE31F, 0xE159, 0xDE65, 0xDA81, 0xD5E9, +- 0xD0DB, 0xCB93, 0xC64F, 0xC14C, 0xBCC7, 0xB8FC, 0xB735, 0xB767, +- 0xB7DB, 0xB8D5, 0xB8FC, 0xB734, 0xB530, 0xB2FF, 0xB0AE, 0xAE4D, +- 0xABEA, 0xA994, 0xA758, 0xA545, 0xA36B, 0xA1D7, 0xA097, 0x9FBB, +- 0x9F26, 0x9EB3, 0x9E5E, 0x9E25, 0x9E05, 0x9DFE, 0x9E0A, 0x9E2A, +- 0x9E59, 0x9E96, 0x9EDD, 0x9F2E, 0x9F84, 0x9FDF, 0xA03A, 0xA095, +- 0xA0EC, 0xA13D, 0xA186, 0xA1C4, 0xA1F4, 0xA215, 0xA21F, 0xA21A, +- 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, +- 0xA215, 0xA215, 0xB794, 0xB790, 0xB783, 0xB770, 0xB755, 0xB735, +- 0xB70E, 0xB6E3, 0xB6B3, 0xB67E, 0xB647, 0xB60C, 0xB5CF, 0xB591, +- 0xB551, 0xB510, 0xB4D0, 0xB490, 0xB451, 0xB413, 0xB3D8, 0xB39F, +- 0xB36A, 0xB357, 0xB37F, 0xB3DA, 0xB462, 0xB50E, 0xB5D8, 0xB6B8, +- 0xB7A6, 0xB89C, 0xB992, 0xBA80, 0xBB5F, 0xBC27, 0xBCD2, 0xBD58, +- 0xBDB1, 0xBDD6, 0xBDC0, 0xBD67, 0xBCC4, 0xBBCF, 0xBA81, 0xB8D3, +- 0xB6BC, 0xB437, 0xB13B, 0xADC1, 0xA825, 0x9F31, 0x9382, 0x85B8, +- 0x766E, 0x6647, 0x55E0, 0x45D5, 0x36C6, 0x2951, 0x1C5F, 0x115F, +- 0x0CBA, 0x1963, 0x2951, 0x2FE5, 0x3680, 0x3D11, 0x4384, 0x49C7, +- 0x4FC9, 0x5576, 0x5ABC, 0x5F88, 0x63C9, 0x676C, 0x6A5E, 0x6C8D, +- 0x6E28, 0x6F6C, 0x7060, 0x710B, 0x7173, 0x719E, 0x7192, 0x7156, +- 0x70F1, 0x7068, 0x6FC2, 0x6F05, 0x6E38, 0x6D61, 0x6C86, 0x6BAE, +- 0x6ADF, 0x6A1F, 0x6975, 0x68E7, 0x687C, 0x6839, 0x6825, 0x682F, +- 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, +- 0x6839, 0x6839, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, +- 0x17DE, 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, +- 0x1698, 0x1668, 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, +- 0x151B, 0x14F1, 0x14CA, 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, +- 0x1424, 0x1418, 0x1411, 0x1410, 0x1415, 0x1421, 0x1434, 0x144D, +- 0x146F, 0x1498, 0x14CA, 0x1504, 0x1548, 0x1594, 0x15EB, 0x164C, +- 0x16B7, 0x172E, 0x17AF, 0x183D, 0x196E, 0x1BB5, 0x1ED8, 0x229F, +- 0x26D1, 0x2B32, 0x2F8C, 0x33A4, 0x3741, 0x3A2B, 0x3ACE, 0x3963, +- 0x385F, 0x3845, 0x3A2B, 0x3F4A, 0x45E0, 0x4CC1, 0x52C0, 0x56B1, +- 0x5768, 0x551E, 0x50FE, 0x4B47, 0x443A, 0x3C15, 0x3318, 0x2983, +- 0x1D39, 0x0D76, 0xFC7A, 0xEC86, 0xDFD9, 0xD8B5, 0xDABE, 0xE4C4, +- 0xF1CB, 0xFCD8, 0x00EF, 0xFE38, 0xF8B4, 0xF133, 0xE885, 0xDF7A, +- 0xD6E1, 0xCF8A, 0xCA45, 0xC784, 0xC6BF, 0xC74C, 0xC882, 0xC9B8, +- 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, +- 0xCA45, 0xCA45, 0x03EC, 0x03EE, 0x03F6, 0x0402, 0x0413, 0x0427, +- 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, 0x04E5, 0x050D, 0x0536, +- 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, 0x0662, 0x068A, +- 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, 0x077D, +- 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, +- 0x074A, 0x0726, 0x06FA, 0x06C6, 0x068A, 0x0646, 0x05F9, 0x05A4, +- 0x0544, 0x04DC, 0x0469, 0x03EC, 0x02E3, 0x00EB, 0xFE36, 0xFAF1, +- 0xF74B, 0xF374, 0xEF9C, 0xEBF1, 0xE8A3, 0xE5E1, 0xE479, 0xE466, +- 0xE49B, 0xE431, 0xE5E1, 0xEAF1, 0xF131, 0xF7C7, 0xFDDC, 0x0297, +- 0x0521, 0x052D, 0x0366, 0x006B, 0xFCDD, 0xF959, 0xF680, 0xF4F0, +- 0xF483, 0xF4AF, 0xF57B, 0xF6EF, 0xF913, 0xFBEF, 0x006E, 0x06B8, +- 0x0DAE, 0x142E, 0x1917, 0x1CBE, 0x2033, 0x2370, 0x266F, 0x292B, +- 0x2B9D, 0x2DC0, 0x2F8D, 0x30AF, 0x3100, 0x30C6, 0x3047, 0x2FC7, +- 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, +- 0x2F8D, 0x2F8D, 0xCEFF, 0xCEF8, 0xCEE2, 0xCEBF, 0xCE91, 0xCE56, +- 0xCE12, 0xCDC4, 0xCD6D, 0xCD0F, 0xCCAA, 0xCC3F, 0xCBCF, 0xCB5B, +- 0xCAE5, 0xCA6C, 0xC9F1, 0xC977, 0xC8FD, 0xC885, 0xC80F, 0xC79C, +- 0xC72E, 0xC6C5, 0xC662, 0xC606, 0xC5B2, 0xC567, 0xC526, 0xC4F0, +- 0xC4C5, 0xC4A6, 0xC496, 0xC493, 0xC4A0, 0xC4BD, 0xC4EB, 0xC52C, +- 0xC57F, 0xC5E6, 0xC662, 0xC6F4, 0xC79C, 0xC85C, 0xC935, 0xCA27, +- 0xCB33, 0xCC5A, 0xCD9E, 0xCEFF, 0xD1EC, 0xD77A, 0xDF23, 0xE862, +- 0xF2AF, 0xFD85, 0x085C, 0x12B1, 0x1BFB, 0x23B6, 0x2778, 0x2759, +- 0x2696, 0x25AB, 0x23B6, 0x2212, 0x20EC, 0x1FBB, 0x1DF6, 0x1B13, +- 0x168A, 0x0F95, 0x0679, 0xFC3A, 0xF1D9, 0xE85A, 0xE0C1, 0xDC12, +- 0xDB50, 0xDDF9, 0xE2C4, 0xE869, 0xEDA2, 0xF126, 0xF39C, 0xF600, +- 0xF790, 0xF788, 0xF522, 0xF035, 0xE97C, 0xE18E, 0xD900, 0xD068, +- 0xC85E, 0xC177, 0xBC49, 0xB96D, 0xB8A0, 0xB932, 0xBA74, 0xBBB7, +- 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, +- 0xBC49, 0xBC49, 0xD620, 0xD61C, 0xD612, 0xD601, 0xD5EA, 0xD5CD, +- 0xD5AB, 0xD584, 0xD559, 0xD52B, 0xD4F9, 0xD4C4, 0xD48D, 0xD454, +- 0xD419, 0xD3DD, 0xD3A1, 0xD364, 0xD328, 0xD2EC, 0xD2B2, 0xD27A, +- 0xD243, 0xD20F, 0xD1DE, 0xD1B1, 0xD187, 0xD162, 0xD142, 0xD127, +- 0xD112, 0xD103, 0xD0FB, 0xD0F9, 0xD100, 0xD10E, 0xD125, 0xD145, +- 0xD16E, 0xD1A1, 0xD1DE, 0xD226, 0xD27A, 0xD2D8, 0xD343, 0xD3BB, +- 0xD440, 0xD4D2, 0xD572, 0xD620, 0xD795, 0xDA5A, 0xDE2C, 0xE2C7, +- 0xE7E7, 0xED47, 0xF2A5, 0xF7BB, 0xFC45, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFF4B, 0xFE82, 0xFDAB, 0xFCCA, 0xFBE5, +- 0xFAFF, 0xFA1E, 0xF945, 0xF87B, 0xF7C3, 0xF722, 0xF69E, 0xF639, +- 0xF71A, 0xF98B, 0xFC4B, 0xFE1B, 0xFDB8, 0xF9E4, 0xF127, 0xE434, +- 0xD50A, 0xC5A6, 0xB807, 0xAE2A, 0xA862, 0xA612, 0xA7CE, 0xAE2A, +- 0xC22B, 0xDF8D, 0xF2F7, 0xF882, 0xFA0F, 0xF8F3, 0xF683, 0xF413, +- 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, +- 0xF2F7, 0xF2F7, 0x07FA, 0x0804, 0x0820, 0x084E, 0x088C, 0x08DA, +- 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, 0x0CE4, +- 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, +- 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, +- 0x16E3, 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, +- 0x15E6, 0x14A2, 0x1329, 0x118C, 0x0FDE, 0x0E30, 0x0C94, 0x0B1B, +- 0x09D7, 0x08DA, 0x0835, 0x07FA, 0x0FAE, 0x211A, 0x33B4, 0x3EF4, +- 0x41C8, 0x4189, 0x3F48, 0x3C1A, 0x3911, 0x3741, 0x36EE, 0x3734, +- 0x3770, 0x38E3, 0x3741, 0x2FF5, 0x26E1, 0x1CB9, 0x1234, 0x06B4, +- 0xFA61, 0xEF17, 0xE2BC, 0xD757, 0xD4F4, 0xE447, 0xFCA6, 0x0C0B, +- 0x0E0E, 0x0BA6, 0x06E5, 0x01DF, 0xFEA5, 0xFF49, 0x06FC, 0x1473, +- 0x22FF, 0x2DF3, 0x30A4, 0x2B2D, 0x2197, 0x151C, 0x06F2, 0xF854, +- 0xEA76, 0xDE93, 0xD5E1, 0xD118, 0xCF73, 0xCFF4, 0xD19B, 0xD369, +- 0xD460, 0xD4B1, 0xD531, 0xD5D1, 0xD682, 0xD735, 0xD7DB, 0xD866, +- 0xD8C6, 0xD8EC, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, 0x2C13, 0x2BCA, +- 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, 0x27FB, +- 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, +- 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, +- 0x1E92, 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, +- 0x1F80, 0x20B1, 0x2214, 0x2399, 0x252E, 0x26C3, 0x2847, 0x29AA, +- 0x2ADB, 0x2BCA, 0x2C65, 0x2C9C, 0x2C62, 0x2BC5, 0x2AE1, 0x29CF, +- 0x288D, 0x2718, 0x258B, 0x2401, 0x2297, 0x2169, 0x20BF, 0x2097, +- 0x209D, 0x2064, 0x2169, 0x2423, 0x2762, 0x2B2F, 0x2F91, 0x3525, +- 0x3BA2, 0x41B7, 0x49E6, 0x51B6, 0x505A, 0x3B8F, 0x1D85, 0x0C1A, +- 0x0BBE, 0x10D5, 0x1929, 0x2281, 0x2AA7, 0x2F63, 0x2FF6, 0x2DFB, +- 0x2AC0, 0x2794, 0x25C5, 0x255B, 0x2561, 0x25B0, 0x261E, 0x2683, +- 0x26B5, 0x268C, 0x25DF, 0x2438, 0x2198, 0x1E8A, 0x1B96, 0x1949, +- 0x182B, 0x1831, 0x18D5, 0x19EE, 0x1B51, 0x1CD4, 0x1E4D, 0x1F93, +- 0x207A, 0x20D8, 0xD465, 0xD474, 0xD49D, 0xD4E1, 0xD53C, 0xD5AE, +- 0xD634, 0xD6CE, 0xD779, 0xD834, 0xD8FD, 0xD9D2, 0xDAB3, 0xDB9C, +- 0xDC8D, 0xDD83, 0xDE7E, 0xDF7B, 0xE079, 0xE177, 0xE271, 0xE368, +- 0xE459, 0xE542, 0xE622, 0xE6F8, 0xE7C1, 0xE87B, 0xE927, 0xE9C0, +- 0xEA47, 0xEAB9, 0xEB14, 0xEB57, 0xEB81, 0xEB8F, 0xEB39, 0xEA47, +- 0xE8D3, 0xE6F8, 0xE4CE, 0xE271, 0xDFFA, 0xDD83, 0xDB26, 0xD8FD, +- 0xD722, 0xD5AE, 0xD4BC, 0xD465, 0xD91F, 0xE3C0, 0xEEF8, 0xF576, +- 0xF688, 0xF58B, 0xF33D, 0xF05E, 0xEDAE, 0xEBED, 0xEB87, 0xEBE1, +- 0xEC2C, 0xEC1F, 0xEBED, 0xEB98, 0xEB33, 0xEACF, 0xEA7B, 0xEC47, +- 0xEE29, 0xEA08, 0xDBA3, 0xC729, 0xB32F, 0x9F46, 0x8BBB, 0x8036, +- 0x7C2F, 0x7A23, 0x7A33, 0x7C84, 0x813D, 0x887C, 0x9742, 0xAE0C, +- 0xC636, 0xD921, 0xE029, 0xDBC3, 0xD1D6, 0xC3EE, 0xB399, 0xA266, +- 0x91E0, 0x8395, 0x7911, 0x72D2, 0x6FAF, 0x6EC5, 0x6F30, 0x700D, +- 0x7076, 0x709D, 0x7134, 0x721C, 0x7337, 0x7466, 0x7589, 0x7682, +- 0x7732, 0x777A, 0x0000, 0x0000, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, +- 0xFFE9, 0xFFE1, 0xFFD8, 0xFFCD, 0xFFC2, 0xFFB6, 0xFFA8, 0xFF9A, +- 0xFF8B, 0xFF7B, 0xFF6A, 0xFF58, 0xFF46, 0xFF32, 0xFF1E, 0xFF0A, +- 0xFEF5, 0xFEDF, 0xFEC8, 0xFEB2, 0xFE9A, 0xFE82, 0xFE6A, 0xFE52, +- 0xFE39, 0xFE1F, 0xFE06, 0xFDEC, 0xFDD2, 0xFDB8, 0xFD9E, 0xFD83, +- 0xFD69, 0xFD4E, 0xFD34, 0xFD19, 0xFCFF, 0xFCE5, 0xFCCB, 0xFCB1, +- 0xFC97, 0xFC7E, 0xFC65, 0xFC4C, 0xFBF9, 0xFB6A, 0xFAF2, 0xFAE7, +- 0xFB59, 0xFC0E, 0xFCE6, 0xFDC3, 0xFE85, 0xFF0E, 0xFF2B, 0xFEEE, +- 0xFEA1, 0xFE8D, 0xFEFB, 0x00C6, 0x0378, 0x055D, 0x05BD, 0x0551, +- 0x048C, 0x036A, 0x01EF, 0x0095, 0xFFD7, 0xFF98, 0xFF6B, 0xFF4D, +- 0xFF3D, 0xFF39, 0xFF3D, 0xFF49, 0xFF59, 0xFF6C, 0xFF7F, 0xFF90, +- 0xFF9D, 0xFFA4, 0xFFA8, 0xFFAF, 0xFFB7, 0xFFC1, 0xFFCD, 0xFFD9, +- 0xFFE6, 0xFFF3, 0xFFFF, 0x000A, 0x0015, 0x001E, 0x0022, 0x0020, +- 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, +- 0x001E, 0x001E, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2E, 0xFF2D, +- 0xFF2C, 0xFF2B, 0xFF2A, 0xFF28, 0xFF27, 0xFF25, 0xFF23, 0xFF22, +- 0xFF20, 0xFF1E, 0xFF1C, 0xFF1A, 0xFF17, 0xFF15, 0xFF13, 0xFF11, +- 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF07, 0xFF06, 0xFF04, 0xFF02, +- 0xFF01, 0xFEFF, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFC, 0xFEFB, 0xFEFB, +- 0xFEFB, 0xFEFB, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xFEFF, 0xFF01, +- 0xFF03, 0xFF05, 0xFF08, 0xFF0B, 0xFF31, 0xFF7E, 0xFFC4, 0xFFD6, +- 0xFFAB, 0xFF61, 0xFF08, 0xFEAB, 0xFE59, 0xFE20, 0xFE02, 0xFDF7, +- 0xFDFC, 0xFE0E, 0xFE2A, 0xFE9B, 0xFF2E, 0xFF26, 0xFDC0, 0xFBBE, +- 0xFAAB, 0xFB2E, 0xFC71, 0xFDC8, 0xFE89, 0xFEBC, 0xFEE0, 0xFEF7, +- 0xFF03, 0xFF06, 0xFF01, 0xFEF6, 0xFEE8, 0xFED8, 0xFEC8, 0xFEBB, +- 0xFEB1, 0xFEAE, 0xFEAD, 0xFEAC, 0xFEA9, 0xFEA6, 0xFEA2, 0xFE9E, +- 0xFE9A, 0xFE96, 0xFE92, 0xFE8E, 0xFE8A, 0xFE88, 0xFE86, 0xFE87, +- 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, +- 0xFE88, 0xFE88, 0xC9D8, 0xC9DA, 0xC9DF, 0xC9E8, 0xC9F4, 0xCA03, +- 0xCA15, 0xCA29, 0xCA40, 0xCA59, 0xCA74, 0xCA91, 0xCAB0, 0xCAD0, +- 0xCAF1, 0xCB13, 0xCB37, 0xCB5B, 0xCB7F, 0xCBA4, 0xCBC8, 0xCBED, +- 0xCC11, 0xCC35, 0xCC58, 0xCC7B, 0xCC9C, 0xCCBC, 0xCCDA, 0xCCF7, +- 0xCD12, 0xCD2B, 0xCD42, 0xCD56, 0xCD68, 0xCD77, 0xCD83, 0xCD8B, +- 0xCD91, 0xCD92, 0xCD90, 0xCD8A, 0xCD80, 0xCD72, 0xCD5F, 0xCD47, +- 0xCD2A, 0xCD08, 0xCCE1, 0xCCB4, 0xCACA, 0xC6B9, 0xC279, 0xBFFF, +- 0xBF88, 0xBFD5, 0xC0A1, 0xC1A9, 0xC2AA, 0xC35E, 0xC3F7, 0xC4AA, +- 0xC53A, 0xC56A, 0xC500, 0xC2E7, 0xBF89, 0xBCE8, 0xBBBE, 0xBB4D, +- 0xBB5E, 0xBBFA, 0xBD03, 0xBE0C, 0xBEA4, 0xBEE1, 0xBF1C, 0xBF55, +- 0xBF8A, 0xBFB7, 0xBFDD, 0xBFF9, 0xC00A, 0xC00D, 0xC001, 0xBFE3, +- 0xBFB3, 0xBF6F, 0xBF0D, 0xBE88, 0xBDE8, 0xBD30, 0xBC67, 0xBB93, +- 0xBAB9, 0xB9DF, 0xB90A, 0xB840, 0xB788, 0xB6E5, 0xB6A3, 0xB6C4, +- 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, +- 0xB6E5, 0xB6E5, 0x1E4A, 0x1E4D, 0x1E56, 0x1E66, 0x1E7B, 0x1E97, +- 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, 0x1FE1, 0x2022, +- 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, 0x229B, +- 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, +- 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, +- 0x28F9, 0x2954, 0x29AD, 0x2A04, 0x2A58, 0x2AAA, 0x2AF9, 0x2B46, +- 0x2B8F, 0x2BD4, 0x2C16, 0x2C54, 0x2C83, 0x2C9B, 0x2CA0, 0x2C96, +- 0x2C82, 0x2C69, 0x2C4F, 0x2C37, 0x2C27, 0x2C24, 0x2C52, 0x2CAF, +- 0x2CFF, 0x2D07, 0x2C8C, 0x2A97, 0x279F, 0x2593, 0x25F3, 0x273C, +- 0x26D8, 0x2323, 0x1DBE, 0x18F9, 0x1722, 0x1798, 0x1830, 0x18EF, +- 0x19DC, 0x1AFC, 0x1C54, 0x1DEA, 0x1FC3, 0x21E6, 0x2457, 0x271D, +- 0x2A3C, 0x2DBA, 0x3416, 0x3E24, 0x496F, 0x5381, 0x59E3, 0x5CA6, +- 0x5DCB, 0x5DC3, 0x5CFC, 0x5BE9, 0x5AFA, 0x5A9E, 0x5AA7, 0x5AA2, +- 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, +- 0x5A9E, 0x5A9E, 0x1B09, 0x1B07, 0x1B00, 0x1AF5, 0x1AE6, 0x1AD3, +- 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, 0x19E7, 0x19B7, +- 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, 0x17D4, +- 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, +- 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, +- 0x1230, 0x11D2, 0x1173, 0x1114, 0x10B4, 0x1054, 0x0FF5, 0x0F95, +- 0x0F36, 0x0ED7, 0x0E78, 0x0E1A, 0x0D88, 0x0C9F, 0x0B7A, 0x0A31, +- 0x08E1, 0x07A3, 0x0691, 0x05C5, 0x055B, 0x056B, 0x0685, 0x08DF, +- 0x0C0B, 0x0F9F, 0x132E, 0x1730, 0x1BED, 0x20B3, 0x27AA, 0x2EAB, +- 0x2E88, 0x215D, 0x0D0E, 0xFC26, 0xF027, 0xE78D, 0xE84C, 0xF446, +- 0x067E, 0x1AA4, 0x2C64, 0x376B, 0x3B61, 0x3B91, 0x3915, 0x350B, +- 0x308E, 0x2CBB, 0x2970, 0x25DC, 0x220C, 0x1E10, 0x19F7, 0x15D1, +- 0x11AD, 0x0D9B, 0x09A8, 0x05E5, 0x0261, 0xFF2D, 0xFDD3, 0xFE80, +- 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, +- 0xFF2D, 0xFF2D, 0x1144, 0x1144, 0x1142, 0x113F, 0x113B, 0x1136, +- 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, 0x10F0, 0x10E2, +- 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, 0x103F, +- 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, +- 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, +- 0x0DD2, 0x0DA2, 0x0D70, 0x0D3C, 0x0D07, 0x0CD1, 0x0C99, 0x0C60, +- 0x0C26, 0x0BE9, 0x0BAC, 0x0B6D, 0x0AE8, 0x09EE, 0x08A5, 0x072F, +- 0x05B0, 0x044D, 0x0328, 0x0266, 0x022B, 0x0299, 0x04E7, 0x0961, +- 0x0ECC, 0x13F0, 0x1791, 0x18ED, 0x185D, 0x1650, 0x1100, 0x0A33, +- 0x07A4, 0x0CD2, 0x163E, 0x1F2A, 0x26A0, 0x2D95, 0x322C, 0x3449, +- 0x354D, 0x3596, 0x3580, 0x3568, 0x3584, 0x35A8, 0x359F, 0x3536, +- 0x3438, 0x3270, 0x3001, 0x2D3D, 0x2A34, 0x26F5, 0x2391, 0x2018, +- 0x1C9A, 0x1926, 0x15CD, 0x129E, 0x0FAA, 0x0D00, 0x0BE4, 0x0C72, +- 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, +- 0x0D00, 0x0D00, 0xAC44, 0xAC41, 0xAC38, 0xAC2A, 0xAC16, 0xABFE, +- 0xABE0, 0xABBD, 0xAB96, 0xAB6A, 0xAB3A, 0xAB06, 0xAACE, 0xAA92, +- 0xAA53, 0xAA10, 0xA9CA, 0xA982, 0xA936, 0xA8E8, 0xA897, 0xA844, +- 0xA7F0, 0xA799, 0xA740, 0xA6E6, 0xA68B, 0xA62F, 0xA5D1, 0xA573, +- 0xA514, 0xA4B5, 0xA456, 0xA3F6, 0xA397, 0xA338, 0xA2DA, 0xA27C, +- 0xA220, 0xA1C4, 0xA16A, 0xA111, 0xA0B9, 0xA064, 0xA010, 0x9FBF, +- 0x9F70, 0x9F23, 0x9EDA, 0x9E93, 0x9E42, 0x9DE0, 0x9D76, 0x9D0A, +- 0x9CA7, 0x9C53, 0x9C19, 0x9BFF, 0x9C0F, 0x9C50, 0x9C88, 0x9CD8, +- 0x9DD2, 0xA006, 0xA408, 0xAD20, 0xBA2A, 0xC518, 0xCD05, 0xD2D6, +- 0xD323, 0xCA2A, 0xBBAD, 0xAF85, 0xA667, 0x9F9D, 0xA0E4, 0xABFB, +- 0xBC65, 0xCE80, 0xDEAD, 0xE94A, 0xEE42, 0xF05F, 0xF04D, 0xEEBA, +- 0xEC53, 0xE9C5, 0xE71C, 0xE3FF, 0xE083, 0xDCBC, 0xD8C1, 0xD4A6, +- 0xD080, 0xCC64, 0xC867, 0xC49E, 0xC11F, 0xBDFD, 0xBCB1, 0xBD57, +- 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, +- 0xBDFD, 0xBDFD, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, 0x000B, +- 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, +- 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, +- 0x0085, 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, +- 0x00AE, 0x00B0, 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, +- 0x00A2, 0x009B, 0x0093, 0x0089, 0x007E, 0x0071, 0x0062, 0x0052, +- 0x0040, 0x002D, 0x0017, 0x0000, 0xFF88, 0xFE81, 0xFD31, 0xFBE0, +- 0xFAD5, 0xFA10, 0xF962, 0xF8CB, 0xF84A, 0xF7DF, 0xF78D, 0xF77B, +- 0xF7DF, 0xF935, 0xFB21, 0xFD26, 0xFF5B, 0x0194, 0x04A6, 0x07C2, +- 0x084D, 0xFC04, 0xFC37, 0xFD82, 0xFF76, 0x01A1, 0x0395, 0x04E3, +- 0x0588, 0x05DF, 0x05FF, 0x0600, 0x05FB, 0x0607, 0x05C1, 0x05E1, +- 0x061A, 0x0693, 0x07B3, 0x0889, 0x0823, 0x0755, 0x06EB, 0x0746, +- 0x07FB, 0x08A5, 0x08DE, 0x0830, 0x06F6, 0x0601, 0x05C2, 0x05E1, +- 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, +- 0x0601, 0x0601, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, +- 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, +- 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, +- 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, +- 0x0035, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, +- 0x0032, 0x0030, 0x002D, 0x002A, 0x0026, 0x0023, 0x001E, 0x0019, +- 0x0014, 0x000D, 0x0007, 0x0000, 0xFFD3, 0xFF72, 0xFEFE, 0xFE9A, +- 0xFE67, 0xFE74, 0xFEAA, 0xFEF4, 0xFF3C, 0xFF70, 0xFF7D, 0xFF75, +- 0xFF70, 0xFF5F, 0xFF84, 0x0052, 0x0151, 0x01AA, 0x0035, 0xFE1A, +- 0xFDF4, 0x0785, 0x0663, 0x0431, 0x0171, 0xFEA7, 0xFC54, 0xFAFA, +- 0xFABF, 0xFB42, 0xFC3B, 0xFD64, 0xFE77, 0xFF2C, 0xFE59, 0xFEE7, +- 0xFFBB, 0x007D, 0x00ED, 0x0100, 0x009F, 0x0013, 0xFFED, 0x0067, +- 0x0136, 0x0218, 0x02CD, 0x0337, 0x0373, 0x039C, 0x03AE, 0x03A5, +- 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, +- 0x039C, 0x039C, 0xBF40, 0xBF42, 0xBF47, 0xBF50, 0xBF5B, 0xBF69, +- 0xBF7A, 0xBF8D, 0xBFA2, 0xBFB9, 0xBFD2, 0xBFED, 0xC008, 0xC025, +- 0xC042, 0xC060, 0xC07E, 0xC09D, 0xC0BB, 0xC0D9, 0xC0F7, 0xC114, +- 0xC130, 0xC14B, 0xC164, 0xC17C, 0xC192, 0xC1A6, 0xC1B8, 0xC1C8, +- 0xC1D4, 0xC1DE, 0xC1E5, 0xC1E8, 0xC1E8, 0xC1E4, 0xC1DC, 0xC1D0, +- 0xC1C0, 0xC1AB, 0xC191, 0xC172, 0xC14D, 0xC124, 0xC0F4, 0xC0BE, +- 0xC083, 0xC041, 0xBFF8, 0xBFA9, 0xBDAB, 0xB95B, 0xB440, 0xAFE0, +- 0xADC1, 0xAE8B, 0xB138, 0xB4CF, 0xB856, 0xBAD4, 0xBB8A, 0xBB27, +- 0xBAD4, 0xBA43, 0xBB3A, 0xBEE9, 0xC407, 0xCB17, 0xD5CC, 0xE284, +- 0xECC4, 0xE505, 0xE5E5, 0xE7EC, 0xEA63, 0xEC8F, 0xEDB8, 0xED25, +- 0xEA42, 0xE584, 0xDFC2, 0xD9D0, 0xD484, 0xD0B4, 0xD77C, 0xD3F8, +- 0xCE6A, 0xC8DB, 0xC4D0, 0xC273, 0xC1AA, 0xC192, 0xC0F8, 0xBF40, +- 0xBCF4, 0xBA9A, 0xB8B9, 0xB7A8, 0xB727, 0xB6D3, 0xB6A9, 0xB6BE, +- 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, +- 0xB6D3, 0xB6D3, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, 0x254B, +- 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, +- 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, +- 0x26BD, 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, +- 0x2812, 0x2844, 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, +- 0x29D3, 0x2A13, 0x2A55, 0x2A98, 0x2ADD, 0x2B24, 0x2B6D, 0x2BB7, +- 0x2C03, 0x2C51, 0x2CA1, 0x2CF2, 0x2E79, 0x317A, 0x348A, 0x3641, +- 0x3671, 0x3602, 0x3530, 0x3434, 0x3349, 0x32A9, 0x3294, 0x32C3, +- 0x32A9, 0x3255, 0x309F, 0x2D4A, 0x29BA, 0x25F6, 0x2208, 0x1DF8, +- 0x19CE, 0x13A5, 0x1185, 0x0F5A, 0x0D6C, 0x0C06, 0x0B70, 0x0BF4, +- 0x0E09, 0x118C, 0x15E0, 0x1A6A, 0x1E8C, 0x21AA, 0x1E9D, 0x2338, +- 0x2932, 0x2BF5, 0x246F, 0x1D00, 0x1F7C, 0x2532, 0x2AEE, 0x2FD5, +- 0x350F, 0x3A6A, 0x3FB7, 0x44C6, 0x4967, 0x4D69, 0x4F07, 0x4E38, +- 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, +- 0x4D69, 0x4D69, 0xD64A, 0xD650, 0xD663, 0xD681, 0xD6AB, 0xD6DF, +- 0xD71E, 0xD766, 0xD7B8, 0xD813, 0xD877, 0xD8E2, 0xD955, 0xD9D0, +- 0xDA51, 0xDAD8, 0xDB65, 0xDBF8, 0xDC8F, 0xDD2B, 0xDDCA, 0xDE6D, +- 0xDF13, 0xDFBC, 0xE067, 0xE114, 0xE1C1, 0xE270, 0xE31E, 0xE3CD, +- 0xE47B, 0xE528, 0xE5D3, 0xE67C, 0xE723, 0xE7C7, 0xE867, 0xE904, +- 0xE99C, 0xEA2F, 0xEABE, 0xEB46, 0xEBC9, 0xEC45, 0xECBA, 0xED27, +- 0xED8C, 0xEDE9, 0xEE3D, 0xEE88, 0xEDA6, 0xEB17, 0xE7CF, 0xE4C2, +- 0xE1FA, 0xDEFE, 0xDBF7, 0xD912, 0xD67A, 0xD459, 0xD351, 0xD382, +- 0xD459, 0xDB0C, 0xE555, 0xEEEE, 0xF8B0, 0xFE79, 0xFD04, 0xF79D, +- 0xF3FA, 0xFB8F, 0xF6DC, 0xF107, 0xEA93, 0xE405, 0xDDE2, 0xD8AE, +- 0xD49B, 0xD148, 0xCE5E, 0xCB86, 0xC868, 0xC460, 0xBA86, 0xB646, +- 0xB2F2, 0xB19E, 0xB4E4, 0xBAA8, 0xBFF5, 0xC5AC, 0xCB92, 0xD1CC, +- 0xD87A, 0xDF5C, 0xE630, 0xECB7, 0xF2AF, 0xF7D7, 0xF9EA, 0xF8E1, +- 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, +- 0xF7D7, 0xF7D7, 0xEC41, 0xEC44, 0xEC4C, 0xEC5A, 0xEC6D, 0xEC85, +- 0xECA2, 0xECC3, 0xECE9, 0xED12, 0xED40, 0xED70, 0xEDA4, 0xEDDC, +- 0xEE16, 0xEE52, 0xEE91, 0xEED2, 0xEF15, 0xEF5A, 0xEFA0, 0xEFE8, +- 0xF030, 0xF079, 0xF0C2, 0xF10C, 0xF156, 0xF1A0, 0xF1E9, 0xF232, +- 0xF279, 0xF2C0, 0xF305, 0xF349, 0xF38A, 0xF3CA, 0xF407, 0xF442, +- 0xF47A, 0xF4AF, 0xF4E1, 0xF510, 0xF53A, 0xF561, 0xF584, 0xF5A2, +- 0xF5BB, 0xF5D0, 0xF5E0, 0xF5EA, 0xF515, 0xF2FF, 0xF057, 0xEDCE, +- 0xEB69, 0xE8CF, 0xE629, 0xE39E, 0xE157, 0xDF79, 0xDEB4, 0xDF01, +- 0xDF79, 0xE11F, 0xE650, 0xF09B, 0xFCED, 0x0571, 0x06D9, 0x047E, +- 0x028C, 0x043D, 0x04CB, 0x0559, 0x05D6, 0x0630, 0x0655, 0x0633, +- 0x05AB, 0x04C1, 0x0394, 0x0242, 0x00ED, 0xFE57, 0xFFAF, 0xFD1D, +- 0xF9C8, 0xF785, 0xF973, 0xFAD8, 0xF6C8, 0xF0EC, 0xEC2D, 0xE904, +- 0xE5FD, 0xE31D, 0xE069, 0xDDE5, 0xDB95, 0xD97F, 0xD89F, 0xD90F, +- 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, +- 0xD97F, 0xD97F, 0xB59E, 0xB59C, 0xB594, 0xB588, 0xB577, 0xB561, +- 0xB548, 0xB52A, 0xB509, 0xB4E4, 0xB4BB, 0xB48F, 0xB460, 0xB42E, +- 0xB3FA, 0xB3C3, 0xB389, 0xB34E, 0xB310, 0xB2D1, 0xB290, 0xB24E, +- 0xB20B, 0xB1C7, 0xB182, 0xB13C, 0xB0F6, 0xB0B0, 0xB069, 0xB023, +- 0xAFDD, 0xAF98, 0xAF53, 0xAF10, 0xAECD, 0xAE8C, 0xAE4C, 0xAE0E, +- 0xADD2, 0xAD98, 0xAD60, 0xAD2B, 0xACF8, 0xACC8, 0xAC9B, 0xAC71, +- 0xAC4B, 0xAC28, 0xAC0A, 0xABEF, 0xAC61, 0xAD9A, 0xAF1F, 0xB077, +- 0xB199, 0xB2C8, 0xB3F4, 0xB510, 0xB60E, 0xB6E0, 0xB757, 0xB754, +- 0xB6E0, 0xB179, 0xAA23, 0xA53C, 0xA0FA, 0x9F6F, 0xA180, 0xA649, +- 0xAD2A, 0xBA10, 0xBC6B, 0xBE0D, 0xBF1B, 0xBFBA, 0xC010, 0xC042, +- 0xC015, 0xBF5C, 0xBE4B, 0xBD1B, 0xBC00, 0xBA4C, 0xBC30, 0xC00B, +- 0xC452, 0xC6D4, 0xC492, 0xC003, 0xBC4B, 0xB84D, 0xB3A1, 0xAE1E, +- 0xA80C, 0xA1B1, 0x9B52, 0x9534, 0x8F9D, 0x8AD3, 0x88E9, 0x89DE, +- 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, +- 0x8AD3, 0x8AD3, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, +- 0x00D5, 0x013F, 0x011C, 0x0000, 0xFDE7, 0xFB34, 0xF815, 0xF4BA, +- 0xF152, 0xEE0D, 0xEB18, 0xE8A3, 0xE6DE, 0xE5F6, 0xE526, 0xE410, +- 0xE385, 0xE30D, 0xE5F6, 0xEDDC, 0xF75B, 0x0177, 0x0B35, 0x1398, +- 0x19A1, 0x19DF, 0x14AE, 0x0EC3, 0x08F9, 0x022F, 0xFC2B, 0xF8AB, +- 0xF7E4, 0xF895, 0xFA55, 0xFCBD, 0xFF62, 0x025F, 0x061E, 0x0A43, +- 0x0E6E, 0x1240, 0x1558, 0x17C7, 0x19DC, 0x1B97, 0x1CF8, 0x1E00, +- 0x1EAE, 0x1DF0, 0x1ADE, 0x15B9, 0x0F14, 0x07F3, 0xFD9E, 0xEF62, +- 0xEE0C, 0xED5C, 0xED34, 0xED75, 0xEE01, 0xEEB9, 0xEF7E, 0xF033, +- 0xF0B9, 0xF0F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE1, +- 0xFFA3, 0xFF74, 0xFF84, 0x0000, 0x00EC, 0x021D, 0x037D, 0x04F8, +- 0x0678, 0x07E9, 0x0935, 0x0A48, 0x0B0D, 0x0B6E, 0x0B7F, 0x0B76, +- 0x0B6E, 0x0C00, 0x0B6E, 0x08BE, 0x0579, 0x01F4, 0xFE81, 0xFB74, +- 0xF920, 0xF82B, 0xF8CD, 0xFAB9, 0xFE88, 0x03B6, 0x0852, 0x0A66, +- 0x0975, 0x06D3, 0x0345, 0xFF91, 0xFC7A, 0xFA1A, 0xF7C3, 0xF58A, +- 0xF387, 0xF1D1, 0xF081, 0xEF6D, 0xEE7A, 0xEDD2, 0xEDA0, 0xEE0F, +- 0xEF4C, 0xF61D, 0xFE08, 0xFF3C, 0xFED8, 0xFFCC, 0x00DF, 0x017F, +- 0x01A9, 0x01C2, 0x01CC, 0x01CB, 0x01C1, 0x01B2, 0x01A1, 0x0191, +- 0x0184, 0x017F, 0xEDB7, 0xEE8D, 0xF0A3, 0xF358, 0xF60B, 0xF81B, +- 0xF8E7, 0xF8C1, 0xF86A, 0xF7E8, 0xF741, 0xF67A, 0xF59B, 0xF4AA, +- 0xF3AB, 0xF2A5, 0xF19E, 0xF09D, 0xEFA6, 0xEEC1, 0xEDF3, 0xED42, +- 0xECB4, 0xECD5, 0xEDBF, 0xEECB, 0xEF53, 0xECC8, 0xE8B6, 0xE831, +- 0xE961, 0xEB0F, 0xEC84, 0xED09, 0xEBFC, 0xE9FE, 0xE814, 0xE744, +- 0xE7CE, 0xE8EE, 0xE9E8, 0xEA05, 0xE922, 0xE7F4, 0xE745, 0xE718, +- 0xE707, 0xE72A, 0xE799, 0xE86B, 0xE9A5, 0xEB2C, 0xECE8, 0xEEC0, +- 0xF09E, 0xF269, 0xF408, 0xF565, 0xF665, 0xF6F3, 0xF714, 0xF703, +- 0xF6F3, 0xF69D, 0xF6F3, 0xF83C, 0xF986, 0xFAF6, 0xFCB1, 0xFEDE, +- 0x01A1, 0x0724, 0x0E6D, 0x12EE, 0x12C5, 0x1065, 0x0DC2, 0x0CD2, +- 0x0DE5, 0x0FC3, 0x1218, 0x1490, 0x16D3, 0x188D, 0x1A04, 0x1B73, +- 0x1C77, 0x1CAB, 0x1BAC, 0x1969, 0x163F, 0x126E, 0x0E36, 0x09D8, +- 0x0593, 0xFFD2, 0xFA98, 0xF93B, 0xF947, 0xF92A, 0xF93C, 0xF94C, +- 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, +- 0xF94C, 0xF94C, 0x0000, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, +- 0x0019, 0x0022, 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, +- 0x0073, 0x0080, 0x008D, 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, +- 0x00DB, 0x00E6, 0x00F1, 0x00FB, 0x0104, 0x010D, 0x0114, 0x011A, +- 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, 0x011F, 0x011A, 0x0113, +- 0x010A, 0x00FF, 0x00F1, 0x00E1, 0x00CF, 0x00BA, 0x00A2, 0x0087, +- 0x006A, 0x004A, 0x0026, 0x0000, 0xFFA1, 0xFEE2, 0xFDDB, 0xFCA5, +- 0xFB58, 0xFA0B, 0xF8D6, 0xF7D1, 0xF714, 0xF6B7, 0xF631, 0xF55F, +- 0xF4F2, 0xF521, 0xF6B7, 0xFA1E, 0xFE53, 0x02BD, 0x06C8, 0x09DA, +- 0x0B5C, 0x0B28, 0x09BB, 0x0778, 0x04BF, 0x01F2, 0xFF73, 0xFDA2, +- 0xFC66, 0xFB66, 0xFAA3, 0xFA1F, 0xF9DB, 0xF9D8, 0xFA4E, 0xFB5D, +- 0xFCEA, 0xFED7, 0x021E, 0x0623, 0x0860, 0x086E, 0x07BF, 0x069F, +- 0x0558, 0x0433, 0x037D, 0x037D, 0x0480, 0x099E, 0x1275, 0x1A19, +- 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, +- 0x1A19, 0x1A19, 0x0000, 0xFFFF, 0xFFFA, 0xFFF3, 0xFFE9, 0xFFDD, +- 0xFFCF, 0xFFBF, 0xFFAD, 0xFF99, 0xFF84, 0xFF6D, 0xFF56, 0xFF3E, +- 0xFF25, 0xFF0C, 0xFEF2, 0xFED9, 0xFEBF, 0xFEA6, 0xFE8D, 0xFE75, +- 0xFE5E, 0xFE48, 0xFE34, 0xFE21, 0xFE0F, 0xFDFF, 0xFDF2, 0xFDE6, +- 0xFDDD, 0xFDD7, 0xFDD4, 0xFDD3, 0xFDD6, 0xFDDC, 0xFDE5, 0xFDF3, +- 0xFE04, 0xFE1A, 0xFE34, 0xFE52, 0xFE75, 0xFE9E, 0xFECB, 0xFEFD, +- 0xFF35, 0xFF73, 0xFFB7, 0x0000, 0x00B5, 0x021E, 0x040E, 0x0659, +- 0x08D0, 0x0B49, 0x0D95, 0x0F89, 0x10F8, 0x11B4, 0x11B9, 0x116A, +- 0x1137, 0x125E, 0x11B4, 0x0D15, 0x071A, 0x00B0, 0xFAC8, 0xF64D, +- 0xF42F, 0xF4C5, 0xF753, 0xFB29, 0xFF97, 0x03EC, 0x077A, 0x0990, +- 0x09E2, 0x08EE, 0x073B, 0x054C, 0x03A6, 0x02CE, 0x036C, 0x050F, +- 0x0695, 0x06DA, 0x0445, 0x0022, 0xFDAB, 0xFD6E, 0xFDB7, 0xFE5A, +- 0xFF2A, 0xFFFB, 0x00A0, 0x00ED, 0x00B6, 0xFEAB, 0xFAFF, 0xF7D2, +- 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, +- 0xF7D2, 0xF7D2, 0x0408, 0x0407, 0x0402, 0x03F9, 0x03EE, 0x03E0, +- 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, 0x0352, 0x0332, 0x0310, +- 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, 0x01F5, 0x01C7, +- 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, 0x0041, +- 0x000F, 0xFFDF, 0xFFAD, 0xFF7C, 0xFF4B, 0xFF1B, 0xFEEB, 0xFEBD, +- 0xFE8F, 0xFE63, 0xFE37, 0xFE0D, 0xFDE5, 0xFDBE, 0xFD98, 0xFD3A, +- 0xFC7C, 0xFBE0, 0xFBEA, 0xFD1C, 0xFF78, 0x0283, 0x0609, 0x09D4, +- 0x0DAD, 0x115F, 0x14B4, 0x1777, 0x1972, 0x1A6F, 0x1A89, 0x1A47, +- 0x1A19, 0x1B24, 0x1A6F, 0x1633, 0x10EE, 0x0B41, 0x05CC, 0x0133, +- 0xFE16, 0xFC7C, 0xFBD8, 0xFBE9, 0xFC71, 0xFD2F, 0xFDE6, 0xFE55, +- 0xFEA4, 0xFF18, 0xFF9D, 0x0020, 0x008F, 0x00D5, 0x00E3, 0x00BC, +- 0x0070, 0x000E, 0xFF34, 0xFE28, 0xFE00, 0xFEC7, 0xFFC5, 0x00EC, +- 0x022F, 0x037F, 0x04CE, 0x060D, 0x072E, 0x0821, 0x08E8, 0x098D, +- 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, +- 0x098D, 0x098D, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFB, +- 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF1, 0xFFED, 0xFFEA, 0xFFE6, 0xFFE2, +- 0xFFDE, 0xFFD9, 0xFFD5, 0xFFD0, 0xFFCB, 0xFFC6, 0xFFC1, 0xFFBC, +- 0xFFB6, 0xFFB1, 0xFFAC, 0xFFA6, 0xFFA1, 0xFF9C, 0xFF97, 0xFF92, +- 0xFF8D, 0xFF88, 0xFF83, 0xFF7E, 0xFF7A, 0xFF76, 0xFF71, 0xFF6E, +- 0xFF6A, 0xFF67, 0xFF63, 0xFF61, 0xFF5E, 0xFF5C, 0xFF5A, 0xFF59, +- 0xFF58, 0xFF57, 0xFF57, 0xFD70, 0xF869, 0xF149, 0xE917, 0xE0D9, +- 0xD995, 0xD452, 0xD216, 0xD1CC, 0xD1A2, 0xD188, 0xD07E, 0xCF84, +- 0xD188, 0xD74B, 0xE00C, 0xEC79, 0xFB1F, 0x0A12, 0x194F, 0x28D1, +- 0x3895, 0x4894, 0x58CB, 0x6935, 0x79CE, 0x8A94, 0x9B7D, 0xAC88, +- 0xBDAF, 0xCEEF, 0xE042, 0xF1A6, 0x0313, 0x1488, 0x25FF, 0x3774, +- 0x48E2, 0x5A45, 0x6B98, 0x7CD7, 0x8E00, 0x9F09, 0xAFF0, 0xC0B2, +- 0xD149, 0xE1B1, 0xF1E5, 0x01E1, 0x11A2, 0x2121, 0x2E0E, 0x3669, +- 0x3AAE, 0x3CAD, 0x3DFA, 0x3EB5, 0x3EFC, 0x3EF0, 0x3EAE, 0x3E58, +- 0x3E0B, 0x3DE7, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, 0x0008, +- 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, +- 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, +- 0x008E, 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, +- 0x00F2, 0x00FF, 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, +- 0x0160, 0x016E, 0x017C, 0x018A, 0x0198, 0x01A5, 0x01B3, 0x01C1, +- 0x01CE, 0x01DC, 0x01E9, 0x01F6, 0x0203, 0x020F, 0x021C, 0x0228, +- 0x0234, 0x023F, 0x024A, 0x0255, 0x0260, 0x026A, 0x027C, 0x0288, +- 0x026A, 0x0205, 0x0177, 0x00F3, 0x007F, 0x0002, 0xFF80, 0xFEFA, +- 0xFE75, 0xFDF4, 0xFD7A, 0xFD0B, 0xFCAA, 0xFC5B, 0xFC21, 0xFC00, +- 0xFD8D, 0xFFD8, 0x0175, 0x0323, 0x044D, 0x0463, 0x03C2, 0x032C, +- 0x029F, 0x021B, 0x019F, 0x012C, 0x00C1, 0x005E, 0x0001, 0xFFAC, +- 0xFF5B, 0xFF11, 0xFECC, 0xFE8C, 0xFE50, 0xFE18, 0xFE8A, 0xFFA2, +- 0x005F, 0x0092, 0x00B6, 0x00CF, 0x00DD, 0x00E4, 0x00E5, 0x00E3, +- 0x00E0, 0x00DE, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, 0x40AB, +- 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, +- 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, +- 0x4144, 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, +- 0x41B6, 0x41C5, 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, +- 0x4233, 0x4243, 0x4253, 0x4263, 0x4273, 0x4283, 0x4293, 0x42A2, +- 0x42B2, 0x42C1, 0x42D0, 0x42DF, 0x42EE, 0x42FC, 0x430A, 0x4318, +- 0x4325, 0x4333, 0x433F, 0x434C, 0x4358, 0x4364, 0x4372, 0x4378, +- 0x4364, 0x4321, 0x42C4, 0x426C, 0x4222, 0x41D3, 0x4182, 0x4131, +- 0x40DF, 0x4090, 0x4043, 0x3FFB, 0x3FB9, 0x3F7E, 0x3F4C, 0x3F23, +- 0x3F7B, 0x407D, 0x421F, 0x4422, 0x45C5, 0x4644, 0x45E2, 0x4564, +- 0x44CC, 0x441E, 0x435F, 0x428F, 0x41B4, 0x40D0, 0x3FE7, 0x3EFC, +- 0x3E12, 0x3D2C, 0x3C4E, 0x3B7C, 0x3AB7, 0x3A05, 0x39A8, 0x39AB, +- 0x39BC, 0x39B8, 0x39B7, 0x39B8, 0x39BB, 0x39BE, 0x39C2, 0x39C5, +- 0x39C7, 0x39C8, ++ 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AB, ++ 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, 0x00AE, 0x00AE, ++ 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, 0x00B2, 0x00B2, 0x00B3, ++ 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, 0x00B5, 0x00B6, 0x00B6, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B8, 0x00B8, 0x00B8, 0x00B8, 0x00AA, 0x00AA, 0x00AB, ++ 0x00AD, 0x00AF, 0x00B2, 0x00B4, 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, ++ 0x00C7, 0x00C9, 0x00CB, 0x00CD, 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, ++ 0x00C0, 0x00BA, 0x00B5, 0x00B1, 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, ++ 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, ++ 0x00A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, 0x3218, 0x30FC, 0x3ABA, ++ 0x5629, 0x8098, 0xB757, 0xF7B3, 0x3EFE, 0x8A84, 0xD796, 0x2382, 0x6B97, ++ 0xAD24, 0xE60E, 0x168A, 0x3F60, 0x615D, 0x7D4A, 0x93F1, 0xA61D, 0xB498, ++ 0xC02B, 0xC988, 0xD0FD, 0xD6BD, 0xDAFD, 0xDDF0, 0xDFCB, 0xE0C1, 0xE108, ++ 0xD856, 0xC39B, 0xAADD, 0x9622, 0x8D70, 0x8D77, 0x8D89, 0x8DA5, 0x8DC6, ++ 0x8DEA, 0x8E0E, 0x8E2F, 0x8E4B, 0x8E5D, 0x8E64, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, 0xFFFC, 0xFFFA, ++ 0xFFF8, 0xFFF6, 0xFFF3, 0xFFF0, 0xFFEC, 0xFFE9, 0xFFE5, 0xFFE1, 0xFFDD, ++ 0xFFD8, 0xFFD4, 0xFFCF, 0xFFCA, 0xFFC5, 0xFFC0, 0xFFBB, 0xFFB5, 0xFFB0, ++ 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, 0xFF96, 0xFF91, 0xFF8C, 0xFF87, 0xFF82, ++ 0xFF7D, 0xFF79, 0xFF75, 0xFF70, 0xFF6D, 0xFF69, 0xFF66, 0xFF62, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, ++ 0x0008, 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, ++ 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, 0x008E, ++ 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, 0x00F2, 0x00FF, ++ 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, 0x0160, 0x016E, 0x017C, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, ++ 0x40AB, 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, ++ 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, 0x4144, ++ 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, 0x41B6, 0x41C5, ++ 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, 0x4233, 0x4243, 0x4253, ++ 0x40A1, 0xFFFF, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, 0x0019, 0x0022, ++ 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, 0x0073, 0x0080, 0x008D, ++ 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, 0x00DB, 0x00E6, 0x00F1, 0x00FB, ++ 0x0104, 0x010D, 0x0114, 0x011A, 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, ++ 0x011F, 0x011A, 0x0113, 0x010A, 0x00FF, 0x00F1, 0x0000, 0xFAE9, 0xF35D, ++ 0xEC84, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, 0xF384, ++ 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, 0x096B, ++ 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, 0x0DDE, ++ 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, 0x0223, ++ 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, 0x0D87, ++ 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFE, 0xFFF9, 0xFFF2, 0xFFE8, ++ 0xFFDC, 0xFFCE, 0xFFBE, 0xFFAC, 0xFF98, 0xFF83, 0xFF6C, 0xFF55, 0xFF3D, ++ 0xFF24, 0xFF0B, 0xFEF1, 0xFED8, 0xFEBE, 0xFEA5, 0xFE8C, 0xFE74, 0xFE5D, ++ 0xFE47, 0xFE33, 0xFE20, 0xFE0E, 0xFDFE, 0xFDF1, 0xFDE5, 0xFDDC, 0xFDD6, ++ 0xFDD3, 0xFDD2, 0xFDD5, 0xFDDB, 0xFDE4, 0xFDF2, 0xFE03, 0xFE19, 0xFE33, ++ 0xFFFF, 0x01FD, 0x065D, 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, ++ 0x0901, 0x06BD, 0x045A, 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, ++ 0xFEA1, 0xFED1, 0xFF0A, 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, ++ 0x00D8, 0x0108, 0x012D, 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, ++ 0x00E7, 0x0091, 0x0049, 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, ++ 0x0076, 0x007A, 0x007D, 0x007F, 0x0081, 0x0081, 0x0082, 0x0408, 0x0407, ++ 0x0402, 0x03F9, 0x03EE, 0x03E0, 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, ++ 0x0352, 0x0332, 0x0310, 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, ++ 0x01F5, 0x01C7, 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, ++ 0x0041, 0x000F, 0xFFDE, 0xFFAC, 0xFF7B, 0xFF4A, 0xFF1A, 0xFEEA, 0xFEBC, ++ 0xFE8E, 0xFE62, 0xFE36, 0x0884, 0x0C6F, 0x150F, 0x1DAE, 0x2199, 0x2199, ++ 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, 0x0564, 0x026D, ++ 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, 0x029D, 0x02E9, ++ 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, 0x0482, 0x0482, ++ 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, 0xFEA1, 0xFEA8, ++ 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, 0xFDD2, 0xFDB9, ++ 0xFDA9, 0xFDA2, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFEA3, ++ 0xFBA6, 0xF8A9, 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, ++ 0x1216, 0x1955, 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, ++ 0x1054, 0x0862, 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, ++ 0xC514, 0xC174, 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, ++ 0xF13A, 0xF6EC, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x002B, ++ 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, 0x00F5, 0x00CE, 0x0099, ++ 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, 0xFE2B, 0xFDC7, 0xFD6C, ++ 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, 0x0051, 0x0270, 0x0490, ++ 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, 0x069F, 0x02CE, 0xFE3F, ++ 0xFA6E, 0xF8D4, 0xEDB6, 0xEE8C, 0xF0A2, 0xF357, 0xF60A, 0xF81A, 0xF8E6, ++ 0xF8C0, 0xF869, 0xF7E7, 0xF740, 0xF679, 0xF59A, 0xF4A9, 0xF3AA, 0xF2A4, ++ 0xF19D, 0xF09C, 0xEFA5, 0xEEC0, 0xEDF2, 0xED41, 0xECB3, 0xECD4, 0xEDBE, ++ 0xEECA, 0xEF52, 0xECC7, 0xE8B5, 0xE830, 0xE960, 0xEB0E, 0xEC83, 0xED08, ++ 0xEBFB, 0xE9FD, 0xE813, 0xE743, 0xE7CD, 0xE8ED, 0xE9E7, 0xFC61, 0x005D, ++ 0x0268, 0x0328, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, ++ 0x0185, 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, ++ 0xFF15, 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, ++ 0xFFB0, 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, ++ 0xFE47, 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xF6FE, 0xF6FF, 0xF701, 0xF705, ++ 0xF709, 0xF70F, 0xF716, 0xF71D, 0xF726, 0xF72F, 0xF738, 0xF743, 0xF74D, ++ 0xF758, 0xF763, 0xF76E, 0xF77A, 0xF785, 0xF790, 0xF79A, 0xF7A5, 0xF7AF, ++ 0xF7B8, 0xF79D, 0xF740, 0xF6A9, 0xF5E1, 0xF4EF, 0xF3DC, 0xF2B1, 0xF175, ++ 0xF031, 0xEEEC, 0xEDB0, 0xEC85, 0xEB73, 0xEA81, 0xE9B9, 0xE923, 0xE8C6, ++ 0xE8AC, 0xFB1C, 0x1C19, 0x3DCE, 0xD80A, 0xE29C, 0xE29C, 0xE29C, 0xE199, ++ 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, ++ 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, 0x0450, 0x0004, 0xFC31, 0xF8DB, ++ 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, 0xEF74, 0xEF74, 0xEF74, 0xEF74, ++ 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, 0xE0EC, 0xE0ED, 0xE0F0, 0xE0F4, ++ 0xE0FA, 0xE102, 0xE10A, 0xE114, 0xE11F, 0xE12A, 0xE137, 0xE144, 0xE151, ++ 0xE15F, 0xE16E, 0xE17C, 0xE18B, 0xE199, 0xE1A7, 0xE1B5, 0xE1C2, 0xE1CE, ++ 0xE1DA, 0xE1F0, 0xE21A, 0xE254, 0xE29D, 0xE2F3, 0xE352, 0xE3B8, 0xE424, ++ 0xE492, 0xE4FF, 0xE56B, 0xE5D1, 0xE631, 0xE687, 0xE6D0, 0xE70B, 0xE735, ++ 0xE74C, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, ++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, ++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, ++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, ++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xB793, 0xB78F, 0xB782, 0xB76F, ++ 0xB754, 0xB734, 0xB70D, 0xB6E2, 0xB6B2, 0xB67D, 0xB646, 0xB60B, 0xB5CE, ++ 0xB590, 0xB550, 0xB50F, 0xB4CF, 0xB48F, 0xB450, 0xB412, 0xB3D7, 0xB39E, ++ 0xB369, 0xB356, 0xB37E, 0xB3D9, 0xB461, 0xB50D, 0xB5D7, 0xB6B7, 0xB7A5, ++ 0xB89B, 0xB991, 0xBA7F, 0xBB5E, 0xBC26, 0xBCD1, 0xBD57, 0xBDB0, 0xBDD5, ++ 0xBDBF, 0xD4B3, 0xC63D, 0xA66B, 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, ++ 0xFADF, 0xFE0F, 0x0243, 0x0751, 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, ++ 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, ++ 0xE523, 0xE8D3, 0xEBCF, 0xEE06, 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEA00, 0xDBFF, 0xCB47, 0xBD46, 0xB766, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, 0xF44D, ++ 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, 0xF4CE, ++ 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, 0xF58A, ++ 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, 0xF5C1, ++ 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFE75, 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, ++ 0xF663, 0xF6AF, 0xF714, 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, ++ 0xFBC6, 0xFC97, 0xFD6A, 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, ++ 0x0272, 0x02EE, 0x0354, 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, ++ 0x0905, 0x154B, 0x23F2, 0x3038, 0x4AA2, 0xD47E, 0xD47A, 0xD46E, 0xD45C, ++ 0xD443, 0xD424, 0xD400, 0xD3D7, 0xD3AB, 0xD37B, 0xD348, 0xD314, 0xD2D5, ++ 0xD287, 0xD22D, 0xD1CD, 0xD16B, 0xD10A, 0xD0B0, 0xD062, 0xD022, 0xCFF6, ++ 0xCFE3, 0xD075, 0xD1AB, 0xD2AF, 0xD2AD, 0xD072, 0xCD21, 0xCB18, 0xCBA3, ++ 0xCD7E, 0xCF72, 0xD049, 0xCF7F, 0xCDD6, 0xCC19, 0xCB12, 0xCB85, 0xCCCB, ++ 0xCD82, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, 0xE97C, 0xE992, ++ 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, 0xEF07, 0xF016, ++ 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, 0xF8A8, 0xF986, ++ 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, 0xFC3F, 0xFC3F, ++ 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xF1BB, 0xF1BD, 0xF1C5, 0xF1D1, ++ 0xF1E1, 0xF1F5, 0xF20D, 0xF227, 0xF245, 0xF265, 0xF287, 0xF2AB, 0xF2D0, ++ 0xF2F7, 0xF31E, 0xF345, 0xF36D, 0xF394, 0xF3BB, 0xF3E1, 0xF405, 0xF428, ++ 0xF448, 0xF468, 0xF489, 0xF4AA, 0xF4CC, 0xF4EF, 0xF512, 0xF535, 0xF559, ++ 0xF57D, 0xF5A1, 0xF5C5, 0xF5E8, 0xF60C, 0xF630, 0xF653, 0xF676, 0xF698, ++ 0xF6BA, 0xFFFF, 0xFC13, 0xFA10, 0xF952, 0xF937, 0xF937, 0xF937, 0xF920, ++ 0xF8DE, 0xF875, 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, ++ 0xF166, 0xF043, 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, ++ 0xE827, 0xE77A, 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, ++ 0xF137, 0x0B8C, 0x2AFA, 0x454E, 0xD059, 0xF6B3, 0xF6B2, 0xF6AE, 0xF6A9, ++ 0xF6A2, 0xF699, 0xF68E, 0xF683, 0xF675, 0xF667, 0xF658, 0xF648, 0xF637, ++ 0xF626, 0xF615, 0xF603, 0xF5F2, 0xF5E0, 0xF5CF, 0xF5BE, 0xF5AE, 0xF59F, ++ 0xF590, 0xF582, 0xF574, 0xF565, 0xF556, 0xF546, 0xF537, 0xF527, 0xF517, ++ 0xF507, 0xF4F7, 0xF4E7, 0xF4D7, 0xF4C8, 0xF4B8, 0xF4A8, 0xF499, 0xF489, ++ 0xF47B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, 0xF50D, 0xF50D, 0xF513, ++ 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, 0xF62A, 0xF66A, 0xF6AC, ++ 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, 0xF88C, 0xF8C7, 0xF8FE, ++ 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, 0xF9A9, 0xF9A9, 0xF9A9, ++ 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xD5DE, 0xD5DE, 0xD5DC, 0xD5D9, ++ 0xD5D6, 0xD5D1, 0xD5CC, 0xD5C6, 0xD5BF, 0xD5B8, 0xD5B0, 0xD5A8, 0xD59F, ++ 0xD597, 0xD58E, 0xD585, 0xD57C, 0xD573, 0xD56A, 0xD562, 0xD55A, 0xD552, ++ 0xD54B, 0xD543, 0xD53C, 0xD534, 0xD52D, 0xD525, 0xD51D, 0xD515, 0xD50D, ++ 0xD505, 0xD4FD, 0xD4F5, 0xD4ED, 0xD4E5, 0xD4DD, 0xD4D5, 0xD4CD, 0xD4C5, ++ 0xD4BD, 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, ++ 0xED0B, 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, ++ 0xF646, 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, ++ 0x01B5, 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, ++ 0xFA5A, 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xFF5A, 0xFD96, ++ 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, 0xEB34, 0xE970, 0xE8CA, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, ++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, ++ 0xD02E, 0xD346, 0xD5D2, 0xD78C, 0xD830, 0x07FA, 0x0804, 0x0820, 0x084E, ++ 0x088C, 0x08DA, 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, ++ 0x0CE4, 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, ++ 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, 0x16E3, ++ 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, 0x15E6, 0x14A2, ++ 0x1329, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, 0x1FDB, ++ 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, 0xD7A7, ++ 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, 0x428B, ++ 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, 0x18CE, ++ 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, ++ 0x2C13, 0x2BCA, 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, ++ 0x27FB, 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, ++ 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, 0x1E92, ++ 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, 0x1F80, 0x20B1, ++ 0x2214, 0x2BD6, 0x26DD, 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, ++ 0x0E26, 0x1092, 0x13B1, 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, ++ 0x4FF0, 0x4CD2, 0x4A66, 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, ++ 0x53CD, 0x5249, 0x50C6, 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, ++ 0x4D5C, 0x4B71, 0x4928, 0x38C3, 0x3990, 0xD464, 0xD473, 0xD49C, 0xD4E0, ++ 0xD53B, 0xD5AD, 0xD633, 0xD6CD, 0xD778, 0xD833, 0xD8FC, 0xD9D1, 0xDAB2, ++ 0xDB9B, 0xDC8C, 0xDD82, 0xDE7D, 0xDF7A, 0xE078, 0xE176, 0xE270, 0xE367, ++ 0xE458, 0xE541, 0xE621, 0xE6F7, 0xE7C0, 0xE87A, 0xE926, 0xE9BF, 0xEA46, ++ 0xEAB8, 0xEB13, 0xEB56, 0xEB80, 0xEB8E, 0xEB38, 0xEA46, 0xE8D2, 0xE6F7, ++ 0xE4CD, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, 0xEB39, 0xE9F9, ++ 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, 0xABA7, 0xA28E, ++ 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, 0x1C7F, 0x1A7D, ++ 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, 0x0B86, 0x0B86, ++ 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, ++ 0x0FD7, 0x0FE2, 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, ++ 0x12E9, 0x13D5, 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, ++ 0x1BF2, 0x1813, 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, ++ 0x1086, 0x1A5F, 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, ++ 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, ++ 0x2894, 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, ++ 0x288E, 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, ++ 0x2888, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x034A, 0x0A88, ++ 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, 0x0FF9, 0x0DAE, ++ 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, 0x03F7, 0x0A45, ++ 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, 0x1DEF, 0x1C26, ++ 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, 0x0DD1, 0x0B80, ++ 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, 0x0D50, ++ 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, 0x0BBC, 0x0B90, ++ 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, ++ 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0xD61F, 0xD61B, 0xD611, ++ 0xD600, 0xD5E9, 0xD5CC, 0xD5AA, 0xD583, 0xD558, 0xD52A, 0xD4F8, 0xD4C3, ++ 0xD48C, 0xD453, 0xD418, 0xD3DC, 0xD3A0, 0xD363, 0xD327, 0xD2EB, 0xD2B1, ++ 0xD279, 0xD242, 0xD20E, 0xD1DD, 0xD1B0, 0xD186, 0xD161, 0xD141, 0xD126, ++ 0xD111, 0xD102, 0xD0FA, 0xD0F8, 0xD0FF, 0xD10D, 0xD124, 0xD144, 0xD16D, ++ 0xD1A0, 0xD1DD, 0xC7DC, 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, ++ 0xF004, 0xF0DA, 0xF21D, 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, ++ 0xFDF0, 0xFEC6, 0xFF13, 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, ++ 0xDC50, 0xE73B, 0xF628, 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, ++ 0x247F, 0x29D3, 0x35C0, 0x422D, 0x4902, 0x4AD0, 0x4C42, 0x4D63, 0x4E3C, ++ 0x4ED7, 0x4F3F, 0x4F7E, 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, ++ 0x4CE5, 0x4BC9, 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, ++ 0x4B5A, 0x4C57, 0x4D53, 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, ++ 0x4DF2, 0x4CE5, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, 0x17DE, ++ 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, 0x1698, 0x1668, ++ 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, 0x151B, 0x14F1, 0x14CA, ++ 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, 0x1424, 0x1418, 0x1411, 0x1410, ++ 0x1415, 0x1421, 0x1434, 0x144D, 0x146F, 0x1498, 0x14CA, 0xFFFF, 0x0015, ++ 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, 0xFF80, ++ 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, 0xF893, ++ 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, 0xF21D, ++ 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, 0x2ABD, ++ 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, 0x6709, ++ 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, 0x65E2, ++ 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, 0x6611, ++ 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x03EC, 0x03EE, ++ 0x03F6, 0x0402, 0x0413, 0x0427, 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, ++ 0x04E5, 0x050D, 0x0536, 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, ++ 0x0662, 0x068A, 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, ++ 0x077D, 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, ++ 0x074A, 0x0726, 0x06FA, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, ++ 0x068E, 0x06A4, 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, ++ 0x0C0E, 0x0D1B, 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, ++ 0x159B, 0x1677, 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, ++ 0x192B, 0x192B, 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, ++ 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, ++ 0x12A4, 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, ++ 0x0E12, 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, ++ 0x12CF, 0x12A4, 0x1231, 0xCEFE, 0xCEF7, 0xCEE1, 0xCEBE, 0xCE90, 0xCE55, ++ 0xCE11, 0xCDC3, 0xCD6C, 0xCD0E, 0xCCA9, 0xCC3E, 0xCBCE, 0xCB5A, 0xCAE4, ++ 0xCA6B, 0xC9F0, 0xC976, 0xC8FC, 0xC884, 0xC80E, 0xC79B, 0xC72D, 0xC6C4, ++ 0xC661, 0xC605, 0xC5B1, 0xC566, 0xC525, 0xC4EF, 0xC4C4, 0xC4A5, 0xC495, ++ 0xC492, 0xC49F, 0xC4BC, 0xC4EA, 0xC52B, 0xC57E, 0xC5E5, 0xC661, 0xF548, ++ 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, ++ 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, 0xE666, 0xE829, 0xE9FD, 0xEBD9, ++ 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, 0xF66D, 0xF7DE, 0xF928, 0xFA43, ++ 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, 0xFC67, 0xFC67, 0xFE37, 0x02C6, ++ 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, 0x1705, 0x175E, 0x17A0, 0x17D0, ++ 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, ++ 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, 0x1613, 0x163B, 0x1676, 0x16BD, ++ 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, 0x1812, 0x1800, 0x17CF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, 0x0057, ++ 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, 0x02D4, ++ 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, 0x05ED, ++ 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, 0x0772, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, ++ 0xFFFC, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, ++ 0xFFE7, 0xFFE4, 0xFFE0, 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, ++ 0xFFCC, 0xFFC9, 0xFFC7, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF60, 0xBF67, 0xBF71, ++ 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, 0xC028, 0xC048, ++ 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, 0xC150, 0xC16E, ++ 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, 0xC211, 0xC218, ++ 0xC21A, 0xD649, 0xD64F, 0xD662, 0xD680, 0xD6AA, 0xD6DE, 0xD71D, 0xD765, ++ 0xD7B7, 0xD812, 0xD876, 0xD8E1, 0xD954, 0xD9CF, 0xDA50, 0xDAD7, 0xDB64, ++ 0xDBF7, 0xDC8E, 0xDD2A, 0xDDC9, 0xDE6C, 0xDF12, 0xDFBB, 0xE066, 0xE113, ++ 0xE1C0, 0xE26F, 0xE31D, 0xE3CC, 0xE47A, 0xE527, 0xE5D2, 0xE67B, 0xE722, ++ 0xE7C6, 0xE866, 0xE903, 0xE99B, 0xEA2E, 0xEABD, 0xD649, 0xDA6F, 0xE390, ++ 0xECB0, 0xF0D6, 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, ++ 0xEE3D, 0xED7A, 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, ++ 0xE6CB, 0xE605, 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, ++ 0xE227, 0xE218, 0xEC40, 0xEC43, 0xEC4B, 0xEC59, 0xEC6C, 0xEC84, 0xECA1, ++ 0xECC2, 0xECE8, 0xED11, 0xED3F, 0xED6F, 0xEDA3, 0xEDDB, 0xEE15, 0xEE51, ++ 0xEE90, 0xEED1, 0xEF14, 0xEF59, 0xEF9F, 0xEFE7, 0xF02F, 0xF078, 0xF0C1, ++ 0xF10B, 0xF155, 0xF19F, 0xF1E8, 0xF231, 0xF278, 0xF2BF, 0xF304, 0xF348, ++ 0xF389, 0xF3C9, 0xF406, 0xF441, 0xF479, 0xF4AE, 0xF4E0, 0xEC40, 0xEDD6, ++ 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, 0xF872, 0xFA77, 0xFCAB, ++ 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, 0x00B3, 0x00AD, 0x00A7, ++ 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, 0x0077, 0x0071, 0x006D, ++ 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59B, 0xB593, 0xB587, 0xB576, 0xB560, ++ 0xB547, 0xB529, 0xB508, 0xB4E3, 0xB4BA, 0xB48E, 0xB45F, 0xB42D, 0xB3F9, ++ 0xB3C2, 0xB388, 0xB34D, 0xB30F, 0xB2D0, 0xB28F, 0xB24D, 0xB20A, 0xB1C6, ++ 0xB181, 0xB13B, 0xB0F5, 0xB0AF, 0xB068, 0xB022, 0xAFDC, 0xAF97, 0xAF52, ++ 0xAF0F, 0xAECC, 0xAE8B, 0xAE4B, 0xAE0D, 0xADD1, 0xAD97, 0xAD5F, 0xB59D, ++ 0xB418, 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, ++ 0xB4CB, 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, ++ 0xB745, 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, ++ 0xAEC3, 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, 0x00FB, 0x015D, 0x01C9, 0x023E, ++ 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, 0x0538, 0x05AD, 0x0619, 0x067B, ++ 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, 0x0731, 0x0677, 0x056A, 0x042C, ++ 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, 0xFF91, 0xFF91, 0xFF91, 0xFF82, ++ 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, ++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, ++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, ++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, ++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, ++ 0x254B, 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, ++ 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, 0x26BD, ++ 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, 0x2812, 0x2844, ++ 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, 0x29D3, 0x2A13, 0x2A55, ++ 0x2537, 0x22E5, 0x20CA, 0x1EE2, 0x1D2A, 0x1BA1, 0x1A43, 0x190F, 0x1801, ++ 0x1717, 0x164E, 0x15A4, 0x1516, 0x14A3, 0x1446, 0x13FD, 0x13C7, 0x13A0, ++ 0x1386, 0x1376, 0x136E, 0x136B, 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, ++ 0x14EB, 0x1553, 0x15AB, 0x15E7, 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, ++ 0x1C02, 0x2111, 0x254E, 0x2715, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, ++ 0x000B, 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, ++ 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, 0x0085, ++ 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, 0x00AE, 0x00B0, ++ 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, 0x00A2, 0x009B, 0x0093, ++ 0x0000, 0xFE9F, 0xFCA1, 0xFA2B, 0xF768, 0xF480, 0xF19A, 0xEEE1, 0xEC7B, ++ 0xEA93, 0xE950, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, 0x0292, ++ 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, 0x0E2C, ++ 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, 0x045B, ++ 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0x0000, 0xFFFF, 0x0001, 0x0002, ++ 0x0003, 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, ++ 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, 0x0029, ++ 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, 0x0035, 0x0036, ++ 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, 0x0032, 0x0030, 0x002D, ++ 0xFFFF, 0xFEA7, 0xFBE6, 0xF80F, 0xF373, 0xEE68, 0xE93F, 0xE44C, 0xDFE2, ++ 0xDC54, 0xD9F5, 0xD918, 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, ++ 0xF612, 0xFAF5, 0xFEE9, 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, ++ 0xFE27, 0xFCF8, 0xFBF9, 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, ++ 0xFABD, 0xFA7F, 0xFA4B, 0xFA36, 0xBF3F, 0xBF41, 0xBF46, 0xBF4F, 0xBF5A, ++ 0xBF68, 0xBF79, 0xBF8C, 0xBFA1, 0xBFB8, 0xBFD1, 0xBFEC, 0xC007, 0xC024, ++ 0xC041, 0xC05F, 0xC07D, 0xC09C, 0xC0BA, 0xC0D8, 0xC0F6, 0xC113, 0xC12F, ++ 0xC14A, 0xC163, 0xC17B, 0xC191, 0xC1A5, 0xC1B7, 0xC1C7, 0xC1D3, 0xC1DD, ++ 0xC1E4, 0xC1E7, 0xC1E7, 0xC1E3, 0xC1DB, 0xC1CF, 0xC1BF, 0xC1AA, 0xC190, ++ 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, 0xC86E, 0xC9FB, ++ 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, 0xC6BD, 0xC4F7, ++ 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, 0xBFCA, 0xC012, ++ 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, 0xC11D, 0xBF09, ++ 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B07, 0x1B00, ++ 0x1AF5, 0x1AE6, 0x1AD3, 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, ++ 0x19E7, 0x19B7, 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, ++ 0x17D4, 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, ++ 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, 0x1230, ++ 0x11D2, 0x1173, 0x1B09, 0x28AA, 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, ++ 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, ++ 0xCB8B, 0xCD98, 0xD027, 0xD30C, 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, ++ 0xE26C, 0xE3E7, 0xE513, 0xE5F6, 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, ++ 0xE70A, 0xE5F8, 0xE36B, 0xE060, 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1142, ++ 0x113F, 0x113B, 0x1136, 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, ++ 0x10F0, 0x10E2, 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, ++ 0x103F, 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, ++ 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, 0x0DD2, ++ 0x0DA2, 0x0D70, 0x1144, 0x191B, 0x1D80, 0x0A66, 0xF74B, 0xF74B, 0xF74B, ++ 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, 0xF58C, ++ 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, 0x07D9, ++ 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, 0x1177, ++ 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC40, 0xAC37, ++ 0xAC29, 0xAC15, 0xABFD, 0xABDF, 0xABBC, 0xAB95, 0xAB69, 0xAB39, 0xAB05, ++ 0xAACD, 0xAA91, 0xAA52, 0xAA0F, 0xA9C9, 0xA981, 0xA935, 0xA8E7, 0xA896, ++ 0xA843, 0xA7EF, 0xA798, 0xA73F, 0xA6E5, 0xA68A, 0xA62E, 0xA5D0, 0xA572, ++ 0xA513, 0xA4B4, 0xA455, 0xA3F5, 0xA396, 0xA337, 0xA2D9, 0xA27B, 0xA21F, ++ 0xA1C3, 0xA169, 0xAC43, 0xBDC1, 0xD23C, 0xE87F, 0xF37A, 0xF37A, 0xF37A, ++ 0xEF6B, 0xE4B8, 0xD598, 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, ++ 0x99ED, 0x9F30, 0xA593, 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, ++ 0xC87D, 0xCA2A, 0xCB49, 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC55, 0xCC05, 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, 0x0013, 0x0020, ++ 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, 0x019C, 0x01FB, ++ 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, 0x0842, 0x0C37, ++ 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, 0x2D6B, 0x2D6B, ++ 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, ++ 0xFFEE, 0xFFE6, 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, ++ 0xFF35, 0xFF0D, 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, ++ 0xFAB5, 0xF8FE, 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, ++ 0xF2E5, 0xF0C4, 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4D, 0x1E56, ++ 0x1E66, 0x1E7B, 0x1E97, 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, ++ 0x1FE1, 0x2022, 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, ++ 0x229B, 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, ++ 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, 0x28F9, ++ 0x2954, 0x29AD, 0x1E4A, 0x194E, 0x14C7, 0x10AD, 0x0CFD, 0x09B0, 0x06C0, ++ 0x0429, 0x01E5, 0xFFED, 0xFE3E, 0xFCD1, 0xFBA0, 0xFAA7, 0xF9DF, 0xF944, ++ 0xF8CF, 0xF87C, 0xF843, 0xF821, 0xF810, 0xF80A, 0xF809, 0xF818, 0xF840, ++ 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, 0xF9C2, 0xF9C2, 0xF9C2, ++ 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, 0x0000, 0x0000, 0xFFFD, ++ 0xFFFA, 0xFFF5, 0xFFEF, 0xFFE8, 0xFFE0, 0xFFD7, 0xFFCC, 0xFFC1, 0xFFB5, ++ 0xFFA7, 0xFF99, 0xFF8A, 0xFF7A, 0xFF69, 0xFF57, 0xFF45, 0xFF31, 0xFF1D, ++ 0xFF09, 0xFEF4, 0xFEDE, 0xFEC7, 0xFEB1, 0xFE99, 0xFE81, 0xFE69, 0xFE51, ++ 0xFE38, 0xFE1E, 0xFE05, 0xFDEB, 0xFDD1, 0xFDB7, 0xFD9D, 0xFD82, 0xFD68, ++ 0xFD4D, 0xFD33, 0x0000, 0xFE6C, 0xFD9D, 0xFD50, 0xFD46, 0xFD46, 0xFD46, ++ 0xFD6F, 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, ++ 0x095A, 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, ++ 0x1A9A, 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, ++ 0x1F95, 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFF2E, ++ 0xFF2E, 0xFF2D, 0xFF2C, 0xFF2B, 0xFF2A, 0xFF29, 0xFF27, 0xFF26, 0xFF24, ++ 0xFF22, 0xFF21, 0xFF1F, 0xFF1D, 0xFF1B, 0xFF19, 0xFF16, 0xFF14, 0xFF12, ++ 0xFF10, 0xFF0E, 0xFF0C, 0xFF0A, 0xFF08, 0xFF06, 0xFF05, 0xFF03, 0xFF01, ++ 0xFF00, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFB, 0xFEFB, 0xFEFA, 0xFEFA, 0xFEFA, ++ 0xFEFA, 0xFEFA, 0xFF2F, 0xFDB7, 0xFA7C, 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, ++ 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, 0xFC59, 0xFE6E, 0x00B6, 0x0325, ++ 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, 0x1312, 0x15A0, 0x180E, 0x1A55, ++ 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, 0x22C4, 0x22FA, 0x22FA, 0x22FA, ++ 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, 0x12D1, 0xC9D7, 0xC9D9, 0xC9DE, ++ 0xC9E7, 0xC9F3, 0xCA02, 0xCA14, 0xCA28, 0xCA3F, 0xCA58, 0xCA73, 0xCA90, ++ 0xCAAF, 0xCACF, 0xCAF0, 0xCB12, 0xCB36, 0xCB5A, 0xCB7E, 0xCBA3, 0xCBC7, ++ 0xCBEC, 0xCC10, 0xCC34, 0xCC57, 0xCC7A, 0xCC9B, 0xCCBB, 0xCCD9, 0xCCF6, ++ 0xCD11, 0xCD2A, 0xCD41, 0xCD55, 0xCD67, 0xCD76, 0xCD82, 0xCD8A, 0xCD90, ++ 0xCD91, 0xCD8F, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, ++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, ++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, ++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, ++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, + }; + +diff --git a/assets/anims/anim_27.inc.c.rej b/assets/anims/anim_27.inc.c.rej +new file mode 100644 +index 0000000..8bb56b4 +--- /dev/null ++++ b/assets/anims/anim_27.inc.c.rej +@@ -0,0 +1,1138 @@ ++diff a/assets/anims/anim_27.inc.c b/assets/anims/anim_27.inc.c (rejected hunks) ++@@ -12,590 +12,554 @@ static const struct Animation anim_27[] = { ++ ++ ++ static const u16 anim_27_indices[] = { ++- 0x0070, 0x0001, 0x0070, 0x0071, 0x0070, 0x00E1, 0x0001, 0x0000, 0x0001, 0x0151, 0x0001, 0x0000, ++- 0x0070, 0x103A, 0x0070, 0x10AA, 0x0070, 0x111A, ++- 0x0070, 0x0EEA, 0x0070, 0x0F5A, 0x0070, 0x0FCA, ++- 0x0070, 0x0D9A, 0x0070, 0x0E0A, 0x0070, 0x0E7A, ++- 0x0001, 0x0D96, 0x0001, 0x0D97, 0x0001, 0x0D98, ++- 0x0070, 0x0312, 0x0070, 0x0382, 0x0070, 0x03F2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x02A2, ++- 0x0070, 0x0152, 0x0070, 0x01C2, 0x0070, 0x0232, ++- 0x0001, 0x0D92, 0x0001, 0x0D93, 0x0001, 0x0D94, ++- 0x0070, 0x0622, 0x0070, 0x0692, 0x0070, 0x0702, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x05B2, ++- 0x0070, 0x0462, 0x0070, 0x04D2, 0x0070, 0x0542, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D95, ++- 0x0070, 0x0C42, 0x0070, 0x0CB2, 0x0070, 0x0D22, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x0BD2, ++- 0x0070, 0x0A82, 0x0070, 0x0AF2, 0x0070, 0x0B62, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0D99, ++- 0x0070, 0x0932, 0x0070, 0x09A2, 0x0070, 0x0A12, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0070, 0x08C2, ++- 0x0070, 0x0772, 0x0070, 0x07E2, 0x0070, 0x0852, +++ 0x0001, 0x0000, 0x0051, 0x0001, 0x002A, 0x0052, 0x0046, 0x007C, 0x005B, +++ 0x00C2, 0x004E, 0x011D, 0x005B, 0x016B, 0x0051, 0x01C6, 0x002A, 0x0217, +++ 0x005D, 0x0241, 0x005D, 0x029E, 0x005E, 0x02FB, 0x0051, 0x0359, 0x0051, +++ 0x03AA, 0x0051, 0x03FB, 0x0001, 0x044C, 0x0001, 0x044D, 0x0001, 0x044E, +++ 0x0051, 0x044F, 0x0051, 0x04A0, 0x0051, 0x04F1, 0x0051, 0x0542, 0x0051, +++ 0x0593, 0x0051, 0x05E4, 0x0051, 0x0635, 0x0051, 0x0686, 0x0051, 0x06D7, +++ 0x0042, 0x0728, 0x0042, 0x076A, 0x0042, 0x07AC, 0x0051, 0x07EE, 0x0051, +++ 0x083F, 0x0051, 0x0890, 0x0071, 0x08E1, 0x0071, 0x0952, 0x0071, 0x09C3, +++ 0x0071, 0x0A34, 0x0071, 0x0AA5, 0x0071, 0x0B16, 0x0049, 0x0B87, 0x0048, +++ 0x0BD0, 0x0049, 0x0C18, 0x0049, 0x0C61, 0x0049, 0x0CAA, 0x0049, 0x0CF3, +++ 0x0051, 0x0D3C, 0x0051, 0x0D8D, 0x0051, 0x0DDE, 0x0051, 0x0E2F, 0x0051, +++ 0x0E80, 0x0051, 0x0ED1, 0x005A, 0x0F22, 0x005B, 0x0F7C, 0x0001, 0x0FD7, +++ 0x0051, 0x0FD8, 0x0051, 0x1029, 0x0051, 0x107A, 0x0051, 0x10CB, 0x0051, +++ 0x111C, 0x0051, 0x116D, 0x0051, 0x11BE, 0x0051, 0x120F, 0x0051, 0x1260, ++ }; ++ ++ static const s16 anim_27_values[] = { ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0006, 0x0008, ++- 0x000A, 0x000D, 0x0013, 0x0017, 0x0016, 0x000D, 0x0000, 0xFFF4, ++- 0xFFF5, 0xFFF4, 0xFFDF, 0xFFC7, 0xFFC0, 0xFFD5, 0xFFF8, 0x0019, ++- 0x002B, 0x002D, 0x002C, 0x0028, 0x0022, 0x001B, 0x0013, 0x000B, ++- 0x0004, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, ++- 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, ++- 0x00AE, 0x00AE, 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, ++- 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, ++- 0x00B5, 0x00B6, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B8, 0x00B8, ++- 0x00B8, 0x00B8, 0x00B8, 0x00B9, 0x00B9, 0x00B9, 0x00B9, 0x00B9, ++- 0x00B9, 0x00B9, 0x00B8, 0x00B5, 0x00AE, 0x00A6, 0x00A0, 0x009E, ++- 0x009D, 0x009C, 0x009C, 0x009C, 0x009B, 0x009B, 0x009B, 0x009C, ++- 0x0099, 0x009B, 0x00A5, 0x00B0, 0x00BC, 0x00C8, 0x00D5, 0x00DF, ++- 0x00E8, 0x00EE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F4, 0x00F3, ++- 0x00EF, 0x00E9, 0x00E5, 0x00E2, 0x00E0, 0x00DE, 0x00DD, 0x00DB, ++- 0x00D5, 0x00CD, 0x00C3, 0x00B8, 0x00AC, 0x00A1, 0x0095, 0x008A, ++- 0x0080, 0x0078, 0x0074, 0x0075, 0x0077, 0x0077, 0x0077, 0x0077, ++- 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, ++- 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, ++- 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, ++- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, ++- 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, ++- 0x0000, 0x0000, 0x0000, 0xFFFD, 0xFFF6, 0xFFEE, 0xFFE7, 0xFFE1, ++- 0xFFDB, 0xFFD6, 0xFFD1, 0xFFCD, 0xFFCC, 0xFFCB, 0xFFCC, 0xFFCC, ++- 0xFFCA, 0xFFCA, 0xFFD0, 0xFFD6, 0xFFDE, 0xFFE5, 0xFFEC, 0xFFF1, ++- 0xFFF5, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE5, 0xFFEB, 0xFFF5, 0x0000, ++- 0x0007, 0x000D, 0x000D, 0x000B, 0x000B, 0x0010, 0x0018, 0x001D, ++- 0x001B, 0x0012, 0x0005, 0xFFF7, 0xFFE7, 0xFFD6, 0xFFC7, 0xFFBA, ++- 0xFFB1, 0xFFAC, 0xFFBD, 0xFFE3, 0x0000, 0x0007, 0x0003, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x3FFF, 0xF1BC, 0xF1BE, 0xF1C6, 0xF1D2, 0xF1E2, 0xF1F6, ++- 0xF20E, 0xF228, 0xF246, 0xF266, 0xF288, 0xF2AC, 0xF2D1, 0xF2F8, ++- 0xF31F, 0xF346, 0xF36E, 0xF395, 0xF3BC, 0xF3E2, 0xF406, 0xF429, ++- 0xF449, 0xF469, 0xF48A, 0xF4AB, 0xF4CD, 0xF4F0, 0xF513, 0xF536, ++- 0xF55A, 0xF57E, 0xF5A2, 0xF5C6, 0xF5E9, 0xF60D, 0xF631, 0xF654, ++- 0xF677, 0xF699, 0xF6BB, 0xF6DC, 0xF6FC, 0xF71B, 0xF73A, 0xF758, ++- 0xF774, 0xF78F, 0xF7A9, 0xF7C2, 0xF7D6, 0xF7E1, 0xF7E6, 0xF7E5, ++- 0xF7E0, 0xF7D9, 0xF7D1, 0xF7CA, 0xF7C4, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, 0xF7C2, ++- 0xF7C2, 0xF7C2, 0xF6B4, 0xF6B3, 0xF6AF, 0xF6AA, 0xF6A3, 0xF69A, ++- 0xF68F, 0xF684, 0xF676, 0xF668, 0xF659, 0xF649, 0xF638, 0xF627, ++- 0xF616, 0xF604, 0xF5F3, 0xF5E1, 0xF5D0, 0xF5BF, 0xF5AF, 0xF5A0, ++- 0xF591, 0xF583, 0xF575, 0xF566, 0xF557, 0xF547, 0xF538, 0xF528, ++- 0xF518, 0xF508, 0xF4F8, 0xF4E8, 0xF4D8, 0xF4C9, 0xF4B9, 0xF4A9, ++- 0xF49A, 0xF48A, 0xF47C, 0xF46D, 0xF45E, 0xF450, 0xF443, 0xF436, ++- 0xF429, 0xF41D, 0xF411, 0xF406, 0xF3FE, 0xF3F9, 0xF3F7, 0xF3F7, ++- 0xF3F9, 0xF3FC, 0xF400, 0xF403, 0xF405, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, 0xF406, ++- 0xF406, 0xF406, 0xD5DF, 0xD5DF, 0xD5DD, 0xD5DA, 0xD5D7, 0xD5D2, ++- 0xD5CD, 0xD5C7, 0xD5C0, 0xD5B9, 0xD5B1, 0xD5A9, 0xD5A0, 0xD598, ++- 0xD58F, 0xD586, 0xD57D, 0xD574, 0xD56B, 0xD563, 0xD55B, 0xD553, ++- 0xD54C, 0xD544, 0xD53D, 0xD535, 0xD52E, 0xD526, 0xD51E, 0xD516, ++- 0xD50E, 0xD506, 0xD4FE, 0xD4F6, 0xD4EE, 0xD4E6, 0xD4DE, 0xD4D6, ++- 0xD4CE, 0xD4C6, 0xD4BE, 0xD4B7, 0xD4B0, 0xD4A9, 0xD4A2, 0xD49B, ++- 0xD494, 0xD48E, 0xD488, 0xD483, 0xD47E, 0xD47C, 0xD47B, 0xD47B, ++- 0xD47C, 0xD47E, 0xD47F, 0xD481, 0xD482, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, 0xD483, ++- 0xD483, 0xD483, 0xD47F, 0xD47B, 0xD46F, 0xD45D, 0xD444, 0xD425, ++- 0xD401, 0xD3D8, 0xD3AC, 0xD37C, 0xD349, 0xD315, 0xD2D6, 0xD288, ++- 0xD22E, 0xD1CE, 0xD16C, 0xD10B, 0xD0B1, 0xD063, 0xD023, 0xCFF7, ++- 0xCFE4, 0xD076, 0xD1AC, 0xD2B0, 0xD2AE, 0xD073, 0xCD22, 0xCB19, ++- 0xCBA4, 0xCD7F, 0xCF73, 0xD04A, 0xCF80, 0xCDD7, 0xCC1A, 0xCB13, ++- 0xCB86, 0xCCCC, 0xCD83, 0xCCF9, 0xCBDB, 0xCAA4, 0xC9CB, 0xC977, ++- 0xC966, 0xC975, 0xC97F, 0xC97A, 0xC978, 0xC977, 0xC976, 0xC977, ++- 0xC978, 0xC97A, 0xC97C, 0xC97D, 0xC97E, 0xC97F, 0xC97F, 0xC97F, ++- 0xC97F, 0xC8B0, 0xC97F, 0xCCF2, 0xD0C7, 0xD4E5, 0xD935, 0xDD9D, ++- 0xE205, 0xE654, 0xEA72, 0xEE45, 0xF1B6, 0xF4AB, 0xF70D, 0xF8C2, ++- 0xFA00, 0xFB0F, 0xFBF2, 0xFCAB, 0xFD3D, 0xFDAA, 0xFDF4, 0xFE1E, ++- 0xFE2B, 0xFE1E, 0xFDF7, 0xFDBA, 0xFD6A, 0xFD09, 0xFC99, 0xFC1D, ++- 0xFB98, 0xFB0B, 0xFA7A, 0xF9E6, 0xF952, 0xF8C2, 0xF332, 0xEB50, ++- 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, 0xEB50, ++- 0xEB50, 0xEB50, 0xF6FF, 0xF700, 0xF702, 0xF706, 0xF70A, 0xF710, ++- 0xF717, 0xF71E, 0xF727, 0xF730, 0xF739, 0xF744, 0xF74E, 0xF759, ++- 0xF764, 0xF76F, 0xF77B, 0xF786, 0xF791, 0xF79B, 0xF7A6, 0xF7B0, ++- 0xF7B9, 0xF79E, 0xF741, 0xF6AA, 0xF5E2, 0xF4F0, 0xF3DD, 0xF2B2, ++- 0xF176, 0xF032, 0xEEED, 0xEDB1, 0xEC86, 0xEB74, 0xEA82, 0xE9BA, ++- 0xE924, 0xE8C7, 0xE8AD, 0xE8DD, 0xE960, 0xEA3D, 0xEB7E, 0xED2B, ++- 0xEF4B, 0xF1E7, 0xF508, 0xF8B5, 0xFEC9, 0x089F, 0x1584, 0x24C5, ++- 0x35AB, 0x4785, 0x599C, 0x6B3D, 0x7BB4, 0x8A4F, 0x978A, 0xA20B, ++- 0xA653, 0x99E3, 0x8A4F, 0x83F5, 0x7D87, 0x771F, 0x70D0, 0x6AAF, ++- 0x64D2, 0x5F4E, 0x5A38, 0x55A5, 0x51AC, 0x4E60, 0x4BD9, 0x4A2A, ++- 0x4921, 0x4878, 0x4828, 0x482B, 0x4877, 0x4907, 0x49D4, 0x4AD5, ++- 0x4C03, 0x4D59, 0x4ECD, 0x5059, 0x51F6, 0x539C, 0x5545, 0x56E8, ++- 0x587F, 0x5A03, 0x5B6C, 0x5CB3, 0x5DD1, 0x5EBE, 0x5F1C, 0x5EED, ++- 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, 0x5EBE, ++- 0x5EBE, 0x5EBE, 0xE0ED, 0xE0EE, 0xE0F1, 0xE0F5, 0xE0FB, 0xE103, ++- 0xE10B, 0xE115, 0xE120, 0xE12B, 0xE138, 0xE145, 0xE152, 0xE160, ++- 0xE16F, 0xE17D, 0xE18C, 0xE19A, 0xE1A8, 0xE1B6, 0xE1C3, 0xE1CF, ++- 0xE1DB, 0xE1F1, 0xE21B, 0xE255, 0xE29E, 0xE2F4, 0xE353, 0xE3B9, ++- 0xE425, 0xE493, 0xE500, 0xE56C, 0xE5D2, 0xE632, 0xE688, 0xE6D1, ++- 0xE70C, 0xE736, 0xE74D, 0xE74E, 0xE736, 0xE704, 0xE6B5, 0xE646, ++- 0xE5B5, 0xE500, 0xE424, 0xE31F, 0xE159, 0xDE65, 0xDA81, 0xD5E9, ++- 0xD0DB, 0xCB93, 0xC64F, 0xC14C, 0xBCC7, 0xB8FC, 0xB735, 0xB767, ++- 0xB7DB, 0xB8D5, 0xB8FC, 0xB734, 0xB530, 0xB2FF, 0xB0AE, 0xAE4D, ++- 0xABEA, 0xA994, 0xA758, 0xA545, 0xA36B, 0xA1D7, 0xA097, 0x9FBB, ++- 0x9F26, 0x9EB3, 0x9E5E, 0x9E25, 0x9E05, 0x9DFE, 0x9E0A, 0x9E2A, ++- 0x9E59, 0x9E96, 0x9EDD, 0x9F2E, 0x9F84, 0x9FDF, 0xA03A, 0xA095, ++- 0xA0EC, 0xA13D, 0xA186, 0xA1C4, 0xA1F4, 0xA215, 0xA21F, 0xA21A, ++- 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, 0xA215, ++- 0xA215, 0xA215, 0xB794, 0xB790, 0xB783, 0xB770, 0xB755, 0xB735, ++- 0xB70E, 0xB6E3, 0xB6B3, 0xB67E, 0xB647, 0xB60C, 0xB5CF, 0xB591, ++- 0xB551, 0xB510, 0xB4D0, 0xB490, 0xB451, 0xB413, 0xB3D8, 0xB39F, ++- 0xB36A, 0xB357, 0xB37F, 0xB3DA, 0xB462, 0xB50E, 0xB5D8, 0xB6B8, ++- 0xB7A6, 0xB89C, 0xB992, 0xBA80, 0xBB5F, 0xBC27, 0xBCD2, 0xBD58, ++- 0xBDB1, 0xBDD6, 0xBDC0, 0xBD67, 0xBCC4, 0xBBCF, 0xBA81, 0xB8D3, ++- 0xB6BC, 0xB437, 0xB13B, 0xADC1, 0xA825, 0x9F31, 0x9382, 0x85B8, ++- 0x766E, 0x6647, 0x55E0, 0x45D5, 0x36C6, 0x2951, 0x1C5F, 0x115F, ++- 0x0CBA, 0x1963, 0x2951, 0x2FE5, 0x3680, 0x3D11, 0x4384, 0x49C7, ++- 0x4FC9, 0x5576, 0x5ABC, 0x5F88, 0x63C9, 0x676C, 0x6A5E, 0x6C8D, ++- 0x6E28, 0x6F6C, 0x7060, 0x710B, 0x7173, 0x719E, 0x7192, 0x7156, ++- 0x70F1, 0x7068, 0x6FC2, 0x6F05, 0x6E38, 0x6D61, 0x6C86, 0x6BAE, ++- 0x6ADF, 0x6A1F, 0x6975, 0x68E7, 0x687C, 0x6839, 0x6825, 0x682F, ++- 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, 0x6839, ++- 0x6839, 0x6839, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, ++- 0x17DE, 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, ++- 0x1698, 0x1668, 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, ++- 0x151B, 0x14F1, 0x14CA, 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, ++- 0x1424, 0x1418, 0x1411, 0x1410, 0x1415, 0x1421, 0x1434, 0x144D, ++- 0x146F, 0x1498, 0x14CA, 0x1504, 0x1548, 0x1594, 0x15EB, 0x164C, ++- 0x16B7, 0x172E, 0x17AF, 0x183D, 0x196E, 0x1BB5, 0x1ED8, 0x229F, ++- 0x26D1, 0x2B32, 0x2F8C, 0x33A4, 0x3741, 0x3A2B, 0x3ACE, 0x3963, ++- 0x385F, 0x3845, 0x3A2B, 0x3F4A, 0x45E0, 0x4CC1, 0x52C0, 0x56B1, ++- 0x5768, 0x551E, 0x50FE, 0x4B47, 0x443A, 0x3C15, 0x3318, 0x2983, ++- 0x1D39, 0x0D76, 0xFC7A, 0xEC86, 0xDFD9, 0xD8B5, 0xDABE, 0xE4C4, ++- 0xF1CB, 0xFCD8, 0x00EF, 0xFE38, 0xF8B4, 0xF133, 0xE885, 0xDF7A, ++- 0xD6E1, 0xCF8A, 0xCA45, 0xC784, 0xC6BF, 0xC74C, 0xC882, 0xC9B8, ++- 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, 0xCA45, ++- 0xCA45, 0xCA45, 0x03EC, 0x03EE, 0x03F6, 0x0402, 0x0413, 0x0427, ++- 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, 0x04E5, 0x050D, 0x0536, ++- 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, 0x0662, 0x068A, ++- 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, 0x077D, ++- 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, ++- 0x074A, 0x0726, 0x06FA, 0x06C6, 0x068A, 0x0646, 0x05F9, 0x05A4, ++- 0x0544, 0x04DC, 0x0469, 0x03EC, 0x02E3, 0x00EB, 0xFE36, 0xFAF1, ++- 0xF74B, 0xF374, 0xEF9C, 0xEBF1, 0xE8A3, 0xE5E1, 0xE479, 0xE466, ++- 0xE49B, 0xE431, 0xE5E1, 0xEAF1, 0xF131, 0xF7C7, 0xFDDC, 0x0297, ++- 0x0521, 0x052D, 0x0366, 0x006B, 0xFCDD, 0xF959, 0xF680, 0xF4F0, ++- 0xF483, 0xF4AF, 0xF57B, 0xF6EF, 0xF913, 0xFBEF, 0x006E, 0x06B8, ++- 0x0DAE, 0x142E, 0x1917, 0x1CBE, 0x2033, 0x2370, 0x266F, 0x292B, ++- 0x2B9D, 0x2DC0, 0x2F8D, 0x30AF, 0x3100, 0x30C6, 0x3047, 0x2FC7, ++- 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, 0x2F8D, ++- 0x2F8D, 0x2F8D, 0xCEFF, 0xCEF8, 0xCEE2, 0xCEBF, 0xCE91, 0xCE56, ++- 0xCE12, 0xCDC4, 0xCD6D, 0xCD0F, 0xCCAA, 0xCC3F, 0xCBCF, 0xCB5B, ++- 0xCAE5, 0xCA6C, 0xC9F1, 0xC977, 0xC8FD, 0xC885, 0xC80F, 0xC79C, ++- 0xC72E, 0xC6C5, 0xC662, 0xC606, 0xC5B2, 0xC567, 0xC526, 0xC4F0, ++- 0xC4C5, 0xC4A6, 0xC496, 0xC493, 0xC4A0, 0xC4BD, 0xC4EB, 0xC52C, ++- 0xC57F, 0xC5E6, 0xC662, 0xC6F4, 0xC79C, 0xC85C, 0xC935, 0xCA27, ++- 0xCB33, 0xCC5A, 0xCD9E, 0xCEFF, 0xD1EC, 0xD77A, 0xDF23, 0xE862, ++- 0xF2AF, 0xFD85, 0x085C, 0x12B1, 0x1BFB, 0x23B6, 0x2778, 0x2759, ++- 0x2696, 0x25AB, 0x23B6, 0x2212, 0x20EC, 0x1FBB, 0x1DF6, 0x1B13, ++- 0x168A, 0x0F95, 0x0679, 0xFC3A, 0xF1D9, 0xE85A, 0xE0C1, 0xDC12, ++- 0xDB50, 0xDDF9, 0xE2C4, 0xE869, 0xEDA2, 0xF126, 0xF39C, 0xF600, ++- 0xF790, 0xF788, 0xF522, 0xF035, 0xE97C, 0xE18E, 0xD900, 0xD068, ++- 0xC85E, 0xC177, 0xBC49, 0xB96D, 0xB8A0, 0xB932, 0xBA74, 0xBBB7, ++- 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, 0xBC49, ++- 0xBC49, 0xBC49, 0xD620, 0xD61C, 0xD612, 0xD601, 0xD5EA, 0xD5CD, ++- 0xD5AB, 0xD584, 0xD559, 0xD52B, 0xD4F9, 0xD4C4, 0xD48D, 0xD454, ++- 0xD419, 0xD3DD, 0xD3A1, 0xD364, 0xD328, 0xD2EC, 0xD2B2, 0xD27A, ++- 0xD243, 0xD20F, 0xD1DE, 0xD1B1, 0xD187, 0xD162, 0xD142, 0xD127, ++- 0xD112, 0xD103, 0xD0FB, 0xD0F9, 0xD100, 0xD10E, 0xD125, 0xD145, ++- 0xD16E, 0xD1A1, 0xD1DE, 0xD226, 0xD27A, 0xD2D8, 0xD343, 0xD3BB, ++- 0xD440, 0xD4D2, 0xD572, 0xD620, 0xD795, 0xDA5A, 0xDE2C, 0xE2C7, ++- 0xE7E7, 0xED47, 0xF2A5, 0xF7BB, 0xFC45, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0xFF4B, 0xFE82, 0xFDAB, 0xFCCA, 0xFBE5, ++- 0xFAFF, 0xFA1E, 0xF945, 0xF87B, 0xF7C3, 0xF722, 0xF69E, 0xF639, ++- 0xF71A, 0xF98B, 0xFC4B, 0xFE1B, 0xFDB8, 0xF9E4, 0xF127, 0xE434, ++- 0xD50A, 0xC5A6, 0xB807, 0xAE2A, 0xA862, 0xA612, 0xA7CE, 0xAE2A, ++- 0xC22B, 0xDF8D, 0xF2F7, 0xF882, 0xFA0F, 0xF8F3, 0xF683, 0xF413, ++- 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, 0xF2F7, ++- 0xF2F7, 0xF2F7, 0x07FA, 0x0804, 0x0820, 0x084E, 0x088C, 0x08DA, ++- 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, 0x0CE4, ++- 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, ++- 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, ++- 0x16E3, 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, ++- 0x15E6, 0x14A2, 0x1329, 0x118C, 0x0FDE, 0x0E30, 0x0C94, 0x0B1B, ++- 0x09D7, 0x08DA, 0x0835, 0x07FA, 0x0FAE, 0x211A, 0x33B4, 0x3EF4, ++- 0x41C8, 0x4189, 0x3F48, 0x3C1A, 0x3911, 0x3741, 0x36EE, 0x3734, ++- 0x3770, 0x38E3, 0x3741, 0x2FF5, 0x26E1, 0x1CB9, 0x1234, 0x06B4, ++- 0xFA61, 0xEF17, 0xE2BC, 0xD757, 0xD4F4, 0xE447, 0xFCA6, 0x0C0B, ++- 0x0E0E, 0x0BA6, 0x06E5, 0x01DF, 0xFEA5, 0xFF49, 0x06FC, 0x1473, ++- 0x22FF, 0x2DF3, 0x30A4, 0x2B2D, 0x2197, 0x151C, 0x06F2, 0xF854, ++- 0xEA76, 0xDE93, 0xD5E1, 0xD118, 0xCF73, 0xCFF4, 0xD19B, 0xD369, ++- 0xD460, 0xD4B1, 0xD531, 0xD5D1, 0xD682, 0xD735, 0xD7DB, 0xD866, ++- 0xD8C6, 0xD8EC, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, 0x2C13, 0x2BCA, ++- 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, 0x27FB, ++- 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, ++- 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, ++- 0x1E92, 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, ++- 0x1F80, 0x20B1, 0x2214, 0x2399, 0x252E, 0x26C3, 0x2847, 0x29AA, ++- 0x2ADB, 0x2BCA, 0x2C65, 0x2C9C, 0x2C62, 0x2BC5, 0x2AE1, 0x29CF, ++- 0x288D, 0x2718, 0x258B, 0x2401, 0x2297, 0x2169, 0x20BF, 0x2097, ++- 0x209D, 0x2064, 0x2169, 0x2423, 0x2762, 0x2B2F, 0x2F91, 0x3525, ++- 0x3BA2, 0x41B7, 0x49E6, 0x51B6, 0x505A, 0x3B8F, 0x1D85, 0x0C1A, ++- 0x0BBE, 0x10D5, 0x1929, 0x2281, 0x2AA7, 0x2F63, 0x2FF6, 0x2DFB, ++- 0x2AC0, 0x2794, 0x25C5, 0x255B, 0x2561, 0x25B0, 0x261E, 0x2683, ++- 0x26B5, 0x268C, 0x25DF, 0x2438, 0x2198, 0x1E8A, 0x1B96, 0x1949, ++- 0x182B, 0x1831, 0x18D5, 0x19EE, 0x1B51, 0x1CD4, 0x1E4D, 0x1F93, ++- 0x207A, 0x20D8, 0xD465, 0xD474, 0xD49D, 0xD4E1, 0xD53C, 0xD5AE, ++- 0xD634, 0xD6CE, 0xD779, 0xD834, 0xD8FD, 0xD9D2, 0xDAB3, 0xDB9C, ++- 0xDC8D, 0xDD83, 0xDE7E, 0xDF7B, 0xE079, 0xE177, 0xE271, 0xE368, ++- 0xE459, 0xE542, 0xE622, 0xE6F8, 0xE7C1, 0xE87B, 0xE927, 0xE9C0, ++- 0xEA47, 0xEAB9, 0xEB14, 0xEB57, 0xEB81, 0xEB8F, 0xEB39, 0xEA47, ++- 0xE8D3, 0xE6F8, 0xE4CE, 0xE271, 0xDFFA, 0xDD83, 0xDB26, 0xD8FD, ++- 0xD722, 0xD5AE, 0xD4BC, 0xD465, 0xD91F, 0xE3C0, 0xEEF8, 0xF576, ++- 0xF688, 0xF58B, 0xF33D, 0xF05E, 0xEDAE, 0xEBED, 0xEB87, 0xEBE1, ++- 0xEC2C, 0xEC1F, 0xEBED, 0xEB98, 0xEB33, 0xEACF, 0xEA7B, 0xEC47, ++- 0xEE29, 0xEA08, 0xDBA3, 0xC729, 0xB32F, 0x9F46, 0x8BBB, 0x8036, ++- 0x7C2F, 0x7A23, 0x7A33, 0x7C84, 0x813D, 0x887C, 0x9742, 0xAE0C, ++- 0xC636, 0xD921, 0xE029, 0xDBC3, 0xD1D6, 0xC3EE, 0xB399, 0xA266, ++- 0x91E0, 0x8395, 0x7911, 0x72D2, 0x6FAF, 0x6EC5, 0x6F30, 0x700D, ++- 0x7076, 0x709D, 0x7134, 0x721C, 0x7337, 0x7466, 0x7589, 0x7682, ++- 0x7732, 0x777A, 0x0000, 0x0000, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, ++- 0xFFE9, 0xFFE1, 0xFFD8, 0xFFCD, 0xFFC2, 0xFFB6, 0xFFA8, 0xFF9A, ++- 0xFF8B, 0xFF7B, 0xFF6A, 0xFF58, 0xFF46, 0xFF32, 0xFF1E, 0xFF0A, ++- 0xFEF5, 0xFEDF, 0xFEC8, 0xFEB2, 0xFE9A, 0xFE82, 0xFE6A, 0xFE52, ++- 0xFE39, 0xFE1F, 0xFE06, 0xFDEC, 0xFDD2, 0xFDB8, 0xFD9E, 0xFD83, ++- 0xFD69, 0xFD4E, 0xFD34, 0xFD19, 0xFCFF, 0xFCE5, 0xFCCB, 0xFCB1, ++- 0xFC97, 0xFC7E, 0xFC65, 0xFC4C, 0xFBF9, 0xFB6A, 0xFAF2, 0xFAE7, ++- 0xFB59, 0xFC0E, 0xFCE6, 0xFDC3, 0xFE85, 0xFF0E, 0xFF2B, 0xFEEE, ++- 0xFEA1, 0xFE8D, 0xFEFB, 0x00C6, 0x0378, 0x055D, 0x05BD, 0x0551, ++- 0x048C, 0x036A, 0x01EF, 0x0095, 0xFFD7, 0xFF98, 0xFF6B, 0xFF4D, ++- 0xFF3D, 0xFF39, 0xFF3D, 0xFF49, 0xFF59, 0xFF6C, 0xFF7F, 0xFF90, ++- 0xFF9D, 0xFFA4, 0xFFA8, 0xFFAF, 0xFFB7, 0xFFC1, 0xFFCD, 0xFFD9, ++- 0xFFE6, 0xFFF3, 0xFFFF, 0x000A, 0x0015, 0x001E, 0x0022, 0x0020, ++- 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, 0x001E, ++- 0x001E, 0x001E, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2E, 0xFF2D, ++- 0xFF2C, 0xFF2B, 0xFF2A, 0xFF28, 0xFF27, 0xFF25, 0xFF23, 0xFF22, ++- 0xFF20, 0xFF1E, 0xFF1C, 0xFF1A, 0xFF17, 0xFF15, 0xFF13, 0xFF11, ++- 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF07, 0xFF06, 0xFF04, 0xFF02, ++- 0xFF01, 0xFEFF, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFC, 0xFEFB, 0xFEFB, ++- 0xFEFB, 0xFEFB, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xFEFF, 0xFF01, ++- 0xFF03, 0xFF05, 0xFF08, 0xFF0B, 0xFF31, 0xFF7E, 0xFFC4, 0xFFD6, ++- 0xFFAB, 0xFF61, 0xFF08, 0xFEAB, 0xFE59, 0xFE20, 0xFE02, 0xFDF7, ++- 0xFDFC, 0xFE0E, 0xFE2A, 0xFE9B, 0xFF2E, 0xFF26, 0xFDC0, 0xFBBE, ++- 0xFAAB, 0xFB2E, 0xFC71, 0xFDC8, 0xFE89, 0xFEBC, 0xFEE0, 0xFEF7, ++- 0xFF03, 0xFF06, 0xFF01, 0xFEF6, 0xFEE8, 0xFED8, 0xFEC8, 0xFEBB, ++- 0xFEB1, 0xFEAE, 0xFEAD, 0xFEAC, 0xFEA9, 0xFEA6, 0xFEA2, 0xFE9E, ++- 0xFE9A, 0xFE96, 0xFE92, 0xFE8E, 0xFE8A, 0xFE88, 0xFE86, 0xFE87, ++- 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, 0xFE88, ++- 0xFE88, 0xFE88, 0xC9D8, 0xC9DA, 0xC9DF, 0xC9E8, 0xC9F4, 0xCA03, ++- 0xCA15, 0xCA29, 0xCA40, 0xCA59, 0xCA74, 0xCA91, 0xCAB0, 0xCAD0, ++- 0xCAF1, 0xCB13, 0xCB37, 0xCB5B, 0xCB7F, 0xCBA4, 0xCBC8, 0xCBED, ++- 0xCC11, 0xCC35, 0xCC58, 0xCC7B, 0xCC9C, 0xCCBC, 0xCCDA, 0xCCF7, ++- 0xCD12, 0xCD2B, 0xCD42, 0xCD56, 0xCD68, 0xCD77, 0xCD83, 0xCD8B, ++- 0xCD91, 0xCD92, 0xCD90, 0xCD8A, 0xCD80, 0xCD72, 0xCD5F, 0xCD47, ++- 0xCD2A, 0xCD08, 0xCCE1, 0xCCB4, 0xCACA, 0xC6B9, 0xC279, 0xBFFF, ++- 0xBF88, 0xBFD5, 0xC0A1, 0xC1A9, 0xC2AA, 0xC35E, 0xC3F7, 0xC4AA, ++- 0xC53A, 0xC56A, 0xC500, 0xC2E7, 0xBF89, 0xBCE8, 0xBBBE, 0xBB4D, ++- 0xBB5E, 0xBBFA, 0xBD03, 0xBE0C, 0xBEA4, 0xBEE1, 0xBF1C, 0xBF55, ++- 0xBF8A, 0xBFB7, 0xBFDD, 0xBFF9, 0xC00A, 0xC00D, 0xC001, 0xBFE3, ++- 0xBFB3, 0xBF6F, 0xBF0D, 0xBE88, 0xBDE8, 0xBD30, 0xBC67, 0xBB93, ++- 0xBAB9, 0xB9DF, 0xB90A, 0xB840, 0xB788, 0xB6E5, 0xB6A3, 0xB6C4, ++- 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, 0xB6E5, ++- 0xB6E5, 0xB6E5, 0x1E4A, 0x1E4D, 0x1E56, 0x1E66, 0x1E7B, 0x1E97, ++- 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, 0x1FE1, 0x2022, ++- 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, 0x229B, ++- 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, ++- 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, ++- 0x28F9, 0x2954, 0x29AD, 0x2A04, 0x2A58, 0x2AAA, 0x2AF9, 0x2B46, ++- 0x2B8F, 0x2BD4, 0x2C16, 0x2C54, 0x2C83, 0x2C9B, 0x2CA0, 0x2C96, ++- 0x2C82, 0x2C69, 0x2C4F, 0x2C37, 0x2C27, 0x2C24, 0x2C52, 0x2CAF, ++- 0x2CFF, 0x2D07, 0x2C8C, 0x2A97, 0x279F, 0x2593, 0x25F3, 0x273C, ++- 0x26D8, 0x2323, 0x1DBE, 0x18F9, 0x1722, 0x1798, 0x1830, 0x18EF, ++- 0x19DC, 0x1AFC, 0x1C54, 0x1DEA, 0x1FC3, 0x21E6, 0x2457, 0x271D, ++- 0x2A3C, 0x2DBA, 0x3416, 0x3E24, 0x496F, 0x5381, 0x59E3, 0x5CA6, ++- 0x5DCB, 0x5DC3, 0x5CFC, 0x5BE9, 0x5AFA, 0x5A9E, 0x5AA7, 0x5AA2, ++- 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, 0x5A9E, ++- 0x5A9E, 0x5A9E, 0x1B09, 0x1B07, 0x1B00, 0x1AF5, 0x1AE6, 0x1AD3, ++- 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, 0x19E7, 0x19B7, ++- 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, 0x17D4, ++- 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, ++- 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, ++- 0x1230, 0x11D2, 0x1173, 0x1114, 0x10B4, 0x1054, 0x0FF5, 0x0F95, ++- 0x0F36, 0x0ED7, 0x0E78, 0x0E1A, 0x0D88, 0x0C9F, 0x0B7A, 0x0A31, ++- 0x08E1, 0x07A3, 0x0691, 0x05C5, 0x055B, 0x056B, 0x0685, 0x08DF, ++- 0x0C0B, 0x0F9F, 0x132E, 0x1730, 0x1BED, 0x20B3, 0x27AA, 0x2EAB, ++- 0x2E88, 0x215D, 0x0D0E, 0xFC26, 0xF027, 0xE78D, 0xE84C, 0xF446, ++- 0x067E, 0x1AA4, 0x2C64, 0x376B, 0x3B61, 0x3B91, 0x3915, 0x350B, ++- 0x308E, 0x2CBB, 0x2970, 0x25DC, 0x220C, 0x1E10, 0x19F7, 0x15D1, ++- 0x11AD, 0x0D9B, 0x09A8, 0x05E5, 0x0261, 0xFF2D, 0xFDD3, 0xFE80, ++- 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, 0xFF2D, ++- 0xFF2D, 0xFF2D, 0x1144, 0x1144, 0x1142, 0x113F, 0x113B, 0x1136, ++- 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, 0x10F0, 0x10E2, ++- 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, 0x103F, ++- 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, ++- 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, ++- 0x0DD2, 0x0DA2, 0x0D70, 0x0D3C, 0x0D07, 0x0CD1, 0x0C99, 0x0C60, ++- 0x0C26, 0x0BE9, 0x0BAC, 0x0B6D, 0x0AE8, 0x09EE, 0x08A5, 0x072F, ++- 0x05B0, 0x044D, 0x0328, 0x0266, 0x022B, 0x0299, 0x04E7, 0x0961, ++- 0x0ECC, 0x13F0, 0x1791, 0x18ED, 0x185D, 0x1650, 0x1100, 0x0A33, ++- 0x07A4, 0x0CD2, 0x163E, 0x1F2A, 0x26A0, 0x2D95, 0x322C, 0x3449, ++- 0x354D, 0x3596, 0x3580, 0x3568, 0x3584, 0x35A8, 0x359F, 0x3536, ++- 0x3438, 0x3270, 0x3001, 0x2D3D, 0x2A34, 0x26F5, 0x2391, 0x2018, ++- 0x1C9A, 0x1926, 0x15CD, 0x129E, 0x0FAA, 0x0D00, 0x0BE4, 0x0C72, ++- 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, 0x0D00, ++- 0x0D00, 0x0D00, 0xAC44, 0xAC41, 0xAC38, 0xAC2A, 0xAC16, 0xABFE, ++- 0xABE0, 0xABBD, 0xAB96, 0xAB6A, 0xAB3A, 0xAB06, 0xAACE, 0xAA92, ++- 0xAA53, 0xAA10, 0xA9CA, 0xA982, 0xA936, 0xA8E8, 0xA897, 0xA844, ++- 0xA7F0, 0xA799, 0xA740, 0xA6E6, 0xA68B, 0xA62F, 0xA5D1, 0xA573, ++- 0xA514, 0xA4B5, 0xA456, 0xA3F6, 0xA397, 0xA338, 0xA2DA, 0xA27C, ++- 0xA220, 0xA1C4, 0xA16A, 0xA111, 0xA0B9, 0xA064, 0xA010, 0x9FBF, ++- 0x9F70, 0x9F23, 0x9EDA, 0x9E93, 0x9E42, 0x9DE0, 0x9D76, 0x9D0A, ++- 0x9CA7, 0x9C53, 0x9C19, 0x9BFF, 0x9C0F, 0x9C50, 0x9C88, 0x9CD8, ++- 0x9DD2, 0xA006, 0xA408, 0xAD20, 0xBA2A, 0xC518, 0xCD05, 0xD2D6, ++- 0xD323, 0xCA2A, 0xBBAD, 0xAF85, 0xA667, 0x9F9D, 0xA0E4, 0xABFB, ++- 0xBC65, 0xCE80, 0xDEAD, 0xE94A, 0xEE42, 0xF05F, 0xF04D, 0xEEBA, ++- 0xEC53, 0xE9C5, 0xE71C, 0xE3FF, 0xE083, 0xDCBC, 0xD8C1, 0xD4A6, ++- 0xD080, 0xCC64, 0xC867, 0xC49E, 0xC11F, 0xBDFD, 0xBCB1, 0xBD57, ++- 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, 0xBDFD, ++- 0xBDFD, 0xBDFD, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, 0x000B, ++- 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, ++- 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, ++- 0x0085, 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, ++- 0x00AE, 0x00B0, 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, ++- 0x00A2, 0x009B, 0x0093, 0x0089, 0x007E, 0x0071, 0x0062, 0x0052, ++- 0x0040, 0x002D, 0x0017, 0x0000, 0xFF88, 0xFE81, 0xFD31, 0xFBE0, ++- 0xFAD5, 0xFA10, 0xF962, 0xF8CB, 0xF84A, 0xF7DF, 0xF78D, 0xF77B, ++- 0xF7DF, 0xF935, 0xFB21, 0xFD26, 0xFF5B, 0x0194, 0x04A6, 0x07C2, ++- 0x084D, 0xFC04, 0xFC37, 0xFD82, 0xFF76, 0x01A1, 0x0395, 0x04E3, ++- 0x0588, 0x05DF, 0x05FF, 0x0600, 0x05FB, 0x0607, 0x05C1, 0x05E1, ++- 0x061A, 0x0693, 0x07B3, 0x0889, 0x0823, 0x0755, 0x06EB, 0x0746, ++- 0x07FB, 0x08A5, 0x08DE, 0x0830, 0x06F6, 0x0601, 0x05C2, 0x05E1, ++- 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, ++- 0x0601, 0x0601, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, ++- 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, ++- 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, ++- 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, ++- 0x0035, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, ++- 0x0032, 0x0030, 0x002D, 0x002A, 0x0026, 0x0023, 0x001E, 0x0019, ++- 0x0014, 0x000D, 0x0007, 0x0000, 0xFFD3, 0xFF72, 0xFEFE, 0xFE9A, ++- 0xFE67, 0xFE74, 0xFEAA, 0xFEF4, 0xFF3C, 0xFF70, 0xFF7D, 0xFF75, ++- 0xFF70, 0xFF5F, 0xFF84, 0x0052, 0x0151, 0x01AA, 0x0035, 0xFE1A, ++- 0xFDF4, 0x0785, 0x0663, 0x0431, 0x0171, 0xFEA7, 0xFC54, 0xFAFA, ++- 0xFABF, 0xFB42, 0xFC3B, 0xFD64, 0xFE77, 0xFF2C, 0xFE59, 0xFEE7, ++- 0xFFBB, 0x007D, 0x00ED, 0x0100, 0x009F, 0x0013, 0xFFED, 0x0067, ++- 0x0136, 0x0218, 0x02CD, 0x0337, 0x0373, 0x039C, 0x03AE, 0x03A5, ++- 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, 0x039C, ++- 0x039C, 0x039C, 0xBF40, 0xBF42, 0xBF47, 0xBF50, 0xBF5B, 0xBF69, ++- 0xBF7A, 0xBF8D, 0xBFA2, 0xBFB9, 0xBFD2, 0xBFED, 0xC008, 0xC025, ++- 0xC042, 0xC060, 0xC07E, 0xC09D, 0xC0BB, 0xC0D9, 0xC0F7, 0xC114, ++- 0xC130, 0xC14B, 0xC164, 0xC17C, 0xC192, 0xC1A6, 0xC1B8, 0xC1C8, ++- 0xC1D4, 0xC1DE, 0xC1E5, 0xC1E8, 0xC1E8, 0xC1E4, 0xC1DC, 0xC1D0, ++- 0xC1C0, 0xC1AB, 0xC191, 0xC172, 0xC14D, 0xC124, 0xC0F4, 0xC0BE, ++- 0xC083, 0xC041, 0xBFF8, 0xBFA9, 0xBDAB, 0xB95B, 0xB440, 0xAFE0, ++- 0xADC1, 0xAE8B, 0xB138, 0xB4CF, 0xB856, 0xBAD4, 0xBB8A, 0xBB27, ++- 0xBAD4, 0xBA43, 0xBB3A, 0xBEE9, 0xC407, 0xCB17, 0xD5CC, 0xE284, ++- 0xECC4, 0xE505, 0xE5E5, 0xE7EC, 0xEA63, 0xEC8F, 0xEDB8, 0xED25, ++- 0xEA42, 0xE584, 0xDFC2, 0xD9D0, 0xD484, 0xD0B4, 0xD77C, 0xD3F8, ++- 0xCE6A, 0xC8DB, 0xC4D0, 0xC273, 0xC1AA, 0xC192, 0xC0F8, 0xBF40, ++- 0xBCF4, 0xBA9A, 0xB8B9, 0xB7A8, 0xB727, 0xB6D3, 0xB6A9, 0xB6BE, ++- 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, 0xB6D3, ++- 0xB6D3, 0xB6D3, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, 0x254B, ++- 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, ++- 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, ++- 0x26BD, 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, ++- 0x2812, 0x2844, 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, ++- 0x29D3, 0x2A13, 0x2A55, 0x2A98, 0x2ADD, 0x2B24, 0x2B6D, 0x2BB7, ++- 0x2C03, 0x2C51, 0x2CA1, 0x2CF2, 0x2E79, 0x317A, 0x348A, 0x3641, ++- 0x3671, 0x3602, 0x3530, 0x3434, 0x3349, 0x32A9, 0x3294, 0x32C3, ++- 0x32A9, 0x3255, 0x309F, 0x2D4A, 0x29BA, 0x25F6, 0x2208, 0x1DF8, ++- 0x19CE, 0x13A5, 0x1185, 0x0F5A, 0x0D6C, 0x0C06, 0x0B70, 0x0BF4, ++- 0x0E09, 0x118C, 0x15E0, 0x1A6A, 0x1E8C, 0x21AA, 0x1E9D, 0x2338, ++- 0x2932, 0x2BF5, 0x246F, 0x1D00, 0x1F7C, 0x2532, 0x2AEE, 0x2FD5, ++- 0x350F, 0x3A6A, 0x3FB7, 0x44C6, 0x4967, 0x4D69, 0x4F07, 0x4E38, ++- 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, 0x4D69, ++- 0x4D69, 0x4D69, 0xD64A, 0xD650, 0xD663, 0xD681, 0xD6AB, 0xD6DF, ++- 0xD71E, 0xD766, 0xD7B8, 0xD813, 0xD877, 0xD8E2, 0xD955, 0xD9D0, ++- 0xDA51, 0xDAD8, 0xDB65, 0xDBF8, 0xDC8F, 0xDD2B, 0xDDCA, 0xDE6D, ++- 0xDF13, 0xDFBC, 0xE067, 0xE114, 0xE1C1, 0xE270, 0xE31E, 0xE3CD, ++- 0xE47B, 0xE528, 0xE5D3, 0xE67C, 0xE723, 0xE7C7, 0xE867, 0xE904, ++- 0xE99C, 0xEA2F, 0xEABE, 0xEB46, 0xEBC9, 0xEC45, 0xECBA, 0xED27, ++- 0xED8C, 0xEDE9, 0xEE3D, 0xEE88, 0xEDA6, 0xEB17, 0xE7CF, 0xE4C2, ++- 0xE1FA, 0xDEFE, 0xDBF7, 0xD912, 0xD67A, 0xD459, 0xD351, 0xD382, ++- 0xD459, 0xDB0C, 0xE555, 0xEEEE, 0xF8B0, 0xFE79, 0xFD04, 0xF79D, ++- 0xF3FA, 0xFB8F, 0xF6DC, 0xF107, 0xEA93, 0xE405, 0xDDE2, 0xD8AE, ++- 0xD49B, 0xD148, 0xCE5E, 0xCB86, 0xC868, 0xC460, 0xBA86, 0xB646, ++- 0xB2F2, 0xB19E, 0xB4E4, 0xBAA8, 0xBFF5, 0xC5AC, 0xCB92, 0xD1CC, ++- 0xD87A, 0xDF5C, 0xE630, 0xECB7, 0xF2AF, 0xF7D7, 0xF9EA, 0xF8E1, ++- 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, 0xF7D7, ++- 0xF7D7, 0xF7D7, 0xEC41, 0xEC44, 0xEC4C, 0xEC5A, 0xEC6D, 0xEC85, ++- 0xECA2, 0xECC3, 0xECE9, 0xED12, 0xED40, 0xED70, 0xEDA4, 0xEDDC, ++- 0xEE16, 0xEE52, 0xEE91, 0xEED2, 0xEF15, 0xEF5A, 0xEFA0, 0xEFE8, ++- 0xF030, 0xF079, 0xF0C2, 0xF10C, 0xF156, 0xF1A0, 0xF1E9, 0xF232, ++- 0xF279, 0xF2C0, 0xF305, 0xF349, 0xF38A, 0xF3CA, 0xF407, 0xF442, ++- 0xF47A, 0xF4AF, 0xF4E1, 0xF510, 0xF53A, 0xF561, 0xF584, 0xF5A2, ++- 0xF5BB, 0xF5D0, 0xF5E0, 0xF5EA, 0xF515, 0xF2FF, 0xF057, 0xEDCE, ++- 0xEB69, 0xE8CF, 0xE629, 0xE39E, 0xE157, 0xDF79, 0xDEB4, 0xDF01, ++- 0xDF79, 0xE11F, 0xE650, 0xF09B, 0xFCED, 0x0571, 0x06D9, 0x047E, ++- 0x028C, 0x043D, 0x04CB, 0x0559, 0x05D6, 0x0630, 0x0655, 0x0633, ++- 0x05AB, 0x04C1, 0x0394, 0x0242, 0x00ED, 0xFE57, 0xFFAF, 0xFD1D, ++- 0xF9C8, 0xF785, 0xF973, 0xFAD8, 0xF6C8, 0xF0EC, 0xEC2D, 0xE904, ++- 0xE5FD, 0xE31D, 0xE069, 0xDDE5, 0xDB95, 0xD97F, 0xD89F, 0xD90F, ++- 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, 0xD97F, ++- 0xD97F, 0xD97F, 0xB59E, 0xB59C, 0xB594, 0xB588, 0xB577, 0xB561, ++- 0xB548, 0xB52A, 0xB509, 0xB4E4, 0xB4BB, 0xB48F, 0xB460, 0xB42E, ++- 0xB3FA, 0xB3C3, 0xB389, 0xB34E, 0xB310, 0xB2D1, 0xB290, 0xB24E, ++- 0xB20B, 0xB1C7, 0xB182, 0xB13C, 0xB0F6, 0xB0B0, 0xB069, 0xB023, ++- 0xAFDD, 0xAF98, 0xAF53, 0xAF10, 0xAECD, 0xAE8C, 0xAE4C, 0xAE0E, ++- 0xADD2, 0xAD98, 0xAD60, 0xAD2B, 0xACF8, 0xACC8, 0xAC9B, 0xAC71, ++- 0xAC4B, 0xAC28, 0xAC0A, 0xABEF, 0xAC61, 0xAD9A, 0xAF1F, 0xB077, ++- 0xB199, 0xB2C8, 0xB3F4, 0xB510, 0xB60E, 0xB6E0, 0xB757, 0xB754, ++- 0xB6E0, 0xB179, 0xAA23, 0xA53C, 0xA0FA, 0x9F6F, 0xA180, 0xA649, ++- 0xAD2A, 0xBA10, 0xBC6B, 0xBE0D, 0xBF1B, 0xBFBA, 0xC010, 0xC042, ++- 0xC015, 0xBF5C, 0xBE4B, 0xBD1B, 0xBC00, 0xBA4C, 0xBC30, 0xC00B, ++- 0xC452, 0xC6D4, 0xC492, 0xC003, 0xBC4B, 0xB84D, 0xB3A1, 0xAE1E, ++- 0xA80C, 0xA1B1, 0x9B52, 0x9534, 0x8F9D, 0x8AD3, 0x88E9, 0x89DE, ++- 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, 0x8AD3, ++- 0x8AD3, 0x8AD3, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, ++- 0x4171, 0xBF5F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, ++- 0x00D5, 0x013F, 0x011C, 0x0000, 0xFDE7, 0xFB34, 0xF815, 0xF4BA, ++- 0xF152, 0xEE0D, 0xEB18, 0xE8A3, 0xE6DE, 0xE5F6, 0xE526, 0xE410, ++- 0xE385, 0xE30D, 0xE5F6, 0xEDDC, 0xF75B, 0x0177, 0x0B35, 0x1398, ++- 0x19A1, 0x19DF, 0x14AE, 0x0EC3, 0x08F9, 0x022F, 0xFC2B, 0xF8AB, ++- 0xF7E4, 0xF895, 0xFA55, 0xFCBD, 0xFF62, 0x025F, 0x061E, 0x0A43, ++- 0x0E6E, 0x1240, 0x1558, 0x17C7, 0x19DC, 0x1B97, 0x1CF8, 0x1E00, ++- 0x1EAE, 0x1DF0, 0x1ADE, 0x15B9, 0x0F14, 0x07F3, 0xFD9E, 0xEF62, ++- 0xEE0C, 0xED5C, 0xED34, 0xED75, 0xEE01, 0xEEB9, 0xEF7E, 0xF033, ++- 0xF0B9, 0xF0F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE1, ++- 0xFFA3, 0xFF74, 0xFF84, 0x0000, 0x00EC, 0x021D, 0x037D, 0x04F8, ++- 0x0678, 0x07E9, 0x0935, 0x0A48, 0x0B0D, 0x0B6E, 0x0B7F, 0x0B76, ++- 0x0B6E, 0x0C00, 0x0B6E, 0x08BE, 0x0579, 0x01F4, 0xFE81, 0xFB74, ++- 0xF920, 0xF82B, 0xF8CD, 0xFAB9, 0xFE88, 0x03B6, 0x0852, 0x0A66, ++- 0x0975, 0x06D3, 0x0345, 0xFF91, 0xFC7A, 0xFA1A, 0xF7C3, 0xF58A, ++- 0xF387, 0xF1D1, 0xF081, 0xEF6D, 0xEE7A, 0xEDD2, 0xEDA0, 0xEE0F, ++- 0xEF4C, 0xF61D, 0xFE08, 0xFF3C, 0xFED8, 0xFFCC, 0x00DF, 0x017F, ++- 0x01A9, 0x01C2, 0x01CC, 0x01CB, 0x01C1, 0x01B2, 0x01A1, 0x0191, ++- 0x0184, 0x017F, 0xEDB7, 0xEE8D, 0xF0A3, 0xF358, 0xF60B, 0xF81B, ++- 0xF8E7, 0xF8C1, 0xF86A, 0xF7E8, 0xF741, 0xF67A, 0xF59B, 0xF4AA, ++- 0xF3AB, 0xF2A5, 0xF19E, 0xF09D, 0xEFA6, 0xEEC1, 0xEDF3, 0xED42, ++- 0xECB4, 0xECD5, 0xEDBF, 0xEECB, 0xEF53, 0xECC8, 0xE8B6, 0xE831, ++- 0xE961, 0xEB0F, 0xEC84, 0xED09, 0xEBFC, 0xE9FE, 0xE814, 0xE744, ++- 0xE7CE, 0xE8EE, 0xE9E8, 0xEA05, 0xE922, 0xE7F4, 0xE745, 0xE718, ++- 0xE707, 0xE72A, 0xE799, 0xE86B, 0xE9A5, 0xEB2C, 0xECE8, 0xEEC0, ++- 0xF09E, 0xF269, 0xF408, 0xF565, 0xF665, 0xF6F3, 0xF714, 0xF703, ++- 0xF6F3, 0xF69D, 0xF6F3, 0xF83C, 0xF986, 0xFAF6, 0xFCB1, 0xFEDE, ++- 0x01A1, 0x0724, 0x0E6D, 0x12EE, 0x12C5, 0x1065, 0x0DC2, 0x0CD2, ++- 0x0DE5, 0x0FC3, 0x1218, 0x1490, 0x16D3, 0x188D, 0x1A04, 0x1B73, ++- 0x1C77, 0x1CAB, 0x1BAC, 0x1969, 0x163F, 0x126E, 0x0E36, 0x09D8, ++- 0x0593, 0xFFD2, 0xFA98, 0xF93B, 0xF947, 0xF92A, 0xF93C, 0xF94C, ++- 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, 0xF94C, ++- 0xF94C, 0xF94C, 0x0000, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, ++- 0x0019, 0x0022, 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, ++- 0x0073, 0x0080, 0x008D, 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, ++- 0x00DB, 0x00E6, 0x00F1, 0x00FB, 0x0104, 0x010D, 0x0114, 0x011A, ++- 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, 0x011F, 0x011A, 0x0113, ++- 0x010A, 0x00FF, 0x00F1, 0x00E1, 0x00CF, 0x00BA, 0x00A2, 0x0087, ++- 0x006A, 0x004A, 0x0026, 0x0000, 0xFFA1, 0xFEE2, 0xFDDB, 0xFCA5, ++- 0xFB58, 0xFA0B, 0xF8D6, 0xF7D1, 0xF714, 0xF6B7, 0xF631, 0xF55F, ++- 0xF4F2, 0xF521, 0xF6B7, 0xFA1E, 0xFE53, 0x02BD, 0x06C8, 0x09DA, ++- 0x0B5C, 0x0B28, 0x09BB, 0x0778, 0x04BF, 0x01F2, 0xFF73, 0xFDA2, ++- 0xFC66, 0xFB66, 0xFAA3, 0xFA1F, 0xF9DB, 0xF9D8, 0xFA4E, 0xFB5D, ++- 0xFCEA, 0xFED7, 0x021E, 0x0623, 0x0860, 0x086E, 0x07BF, 0x069F, ++- 0x0558, 0x0433, 0x037D, 0x037D, 0x0480, 0x099E, 0x1275, 0x1A19, ++- 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, 0x1A19, ++- 0x1A19, 0x1A19, 0x0000, 0xFFFF, 0xFFFA, 0xFFF3, 0xFFE9, 0xFFDD, ++- 0xFFCF, 0xFFBF, 0xFFAD, 0xFF99, 0xFF84, 0xFF6D, 0xFF56, 0xFF3E, ++- 0xFF25, 0xFF0C, 0xFEF2, 0xFED9, 0xFEBF, 0xFEA6, 0xFE8D, 0xFE75, ++- 0xFE5E, 0xFE48, 0xFE34, 0xFE21, 0xFE0F, 0xFDFF, 0xFDF2, 0xFDE6, ++- 0xFDDD, 0xFDD7, 0xFDD4, 0xFDD3, 0xFDD6, 0xFDDC, 0xFDE5, 0xFDF3, ++- 0xFE04, 0xFE1A, 0xFE34, 0xFE52, 0xFE75, 0xFE9E, 0xFECB, 0xFEFD, ++- 0xFF35, 0xFF73, 0xFFB7, 0x0000, 0x00B5, 0x021E, 0x040E, 0x0659, ++- 0x08D0, 0x0B49, 0x0D95, 0x0F89, 0x10F8, 0x11B4, 0x11B9, 0x116A, ++- 0x1137, 0x125E, 0x11B4, 0x0D15, 0x071A, 0x00B0, 0xFAC8, 0xF64D, ++- 0xF42F, 0xF4C5, 0xF753, 0xFB29, 0xFF97, 0x03EC, 0x077A, 0x0990, ++- 0x09E2, 0x08EE, 0x073B, 0x054C, 0x03A6, 0x02CE, 0x036C, 0x050F, ++- 0x0695, 0x06DA, 0x0445, 0x0022, 0xFDAB, 0xFD6E, 0xFDB7, 0xFE5A, ++- 0xFF2A, 0xFFFB, 0x00A0, 0x00ED, 0x00B6, 0xFEAB, 0xFAFF, 0xF7D2, ++- 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, 0xF7D2, ++- 0xF7D2, 0xF7D2, 0x0408, 0x0407, 0x0402, 0x03F9, 0x03EE, 0x03E0, ++- 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, 0x0352, 0x0332, 0x0310, ++- 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, 0x01F5, 0x01C7, ++- 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, 0x0041, ++- 0x000F, 0xFFDF, 0xFFAD, 0xFF7C, 0xFF4B, 0xFF1B, 0xFEEB, 0xFEBD, ++- 0xFE8F, 0xFE63, 0xFE37, 0xFE0D, 0xFDE5, 0xFDBE, 0xFD98, 0xFD3A, ++- 0xFC7C, 0xFBE0, 0xFBEA, 0xFD1C, 0xFF78, 0x0283, 0x0609, 0x09D4, ++- 0x0DAD, 0x115F, 0x14B4, 0x1777, 0x1972, 0x1A6F, 0x1A89, 0x1A47, ++- 0x1A19, 0x1B24, 0x1A6F, 0x1633, 0x10EE, 0x0B41, 0x05CC, 0x0133, ++- 0xFE16, 0xFC7C, 0xFBD8, 0xFBE9, 0xFC71, 0xFD2F, 0xFDE6, 0xFE55, ++- 0xFEA4, 0xFF18, 0xFF9D, 0x0020, 0x008F, 0x00D5, 0x00E3, 0x00BC, ++- 0x0070, 0x000E, 0xFF34, 0xFE28, 0xFE00, 0xFEC7, 0xFFC5, 0x00EC, ++- 0x022F, 0x037F, 0x04CE, 0x060D, 0x072E, 0x0821, 0x08E8, 0x098D, ++- 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, 0x098D, ++- 0x098D, 0x098D, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFB, ++- 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF1, 0xFFED, 0xFFEA, 0xFFE6, 0xFFE2, ++- 0xFFDE, 0xFFD9, 0xFFD5, 0xFFD0, 0xFFCB, 0xFFC6, 0xFFC1, 0xFFBC, ++- 0xFFB6, 0xFFB1, 0xFFAC, 0xFFA6, 0xFFA1, 0xFF9C, 0xFF97, 0xFF92, ++- 0xFF8D, 0xFF88, 0xFF83, 0xFF7E, 0xFF7A, 0xFF76, 0xFF71, 0xFF6E, ++- 0xFF6A, 0xFF67, 0xFF63, 0xFF61, 0xFF5E, 0xFF5C, 0xFF5A, 0xFF59, ++- 0xFF58, 0xFF57, 0xFF57, 0xFD70, 0xF869, 0xF149, 0xE917, 0xE0D9, ++- 0xD995, 0xD452, 0xD216, 0xD1CC, 0xD1A2, 0xD188, 0xD07E, 0xCF84, ++- 0xD188, 0xD74B, 0xE00C, 0xEC79, 0xFB1F, 0x0A12, 0x194F, 0x28D1, ++- 0x3895, 0x4894, 0x58CB, 0x6935, 0x79CE, 0x8A94, 0x9B7D, 0xAC88, ++- 0xBDAF, 0xCEEF, 0xE042, 0xF1A6, 0x0313, 0x1488, 0x25FF, 0x3774, ++- 0x48E2, 0x5A45, 0x6B98, 0x7CD7, 0x8E00, 0x9F09, 0xAFF0, 0xC0B2, ++- 0xD149, 0xE1B1, 0xF1E5, 0x01E1, 0x11A2, 0x2121, 0x2E0E, 0x3669, ++- 0x3AAE, 0x3CAD, 0x3DFA, 0x3EB5, 0x3EFC, 0x3EF0, 0x3EAE, 0x3E58, ++- 0x3E0B, 0x3DE7, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, 0x0008, ++- 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, ++- 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, ++- 0x008E, 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, ++- 0x00F2, 0x00FF, 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, ++- 0x0160, 0x016E, 0x017C, 0x018A, 0x0198, 0x01A5, 0x01B3, 0x01C1, ++- 0x01CE, 0x01DC, 0x01E9, 0x01F6, 0x0203, 0x020F, 0x021C, 0x0228, ++- 0x0234, 0x023F, 0x024A, 0x0255, 0x0260, 0x026A, 0x027C, 0x0288, ++- 0x026A, 0x0205, 0x0177, 0x00F3, 0x007F, 0x0002, 0xFF80, 0xFEFA, ++- 0xFE75, 0xFDF4, 0xFD7A, 0xFD0B, 0xFCAA, 0xFC5B, 0xFC21, 0xFC00, ++- 0xFD8D, 0xFFD8, 0x0175, 0x0323, 0x044D, 0x0463, 0x03C2, 0x032C, ++- 0x029F, 0x021B, 0x019F, 0x012C, 0x00C1, 0x005E, 0x0001, 0xFFAC, ++- 0xFF5B, 0xFF11, 0xFECC, 0xFE8C, 0xFE50, 0xFE18, 0xFE8A, 0xFFA2, ++- 0x005F, 0x0092, 0x00B6, 0x00CF, 0x00DD, 0x00E4, 0x00E5, 0x00E3, ++- 0x00E0, 0x00DE, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, 0x40AB, ++- 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, ++- 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, ++- 0x4144, 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, ++- 0x41B6, 0x41C5, 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, ++- 0x4233, 0x4243, 0x4253, 0x4263, 0x4273, 0x4283, 0x4293, 0x42A2, ++- 0x42B2, 0x42C1, 0x42D0, 0x42DF, 0x42EE, 0x42FC, 0x430A, 0x4318, ++- 0x4325, 0x4333, 0x433F, 0x434C, 0x4358, 0x4364, 0x4372, 0x4378, ++- 0x4364, 0x4321, 0x42C4, 0x426C, 0x4222, 0x41D3, 0x4182, 0x4131, ++- 0x40DF, 0x4090, 0x4043, 0x3FFB, 0x3FB9, 0x3F7E, 0x3F4C, 0x3F23, ++- 0x3F7B, 0x407D, 0x421F, 0x4422, 0x45C5, 0x4644, 0x45E2, 0x4564, ++- 0x44CC, 0x441E, 0x435F, 0x428F, 0x41B4, 0x40D0, 0x3FE7, 0x3EFC, ++- 0x3E12, 0x3D2C, 0x3C4E, 0x3B7C, 0x3AB7, 0x3A05, 0x39A8, 0x39AB, ++- 0x39BC, 0x39B8, 0x39B7, 0x39B8, 0x39BB, 0x39BE, 0x39C2, 0x39C5, ++- 0x39C7, 0x39C8, +++ 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AB, +++ 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, 0x00AD, 0x00AD, 0x00AE, 0x00AE, +++ 0x00AF, 0x00AF, 0x00B0, 0x00B0, 0x00B1, 0x00B1, 0x00B2, 0x00B2, 0x00B3, +++ 0x00B3, 0x00B4, 0x00B4, 0x00B4, 0x00B5, 0x00B5, 0x00B6, 0x00B6, 0x00B7, +++ 0x00B7, 0x00B7, 0x00B8, 0x00B8, 0x00B8, 0x00B8, 0x00AA, 0x00AA, 0x00AB, +++ 0x00AD, 0x00AF, 0x00B2, 0x00B4, 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, +++ 0x00C7, 0x00C9, 0x00CB, 0x00CD, 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, +++ 0x00C0, 0x00BA, 0x00B5, 0x00B1, 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, +++ 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, +++ 0x00A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, +++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +++ 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, 0x3218, 0x30FC, 0x3ABA, +++ 0x5629, 0x8098, 0xB757, 0xF7B3, 0x3EFE, 0x8A84, 0xD796, 0x2382, 0x6B97, +++ 0xAD24, 0xE60E, 0x168A, 0x3F60, 0x615D, 0x7D4A, 0x93F1, 0xA61D, 0xB498, +++ 0xC02B, 0xC988, 0xD0FD, 0xD6BD, 0xDAFD, 0xDDF0, 0xDFCB, 0xE0C1, 0xE108, +++ 0xD856, 0xC39B, 0xAADD, 0x9622, 0x8D70, 0x8D77, 0x8D89, 0x8DA5, 0x8DC6, +++ 0x8DEA, 0x8E0E, 0x8E2F, 0x8E4B, 0x8E5D, 0x8E64, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, 0xFFFC, 0xFFFA, +++ 0xFFF8, 0xFFF6, 0xFFF3, 0xFFF0, 0xFFEC, 0xFFE9, 0xFFE5, 0xFFE1, 0xFFDD, +++ 0xFFD8, 0xFFD4, 0xFFCF, 0xFFCA, 0xFFC5, 0xFFC0, 0xFFBB, 0xFFB5, 0xFFB0, +++ 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, 0xFF96, 0xFF91, 0xFF8C, 0xFF87, 0xFF82, +++ 0xFF7D, 0xFF79, 0xFF75, 0xFF70, 0xFF6D, 0xFF69, 0xFF66, 0xFF62, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0003, 0x0005, +++ 0x0008, 0x000C, 0x0010, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, 0x0036, +++ 0x003E, 0x0047, 0x0050, 0x0059, 0x0063, 0x006D, 0x0078, 0x0083, 0x008E, +++ 0x009A, 0x00A5, 0x00B2, 0x00BE, 0x00CB, 0x00D8, 0x00E5, 0x00F2, 0x00FF, +++ 0x010D, 0x011A, 0x0128, 0x0136, 0x0144, 0x0152, 0x0160, 0x016E, 0x017C, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x40A1, 0x40A1, 0x40A3, 0x40A5, 0x40A7, +++ 0x40AB, 0x40AF, 0x40B4, 0x40BA, 0x40C0, 0x40C7, 0x40CF, 0x40D7, 0x40DF, +++ 0x40E9, 0x40F2, 0x40FD, 0x4107, 0x4113, 0x411E, 0x412A, 0x4137, 0x4144, +++ 0x4151, 0x415F, 0x416D, 0x417B, 0x4189, 0x4198, 0x41A7, 0x41B6, 0x41C5, +++ 0x41D5, 0x41E4, 0x41F4, 0x4204, 0x4214, 0x4224, 0x4233, 0x4243, 0x4253, +++ 0x40A1, 0xFFFF, 0x0000, 0x0003, 0x0006, 0x000C, 0x0012, 0x0019, 0x0022, +++ 0x002C, 0x0036, 0x0041, 0x004D, 0x0059, 0x0066, 0x0073, 0x0080, 0x008D, +++ 0x009B, 0x00A8, 0x00B5, 0x00C2, 0x00CF, 0x00DB, 0x00E6, 0x00F1, 0x00FB, +++ 0x0104, 0x010D, 0x0114, 0x011A, 0x011E, 0x0122, 0x0124, 0x0124, 0x0122, +++ 0x011F, 0x011A, 0x0113, 0x010A, 0x00FF, 0x00F1, 0x0000, 0xFAE9, 0xF35D, +++ 0xEC84, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, 0xF384, +++ 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, 0x096B, +++ 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, 0x0DDE, +++ 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, 0x0223, +++ 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, 0x0D87, +++ 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFE, 0xFFF9, 0xFFF2, 0xFFE8, +++ 0xFFDC, 0xFFCE, 0xFFBE, 0xFFAC, 0xFF98, 0xFF83, 0xFF6C, 0xFF55, 0xFF3D, +++ 0xFF24, 0xFF0B, 0xFEF1, 0xFED8, 0xFEBE, 0xFEA5, 0xFE8C, 0xFE74, 0xFE5D, +++ 0xFE47, 0xFE33, 0xFE20, 0xFE0E, 0xFDFE, 0xFDF1, 0xFDE5, 0xFDDC, 0xFDD6, +++ 0xFDD3, 0xFDD2, 0xFDD5, 0xFDDB, 0xFDE4, 0xFDF2, 0xFE03, 0xFE19, 0xFE33, +++ 0xFFFF, 0x01FD, 0x065D, 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, +++ 0x0901, 0x06BD, 0x045A, 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, +++ 0xFEA1, 0xFED1, 0xFF0A, 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, +++ 0x00D8, 0x0108, 0x012D, 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, +++ 0x00E7, 0x0091, 0x0049, 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, +++ 0x0076, 0x007A, 0x007D, 0x007F, 0x0081, 0x0081, 0x0082, 0x0408, 0x0407, +++ 0x0402, 0x03F9, 0x03EE, 0x03E0, 0x03CE, 0x03BB, 0x03A4, 0x038B, 0x0370, +++ 0x0352, 0x0332, 0x0310, 0x02ED, 0x02C7, 0x02A0, 0x0277, 0x024D, 0x0222, +++ 0x01F5, 0x01C7, 0x0199, 0x0169, 0x0139, 0x0108, 0x00D7, 0x00A5, 0x0073, +++ 0x0041, 0x000F, 0xFFDE, 0xFFAC, 0xFF7B, 0xFF4A, 0xFF1A, 0xFEEA, 0xFEBC, +++ 0xFE8E, 0xFE62, 0xFE36, 0x0884, 0x0C6F, 0x150F, 0x1DAE, 0x2199, 0x2199, +++ 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, 0x0564, 0x026D, +++ 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, 0x029D, 0x02E9, +++ 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, 0x0482, 0x0482, +++ 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, 0xFEA1, 0xFEA8, +++ 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, 0xFDD2, 0xFDB9, +++ 0xFDA9, 0xFDA2, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFEA3, +++ 0xFBA6, 0xF8A9, 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, +++ 0x1216, 0x1955, 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, +++ 0x1054, 0x0862, 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, +++ 0xC514, 0xC174, 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, +++ 0xF13A, 0xF6EC, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x002B, +++ 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, 0x00F5, 0x00CE, 0x0099, +++ 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, 0xFE2B, 0xFDC7, 0xFD6C, +++ 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, 0x0051, 0x0270, 0x0490, +++ 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, 0x069F, 0x02CE, 0xFE3F, +++ 0xFA6E, 0xF8D4, 0xEDB6, 0xEE8C, 0xF0A2, 0xF357, 0xF60A, 0xF81A, 0xF8E6, +++ 0xF8C0, 0xF869, 0xF7E7, 0xF740, 0xF679, 0xF59A, 0xF4A9, 0xF3AA, 0xF2A4, +++ 0xF19D, 0xF09C, 0xEFA5, 0xEEC0, 0xEDF2, 0xED41, 0xECB3, 0xECD4, 0xEDBE, +++ 0xEECA, 0xEF52, 0xECC7, 0xE8B5, 0xE830, 0xE960, 0xEB0E, 0xEC83, 0xED08, +++ 0xEBFB, 0xE9FD, 0xE813, 0xE743, 0xE7CD, 0xE8ED, 0xE9E7, 0xFC61, 0x005D, +++ 0x0268, 0x0328, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, +++ 0x0185, 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, +++ 0xFF15, 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, +++ 0xFFB0, 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, +++ 0xFE47, 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xF6FE, 0xF6FF, 0xF701, 0xF705, +++ 0xF709, 0xF70F, 0xF716, 0xF71D, 0xF726, 0xF72F, 0xF738, 0xF743, 0xF74D, +++ 0xF758, 0xF763, 0xF76E, 0xF77A, 0xF785, 0xF790, 0xF79A, 0xF7A5, 0xF7AF, +++ 0xF7B8, 0xF79D, 0xF740, 0xF6A9, 0xF5E1, 0xF4EF, 0xF3DC, 0xF2B1, 0xF175, +++ 0xF031, 0xEEEC, 0xEDB0, 0xEC85, 0xEB73, 0xEA81, 0xE9B9, 0xE923, 0xE8C6, +++ 0xE8AC, 0xFB1C, 0x1C19, 0x3DCE, 0xD80A, 0xE29C, 0xE29C, 0xE29C, 0xE199, +++ 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, +++ 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, 0x0450, 0x0004, 0xFC31, 0xF8DB, +++ 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, 0xEF74, 0xEF74, 0xEF74, 0xEF74, +++ 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, 0xE0EC, 0xE0ED, 0xE0F0, 0xE0F4, +++ 0xE0FA, 0xE102, 0xE10A, 0xE114, 0xE11F, 0xE12A, 0xE137, 0xE144, 0xE151, +++ 0xE15F, 0xE16E, 0xE17C, 0xE18B, 0xE199, 0xE1A7, 0xE1B5, 0xE1C2, 0xE1CE, +++ 0xE1DA, 0xE1F0, 0xE21A, 0xE254, 0xE29D, 0xE2F3, 0xE352, 0xE3B8, 0xE424, +++ 0xE492, 0xE4FF, 0xE56B, 0xE5D1, 0xE631, 0xE687, 0xE6D0, 0xE70B, 0xE735, +++ 0xE74C, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, +++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, +++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, +++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, +++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xB793, 0xB78F, 0xB782, 0xB76F, +++ 0xB754, 0xB734, 0xB70D, 0xB6E2, 0xB6B2, 0xB67D, 0xB646, 0xB60B, 0xB5CE, +++ 0xB590, 0xB550, 0xB50F, 0xB4CF, 0xB48F, 0xB450, 0xB412, 0xB3D7, 0xB39E, +++ 0xB369, 0xB356, 0xB37E, 0xB3D9, 0xB461, 0xB50D, 0xB5D7, 0xB6B7, 0xB7A5, +++ 0xB89B, 0xB991, 0xBA7F, 0xBB5E, 0xBC26, 0xBCD1, 0xBD57, 0xBDB0, 0xBDD5, +++ 0xBDBF, 0xD4B3, 0xC63D, 0xA66B, 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, +++ 0xFADF, 0xFE0F, 0x0243, 0x0751, 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, +++ 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, +++ 0xE523, 0xE8D3, 0xEBCF, 0xEE06, 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, +++ 0xEA00, 0xDBFF, 0xCB47, 0xBD46, 0xB766, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, 0xF44D, +++ 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, 0xF4CE, +++ 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, 0xF58A, +++ 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, 0xF5C1, +++ 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFE75, 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, +++ 0xF663, 0xF6AF, 0xF714, 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, +++ 0xFBC6, 0xFC97, 0xFD6A, 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, +++ 0x0272, 0x02EE, 0x0354, 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, +++ 0x0905, 0x154B, 0x23F2, 0x3038, 0x4AA2, 0xD47E, 0xD47A, 0xD46E, 0xD45C, +++ 0xD443, 0xD424, 0xD400, 0xD3D7, 0xD3AB, 0xD37B, 0xD348, 0xD314, 0xD2D5, +++ 0xD287, 0xD22D, 0xD1CD, 0xD16B, 0xD10A, 0xD0B0, 0xD062, 0xD022, 0xCFF6, +++ 0xCFE3, 0xD075, 0xD1AB, 0xD2AF, 0xD2AD, 0xD072, 0xCD21, 0xCB18, 0xCBA3, +++ 0xCD7E, 0xCF72, 0xD049, 0xCF7F, 0xCDD6, 0xCC19, 0xCB12, 0xCB85, 0xCCCB, +++ 0xCD82, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, 0xE97C, 0xE992, +++ 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, 0xEF07, 0xF016, +++ 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, 0xF8A8, 0xF986, +++ 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, 0xFC3F, 0xFC3F, +++ 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xF1BB, 0xF1BD, 0xF1C5, 0xF1D1, +++ 0xF1E1, 0xF1F5, 0xF20D, 0xF227, 0xF245, 0xF265, 0xF287, 0xF2AB, 0xF2D0, +++ 0xF2F7, 0xF31E, 0xF345, 0xF36D, 0xF394, 0xF3BB, 0xF3E1, 0xF405, 0xF428, +++ 0xF448, 0xF468, 0xF489, 0xF4AA, 0xF4CC, 0xF4EF, 0xF512, 0xF535, 0xF559, +++ 0xF57D, 0xF5A1, 0xF5C5, 0xF5E8, 0xF60C, 0xF630, 0xF653, 0xF676, 0xF698, +++ 0xF6BA, 0xFFFF, 0xFC13, 0xFA10, 0xF952, 0xF937, 0xF937, 0xF937, 0xF920, +++ 0xF8DE, 0xF875, 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, +++ 0xF166, 0xF043, 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, +++ 0xE827, 0xE77A, 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, +++ 0xF137, 0x0B8C, 0x2AFA, 0x454E, 0xD059, 0xF6B3, 0xF6B2, 0xF6AE, 0xF6A9, +++ 0xF6A2, 0xF699, 0xF68E, 0xF683, 0xF675, 0xF667, 0xF658, 0xF648, 0xF637, +++ 0xF626, 0xF615, 0xF603, 0xF5F2, 0xF5E0, 0xF5CF, 0xF5BE, 0xF5AE, 0xF59F, +++ 0xF590, 0xF582, 0xF574, 0xF565, 0xF556, 0xF546, 0xF537, 0xF527, 0xF517, +++ 0xF507, 0xF4F7, 0xF4E7, 0xF4D7, 0xF4C8, 0xF4B8, 0xF4A8, 0xF499, 0xF489, +++ 0xF47B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, 0xF50D, 0xF50D, 0xF513, +++ 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, 0xF62A, 0xF66A, 0xF6AC, +++ 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, 0xF88C, 0xF8C7, 0xF8FE, +++ 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, 0xF9A9, 0xF9A9, 0xF9A9, +++ 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xD5DE, 0xD5DE, 0xD5DC, 0xD5D9, +++ 0xD5D6, 0xD5D1, 0xD5CC, 0xD5C6, 0xD5BF, 0xD5B8, 0xD5B0, 0xD5A8, 0xD59F, +++ 0xD597, 0xD58E, 0xD585, 0xD57C, 0xD573, 0xD56A, 0xD562, 0xD55A, 0xD552, +++ 0xD54B, 0xD543, 0xD53C, 0xD534, 0xD52D, 0xD525, 0xD51D, 0xD515, 0xD50D, +++ 0xD505, 0xD4FD, 0xD4F5, 0xD4ED, 0xD4E5, 0xD4DD, 0xD4D5, 0xD4CD, 0xD4C5, +++ 0xD4BD, 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, +++ 0xED0B, 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, +++ 0xF646, 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, +++ 0x01B5, 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, +++ 0xFA5A, 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xFF5A, 0xFD96, +++ 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, 0xEB34, 0xE970, 0xE8CA, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, +++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, +++ 0xD02E, 0xD346, 0xD5D2, 0xD78C, 0xD830, 0x07FA, 0x0804, 0x0820, 0x084E, +++ 0x088C, 0x08DA, 0x0936, 0x099E, 0x0A13, 0x0A92, 0x0B1B, 0x0BAD, 0x0C45, +++ 0x0CE4, 0x0D88, 0x0E30, 0x0EDB, 0x0F88, 0x1035, 0x10E2, 0x118C, 0x1234, +++ 0x12D9, 0x1378, 0x1410, 0x14A2, 0x152B, 0x15AA, 0x161F, 0x1687, 0x16E3, +++ 0x1731, 0x176F, 0x179D, 0x17B9, 0x17C3, 0x1788, 0x16E3, 0x15E6, 0x14A2, +++ 0x1329, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, 0x1FDB, +++ 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, 0xD7A7, +++ 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, 0x428B, +++ 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, 0x18CE, +++ 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2C9C, 0x2C93, 0x2C79, 0x2C4D, +++ 0x2C13, 0x2BCA, 0x2B73, 0x2B11, 0x2AA3, 0x2A2B, 0x29AA, 0x2921, 0x2891, +++ 0x27FB, 0x2761, 0x26C3, 0x2622, 0x257F, 0x24DC, 0x243A, 0x2399, 0x22FA, +++ 0x2260, 0x21CA, 0x213A, 0x20B1, 0x2030, 0x1FB8, 0x1F4B, 0x1EE8, 0x1E92, +++ 0x1E49, 0x1E0E, 0x1DE3, 0x1DC8, 0x1DBF, 0x1DF6, 0x1E92, 0x1F80, 0x20B1, +++ 0x2214, 0x2BD6, 0x26DD, 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, +++ 0x0E26, 0x1092, 0x13B1, 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, +++ 0x4FF0, 0x4CD2, 0x4A66, 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, +++ 0x53CD, 0x5249, 0x50C6, 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, +++ 0x4D5C, 0x4B71, 0x4928, 0x38C3, 0x3990, 0xD464, 0xD473, 0xD49C, 0xD4E0, +++ 0xD53B, 0xD5AD, 0xD633, 0xD6CD, 0xD778, 0xD833, 0xD8FC, 0xD9D1, 0xDAB2, +++ 0xDB9B, 0xDC8C, 0xDD82, 0xDE7D, 0xDF7A, 0xE078, 0xE176, 0xE270, 0xE367, +++ 0xE458, 0xE541, 0xE621, 0xE6F7, 0xE7C0, 0xE87A, 0xE926, 0xE9BF, 0xEA46, +++ 0xEAB8, 0xEB13, 0xEB56, 0xEB80, 0xEB8E, 0xEB38, 0xEA46, 0xE8D2, 0xE6F7, +++ 0xE4CD, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, 0xEB39, 0xE9F9, +++ 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, 0xABA7, 0xA28E, +++ 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, 0x1C7F, 0x1A7D, +++ 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, 0x0B86, 0x0B86, +++ 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, +++ 0x0FD7, 0x0FE2, 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, +++ 0x12E9, 0x13D5, 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, +++ 0x1BF2, 0x1813, 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, +++ 0x1086, 0x1A5F, 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, +++ 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, +++ 0x2894, 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, +++ 0x288E, 0x2883, 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, +++ 0x2888, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x034A, 0x0A88, +++ 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, 0x0FF9, 0x0DAE, +++ 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, 0x03F7, 0x0A45, +++ 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, 0x1DEF, 0x1C26, +++ 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, 0x0DD1, 0x0B80, +++ 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, 0x0D50, +++ 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, 0x0BBC, 0x0B90, +++ 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, 0x0D2C, +++ 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0xD61F, 0xD61B, 0xD611, +++ 0xD600, 0xD5E9, 0xD5CC, 0xD5AA, 0xD583, 0xD558, 0xD52A, 0xD4F8, 0xD4C3, +++ 0xD48C, 0xD453, 0xD418, 0xD3DC, 0xD3A0, 0xD363, 0xD327, 0xD2EB, 0xD2B1, +++ 0xD279, 0xD242, 0xD20E, 0xD1DD, 0xD1B0, 0xD186, 0xD161, 0xD141, 0xD126, +++ 0xD111, 0xD102, 0xD0FA, 0xD0F8, 0xD0FF, 0xD10D, 0xD124, 0xD144, 0xD16D, +++ 0xD1A0, 0xD1DD, 0xC7DC, 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, +++ 0xF004, 0xF0DA, 0xF21D, 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, +++ 0xFDF0, 0xFEC6, 0xFF13, 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, +++ 0xDC50, 0xE73B, 0xF628, 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, +++ 0x247F, 0x29D3, 0x35C0, 0x422D, 0x4902, 0x4AD0, 0x4C42, 0x4D63, 0x4E3C, +++ 0x4ED7, 0x4F3F, 0x4F7E, 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, +++ 0x4CE5, 0x4BC9, 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, +++ 0x4B5A, 0x4C57, 0x4D53, 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, +++ 0x4DF2, 0x4CE5, 0x183D, 0x183A, 0x1831, 0x1823, 0x1811, 0x17F9, 0x17DE, +++ 0x17BE, 0x179C, 0x1776, 0x174E, 0x1723, 0x16F6, 0x16C8, 0x1698, 0x1668, +++ 0x1637, 0x1606, 0x15D5, 0x15A5, 0x1575, 0x1548, 0x151B, 0x14F1, 0x14CA, +++ 0x14A5, 0x1483, 0x1465, 0x144B, 0x1435, 0x1424, 0x1418, 0x1411, 0x1410, +++ 0x1415, 0x1421, 0x1434, 0x144D, 0x146F, 0x1498, 0x14CA, 0xFFFF, 0x0015, +++ 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, 0xFF80, +++ 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, 0xF893, +++ 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, 0xF21D, +++ 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, 0x2ABD, +++ 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, 0x6709, +++ 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, 0x65E2, +++ 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, 0x6611, +++ 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x03EC, 0x03EE, +++ 0x03F6, 0x0402, 0x0413, 0x0427, 0x0440, 0x045B, 0x047A, 0x049C, 0x04BF, +++ 0x04E5, 0x050D, 0x0536, 0x0560, 0x058B, 0x05B6, 0x05E2, 0x060D, 0x0638, +++ 0x0662, 0x068A, 0x06B1, 0x06D7, 0x06FA, 0x071A, 0x0738, 0x0753, 0x076A, +++ 0x077D, 0x078C, 0x0797, 0x079D, 0x079E, 0x0799, 0x078F, 0x077F, 0x0768, +++ 0x074A, 0x0726, 0x06FA, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, +++ 0x068E, 0x06A4, 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, +++ 0x0C0E, 0x0D1B, 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, +++ 0x159B, 0x1677, 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, +++ 0x192B, 0x192B, 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, +++ 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, +++ 0x12A4, 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, +++ 0x0E12, 0x0E70, 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, +++ 0x12CF, 0x12A4, 0x1231, 0xCEFE, 0xCEF7, 0xCEE1, 0xCEBE, 0xCE90, 0xCE55, +++ 0xCE11, 0xCDC3, 0xCD6C, 0xCD0E, 0xCCA9, 0xCC3E, 0xCBCE, 0xCB5A, 0xCAE4, +++ 0xCA6B, 0xC9F0, 0xC976, 0xC8FC, 0xC884, 0xC80E, 0xC79B, 0xC72D, 0xC6C4, +++ 0xC661, 0xC605, 0xC5B1, 0xC566, 0xC525, 0xC4EF, 0xC4C4, 0xC4A5, 0xC495, +++ 0xC492, 0xC49F, 0xC4BC, 0xC4EA, 0xC52B, 0xC57E, 0xC5E5, 0xC661, 0xF548, +++ 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, +++ 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, 0xE666, 0xE829, 0xE9FD, 0xEBD9, +++ 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, 0xF66D, 0xF7DE, 0xF928, 0xFA43, +++ 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, 0xFC67, 0xFC67, 0xFE37, 0x02C6, +++ 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, 0x1705, 0x175E, 0x17A0, 0x17D0, +++ 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, +++ 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, 0x1613, 0x163B, 0x1676, 0x16BD, +++ 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, 0x1812, 0x1800, 0x17CF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, 0x0057, +++ 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, 0x02D4, +++ 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, 0x05ED, +++ 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, 0x0772, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, +++ 0xFFFC, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, +++ 0xFFE7, 0xFFE4, 0xFFE0, 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, +++ 0xFFCC, 0xFFC9, 0xFFC7, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF60, 0xBF67, 0xBF71, +++ 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, 0xC028, 0xC048, +++ 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, 0xC150, 0xC16E, +++ 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, 0xC211, 0xC218, +++ 0xC21A, 0xD649, 0xD64F, 0xD662, 0xD680, 0xD6AA, 0xD6DE, 0xD71D, 0xD765, +++ 0xD7B7, 0xD812, 0xD876, 0xD8E1, 0xD954, 0xD9CF, 0xDA50, 0xDAD7, 0xDB64, +++ 0xDBF7, 0xDC8E, 0xDD2A, 0xDDC9, 0xDE6C, 0xDF12, 0xDFBB, 0xE066, 0xE113, +++ 0xE1C0, 0xE26F, 0xE31D, 0xE3CC, 0xE47A, 0xE527, 0xE5D2, 0xE67B, 0xE722, +++ 0xE7C6, 0xE866, 0xE903, 0xE99B, 0xEA2E, 0xEABD, 0xD649, 0xDA6F, 0xE390, +++ 0xECB0, 0xF0D6, 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, +++ 0xEE3D, 0xED7A, 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, +++ 0xE6CB, 0xE605, 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, +++ 0xE227, 0xE218, 0xEC40, 0xEC43, 0xEC4B, 0xEC59, 0xEC6C, 0xEC84, 0xECA1, +++ 0xECC2, 0xECE8, 0xED11, 0xED3F, 0xED6F, 0xEDA3, 0xEDDB, 0xEE15, 0xEE51, +++ 0xEE90, 0xEED1, 0xEF14, 0xEF59, 0xEF9F, 0xEFE7, 0xF02F, 0xF078, 0xF0C1, +++ 0xF10B, 0xF155, 0xF19F, 0xF1E8, 0xF231, 0xF278, 0xF2BF, 0xF304, 0xF348, +++ 0xF389, 0xF3C9, 0xF406, 0xF441, 0xF479, 0xF4AE, 0xF4E0, 0xEC40, 0xEDD6, +++ 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, 0xF872, 0xFA77, 0xFCAB, +++ 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, 0x00B3, 0x00AD, 0x00A7, +++ 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, 0x0077, 0x0071, 0x006D, +++ 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59B, 0xB593, 0xB587, 0xB576, 0xB560, +++ 0xB547, 0xB529, 0xB508, 0xB4E3, 0xB4BA, 0xB48E, 0xB45F, 0xB42D, 0xB3F9, +++ 0xB3C2, 0xB388, 0xB34D, 0xB30F, 0xB2D0, 0xB28F, 0xB24D, 0xB20A, 0xB1C6, +++ 0xB181, 0xB13B, 0xB0F5, 0xB0AF, 0xB068, 0xB022, 0xAFDC, 0xAF97, 0xAF52, +++ 0xAF0F, 0xAECC, 0xAE8B, 0xAE4B, 0xAE0D, 0xADD1, 0xAD97, 0xAD5F, 0xB59D, +++ 0xB418, 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, +++ 0xB4CB, 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, +++ 0xB745, 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, +++ 0xAEC3, 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, 0x00FB, 0x015D, 0x01C9, 0x023E, +++ 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, 0x0538, 0x05AD, 0x0619, 0x067B, +++ 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, 0x0731, 0x0677, 0x056A, 0x042C, +++ 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, 0xFF91, 0xFF91, 0xFF91, 0xFF82, +++ 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, +++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, +++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, +++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, +++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x253A, 0x253E, 0x2543, +++ 0x254B, 0x2553, 0x255E, 0x256A, 0x2577, 0x2587, 0x2598, 0x25AA, 0x25BE, +++ 0x25D4, 0x25EB, 0x2604, 0x261F, 0x263B, 0x2659, 0x2679, 0x269A, 0x26BD, +++ 0x26E2, 0x2708, 0x2731, 0x275A, 0x2786, 0x27B3, 0x27E1, 0x2812, 0x2844, +++ 0x2878, 0x28AE, 0x28E5, 0x291E, 0x2959, 0x2995, 0x29D3, 0x2A13, 0x2A55, +++ 0x2537, 0x22E5, 0x20CA, 0x1EE2, 0x1D2A, 0x1BA1, 0x1A43, 0x190F, 0x1801, +++ 0x1717, 0x164E, 0x15A4, 0x1516, 0x14A3, 0x1446, 0x13FD, 0x13C7, 0x13A0, +++ 0x1386, 0x1376, 0x136E, 0x136B, 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, +++ 0x14EB, 0x1553, 0x15AB, 0x15E7, 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, +++ 0x1C02, 0x2111, 0x254E, 0x2715, 0x0000, 0x0000, 0x0001, 0x0004, 0x0007, +++ 0x000B, 0x000F, 0x0015, 0x001A, 0x0021, 0x0027, 0x002E, 0x0036, 0x003E, +++ 0x0046, 0x004E, 0x0056, 0x005E, 0x0066, 0x006E, 0x0076, 0x007E, 0x0085, +++ 0x008C, 0x0093, 0x0099, 0x009E, 0x00A3, 0x00A8, 0x00AB, 0x00AE, 0x00B0, +++ 0x00B1, 0x00B1, 0x00B1, 0x00AF, 0x00AC, 0x00A7, 0x00A2, 0x009B, 0x0093, +++ 0x0000, 0xFE9F, 0xFCA1, 0xFA2B, 0xF768, 0xF480, 0xF19A, 0xEEE1, 0xEC7B, +++ 0xEA93, 0xE950, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, 0x0292, +++ 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, 0x0E2C, +++ 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, 0x045B, +++ 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0x0000, 0xFFFF, 0x0001, 0x0002, +++ 0x0003, 0x0004, 0x0006, 0x0008, 0x000A, 0x000C, 0x000E, 0x0010, 0x0013, +++ 0x0015, 0x0018, 0x001A, 0x001D, 0x001F, 0x0022, 0x0024, 0x0026, 0x0029, +++ 0x002B, 0x002D, 0x002F, 0x0031, 0x0032, 0x0033, 0x0035, 0x0035, 0x0036, +++ 0x0036, 0x0036, 0x0036, 0x0036, 0x0035, 0x0033, 0x0032, 0x0030, 0x002D, +++ 0xFFFF, 0xFEA7, 0xFBE6, 0xF80F, 0xF373, 0xEE68, 0xE93F, 0xE44C, 0xDFE2, +++ 0xDC54, 0xD9F5, 0xD918, 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, +++ 0xF612, 0xFAF5, 0xFEE9, 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, +++ 0xFE27, 0xFCF8, 0xFBF9, 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, +++ 0xFABD, 0xFA7F, 0xFA4B, 0xFA36, 0xBF3F, 0xBF41, 0xBF46, 0xBF4F, 0xBF5A, +++ 0xBF68, 0xBF79, 0xBF8C, 0xBFA1, 0xBFB8, 0xBFD1, 0xBFEC, 0xC007, 0xC024, +++ 0xC041, 0xC05F, 0xC07D, 0xC09C, 0xC0BA, 0xC0D8, 0xC0F6, 0xC113, 0xC12F, +++ 0xC14A, 0xC163, 0xC17B, 0xC191, 0xC1A5, 0xC1B7, 0xC1C7, 0xC1D3, 0xC1DD, +++ 0xC1E4, 0xC1E7, 0xC1E7, 0xC1E3, 0xC1DB, 0xC1CF, 0xC1BF, 0xC1AA, 0xC190, +++ 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, 0xC86E, 0xC9FB, +++ 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, 0xC6BD, 0xC4F7, +++ 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, 0xBFCA, 0xC012, +++ 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, 0xC11D, 0xBF09, +++ 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B07, 0x1B00, +++ 0x1AF5, 0x1AE6, 0x1AD3, 0x1ABC, 0x1AA2, 0x1A83, 0x1A61, 0x1A3C, 0x1A13, +++ 0x19E7, 0x19B7, 0x1984, 0x194F, 0x1916, 0x18DB, 0x189D, 0x185D, 0x181A, +++ 0x17D4, 0x178D, 0x1743, 0x16F7, 0x16A9, 0x1659, 0x1608, 0x15B4, 0x1560, +++ 0x150A, 0x14B2, 0x1459, 0x13FF, 0x13A4, 0x1349, 0x12EC, 0x128E, 0x1230, +++ 0x11D2, 0x1173, 0x1B09, 0x28AA, 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, +++ 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, +++ 0xCB8B, 0xCD98, 0xD027, 0xD30C, 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, +++ 0xE26C, 0xE3E7, 0xE513, 0xE5F6, 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, +++ 0xE70A, 0xE5F8, 0xE36B, 0xE060, 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1142, +++ 0x113F, 0x113B, 0x1136, 0x1130, 0x1128, 0x111F, 0x1115, 0x110A, 0x10FE, +++ 0x10F0, 0x10E2, 0x10D2, 0x10C1, 0x10AE, 0x109A, 0x1086, 0x106F, 0x1058, +++ 0x103F, 0x1025, 0x100A, 0x0FED, 0x0FCF, 0x0FB0, 0x0F90, 0x0F6E, 0x0F4B, +++ 0x0F27, 0x0F01, 0x0EDA, 0x0EB1, 0x0E87, 0x0E5C, 0x0E30, 0x0E02, 0x0DD2, +++ 0x0DA2, 0x0D70, 0x1144, 0x191B, 0x1D80, 0x0A66, 0xF74B, 0xF74B, 0xF74B, +++ 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, 0xF58C, +++ 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, 0x07D9, +++ 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, 0x1177, +++ 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC40, 0xAC37, +++ 0xAC29, 0xAC15, 0xABFD, 0xABDF, 0xABBC, 0xAB95, 0xAB69, 0xAB39, 0xAB05, +++ 0xAACD, 0xAA91, 0xAA52, 0xAA0F, 0xA9C9, 0xA981, 0xA935, 0xA8E7, 0xA896, +++ 0xA843, 0xA7EF, 0xA798, 0xA73F, 0xA6E5, 0xA68A, 0xA62E, 0xA5D0, 0xA572, +++ 0xA513, 0xA4B4, 0xA455, 0xA3F5, 0xA396, 0xA337, 0xA2D9, 0xA27B, 0xA21F, +++ 0xA1C3, 0xA169, 0xAC43, 0xBDC1, 0xD23C, 0xE87F, 0xF37A, 0xF37A, 0xF37A, +++ 0xEF6B, 0xE4B8, 0xD598, 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, +++ 0x99ED, 0x9F30, 0xA593, 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, +++ 0xC87D, 0xCA2A, 0xCB49, 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, +++ 0xCC77, 0xCC55, 0xCC05, 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, 0x0013, 0x0020, +++ 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, 0x019C, 0x01FB, +++ 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, 0x0842, 0x0C37, +++ 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, 0x2D6B, 0x2D6B, +++ 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, +++ 0xFFEE, 0xFFE6, 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, +++ 0xFF35, 0xFF0D, 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, +++ 0xFAB5, 0xF8FE, 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, +++ 0xF2E5, 0xF0C4, 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4D, 0x1E56, +++ 0x1E66, 0x1E7B, 0x1E97, 0x1EB7, 0x1EDD, 0x1F08, 0x1F38, 0x1F6C, 0x1FA5, +++ 0x1FE1, 0x2022, 0x2067, 0x20AE, 0x20FA, 0x2148, 0x2199, 0x21ED, 0x2243, +++ 0x229B, 0x22F6, 0x2352, 0x23AF, 0x240E, 0x246F, 0x24D0, 0x2531, 0x2594, +++ 0x25F6, 0x2658, 0x26BB, 0x271D, 0x277E, 0x27DE, 0x283E, 0x289C, 0x28F9, +++ 0x2954, 0x29AD, 0x1E4A, 0x194E, 0x14C7, 0x10AD, 0x0CFD, 0x09B0, 0x06C0, +++ 0x0429, 0x01E5, 0xFFED, 0xFE3E, 0xFCD1, 0xFBA0, 0xFAA7, 0xF9DF, 0xF944, +++ 0xF8CF, 0xF87C, 0xF843, 0xF821, 0xF810, 0xF80A, 0xF809, 0xF818, 0xF840, +++ 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, 0xF9C2, 0xF9C2, 0xF9C2, +++ 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, 0x0000, 0x0000, 0xFFFD, +++ 0xFFFA, 0xFFF5, 0xFFEF, 0xFFE8, 0xFFE0, 0xFFD7, 0xFFCC, 0xFFC1, 0xFFB5, +++ 0xFFA7, 0xFF99, 0xFF8A, 0xFF7A, 0xFF69, 0xFF57, 0xFF45, 0xFF31, 0xFF1D, +++ 0xFF09, 0xFEF4, 0xFEDE, 0xFEC7, 0xFEB1, 0xFE99, 0xFE81, 0xFE69, 0xFE51, +++ 0xFE38, 0xFE1E, 0xFE05, 0xFDEB, 0xFDD1, 0xFDB7, 0xFD9D, 0xFD82, 0xFD68, +++ 0xFD4D, 0xFD33, 0x0000, 0xFE6C, 0xFD9D, 0xFD50, 0xFD46, 0xFD46, 0xFD46, +++ 0xFD6F, 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, +++ 0x095A, 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, +++ 0x1A9A, 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, +++ 0x1F95, 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFF2E, +++ 0xFF2E, 0xFF2D, 0xFF2C, 0xFF2B, 0xFF2A, 0xFF29, 0xFF27, 0xFF26, 0xFF24, +++ 0xFF22, 0xFF21, 0xFF1F, 0xFF1D, 0xFF1B, 0xFF19, 0xFF16, 0xFF14, 0xFF12, +++ 0xFF10, 0xFF0E, 0xFF0C, 0xFF0A, 0xFF08, 0xFF06, 0xFF05, 0xFF03, 0xFF01, +++ 0xFF00, 0xFEFE, 0xFEFD, 0xFEFC, 0xFEFB, 0xFEFB, 0xFEFA, 0xFEFA, 0xFEFA, +++ 0xFEFA, 0xFEFA, 0xFF2F, 0xFDB7, 0xFA7C, 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, +++ 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, 0xFC59, 0xFE6E, 0x00B6, 0x0325, +++ 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, 0x1312, 0x15A0, 0x180E, 0x1A55, +++ 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, 0x22C4, 0x22FA, 0x22FA, 0x22FA, +++ 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, 0x12D1, 0xC9D7, 0xC9D9, 0xC9DE, +++ 0xC9E7, 0xC9F3, 0xCA02, 0xCA14, 0xCA28, 0xCA3F, 0xCA58, 0xCA73, 0xCA90, +++ 0xCAAF, 0xCACF, 0xCAF0, 0xCB12, 0xCB36, 0xCB5A, 0xCB7E, 0xCBA3, 0xCBC7, +++ 0xCBEC, 0xCC10, 0xCC34, 0xCC57, 0xCC7A, 0xCC9B, 0xCCBB, 0xCCD9, 0xCCF6, +++ 0xCD11, 0xCD2A, 0xCD41, 0xCD55, 0xCD67, 0xCD76, 0xCD82, 0xCD8A, 0xCD90, +++ 0xCD91, 0xCD8F, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, +++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, +++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, +++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, +++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, ++ }; ++ +diff --git a/assets/anims/anim_2A.inc.c b/assets/anims/anim_2A.inc.c +index 9101652..a44d592 100644 +--- a/assets/anims/anim_2A.inc.c ++++ b/assets/anims/anim_2A.inc.c +@@ -12,107 +12,162 @@ static const struct Animation anim_2A[] = { + + + static const u16 anim_2A_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x024A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x0222, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x01FA, +- 0x0001, 0x01F6, 0x0001, 0x01F7, 0x0001, 0x01F8, +- 0x0028, 0x0006, 0x0028, 0x002E, 0x0028, 0x0056, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0005, +- 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, +- 0x0001, 0x01F2, 0x0001, 0x01F3, 0x0001, 0x01F4, +- 0x0028, 0x0082, 0x0028, 0x00AA, 0x0028, 0x00D2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0081, +- 0x0001, 0x007E, 0x0001, 0x007F, 0x0001, 0x0080, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F5, +- 0x0028, 0x017A, 0x0028, 0x01A2, 0x0028, 0x01CA, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0179, +- 0x0001, 0x0176, 0x0001, 0x0177, 0x0001, 0x0178, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F9, +- 0x0028, 0x00FE, 0x0028, 0x0126, 0x0028, 0x014E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00FD, +- 0x0001, 0x00FA, 0x0001, 0x00FB, 0x0001, 0x00FC, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0028, 0x0008, ++ 0x0028, 0x0030, 0x0027, 0x0058, 0x0028, 0x007F, 0x0026, 0x00A7, 0x0028, ++ 0x00CD, 0x0028, 0x00F5, 0x0001, 0x011D, 0x0001, 0x011E, 0x0001, 0x011F, ++ 0x0028, 0x0120, 0x0028, 0x0148, 0x0028, 0x0170, 0x0028, 0x0198, 0x0028, ++ 0x01C0, 0x0001, 0x01E8, 0x0001, 0x01E9, 0x0001, 0x01EA, 0x0001, 0x01EB, ++ 0x0001, 0x01EC, 0x0001, 0x01ED, 0x0001, 0x01EE, 0x0028, 0x01EF, 0x0028, ++ 0x0217, 0x0028, 0x023F, 0x0027, 0x0267, 0x0028, 0x028E, 0x0001, 0x02B6, ++ 0x0001, 0x02B7, 0x0001, 0x02B8, 0x0001, 0x02B9, 0x0028, 0x02BA, 0x0028, ++ 0x02E2, 0x0001, 0x030A, 0x0028, 0x030B, 0x0028, 0x0333, 0x0028, 0x035B, ++ 0x0028, 0x0383, 0x0027, 0x03AB, 0x0001, 0x03D2, 0x0001, 0x03D3, 0x0001, ++ 0x03D4, 0x0001, 0x03D5, 0x0028, 0x03D6, 0x0028, 0x03FE, 0x0001, 0x0426, ++ 0x0028, 0x0427, 0x0028, 0x044F, 0x0028, 0x0477, 0x0022, 0x049F, 0x0027, ++ 0x04C1, 0x0001, 0x04E8, 0x0001, 0x04E9, 0x0001, 0x04EA, 0x0001, 0x04EB, + }; + + static const s16 anim_2A_values[] = { +- 0x0000, 0x3FFF, 0x008A, 0xF435, 0xEA2C, 0xF913, 0xB8A2, 0xB906, +- 0xBA25, 0xBBE7, 0xBE38, 0xC101, 0xC42C, 0xC7A5, 0xCB53, 0xCF23, +- 0xD2FE, 0xD6CE, 0xDA7C, 0xDDF5, 0xE120, 0xE3E9, 0xE63A, 0xE7FC, +- 0xE91B, 0xE97F, 0xE924, 0xE821, 0xE687, 0xE46A, 0xE1DC, 0xDEF1, +- 0xDBBB, 0xD84C, 0xD4B8, 0xD111, 0xCD69, 0xC9D5, 0xC666, 0xC330, +- 0xC045, 0xBDB7, 0xBB9A, 0xBA00, 0xB8FD, 0xB8A2, 0xC454, 0xC45C, +- 0xC472, 0xC496, 0xC4C4, 0xC4FC, 0xC53B, 0xC581, 0xC5CA, 0xC617, +- 0xC664, 0xC6B0, 0xC6FA, 0xC73F, 0xC77F, 0xC7B7, 0xC7E5, 0xC808, +- 0xC81F, 0xC826, 0xC81F, 0xC80B, 0xC7EB, 0xC7C1, 0xC78E, 0xC753, +- 0xC713, 0xC6CE, 0xC686, 0xC63D, 0xC5F4, 0xC5AC, 0xC568, 0xC527, +- 0xC4ED, 0xC4BA, 0xC490, 0xC470, 0xC45B, 0xC454, 0xCB3D, 0xCAD8, +- 0xC9B7, 0xC7F1, 0xC59B, 0xC2CC, 0xBF9A, 0xBC1A, 0xB864, 0xB48C, +- 0xB0A9, 0xACD1, 0xA91B, 0xA59B, 0xA269, 0x9F9A, 0x9D44, 0x9B7E, +- 0x9A5D, 0x99F8, 0x9A53, 0x9B59, 0x9CF6, 0x9F18, 0xA1AB, 0xA49C, +- 0xA7DA, 0xAB50, 0xAEEC, 0xB29A, 0xB649, 0xB9E5, 0xBD5B, 0xC098, +- 0xC38A, 0xC61D, 0xC83F, 0xC9DC, 0xCAE1, 0xCB3D, 0x003A, 0x054A, +- 0xEBEE, 0xF6A2, 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, +- 0x4294, 0x408A, 0x3E5F, 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, +- 0x318B, 0x2FE7, 0x2E8B, 0x2D82, 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, +- 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, 0x36BD, 0x38D8, 0x3AFF, +- 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, 0x47A0, 0x4891, +- 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, 0x39CD, +- 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, +- 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, +- 0x395A, 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, +- 0x39A7, 0x39B2, 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, +- 0x39E5, 0x39E6, 0xCC24, 0xCBE8, 0xCB3E, 0xCA32, 0xC8D1, 0xC728, +- 0xC545, 0xC335, 0xC104, 0xBEBF, 0xBC74, 0xBA2F, 0xB7FE, 0xB5ED, +- 0xB40A, 0xB262, 0xB101, 0xAFF5, 0xAF4B, 0xAF0F, 0xAF45, 0xAFE0, +- 0xB0D3, 0xB215, 0xB39A, 0xB557, 0xB741, 0xB94C, 0xBB6D, 0xBD99, +- 0xBFC6, 0xC1E7, 0xC3F2, 0xC5DC, 0xC799, 0xC91E, 0xCA5F, 0xCB53, +- 0xCBEE, 0xCC24, 0x0135, 0x0207, 0xDF23, 0x10D8, 0x10FF, 0x1101, +- 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, 0x114A, 0x1159, +- 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, 0x11BD, +- 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, +- 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, +- 0x111E, 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, +- 0x054D, 0x0574, 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, +- 0x076A, 0x07BD, 0x080D, 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, +- 0x094B, 0x0953, 0x094B, 0x0935, 0x0913, 0x08E5, 0x08AD, 0x086E, +- 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, 0x06A3, 0x0658, 0x0612, +- 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, 0xBDBB, 0xBDC3, +- 0xBDD9, 0xBDFB, 0xBE28, 0xBE5F, 0xBE9D, 0xBEE1, 0xBF29, 0xBF73, +- 0xBFBE, 0xC009, 0xC051, 0xC095, 0xC0D3, 0xC109, 0xC136, 0xC159, +- 0xC16E, 0xC176, 0xC16F, 0xC15B, 0xC13C, 0xC113, 0xC0E1, 0xC0A8, +- 0xC069, 0xC026, 0xBFE0, 0xBF99, 0xBF51, 0xBF0B, 0xBEC8, 0xBE89, +- 0xBE50, 0xBE1E, 0xBDF5, 0xBDD6, 0xBDC2, 0xBDBB, 0x0013, 0xFEE0, +- 0xDF6A, 0x0F13, 0xF602, 0xF600, 0xF5FB, 0xF5F3, 0xF5E7, 0xF5DA, +- 0xF5CB, 0xF5BA, 0xF5A8, 0xF596, 0xF583, 0xF571, 0xF55F, 0xF54F, +- 0xF53F, 0xF532, 0xF527, 0xF51E, 0xF519, 0xF517, 0xF519, 0xF51E, +- 0xF525, 0xF52F, 0xF53C, 0xF54A, 0xF559, 0xF56A, 0xF57B, 0xF58D, +- 0xF59E, 0xF5AF, 0xF5C0, 0xF5D0, 0xF5DE, 0xF5EA, 0xF5F4, 0xF5FC, +- 0xF601, 0xF602, 0xFC00, 0xFBF8, 0xFBE2, 0xFBBF, 0xFB91, 0xFB59, +- 0xFB1A, 0xFAD5, 0xFA8C, 0xFA40, 0xF9F3, 0xF9A7, 0xF95E, 0xF919, +- 0xF8DA, 0xF8A2, 0xF874, 0xF851, 0xF83B, 0xF833, 0xF83A, 0xF84E, +- 0xF86E, 0xF898, 0xF8CB, 0xF905, 0xF945, 0xF98A, 0xF9D1, 0xFA1A, +- 0xFA62, 0xFAAA, 0xFAEE, 0xFB2E, 0xFB68, 0xFB9B, 0xFBC5, 0xFBE5, +- 0xFBF9, 0xFC00, 0xBCB0, 0xBCBA, 0xBCD6, 0xBD03, 0xBD3D, 0xBD84, +- 0xBDD4, 0xBE2C, 0xBE89, 0xBEE9, 0xBF4B, 0xBFAB, 0xC009, 0xC060, +- 0xC0B1, 0xC0F7, 0xC132, 0xC15E, 0xC17B, 0xC185, 0xC17C, 0xC162, +- 0xC139, 0xC104, 0xC0C3, 0xC079, 0xC028, 0xBFD1, 0xBF77, 0xBF1A, +- 0xBEBE, 0xBE63, 0xBE0C, 0xBDBB, 0xBD71, 0xBD30, 0xBCFB, 0xBCD2, +- 0xBCB9, 0xBCB0, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0xD6E6, 0xD6EB, 0xD6F9, 0xD70F, 0xD72B, 0xD74D, +- 0xD772, 0xD799, 0xD7C2, 0xD7EB, 0xD813, 0xD837, 0xD858, 0xD873, +- 0xD887, 0xD896, 0xD8A3, 0xD8AC, 0xD8B2, 0xD8B5, 0xD8B5, 0xD8B2, +- 0xD8AC, 0xD8A3, 0xD896, 0xD887, 0xD873, 0xD858, 0xD837, 0xD813, +- 0xD7EB, 0xD7C2, 0xD799, 0xD772, 0xD74D, 0xD72B, 0xD70F, 0xD6F9, +- 0xD6EB, 0xD6E6, 0xF839, 0xF823, 0xF7E8, 0xF78C, 0xF717, 0xF68F, +- 0xF5FA, 0xF55E, 0xF4C3, 0xF42E, 0xF3A6, 0xF331, 0xF2D5, 0xF29A, +- 0xF284, 0xF28B, 0xF29F, 0xF2BE, 0xF2E9, 0xF31C, 0xF358, 0xF39C, +- 0xF3E5, 0xF434, 0xF486, 0xF4DC, 0xF533, 0xF58A, 0xF5E1, 0xF637, +- 0xF689, 0xF6D8, 0xF721, 0xF765, 0xF7A1, 0xF7D4, 0xF7FF, 0xF81E, +- 0xF832, 0xF839, 0x7C1D, 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, +- 0x7DB8, 0x7E27, 0x7E96, 0x7F00, 0x7F61, 0x7FB5, 0x7FF6, 0x8024, +- 0x8033, 0x802E, 0x8020, 0x800A, 0x7FE8, 0x7FC4, 0x7F99, 0x7F68, +- 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, 0x7DC9, 0x7D8C, +- 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, 0x7C30, +- 0x7C22, 0x7C1D, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x7C1D, ++ 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, 0x7DB8, 0x7E27, 0x7E96, 0x7F00, ++ 0x7F61, 0x7FB5, 0x7FF5, 0x8023, 0x8033, 0x802D, 0x8020, 0x800A, 0x7FE8, ++ 0x7FC4, 0x7F99, 0x7F68, 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, ++ 0x7DC9, 0x7D8C, 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, ++ 0x7C30, 0x7C22, 0x7C1D, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xF838, 0xF822, 0xF7E7, 0xF78B, 0xF716, 0xF68E, 0xF5F9, 0xF55D, ++ 0xF4C2, 0xF42D, 0xF3A5, 0xF330, 0xF2D4, 0xF299, 0xF283, 0xF28A, 0xF29E, ++ 0xF2BD, 0xF2E8, 0xF31B, 0xF357, 0xF39B, 0xF3E4, 0xF433, 0xF485, 0xF4DB, ++ 0xF532, 0xF589, 0xF5E0, 0xF636, 0xF688, 0xF6D7, 0xF720, 0xF764, 0xF7A0, ++ 0xF7D3, 0xF7FE, 0xF81D, 0xF831, 0xF838, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xD6E5, 0xD6EA, 0xD6F8, 0xD70E, 0xD72A, 0xD74C, 0xD771, ++ 0xD798, 0xD7C1, 0xD7EA, 0xD812, 0xD836, 0xD857, 0xD872, 0xD886, 0xD895, ++ 0xD8A2, 0xD8AB, 0xD8B1, 0xD8B4, 0xD8B4, 0xD8B1, 0xD8AB, 0xD8A2, 0xD895, ++ 0xD886, 0xD872, 0xD857, 0xD836, 0xD812, 0xD7EA, 0xD7C1, 0xD798, 0xD771, ++ 0xD74C, 0xD72A, 0xD70E, 0xD6F8, 0xD6EA, 0xD6E5, 0x0001, 0xFFFE, 0xC170, ++ 0xB8A1, 0xB905, 0xBA24, 0xBBE6, 0xBE37, 0xC100, 0xC42B, 0xC7A4, 0xCB52, ++ 0xCF22, 0xD2FD, 0xD6CD, 0xDA7B, 0xDDF4, 0xE11F, 0xE3E8, 0xE639, 0xE7FB, ++ 0xE91A, 0xE97E, 0xE923, 0xE820, 0xE686, 0xE469, 0xE1DB, 0xDEF0, 0xDBBA, ++ 0xD84B, 0xD4B7, 0xD110, 0xCD68, 0xC9D4, 0xC665, 0xC32F, 0xC044, 0xBDB6, ++ 0xBB99, 0xB9FF, 0xB8FC, 0xB8A1, 0xC453, 0xC45B, 0xC471, 0xC495, 0xC4C3, ++ 0xC4FB, 0xC53A, 0xC580, 0xC5C9, 0xC616, 0xC663, 0xC6AF, 0xC6F9, 0xC73E, ++ 0xC77E, 0xC7B6, 0xC7E4, 0xC807, 0xC81E, 0xC825, 0xC81E, 0xC80A, 0xC7EA, ++ 0xC7C0, 0xC78D, 0xC752, 0xC712, 0xC6CD, 0xC685, 0xC63C, 0xC5F3, 0xC5AB, ++ 0xC567, 0xC526, 0xC4EC, 0xC4B9, 0xC48F, 0xC46F, 0xC45A, 0xC453, 0xCB3C, ++ 0xCAD7, 0xC9B6, 0xC7F0, 0xC59A, 0xC2CB, 0xBF99, 0xBC19, 0xB863, 0xB48B, ++ 0xB0A8, 0xACD0, 0xA91A, 0xA59A, 0xA268, 0x9F99, 0x9D43, 0x9B7D, 0x9A5C, ++ 0x99F7, 0x9A52, 0x9B58, 0x9CF5, 0x9F17, 0xA1AA, 0xA49B, 0xA7D9, 0xAB4F, ++ 0xAEEB, 0xB299, 0xB648, 0xB9E4, 0xBD5A, 0xC097, 0xC389, 0xC61C, 0xC83E, ++ 0xC9DB, 0xCAE0, 0xCB3C, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xF912, 0x008A, 0xF434, 0xEA2B, 0x0001, 0xFFFE, 0xC170, ++ 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, 0x4294, 0x408A, 0x3E5F, ++ 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, 0x318B, 0x2FE7, 0x2E8B, 0x2D82, ++ 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, ++ 0x36BD, 0x38D8, 0x3AFF, 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, ++ 0x47A0, 0x4891, 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, ++ 0x39CD, 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, ++ 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, 0x395A, ++ 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, 0x39A7, 0x39B2, ++ 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, 0x39E5, 0x39E6, 0xCC23, ++ 0xCBE7, 0xCB3D, 0xCA31, 0xC8D0, 0xC727, 0xC544, 0xC334, 0xC103, 0xBEBE, ++ 0xBC73, 0xBA2E, 0xB7FD, 0xB5EC, 0xB409, 0xB261, 0xB100, 0xAFF4, 0xAF4A, ++ 0xAF0E, 0xAF44, 0xAFDF, 0xB0D2, 0xB214, 0xB399, 0xB556, 0xB740, 0xB94B, ++ 0xBB6C, 0xBD98, 0xBFC5, 0xC1E6, 0xC3F1, 0xC5DB, 0xC798, 0xC91D, 0xCA5E, ++ 0xCB52, 0xCBED, 0xCC23, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xF6A1, 0x003A, 0x054A, 0xEBED, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0xF601, 0xF5FF, 0xF5FA, 0xF5F2, ++ 0xF5E6, 0xF5D9, 0xF5CA, 0xF5B9, 0xF5A7, 0xF595, 0xF582, 0xF570, 0xF55E, ++ 0xF54E, 0xF53E, 0xF531, 0xF526, 0xF51D, 0xF518, 0xF516, 0xF518, 0xF51D, ++ 0xF524, 0xF52E, 0xF53B, 0xF549, 0xF558, 0xF569, 0xF57A, 0xF58C, 0xF59D, ++ 0xF5AE, 0xF5BF, 0xF5CF, 0xF5DD, 0xF5E9, 0xF5F3, 0xF5FB, 0xF600, 0xF601, ++ 0xFBFF, 0xFBF7, 0xFBE1, 0xFBBE, 0xFB90, 0xFB58, 0xFB19, 0xFAD4, 0xFA8B, ++ 0xFA3F, 0xF9F2, 0xF9A6, 0xF95D, 0xF918, 0xF8D9, 0xF8A1, 0xF873, 0xF850, ++ 0xF83A, 0xF832, 0xF839, 0xF84D, 0xF86D, 0xF897, 0xF8CA, 0xF904, 0xF944, ++ 0xF989, 0xF9D0, 0xFA19, 0xFA61, 0xFAA9, 0xFAED, 0xFB2D, 0xFB67, 0xFB9A, ++ 0xFBC4, 0xFBE4, 0xFBF8, 0xFBFF, 0xBCAF, 0xBCB9, 0xBCD5, 0xBD02, 0xBD3C, ++ 0xBD83, 0xBDD3, 0xBE2B, 0xBE88, 0xBEE8, 0xBF4A, 0xBFAA, 0xC008, 0xC05F, ++ 0xC0B0, 0xC0F6, 0xC131, 0xC15D, 0xC17A, 0xC184, 0xC17B, 0xC161, 0xC138, ++ 0xC103, 0xC0C2, 0xC078, 0xC027, 0xBFD0, 0xBF76, 0xBF19, 0xBEBD, 0xBE62, ++ 0xBE0B, 0xBDBA, 0xBD70, 0xBD2F, 0xBCFA, 0xBCD1, 0xBCB8, 0xBCAF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0F13, 0xF5A6, 0x00BB, ++ 0xB257, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xBF5E, 0x10FF, 0x1101, 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, ++ 0x114A, 0x1159, 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, ++ 0x11BD, 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, ++ 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, 0x111E, ++ 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, 0x054D, 0x0574, ++ 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, 0x076A, 0x07BD, 0x080D, ++ 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, 0x094B, 0x0953, 0x094B, 0x0935, ++ 0x0913, 0x08E5, 0x08AD, 0x086E, 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, ++ 0x06A3, 0x0658, 0x0612, 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, ++ 0xBDBA, 0xBDC2, 0xBDD8, 0xBDFA, 0xBE27, 0xBE5E, 0xBE9C, 0xBEE0, 0xBF28, ++ 0xBF72, 0xBFBD, 0xC008, 0xC050, 0xC094, 0xC0D2, 0xC108, 0xC135, 0xC158, ++ 0xC16D, 0xC175, 0xC16E, 0xC15A, 0xC13B, 0xC112, 0xC0E0, 0xC0A7, 0xC068, ++ 0xC025, 0xBFDF, 0xBF98, 0xBF50, 0xBF0A, 0xBEC7, 0xBE88, 0xBE4F, 0xBE1D, ++ 0xBDF4, 0xBDD5, 0xBDC1, 0xBDBA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x10D8, 0x120C, 0xFC42, 0xB3C3, + }; + +diff --git a/assets/anims/anim_2A.inc.c.rej b/assets/anims/anim_2A.inc.c.rej +new file mode 100644 +index 0000000..b475c47 +--- /dev/null ++++ b/assets/anims/anim_2A.inc.c.rej +@@ -0,0 +1,263 @@ ++diff a/assets/anims/anim_2A.inc.c b/assets/anims/anim_2A.inc.c (rejected hunks) ++@@ -12,107 +12,162 @@ static const struct Animation anim_2A[] = { ++ ++ ++ static const u16 anim_2A_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x024A, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x0222, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0028, 0x01FA, ++- 0x0001, 0x01F6, 0x0001, 0x01F7, 0x0001, 0x01F8, ++- 0x0028, 0x0006, 0x0028, 0x002E, 0x0028, 0x0056, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0005, ++- 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, ++- 0x0001, 0x01F2, 0x0001, 0x01F3, 0x0001, 0x01F4, ++- 0x0028, 0x0082, 0x0028, 0x00AA, 0x0028, 0x00D2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0081, ++- 0x0001, 0x007E, 0x0001, 0x007F, 0x0001, 0x0080, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F5, ++- 0x0028, 0x017A, 0x0028, 0x01A2, 0x0028, 0x01CA, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0179, ++- 0x0001, 0x0176, 0x0001, 0x0177, 0x0001, 0x0178, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01F9, ++- 0x0028, 0x00FE, 0x0028, 0x0126, 0x0028, 0x014E, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00FD, ++- 0x0001, 0x00FA, 0x0001, 0x00FB, 0x0001, 0x00FC, +++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, +++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0028, 0x0008, +++ 0x0028, 0x0030, 0x0027, 0x0058, 0x0028, 0x007F, 0x0026, 0x00A7, 0x0028, +++ 0x00CD, 0x0028, 0x00F5, 0x0001, 0x011D, 0x0001, 0x011E, 0x0001, 0x011F, +++ 0x0028, 0x0120, 0x0028, 0x0148, 0x0028, 0x0170, 0x0028, 0x0198, 0x0028, +++ 0x01C0, 0x0001, 0x01E8, 0x0001, 0x01E9, 0x0001, 0x01EA, 0x0001, 0x01EB, +++ 0x0001, 0x01EC, 0x0001, 0x01ED, 0x0001, 0x01EE, 0x0028, 0x01EF, 0x0028, +++ 0x0217, 0x0028, 0x023F, 0x0027, 0x0267, 0x0028, 0x028E, 0x0001, 0x02B6, +++ 0x0001, 0x02B7, 0x0001, 0x02B8, 0x0001, 0x02B9, 0x0028, 0x02BA, 0x0028, +++ 0x02E2, 0x0001, 0x030A, 0x0028, 0x030B, 0x0028, 0x0333, 0x0028, 0x035B, +++ 0x0028, 0x0383, 0x0027, 0x03AB, 0x0001, 0x03D2, 0x0001, 0x03D3, 0x0001, +++ 0x03D4, 0x0001, 0x03D5, 0x0028, 0x03D6, 0x0028, 0x03FE, 0x0001, 0x0426, +++ 0x0028, 0x0427, 0x0028, 0x044F, 0x0028, 0x0477, 0x0022, 0x049F, 0x0027, +++ 0x04C1, 0x0001, 0x04E8, 0x0001, 0x04E9, 0x0001, 0x04EA, 0x0001, 0x04EB, ++ }; ++ ++ static const s16 anim_2A_values[] = { ++- 0x0000, 0x3FFF, 0x008A, 0xF435, 0xEA2C, 0xF913, 0xB8A2, 0xB906, ++- 0xBA25, 0xBBE7, 0xBE38, 0xC101, 0xC42C, 0xC7A5, 0xCB53, 0xCF23, ++- 0xD2FE, 0xD6CE, 0xDA7C, 0xDDF5, 0xE120, 0xE3E9, 0xE63A, 0xE7FC, ++- 0xE91B, 0xE97F, 0xE924, 0xE821, 0xE687, 0xE46A, 0xE1DC, 0xDEF1, ++- 0xDBBB, 0xD84C, 0xD4B8, 0xD111, 0xCD69, 0xC9D5, 0xC666, 0xC330, ++- 0xC045, 0xBDB7, 0xBB9A, 0xBA00, 0xB8FD, 0xB8A2, 0xC454, 0xC45C, ++- 0xC472, 0xC496, 0xC4C4, 0xC4FC, 0xC53B, 0xC581, 0xC5CA, 0xC617, ++- 0xC664, 0xC6B0, 0xC6FA, 0xC73F, 0xC77F, 0xC7B7, 0xC7E5, 0xC808, ++- 0xC81F, 0xC826, 0xC81F, 0xC80B, 0xC7EB, 0xC7C1, 0xC78E, 0xC753, ++- 0xC713, 0xC6CE, 0xC686, 0xC63D, 0xC5F4, 0xC5AC, 0xC568, 0xC527, ++- 0xC4ED, 0xC4BA, 0xC490, 0xC470, 0xC45B, 0xC454, 0xCB3D, 0xCAD8, ++- 0xC9B7, 0xC7F1, 0xC59B, 0xC2CC, 0xBF9A, 0xBC1A, 0xB864, 0xB48C, ++- 0xB0A9, 0xACD1, 0xA91B, 0xA59B, 0xA269, 0x9F9A, 0x9D44, 0x9B7E, ++- 0x9A5D, 0x99F8, 0x9A53, 0x9B59, 0x9CF6, 0x9F18, 0xA1AB, 0xA49C, ++- 0xA7DA, 0xAB50, 0xAEEC, 0xB29A, 0xB649, 0xB9E5, 0xBD5B, 0xC098, ++- 0xC38A, 0xC61D, 0xC83F, 0xC9DC, 0xCAE1, 0xCB3D, 0x003A, 0x054A, ++- 0xEBEE, 0xF6A2, 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, ++- 0x4294, 0x408A, 0x3E5F, 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, ++- 0x318B, 0x2FE7, 0x2E8B, 0x2D82, 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, ++- 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, 0x36BD, 0x38D8, 0x3AFF, ++- 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, 0x47A0, 0x4891, ++- 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, 0x39CD, ++- 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, ++- 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, ++- 0x395A, 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, ++- 0x39A7, 0x39B2, 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, ++- 0x39E5, 0x39E6, 0xCC24, 0xCBE8, 0xCB3E, 0xCA32, 0xC8D1, 0xC728, ++- 0xC545, 0xC335, 0xC104, 0xBEBF, 0xBC74, 0xBA2F, 0xB7FE, 0xB5ED, ++- 0xB40A, 0xB262, 0xB101, 0xAFF5, 0xAF4B, 0xAF0F, 0xAF45, 0xAFE0, ++- 0xB0D3, 0xB215, 0xB39A, 0xB557, 0xB741, 0xB94C, 0xBB6D, 0xBD99, ++- 0xBFC6, 0xC1E7, 0xC3F2, 0xC5DC, 0xC799, 0xC91E, 0xCA5F, 0xCB53, ++- 0xCBEE, 0xCC24, 0x0135, 0x0207, 0xDF23, 0x10D8, 0x10FF, 0x1101, ++- 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, 0x114A, 0x1159, ++- 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, 0x11BD, ++- 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, ++- 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, ++- 0x111E, 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, ++- 0x054D, 0x0574, 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, ++- 0x076A, 0x07BD, 0x080D, 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, ++- 0x094B, 0x0953, 0x094B, 0x0935, 0x0913, 0x08E5, 0x08AD, 0x086E, ++- 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, 0x06A3, 0x0658, 0x0612, ++- 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, 0xBDBB, 0xBDC3, ++- 0xBDD9, 0xBDFB, 0xBE28, 0xBE5F, 0xBE9D, 0xBEE1, 0xBF29, 0xBF73, ++- 0xBFBE, 0xC009, 0xC051, 0xC095, 0xC0D3, 0xC109, 0xC136, 0xC159, ++- 0xC16E, 0xC176, 0xC16F, 0xC15B, 0xC13C, 0xC113, 0xC0E1, 0xC0A8, ++- 0xC069, 0xC026, 0xBFE0, 0xBF99, 0xBF51, 0xBF0B, 0xBEC8, 0xBE89, ++- 0xBE50, 0xBE1E, 0xBDF5, 0xBDD6, 0xBDC2, 0xBDBB, 0x0013, 0xFEE0, ++- 0xDF6A, 0x0F13, 0xF602, 0xF600, 0xF5FB, 0xF5F3, 0xF5E7, 0xF5DA, ++- 0xF5CB, 0xF5BA, 0xF5A8, 0xF596, 0xF583, 0xF571, 0xF55F, 0xF54F, ++- 0xF53F, 0xF532, 0xF527, 0xF51E, 0xF519, 0xF517, 0xF519, 0xF51E, ++- 0xF525, 0xF52F, 0xF53C, 0xF54A, 0xF559, 0xF56A, 0xF57B, 0xF58D, ++- 0xF59E, 0xF5AF, 0xF5C0, 0xF5D0, 0xF5DE, 0xF5EA, 0xF5F4, 0xF5FC, ++- 0xF601, 0xF602, 0xFC00, 0xFBF8, 0xFBE2, 0xFBBF, 0xFB91, 0xFB59, ++- 0xFB1A, 0xFAD5, 0xFA8C, 0xFA40, 0xF9F3, 0xF9A7, 0xF95E, 0xF919, ++- 0xF8DA, 0xF8A2, 0xF874, 0xF851, 0xF83B, 0xF833, 0xF83A, 0xF84E, ++- 0xF86E, 0xF898, 0xF8CB, 0xF905, 0xF945, 0xF98A, 0xF9D1, 0xFA1A, ++- 0xFA62, 0xFAAA, 0xFAEE, 0xFB2E, 0xFB68, 0xFB9B, 0xFBC5, 0xFBE5, ++- 0xFBF9, 0xFC00, 0xBCB0, 0xBCBA, 0xBCD6, 0xBD03, 0xBD3D, 0xBD84, ++- 0xBDD4, 0xBE2C, 0xBE89, 0xBEE9, 0xBF4B, 0xBFAB, 0xC009, 0xC060, ++- 0xC0B1, 0xC0F7, 0xC132, 0xC15E, 0xC17B, 0xC185, 0xC17C, 0xC162, ++- 0xC139, 0xC104, 0xC0C3, 0xC079, 0xC028, 0xBFD1, 0xBF77, 0xBF1A, ++- 0xBEBE, 0xBE63, 0xBE0C, 0xBDBB, 0xBD71, 0xBD30, 0xBCFB, 0xBCD2, ++- 0xBCB9, 0xBCB0, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, ++- 0x4171, 0xBF5F, 0xD6E6, 0xD6EB, 0xD6F9, 0xD70F, 0xD72B, 0xD74D, ++- 0xD772, 0xD799, 0xD7C2, 0xD7EB, 0xD813, 0xD837, 0xD858, 0xD873, ++- 0xD887, 0xD896, 0xD8A3, 0xD8AC, 0xD8B2, 0xD8B5, 0xD8B5, 0xD8B2, ++- 0xD8AC, 0xD8A3, 0xD896, 0xD887, 0xD873, 0xD858, 0xD837, 0xD813, ++- 0xD7EB, 0xD7C2, 0xD799, 0xD772, 0xD74D, 0xD72B, 0xD70F, 0xD6F9, ++- 0xD6EB, 0xD6E6, 0xF839, 0xF823, 0xF7E8, 0xF78C, 0xF717, 0xF68F, ++- 0xF5FA, 0xF55E, 0xF4C3, 0xF42E, 0xF3A6, 0xF331, 0xF2D5, 0xF29A, ++- 0xF284, 0xF28B, 0xF29F, 0xF2BE, 0xF2E9, 0xF31C, 0xF358, 0xF39C, ++- 0xF3E5, 0xF434, 0xF486, 0xF4DC, 0xF533, 0xF58A, 0xF5E1, 0xF637, ++- 0xF689, 0xF6D8, 0xF721, 0xF765, 0xF7A1, 0xF7D4, 0xF7FF, 0xF81E, ++- 0xF832, 0xF839, 0x7C1D, 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, ++- 0x7DB8, 0x7E27, 0x7E96, 0x7F00, 0x7F61, 0x7FB5, 0x7FF6, 0x8024, ++- 0x8033, 0x802E, 0x8020, 0x800A, 0x7FE8, 0x7FC4, 0x7F99, 0x7F68, ++- 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, 0x7DC9, 0x7D8C, ++- 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, 0x7C30, ++- 0x7C22, 0x7C1D, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x7C1D, +++ 0x7C2C, 0x7C57, 0x7C98, 0x7CEC, 0x7D4D, 0x7DB8, 0x7E27, 0x7E96, 0x7F00, +++ 0x7F61, 0x7FB5, 0x7FF5, 0x8023, 0x8033, 0x802D, 0x8020, 0x800A, 0x7FE8, +++ 0x7FC4, 0x7F99, 0x7F68, 0x7F34, 0x7EFC, 0x7EC1, 0x7E84, 0x7E46, 0x7E07, +++ 0x7DC9, 0x7D8C, 0x7D51, 0x7D19, 0x7CE5, 0x7CB4, 0x7C8A, 0x7C65, 0x7C46, +++ 0x7C30, 0x7C22, 0x7C1D, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xF838, 0xF822, 0xF7E7, 0xF78B, 0xF716, 0xF68E, 0xF5F9, 0xF55D, +++ 0xF4C2, 0xF42D, 0xF3A5, 0xF330, 0xF2D4, 0xF299, 0xF283, 0xF28A, 0xF29E, +++ 0xF2BD, 0xF2E8, 0xF31B, 0xF357, 0xF39B, 0xF3E4, 0xF433, 0xF485, 0xF4DB, +++ 0xF532, 0xF589, 0xF5E0, 0xF636, 0xF688, 0xF6D7, 0xF720, 0xF764, 0xF7A0, +++ 0xF7D3, 0xF7FE, 0xF81D, 0xF831, 0xF838, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xD6E5, 0xD6EA, 0xD6F8, 0xD70E, 0xD72A, 0xD74C, 0xD771, +++ 0xD798, 0xD7C1, 0xD7EA, 0xD812, 0xD836, 0xD857, 0xD872, 0xD886, 0xD895, +++ 0xD8A2, 0xD8AB, 0xD8B1, 0xD8B4, 0xD8B4, 0xD8B1, 0xD8AB, 0xD8A2, 0xD895, +++ 0xD886, 0xD872, 0xD857, 0xD836, 0xD812, 0xD7EA, 0xD7C1, 0xD798, 0xD771, +++ 0xD74C, 0xD72A, 0xD70E, 0xD6F8, 0xD6EA, 0xD6E5, 0x0001, 0xFFFE, 0xC170, +++ 0xB8A1, 0xB905, 0xBA24, 0xBBE6, 0xBE37, 0xC100, 0xC42B, 0xC7A4, 0xCB52, +++ 0xCF22, 0xD2FD, 0xD6CD, 0xDA7B, 0xDDF4, 0xE11F, 0xE3E8, 0xE639, 0xE7FB, +++ 0xE91A, 0xE97E, 0xE923, 0xE820, 0xE686, 0xE469, 0xE1DB, 0xDEF0, 0xDBBA, +++ 0xD84B, 0xD4B7, 0xD110, 0xCD68, 0xC9D4, 0xC665, 0xC32F, 0xC044, 0xBDB6, +++ 0xBB99, 0xB9FF, 0xB8FC, 0xB8A1, 0xC453, 0xC45B, 0xC471, 0xC495, 0xC4C3, +++ 0xC4FB, 0xC53A, 0xC580, 0xC5C9, 0xC616, 0xC663, 0xC6AF, 0xC6F9, 0xC73E, +++ 0xC77E, 0xC7B6, 0xC7E4, 0xC807, 0xC81E, 0xC825, 0xC81E, 0xC80A, 0xC7EA, +++ 0xC7C0, 0xC78D, 0xC752, 0xC712, 0xC6CD, 0xC685, 0xC63C, 0xC5F3, 0xC5AB, +++ 0xC567, 0xC526, 0xC4EC, 0xC4B9, 0xC48F, 0xC46F, 0xC45A, 0xC453, 0xCB3C, +++ 0xCAD7, 0xC9B6, 0xC7F0, 0xC59A, 0xC2CB, 0xBF99, 0xBC19, 0xB863, 0xB48B, +++ 0xB0A8, 0xACD0, 0xA91A, 0xA59A, 0xA268, 0x9F99, 0x9D43, 0x9B7D, 0x9A5C, +++ 0x99F7, 0x9A52, 0x9B58, 0x9CF5, 0x9F17, 0xA1AA, 0xA49B, 0xA7D9, 0xAB4F, +++ 0xAEEB, 0xB299, 0xB648, 0xB9E4, 0xBD5A, 0xC097, 0xC389, 0xC61C, 0xC83E, +++ 0xC9DB, 0xCAE0, 0xCB3C, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xF912, 0x008A, 0xF434, 0xEA2B, 0x0001, 0xFFFE, 0xC170, +++ 0x495F, 0x4924, 0x487C, 0x4772, 0x4616, 0x4472, 0x4294, 0x408A, 0x3E5F, +++ 0x3C21, 0x39DC, 0x379E, 0x3573, 0x3369, 0x318B, 0x2FE7, 0x2E8B, 0x2D82, +++ 0x2CD9, 0x2C9E, 0x2CD4, 0x2D6C, 0x2E5D, 0x2F9C, 0x311C, 0x32D4, 0x34B8, +++ 0x36BD, 0x38D8, 0x3AFF, 0x3D25, 0x3F40, 0x4145, 0x4329, 0x44E1, 0x4661, +++ 0x47A0, 0x4891, 0x492A, 0x495F, 0x39E6, 0x39E5, 0x39E2, 0x39DC, 0x39D5, +++ 0x39CD, 0x39C3, 0x39B8, 0x39AD, 0x39A1, 0x3996, 0x398A, 0x397F, 0x3974, +++ 0x396A, 0x3962, 0x395B, 0x3955, 0x3952, 0x3951, 0x3952, 0x3955, 0x395A, +++ 0x3960, 0x3968, 0x3971, 0x397B, 0x3985, 0x3990, 0x399B, 0x39A7, 0x39B2, +++ 0x39BC, 0x39C6, 0x39CF, 0x39D7, 0x39DD, 0x39E2, 0x39E5, 0x39E6, 0xCC23, +++ 0xCBE7, 0xCB3D, 0xCA31, 0xC8D0, 0xC727, 0xC544, 0xC334, 0xC103, 0xBEBE, +++ 0xBC73, 0xBA2E, 0xB7FD, 0xB5EC, 0xB409, 0xB261, 0xB100, 0xAFF4, 0xAF4A, +++ 0xAF0E, 0xAF44, 0xAFDF, 0xB0D2, 0xB214, 0xB399, 0xB556, 0xB740, 0xB94B, +++ 0xBB6C, 0xBD98, 0xBFC5, 0xC1E6, 0xC3F1, 0xC5DB, 0xC798, 0xC91D, 0xCA5E, +++ 0xCB52, 0xCBED, 0xCC23, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xF6A1, 0x003A, 0x054A, 0xEBED, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0xF601, 0xF5FF, 0xF5FA, 0xF5F2, +++ 0xF5E6, 0xF5D9, 0xF5CA, 0xF5B9, 0xF5A7, 0xF595, 0xF582, 0xF570, 0xF55E, +++ 0xF54E, 0xF53E, 0xF531, 0xF526, 0xF51D, 0xF518, 0xF516, 0xF518, 0xF51D, +++ 0xF524, 0xF52E, 0xF53B, 0xF549, 0xF558, 0xF569, 0xF57A, 0xF58C, 0xF59D, +++ 0xF5AE, 0xF5BF, 0xF5CF, 0xF5DD, 0xF5E9, 0xF5F3, 0xF5FB, 0xF600, 0xF601, +++ 0xFBFF, 0xFBF7, 0xFBE1, 0xFBBE, 0xFB90, 0xFB58, 0xFB19, 0xFAD4, 0xFA8B, +++ 0xFA3F, 0xF9F2, 0xF9A6, 0xF95D, 0xF918, 0xF8D9, 0xF8A1, 0xF873, 0xF850, +++ 0xF83A, 0xF832, 0xF839, 0xF84D, 0xF86D, 0xF897, 0xF8CA, 0xF904, 0xF944, +++ 0xF989, 0xF9D0, 0xFA19, 0xFA61, 0xFAA9, 0xFAED, 0xFB2D, 0xFB67, 0xFB9A, +++ 0xFBC4, 0xFBE4, 0xFBF8, 0xFBFF, 0xBCAF, 0xBCB9, 0xBCD5, 0xBD02, 0xBD3C, +++ 0xBD83, 0xBDD3, 0xBE2B, 0xBE88, 0xBEE8, 0xBF4A, 0xBFAA, 0xC008, 0xC05F, +++ 0xC0B0, 0xC0F6, 0xC131, 0xC15D, 0xC17A, 0xC184, 0xC17B, 0xC161, 0xC138, +++ 0xC103, 0xC0C2, 0xC078, 0xC027, 0xBFD0, 0xBF76, 0xBF19, 0xBEBD, 0xBE62, +++ 0xBE0B, 0xBDBA, 0xBD70, 0xBD2F, 0xBCFA, 0xBCD1, 0xBCB8, 0xBCAF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0F13, 0xF5A6, 0x00BB, +++ 0xB257, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xBF5E, 0x10FF, 0x1101, 0x1105, 0x110C, 0x1115, 0x1121, 0x112D, 0x113B, +++ 0x114A, 0x1159, 0x1169, 0x1178, 0x1187, 0x1195, 0x11A2, 0x11AD, 0x11B6, +++ 0x11BD, 0x11C2, 0x11C4, 0x11C2, 0x11BE, 0x11B8, 0x11AF, 0x11A5, 0x1199, +++ 0x118C, 0x117E, 0x1170, 0x1161, 0x1153, 0x1144, 0x1136, 0x1129, 0x111E, +++ 0x1113, 0x110B, 0x1104, 0x1100, 0x10FF, 0x052D, 0x0535, 0x054D, 0x0574, +++ 0x05A6, 0x05E3, 0x0628, 0x0673, 0x06C3, 0x0716, 0x076A, 0x07BD, 0x080D, +++ 0x0858, 0x089D, 0x08DA, 0x090C, 0x0932, 0x094B, 0x0953, 0x094B, 0x0935, +++ 0x0913, 0x08E5, 0x08AD, 0x086E, 0x0828, 0x07DD, 0x078F, 0x0740, 0x06F0, +++ 0x06A3, 0x0658, 0x0612, 0x05D3, 0x059B, 0x056D, 0x054A, 0x0534, 0x052D, +++ 0xBDBA, 0xBDC2, 0xBDD8, 0xBDFA, 0xBE27, 0xBE5E, 0xBE9C, 0xBEE0, 0xBF28, +++ 0xBF72, 0xBFBD, 0xC008, 0xC050, 0xC094, 0xC0D2, 0xC108, 0xC135, 0xC158, +++ 0xC16D, 0xC175, 0xC16E, 0xC15A, 0xC13B, 0xC112, 0xC0E0, 0xC0A7, 0xC068, +++ 0xC025, 0xBFDF, 0xBF98, 0xBF50, 0xBF0A, 0xBEC7, 0xBE88, 0xBE4F, 0xBE1D, +++ 0xBDF4, 0xBDD5, 0xBDC1, 0xBDBA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x10D8, 0x120C, 0xFC42, 0xB3C3, ++ }; ++ +diff --git a/assets/anims/anim_36.inc.c b/assets/anims/anim_36.inc.c +index e775b59..6c68d35 100644 +--- a/assets/anims/anim_36.inc.c ++++ b/assets/anims/anim_36.inc.c +@@ -12,260 +12,225 @@ static const struct Animation anim_36[] = { + + + static const u16 anim_36_indices[] = { +- 0x002E, 0x0001, 0x002E, 0x002F, 0x002E, 0x005D, 0x0001, 0x0000, 0x0001, 0x008B, 0x0001, 0x0000, +- 0x002E, 0x06B0, 0x002E, 0x06DE, 0x002E, 0x070C, +- 0x002E, 0x0626, 0x002E, 0x0654, 0x002E, 0x0682, +- 0x002E, 0x059C, 0x002E, 0x05CA, 0x002E, 0x05F8, +- 0x0001, 0x0598, 0x0001, 0x0599, 0x0001, 0x059A, +- 0x002E, 0x0144, 0x002E, 0x0172, 0x002E, 0x01A0, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0116, +- 0x002E, 0x008C, 0x002E, 0x00BA, 0x002E, 0x00E8, +- 0x0001, 0x0594, 0x0001, 0x0595, 0x0001, 0x0596, +- 0x002E, 0x0286, 0x002E, 0x02B4, 0x002E, 0x02E2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0258, +- 0x002E, 0x01CE, 0x002E, 0x01FC, 0x002E, 0x022A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0597, +- 0x002E, 0x050A, 0x002E, 0x0538, 0x002E, 0x0566, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x04DC, +- 0x002E, 0x0452, 0x002E, 0x0480, 0x002E, 0x04AE, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x059B, +- 0x002E, 0x03C8, 0x002E, 0x03F6, 0x002E, 0x0424, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x039A, +- 0x002E, 0x0310, 0x002E, 0x033E, 0x002E, 0x036C, ++ 0x0001, 0x0000, 0x002E, 0x0001, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, ++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, ++ 0x002E, 0x0036, 0x0027, 0x0064, 0x002E, 0x008B, 0x0026, 0x00B9, 0x002E, ++ 0x00DF, 0x002E, 0x010D, 0x0001, 0x013B, 0x0001, 0x013C, 0x0001, 0x013D, ++ 0x002E, 0x013E, 0x002E, 0x016C, 0x002E, 0x019A, 0x002E, 0x01C8, 0x002E, ++ 0x01F6, 0x002E, 0x0224, 0x002D, 0x0252, 0x0027, 0x027F, 0x0027, 0x02A6, ++ 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, 0x002E, 0x02D0, 0x002E, ++ 0x02FE, 0x002E, 0x032C, 0x002E, 0x035A, 0x002E, 0x0388, 0x002E, 0x03B6, ++ 0x002E, 0x03E4, 0x002E, 0x0412, 0x0027, 0x0440, 0x0001, 0x0467, 0x0001, ++ 0x0468, 0x0001, 0x0469, 0x0023, 0x046A, 0x0001, 0x048D, 0x0027, 0x048E, ++ 0x0027, 0x04B5, 0x0027, 0x04DC, 0x0027, 0x0503, 0x002E, 0x052A, 0x002E, ++ 0x0558, 0x002E, 0x0586, 0x0001, 0x05B4, 0x0001, 0x05B5, 0x0001, 0x05B6, ++ 0x0022, 0x05B7, 0x0021, 0x05D9, 0x0027, 0x05FA, 0x0027, 0x0621, 0x0027, ++ 0x0648, 0x0027, 0x066F, 0x002E, 0x0696, 0x002E, 0x06C4, 0x002E, 0x06F2, + }; + + static const s16 anim_36_values[] = { +- 0x0000, 0x0000, 0x000A, 0x000F, 0x0014, 0x0016, 0x0013, 0x000E, +- 0x0009, 0x0005, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094, +- 0x00A5, 0x00A9, 0x00AB, 0x00AD, 0x00B0, 0x00B4, 0x00B6, 0x00B7, +- 0x00B5, 0x00B2, 0x00AE, 0x00AB, 0x00A9, 0x00A8, 0x00A6, 0x00A5, +- 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A6, +- 0x00A6, 0x00A6, 0x00A6, 0x00A6, 0x00A7, 0x00A7, 0x00A7, 0x00A8, +- 0x00A8, 0x00A8, 0x00A8, 0x00A9, 0x00A9, 0x00A9, 0x00A9, 0x00A9, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x0016, 0x001E, 0x0022, +- 0x0025, 0x0026, 0x0022, 0x001D, 0x0017, 0x0013, 0x0010, 0x000E, +- 0x000C, 0x000B, 0x000A, 0x0009, 0x0007, 0x0006, 0x0006, 0x0005, +- 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x3FFF, 0x004D, 0x0000, 0xFE6E, 0xFCD2, +- 0xFB2E, 0xF984, 0xF7D2, 0xF61C, 0xF461, 0xF2A1, 0xF0DF, 0xEF1B, +- 0xED55, 0xEB8F, 0xE9C9, 0xE804, 0xE641, 0xE481, 0xE2C4, 0xE10C, +- 0xDF59, 0xDDAC, 0xDC06, 0xDA68, 0xD8D2, 0xD746, 0xD5C3, 0xD44C, +- 0xD2E1, 0xD182, 0xD031, 0xCEEE, 0xCDBA, 0xCCDA, 0xCCA2, 0xCD2D, +- 0xCE92, 0xD0EC, 0xD453, 0xD99A, 0xE0DA, 0xE915, 0xF14D, 0xF884, +- 0xFDBE, 0xFFFB, 0xF981, 0xF97C, 0xF961, 0xF945, 0xF929, 0xF90C, +- 0xF8EE, 0xF8CF, 0xF8B0, 0xF891, 0xF872, 0xF852, 0xF832, 0xF812, +- 0xF7F2, 0xF7D2, 0xF7B3, 0xF794, 0xF776, 0xF757, 0xF73A, 0xF71D, +- 0xF702, 0xF6E7, 0xF6CD, 0xF6B4, 0xF69D, 0xF686, 0xF672, 0xF65E, +- 0xF64C, 0xF63C, 0xF62E, 0xF635, 0xF65D, 0xF69E, 0xF6EB, 0xF73C, +- 0xF786, 0xF7D2, 0xF82C, 0xF88A, 0xF8E3, 0xF92F, 0xF965, 0xF97B, +- 0xED7E, 0xED8C, 0xEDD4, 0xEE1F, 0xEE6C, 0xEEBB, 0xEF0C, 0xEF5E, +- 0xEFB2, 0xF007, 0xF05D, 0xF0B3, 0xF109, 0xF160, 0xF1B6, 0xF20C, +- 0xF261, 0xF2B5, 0xF307, 0xF359, 0xF3A8, 0xF3F6, 0xF441, 0xF48A, +- 0xF4D0, 0xF513, 0xF553, 0xF58F, 0xF5C8, 0xF5FC, 0xF62D, 0xF658, +- 0xF67F, 0xF66D, 0xF5FE, 0xF550, 0xF47D, 0xF3A3, 0xF2DB, 0xF20D, +- 0xF11A, 0xF01C, 0xEF29, 0xEE5B, 0xEDCA, 0xED8C, 0xD886, 0xCFBD, +- 0xD6CC, 0xDCFD, 0xDC9C, 0xDC23, 0xDB93, 0xDAED, 0xDA35, 0xD96A, +- 0xD891, 0xD7A9, 0xD6B6, 0xD5B9, 0xD4B4, 0xD3A9, 0xD29A, 0xD188, +- 0xD076, 0xCF66, 0xCE59, 0xCD50, 0xCC50, 0xCB58, 0xCA6B, 0xC98A, +- 0xC8B9, 0xC7F7, 0xC749, 0xC6AE, 0xC62A, 0xC5BE, 0xC56C, 0xC63C, +- 0xC8B2, 0xCC09, 0xCF7C, 0xD246, 0xD3A2, 0xD36A, 0xD23B, 0xD06F, +- 0xCE63, 0xCC72, 0xCAF8, 0xCA51, 0x297C, 0xD708, 0xD3F0, 0xD72A, +- 0xDE4C, 0xE6E9, 0xEE98, 0xF2ED, 0xF17C, 0xEBEB, 0xE587, 0xDE66, +- 0xD69E, 0xCE45, 0xC571, 0xBC36, 0xB2AB, 0xA8E5, 0x9EFA, 0x9500, +- 0x8B0C, 0x8133, 0x778A, 0x6E2A, 0x6527, 0x5C96, 0x548E, 0x4D23, +- 0x466C, 0x407D, 0x3B6E, 0x3752, 0x3441, 0x37E8, 0x45D2, 0x5ADE, +- 0x73EB, 0x8DDA, 0xA584, 0xBFA8, 0xDBF9, 0xEFC7, 0xF854, 0xFB88, +- 0xFBB2, 0xFB1F, 0xD953, 0xD633, 0xD6AA, 0xD774, 0xD86E, 0xD973, +- 0xDA5E, 0xDB0C, 0xDB58, 0xDB62, 0xDB61, 0xDB57, 0xDB45, 0xDB2A, +- 0xDB09, 0xDAE3, 0xDAB7, 0xDA87, 0xDA53, 0xDA1D, 0xD9E6, 0xD9AE, +- 0xD976, 0xD93F, 0xD90A, 0xD8D8, 0xD8AA, 0xD87F, 0xD85B, 0xD83C, +- 0xD825, 0xD816, 0xD80F, 0xD84B, 0xD8E4, 0xD9A8, 0xDA69, 0xDAF7, +- 0xDB22, 0xDA5A, 0xD8C6, 0xD748, 0xD5F5, 0xD48B, 0xD365, 0xD2DD, +- 0xA46A, 0xFA3D, 0xFA43, 0xF39B, 0xE8C5, 0xDC43, 0xD093, 0xC836, +- 0xC5AD, 0xC737, 0xC964, 0xCC22, 0xCF63, 0xD318, 0xD731, 0xDBA0, +- 0xE055, 0xE541, 0xEA54, 0xEF81, 0xF4B7, 0xF9E7, 0xFF02, 0x03F9, +- 0x08BD, 0x0D3F, 0x116F, 0x153E, 0x189E, 0x1B7F, 0x1DD1, 0x1F86, +- 0x208E, 0x1D0E, 0x12E1, 0x0490, 0xF4A2, 0xE59E, 0xDA0B, 0xD41C, +- 0xD263, 0xD1F6, 0xD1F1, 0xD2E3, 0xD40D, 0xD4B2, 0x130F, 0x0305, +- 0xDEE8, 0xB8B6, 0xA270, 0xA290, 0xAEFB, 0xC0CD, 0xD122, 0xDF5C, +- 0xEEF7, 0xFF39, 0x0F63, 0x1EBD, 0x2C8A, 0x380E, 0x408D, 0x45BA, +- 0x4824, 0x485C, 0x46F0, 0x4470, 0x416B, 0x3E70, 0x3C0F, 0x3866, +- 0x32B2, 0x2D29, 0x2A05, 0x2B57, 0x2F5F, 0x329A, 0x3184, 0x2A2A, +- 0x1EC8, 0x121E, 0x06F0, 0x0000, 0xFD01, 0xFB93, 0xFB5C, 0xFC00, +- 0xFD24, 0xFE6D, 0xFF7F, 0xFFFF, 0x0CF7, 0x136D, 0x22C9, 0x3504, +- 0x4419, 0x50D6, 0x5D93, 0x6696, 0x6821, 0x62E8, 0x5AB0, 0x5058, +- 0x44BF, 0x38C4, 0x2D47, 0x2327, 0x1B44, 0x1554, 0x1068, 0x0C60, +- 0x091D, 0x067F, 0x0468, 0x02B9, 0x0152, 0x0199, 0x043B, 0x0806, +- 0x0BC8, 0x10D0, 0x176A, 0x1CDF, 0x1E78, 0x1AE4, 0x1401, 0x0BDC, +- 0x0481, 0x0000, 0xFE28, 0xFD47, 0xFD25, 0xFD8A, 0xFE3E, 0xFF08, +- 0xFFB1, 0x0000, 0xE4D2, 0xDB7F, 0xC620, 0xAE95, 0x9EC2, 0x98CC, +- 0x97A6, 0x9A60, 0xA00B, 0xA835, 0xB27E, 0xBE1B, 0xCA3D, 0xD61A, +- 0xE0E4, 0xE9CE, 0xF00C, 0xF37B, 0xF4CF, 0xF47B, 0xF2F0, 0xF0A2, +- 0xEE03, 0xEB86, 0xE99D, 0xE741, 0xE3DF, 0xE097, 0xDE8C, 0xDDCC, +- 0xDDC4, 0xDE97, 0xE06D, 0xE3DC, 0xE8B3, 0xEDE8, 0xF272, 0xF549, +- 0xF68D, 0xF727, 0xF73E, 0xF6F9, 0xF67E, 0xF5F3, 0xF580, 0xF54A, +- 0xEF32, 0xEF1B, 0xEED9, 0xEE71, 0xEDE8, 0xED43, 0xEC87, 0xEBB9, +- 0xEADE, 0xE9DA, 0xE896, 0xE720, 0xE586, 0xE3D4, 0xE219, 0xE062, +- 0xDEBD, 0xDD37, 0xDBDD, 0xDABD, 0xD9E5, 0xD962, 0xD942, 0xD992, +- 0xDA5F, 0xE00B, 0xEB90, 0xF7E5, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xFAB0, 0xF3EA, 0xEC2B, 0xE3EF, 0xDBB3, 0xD3F4, 0xCD2E, +- 0xC7DD, 0xC501, 0xC498, 0xC59C, 0xC70A, 0xC7DB, 0x5FA3, 0x6BA9, +- 0x84EF, 0x9B3D, 0x9E63, 0x74BF, 0x324B, 0x0B2C, 0x03F7, 0xFE5E, +- 0xFA37, 0xF759, 0xF59B, 0xF4D6, 0xF4DF, 0xF58E, 0xF6B9, 0xF839, +- 0xF9E4, 0xFB91, 0xFD16, 0xFE4C, 0xFF0A, 0xFF25, 0xFE76, 0xFC9E, +- 0xF9C0, 0xF678, 0xF364, 0xEFD4, 0xEBBD, 0xE8B1, 0xE83E, 0xEA1A, +- 0xECC9, 0xF016, 0xF3CD, 0xF7B7, 0xFBA2, 0xFF56, 0x02A0, 0x054B, +- 0x069B, 0x067F, 0x05CB, 0x054D, 0x2D84, 0x2F03, 0x3275, 0x3648, +- 0x38EA, 0x39E0, 0x39B3, 0x3854, 0x364B, 0x342B, 0x31F8, 0x2FB4, +- 0x2D61, 0x2B05, 0x28A0, 0x2636, 0x23CA, 0x215F, 0x1EF8, 0x1C97, +- 0x1A41, 0x17F7, 0x15BC, 0x1395, 0x1183, 0x0FB9, 0x0E75, 0x0DCB, +- 0x0DCE, 0x0EA1, 0x1030, 0x123B, 0x1481, 0x16F3, 0x199C, 0x1C68, +- 0x1F45, 0x221E, 0x24E0, 0x2777, 0x29D0, 0x2BD6, 0x2CE3, 0x2CCE, +- 0x2C3C, 0x2BD7, 0xF355, 0x0463, 0x28FF, 0x4B51, 0x5581, 0x2918, +- 0xDE72, 0xB1F7, 0xA9AF, 0xA341, 0x9E7B, 0x9B2B, 0x9920, 0x9829, +- 0x9816, 0x98B4, 0x99D2, 0x9B40, 0x9CCC, 0x9E45, 0x9F7A, 0xA039, +- 0xA052, 0x9F92, 0x9DCA, 0x98D1, 0x906F, 0x875C, 0x8050, 0x7A81, +- 0x7502, 0x7245, 0x74BE, 0x7BBD, 0x849E, 0x8EDA, 0x99F4, 0xA56B, +- 0xB0C1, 0xBB75, 0xC507, 0xCCF6, 0xD0F0, 0xD09D, 0xCE78, 0xCCFA, +- 0x000C, 0x000E, 0x0014, 0x001D, 0x0026, 0x002E, 0x0034, 0x0035, +- 0x0031, 0x0028, 0x001C, 0x000F, 0x0005, 0x0000, 0xFFFF, 0xFFFD, +- 0xFFFD, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0001, +- 0x0002, 0x0003, 0x0004, 0x0004, 0x0005, 0x0005, 0x0004, 0x0004, +- 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF33, 0xFF34, +- 0xFF34, 0xFF36, 0xFF37, 0xFF38, 0xFF38, 0xFF39, 0xFF38, 0xFF36, +- 0xFF34, 0xFF32, 0xFF31, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, +- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xC75E, 0xC6E1, 0xC5A0, 0xC3ED, +- 0xC218, 0xC073, 0xBF4E, 0xBEFB, 0xBFDB, 0xC1C3, 0xC435, 0xC6B1, +- 0xC8BA, 0xC9D0, 0xCA2F, 0xCA68, 0xCA82, 0xCA7F, 0xCA65, 0xCA37, +- 0xC9FC, 0xC9B6, 0xC96B, 0xC920, 0xC8D8, 0xC898, 0xC865, 0xC843, +- 0xC837, 0xC83B, 0xC847, 0xC859, 0xC871, 0xC88E, 0xC8AD, 0xC8D0, +- 0xC8F4, 0xC918, 0xC93C, 0xC95F, 0xC97F, 0xC99C, 0xC9B4, 0xC9C7, +- 0xC9D3, 0xC9D8, 0x4138, 0x417A, 0x420E, 0x42AD, 0x430B, 0x42E0, +- 0x41E3, 0x3FC9, 0x3B96, 0x3545, 0x2E03, 0x26FB, 0x215B, 0x1E4F, +- 0x1D2F, 0x1C83, 0x1C3B, 0x1C4B, 0x1CA3, 0x1D36, 0x1DF6, 0x1ED4, +- 0x1FC2, 0x20B3, 0x2197, 0x2261, 0x2303, 0x236F, 0x2395, 0x2388, +- 0x2362, 0x2327, 0x22D9, 0x227D, 0x2216, 0x21A6, 0x2131, 0x20BA, +- 0x2045, 0x1FD4, 0x1F6C, 0x1F0E, 0x1EBF, 0x1E82, 0x1E5A, 0x1E4A, +- 0x07B9, 0x0831, 0x0971, 0x0B40, 0x0D63, 0x0FA1, 0x11C0, 0x1386, +- 0x1519, 0x16B3, 0x1836, 0x1985, 0x1A81, 0x1B0F, 0x1B4C, 0x1B6E, +- 0x1B7A, 0x1B71, 0x1B57, 0x1B30, 0x1AFF, 0x1AC8, 0x1A8D, 0x1A52, +- 0x1A1A, 0x19E9, 0x19C1, 0x19A7, 0x199E, 0x19A1, 0x19AB, 0x19BB, +- 0x19CF, 0x19E8, 0x1A04, 0x1A22, 0x1A41, 0x1A61, 0x1A81, 0x1A9F, +- 0x1ABB, 0x1AD4, 0x1AE9, 0x1AFA, 0x1B04, 0x1B09, 0x11B4, 0x11B3, +- 0x11B0, 0x11AB, 0x11A5, 0x119E, 0x1197, 0x118F, 0x1182, 0x116D, +- 0x1158, 0x1149, 0x1144, 0x1151, 0x116D, 0x1190, 0x11B9, 0x11E6, +- 0x1216, 0x1248, 0x127A, 0x12AB, 0x12DA, 0x1306, 0x132C, 0x134D, +- 0x1365, 0x1375, 0x137A, 0x1374, 0x1364, 0x134B, 0x132B, 0x1304, +- 0x12D9, 0x12AA, 0x127A, 0x1248, 0x1217, 0x11E8, 0x11BD, 0x1196, +- 0x1175, 0x115C, 0x114B, 0x1144, 0xC211, 0xC17D, 0xBFF2, 0xBDB9, +- 0xBB1C, 0xB864, 0xB5DC, 0xB3CD, 0xB21A, 0xB081, 0xAF0F, 0xADD0, +- 0xACD1, 0xAC20, 0xABA1, 0xAB30, 0xAACC, 0xAA74, 0xAA27, 0xA9E5, +- 0xA9AD, 0xA97F, 0xA959, 0xA93B, 0xA924, 0xA914, 0xA909, 0xA904, +- 0xA903, 0xA90C, 0xA924, 0xA949, 0xA979, 0xA9B2, 0xA9F2, 0xAA36, +- 0xAA7E, 0xAAC7, 0xAB0E, 0xAB53, 0xAB93, 0xABCC, 0xABFC, 0xAC21, +- 0xAC3A, 0xAC44, 0xFBE6, 0xFCFF, 0xFDC8, 0xFCCA, 0xFC9E, 0xFE2A, +- 0x0077, 0x01DC, 0x0202, 0x01C5, 0x014C, 0x00BE, 0x0044, 0x0003, +- 0xFFEF, 0xFFE1, 0xFFD7, 0xFFD1, 0xFFCF, 0xFFD1, 0xFFD4, 0xFFDA, +- 0xFFE0, 0xFFE8, 0xFFEF, 0xFFF6, 0xFFFB, 0xFFFF, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0006, 0x0087, 0x0073, 0x0065, 0x0063, 0x0078, 0x0097, 0x00A1, +- 0x008E, 0x0070, 0x004D, 0x002B, 0x000F, 0x0000, 0xFFFA, 0xFFF5, +- 0xFFF1, 0xFFF0, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF3, 0xFFF5, 0xFFF8, +- 0xFFFA, 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBEBF, 0xBE5D, +- 0xBCF8, 0xBCC4, 0xBD85, 0xC036, 0xC3B6, 0xC58D, 0xC545, 0xC43F, +- 0xC2CF, 0xC147, 0xBFF9, 0xBF39, 0xBEE4, 0xBE9E, 0xBE66, 0xBE3B, +- 0xBE1A, 0xBE04, 0xBDF5, 0xBDEE, 0xBDEC, 0xBDEE, 0xBDF4, 0xBDFA, +- 0xBE00, 0xBE05, 0xBE07, 0xBE0B, 0xBE14, 0xBE21, 0xBE33, 0xBE49, +- 0xBE60, 0xBE7A, 0xBE95, 0xBEB1, 0xBECC, 0xBEE5, 0xBEFE, 0xBF13, +- 0xBF25, 0xBF33, 0xBF3D, 0xBF40, 0x2DE0, 0x24FF, 0x2066, 0x1FE1, +- 0x1E77, 0x1A9C, 0x1619, 0x145C, 0x1602, 0x18F9, 0x1C9E, 0x204F, +- 0x236B, 0x2550, 0x2650, 0x272E, 0x27EB, 0x2889, 0x290D, 0x2977, +- 0x29CC, 0x2A0C, 0x2A3C, 0x2A5D, 0x2A72, 0x2A7E, 0x2A83, 0x2A83, +- 0x2A83, 0x2A75, 0x2A4E, 0x2A12, 0x29C5, 0x2969, 0x2901, 0x2891, +- 0x281C, 0x27A6, 0x2731, 0x26C0, 0x2658, 0x25FB, 0x25AC, 0x256F, +- 0x2547, 0x2537, 0xF747, 0xF683, 0xF581, 0xF4CD, 0xF2F4, 0xEF40, +- 0xEAAE, 0xE6A6, 0xE33F, 0xDFCA, 0xDC85, 0xD9AC, 0xD77E, 0xD638, +- 0xD598, 0xD52B, 0xD4ED, 0xD4D7, 0xD4E3, 0xD50B, 0xD548, 0xD596, +- 0xD5ED, 0xD648, 0xD69F, 0xD6EF, 0xD72F, 0xD75A, 0xD76A, 0xD768, +- 0xD760, 0xD754, 0xD744, 0xD730, 0xD71A, 0xD702, 0xD6E9, 0xD6D0, +- 0xD6B7, 0xD69F, 0xD688, 0xD674, 0xD663, 0xD656, 0xD64E, 0xD64A, +- 0x0574, 0x04A9, 0x02CE, 0x0174, 0x0002, 0xFEB9, 0xFD7E, 0xFBB3, +- 0xF916, 0xF607, 0xF2DE, 0xEFF0, 0xED92, 0xEC1C, 0xEB49, 0xEA9C, +- 0xEA12, 0xE9A6, 0xE956, 0xE91E, 0xE8FA, 0xE8E7, 0xE8E2, 0xE8E8, +- 0xE8F4, 0xE904, 0xE914, 0xE920, 0xE926, 0xE92E, 0xE945, 0xE969, +- 0xE996, 0xE9CD, 0xEA09, 0xEA4B, 0xEA8F, 0xEAD5, 0xEB19, 0xEB5B, +- 0xEB98, 0xEBCE, 0xEBFC, 0xEC20, 0xEC37, 0xEC41, 0x963F, 0x95ED, +- 0x9F95, 0xA1FF, 0xA50A, 0xA9B9, 0xAEA3, 0xB1F4, 0xB38B, 0xB494, +- 0xB52F, 0xB57B, 0xB599, 0xB5A8, 0xB5B0, 0xB5A6, 0xB58D, 0xB567, +- 0xB538, 0xB500, 0xB4C4, 0xB485, 0xB446, 0xB40A, 0xB3D3, 0xB3A4, +- 0xB37F, 0xB367, 0xB35E, 0xB364, 0xB373, 0xB38C, 0xB3AD, 0xB3D4, +- 0xB400, 0xB430, 0xB462, 0xB494, 0xB4C6, 0xB4F6, 0xB523, 0xB54A, +- 0xB56C, 0xB586, 0xB597, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, +- 0x8001, 0x8001, 0x4171, 0xBF5F, 0xD424, 0xD6F4, 0xD506, 0xD25C, +- 0xD21F, 0xD6B6, 0xDDE1, 0xE3CD, 0xE6BC, 0xE874, 0xEA0A, 0xEB98, +- 0xED21, 0xEEA5, 0xF025, 0xF1A3, 0xF320, 0xF49C, 0xF619, 0xF797, +- 0xF919, 0xFA9F, 0xFC6B, 0xFE04, 0xFE54, 0xFD4C, 0xFBBC, 0xF9DA, +- 0xF7DA, 0xF5F4, 0xF45B, 0xF347, 0xF2EC, 0xF335, 0xF3DB, 0xF4CE, +- 0xF5FD, 0xF755, 0xF8C7, 0xFA40, 0xFBB1, 0xFD07, 0xFE31, 0xFF1F, +- 0xFFBF, 0x0000, 0xFE60, 0xF552, 0xF4E9, 0xF62A, 0xF7E7, 0xFA56, +- 0xFD61, 0xFF69, 0xFE9B, 0xFD62, 0xFD93, 0xFDD4, 0xFE22, 0xFE7C, +- 0xFEDE, 0xFF45, 0xFFB1, 0x001C, 0x0086, 0x00EC, 0x014B, 0x01A1, +- 0x01BD, 0x01B1, 0x01DA, 0x0254, 0x02F3, 0x03A5, 0x0459, 0x04FE, +- 0x0583, 0x05D6, 0x05E7, 0x05BB, 0x0568, 0x04F6, 0x046C, 0x03D0, +- 0x032B, 0x0284, 0x01E2, 0x014C, 0x00C9, 0x0062, 0x001C, 0x0000, +- 0xF240, 0xECAF, 0xEDCA, 0xF018, 0xF19C, 0xF144, 0xF02B, 0xEF8C, +- 0xF029, 0xF1CB, 0xF3EC, 0xF620, 0xF865, 0xFAB6, 0xFD11, 0xFF70, +- 0x01D0, 0x042E, 0x0686, 0x08D4, 0x0B15, 0x0D43, 0x0EEB, 0x0FD7, +- 0x1064, 0x10F7, 0x11A5, 0x1257, 0x12F4, 0x1364, 0x138D, 0x1358, +- 0x12AD, 0x1182, 0x0FEF, 0x0E09, 0x0BE8, 0x09A0, 0x0748, 0x04F7, +- 0x02C1, 0x00BE, 0xFF04, 0xFDA8, 0xFCC0, 0xFC63, 0x0DF1, 0x0B9C, +- 0x107A, 0x1676, 0x1902, 0x1430, 0x0BE1, 0x0740, 0x0F1D, 0x16CA, +- 0x15AD, 0x13F2, 0x11B9, 0x0F23, 0x0C50, 0x095F, 0x0671, 0x03A5, +- 0x011D, 0xFEF8, 0xFD55, 0xFC56, 0xFBC4, 0xFB55, 0xFB06, 0xFAD4, +- 0xFABD, 0xFABE, 0xFAD5, 0xFB00, 0xFB3B, 0xFB85, 0xFBDA, 0xFC39, +- 0xFC9F, 0xFD0A, 0xFD76, 0xFDE2, 0xFE4B, 0xFEAE, 0xFF09, 0xFF59, +- 0xFF9D, 0xFFD1, 0xFFF3, 0x0000, 0xEA6B, 0xED4A, 0xF237, 0xF75D, +- 0xFA52, 0xF946, 0xF61D, 0xF3FD, 0xF545, 0xF740, 0xF81C, 0xF900, +- 0xF9E6, 0xFACC, 0xFBAD, 0xFC85, 0xFD51, 0xFE0B, 0xFEB2, 0xFF3F, +- 0xFFB0, 0x0000, 0x0039, 0x0069, 0x0090, 0x00AE, 0x00C5, 0x00D4, +- 0x00DD, 0x00E0, 0x00DD, 0x00D6, 0x00CC, 0x00BD, 0x00AD, 0x009A, +- 0x0086, 0x0071, 0x005C, 0x0048, 0x0035, 0x0024, 0x0015, 0x000A, +- 0x0003, 0x0000, 0x0FCD, 0x1311, 0x1A2B, 0x21C3, 0x2657, 0x25E9, +- 0x229B, 0x1F19, 0x1ACC, 0x1742, 0x161F, 0x1510, 0x1415, 0x132E, +- 0x1259, 0x1196, 0x10E3, 0x103F, 0x0FAA, 0x0F22, 0x0EA7, 0x0E38, +- 0x0DCF, 0x0D69, 0x0D06, 0x0CA6, 0x0C49, 0x0BEF, 0x0B99, 0x0B46, +- 0x0AF7, 0x0AAC, 0x0A65, 0x0A22, 0x09E4, 0x09AA, 0x0975, 0x0945, +- 0x0919, 0x08F3, 0x08D2, 0x08B7, 0x08A1, 0x0891, 0x0887, 0x0884, +- 0x192A, 0x1588, 0x13B7, 0x11EC, 0x1028, 0x0E6A, 0x0CB4, 0x0B05, +- 0x095D, 0x07BD, 0x060C, 0x0441, 0x0276, 0x00C5, 0xFF47, 0xFE13, +- 0xFD44, 0xFCE8, 0xFCEB, 0xFD37, 0xFDB0, 0xFE40, 0xFECC, 0xFF3C, +- 0xFF78, 0xFF8F, 0xFFA4, 0xFFB5, 0xFFC3, 0xFFCE, 0xFFD8, 0xFFDF, +- 0xFFE5, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, 0xFFEF, 0xFFF0, 0xFFF1, +- 0xFFF2, 0xFFF4, 0xFFF7, 0xFFFB, 0x0000, 0x0000, 0x0456, 0xFED9, +- 0xFE8B, 0xFE7F, 0xFEA4, 0xFEEA, 0xFF41, 0xFF97, 0xFFDD, 0x0000, +- 0x0005, 0xFFFE, 0xFFED, 0xFFD8, 0xFFC2, 0xFFB1, 0xFFA8, 0xFFA8, +- 0xFFAB, 0xFFB2, 0xFFBB, 0xFFC4, 0xFFCD, 0xFFD5, 0xFFDA, 0xFFDD, +- 0xFFE0, 0xFFE2, 0xFFE5, 0xFFE7, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, +- 0xFFF0, 0xFFF2, 0xFFF4, 0xFFF5, 0xFFF7, 0xFFF8, 0xFFFA, 0xFFFB, +- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x514E, 0x582E, 0x55E9, 0x52EB, +- 0x4F73, 0x4BC4, 0x4820, 0x44C7, 0x41FC, 0x3FFF, 0x3EFA, 0x3EC3, +- 0x3F1F, 0x3FD1, 0x409E, 0x414B, 0x419D, 0x41A2, 0x4196, 0x417D, +- 0x415C, 0x4137, 0x4112, 0x40F3, 0x40DE, 0x40CF, 0x40C0, 0x40B1, +- 0x40A2, 0x4094, 0x4085, 0x4077, 0x406A, 0x405D, 0x4050, 0x4044, +- 0x4039, 0x402E, 0x4025, 0x401C, 0x4014, 0x400D, 0x4007, 0x4002, +- 0x3FFF, 0x409D, ++ 0x0000, 0x00AA, 0x00AA, 0x00A1, 0x008E, 0x007A, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, ++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0074, 0x007B, 0x0086, 0x0093, 0x00A0, ++ 0x00AD, 0x00B8, 0x00BF, 0x00C2, 0x00C1, 0x00BD, 0x00B9, 0x00B3, 0x00AF, ++ 0x00AB, 0x00AA, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x409D, ++ 0xFFFF, 0xFFFF, 0xFEC7, 0xFC19, 0xF96A, 0xF832, 0xF832, 0xF832, 0xF832, ++ 0xF832, 0xF832, 0xF832, 0xF832, 0xF832, 0xF97D, 0xFCE5, 0x01B7, 0x073C, ++ 0x0CC1, 0x1192, 0x14FA, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, ++ 0x1645, 0x1645, 0x1645, 0x1581, 0x1375, 0x107F, 0x0CFC, 0x0949, 0x05C6, ++ 0x02CF, 0x00C4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0154, 0x043F, 0x072A, 0x087E, 0x087E, 0x087E, ++ 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x06D4, 0x0270, 0xFC39, ++ 0xF51B, 0xEDFE, 0xE7C8, 0xE364, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, ++ 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE2C3, 0xE58C, 0xE993, 0xEE59, 0xF360, ++ 0xF826, 0xFC2D, 0xFEF5, 0x0000, 0x0884, 0x0884, 0x0D77, 0x185B, 0x2340, ++ 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, ++ 0x27CC, 0x26BE, 0x2540, 0x238A, 0x21D4, 0x2056, 0x1F47, 0x1EE1, 0x1EE1, ++ 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1DED, 0x1B60, ++ 0x17AE, 0x134D, 0x0EB1, 0x0A4F, 0x069E, 0x0410, 0x031D, 0x0369, 0x042F, ++ 0x053D, 0x0664, 0x0772, 0x0837, 0x0884, 0xFFFF, 0xFFFF, 0xFF49, 0xFDB9, ++ 0xFC29, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, ++ 0xFB73, 0xFBA5, 0xFC27, 0xFCDF, 0xFDB3, 0xFE86, 0xFF3F, 0xFFC1, 0xFFF3, ++ 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, ++ 0xFFF4, 0xFFF6, 0xFFF8, 0xFFFA, 0xFFFC, 0xFFFD, 0xFFFF, 0x0000, 0x0000, ++ 0x0052, 0x0105, 0x01B9, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, ++ 0x020B, 0x020B, 0x020B, 0x0226, 0x026D, 0x02D2, 0x0346, 0x03BA, 0x041E, ++ 0x0466, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, ++ 0x0481, 0x0459, 0x03EF, 0x0356, 0x02A0, 0x01E1, 0x012B, 0x0091, 0x0027, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFC62, ++ 0xFC62, 0xFDCF, 0x00F3, 0x0416, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, ++ 0x0583, 0x0583, 0x0583, 0x0583, 0x056B, 0x052D, 0x04D6, 0x0472, 0x040E, ++ 0x03B6, 0x0378, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, ++ 0x0361, 0x0361, 0x034D, 0x0314, 0x02BC, 0x024A, 0x01C3, 0x012C, 0x008A, ++ 0xFFE3, 0xFF3C, 0xFE9A, 0xFE02, 0xFD7B, 0xFD08, 0xFCAF, 0xFC76, 0xFC62, ++ 0x0001, 0xFFFE, 0xC170, 0xFB1E, 0xFB1E, 0x0218, 0x1189, 0x2138, 0x28EF, ++ 0x29A0, 0x29E2, 0x29EB, 0x29D1, 0x2992, 0x2948, 0x2909, 0x28EF, 0x28EF, ++ 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x2683, 0x2205, ++ 0x1F9A, 0x2093, 0x22E3, 0x25A6, 0x27F6, 0x28EF, 0x2828, 0x2601, 0x22BE, ++ 0x1EA5, 0x19FB, 0x1504, 0x1005, 0x0B43, 0x0703, 0x037C, 0x00AB, 0xFE80, ++ 0xFCED, 0xFBE1, 0xFB4C, 0xFB1E, 0xD2DC, 0xD2DC, 0xD58B, 0xDB70, 0xE156, ++ 0xE405, 0xE18C, 0xDCF5, 0xDA7C, 0xDB7A, 0xDDD7, 0xE0AA, 0xE307, 0xE405, ++ 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE281, ++ 0xDFB1, 0xDE2E, 0xDEC9, 0xE03C, 0xE1F7, 0xE369, 0xE405, 0xE3E4, 0xE384, ++ 0xE2E9, 0xE219, 0xE117, 0xDFE8, 0xDE91, 0xDD15, 0xDB7A, 0xD9C7, 0xD813, ++ 0xD675, 0xD508, 0xD3E4, 0xD322, 0xD2DC, 0xD4B1, 0xD4B1, 0xCA11, 0xB2B1, ++ 0x9B50, 0x90B0, 0x9136, 0x922F, 0x92B5, 0x927F, 0x91FF, 0x9166, 0x90E6, ++ 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, ++ 0x93C4, 0x997C, 0x9C90, 0x9B54, 0x9862, 0x94DE, 0x91EC, 0x90B0, 0x923F, ++ 0x9680, 0x9CD1, 0xA490, 0xAD1B, 0xB5D0, 0xBE0D, 0xC530, 0xCA98, 0xCE55, ++ 0xD103, 0xD2CF, 0xD3E6, 0xD475, 0xD4AA, 0xD4B1, 0x0000, 0x0000, 0x0071, ++ 0x0169, 0x0261, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, ++ 0x02E2, 0x030F, 0x0350, 0x039D, 0x03ED, 0x043A, 0x047B, 0x04A8, 0x04B8, ++ 0x0476, 0x03C9, 0x02DD, 0x01DC, 0x00F0, 0x0043, 0x0000, 0xFFFF, 0xFFFF, ++ 0x001C, 0x005A, 0x0098, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, ++ 0x00B4, 0x008D, 0x0024, 0xFF8C, 0xFED8, 0xFE1A, 0xFD66, 0xFCCF, 0xFC66, ++ 0xFC3F, 0xFC74, 0xFCFD, 0xFDB9, 0xFE85, 0xFF41, 0xFFCA, 0xFFFF, 0xCA50, ++ 0xCA50, 0xCB34, 0xCD2A, 0xCF1F, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, ++ 0xD003, 0xD003, 0xCFFF, 0xCFF2, 0xCFDA, 0xCFB3, 0xCF7E, 0xCF36, 0xCEDB, ++ 0xCE6A, 0xCDE1, 0xCD40, 0xCC93, 0xCBE7, 0xCB49, 0xCAC8, 0xCA70, 0xCA50, ++ 0x0000, 0x0000, 0xFFAF, 0xFF00, 0xFE51, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE12, 0xFE41, 0xFE85, 0xFED6, 0xFF2A, 0xFF7B, ++ 0xFFBF, 0xFFEE, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xF97A, 0xF97A, 0xF924, 0xF866, 0xF7A9, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, ++ 0xF753, 0xF753, 0xF753, 0xF765, 0xF798, 0xF7E2, 0xF839, 0xF894, 0xF8EB, ++ 0xF934, 0xF967, 0xF97A, 0xED8B, 0xED8B, 0xECB6, 0xEAE2, 0xE90E, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, ++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE868, 0xE8E5, 0xE99A, ++ 0xEA71, 0xEB53, 0xEC2A, 0xECDF, 0xED5C, 0xED8B, 0x0001, 0xFFFE, 0xC170, ++ 0x054D, 0x054D, 0x032E, 0xFE82, 0xF9D8, 0xF7B9, 0xF8D5, 0xFAE6, 0xFC03, ++ 0xFB91, 0xFA80, 0xF93B, 0xF82B, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, ++ 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xFCB4, 0x05F5, 0x0AF0, 0x08F0, 0x042D, ++ 0xFE7C, 0xF9B8, 0xF7B9, 0xF7D7, 0xF82D, 0xF8B5, 0xF96B, 0xFA49, 0xFB48, ++ 0xFC65, 0xFD98, 0xFEDD, 0x002D, 0x0177, 0x02AB, 0x03B8, 0x048E, 0x051A, ++ 0x054D, 0x2BD7, 0x2BD7, 0x2A4B, 0x26E4, 0x237D, 0x21F1, 0x23B6, 0x26FF, ++ 0x28C5, 0x280F, 0x265D, 0x2458, 0x22A6, 0x21F1, 0x21F1, 0x21F1, 0x21F1, ++ 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F4, 0x21F9, 0x21FC, 0x21FB, ++ 0x21F8, 0x21F5, 0x21F2, 0x21F1, 0x21F7, 0x220D, 0x2237, 0x2278, 0x22D4, ++ 0x234F, 0x23ED, 0x24B0, 0x259F, 0x26B6, 0x27E4, 0x2911, 0x2A24, 0x2B06, ++ 0x2B9F, 0x2BD7, 0xCCF9, 0xCCF9, 0xC665, 0xB7EA, 0xA970, 0xA2DB, 0xA334, ++ 0xA3D8, 0xA431, 0xA40D, 0xA3B9, 0xA354, 0xA2FF, 0xA2DB, 0xA2DB, 0xA2DB, ++ 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA5CB, 0xAB40, 0xAE30, ++ 0xAD02, 0xAA33, 0xA6D8, 0xA409, 0xA2DB, 0xA3E3, 0xA6AF, 0xAAD1, 0xAFDB, ++ 0xB55F, 0xBAED, 0xC019, 0xC472, 0xC78B, 0xC98E, 0xCAFE, 0xCBF6, 0xCC8C, ++ 0xCCD9, 0xCCF5, 0xCCF9, 0x0000, 0x0000, 0xFF06, 0xFCE2, 0xFABE, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, ++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C6, 0xF9C9, ++ 0xF9CF, 0xF9D8, 0xF9E6, 0xF9FA, 0xFA14, 0xFA35, 0xFAA3, 0xFB81, 0xFCA1, ++ 0xFDD3, 0xFEE9, 0xFFB2, 0x0000, 0x0000, 0x0000, 0xFE9A, 0xFB88, 0xF875, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, ++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF77B, 0xF898, ++ 0xFA36, 0xFC20, 0xFE24, 0x000F, 0x01AC, 0x02CA, 0x0334, 0x0307, 0x0292, ++ 0x01F1, 0x0143, 0x00A3, 0x002D, 0x0000, 0xC7DA, 0xC7DA, 0xC7DC, 0xC7E0, ++ 0xC7E4, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, ++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, ++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7FB, ++ 0xC832, 0xC882, 0xC8E1, 0xC944, 0xC9A3, 0xC9F3, 0xCA2B, 0xCA3F, 0xCA1D, ++ 0xC9C6, 0xC94E, 0xC8CB, 0xC854, 0xC7FC, 0xC7DA, 0x0000, 0x0000, 0xFEA3, ++ 0xFBA5, 0xF8A7, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, ++ 0xF797, 0xF864, 0xF98C, 0xFAEC, 0xFC5E, 0xFDBD, 0xFEE6, 0xFFB3, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFE96, 0xFB7B, 0xF860, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, ++ 0xF6F6, 0xF746, 0xF81A, 0xF94E, 0xFABB, 0xFC3B, 0xFDA7, 0xFEDB, 0xFFB0, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xF549, ++ 0xF549, 0xF471, 0xF294, 0xF0B8, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, ++ 0xEFE0, 0xEFE0, 0xF00F, 0xF08E, 0xF147, 0xF221, 0xF307, 0xF3E2, 0xF49A, ++ 0xF51A, 0xF549, 0xFFFF, 0xFFFF, 0xBF5E, 0xE4F6, 0xE4F6, 0xE4F6, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, ++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F6, 0xEEBB, 0xAC43, 0xAC43, 0xA599, 0x96EE, ++ 0x8843, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x830F, ++ 0x86FB, 0x8CA8, 0x9363, 0x9A78, 0xA134, 0xA6E1, 0xAACD, 0xAC43, 0x0000, ++ 0x0000, 0xFC6D, 0xF494, 0xECBA, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, ++ 0xE928, 0xE928, 0xE9F1, 0xEC0A, 0xEF14, 0xF2AE, 0xF679, 0xFA13, 0xFD1D, ++ 0xFF36, 0x0000, 0xFFFF, 0xFFFF, 0xFC79, 0xF4B8, 0xECF7, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, ++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xEA37, 0xEC49, 0xEF4A, 0xF2D9, ++ 0xF697, 0xFA26, 0xFD26, 0xFF39, 0xFFFF, 0x2537, 0x2537, 0x2BB7, 0x3A06, ++ 0x4854, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, ++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, ++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4D67, ++ 0x4994, 0x440A, 0x3D7A, 0x3692, 0x3001, 0x2A77, 0x26A4, 0x2537, 0x049D, ++ 0x049D, 0x04F6, 0x05BA, 0x067E, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, ++ 0x06D7, 0x06D7, 0x070F, 0x07A4, 0x087B, 0x097A, 0x0A87, 0x0B86, 0x0C5D, ++ 0x0CF2, 0x0D2A, 0x0CB0, 0x0B78, 0x09CC, 0x07FA, 0x064F, 0x0516, 0x049D, ++ 0xFE84, 0xFE84, 0xFE5E, 0xFE0A, 0xFDB6, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++ 0xFD90, 0xFD90, 0xFD90, 0xFD70, 0xFD1B, 0xFC9F, 0xFC0D, 0xFB73, 0xFAE0, ++ 0xFA65, 0xFA0F, 0xF9EF, 0xFA30, 0xFAD8, 0xFBBD, 0xFCB6, 0xFD9C, 0xFE43, ++ 0xFE84, 0xC460, 0xC460, 0xC4C4, 0xC59F, 0xC67B, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, ++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC71E, 0xC7C6, 0xC8BA, 0xC9DC, 0xCB0C, ++ 0xCC2E, 0xCD22, 0xCDCB, 0xCE0A, 0xCD81, 0xCC1F, 0xCA3C, 0xC82D, 0xC64A, ++ 0xC4E9, 0xC460, 0xFFFF, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x1B09, 0x1B09, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, ++ 0x1B0A, 0x1B0A, 0x1B09, 0x1144, 0x1144, 0x1144, 0x1144, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, ++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1144, ++ 0xAC43, 0xAC43, 0xA599, 0x96EE, 0x8844, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, ++ 0x8199, 0x8199, 0x8199, 0x8310, 0x86FC, 0x8CA9, 0x9364, 0x9A79, 0xA134, ++ 0xA6E1, 0xAACD, 0xAC43, 0xFFFF, 0xFFFF, 0x02EE, 0x095E, 0x0FCF, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, ++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x1218, 0x1060, 0x0DE1, ++ 0x0AED, 0x07D0, 0x04DC, 0x025D, 0x00A5, 0xFFFF, 0xFFFF, 0xFFFF, 0x040E, ++ 0x0CFA, 0x15E6, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, ++ 0x1911, 0x16AE, 0x133A, 0x0F22, 0x0AD3, 0x06BB, 0x0347, 0x00E4, 0xFFFF, ++ 0x1E4A, 0x1E4A, 0x24BB, 0x32E8, 0x4115, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, ++ 0x4787, 0x4787, 0x4787, 0x461D, 0x4253, 0x3CD6, 0x3655, 0x2F7C, 0x28FB, ++ 0x237E, 0x1FB4, 0x1E4A, 0x0000, 0x0000, 0xFFA5, 0xFEDE, 0xFE17, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, ++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFD84, 0xFCEE, 0xFC14, ++ 0xFB11, 0xFA01, 0xF8FF, 0xF825, 0xF78E, 0xF756, 0xF7D1, 0xF90E, 0xFABF, ++ 0xFC97, 0xFE48, 0xFF84, 0x0000, 0xFF2F, 0xFF2F, 0xFF52, 0xFF9E, 0xFFEB, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, ++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x002D, 0x007E, ++ 0x00F3, 0x017E, 0x0210, 0x029B, 0x0310, 0x0361, 0x037F, 0x0342, 0x02A4, ++ 0x01CD, 0x00E2, 0x000B, 0xFF6C, 0xFF2F, 0xC9D7, 0xC9D7, 0xCA40, 0xCB27, ++ 0xCC0E, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, ++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCCB9, ++ 0xCD6B, 0xCE6C, 0xCF9D, 0xD0DE, 0xD20E, 0xD310, 0xD3C1, 0xD403, 0xD373, ++ 0xD1FF, 0xD002, 0xCDD8, 0xCBDC, 0xCA67, 0xC9D7, + }; + +diff --git a/assets/anims/anim_36.inc.c.rej b/assets/anims/anim_36.inc.c.rej +new file mode 100644 +index 0000000..71b0099 +--- /dev/null ++++ b/assets/anims/anim_36.inc.c.rej +@@ -0,0 +1,479 @@ ++diff a/assets/anims/anim_36.inc.c b/assets/anims/anim_36.inc.c (rejected hunks) ++@@ -12,260 +12,225 @@ static const struct Animation anim_36[] = { ++ ++ ++ static const u16 anim_36_indices[] = { ++- 0x002E, 0x0001, 0x002E, 0x002F, 0x002E, 0x005D, 0x0001, 0x0000, 0x0001, 0x008B, 0x0001, 0x0000, ++- 0x002E, 0x06B0, 0x002E, 0x06DE, 0x002E, 0x070C, ++- 0x002E, 0x0626, 0x002E, 0x0654, 0x002E, 0x0682, ++- 0x002E, 0x059C, 0x002E, 0x05CA, 0x002E, 0x05F8, ++- 0x0001, 0x0598, 0x0001, 0x0599, 0x0001, 0x059A, ++- 0x002E, 0x0144, 0x002E, 0x0172, 0x002E, 0x01A0, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0116, ++- 0x002E, 0x008C, 0x002E, 0x00BA, 0x002E, 0x00E8, ++- 0x0001, 0x0594, 0x0001, 0x0595, 0x0001, 0x0596, ++- 0x002E, 0x0286, 0x002E, 0x02B4, 0x002E, 0x02E2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x0258, ++- 0x002E, 0x01CE, 0x002E, 0x01FC, 0x002E, 0x022A, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0597, ++- 0x002E, 0x050A, 0x002E, 0x0538, 0x002E, 0x0566, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x04DC, ++- 0x002E, 0x0452, 0x002E, 0x0480, 0x002E, 0x04AE, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x059B, ++- 0x002E, 0x03C8, 0x002E, 0x03F6, 0x002E, 0x0424, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x002E, 0x039A, ++- 0x002E, 0x0310, 0x002E, 0x033E, 0x002E, 0x036C, +++ 0x0001, 0x0000, 0x002E, 0x0001, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, +++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, +++ 0x002E, 0x0036, 0x0027, 0x0064, 0x002E, 0x008B, 0x0026, 0x00B9, 0x002E, +++ 0x00DF, 0x002E, 0x010D, 0x0001, 0x013B, 0x0001, 0x013C, 0x0001, 0x013D, +++ 0x002E, 0x013E, 0x002E, 0x016C, 0x002E, 0x019A, 0x002E, 0x01C8, 0x002E, +++ 0x01F6, 0x002E, 0x0224, 0x002D, 0x0252, 0x0027, 0x027F, 0x0027, 0x02A6, +++ 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, 0x002E, 0x02D0, 0x002E, +++ 0x02FE, 0x002E, 0x032C, 0x002E, 0x035A, 0x002E, 0x0388, 0x002E, 0x03B6, +++ 0x002E, 0x03E4, 0x002E, 0x0412, 0x0027, 0x0440, 0x0001, 0x0467, 0x0001, +++ 0x0468, 0x0001, 0x0469, 0x0023, 0x046A, 0x0001, 0x048D, 0x0027, 0x048E, +++ 0x0027, 0x04B5, 0x0027, 0x04DC, 0x0027, 0x0503, 0x002E, 0x052A, 0x002E, +++ 0x0558, 0x002E, 0x0586, 0x0001, 0x05B4, 0x0001, 0x05B5, 0x0001, 0x05B6, +++ 0x0022, 0x05B7, 0x0021, 0x05D9, 0x0027, 0x05FA, 0x0027, 0x0621, 0x0027, +++ 0x0648, 0x0027, 0x066F, 0x002E, 0x0696, 0x002E, 0x06C4, 0x002E, 0x06F2, ++ }; ++ ++ static const s16 anim_36_values[] = { ++- 0x0000, 0x0000, 0x000A, 0x000F, 0x0014, 0x0016, 0x0013, 0x000E, ++- 0x0009, 0x0005, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, ++- 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094, ++- 0x00A5, 0x00A9, 0x00AB, 0x00AD, 0x00B0, 0x00B4, 0x00B6, 0x00B7, ++- 0x00B5, 0x00B2, 0x00AE, 0x00AB, 0x00A9, 0x00A8, 0x00A6, 0x00A5, ++- 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A5, 0x00A6, ++- 0x00A6, 0x00A6, 0x00A6, 0x00A6, 0x00A7, 0x00A7, 0x00A7, 0x00A8, ++- 0x00A8, 0x00A8, 0x00A8, 0x00A9, 0x00A9, 0x00A9, 0x00A9, 0x00A9, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x0016, 0x001E, 0x0022, ++- 0x0025, 0x0026, 0x0022, 0x001D, 0x0017, 0x0013, 0x0010, 0x000E, ++- 0x000C, 0x000B, 0x000A, 0x0009, 0x0007, 0x0006, 0x0006, 0x0005, ++- 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0003, 0x0003, 0x0003, ++- 0x0003, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x3FFF, 0x004D, 0x0000, 0xFE6E, 0xFCD2, ++- 0xFB2E, 0xF984, 0xF7D2, 0xF61C, 0xF461, 0xF2A1, 0xF0DF, 0xEF1B, ++- 0xED55, 0xEB8F, 0xE9C9, 0xE804, 0xE641, 0xE481, 0xE2C4, 0xE10C, ++- 0xDF59, 0xDDAC, 0xDC06, 0xDA68, 0xD8D2, 0xD746, 0xD5C3, 0xD44C, ++- 0xD2E1, 0xD182, 0xD031, 0xCEEE, 0xCDBA, 0xCCDA, 0xCCA2, 0xCD2D, ++- 0xCE92, 0xD0EC, 0xD453, 0xD99A, 0xE0DA, 0xE915, 0xF14D, 0xF884, ++- 0xFDBE, 0xFFFB, 0xF981, 0xF97C, 0xF961, 0xF945, 0xF929, 0xF90C, ++- 0xF8EE, 0xF8CF, 0xF8B0, 0xF891, 0xF872, 0xF852, 0xF832, 0xF812, ++- 0xF7F2, 0xF7D2, 0xF7B3, 0xF794, 0xF776, 0xF757, 0xF73A, 0xF71D, ++- 0xF702, 0xF6E7, 0xF6CD, 0xF6B4, 0xF69D, 0xF686, 0xF672, 0xF65E, ++- 0xF64C, 0xF63C, 0xF62E, 0xF635, 0xF65D, 0xF69E, 0xF6EB, 0xF73C, ++- 0xF786, 0xF7D2, 0xF82C, 0xF88A, 0xF8E3, 0xF92F, 0xF965, 0xF97B, ++- 0xED7E, 0xED8C, 0xEDD4, 0xEE1F, 0xEE6C, 0xEEBB, 0xEF0C, 0xEF5E, ++- 0xEFB2, 0xF007, 0xF05D, 0xF0B3, 0xF109, 0xF160, 0xF1B6, 0xF20C, ++- 0xF261, 0xF2B5, 0xF307, 0xF359, 0xF3A8, 0xF3F6, 0xF441, 0xF48A, ++- 0xF4D0, 0xF513, 0xF553, 0xF58F, 0xF5C8, 0xF5FC, 0xF62D, 0xF658, ++- 0xF67F, 0xF66D, 0xF5FE, 0xF550, 0xF47D, 0xF3A3, 0xF2DB, 0xF20D, ++- 0xF11A, 0xF01C, 0xEF29, 0xEE5B, 0xEDCA, 0xED8C, 0xD886, 0xCFBD, ++- 0xD6CC, 0xDCFD, 0xDC9C, 0xDC23, 0xDB93, 0xDAED, 0xDA35, 0xD96A, ++- 0xD891, 0xD7A9, 0xD6B6, 0xD5B9, 0xD4B4, 0xD3A9, 0xD29A, 0xD188, ++- 0xD076, 0xCF66, 0xCE59, 0xCD50, 0xCC50, 0xCB58, 0xCA6B, 0xC98A, ++- 0xC8B9, 0xC7F7, 0xC749, 0xC6AE, 0xC62A, 0xC5BE, 0xC56C, 0xC63C, ++- 0xC8B2, 0xCC09, 0xCF7C, 0xD246, 0xD3A2, 0xD36A, 0xD23B, 0xD06F, ++- 0xCE63, 0xCC72, 0xCAF8, 0xCA51, 0x297C, 0xD708, 0xD3F0, 0xD72A, ++- 0xDE4C, 0xE6E9, 0xEE98, 0xF2ED, 0xF17C, 0xEBEB, 0xE587, 0xDE66, ++- 0xD69E, 0xCE45, 0xC571, 0xBC36, 0xB2AB, 0xA8E5, 0x9EFA, 0x9500, ++- 0x8B0C, 0x8133, 0x778A, 0x6E2A, 0x6527, 0x5C96, 0x548E, 0x4D23, ++- 0x466C, 0x407D, 0x3B6E, 0x3752, 0x3441, 0x37E8, 0x45D2, 0x5ADE, ++- 0x73EB, 0x8DDA, 0xA584, 0xBFA8, 0xDBF9, 0xEFC7, 0xF854, 0xFB88, ++- 0xFBB2, 0xFB1F, 0xD953, 0xD633, 0xD6AA, 0xD774, 0xD86E, 0xD973, ++- 0xDA5E, 0xDB0C, 0xDB58, 0xDB62, 0xDB61, 0xDB57, 0xDB45, 0xDB2A, ++- 0xDB09, 0xDAE3, 0xDAB7, 0xDA87, 0xDA53, 0xDA1D, 0xD9E6, 0xD9AE, ++- 0xD976, 0xD93F, 0xD90A, 0xD8D8, 0xD8AA, 0xD87F, 0xD85B, 0xD83C, ++- 0xD825, 0xD816, 0xD80F, 0xD84B, 0xD8E4, 0xD9A8, 0xDA69, 0xDAF7, ++- 0xDB22, 0xDA5A, 0xD8C6, 0xD748, 0xD5F5, 0xD48B, 0xD365, 0xD2DD, ++- 0xA46A, 0xFA3D, 0xFA43, 0xF39B, 0xE8C5, 0xDC43, 0xD093, 0xC836, ++- 0xC5AD, 0xC737, 0xC964, 0xCC22, 0xCF63, 0xD318, 0xD731, 0xDBA0, ++- 0xE055, 0xE541, 0xEA54, 0xEF81, 0xF4B7, 0xF9E7, 0xFF02, 0x03F9, ++- 0x08BD, 0x0D3F, 0x116F, 0x153E, 0x189E, 0x1B7F, 0x1DD1, 0x1F86, ++- 0x208E, 0x1D0E, 0x12E1, 0x0490, 0xF4A2, 0xE59E, 0xDA0B, 0xD41C, ++- 0xD263, 0xD1F6, 0xD1F1, 0xD2E3, 0xD40D, 0xD4B2, 0x130F, 0x0305, ++- 0xDEE8, 0xB8B6, 0xA270, 0xA290, 0xAEFB, 0xC0CD, 0xD122, 0xDF5C, ++- 0xEEF7, 0xFF39, 0x0F63, 0x1EBD, 0x2C8A, 0x380E, 0x408D, 0x45BA, ++- 0x4824, 0x485C, 0x46F0, 0x4470, 0x416B, 0x3E70, 0x3C0F, 0x3866, ++- 0x32B2, 0x2D29, 0x2A05, 0x2B57, 0x2F5F, 0x329A, 0x3184, 0x2A2A, ++- 0x1EC8, 0x121E, 0x06F0, 0x0000, 0xFD01, 0xFB93, 0xFB5C, 0xFC00, ++- 0xFD24, 0xFE6D, 0xFF7F, 0xFFFF, 0x0CF7, 0x136D, 0x22C9, 0x3504, ++- 0x4419, 0x50D6, 0x5D93, 0x6696, 0x6821, 0x62E8, 0x5AB0, 0x5058, ++- 0x44BF, 0x38C4, 0x2D47, 0x2327, 0x1B44, 0x1554, 0x1068, 0x0C60, ++- 0x091D, 0x067F, 0x0468, 0x02B9, 0x0152, 0x0199, 0x043B, 0x0806, ++- 0x0BC8, 0x10D0, 0x176A, 0x1CDF, 0x1E78, 0x1AE4, 0x1401, 0x0BDC, ++- 0x0481, 0x0000, 0xFE28, 0xFD47, 0xFD25, 0xFD8A, 0xFE3E, 0xFF08, ++- 0xFFB1, 0x0000, 0xE4D2, 0xDB7F, 0xC620, 0xAE95, 0x9EC2, 0x98CC, ++- 0x97A6, 0x9A60, 0xA00B, 0xA835, 0xB27E, 0xBE1B, 0xCA3D, 0xD61A, ++- 0xE0E4, 0xE9CE, 0xF00C, 0xF37B, 0xF4CF, 0xF47B, 0xF2F0, 0xF0A2, ++- 0xEE03, 0xEB86, 0xE99D, 0xE741, 0xE3DF, 0xE097, 0xDE8C, 0xDDCC, ++- 0xDDC4, 0xDE97, 0xE06D, 0xE3DC, 0xE8B3, 0xEDE8, 0xF272, 0xF549, ++- 0xF68D, 0xF727, 0xF73E, 0xF6F9, 0xF67E, 0xF5F3, 0xF580, 0xF54A, ++- 0xEF32, 0xEF1B, 0xEED9, 0xEE71, 0xEDE8, 0xED43, 0xEC87, 0xEBB9, ++- 0xEADE, 0xE9DA, 0xE896, 0xE720, 0xE586, 0xE3D4, 0xE219, 0xE062, ++- 0xDEBD, 0xDD37, 0xDBDD, 0xDABD, 0xD9E5, 0xD962, 0xD942, 0xD992, ++- 0xDA5F, 0xE00B, 0xEB90, 0xF7E5, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0xFAB0, 0xF3EA, 0xEC2B, 0xE3EF, 0xDBB3, 0xD3F4, 0xCD2E, ++- 0xC7DD, 0xC501, 0xC498, 0xC59C, 0xC70A, 0xC7DB, 0x5FA3, 0x6BA9, ++- 0x84EF, 0x9B3D, 0x9E63, 0x74BF, 0x324B, 0x0B2C, 0x03F7, 0xFE5E, ++- 0xFA37, 0xF759, 0xF59B, 0xF4D6, 0xF4DF, 0xF58E, 0xF6B9, 0xF839, ++- 0xF9E4, 0xFB91, 0xFD16, 0xFE4C, 0xFF0A, 0xFF25, 0xFE76, 0xFC9E, ++- 0xF9C0, 0xF678, 0xF364, 0xEFD4, 0xEBBD, 0xE8B1, 0xE83E, 0xEA1A, ++- 0xECC9, 0xF016, 0xF3CD, 0xF7B7, 0xFBA2, 0xFF56, 0x02A0, 0x054B, ++- 0x069B, 0x067F, 0x05CB, 0x054D, 0x2D84, 0x2F03, 0x3275, 0x3648, ++- 0x38EA, 0x39E0, 0x39B3, 0x3854, 0x364B, 0x342B, 0x31F8, 0x2FB4, ++- 0x2D61, 0x2B05, 0x28A0, 0x2636, 0x23CA, 0x215F, 0x1EF8, 0x1C97, ++- 0x1A41, 0x17F7, 0x15BC, 0x1395, 0x1183, 0x0FB9, 0x0E75, 0x0DCB, ++- 0x0DCE, 0x0EA1, 0x1030, 0x123B, 0x1481, 0x16F3, 0x199C, 0x1C68, ++- 0x1F45, 0x221E, 0x24E0, 0x2777, 0x29D0, 0x2BD6, 0x2CE3, 0x2CCE, ++- 0x2C3C, 0x2BD7, 0xF355, 0x0463, 0x28FF, 0x4B51, 0x5581, 0x2918, ++- 0xDE72, 0xB1F7, 0xA9AF, 0xA341, 0x9E7B, 0x9B2B, 0x9920, 0x9829, ++- 0x9816, 0x98B4, 0x99D2, 0x9B40, 0x9CCC, 0x9E45, 0x9F7A, 0xA039, ++- 0xA052, 0x9F92, 0x9DCA, 0x98D1, 0x906F, 0x875C, 0x8050, 0x7A81, ++- 0x7502, 0x7245, 0x74BE, 0x7BBD, 0x849E, 0x8EDA, 0x99F4, 0xA56B, ++- 0xB0C1, 0xBB75, 0xC507, 0xCCF6, 0xD0F0, 0xD09D, 0xCE78, 0xCCFA, ++- 0x000C, 0x000E, 0x0014, 0x001D, 0x0026, 0x002E, 0x0034, 0x0035, ++- 0x0031, 0x0028, 0x001C, 0x000F, 0x0005, 0x0000, 0xFFFF, 0xFFFD, ++- 0xFFFD, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0001, ++- 0x0002, 0x0003, 0x0004, 0x0004, 0x0005, 0x0005, 0x0004, 0x0004, ++- 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, ++- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF33, 0xFF34, ++- 0xFF34, 0xFF36, 0xFF37, 0xFF38, 0xFF38, 0xFF39, 0xFF38, 0xFF36, ++- 0xFF34, 0xFF32, 0xFF31, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, ++- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xC75E, 0xC6E1, 0xC5A0, 0xC3ED, ++- 0xC218, 0xC073, 0xBF4E, 0xBEFB, 0xBFDB, 0xC1C3, 0xC435, 0xC6B1, ++- 0xC8BA, 0xC9D0, 0xCA2F, 0xCA68, 0xCA82, 0xCA7F, 0xCA65, 0xCA37, ++- 0xC9FC, 0xC9B6, 0xC96B, 0xC920, 0xC8D8, 0xC898, 0xC865, 0xC843, ++- 0xC837, 0xC83B, 0xC847, 0xC859, 0xC871, 0xC88E, 0xC8AD, 0xC8D0, ++- 0xC8F4, 0xC918, 0xC93C, 0xC95F, 0xC97F, 0xC99C, 0xC9B4, 0xC9C7, ++- 0xC9D3, 0xC9D8, 0x4138, 0x417A, 0x420E, 0x42AD, 0x430B, 0x42E0, ++- 0x41E3, 0x3FC9, 0x3B96, 0x3545, 0x2E03, 0x26FB, 0x215B, 0x1E4F, ++- 0x1D2F, 0x1C83, 0x1C3B, 0x1C4B, 0x1CA3, 0x1D36, 0x1DF6, 0x1ED4, ++- 0x1FC2, 0x20B3, 0x2197, 0x2261, 0x2303, 0x236F, 0x2395, 0x2388, ++- 0x2362, 0x2327, 0x22D9, 0x227D, 0x2216, 0x21A6, 0x2131, 0x20BA, ++- 0x2045, 0x1FD4, 0x1F6C, 0x1F0E, 0x1EBF, 0x1E82, 0x1E5A, 0x1E4A, ++- 0x07B9, 0x0831, 0x0971, 0x0B40, 0x0D63, 0x0FA1, 0x11C0, 0x1386, ++- 0x1519, 0x16B3, 0x1836, 0x1985, 0x1A81, 0x1B0F, 0x1B4C, 0x1B6E, ++- 0x1B7A, 0x1B71, 0x1B57, 0x1B30, 0x1AFF, 0x1AC8, 0x1A8D, 0x1A52, ++- 0x1A1A, 0x19E9, 0x19C1, 0x19A7, 0x199E, 0x19A1, 0x19AB, 0x19BB, ++- 0x19CF, 0x19E8, 0x1A04, 0x1A22, 0x1A41, 0x1A61, 0x1A81, 0x1A9F, ++- 0x1ABB, 0x1AD4, 0x1AE9, 0x1AFA, 0x1B04, 0x1B09, 0x11B4, 0x11B3, ++- 0x11B0, 0x11AB, 0x11A5, 0x119E, 0x1197, 0x118F, 0x1182, 0x116D, ++- 0x1158, 0x1149, 0x1144, 0x1151, 0x116D, 0x1190, 0x11B9, 0x11E6, ++- 0x1216, 0x1248, 0x127A, 0x12AB, 0x12DA, 0x1306, 0x132C, 0x134D, ++- 0x1365, 0x1375, 0x137A, 0x1374, 0x1364, 0x134B, 0x132B, 0x1304, ++- 0x12D9, 0x12AA, 0x127A, 0x1248, 0x1217, 0x11E8, 0x11BD, 0x1196, ++- 0x1175, 0x115C, 0x114B, 0x1144, 0xC211, 0xC17D, 0xBFF2, 0xBDB9, ++- 0xBB1C, 0xB864, 0xB5DC, 0xB3CD, 0xB21A, 0xB081, 0xAF0F, 0xADD0, ++- 0xACD1, 0xAC20, 0xABA1, 0xAB30, 0xAACC, 0xAA74, 0xAA27, 0xA9E5, ++- 0xA9AD, 0xA97F, 0xA959, 0xA93B, 0xA924, 0xA914, 0xA909, 0xA904, ++- 0xA903, 0xA90C, 0xA924, 0xA949, 0xA979, 0xA9B2, 0xA9F2, 0xAA36, ++- 0xAA7E, 0xAAC7, 0xAB0E, 0xAB53, 0xAB93, 0xABCC, 0xABFC, 0xAC21, ++- 0xAC3A, 0xAC44, 0xFBE6, 0xFCFF, 0xFDC8, 0xFCCA, 0xFC9E, 0xFE2A, ++- 0x0077, 0x01DC, 0x0202, 0x01C5, 0x014C, 0x00BE, 0x0044, 0x0003, ++- 0xFFEF, 0xFFE1, 0xFFD7, 0xFFD1, 0xFFCF, 0xFFD1, 0xFFD4, 0xFFDA, ++- 0xFFE0, 0xFFE8, 0xFFEF, 0xFFF6, 0xFFFB, 0xFFFF, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0006, 0x0087, 0x0073, 0x0065, 0x0063, 0x0078, 0x0097, 0x00A1, ++- 0x008E, 0x0070, 0x004D, 0x002B, 0x000F, 0x0000, 0xFFFA, 0xFFF5, ++- 0xFFF1, 0xFFF0, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF3, 0xFFF5, 0xFFF8, ++- 0xFFFA, 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBEBF, 0xBE5D, ++- 0xBCF8, 0xBCC4, 0xBD85, 0xC036, 0xC3B6, 0xC58D, 0xC545, 0xC43F, ++- 0xC2CF, 0xC147, 0xBFF9, 0xBF39, 0xBEE4, 0xBE9E, 0xBE66, 0xBE3B, ++- 0xBE1A, 0xBE04, 0xBDF5, 0xBDEE, 0xBDEC, 0xBDEE, 0xBDF4, 0xBDFA, ++- 0xBE00, 0xBE05, 0xBE07, 0xBE0B, 0xBE14, 0xBE21, 0xBE33, 0xBE49, ++- 0xBE60, 0xBE7A, 0xBE95, 0xBEB1, 0xBECC, 0xBEE5, 0xBEFE, 0xBF13, ++- 0xBF25, 0xBF33, 0xBF3D, 0xBF40, 0x2DE0, 0x24FF, 0x2066, 0x1FE1, ++- 0x1E77, 0x1A9C, 0x1619, 0x145C, 0x1602, 0x18F9, 0x1C9E, 0x204F, ++- 0x236B, 0x2550, 0x2650, 0x272E, 0x27EB, 0x2889, 0x290D, 0x2977, ++- 0x29CC, 0x2A0C, 0x2A3C, 0x2A5D, 0x2A72, 0x2A7E, 0x2A83, 0x2A83, ++- 0x2A83, 0x2A75, 0x2A4E, 0x2A12, 0x29C5, 0x2969, 0x2901, 0x2891, ++- 0x281C, 0x27A6, 0x2731, 0x26C0, 0x2658, 0x25FB, 0x25AC, 0x256F, ++- 0x2547, 0x2537, 0xF747, 0xF683, 0xF581, 0xF4CD, 0xF2F4, 0xEF40, ++- 0xEAAE, 0xE6A6, 0xE33F, 0xDFCA, 0xDC85, 0xD9AC, 0xD77E, 0xD638, ++- 0xD598, 0xD52B, 0xD4ED, 0xD4D7, 0xD4E3, 0xD50B, 0xD548, 0xD596, ++- 0xD5ED, 0xD648, 0xD69F, 0xD6EF, 0xD72F, 0xD75A, 0xD76A, 0xD768, ++- 0xD760, 0xD754, 0xD744, 0xD730, 0xD71A, 0xD702, 0xD6E9, 0xD6D0, ++- 0xD6B7, 0xD69F, 0xD688, 0xD674, 0xD663, 0xD656, 0xD64E, 0xD64A, ++- 0x0574, 0x04A9, 0x02CE, 0x0174, 0x0002, 0xFEB9, 0xFD7E, 0xFBB3, ++- 0xF916, 0xF607, 0xF2DE, 0xEFF0, 0xED92, 0xEC1C, 0xEB49, 0xEA9C, ++- 0xEA12, 0xE9A6, 0xE956, 0xE91E, 0xE8FA, 0xE8E7, 0xE8E2, 0xE8E8, ++- 0xE8F4, 0xE904, 0xE914, 0xE920, 0xE926, 0xE92E, 0xE945, 0xE969, ++- 0xE996, 0xE9CD, 0xEA09, 0xEA4B, 0xEA8F, 0xEAD5, 0xEB19, 0xEB5B, ++- 0xEB98, 0xEBCE, 0xEBFC, 0xEC20, 0xEC37, 0xEC41, 0x963F, 0x95ED, ++- 0x9F95, 0xA1FF, 0xA50A, 0xA9B9, 0xAEA3, 0xB1F4, 0xB38B, 0xB494, ++- 0xB52F, 0xB57B, 0xB599, 0xB5A8, 0xB5B0, 0xB5A6, 0xB58D, 0xB567, ++- 0xB538, 0xB500, 0xB4C4, 0xB485, 0xB446, 0xB40A, 0xB3D3, 0xB3A4, ++- 0xB37F, 0xB367, 0xB35E, 0xB364, 0xB373, 0xB38C, 0xB3AD, 0xB3D4, ++- 0xB400, 0xB430, 0xB462, 0xB494, 0xB4C6, 0xB4F6, 0xB523, 0xB54A, ++- 0xB56C, 0xB586, 0xB597, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, ++- 0x8001, 0x8001, 0x4171, 0xBF5F, 0xD424, 0xD6F4, 0xD506, 0xD25C, ++- 0xD21F, 0xD6B6, 0xDDE1, 0xE3CD, 0xE6BC, 0xE874, 0xEA0A, 0xEB98, ++- 0xED21, 0xEEA5, 0xF025, 0xF1A3, 0xF320, 0xF49C, 0xF619, 0xF797, ++- 0xF919, 0xFA9F, 0xFC6B, 0xFE04, 0xFE54, 0xFD4C, 0xFBBC, 0xF9DA, ++- 0xF7DA, 0xF5F4, 0xF45B, 0xF347, 0xF2EC, 0xF335, 0xF3DB, 0xF4CE, ++- 0xF5FD, 0xF755, 0xF8C7, 0xFA40, 0xFBB1, 0xFD07, 0xFE31, 0xFF1F, ++- 0xFFBF, 0x0000, 0xFE60, 0xF552, 0xF4E9, 0xF62A, 0xF7E7, 0xFA56, ++- 0xFD61, 0xFF69, 0xFE9B, 0xFD62, 0xFD93, 0xFDD4, 0xFE22, 0xFE7C, ++- 0xFEDE, 0xFF45, 0xFFB1, 0x001C, 0x0086, 0x00EC, 0x014B, 0x01A1, ++- 0x01BD, 0x01B1, 0x01DA, 0x0254, 0x02F3, 0x03A5, 0x0459, 0x04FE, ++- 0x0583, 0x05D6, 0x05E7, 0x05BB, 0x0568, 0x04F6, 0x046C, 0x03D0, ++- 0x032B, 0x0284, 0x01E2, 0x014C, 0x00C9, 0x0062, 0x001C, 0x0000, ++- 0xF240, 0xECAF, 0xEDCA, 0xF018, 0xF19C, 0xF144, 0xF02B, 0xEF8C, ++- 0xF029, 0xF1CB, 0xF3EC, 0xF620, 0xF865, 0xFAB6, 0xFD11, 0xFF70, ++- 0x01D0, 0x042E, 0x0686, 0x08D4, 0x0B15, 0x0D43, 0x0EEB, 0x0FD7, ++- 0x1064, 0x10F7, 0x11A5, 0x1257, 0x12F4, 0x1364, 0x138D, 0x1358, ++- 0x12AD, 0x1182, 0x0FEF, 0x0E09, 0x0BE8, 0x09A0, 0x0748, 0x04F7, ++- 0x02C1, 0x00BE, 0xFF04, 0xFDA8, 0xFCC0, 0xFC63, 0x0DF1, 0x0B9C, ++- 0x107A, 0x1676, 0x1902, 0x1430, 0x0BE1, 0x0740, 0x0F1D, 0x16CA, ++- 0x15AD, 0x13F2, 0x11B9, 0x0F23, 0x0C50, 0x095F, 0x0671, 0x03A5, ++- 0x011D, 0xFEF8, 0xFD55, 0xFC56, 0xFBC4, 0xFB55, 0xFB06, 0xFAD4, ++- 0xFABD, 0xFABE, 0xFAD5, 0xFB00, 0xFB3B, 0xFB85, 0xFBDA, 0xFC39, ++- 0xFC9F, 0xFD0A, 0xFD76, 0xFDE2, 0xFE4B, 0xFEAE, 0xFF09, 0xFF59, ++- 0xFF9D, 0xFFD1, 0xFFF3, 0x0000, 0xEA6B, 0xED4A, 0xF237, 0xF75D, ++- 0xFA52, 0xF946, 0xF61D, 0xF3FD, 0xF545, 0xF740, 0xF81C, 0xF900, ++- 0xF9E6, 0xFACC, 0xFBAD, 0xFC85, 0xFD51, 0xFE0B, 0xFEB2, 0xFF3F, ++- 0xFFB0, 0x0000, 0x0039, 0x0069, 0x0090, 0x00AE, 0x00C5, 0x00D4, ++- 0x00DD, 0x00E0, 0x00DD, 0x00D6, 0x00CC, 0x00BD, 0x00AD, 0x009A, ++- 0x0086, 0x0071, 0x005C, 0x0048, 0x0035, 0x0024, 0x0015, 0x000A, ++- 0x0003, 0x0000, 0x0FCD, 0x1311, 0x1A2B, 0x21C3, 0x2657, 0x25E9, ++- 0x229B, 0x1F19, 0x1ACC, 0x1742, 0x161F, 0x1510, 0x1415, 0x132E, ++- 0x1259, 0x1196, 0x10E3, 0x103F, 0x0FAA, 0x0F22, 0x0EA7, 0x0E38, ++- 0x0DCF, 0x0D69, 0x0D06, 0x0CA6, 0x0C49, 0x0BEF, 0x0B99, 0x0B46, ++- 0x0AF7, 0x0AAC, 0x0A65, 0x0A22, 0x09E4, 0x09AA, 0x0975, 0x0945, ++- 0x0919, 0x08F3, 0x08D2, 0x08B7, 0x08A1, 0x0891, 0x0887, 0x0884, ++- 0x192A, 0x1588, 0x13B7, 0x11EC, 0x1028, 0x0E6A, 0x0CB4, 0x0B05, ++- 0x095D, 0x07BD, 0x060C, 0x0441, 0x0276, 0x00C5, 0xFF47, 0xFE13, ++- 0xFD44, 0xFCE8, 0xFCEB, 0xFD37, 0xFDB0, 0xFE40, 0xFECC, 0xFF3C, ++- 0xFF78, 0xFF8F, 0xFFA4, 0xFFB5, 0xFFC3, 0xFFCE, 0xFFD8, 0xFFDF, ++- 0xFFE5, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, 0xFFEF, 0xFFF0, 0xFFF1, ++- 0xFFF2, 0xFFF4, 0xFFF7, 0xFFFB, 0x0000, 0x0000, 0x0456, 0xFED9, ++- 0xFE8B, 0xFE7F, 0xFEA4, 0xFEEA, 0xFF41, 0xFF97, 0xFFDD, 0x0000, ++- 0x0005, 0xFFFE, 0xFFED, 0xFFD8, 0xFFC2, 0xFFB1, 0xFFA8, 0xFFA8, ++- 0xFFAB, 0xFFB2, 0xFFBB, 0xFFC4, 0xFFCD, 0xFFD5, 0xFFDA, 0xFFDD, ++- 0xFFE0, 0xFFE2, 0xFFE5, 0xFFE7, 0xFFE9, 0xFFEB, 0xFFED, 0xFFEF, ++- 0xFFF0, 0xFFF2, 0xFFF4, 0xFFF5, 0xFFF7, 0xFFF8, 0xFFFA, 0xFFFB, ++- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x514E, 0x582E, 0x55E9, 0x52EB, ++- 0x4F73, 0x4BC4, 0x4820, 0x44C7, 0x41FC, 0x3FFF, 0x3EFA, 0x3EC3, ++- 0x3F1F, 0x3FD1, 0x409E, 0x414B, 0x419D, 0x41A2, 0x4196, 0x417D, ++- 0x415C, 0x4137, 0x4112, 0x40F3, 0x40DE, 0x40CF, 0x40C0, 0x40B1, ++- 0x40A2, 0x4094, 0x4085, 0x4077, 0x406A, 0x405D, 0x4050, 0x4044, ++- 0x4039, 0x402E, 0x4025, 0x401C, 0x4014, 0x400D, 0x4007, 0x4002, ++- 0x3FFF, 0x409D, +++ 0x0000, 0x00AA, 0x00AA, 0x00A1, 0x008E, 0x007A, 0x0071, 0x0071, 0x0071, +++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, +++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, +++ 0x0071, 0x0071, 0x0071, 0x0071, 0x0074, 0x007B, 0x0086, 0x0093, 0x00A0, +++ 0x00AD, 0x00B8, 0x00BF, 0x00C2, 0x00C1, 0x00BD, 0x00B9, 0x00B3, 0x00AF, +++ 0x00AB, 0x00AA, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x409D, +++ 0xFFFF, 0xFFFF, 0xFEC7, 0xFC19, 0xF96A, 0xF832, 0xF832, 0xF832, 0xF832, +++ 0xF832, 0xF832, 0xF832, 0xF832, 0xF832, 0xF97D, 0xFCE5, 0x01B7, 0x073C, +++ 0x0CC1, 0x1192, 0x14FA, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, 0x1645, +++ 0x1645, 0x1645, 0x1645, 0x1581, 0x1375, 0x107F, 0x0CFC, 0x0949, 0x05C6, +++ 0x02CF, 0x00C4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0154, 0x043F, 0x072A, 0x087E, 0x087E, 0x087E, +++ 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x087E, 0x06D4, 0x0270, 0xFC39, +++ 0xF51B, 0xEDFE, 0xE7C8, 0xE364, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, +++ 0xE1BA, 0xE1BA, 0xE1BA, 0xE1BA, 0xE2C3, 0xE58C, 0xE993, 0xEE59, 0xF360, +++ 0xF826, 0xFC2D, 0xFEF5, 0x0000, 0x0884, 0x0884, 0x0D77, 0x185B, 0x2340, +++ 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, 0x2833, +++ 0x27CC, 0x26BE, 0x2540, 0x238A, 0x21D4, 0x2056, 0x1F47, 0x1EE1, 0x1EE1, +++ 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1EE1, 0x1DED, 0x1B60, +++ 0x17AE, 0x134D, 0x0EB1, 0x0A4F, 0x069E, 0x0410, 0x031D, 0x0369, 0x042F, +++ 0x053D, 0x0664, 0x0772, 0x0837, 0x0884, 0xFFFF, 0xFFFF, 0xFF49, 0xFDB9, +++ 0xFC29, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, 0xFB73, +++ 0xFB73, 0xFBA5, 0xFC27, 0xFCDF, 0xFDB3, 0xFE86, 0xFF3F, 0xFFC1, 0xFFF3, +++ 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, 0xFFF3, +++ 0xFFF4, 0xFFF6, 0xFFF8, 0xFFFA, 0xFFFC, 0xFFFD, 0xFFFF, 0x0000, 0x0000, +++ 0x0052, 0x0105, 0x01B9, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, 0x020B, +++ 0x020B, 0x020B, 0x020B, 0x0226, 0x026D, 0x02D2, 0x0346, 0x03BA, 0x041E, +++ 0x0466, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, 0x0481, +++ 0x0481, 0x0459, 0x03EF, 0x0356, 0x02A0, 0x01E1, 0x012B, 0x0091, 0x0027, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFC62, +++ 0xFC62, 0xFDCF, 0x00F3, 0x0416, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, +++ 0x0583, 0x0583, 0x0583, 0x0583, 0x056B, 0x052D, 0x04D6, 0x0472, 0x040E, +++ 0x03B6, 0x0378, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, 0x0361, +++ 0x0361, 0x0361, 0x034D, 0x0314, 0x02BC, 0x024A, 0x01C3, 0x012C, 0x008A, +++ 0xFFE3, 0xFF3C, 0xFE9A, 0xFE02, 0xFD7B, 0xFD08, 0xFCAF, 0xFC76, 0xFC62, +++ 0x0001, 0xFFFE, 0xC170, 0xFB1E, 0xFB1E, 0x0218, 0x1189, 0x2138, 0x28EF, +++ 0x29A0, 0x29E2, 0x29EB, 0x29D1, 0x2992, 0x2948, 0x2909, 0x28EF, 0x28EF, +++ 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x28EF, 0x2683, 0x2205, +++ 0x1F9A, 0x2093, 0x22E3, 0x25A6, 0x27F6, 0x28EF, 0x2828, 0x2601, 0x22BE, +++ 0x1EA5, 0x19FB, 0x1504, 0x1005, 0x0B43, 0x0703, 0x037C, 0x00AB, 0xFE80, +++ 0xFCED, 0xFBE1, 0xFB4C, 0xFB1E, 0xD2DC, 0xD2DC, 0xD58B, 0xDB70, 0xE156, +++ 0xE405, 0xE18C, 0xDCF5, 0xDA7C, 0xDB7A, 0xDDD7, 0xE0AA, 0xE307, 0xE405, +++ 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE405, 0xE281, +++ 0xDFB1, 0xDE2E, 0xDEC9, 0xE03C, 0xE1F7, 0xE369, 0xE405, 0xE3E4, 0xE384, +++ 0xE2E9, 0xE219, 0xE117, 0xDFE8, 0xDE91, 0xDD15, 0xDB7A, 0xD9C7, 0xD813, +++ 0xD675, 0xD508, 0xD3E4, 0xD322, 0xD2DC, 0xD4B1, 0xD4B1, 0xCA11, 0xB2B1, +++ 0x9B50, 0x90B0, 0x9136, 0x922F, 0x92B5, 0x927F, 0x91FF, 0x9166, 0x90E6, +++ 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, 0x90B0, +++ 0x93C4, 0x997C, 0x9C90, 0x9B54, 0x9862, 0x94DE, 0x91EC, 0x90B0, 0x923F, +++ 0x9680, 0x9CD1, 0xA490, 0xAD1B, 0xB5D0, 0xBE0D, 0xC530, 0xCA98, 0xCE55, +++ 0xD103, 0xD2CF, 0xD3E6, 0xD475, 0xD4AA, 0xD4B1, 0x0000, 0x0000, 0x0071, +++ 0x0169, 0x0261, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, +++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, +++ 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, 0x02D2, +++ 0x02E2, 0x030F, 0x0350, 0x039D, 0x03ED, 0x043A, 0x047B, 0x04A8, 0x04B8, +++ 0x0476, 0x03C9, 0x02DD, 0x01DC, 0x00F0, 0x0043, 0x0000, 0xFFFF, 0xFFFF, +++ 0x001C, 0x005A, 0x0098, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, +++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, +++ 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0x00B4, +++ 0x00B4, 0x008D, 0x0024, 0xFF8C, 0xFED8, 0xFE1A, 0xFD66, 0xFCCF, 0xFC66, +++ 0xFC3F, 0xFC74, 0xFCFD, 0xFDB9, 0xFE85, 0xFF41, 0xFFCA, 0xFFFF, 0xCA50, +++ 0xCA50, 0xCB34, 0xCD2A, 0xCF1F, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, +++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, +++ 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, 0xD003, +++ 0xD003, 0xD003, 0xCFFF, 0xCFF2, 0xCFDA, 0xCFB3, 0xCF7E, 0xCF36, 0xCEDB, +++ 0xCE6A, 0xCDE1, 0xCD40, 0xCC93, 0xCBE7, 0xCB49, 0xCAC8, 0xCA70, 0xCA50, +++ 0x0000, 0x0000, 0xFFAF, 0xFF00, 0xFE51, 0xFE01, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE01, 0xFE01, 0xFE01, 0xFE12, 0xFE41, 0xFE85, 0xFED6, 0xFF2A, 0xFF7B, +++ 0xFFBF, 0xFFEE, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xF97A, 0xF97A, 0xF924, 0xF866, 0xF7A9, 0xF753, 0xF753, 0xF753, 0xF753, +++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, +++ 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, 0xF753, +++ 0xF753, 0xF753, 0xF753, 0xF765, 0xF798, 0xF7E2, 0xF839, 0xF894, 0xF8EB, +++ 0xF934, 0xF967, 0xF97A, 0xED8B, 0xED8B, 0xECB6, 0xEAE2, 0xE90E, 0xE839, +++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, +++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, +++ 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE839, 0xE868, 0xE8E5, 0xE99A, +++ 0xEA71, 0xEB53, 0xEC2A, 0xECDF, 0xED5C, 0xED8B, 0x0001, 0xFFFE, 0xC170, +++ 0x054D, 0x054D, 0x032E, 0xFE82, 0xF9D8, 0xF7B9, 0xF8D5, 0xFAE6, 0xFC03, +++ 0xFB91, 0xFA80, 0xF93B, 0xF82B, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, +++ 0xF7B9, 0xF7B9, 0xF7B9, 0xF7B9, 0xFCB4, 0x05F5, 0x0AF0, 0x08F0, 0x042D, +++ 0xFE7C, 0xF9B8, 0xF7B9, 0xF7D7, 0xF82D, 0xF8B5, 0xF96B, 0xFA49, 0xFB48, +++ 0xFC65, 0xFD98, 0xFEDD, 0x002D, 0x0177, 0x02AB, 0x03B8, 0x048E, 0x051A, +++ 0x054D, 0x2BD7, 0x2BD7, 0x2A4B, 0x26E4, 0x237D, 0x21F1, 0x23B6, 0x26FF, +++ 0x28C5, 0x280F, 0x265D, 0x2458, 0x22A6, 0x21F1, 0x21F1, 0x21F1, 0x21F1, +++ 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F1, 0x21F4, 0x21F9, 0x21FC, 0x21FB, +++ 0x21F8, 0x21F5, 0x21F2, 0x21F1, 0x21F7, 0x220D, 0x2237, 0x2278, 0x22D4, +++ 0x234F, 0x23ED, 0x24B0, 0x259F, 0x26B6, 0x27E4, 0x2911, 0x2A24, 0x2B06, +++ 0x2B9F, 0x2BD7, 0xCCF9, 0xCCF9, 0xC665, 0xB7EA, 0xA970, 0xA2DB, 0xA334, +++ 0xA3D8, 0xA431, 0xA40D, 0xA3B9, 0xA354, 0xA2FF, 0xA2DB, 0xA2DB, 0xA2DB, +++ 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA2DB, 0xA5CB, 0xAB40, 0xAE30, +++ 0xAD02, 0xAA33, 0xA6D8, 0xA409, 0xA2DB, 0xA3E3, 0xA6AF, 0xAAD1, 0xAFDB, +++ 0xB55F, 0xBAED, 0xC019, 0xC472, 0xC78B, 0xC98E, 0xCAFE, 0xCBF6, 0xCC8C, +++ 0xCCD9, 0xCCF5, 0xCCF9, 0x0000, 0x0000, 0xFF06, 0xFCE2, 0xFABE, 0xF9C5, +++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, +++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, +++ 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C5, 0xF9C6, 0xF9C9, +++ 0xF9CF, 0xF9D8, 0xF9E6, 0xF9FA, 0xFA14, 0xFA35, 0xFAA3, 0xFB81, 0xFCA1, +++ 0xFDD3, 0xFEE9, 0xFFB2, 0x0000, 0x0000, 0x0000, 0xFE9A, 0xFB88, 0xF875, +++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, +++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, +++ 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF710, 0xF77B, 0xF898, +++ 0xFA36, 0xFC20, 0xFE24, 0x000F, 0x01AC, 0x02CA, 0x0334, 0x0307, 0x0292, +++ 0x01F1, 0x0143, 0x00A3, 0x002D, 0x0000, 0xC7DA, 0xC7DA, 0xC7DC, 0xC7E0, +++ 0xC7E4, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, +++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, +++ 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7E6, 0xC7FB, +++ 0xC832, 0xC882, 0xC8E1, 0xC944, 0xC9A3, 0xC9F3, 0xCA2B, 0xCA3F, 0xCA1D, +++ 0xC9C6, 0xC94E, 0xC8CB, 0xC854, 0xC7FC, 0xC7DA, 0x0000, 0x0000, 0xFEA3, +++ 0xFBA5, 0xF8A7, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, +++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, +++ 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, 0xF74A, +++ 0xF797, 0xF864, 0xF98C, 0xFAEC, 0xFC5E, 0xFDBD, 0xFEE6, 0xFFB3, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFE96, 0xFB7B, 0xF860, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, +++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, +++ 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, 0xF6F6, +++ 0xF6F6, 0xF746, 0xF81A, 0xF94E, 0xFABB, 0xFC3B, 0xFDA7, 0xFEDB, 0xFFB0, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xF549, +++ 0xF549, 0xF471, 0xF294, 0xF0B8, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, +++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, +++ 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, +++ 0xEFE0, 0xEFE0, 0xF00F, 0xF08E, 0xF147, 0xF221, 0xF307, 0xF3E2, 0xF49A, +++ 0xF51A, 0xF549, 0xFFFF, 0xFFFF, 0xBF5E, 0xE4F6, 0xE4F6, 0xE4F6, 0xE4F7, +++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, +++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, +++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F7, +++ 0xE4F7, 0xE4F7, 0xE4F7, 0xE4F6, 0xEEBB, 0xAC43, 0xAC43, 0xA599, 0x96EE, +++ 0x8843, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, +++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, +++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x830F, +++ 0x86FB, 0x8CA8, 0x9363, 0x9A78, 0xA134, 0xA6E1, 0xAACD, 0xAC43, 0x0000, +++ 0x0000, 0xFC6D, 0xF494, 0xECBA, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, +++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, +++ 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, 0xE928, +++ 0xE928, 0xE928, 0xE9F1, 0xEC0A, 0xEF14, 0xF2AE, 0xF679, 0xFA13, 0xFD1D, +++ 0xFF36, 0x0000, 0xFFFF, 0xFFFF, 0xFC79, 0xF4B8, 0xECF7, 0xE970, 0xE970, +++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, +++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, +++ 0xE970, 0xE970, 0xE970, 0xE970, 0xE970, 0xEA37, 0xEC49, 0xEF4A, 0xF2D9, +++ 0xF697, 0xFA26, 0xFD26, 0xFF39, 0xFFFF, 0x2537, 0x2537, 0x2BB7, 0x3A06, +++ 0x4854, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, +++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, +++ 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4ED4, 0x4D67, +++ 0x4994, 0x440A, 0x3D7A, 0x3692, 0x3001, 0x2A77, 0x26A4, 0x2537, 0x049D, +++ 0x049D, 0x04F6, 0x05BA, 0x067E, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, +++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, +++ 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, 0x06D7, +++ 0x06D7, 0x06D7, 0x070F, 0x07A4, 0x087B, 0x097A, 0x0A87, 0x0B86, 0x0C5D, +++ 0x0CF2, 0x0D2A, 0x0CB0, 0x0B78, 0x09CC, 0x07FA, 0x064F, 0x0516, 0x049D, +++ 0xFE84, 0xFE84, 0xFE5E, 0xFE0A, 0xFDB6, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +++ 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +++ 0xFD90, 0xFD90, 0xFD90, 0xFD70, 0xFD1B, 0xFC9F, 0xFC0D, 0xFB73, 0xFAE0, +++ 0xFA65, 0xFA0F, 0xF9EF, 0xFA30, 0xFAD8, 0xFBBD, 0xFCB6, 0xFD9C, 0xFE43, +++ 0xFE84, 0xC460, 0xC460, 0xC4C4, 0xC59F, 0xC67B, 0xC6DF, 0xC6DF, 0xC6DF, +++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, +++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, +++ 0xC6DF, 0xC6DF, 0xC6DF, 0xC6DF, 0xC71E, 0xC7C6, 0xC8BA, 0xC9DC, 0xCB0C, +++ 0xCC2E, 0xCD22, 0xCDCB, 0xCE0A, 0xCD81, 0xCC1F, 0xCA3C, 0xC82D, 0xC64A, +++ 0xC4E9, 0xC460, 0xFFFF, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x1B09, 0x1B09, +++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, +++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, +++ 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, 0x1B0A, +++ 0x1B0A, 0x1B0A, 0x1B09, 0x1144, 0x1144, 0x1144, 0x1144, 0x1143, 0x1143, +++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, +++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, +++ 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1143, 0x1144, +++ 0xAC43, 0xAC43, 0xA599, 0x96EE, 0x8844, 0x8199, 0x8199, 0x8199, 0x8199, +++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, +++ 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, 0x8199, +++ 0x8199, 0x8199, 0x8199, 0x8310, 0x86FC, 0x8CA9, 0x9364, 0x9A79, 0xA134, +++ 0xA6E1, 0xAACD, 0xAC43, 0xFFFF, 0xFFFF, 0x02EE, 0x095E, 0x0FCF, 0x12BD, +++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, +++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, +++ 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x12BD, 0x1218, 0x1060, 0x0DE1, +++ 0x0AED, 0x07D0, 0x04DC, 0x025D, 0x00A5, 0xFFFF, 0xFFFF, 0xFFFF, 0x040E, +++ 0x0CFA, 0x15E6, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, +++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, +++ 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, 0x19F5, +++ 0x1911, 0x16AE, 0x133A, 0x0F22, 0x0AD3, 0x06BB, 0x0347, 0x00E4, 0xFFFF, +++ 0x1E4A, 0x1E4A, 0x24BB, 0x32E8, 0x4115, 0x4787, 0x4787, 0x4787, 0x4787, +++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, +++ 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, 0x4787, +++ 0x4787, 0x4787, 0x4787, 0x461D, 0x4253, 0x3CD6, 0x3655, 0x2F7C, 0x28FB, +++ 0x237E, 0x1FB4, 0x1E4A, 0x0000, 0x0000, 0xFFA5, 0xFEDE, 0xFE17, 0xFDBC, +++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, +++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, +++ 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFDBC, 0xFD84, 0xFCEE, 0xFC14, +++ 0xFB11, 0xFA01, 0xF8FF, 0xF825, 0xF78E, 0xF756, 0xF7D1, 0xF90E, 0xFABF, +++ 0xFC97, 0xFE48, 0xFF84, 0x0000, 0xFF2F, 0xFF2F, 0xFF52, 0xFF9E, 0xFFEB, +++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, +++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, +++ 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x000F, 0x002D, 0x007E, +++ 0x00F3, 0x017E, 0x0210, 0x029B, 0x0310, 0x0361, 0x037F, 0x0342, 0x02A4, +++ 0x01CD, 0x00E2, 0x000B, 0xFF6C, 0xFF2F, 0xC9D7, 0xC9D7, 0xCA40, 0xCB27, +++ 0xCC0E, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, +++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, +++ 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCCB9, +++ 0xCD6B, 0xCE6C, 0xCF9D, 0xD0DE, 0xD20E, 0xD310, 0xD3C1, 0xD403, 0xD373, +++ 0xD1FF, 0xD002, 0xCDD8, 0xCBDC, 0xCA67, 0xC9D7, ++ }; ++ +diff --git a/assets/anims/anim_37.inc.c b/assets/anims/anim_37.inc.c +index 0611b5b..ad2f79b 100644 +--- a/assets/anims/anim_37.inc.c ++++ b/assets/anims/anim_37.inc.c +@@ -12,455 +12,505 @@ static const struct Animation anim_37[] = { + + + static const u16 anim_37_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0064, 0x0C2A, 0x0064, 0x0C8E, 0x0064, 0x0CF2, +- 0x0064, 0x0AFE, 0x0064, 0x0B62, 0x0064, 0x0BC6, +- 0x0064, 0x09D2, 0x0064, 0x0A36, 0x0064, 0x0A9A, +- 0x0001, 0x09CE, 0x0001, 0x09CF, 0x0001, 0x09D0, +- 0x0064, 0x0193, 0x0064, 0x01F7, 0x0064, 0x025B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x012F, +- 0x0064, 0x0003, 0x0064, 0x0067, 0x0064, 0x00CB, +- 0x0001, 0x09CA, 0x0001, 0x09CB, 0x0001, 0x09CC, +- 0x0064, 0x044F, 0x0064, 0x04B3, 0x0064, 0x0517, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x03EB, +- 0x0064, 0x02BF, 0x0064, 0x0323, 0x0064, 0x0387, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09CD, +- 0x0001, 0x09C7, 0x0001, 0x09C8, 0x0001, 0x09C9, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x0963, +- 0x0064, 0x0837, 0x0064, 0x089B, 0x0064, 0x08FF, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09D1, +- 0x0064, 0x070B, 0x0064, 0x076F, 0x0064, 0x07D3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x06A7, +- 0x0064, 0x057B, 0x0064, 0x05DF, 0x0064, 0x0643, ++0x0034, 0x0000, 0x0063, 0x0034, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, ++ 0x0099, 0x0001, 0x009A, 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, ++ 0x0064, 0x009E, 0x0064, 0x0102, 0x0064, 0x0166, 0x0064, 0x01CA, 0x0064, ++ 0x022E, 0x0064, 0x0292, 0x0001, 0x02F6, 0x0001, 0x02F7, 0x0001, 0x02F8, ++ 0x0064, 0x02F9, 0x0064, 0x035D, 0x0064, 0x03C1, 0x0064, 0x0425, 0x0064, ++ 0x0489, 0x0064, 0x04ED, 0x0064, 0x0551, 0x0064, 0x05B5, 0x0064, 0x0619, ++ 0x0034, 0x067D, 0x0034, 0x06B1, 0x0033, 0x06E5, 0x0064, 0x0718, 0x0064, ++ 0x077C, 0x0064, 0x07E0, 0x0064, 0x0844, 0x0064, 0x08A8, 0x0064, 0x090C, ++ 0x0063, 0x0970, 0x0061, 0x09D3, 0x0034, 0x0A34, 0x0001, 0x0A68, 0x0001, ++ 0x0A69, 0x0001, 0x0A6A, 0x0064, 0x0A6B, 0x0064, 0x0ACF, 0x0064, 0x0B33, ++ 0x0064, 0x0B97, 0x0064, 0x0BFB, 0x0064, 0x0C5F, 0x0064, 0x0CC3, 0x0064, ++ 0x0D27, 0x0064, 0x0D8B, 0x0001, 0x0DEF, 0x0001, 0x0DF0, 0x0001, 0x0DF1, ++ 0x0064, 0x0DF2, 0x0064, 0x0E56, 0x0064, 0x0EBA, 0x0064, 0x0F1E, 0x0064, ++ 0x0F82, 0x0064, 0x0FE6, 0x0063, 0x104A, 0x0023, 0x10AD, 0x0023, 0x10D0, + }; + + static const s16 anim_37_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0xFFD8, 0xFF6C, 0xFECF, 0xFE13, +- 0xFD4C, 0xFC8C, 0xFBE6, 0xFB6D, 0xFB34, 0xFB45, 0xFB94, 0xFC16, +- 0xFCBE, 0xFD82, 0xFE55, 0xFF2C, 0xFFFA, 0x00B2, 0x014C, 0x01B9, +- 0x01EE, 0x01E0, 0x0182, 0x00C9, 0xFFA9, 0xFE15, 0xFBC9, 0xF8A1, +- 0xF4C1, 0xF04B, 0xEB62, 0xE62B, 0xE0C9, 0xDB5E, 0xD60E, 0xD0FD, +- 0xCC4E, 0xC824, 0xC4A2, 0xC29B, 0xC259, 0xC336, 0xC48E, 0xC5BB, +- 0xC69B, 0xC77E, 0xC864, 0xC94C, 0xCA38, 0xCB27, 0xCC1A, 0xCD11, +- 0xCE0D, 0xCF0E, 0xD014, 0xD121, 0xD233, 0xD34C, 0xD46C, 0xD594, +- 0xD6C3, 0xD7FA, 0xD93A, 0xDA82, 0xDD37, 0xE115, 0xE3A3, 0xE4B9, +- 0xE5D6, 0xE6FA, 0xE823, 0xE94F, 0xEA7F, 0xEBB1, 0xECE3, 0xEE16, +- 0xEF47, 0xF076, 0xF1A2, 0xF2C9, 0xF3EB, 0xF507, 0xF61B, 0xF726, +- 0xF828, 0xF91F, 0xFA0A, 0xFAE9, 0xFBB9, 0xFC7B, 0xFD2D, 0xFDCE, +- 0xFE5D, 0xFED9, 0xFF40, 0xFF93, 0xFFCF, 0xFFF4, 0x0000, 0xF97C, +- 0xF975, 0xF963, 0xF948, 0xF929, 0xF908, 0xF8E7, 0xF8CC, 0xF8B7, +- 0xF8AE, 0xF8B4, 0xF8CB, 0xF8EF, 0xF91D, 0xF951, 0xF989, 0xF9C2, +- 0xF9F7, 0xFA25, 0xFA4A, 0xFA62, 0xFA6A, 0xFA5E, 0xFA3B, 0xF9FE, +- 0xF9A4, 0xF929, 0xF87A, 0xF78B, 0xF667, 0xF518, 0xF3A8, 0xF221, +- 0xF08E, 0xEEF7, 0xED68, 0xEBEA, 0xEA87, 0xE94A, 0xE83D, 0xE7A0, +- 0xE788, 0xE7BB, 0xE803, 0xE827, 0xE829, 0xE82F, 0xE839, 0xE846, +- 0xE856, 0xE866, 0xE878, 0xE889, 0xE899, 0xE8A8, 0xE8B3, 0xE8BC, +- 0xE8C0, 0xE8C0, 0xE8B9, 0xE8AC, 0xE898, 0xE87C, 0xE856, 0xE827, +- 0xE6BC, 0xE468, 0xE374, 0xE3FB, 0xE492, 0xE538, 0xE5EB, 0xE6AA, +- 0xE773, 0xE845, 0xE920, 0xEA01, 0xEAE7, 0xEBD2, 0xECBF, 0xEDAD, +- 0xEE9C, 0xEF89, 0xF073, 0xF159, 0xF23B, 0xF315, 0xF3E8, 0xF4B1, +- 0xF570, 0xF623, 0xF6C9, 0xF760, 0xF7E7, 0xF85D, 0xF8C1, 0xF911, +- 0xF94B, 0xF96F, 0xF97C, 0xED8C, 0xED19, 0xEBE4, 0xEA24, 0xE80D, +- 0xE5D5, 0xE3B3, 0xE1DA, 0xE082, 0xDFDF, 0xDFBE, 0xDFC4, 0xDFEE, +- 0xE036, 0xE09A, 0xE116, 0xE1A5, 0xE243, 0xE2EE, 0xE3A0, 0xE456, +- 0xE50C, 0xE5BE, 0xE669, 0xE707, 0xE796, 0xE811, 0xE880, 0xE8ED, +- 0xE957, 0xE9BF, 0xEA25, 0xEA88, 0xEAE9, 0xEB48, 0xEBA5, 0xEC00, +- 0xEC59, 0xECB0, 0xED05, 0xED54, 0xED95, 0xEDC8, 0xEDEB, 0xEDFE, +- 0xEE0A, 0xEE1B, 0xEE2F, 0xEE45, 0xEE5C, 0xEE75, 0xEE8C, 0xEEA3, +- 0xEEB7, 0xEEC8, 0xEED5, 0xEEDD, 0xEEE0, 0xEEDB, 0xEECF, 0xEEBA, +- 0xEE9B, 0xEE73, 0xEE3E, 0xEDFE, 0xEC38, 0xE938, 0xE79F, 0xE7A0, +- 0xE7AA, 0xE7BC, 0xE7D6, 0xE7F7, 0xE81E, 0xE84B, 0xE87D, 0xE8B4, +- 0xE8EF, 0xE92E, 0xE970, 0xE9B4, 0xE9F9, 0xEA40, 0xEA88, 0xEAD0, +- 0xEB17, 0xEB5E, 0xEBA3, 0xEBE5, 0xEC25, 0xEC61, 0xEC9A, 0xECCE, +- 0xECFD, 0xED26, 0xED49, 0xED65, 0xED7A, 0xED87, 0xED8C, 0xCA4F, +- 0xCA8C, 0xCB31, 0xCC28, 0xCD57, 0xCEA6, 0xCFFE, 0xD146, 0xD266, +- 0xD346, 0xD407, 0xD4D6, 0xD5B0, 0xD691, 0xD775, 0xD856, 0xD932, +- 0xDA04, 0xDAC8, 0xDB79, 0xDC15, 0xDC95, 0xDCF7, 0xDD36, 0xDD4F, +- 0xDD3C, 0xDCFA, 0xDC6C, 0xDB82, 0xDA49, 0xD8CF, 0xD721, 0xD54C, +- 0xD35D, 0xD162, 0xCF69, 0xCD7D, 0xCBAE, 0xCA08, 0xC898, 0xC772, +- 0xC699, 0xC5FF, 0xC598, 0xC555, 0xC551, 0xC594, 0xC5F8, 0xC658, +- 0xC68E, 0xC649, 0xC5A3, 0xC514, 0xC517, 0xC626, 0xC834, 0xCACC, +- 0xCDC6, 0xD0FB, 0xD445, 0xD77D, 0xDA7C, 0xDD1C, 0xDF35, 0xE0A1, +- 0xDDDA, 0xD77C, 0xD398, 0xD2F8, 0xD25E, 0xD1CB, 0xD13E, 0xD0B7, +- 0xD036, 0xCFBB, 0xCF46, 0xCED6, 0xCE6D, 0xCE09, 0xCDAB, 0xCD52, +- 0xCCFE, 0xCCB0, 0xCC66, 0xCC22, 0xCBE3, 0xCBA9, 0xCB74, 0xCB44, +- 0xCB18, 0xCAF0, 0xCACE, 0xCAAF, 0xCA95, 0xCA80, 0xCA6E, 0xCA60, +- 0xCA57, 0xCA51, 0xCA4F, 0xFB1D, 0xFB3B, 0xFB89, 0xFBF6, 0xFC71, +- 0xFCEA, 0xFD4D, 0xFD8C, 0xFD93, 0xFD53, 0xFCCA, 0xFC08, 0xFB18, +- 0xFA03, 0xF8D3, 0xF792, 0xF64A, 0xF504, 0xF3CB, 0xF2A8, 0xF1A5, +- 0xF0CD, 0xF028, 0xEFC1, 0xEFA1, 0xEFD3, 0xF061, 0xF17C, 0xF33E, +- 0xF58C, 0xF84C, 0xFB63, 0xFEB4, 0x0226, 0x059E, 0x0901, 0x0C34, +- 0x0F1B, 0x119D, 0x139D, 0x144C, 0x136E, 0x11C9, 0x1021, 0x0F3B, +- 0x0F54, 0x0FEA, 0x10A0, 0x111A, 0x10FC, 0x0FD3, 0x0DDC, 0x0BC4, +- 0x0A37, 0x09E3, 0x0AB9, 0x0C1F, 0x0DED, 0x0FF9, 0x121B, 0x142B, +- 0x1601, 0x1774, 0x185B, 0x188F, 0x142B, 0x0C12, 0x0742, 0x066F, +- 0x05A4, 0x04E2, 0x0429, 0x0377, 0x02CE, 0x022C, 0x0193, 0x0101, +- 0x0076, 0xFFF5, 0xFF79, 0xFF05, 0xFE98, 0xFE32, 0xFDD2, 0xFD7A, +- 0xFD28, 0xFCDC, 0xFC97, 0xFC58, 0xFC1F, 0xFBED, 0xFBC0, 0xFB99, +- 0xFB77, 0xFB5B, 0xFB44, 0xFB33, 0xFB27, 0xFB1F, 0xFB1D, 0xD2DC, +- 0xD371, 0xD505, 0xD757, 0xDA27, 0xDD34, 0xE03D, 0xE303, 0xE544, +- 0xE6BF, 0xE7B8, 0xE89B, 0xE96A, 0xEA23, 0xEAC9, 0xEB5C, 0xEBDC, +- 0xEC49, 0xECA4, 0xECEE, 0xED27, 0xED50, 0xED69, 0xED73, 0xED6E, +- 0xED5A, 0xED39, 0xECF6, 0xEC7F, 0xEBDD, 0xEB16, 0xEA32, 0xE936, +- 0xE82A, 0xE714, 0xE5FD, 0xE4EA, 0xE3E3, 0xE2EE, 0xE213, 0xE10C, +- 0xDFD1, 0xDEC8, 0xDE55, 0xDEDC, 0xE0F9, 0xE468, 0xE841, 0xEB9A, +- 0xED8B, 0xEDBF, 0xECCF, 0xEB3E, 0xE98B, 0xE837, 0xE72B, 0xE600, +- 0xE4C5, 0xE387, 0xE255, 0xE13D, 0xE04D, 0xDF93, 0xDF1D, 0xDEF8, +- 0xE195, 0xE653, 0xE8AE, 0xE84B, 0xE7D4, 0xE74A, 0xE6AF, 0xE605, +- 0xE54C, 0xE487, 0xE3B7, 0xE2DD, 0xE1FC, 0xE114, 0xE028, 0xDF38, +- 0xDE46, 0xDD54, 0xDC63, 0xDB75, 0xDA8B, 0xD9A7, 0xD8CA, 0xD7F7, +- 0xD72D, 0xD670, 0xD5C0, 0xD51F, 0xD48F, 0xD410, 0xD3A5, 0xD350, +- 0xD310, 0xD2E9, 0xD2DC, 0xD4B4, 0xD49A, 0xD457, 0xD3F6, 0xD383, +- 0xD30A, 0xD297, 0xD238, 0xD1F7, 0xD1E1, 0xD20C, 0xD27E, 0xD327, +- 0xD3FB, 0xD4EC, 0xD5EA, 0xD6EA, 0xD7DC, 0xD8B3, 0xD960, 0xD9D7, +- 0xDA09, 0xD9E8, 0xD967, 0xD877, 0xD70A, 0xD513, 0xD241, 0xCE66, +- 0xC9AD, 0xC43E, 0xBE44, 0xB7E8, 0xB154, 0xAAB0, 0xA427, 0x9DE2, +- 0x980B, 0x92CA, 0x8E4A, 0x8B6A, 0x8A73, 0x8AAD, 0x8B5F, 0x8BD2, +- 0x8C4A, 0x8D43, 0x8E54, 0x8F17, 0x8F24, 0x8DDA, 0x8B7F, 0x8902, +- 0x8756, 0x876B, 0x88E0, 0x8AAB, 0x8CC8, 0x8F30, 0x91DB, 0x94C3, +- 0x97E1, 0x9B2F, 0x9EA6, 0xA240, 0xA8ED, 0xB1C6, 0xB6F9, 0xB86A, +- 0xB9D8, 0xBB43, 0xBCAB, 0xBE0E, 0xBF6D, 0xC0C7, 0xC21B, 0xC369, +- 0xC4AF, 0xC5ED, 0xC723, 0xC850, 0xC973, 0xCA8C, 0xCB9B, 0xCC9D, +- 0xCD94, 0xCE7D, 0xCF5A, 0xD028, 0xD0E7, 0xD198, 0xD238, 0xD2C8, +- 0xD347, 0xD3B3, 0xD40E, 0xD455, 0xD489, 0xD4A9, 0xD4B4, 0x0000, +- 0x0139, 0x0497, 0x09A6, 0x0FF2, 0x1707, 0x1E71, 0x25BC, 0x2C75, +- 0x3226, 0x371F, 0x3BA7, 0x3F3C, 0x415D, 0x420A, 0x417B, 0x3F88, +- 0x3C08, 0x31D3, 0x2767, 0x22EB, 0x1EF4, 0x1B74, 0x1861, 0x15AD, +- 0x134E, 0x1135, 0x0F2B, 0x0D08, 0x0ADB, 0x08B3, 0x069F, 0x04AF, +- 0x02F2, 0x0177, 0x004D, 0xFF84, 0xFF2A, 0xFF4E, 0x0000, 0x0112, +- 0x0249, 0x03A5, 0x0521, 0x06BC, 0x0874, 0x0A47, 0x0C32, 0x0E32, +- 0x1047, 0x126C, 0x14A1, 0x16E3, 0x1930, 0x1B85, 0x1DE0, 0x203F, +- 0x22A0, 0x2500, 0x275D, 0x29B5, 0x2C06, 0x2E4D, 0x3089, 0x32B6, +- 0x34D3, 0x36DE, 0x38D4, 0x3AB2, 0x3C77, 0x3E21, 0x3FAD, 0x4118, +- 0x4262, 0x4386, 0x4484, 0x4559, 0x4602, 0x467E, 0x46CA, 0x46E4, +- 0x4652, 0x44B3, 0x4225, 0x3EC9, 0x3ABF, 0x3625, 0x311D, 0x2BC5, +- 0x263D, 0x20A6, 0x1B1E, 0x15C6, 0x10BE, 0x0C24, 0x081A, 0x04BE, +- 0x0230, 0x0091, 0x0000, 0x0000, 0x00C7, 0x02E4, 0x05FF, 0x09C2, +- 0x0DD4, 0x11DF, 0x158D, 0x1884, 0x1A70, 0x19F6, 0x1713, 0x136C, +- 0x10A9, 0x0F2A, 0x0E12, 0x0D2E, 0x0C4B, 0x0C1D, 0x0AF3, 0x077A, +- 0x033A, 0xFEA5, 0xFA2C, 0xF644, 0xF360, 0xF1F2, 0xF1B2, 0xF1FD, +- 0xF2BC, 0xF3D9, 0xF53D, 0xF6D3, 0xF883, 0xFA39, 0xFBDD, 0xFD59, +- 0xFE97, 0xFF81, 0x0000, 0x003F, 0x0078, 0x00AB, 0x00D9, 0x0100, +- 0x0123, 0x0140, 0x0159, 0x016D, 0x017C, 0x0188, 0x0190, 0x0194, +- 0x0194, 0x0192, 0x018C, 0x0184, 0x0179, 0x016C, 0x015D, 0x014D, +- 0x013A, 0x0127, 0x0112, 0x00FD, 0x00E7, 0x00D1, 0x00BB, 0x00A5, +- 0x008F, 0x007A, 0x0066, 0x0053, 0x0042, 0x0031, 0x0023, 0x0017, +- 0x000D, 0x0006, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF549, +- 0xF543, 0xF535, 0xF521, 0xF50B, 0xF4F8, 0xF4EB, 0xF4E8, 0xF4F3, +- 0xF50F, 0xF571, 0xF61C, 0xF6CC, 0xF73C, 0xF751, 0xF732, 0xF6FE, +- 0xF6D7, 0xF707, 0xF6AE, 0xF540, 0xF372, 0xF17C, 0xEF94, 0xEDEE, +- 0xECC3, 0xEC47, 0xEC5C, 0xECB5, 0xED48, 0xEE09, 0xEEEC, 0xEFE5, +- 0xF0E8, 0xF1EA, 0xF2E0, 0xF3BC, 0xF475, 0xF4FD, 0xF549, 0xF572, +- 0xF597, 0xF5B7, 0xF5D4, 0xF5EE, 0xF604, 0xF617, 0xF627, 0xF633, +- 0xF63D, 0xF645, 0xF64A, 0xF64C, 0xF64D, 0xF64B, 0xF647, 0xF642, +- 0xF63B, 0xF633, 0xF629, 0xF61F, 0xF613, 0xF607, 0xF5F9, 0xF5EC, +- 0xF5DE, 0xF5D0, 0xF5C2, 0xF5B3, 0xF5A6, 0xF598, 0xF58B, 0xF57F, +- 0xF574, 0xF569, 0xF560, 0xF558, 0xF552, 0xF54D, 0xF54A, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xC7DD, 0xC7C7, 0xC798, 0xC76A, 0xC75C, +- 0xC789, 0xC80E, 0xC906, 0xCA8D, 0xCCC1, 0xD220, 0xDAE1, 0xE3B8, +- 0xE957, 0xEA96, 0xE94F, 0xE6BA, 0xE411, 0xDFE4, 0xDB94, 0xD918, +- 0xD6C5, 0xD496, 0xD287, 0xD094, 0xCEB8, 0xCCF0, 0xCB0D, 0xC8F5, +- 0xC6BB, 0xC475, 0xC237, 0xC016, 0xBE28, 0xBC81, 0xBB37, 0xBA5D, +- 0xBA09, 0xBA50, 0xBAF9, 0xBBBA, 0xBC94, 0xBD84, 0xBE89, 0xBFA2, +- 0xC0CE, 0xC20A, 0xC357, 0xC4B1, 0xC619, 0xC78C, 0xC909, 0xCA8F, +- 0xCC1D, 0xCDB1, 0xCF4A, 0xD0E6, 0xD284, 0xD423, 0xD5C1, 0xD75D, +- 0xD8F5, 0xDA89, 0xDC17, 0xDD9D, 0xDF1B, 0xE08E, 0xE1F5, 0xE350, +- 0xE49C, 0xE5D9, 0xE704, 0xE81D, 0xE923, 0xEA13, 0xE9FB, 0xE85B, +- 0xE5DE, 0xE32F, 0xE0F9, 0xDFE7, 0xE005, 0xE0C5, 0xE1F2, 0xE355, +- 0xE4B7, 0xE5E1, 0xE69E, 0xE6B5, 0xE5F1, 0xE413, 0xE132, 0xDD96, +- 0xD989, 0xD553, 0xD13D, 0xCD91, 0xCA97, 0xC898, 0xC7DD, 0x054B, +- 0x0588, 0x0615, 0x06BA, 0x073B, 0x075F, 0x06EB, 0x05A5, 0x0352, +- 0xFFB8, 0xF621, 0xE640, 0xD678, 0xCD2E, 0xCBD3, 0xCF14, 0xD630, +- 0xE067, 0xFAF3, 0x1244, 0x15D6, 0x16DD, 0x160A, 0x140F, 0x119A, +- 0x0F5D, 0x0E08, 0x0D59, 0x0C9C, 0x0BD5, 0x0B07, 0x0A37, 0x0969, +- 0x08A0, 0x07E2, 0x0731, 0x0693, 0x060A, 0x059C, 0x054B, 0x0511, +- 0x04E2, 0x04BC, 0x04A0, 0x048D, 0x0481, 0x047B, 0x047C, 0x0483, +- 0x048D, 0x049C, 0x04AD, 0x04C0, 0x04D5, 0x04EA, 0x04FF, 0x0513, +- 0x0525, 0x0535, 0x0541, 0x0549, 0x054B, 0x05DD, 0x071C, 0x085C, +- 0x08ED, 0x0821, 0x054B, 0x0082, 0xFA82, 0xF38F, 0xEBF4, 0xE3F6, +- 0xDBDE, 0xD3F2, 0xCC7A, 0xC5BE, 0xC005, 0xBB96, 0xB8B9, 0xB7B5, +- 0xB854, 0xBA1B, 0xBCE6, 0xC093, 0xC4FF, 0xCA08, 0xCF8B, 0xD564, +- 0xDB71, 0xE190, 0xE79D, 0xED76, 0xF2F9, 0xF802, 0xFC6E, 0x001A, +- 0x02E5, 0x04AC, 0x054B, 0x2BD6, 0x2BD1, 0x2BC2, 0x2BAA, 0x2B89, +- 0x2B62, 0x2B33, 0x2AFF, 0x2AC5, 0x2A87, 0x29DF, 0x28DC, 0x2834, +- 0x289B, 0x2B11, 0x2EF2, 0x3276, 0x33D8, 0x2DBD, 0x26F4, 0x25A0, +- 0x24D6, 0x247A, 0x246F, 0x249C, 0x24E4, 0x252B, 0x257A, 0x25E5, +- 0x2667, 0x26FB, 0x279B, 0x2843, 0x28EB, 0x2991, 0x2A2D, 0x2ABA, +- 0x2B34, 0x2B94, 0x2BD6, 0x2C03, 0x2C27, 0x2C43, 0x2C59, 0x2C68, +- 0x2C71, 0x2C75, 0x2C74, 0x2C6F, 0x2C67, 0x2C5C, 0x2C4F, 0x2C40, +- 0x2C31, 0x2C20, 0x2C10, 0x2C01, 0x2BF3, 0x2BE7, 0x2BDE, 0x2BD8, +- 0x2BD6, 0x2BD0, 0x2BC2, 0x2BB3, 0x2BAD, 0x2BB6, 0x2BD6, 0x2C0D, +- 0x2C51, 0x2CA1, 0x2CF7, 0x2D52, 0x2DAF, 0x2E09, 0x2E5E, 0x2EAB, +- 0x2EEC, 0x2F1F, 0x2F40, 0x2F4B, 0x2F44, 0x2F30, 0x2F10, 0x2EE6, +- 0x2EB4, 0x2E7A, 0x2E3B, 0x2DF9, 0x2DB4, 0x2D6E, 0x2D29, 0x2CE6, +- 0x2CA7, 0x2C6E, 0x2C3B, 0x2C11, 0x2BF2, 0x2BDD, 0x2BD6, 0xCCF6, +- 0xCC30, 0xC9F7, 0xC671, 0xC1C3, 0xBC14, 0xB589, 0xAE48, 0xA677, +- 0x9E3B, 0x9093, 0x7D00, 0x6A73, 0x5FD8, 0x5F88, 0x65A7, 0x6FCE, +- 0x7B96, 0x9226, 0xA6A2, 0xAD79, 0xB2D4, 0xB6F6, 0xBA25, 0xBCA3, +- 0xBEB4, 0xC09D, 0xC26E, 0xC40D, 0xC57F, 0xC6C6, 0xC7E6, 0xC8E2, +- 0xC9BE, 0xCA7C, 0xCB21, 0xCBAF, 0xCC2B, 0xCC96, 0xCCF6, 0xCD48, +- 0xCD8B, 0xCDC0, 0xCDE8, 0xCE03, 0xCE14, 0xCE1C, 0xCE1A, 0xCE12, +- 0xCE03, 0xCDEE, 0xCDD6, 0xCDBA, 0xCD9D, 0xCD7F, 0xCD61, 0xCD45, +- 0xCD2C, 0xCD16, 0xCD05, 0xCCFA, 0xCCF6, 0xCDD6, 0xCFC3, 0xD1B0, +- 0xD290, 0xD156, 0xCCF6, 0xC593, 0xBC4D, 0xB195, 0xA5D6, 0x9981, +- 0x8D02, 0x80C9, 0x753F, 0x6ADA, 0x6205, 0x5B2D, 0x56C1, 0x552F, +- 0x5625, 0x58E3, 0x5D33, 0x62E0, 0x69B4, 0x7179, 0x79FA, 0x8304, +- 0x8C5B, 0x95CD, 0x9F25, 0xA82C, 0xB0AC, 0xB872, 0xBF45, 0xC4F2, +- 0xC942, 0xCC00, 0xCCF6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, +- 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +- 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, +- 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, +- 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xC9D8, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, +- 0xC9DC, 0xC9DD, 0xC9DE, 0xC9DF, 0xC9DF, 0xC9DF, 0xC9E0, 0xC9E0, +- 0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E6, 0xC9E7, 0xC9E9, 0xC9EA, +- 0xC9EC, 0xC9EE, 0xC9EF, 0xC9F0, 0xC9F1, 0xC9F2, 0xC9F3, 0xC9F3, +- 0xC9F3, 0xC9F3, 0xC9F2, 0xC9F1, 0xC9EF, 0xC9ED, 0xC9EA, 0xC9E6, +- 0xC9E2, 0xC9DE, 0xC9D8, 0xC9D2, 0xC9CB, 0xC9C3, 0xC9BB, 0xC9B2, +- 0xC9A9, 0xC99F, 0xC995, 0xC98A, 0xC97F, 0xC973, 0xC967, 0xC95B, +- 0xC94E, 0xC942, 0xC935, 0xC928, 0xC91B, 0xC90E, 0xC901, 0xC8F4, +- 0xC8E7, 0xC8DB, 0xC8CE, 0xC8C2, 0xC8B6, 0xC8AA, 0xC89F, 0xC894, +- 0xC889, 0xC87F, 0xC875, 0xC86C, 0xC863, 0xC85C, 0xC854, 0xC84E, +- 0xC848, 0xC843, 0xC83F, 0xC83B, 0xC839, 0xC837, 0xC837, 0xC83C, +- 0xC849, 0xC85D, 0xC878, 0xC898, 0xC8BB, 0xC8E1, 0xC907, 0xC92E, +- 0xC954, 0xC977, 0xC997, 0xC9B2, 0xC9C6, 0xC9D3, 0xC9D8, 0x1E4A, +- 0x1E4F, 0x1E5E, 0x1E74, 0x1E8F, 0x1EAC, 0x1ECA, 0x1EE5, 0x1EFB, +- 0x1F0A, 0x1F0F, 0x1F0E, 0x1F0C, 0x1F08, 0x1F02, 0x1EFC, 0x1EF4, +- 0x1EEB, 0x1EE1, 0x1ED7, 0x1ECC, 0x1EC0, 0x1EB5, 0x1EA9, 0x1E9D, +- 0x1E91, 0x1E86, 0x1E7B, 0x1E70, 0x1E67, 0x1E5E, 0x1E56, 0x1E4F, +- 0x1E49, 0x1E45, 0x1E42, 0x1E41, 0x1E42, 0x1E45, 0x1E4A, 0x1E50, +- 0x1E58, 0x1E61, 0x1E6C, 0x1E77, 0x1E84, 0x1E91, 0x1E9F, 0x1EAF, +- 0x1EBF, 0x1ED0, 0x1EE1, 0x1EF3, 0x1F05, 0x1F18, 0x1F2C, 0x1F3F, +- 0x1F53, 0x1F67, 0x1F7B, 0x1F8F, 0x1FA3, 0x1FB7, 0x1FCA, 0x1FDD, +- 0x1FF0, 0x2003, 0x2015, 0x2027, 0x2037, 0x2048, 0x2057, 0x2066, +- 0x2073, 0x2080, 0x208C, 0x2096, 0x20A0, 0x20A8, 0x20AF, 0x20B4, +- 0x20B8, 0x20BB, 0x20BB, 0x20B4, 0x20A0, 0x2082, 0x205A, 0x202A, +- 0x1FF5, 0x1FBD, 0x1F82, 0x1F48, 0x1F10, 0x1EDB, 0x1EAB, 0x1E83, +- 0x1E64, 0x1E51, 0x1E4A, 0x1B09, 0x1B06, 0x1AFF, 0x1AF4, 0x1AE5, +- 0x1AD4, 0x1AC1, 0x1AAD, 0x1A99, 0x1A86, 0x1A73, 0x1A46, 0x1A4C, +- 0x1A52, 0x1A58, 0x1A5F, 0x1A67, 0x1A6E, 0x1A76, 0x1A7F, 0x1A87, +- 0x1A90, 0x1A98, 0x1AA1, 0x1AAA, 0x1AB3, 0x1ABB, 0x1AC4, 0x1ACC, +- 0x1AD4, 0x1ADB, 0x1AE2, 0x1AE9, 0x1AF0, 0x1AF5, 0x1AFB, 0x1AFF, +- 0x1B03, 0x1B06, 0x1B09, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0E, +- 0x1B0F, 0x1B0E, 0x1B0E, 0x1B0D, 0x1B0C, 0x1B0B, 0x1B09, 0x1B07, +- 0x1B05, 0x1B03, 0x1B00, 0x1AFE, 0x1AFB, 0x1AF7, 0x1AF4, 0x1AF0, +- 0x1AED, 0x1AE9, 0x1AE5, 0x1AE0, 0x1ADC, 0x1AD8, 0x1AD3, 0x1ACE, +- 0x1AC9, 0x1AC5, 0x1AC0, 0x1AB8, 0x1AAD, 0x1A9E, 0x1A8E, 0x1A7C, +- 0x1A6A, 0x1A58, 0x1A49, 0x1A3B, 0x1A31, 0x1A2C, 0x1A2B, 0x1A30, +- 0x1A39, 0x1A45, 0x1A54, 0x1A65, 0x1A77, 0x1A8B, 0x1A9F, 0x1AB3, +- 0x1AC6, 0x1AD8, 0x1AE8, 0x1AF6, 0x1B00, 0x1B06, 0x1B09, 0x1144, +- 0x1149, 0x1155, 0x1168, 0x1180, 0x119C, 0x11BB, 0x11DC, 0x11FD, +- 0x121D, 0x123B, 0x1282, 0x1279, 0x126F, 0x1264, 0x1259, 0x124D, +- 0x1240, 0x1233, 0x1225, 0x1218, 0x120A, 0x11FB, 0x11ED, 0x11DF, +- 0x11D1, 0x11C3, 0x11B5, 0x11A8, 0x119B, 0x118F, 0x1183, 0x1178, +- 0x116D, 0x1164, 0x115B, 0x1154, 0x114E, 0x1148, 0x1144, 0x1141, +- 0x113F, 0x113D, 0x113C, 0x113B, 0x113B, 0x113B, 0x113C, 0x113D, +- 0x113F, 0x1141, 0x1144, 0x1147, 0x114A, 0x114E, 0x1152, 0x1157, +- 0x115C, 0x1161, 0x1166, 0x116C, 0x1172, 0x1179, 0x117F, 0x1186, +- 0x118D, 0x1195, 0x119C, 0x11A4, 0x11AC, 0x11B4, 0x11BC, 0x11C8, +- 0x11DA, 0x11F2, 0x120D, 0x1229, 0x1247, 0x1263, 0x127D, 0x1293, +- 0x12A3, 0x12AC, 0x12AC, 0x12A5, 0x1296, 0x1283, 0x126B, 0x124F, +- 0x1230, 0x1210, 0x11F0, 0x11CF, 0x11B0, 0x1193, 0x1179, 0x1164, +- 0x1153, 0x1148, 0x1144, 0xAC44, 0xAC3E, 0xAC2C, 0xAC12, 0xABEF, +- 0xABC7, 0xAB9A, 0xAB6B, 0xAB3C, 0xAB0D, 0xAAE2, 0xAA7B, 0xAA88, +- 0xAA96, 0xAAA5, 0xAAB6, 0xAAC7, 0xAAD9, 0xAAEC, 0xAAFF, 0xAB13, +- 0xAB28, 0xAB3C, 0xAB51, 0xAB65, 0xAB79, 0xAB8E, 0xABA1, 0xABB4, +- 0xABC7, 0xABD9, 0xABEA, 0xABFA, 0xAC09, 0xAC16, 0xAC23, 0xAC2D, +- 0xAC37, 0xAC3E, 0xAC44, 0xAC48, 0xAC4C, 0xAC4E, 0xAC50, 0xAC51, +- 0xAC52, 0xAC51, 0xAC50, 0xAC4E, 0xAC4C, 0xAC49, 0xAC45, 0xAC41, +- 0xAC3C, 0xAC36, 0xAC30, 0xAC2A, 0xAC23, 0xAC1B, 0xAC13, 0xAC0B, +- 0xAC02, 0xABF9, 0xABEF, 0xABE5, 0xABDB, 0xABD0, 0xABC5, 0xABBA, +- 0xABAF, 0xABA4, 0xAB98, 0xAB87, 0xAB6C, 0xAB4A, 0xAB23, 0xAAFA, +- 0xAACF, 0xAAA6, 0xAA81, 0xAA62, 0xAA4A, 0xAA3D, 0xAA3C, 0xAA48, +- 0xAA5C, 0xAA78, 0xAA9B, 0xAAC3, 0xAAEF, 0xAB1D, 0xAB4C, 0xAB7B, +- 0xABA8, 0xABD2, 0xABF7, 0xAC17, 0xAC2F, 0xAC3E, 0xAC44, 0x0000, +- 0xFFF2, 0xFFCB, 0xFF90, 0xFF48, 0xFEF7, 0xFEA2, 0xFE50, 0xFE07, +- 0xFDCA, 0xFDA0, 0xFD8F, 0xFDC4, 0xFE4A, 0xFEEE, 0xFF7E, 0xFFC8, +- 0xFFDD, 0xFFEE, 0xFFFD, 0x0008, 0x0011, 0x0018, 0x001D, 0x0020, +- 0x0021, 0x0021, 0x0020, 0x001D, 0x001A, 0x0017, 0x0013, 0x000E, +- 0x000A, 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0003, 0x0004, 0x0006, 0x0007, 0x0008, 0x000A, 0x000B, 0x000C, +- 0x000D, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, +- 0x0016, 0x0017, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, +- 0x001D, 0x001E, 0x001F, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, +- 0x0025, 0x0026, 0x0027, 0x0028, 0x0028, 0x0029, 0x0029, 0x002A, +- 0x0029, 0x0029, 0x0028, 0x0027, 0x0025, 0x0022, 0x001F, 0x001C, +- 0x0019, 0x0015, 0x0012, 0x000E, 0x000B, 0x0008, 0x0005, 0x0003, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0000, 0xFFFD, +- 0xFFF8, 0xFFF1, 0xFFEC, 0xFFEA, 0xFFEA, 0xFFEA, 0xFFEB, 0xFFEC, +- 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF5, +- 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFE, 0xFFFE, +- 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, +- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBF40, +- 0xBF4F, 0xBF79, 0xBFB8, 0xC007, 0xC060, 0xC0BE, 0xC11B, 0xC172, +- 0xC1BD, 0xC1F7, 0xC21A, 0xC206, 0xC1B3, 0xC144, 0xC0DE, 0xC0A3, +- 0xC089, 0xC070, 0xC058, 0xC041, 0xC02B, 0xC016, 0xC001, 0xBFEE, +- 0xBFDB, 0xBFCA, 0xBFB9, 0xBFA9, 0xBF9B, 0xBF8D, 0xBF80, 0xBF75, +- 0xBF6A, 0xBF60, 0xBF58, 0xBF50, 0xBF4A, 0xBF45, 0xBF40, 0xBF3D, +- 0xBF3A, 0xBF38, 0xBF37, 0xBF36, 0xBF36, 0xBF37, 0xBF38, 0xBF3A, +- 0xBF3C, 0xBF3F, 0xBF43, 0xBF47, 0xBF4C, 0xBF51, 0xBF57, 0xBF5D, +- 0xBF64, 0xBF6C, 0xBF74, 0xBF7C, 0xBF85, 0xBF8F, 0xBF99, 0xBFA4, +- 0xBFAF, 0xBFBA, 0xBFC6, 0xBFD3, 0xBFE0, 0xBFF2, 0xC00C, 0xC02C, +- 0xC052, 0xC07B, 0xC0A6, 0xC0D2, 0xC0FC, 0xC123, 0xC145, 0xC162, +- 0xC177, 0xC182, 0xC183, 0xC178, 0xC162, 0xC143, 0xC11D, 0xC0F0, +- 0xC0BF, 0xC08C, 0xC057, 0xC022, 0xBFF0, 0xBFC1, 0xBF97, 0xBF73, +- 0xBF58, 0xBF46, 0xBF40, 0x2537, 0x252D, 0x2512, 0x24EB, 0x24B9, +- 0x2482, 0x244A, 0x2413, 0x23E2, 0x23BA, 0x239F, 0x2395, 0x2397, +- 0x239C, 0x23A3, 0x23AD, 0x23B9, 0x23C8, 0x23D8, 0x23EA, 0x23FD, +- 0x2412, 0x2427, 0x243D, 0x2453, 0x246A, 0x2480, 0x2497, 0x24AC, +- 0x24C1, 0x24D6, 0x24E8, 0x24FA, 0x2509, 0x2517, 0x2523, 0x252C, +- 0x2532, 0x2536, 0x2537, 0x2535, 0x2532, 0x252D, 0x2528, 0x2521, +- 0x2519, 0x2510, 0x2506, 0x24FB, 0x24EF, 0x24E3, 0x24D6, 0x24C8, +- 0x24B9, 0x24AA, 0x249B, 0x248B, 0x247B, 0x246B, 0x245B, 0x244A, +- 0x2439, 0x2429, 0x2418, 0x2408, 0x23F8, 0x23E8, 0x23D9, 0x23CA, +- 0x23BB, 0x23AD, 0x23A0, 0x2393, 0x2387, 0x237C, 0x2372, 0x2369, +- 0x2360, 0x2359, 0x2353, 0x234F, 0x234B, 0x2349, 0x2348, 0x234E, +- 0x235D, 0x2376, 0x2395, 0x23BB, 0x23E5, 0x2411, 0x243F, 0x246E, +- 0x249A, 0x24C4, 0x24E9, 0x2509, 0x2521, 0x2531, 0x2537, 0xD64A, +- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x0000, 0xFF82, 0xFE28, 0xFC20, 0xF999, 0xF6C3, +- 0xF3CD, 0xF0E6, 0xEE3E, 0xEC02, 0xE987, 0xE6E6, 0xE576, 0xE68F, +- 0xEA93, 0xF065, 0xF725, 0xFDF2, 0x03EA, 0x082F, 0x0A52, 0x0AE1, +- 0x0A71, 0x0996, 0x08E6, 0x0878, 0x07FF, 0x077D, 0x06F3, 0x0661, +- 0x05CA, 0x052D, 0x048B, 0x03E7, 0x0340, 0x0298, 0x01F0, 0x0148, +- 0x00A2, 0x0000, 0xFF2F, 0xFE27, 0xFD2A, 0xFC77, 0xFC4F, 0xFD02, +- 0xFE66, 0x0001, 0x015C, 0x01FF, 0x019D, 0x0086, 0xFF2E, 0xFE05, +- 0xFD7F, 0xFDBB, 0xFE6F, 0xFF6F, 0x0093, 0x01B1, 0x029F, 0x0333, +- 0x0343, 0x02A4, 0x012E, 0xFDE0, 0xF86F, 0xF1C1, 0xEABA, 0xE440, +- 0xDF38, 0xDC87, 0xDC8D, 0xDE9E, 0xE20D, 0xE630, 0xEA5A, 0xEDDF, +- 0xF014, 0xF0F2, 0xF113, 0xF0B3, 0xF011, 0xEF6B, 0xEF00, 0xEF0E, +- 0xEF78, 0xEFF7, 0xF08C, 0xF138, 0xF1FC, 0xF2D8, 0xF3CD, 0xF4DB, +- 0xF604, 0xF7D4, 0xFA67, 0xFD11, 0xFF28, 0x0000, 0x0000, 0x001B, +- 0x0067, 0x00D7, 0x0162, 0x01FB, 0x0297, 0x032C, 0x03AF, 0x0414, +- 0x0461, 0x0491, 0x0488, 0x042B, 0x0375, 0x0285, 0x0173, 0x0058, +- 0xFF50, 0xFE70, 0xFDAB, 0xFCEF, 0xFC53, 0xFBED, 0xFBD3, 0xFBEB, +- 0xFC0B, 0xFC31, 0xFC5F, 0xFC94, 0xFCD0, 0xFD13, 0xFD5C, 0xFDAB, +- 0xFE00, 0xFE5C, 0xFEBD, 0xFF23, 0xFF8F, 0x0000, 0x00C8, 0x0200, +- 0x0350, 0x0462, 0x04DE, 0x047F, 0x037E, 0x0245, 0x013C, 0x00CC, +- 0x013A, 0x023E, 0x0374, 0x0475, 0x04DD, 0x04C5, 0x048C, 0x0437, +- 0x03CB, 0x034D, 0x02C1, 0x022B, 0x0192, 0x00F9, 0x0064, 0xFFB3, +- 0xFED0, 0xFDD7, 0xFCE4, 0xFC14, 0xFB81, 0xFB47, 0xFB76, 0xFBFC, +- 0xFCBE, 0xFDA4, 0xFE94, 0xFF75, 0x002D, 0x00D5, 0x018A, 0x023E, +- 0x02E2, 0x0366, 0x03BB, 0x03D3, 0x03AA, 0x034F, 0x02CE, 0x0235, +- 0x018E, 0x00E8, 0x004E, 0xFFCD, 0xFF70, 0xFF52, 0xFF71, 0xFFAC, +- 0xFFE6, 0x0000, 0xFC62, 0xFC99, 0xFD2E, 0xFE0A, 0xFF16, 0x003A, +- 0x015F, 0x026D, 0x034E, 0x03E9, 0x044D, 0x045B, 0x03BE, 0x021D, +- 0xFF22, 0xFB1A, 0xF6AD, 0xF27D, 0xEF31, 0xED6E, 0xEE10, 0xF0C0, +- 0xF454, 0xF7A2, 0xF97D, 0xFA2C, 0xFABA, 0xFB2B, 0xFB83, 0xFBC4, +- 0xFBF2, 0xFC11, 0xFC24, 0xFC2D, 0xFC31, 0xFC32, 0xFC34, 0xFC3B, +- 0xFC49, 0xFC62, 0xFC6D, 0xFC58, 0xFC33, 0xFC0C, 0xFBF1, 0xFBE3, +- 0xFBD8, 0xFBD0, 0xFBC7, 0xFBBD, 0xFBAF, 0xFB9E, 0xFB8E, 0xFB82, +- 0xFB7D, 0xFB8A, 0xFBAA, 0xFBD5, 0xFC04, 0xFC30, 0xFC50, 0xFC5D, +- 0xFC4F, 0xFC1E, 0xFBC4, 0xFAD7, 0xF938, 0xF746, 0xF564, 0xF3F3, +- 0xF353, 0xF3E6, 0xF5FF, 0xF962, 0xFD9D, 0x023B, 0x06CD, 0x0ADE, +- 0x0DFB, 0x1068, 0x12A1, 0x1488, 0x1602, 0x16F2, 0x173B, 0x16C0, +- 0x156F, 0x1365, 0x10CE, 0x0DD9, 0x0AB1, 0x0784, 0x047E, 0x01CC, +- 0xFF9B, 0xFE11, 0xFD1D, 0xFC9D, 0xFC6A, 0xFC62, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0xFFEA, 0xFFBC, 0xFF9A, 0xFFA7, 0x0005, 0x00FA, 0x0270, 0x03FD, +- 0x0539, 0x05B9, 0x05B0, 0x0596, 0x056D, 0x0536, 0x04F4, 0x04A8, +- 0x0453, 0x03F7, 0x0397, 0x0333, 0x02CD, 0x0267, 0x0203, 0x01A2, +- 0x0146, 0x00F1, 0x00A4, 0x0061, 0x002A, 0x0000, 0xFFE0, 0xFFC4, +- 0xFFAC, 0xFF99, 0xFF89, 0xFF7C, 0xFF73, 0xFF6C, 0xFF68, 0xFF66, +- 0xFF66, 0xFF68, 0xFF6C, 0xFF70, 0xFF75, 0xFF7B, 0xFF81, 0xFF87, +- 0xFF8D, 0xFF92, 0xFF96, 0xFF99, 0xFF9B, 0xFF9A, 0xFF98, 0xFF95, +- 0xFF94, 0xFF93, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, +- 0xFF91, 0xFF90, 0xFF8F, 0xFF91, 0xFF94, 0xFF98, 0xFF9D, 0xFFA3, +- 0xFFA9, 0xFFAF, 0xFFB6, 0xFFBD, 0xFFC3, 0xFFCA, 0xFFD1, 0xFFD8, +- 0xFFDF, 0xFFE5, 0xFFEB, 0xFFF0, 0xFFF5, 0xFFF9, 0xFFFC, 0xFFFE, +- 0x0000, 0x0000, 0x0000, 0xFFEF, 0xFFC3, 0xFF89, 0xFF50, 0xFF24, +- 0xFF12, 0xFF28, 0xFF73, 0x0000, 0x0168, 0x03C7, 0x066C, 0x08A6, +- 0x09C7, 0x0967, 0x07FE, 0x0622, 0x046D, 0x0376, 0x0316, 0x02BF, +- 0x026E, 0x0225, 0x01E3, 0x01A6, 0x0170, 0x013F, 0x0113, 0x00EC, +- 0x00C9, 0x00AA, 0x008D, 0x0074, 0x005D, 0x0048, 0x0035, 0x0022, +- 0x0011, 0x0000, 0xFFF1, 0xFFE4, 0xFFDB, 0xFFD5, 0xFFD1, 0xFFD0, +- 0xFFD1, 0xFFD4, 0xFFD8, 0xFFDF, 0xFFE6, 0xFFEF, 0xFFF9, 0x0002, +- 0x000D, 0x0019, 0x0024, 0x002F, 0x003A, 0x0044, 0x004E, 0x0056, +- 0x005E, 0x0063, 0x0068, 0x0054, 0x001E, 0xFFDC, 0xFF9E, 0xFF7B, +- 0xFF84, 0xFFCF, 0x006E, 0x01D7, 0x041C, 0x06BE, 0x093D, 0x0B18, +- 0x0BD0, 0x0BB8, 0x0B7C, 0x0B1F, 0x0AA6, 0x0A13, 0x096C, 0x08B3, +- 0x07ED, 0x071E, 0x0648, 0x0572, 0x049D, 0x03CE, 0x0309, 0x0252, +- 0x01AD, 0x011C, 0x00A6, 0x004C, 0x0013, 0x0000, 0x0884, 0x0847, +- 0x07A3, 0x06B4, 0x0597, 0x0468, 0x0343, 0x0245, 0x018A, 0x012E, +- 0x018E, 0x02B0, 0x042D, 0x059E, 0x069D, 0x071D, 0x0762, 0x0780, +- 0x078B, 0x0797, 0x07AA, 0x07BD, 0x07CE, 0x07DE, 0x07EE, 0x07FD, +- 0x080B, 0x0818, 0x0825, 0x0831, 0x083C, 0x0846, 0x0850, 0x0859, +- 0x0862, 0x086A, 0x0871, 0x0878, 0x087E, 0x0884, 0x0889, 0x088D, +- 0x0890, 0x0893, 0x0895, 0x0897, 0x0898, 0x0898, 0x0899, 0x0898, +- 0x0898, 0x0897, 0x0896, 0x0895, 0x0893, 0x0892, 0x0890, 0x088F, +- 0x088D, 0x088C, 0x088B, 0x088A, 0x0889, 0x0889, 0x0889, 0x0889, +- 0x088A, 0x088B, 0x088B, 0x088C, 0x088C, 0x088B, 0x0889, 0x0885, +- 0x087F, 0x0879, 0x0872, 0x086D, 0x086B, 0x086B, 0x086B, 0x086C, +- 0x086D, 0x086E, 0x086F, 0x0871, 0x0872, 0x0874, 0x0876, 0x0878, +- 0x0879, 0x087B, 0x087D, 0x087E, 0x0880, 0x0881, 0x0882, 0x0883, +- 0x0883, 0x0884, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, +- 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0009, 0x0009, 0x0009, +- 0x0009, 0x0009, 0x0008, 0x0008, 0x0008, 0x0008, 0x0007, 0x0007, +- 0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, +- 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, +- 0x0009, 0x0014, 0x0021, 0x0031, 0x0041, 0x0051, 0x0060, 0x006D, +- 0x0077, 0x007E, 0x007F, 0x007F, 0x007E, 0x007C, 0x007A, 0x0077, +- 0x0074, 0x0070, 0x006B, 0x0067, 0x0062, 0x005C, 0x0057, 0x0051, +- 0x004B, 0x0045, 0x003F, 0x0038, 0x0032, 0x002C, 0x0025, 0x001F, +- 0x0019, 0x0014, 0x000E, 0x0009, 0x0004, 0x0000, 0xFFFC, 0xFFF7, +- 0xFFF2, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDB, 0xFFD5, 0xFFCF, 0xFFC9, +- 0xFFC3, 0xFFBD, 0xFFB7, 0xFFB1, 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, +- 0xFF96, 0xFF92, 0xFF8E, 0xFF8A, 0xFF87, 0xFF85, 0xFF83, 0xFF81, +- 0xFF80, 0xFF80, 0xFF80, 0xFF81, 0xFF83, 0xFF88, 0xFF92, 0xFFA0, +- 0xFFB2, 0xFFC5, 0xFFDB, 0xFFF2, 0x0007, 0x001D, 0x0032, 0x0044, +- 0x0054, 0x005F, 0x0066, 0x0069, 0x0068, 0x0064, 0x005D, 0x0055, +- 0x004B, 0x0041, 0x0035, 0x002A, 0x001F, 0x0015, 0x000C, 0x0005, +- 0x0001, 0x0000, 0x40A1, 0x40A4, 0x40AC, 0x40B8, 0x40C7, 0x40D7, +- 0x40E8, 0x40F8, 0x4107, 0x4112, 0x4118, 0x411A, 0x4119, 0x4118, +- 0x4116, 0x4114, 0x4111, 0x410D, 0x4109, 0x4105, 0x4101, 0x40FC, +- 0x40F6, 0x40F1, 0x40EC, 0x40E6, 0x40E0, 0x40DA, 0x40D4, 0x40CF, +- 0x40C9, 0x40C3, 0x40BE, 0x40B9, 0x40B4, 0x40AF, 0x40AB, 0x40A7, +- 0x40A4, 0x40A1, 0x409E, 0x409C, 0x409A, 0x4098, 0x4096, 0x4094, +- 0x4092, 0x4090, 0x408F, 0x408D, 0x408C, 0x408A, 0x4089, 0x4088, +- 0x4087, 0x4086, 0x4085, 0x4084, 0x4084, 0x4083, 0x4082, 0x4082, +- 0x4081, 0x4080, 0x4080, 0x407F, 0x407F, 0x407E, 0x407E, 0x407D, +- 0x407D, 0x407D, 0x407D, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, +- 0x4083, 0x4084, 0x4086, 0x4088, 0x4089, 0x408A, 0x408C, 0x408D, +- 0x408F, 0x4091, 0x4093, 0x4094, 0x4096, 0x4098, 0x409A, 0x409C, +- 0x409D, 0x409E, 0x40A0, 0x40A0, 0x40A1, 0x40A1, ++0x0000, 0x0001, 0x0003, 0x0006, 0x000A, 0x000F, 0x0015, 0x001A, 0x0020, ++ 0x0025, 0x002A, 0x002E, 0x0032, 0x0034, 0x0035, 0x0035, 0x0035, 0x0035, ++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0034, ++ 0x0033, 0x0030, 0x002D, 0x002A, 0x0026, 0x0021, 0x001D, 0x0018, 0x0013, ++ 0x000F, 0x000B, 0x0007, 0x0004, 0x0002, 0x0001, 0x0000, 0x00AA, 0x00A9, ++ 0x00A6, 0x00A1, 0x009C, 0x0095, 0x008D, 0x0086, 0x007E, 0x0076, 0x0070, ++ 0x006A, 0x0065, 0x0062, 0x0061, 0x0062, 0x0064, 0x0066, 0x0069, 0x006D, ++ 0x0070, 0x0073, 0x0076, 0x0078, 0x0078, 0x0078, 0x0076, 0x0073, 0x0070, ++ 0x006D, 0x0069, 0x0066, 0x0064, 0x0062, 0x0061, 0x0062, 0x0064, 0x0068, ++ 0x006D, 0x0073, 0x007A, 0x0081, 0x0088, 0x0090, 0x0097, 0x009F, 0x00A5, ++ 0x00AB, 0x00B0, 0x00B4, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, ++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B1, ++ 0x00B0, 0x00AF, 0x00AD, 0x00AC, 0x00AB, 0x00AB, 0x00AA, 0x0000, 0x0000, ++ 0x3FFF, 0x0000, 0x0000, 0x0000, 0x40A1, 0x0000, 0xFFD3, 0xFF59, 0xFE9D, ++ 0xFDAC, 0xFC94, 0xFB62, 0xFA23, 0xF8E3, 0xF7B1, 0xF699, 0xF5A9, 0xF4EC, ++ 0xF472, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, ++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, ++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF43C, 0xF421, 0xF3F5, 0xF3BD, 0xF379, ++ 0xF32D, 0xF2DB, 0xF286, 0xF22F, 0xF1DA, 0xF188, 0xF13C, 0xF0F9, 0xF0C0, ++ 0xF095, 0xF079, 0xF06F, 0xF0A3, 0xF132, 0xF208, 0xF310, 0xF437, 0xF567, ++ 0xF68E, 0xF796, 0xF86B, 0xF8FA, 0xF92F, 0xF8FA, 0xF86B, 0xF796, 0xF68E, ++ 0xF567, 0xF437, 0xF310, 0xF208, 0xF132, 0xF0A3, 0xF06F, 0xF08F, 0xF0E8, ++ 0xF173, 0xF229, 0xF301, 0xF3F3, 0xF4F9, 0xF609, 0xF71D, 0xF82C, 0xF92F, ++ 0xFA1F, 0xFAFB, 0xFBC4, 0xFC7A, 0xFD1E, 0xFDB1, 0xFE31, 0xFEA1, 0xFF01, ++ 0xFF51, 0xFF91, 0xFFC2, 0xFFE4, 0xFFF8, 0x0000, 0xFFFF, 0x0006, 0x0018, ++ 0x0033, 0x0055, 0x007D, 0x00A9, 0x00D6, 0x0104, 0x0130, 0x0158, 0x017A, ++ 0x0195, 0x01A6, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, ++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, ++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01A5, 0x0190, 0x016E, 0x0142, ++ 0x010E, 0x00D3, 0x0094, 0x0052, 0x000E, 0xFFCB, 0xFF8C, 0xFF51, 0xFF1D, ++ 0xFEF1, 0xFECF, 0xFEBA, 0xFEB2, 0xFEB7, 0xFEC2, 0xFED4, 0xFEEA, 0xFF02, ++ 0xFF1B, 0xFF33, 0xFF49, 0xFF5A, 0xFF66, 0xFF6B, 0xFF66, 0xFF5A, 0xFF49, ++ 0xFF33, 0xFF1B, 0xFF02, 0xFEEA, 0xFED4, 0xFEC2, 0xFEB7, 0xFEB2, 0xFEB5, ++ 0xFEBC, 0xFEC8, 0xFED6, 0xFEE8, 0xFEFC, 0xFF12, 0xFF28, 0xFF3F, 0xFF55, ++ 0xFF6B, 0xFF7F, 0xFF91, 0xFFA2, 0xFFB1, 0xFFBF, 0xFFCC, 0xFFD7, 0xFFE0, ++ 0xFFE9, 0xFFF0, 0xFFF5, 0xFFFA, 0xFFFD, 0xFFFE, 0xFFFF, 0x0884, 0x08A3, ++ 0x08F9, 0x097D, 0x0A27, 0x0AEC, 0x0BC3, 0x0CA4, 0x0D85, 0x0E5C, 0x0F21, ++ 0x0FCA, 0x104F, 0x10A5, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, ++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, ++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x1090, 0x0FFD, 0x0F17, ++ 0x0DEB, 0x0C85, 0x0AF2, 0x093F, 0x0779, 0x05AB, 0x03E2, 0x022C, 0x0095, ++ 0xFF27, 0xFDF3, 0xFD03, 0xFC64, 0xFC23, 0xFC16, 0xFC0B, 0xFC03, 0xFBFC, ++ 0xFBF7, 0xFBF4, 0xFBF1, 0xFBF0, 0xFBEF, 0xFBEF, 0xFBEF, 0xFBF0, 0xFBF3, ++ 0xFBF8, 0xFBFE, 0xFC05, 0xFC0C, 0xFC13, 0xFC19, 0xFC1E, 0xFC22, 0xFC23, ++ 0xFC22, 0xFC1E, 0xFC19, 0xFC13, 0xFC0C, 0xFC05, 0xFBFE, 0xFBF8, 0xFBF3, ++ 0xFBF0, 0xFBEF, 0xFC18, 0xFC8B, 0xFD3E, 0xFE24, 0xFF32, 0x005D, 0x0199, ++ 0x02DB, 0x0416, 0x0541, 0x064F, 0x0735, 0x07E7, 0x085B, 0x0884, 0x0000, ++ 0xFF9C, 0xFE87, 0xFCDE, 0xFABE, 0xF844, 0xF590, 0xF2BE, 0xEFEC, 0xED37, ++ 0xEABE, 0xE89E, 0xE6F4, 0xE5DF, 0xE57C, 0xE58C, 0xE5B8, 0xE5F8, 0xE646, ++ 0xE69B, 0xE6EF, 0xE73D, 0xE77D, 0xE7A9, 0xE7B9, 0xE7A9, 0xE77D, 0xE73D, ++ 0xE6EF, 0xE69B, 0xE646, 0xE5F8, 0xE5B8, 0xE58C, 0xE57C, 0xE5D9, 0xE6DF, ++ 0xE878, 0xEA8E, 0xED0A, 0xEFD5, 0xF2D8, 0xF5FE, 0xF92E, 0xFC54, 0xFF57, ++ 0x0223, 0x049F, 0x06B5, 0x084E, 0x0954, 0x09B1, 0x0997, 0x0951, 0x08E9, ++ 0x0868, 0x07D8, 0x0744, 0x06B4, 0x0633, 0x05CB, 0x0585, 0x056C, 0x0585, ++ 0x05CB, 0x0633, 0x06B4, 0x0744, 0x07D8, 0x0868, 0x08E9, 0x0951, 0x0997, ++ 0x09B1, 0x09A3, 0x097D, 0x093F, 0x08EE, 0x088C, 0x081B, 0x079E, 0x0719, ++ 0x068D, 0x05FD, 0x056C, 0x04DC, 0x044F, 0x03C5, 0x0341, 0x02C2, 0x024B, ++ 0x01DB, 0x0174, 0x0118, 0x00C7, 0x0082, 0x004B, 0x0022, 0x0009, 0x0000, ++ 0xFFFF, 0x0033, 0x00C3, 0x01A0, 0x02BB, 0x0404, 0x056C, 0x06E3, 0x085A, ++ 0x09C2, 0x0B0B, 0x0C26, 0x0D03, 0x0D93, 0x0DC6, 0x0DA7, 0x0D53, 0x0CD7, ++ 0x0C40, 0x0B9C, 0x0AF8, 0x0A61, 0x09E5, 0x0991, 0x0972, 0x0991, 0x09E5, ++ 0x0A61, 0x0AF8, 0x0B9C, 0x0C40, 0x0CD7, 0x0D53, 0x0DA7, 0x0DC6, 0x0D95, ++ 0x0D08, 0x0C2C, 0x0B0E, 0x09B8, 0x0837, 0x0697, 0x04E4, 0x032A, 0x0175, ++ 0xFFD0, 0xFE49, 0xFCEC, 0xFBC3, 0xFADC, 0xFA41, 0xFA00, 0xF9F1, 0xF9E5, ++ 0xF9DB, 0xF9D3, 0xF9CD, 0xF9C9, 0xF9C6, 0xF9C5, 0xF9C4, 0xF9C3, 0xF9C3, ++ 0xF9C5, 0xF9C9, 0xF9CE, 0xF9D6, 0xF9DE, 0xF9E6, 0xF9EE, 0xF9F5, 0xF9FB, ++ 0xF9FF, 0xFA00, 0xF9FF, 0xF9FB, 0xF9F5, 0xF9EE, 0xF9E6, 0xF9DE, 0xF9D6, ++ 0xF9CE, 0xF9C9, 0xF9C5, 0xF9C3, 0xF9D8, 0xFA11, 0xFA69, 0xFADB, 0xFB61, ++ 0xFBF5, 0xFC91, 0xFD31, 0xFDCD, 0xFE61, 0xFEE7, 0xFF59, 0xFFB1, 0xFFEB, ++ 0xFFFF, 0xFC61, 0xFC5F, 0xFC5A, 0xFC50, 0xFC42, 0xFC30, 0xFC18, 0xFBFB, ++ 0xFBD9, 0xFBB0, 0xFB81, 0xFB4B, 0xFB0F, 0xFACA, 0xFA7F, 0xFA2C, 0xF9D4, ++ 0xF97A, 0xF922, 0xF8CF, 0xF884, 0xF844, 0xF812, 0xF7F2, 0xF7E6, 0xF7EF, ++ 0xF809, 0xF832, 0xF869, 0xF8AC, 0xF8FA, 0xF951, 0xF9B0, 0xFA15, 0xFA7F, ++ 0xFAEC, 0xFB5C, 0xFBCD, 0xFC3F, 0xFCB2, 0xFD23, 0xFD93, 0xFE00, 0xFE6A, ++ 0xFED0, 0xFF30, 0xFF8B, 0xFFE0, 0x002E, 0x0073, 0x00AE, 0x00E0, 0x0109, ++ 0x012A, 0x0145, 0x015A, 0x0169, 0x0174, 0x017C, 0x0180, 0x0183, 0x0184, ++ 0x0184, 0x0180, 0x0175, 0x0166, 0x0153, 0x013D, 0x0127, 0x0111, 0x00FE, ++ 0x00EE, 0x00E4, 0x00E0, 0x00E4, 0x00EE, 0x00FE, 0x0111, 0x0127, 0x013D, ++ 0x0153, 0x0166, 0x0175, 0x0180, 0x0184, 0x0173, 0x0144, 0x00FB, 0x009D, ++ 0x002F, 0xFFB4, 0xFF33, 0xFEB0, 0xFE2F, 0xFDB6, 0xFD47, 0xFCEA, 0xFCA1, ++ 0xFC72, 0xFC61, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFAD3, 0xFA05, 0xF8CA, ++ 0xF737, 0xF561, 0xF360, 0xF148, 0xEF31, 0xED30, 0xEB5A, 0xE9C7, 0xE88B, ++ 0xE7BE, 0xE775, 0xE7B8, 0xE870, 0xE97E, 0xEAC7, 0xEC2C, 0xED92, 0xEEDA, ++ 0xEFE8, 0xF0A0, 0xF0E4, 0xF0A0, 0xEFE8, 0xEEDA, 0xED92, 0xEC2C, 0xEAC7, ++ 0xE97E, 0xE870, 0xE7B8, 0xE775, 0xE862, 0xEB06, 0xEF26, 0xF489, 0xFAF6, ++ 0x0236, 0x0A0D, 0x1243, 0x1AA0, 0x22E9, 0x2AE6, 0x325D, 0xB917, 0xBED9, ++ 0xC36A, 0xC693, 0xC818, 0xC8AB, 0xC924, 0xC984, 0xC9D0, 0xCA08, 0xCA30, ++ 0xCA4C, 0xCA5C, 0xCA64, 0xCA68, 0xCA68, 0xCA5A, 0xCA34, 0xC9FC, 0xC9B6, ++ 0xC968, 0xC918, 0xC8CA, 0xC884, 0xC84C, 0xC826, 0xC818, 0xC826, 0xC84C, ++ 0xC884, 0xC8CA, 0xC918, 0xC968, 0xC9B6, 0xC9FC, 0xCA34, 0xCA5A, 0xCA68, ++ 0xC965, 0xC68E, 0xC229, 0xBC7F, 0x35DA, 0x2E7F, 0x26B8, 0x1ECD, 0x1706, ++ 0x0FAC, 0x0906, 0x035C, 0xFEF6, 0xFC1F, 0xFB1C, 0xD2DB, 0xD2ED, 0xD320, ++ 0xD374, 0xD3E6, 0xD474, 0xD51D, 0xD5DE, 0xD6B5, 0xD7A2, 0xD8A1, 0xD9B0, ++ 0xDACF, 0xDBFB, 0xDD31, 0xDE70, 0xDFB0, 0xE0E9, 0xE213, 0xE325, 0xE417, ++ 0xE4E2, 0xE57D, 0xE5E0, 0xE603, 0xE5C4, 0xE518, 0xE41B, 0xE2E8, 0xE19A, ++ 0xE04C, 0xDF19, 0xDE1C, 0xDD71, 0xDD31, 0xDDE1, 0xDFD3, 0xE2DD, 0xE6D3, ++ 0xEB8B, 0xF0DA, 0xF694, 0xFC8E, 0x029F, 0x089A, 0x0E54, 0x13A2, 0x67A5, ++ 0x63AF, 0x60A5, 0x5EB3, 0x5E03, 0x5E1D, 0x5E62, 0x5ECA, 0x5F4A, 0x5FD9, ++ 0x606C, 0x60FB, 0x617B, 0x61E3, 0x6228, 0x6242, 0x6228, 0x61E3, 0x617B, ++ 0x60FB, 0x606C, 0x5FD9, 0x5F4A, 0x5ECA, 0x5E62, 0x5E1D, 0x5E03, 0x5E04, ++ 0x5E0A, 0x5E19, 0x5E38, 0x5E69, 0x5EB4, 0x5F1B, 0x5FA5, 0x6056, 0x6133, ++ 0x6242, 0x6438, 0x67A2, 0x6C44, 0x71E1, 0x07C2, 0x00E2, 0xF9BB, 0xF28B, ++ 0xEB8C, 0xE4FC, 0xDF16, 0xDA17, 0xD63A, 0xD3BD, 0xD2DB, 0xD4B3, 0xD4F3, ++ 0xD5A6, 0xD6B9, 0xD819, 0xD9B2, 0xDB71, 0xDD44, 0xDF17, 0xE0D6, 0xE270, ++ 0xE3CF, 0xE4E2, 0xE595, 0xE5D5, 0xE58A, 0xE4BE, 0xE390, 0xE223, 0xE095, ++ 0xDF07, 0xDD9A, 0xDC6D, 0xDBA0, 0xDB55, 0xDBA0, 0xDC6D, 0xDD9A, 0xDF07, ++ 0xE095, 0xE223, 0xE390, 0xE4BE, 0xE58A, 0xE5D5, 0xE4B3, 0xE17E, 0xDC7B, ++ 0xD5F3, 0xCE2B, 0xC56B, 0xBBF9, 0xB21D, 0xA81E, 0x9E42, 0x94D1, 0x8C11, ++ 0x0449, 0xFDC0, 0xF8BD, 0xF588, 0xF466, 0xF475, 0xF49F, 0xF4DD, 0xF52B, ++ 0xF581, 0xF5DA, 0xF630, 0xF67D, 0xF6BB, 0xF6E5, 0xF6F4, 0xF6E5, 0xF6BB, ++ 0xF67D, 0xF630, 0xF5DA, 0xF581, 0xF52B, 0xF4DD, 0xF49F, 0xF475, 0xF466, ++ 0xF466, 0xF46A, 0xF473, 0xF485, 0xF4A3, 0xF4D0, 0xF50F, 0xF562, 0xF5CC, ++ 0xF652, 0xF6F4, 0xF8C2, 0xFC8F, 0x020C, 0x08E7, 0x90CF, 0x9976, 0xA289, ++ 0xABB9, 0xB4B5, 0xBD2C, 0xC4CD, 0xCB49, 0xD04E, 0xD38D, 0xD4B3, 0xFFFF, ++ 0x0055, 0x0143, 0x02B1, 0x0484, 0x06A4, 0x08F7, 0x0B64, 0x0DD0, 0x1023, ++ 0x1243, 0x1417, 0x1584, 0x1672, 0x16C8, 0x16A8, 0x1654, 0x15D8, 0x1541, ++ 0x149D, 0x13F8, 0x1361, 0x12E5, 0x1291, 0x1272, 0x1291, 0x12E5, 0x1361, ++ 0x13F8, 0x149D, 0x1541, 0x15D8, 0x1654, 0x16A8, 0x16C8, 0x1645, 0x14D4, ++ 0x1294, 0x0FA5, 0x0C26, 0x0838, 0x03FA, 0xFF8B, 0xFB0D, 0xF69F, 0xF261, ++ 0xEE73, 0xEAF4, 0xE805, 0xE5C5, 0xE453, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, ++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE42D, 0xE530, 0xE6C0, 0xE8C3, 0xEB20, 0xEDBD, ++ 0xF080, 0xF350, 0xF614, 0xF8B1, 0xFB0E, 0xFD11, 0xFEA0, 0xFFA3, 0xFFFF, ++ 0xFFFF, 0x001C, 0x006B, 0x00E5, 0x0180, 0x0235, 0x02FA, 0x03C8, 0x0496, ++ 0x055C, 0x0611, 0x06AC, 0x0725, 0x0774, 0x0791, 0x077E, 0x074D, 0x0704, ++ 0x06AB, 0x064B, 0x05EB, 0x0592, 0x0549, 0x0518, 0x0506, 0x0518, 0x0549, ++ 0x0592, 0x05EB, 0x064B, 0x06AB, 0x0704, 0x074D, 0x077E, 0x0791, 0x077E, ++ 0x0749, 0x06F6, 0x068A, 0x060A, 0x057A, 0x04DE, 0x043B, 0x0396, 0x02F3, ++ 0x0258, 0x01C7, 0x0147, 0x00DB, 0x0088, 0x0053, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, ++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0040, 0x003D, 0x003A, 0x0035, 0x0030, ++ 0x002A, 0x0023, 0x001D, 0x0017, 0x0011, 0x000B, 0x0007, 0x0003, 0x0001, ++ 0xFFFF, 0xCA4E, 0xCA1A, 0xC987, 0xC8A5, 0xC784, 0xC634, 0xC4C5, 0xC346, ++ 0xC1C7, 0xC057, 0xBF07, 0xBDE7, 0xBD05, 0xBC72, 0xBC3D, 0xBC4D, 0xBC79, ++ 0xBCB9, 0xBD06, 0xBD5B, 0xBDAF, 0xBDFD, 0xBE3D, 0xBE68, 0xBE78, 0xBE68, ++ 0xBE3D, 0xBDFD, 0xBDAF, 0xBD5B, 0xBD06, 0xBCB9, 0xBC79, 0xBC4D, 0xBC3D, ++ 0xBCE2, 0xBEB5, 0xC18D, 0xC544, 0xC9AF, 0xCEA8, 0xD405, 0xD99F, 0xDF4D, ++ 0xE4E7, 0xEA45, 0xEF3D, 0xF3A9, 0xF75F, 0xFA38, 0xFC0B, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, ++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFC0B, 0xFA3C, 0xF772, 0xF3D9, ++ 0xEF9F, 0xEAF3, 0xE603, 0xE0FB, 0xDC0A, 0xD75E, 0xD324, 0xCF8B, 0xCCC1, ++ 0xCAF3, 0xCA4E, 0xFFFF, 0xFFF3, 0xFFD0, 0xFF9A, 0xFF56, 0xFF06, 0xFEAF, ++ 0xFE55, 0xFDFA, 0xFDA3, 0xFD53, 0xFD0F, 0xFCDA, 0xFCB7, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, ++ 0xFCAA, 0xFCB0, 0xFCBF, 0xFCD7, 0xFCF6, 0xFD1B, 0xFD45, 0xFD72, 0xFDA2, ++ 0xFDD1, 0xFE01, 0xFE2E, 0xFE58, 0xFE7D, 0xFE9C, 0xFEB4, 0xFEC3, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, ++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFECD, 0xFED8, 0xFEE9, ++ 0xFEFF, 0xFF19, 0xFF36, 0xFF54, 0xFF73, 0xFF92, 0xFFAF, 0xFFC9, 0xFFDF, ++ 0xFFF0, 0xFFFB, 0xFFFF, 0xF97B, 0xF93D, 0xF88F, 0xF784, 0xF62F, 0xF4A2, ++ 0xF2EF, 0xF12A, 0xEF65, 0xEDB3, 0xEC26, 0xEAD0, 0xE9C5, 0xE918, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, ++ 0xE8DA, 0xE8DA, 0xE916, 0xE9C1, 0xEACC, 0xEC29, 0xEDC7, 0xEF9A, 0xF191, ++ 0xF39F, 0xF5B4, 0xF7C2, 0xF9B9, 0xFB8C, 0xFD2B, 0xFE87, 0xFF92, 0x003E, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, ++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x0064, 0x0024, ++ 0xFFC0, 0xFF40, 0xFEAA, 0xFE03, 0xFD54, 0xFCA1, 0xFBF1, 0xFB4B, 0xFAB5, ++ 0xFA35, 0xF9D2, 0xF992, 0xF97B, 0xED8B, 0xEDA5, 0xEDEC, 0xEE5A, 0xEEE6, ++ 0xEF89, 0xF03B, 0xF0F6, 0xF1B0, 0xF262, 0xF305, 0xF392, 0xF3FF, 0xF447, ++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, ++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, ++ 0xF460, 0xF460, 0xF460, 0xF453, 0xF42E, 0xF3F3, 0xF3A8, 0xF34D, 0xF2E7, ++ 0xF27A, 0xF207, 0xF193, 0xF120, 0xF0B3, 0xF04D, 0xEFF3, 0xEFA7, 0xEF6C, ++ 0xEF47, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, ++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF34, ++ 0xEF25, 0xEF0D, 0xEEEE, 0xEECA, 0xEEA2, 0xEE78, 0xEE4D, 0xEE23, 0xEDFB, ++ 0xEDD7, 0xEDB8, 0xEDA0, 0xED91, 0xED8B, 0x0001, 0xFFEC, 0xFFB3, 0xFF5C, ++ 0xFEED, 0xFE6C, 0xFDDE, 0xFD4B, 0xFCB7, 0xFC2A, 0xFBA8, 0xFB39, 0xFAE2, ++ 0xFAAA, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, ++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, ++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFAA3, 0xFACB, 0xFB08, 0xFB58, 0xFBB7, ++ 0xFC22, 0xFC95, 0xFD0E, 0xFD88, 0xFE00, 0xFE74, 0xFEDF, 0xFF3E, 0xFF8E, ++ 0xFFCB, 0xFFF2, 0x0001, 0xFFFE, 0x0009, 0x0027, 0x0054, 0x008E, 0x00D1, ++ 0x011A, 0x0166, 0x01B3, 0x01FC, 0x023F, 0x0279, 0x02A6, 0x02C3, 0x02CE, ++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, ++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, ++ 0x02CE, 0x02CE, 0x02C7, 0x02B2, 0x0293, 0x0269, 0x0238, 0x0200, 0x01C5, ++ 0x0186, 0x0147, 0x0108, 0x00CC, 0x0095, 0x0064, 0x003A, 0x001B, 0x0006, ++ 0xFFFE, 0xC170, 0xC170, 0xC16E, 0xC16B, 0xC167, 0xC162, 0xC15E, 0xC158, ++ 0xC153, 0xC14F, 0xC14A, 0xC146, 0xC143, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, ++ 0xC141, 0xC142, 0xC145, 0xC147, 0xC14B, 0xC14E, 0xC152, 0xC156, 0xC15B, ++ 0xC15F, 0xC163, 0xC166, 0xC16A, 0xC16C, 0xC16E, 0xC170, 0x054B, 0x04DF, ++ 0x03AF, 0x01DB, 0xFF81, 0xFCC2, 0xF9BD, 0xF690, 0xF35C, 0xF03F, 0xED58, ++ 0xEAC7, 0xE8AC, 0xE724, 0xE651, 0xE5EC, 0xE59B, 0xE55D, 0xE52E, 0xE50C, ++ 0xE4F5, 0xE4E7, 0xE4E0, 0xE4DE, 0xE4DD, 0xE4E8, 0xE504, 0xE52E, 0xE560, ++ 0xE597, 0xE5CE, 0xE600, 0xE62A, 0xE646, 0xE651, 0xE615, 0xE56D, 0xE466, ++ 0xE30D, 0xE172, 0xDFA3, 0xDDAD, 0xDBA0, 0xD988, 0xD774, 0xD573, 0xD392, ++ 0xD1DF, 0xD06A, 0xCF40, 0xCE6E, 0xCE04, 0xCDD7, 0xCDB2, 0xCD94, 0xCD7D, ++ 0xCD6B, 0xCD5F, 0xCD57, 0xCD52, 0xCD4F, 0xCD4E, 0xCD4E, 0xCD52, 0xCD5E, ++ 0xCD6F, 0xCD85, 0xCD9D, 0xCDB5, 0xCDCD, 0xCDE3, 0xCDF4, 0xCE00, 0xCE04, ++ 0xCE00, 0xCDF4, 0xCDE3, 0xCDCD, 0xCDB5, 0xCD9D, 0xCD85, 0xCD6F, 0xCD5E, ++ 0xCD52, 0xCD4E, 0xCE04, 0xD006, 0xD320, 0xD720, 0xDBD2, 0xE103, 0xE680, ++ 0xEC17, 0xF195, 0xF6C6, 0xFB78, 0xFF77, 0x0293, 0x0494, 0x054B, 0x2BD6, ++ 0x2BED, 0x2C30, 0x2C95, 0x2D17, 0x2DAE, 0x2E54, 0x2F00, 0x2FAD, 0x3052, ++ 0x30E9, 0x316B, 0x31D1, 0x3213, 0x322B, 0x31E9, 0x3137, 0x3030, 0x2EF1, ++ 0x2D96, 0x2C3B, 0x2AFC, 0x29F5, 0x2943, 0x2901, 0x2943, 0x29F5, 0x2AFC, ++ 0x2C3B, 0x2D96, 0x2EF1, 0x3030, 0x3137, 0x31E9, 0x322B, 0x31DC, 0x30FD, ++ 0x2F9F, 0x2DD3, 0x2BAC, 0x293B, 0x2692, 0x23C3, 0x20DF, 0x1DF9, 0x1B22, ++ 0x186B, 0x15E7, 0x13A8, 0x11BE, 0x103D, 0x0F35, 0x0E82, 0x0DEE, 0x0D79, ++ 0x0D1D, 0x0CD8, 0x0CA7, 0x0C86, 0x0C71, 0x0C67, 0x0C63, 0x0C63, 0x0C74, ++ 0x0CA2, 0x0CE7, 0x0D3C, 0x0D9B, 0x0DFD, 0x0E5C, 0x0EB1, 0x0EF6, 0x0F24, ++ 0x0F35, 0x0F24, 0x0EF6, 0x0EB1, 0x0E5C, 0x0DFD, 0x0D9B, 0x0D3C, 0x0CE7, ++ 0x0CA2, 0x0C74, 0x0C63, 0x0CC9, 0x0DEA, 0x0FA8, 0x11E7, 0x148A, 0x1775, ++ 0x1A8A, 0x1DAE, 0x20C4, 0x23AF, 0x2652, 0x2891, 0x2A4F, 0x2B6F, 0x2BD6, ++ 0xCCF5, 0xCC8A, 0xCB5F, 0xC994, 0xC749, 0xC49D, 0xC1B2, 0xBEA6, 0xBB9A, ++ 0xB8AF, 0xB603, 0xB3B8, 0xB1ED, 0xB0C1, 0xB057, 0xB060, 0xB079, 0xB09E, ++ 0xB0CB, 0xB0FC, 0xB12D, 0xB15A, 0xB17F, 0xB198, 0xB1A1, 0xB1A1, 0xB19E, ++ 0xB198, 0xB18C, 0xB178, 0xB15A, 0xB130, 0xB0F8, 0xB0B0, 0xB057, 0xAFD6, ++ 0xAF21, 0xAE3E, 0xAD36, 0xAC11, 0xAAD5, 0xA98C, 0xA83D, 0xA6F0, 0xA5AD, ++ 0xA47B, 0xA362, 0xA26B, 0xA19E, 0xA101, 0xA09D, 0xA07A, 0xA07D, 0xA083, ++ 0xA08D, 0xA099, 0xA0A6, 0xA0B4, 0xA0C1, 0xA0CD, 0xA0D7, 0xA0DD, 0xA0DF, ++ 0xA0DD, 0xA0D7, 0xA0CD, 0xA0C1, 0xA0B4, 0xA0A6, 0xA099, 0xA08D, 0xA083, ++ 0xA07D, 0xA07A, 0xA07A, 0xA07B, 0xA07C, 0xA07F, 0xA084, 0xA08B, 0xA094, ++ 0xA0A1, 0xA0B2, 0xA0C6, 0xA0DF, 0xA187, 0xA32D, 0xA5AA, 0xA8D6, 0xAC8B, ++ 0xB0A0, 0xB4EE, 0xB94E, 0xBD98, 0xC1A6, 0xC54F, 0xC86D, 0xCAD7, 0xCC67, ++ 0xCCF5, 0xFFFF, 0xFFD7, 0xFF66, 0xFEB9, 0xFDDB, 0xFCD9, 0xFBBF, 0xFA99, ++ 0xF972, 0xF858, 0xF756, 0xF679, 0xF5CB, 0xF55A, 0xF532, 0xF545, 0xF57A, ++ 0xF5C7, 0xF625, 0xF68A, 0xF6F0, 0xF74E, 0xF79B, 0xF7CF, 0xF7E3, 0xF7CF, ++ 0xF79B, 0xF74E, 0xF6F0, 0xF68A, 0xF625, 0xF5C7, 0xF57A, 0xF545, 0xF532, ++ 0xF53C, 0xF557, 0xF582, 0xF5BC, 0xF603, 0xF655, 0xF6B1, 0xF714, 0xF77E, ++ 0xF7EC, 0xF85E, 0xF8D0, 0xF942, 0xF9B2, 0xFA1E, 0xFA85, 0xFAE5, 0xFB3C, ++ 0xFB8B, 0xFBD1, 0xFC0F, 0xFC44, 0xFC71, 0xFC95, 0xFCB1, 0xFCC5, 0xFCD2, ++ 0xFCD5, 0xFCCA, 0xFCAA, 0xFC7B, 0xFC40, 0xFBFF, 0xFBBB, 0xFB7A, 0xFB3F, ++ 0xFB10, 0xFAF0, 0xFAE5, 0xFAEA, 0xFAFA, 0xFB14, 0xFB36, 0xFB60, 0xFB92, ++ 0xFBC9, 0xFC06, 0xFC48, 0xFC8D, 0xFCD5, 0xFD20, 0xFD6B, 0xFDB6, 0xFE01, ++ 0xFE4A, 0xFE91, 0xFED4, 0xFF12, 0xFF4C, 0xFF7F, 0xFFAA, 0xFFCE, 0xFFE9, ++ 0xFFF9, 0xFFFF, 0x0000, 0xFFD5, 0xFF60, 0xFEAC, 0xFDC5, 0xFCB9, 0xFB93, ++ 0xFA61, 0xF930, 0xF80A, 0xF6FE, 0xF617, 0xF563, 0xF4EE, 0xF4C4, 0xF4FC, ++ 0xF593, 0xF672, 0xF781, 0xF8A8, 0xF9CF, 0xFADE, 0xFBBD, 0xFC54, 0xFC8C, ++ 0xFC54, 0xFBBD, 0xFADE, 0xF9CF, 0xF8A8, 0xF781, 0xF672, 0xF593, 0xF4FC, ++ 0xF4C4, 0xF4FA, 0xF595, 0xF685, 0xF7C0, 0xF936, 0xFADA, 0xFCA0, 0xFE7A, ++ 0x005C, 0x0236, 0x03FC, 0x05A0, 0x0716, 0x0850, 0x0941, 0x09DB, 0x0A12, ++ 0x0A03, 0x09D9, 0x099B, 0x094E, 0x08F9, 0x08A0, 0x084B, 0x07FE, 0x07C0, ++ 0x0796, 0x0787, 0x0796, 0x07C0, 0x07FE, 0x084B, 0x08A0, 0x08F9, 0x094E, ++ 0x099B, 0x09D9, 0x0A03, 0x0A12, 0x0A0E, 0x0A01, 0x09EA, 0x09C9, 0x099D, ++ 0x0966, 0x0922, 0x08D1, 0x0872, 0x0804, 0x0787, 0x06FB, 0x0662, 0x05C0, ++ 0x0518, 0x046D, 0x03C2, 0x031C, 0x027C, 0x01E7, 0x0160, 0x00EA, 0x0089, ++ 0x003F, 0x0010, 0x0000, 0xC7DC, 0xC771, 0xC645, 0xC479, 0xC22C, 0xBF7E, ++ 0xBC90, 0xB983, 0xB675, 0xB387, 0xB0DA, 0xAE8D, 0xACC0, 0xAB94, 0xAB29, ++ 0xAB4E, 0xABB3, 0xAC48, 0xACFD, 0xADC2, 0xAE86, 0xAF3B, 0xAFD0, 0xB035, ++ 0xB05A, 0xB035, 0xAFD0, 0xAF3B, 0xAE86, 0xADC2, 0xACFD, 0xAC48, 0xABB3, ++ 0xAB4E, 0xAB29, 0xAB6E, 0xAC31, 0xAD64, 0xAEF7, 0xB0D9, 0xB2FC, 0xB54F, ++ 0xB7C2, 0xBA47, 0xBCCE, 0xBF46, 0xC1A0, 0xC3CC, 0xC5BB, 0xC75D, 0xC8A2, ++ 0xC97B, 0xCA0A, 0xCA80, 0xCADE, 0xCB27, 0xCB5E, 0xCB85, 0xCBA0, 0xCBB0, ++ 0xCBB8, 0xCBBB, 0xCBBB, 0xCBAE, 0xCB89, 0xCB52, 0xCB0E, 0xCAC2, 0xCA74, ++ 0xCA28, 0xC9E4, 0xC9AD, 0xC988, 0xC97B, 0xC988, 0xC9AD, 0xC9E4, 0xCA28, ++ 0xCA74, 0xCAC2, 0xCB0E, 0xCB52, 0xCB89, 0xCBAE, 0xCBBB, 0xCBAF, 0xCB8B, ++ 0xCB54, 0xCB0E, 0xCABA, 0xCA5F, 0xC9FD, 0xC99A, 0xC939, 0xC8DD, 0xC88A, ++ 0xC843, 0xC80C, 0xC7E9, 0xC7DC, 0xFFFF, 0x0080, 0x01E7, 0x040D, 0x06CE, ++ 0x0A01, 0x0D82, 0x1129, 0x14D0, 0x1850, 0x1B84, 0x1E44, 0x206B, 0x21D1, ++ 0x2252, 0x224D, 0x2242, 0x2231, 0x221D, 0x2206, 0x21F0, 0x21DC, 0x21CB, ++ 0x21BF, 0x21BB, 0x21BF, 0x21CB, 0x21DC, 0x21F0, 0x2206, 0x221D, 0x2231, ++ 0x2242, 0x224D, 0x2252, 0x21FA, 0x2101, 0x1F7D, 0x1D83, 0x1B29, 0x1883, ++ 0x15A7, 0x12AC, 0x0FA6, 0x0CAA, 0x09CF, 0x0729, 0x04CE, 0x02D4, 0x0150, ++ 0x0058, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFF4, 0xFFD4, 0xFFA3, 0xFF64, ++ 0xFF1B, 0xFECB, 0xFE78, 0xFE24, 0xFDD5, 0xFD8B, 0xFD4D, 0xFD1C, 0xFCFC, ++ 0xFCF0, 0xFD0E, 0xFD5D, 0xFDD2, 0xFE60, 0xFEFB, 0xFF96, 0x0025, 0x009A, ++ 0x00EA, 0x0107, 0x00EA, 0x009A, 0x0025, 0xFF96, 0xFEFB, 0xFE60, 0xFDD2, ++ 0xFD5D, 0xFD0E, 0xFCF0, 0xFCF8, 0xFD0E, 0xFD31, 0xFD5E, 0xFD94, 0xFDD0, ++ 0xFE11, 0xFE55, 0xFE9A, 0xFEDE, 0xFF1F, 0xFF5C, 0xFF91, 0xFFBE, 0xFFE1, ++ 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xF548, 0xF654, 0xF942, 0xFDC6, 0x0392, 0x0A57, 0x11C8, ++ 0x1997, 0x2176, 0x2918, 0x302E, 0x366B, 0x3B81, 0x3F23, 0x4102, 0x41CF, ++ 0x4274, 0x42F4, 0x4354, 0x4399, 0x43C7, 0x43E3, 0x43F2, 0x43F7, 0x43F8, ++ 0x43F7, 0x43F2, 0x43E3, 0x43C7, 0x4399, 0x4354, 0x42F4, 0x4274, 0x41CF, ++ 0x4102, 0x3F77, 0x3CBA, 0x38F5, 0x3453, 0x2EFF, 0x2922, 0x22E9, 0x1C7D, ++ 0x160A, 0x0FB9, 0x09B5, 0x0429, 0xFF3F, 0xFB23, 0xF7FF, 0xF5FD, 0xF548, ++ 0x0000, 0x0000, 0xBF5E, 0xD649, 0xD69E, 0xD78C, 0xD8F8, 0xDACB, 0xDCEA, ++ 0xDF3C, 0xE1A7, 0xE412, 0xE664, 0xE883, 0xEA56, 0xEBC3, 0xECB0, 0xED05, ++ 0xEC9C, 0xEB7F, 0xE9DB, 0xE7DE, 0xE5B3, 0xE388, 0xE18A, 0xDFE7, 0xDECA, ++ 0xDE61, 0xDECA, 0xDFE7, 0xE18A, 0xE388, 0xE5B3, 0xE7DE, 0xE9DB, 0xEB7F, ++ 0xEC9C, 0xED05, 0xECF5, 0xECC5, 0xEC77, 0xEC0C, 0xEB85, 0xEAE3, 0xEA27, ++ 0xE953, 0xE866, 0xE764, 0xE64C, 0xE51F, 0xE3E0, 0xE28E, 0xE12C, 0xDFB9, ++ 0xDE39, 0xDCAB, 0xDB1A, 0xD98C, 0xD80C, 0xD6A2, 0xD557, 0xD435, 0xD343, ++ 0xD28B, 0xD217, 0xD1EE, 0xD237, 0xD300, 0xD42C, 0xD59F, 0xD73D, 0xD8E9, ++ 0xDA87, 0xDBFA, 0xDD26, 0xDDEF, 0xDE39, 0xDDEF, 0xDD26, 0xDBFA, 0xDA87, ++ 0xD8E9, 0xD73D, 0xD59F, 0xD42C, 0xD300, 0xD237, 0xD1EE, 0xD1FC, 0xD224, ++ 0xD262, 0xD2B1, 0xD30F, 0xD376, 0xD3E4, 0xD453, 0xD4C1, 0xD528, 0xD585, ++ 0xD5D5, 0xD613, 0xD63B, 0xD649, 0xEC40, 0xEBF2, 0xEB17, 0xE9C7, 0xE819, ++ 0xE625, 0xE402, 0xE1C8, 0xDF8E, 0xDD6B, 0xDB76, 0xD9C9, 0xD879, 0xD79E, ++ 0xD750, 0xD75D, 0xD780, 0xD7B3, 0xD7F2, 0xD836, 0xD87A, 0xD8B9, 0xD8EC, ++ 0xD910, 0xD91C, 0xD910, 0xD8EC, 0xD8B9, 0xD87A, 0xD836, 0xD7F2, 0xD7B3, ++ 0xD780, 0xD75D, 0xD750, 0xD7AC, 0xD8B2, 0xDA4C, 0xDC63, 0xDEE2, 0xE1B1, ++ 0xE4BC, 0xE7EB, 0xEB29, 0xEE5E, 0xF176, 0xF45A, 0xF6F4, 0xF92D, 0xFAEF, ++ 0xFC24, 0xFCB7, 0xFCEB, 0xFD16, 0xFD38, 0xFD53, 0xFD67, 0xFD75, 0xFD7F, ++ 0xFD85, 0xFD88, 0xFD89, 0xFD89, 0xFD84, 0xFD77, 0xFD63, 0xFD4A, 0xFD2E, ++ 0xFD12, 0xFCF6, 0xFCDD, 0xFCC9, 0xFCBC, 0xFCB7, 0xFCBC, 0xFCC9, 0xFCDD, ++ 0xFCF6, 0xFD12, 0xFD2E, 0xFD4A, 0xFD63, 0xFD77, 0xFD84, 0xFD89, 0xFD51, ++ 0xFCB2, 0xFBBD, 0xFA81, 0xF90E, 0xF774, 0xF5C2, 0xF408, 0xF256, 0xF0BB, ++ 0xEF48, 0xEE0C, 0xED17, 0xEC78, 0xEC40, 0xB59D, 0xB501, 0xB34B, 0xB0A9, ++ 0xAD4D, 0xA963, 0xA51B, 0xA0A5, 0x9C2E, 0x97E6, 0x93FD, 0x90A0, 0x8DFF, ++ 0x8C49, 0x8BAC, 0x8C1F, 0x8D56, 0x8F20, 0x914C, 0x93AA, 0x9607, 0x9833, ++ 0x99FE, 0x9B35, 0x9BA7, 0x9B35, 0x99FE, 0x9833, 0x9607, 0x93AA, 0x914C, ++ 0x8F20, 0x8D56, 0x8C1F, 0x8BAC, 0x8C34, 0x8DB6, 0x9012, 0x9325, 0x96D1, ++ 0x9AF3, 0x9F6A, 0xA417, 0xA8D8, 0xAD8B, 0xB211, 0xB649, 0xBA11, 0xBD49, ++ 0xBFCF, 0xC183, 0xC245, 0xC27C, 0xC2AA, 0xC2CE, 0xC2EA, 0xC300, 0xC30F, ++ 0xC319, 0xC31F, 0xC322, 0xC324, 0xC324, 0xC31F, 0xC310, 0xC2FB, 0xC2E1, ++ 0xC2C3, 0xC2A5, 0xC288, 0xC26D, 0xC258, 0xC24A, 0xC245, 0xC24A, 0xC258, ++ 0xC26D, 0xC288, 0xC2A5, 0xC2C3, 0xC2E1, 0xC2FB, 0xC310, 0xC31F, 0xC324, ++ 0xC2F8, 0xC27C, 0xC1BC, 0xC0C4, 0xBFA2, 0xBE61, 0xBD0D, 0xBBB4, 0xBA60, ++ 0xB91F, 0xB7FD, 0xB705, 0xB646, 0xB5C9, 0xB59D, 0x0000, 0xFFF6, 0xFFDD, ++ 0xFFB7, 0xFF86, 0xFF4D, 0xFF0E, 0xFECD, 0xFE8C, 0xFE4E, 0xFE15, 0xFDE4, ++ 0xFDBD, 0xFDA5, 0xFD9C, 0xFDB5, 0xFDF9, 0xFE5D, 0xFED7, 0xFF5C, 0xFFE1, ++ 0x005C, 0x00C0, 0x0105, 0x011E, 0x0112, 0x00EF, 0x00B7, 0x006C, 0x0011, ++ 0xFFA7, 0xFF31, 0xFEB2, 0xFE2A, 0xFD9C, 0xFD0A, 0xFC75, 0xFBE0, 0xFB4B, ++ 0xFAB8, 0xFA29, 0xF99E, 0xF91A, 0xF89D, 0xF82A, 0xF7C1, 0xF765, 0xF716, ++ 0xF6D6, 0xF6A6, 0xF689, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, ++ 0xF67F, 0xF69E, 0xF6F5, 0xF77C, 0xF829, 0xF8F5, 0xF9D7, 0xFAC5, 0xFBB8, ++ 0xFCA7, 0xFD88, 0xFE54, 0xFF02, 0xFF89, 0xFFE0, 0x0000, 0xFFFF, 0xFFC0, ++ 0xFF10, 0xFE02, 0xFCA9, 0xFB17, 0xF95F, 0xF794, 0xF5CA, 0xF412, 0xF280, ++ 0xF126, 0xF018, 0xEF68, 0xEF2A, 0xEF3C, 0xEF6F, 0xEFBA, 0xF015, 0xF078, ++ 0xF0DB, 0xF136, 0xF181, 0xF1B3, 0xF1C6, 0xF1BB, 0xF19C, 0xF16B, 0xF12C, ++ 0xF0E1, 0xF08E, 0xF036, 0xEFDB, 0xEF81, 0xEF2A, 0xEED8, 0xEE8D, 0xEE48, ++ 0xEE09, 0xEDD0, 0xED9C, 0xED6D, 0xED44, 0xED20, 0xED01, 0xECE6, 0xECD0, ++ 0xECBE, 0xECB1, 0xECA7, 0xECA2, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, ++ 0xECA0, 0xECA0, 0xECDF, 0xED91, 0xEEA4, 0xF006, 0xF1A5, 0xF371, 0xF558, ++ 0xF747, 0xF92D, 0xFAF9, 0xFC99, 0xFDFB, 0xFF0E, 0xFFC0, 0xFFFF, 0x2537, ++ 0x2536, 0x2534, 0x252D, 0x251F, 0x2508, 0x24E5, 0x24B5, 0x2475, 0x2423, ++ 0x23BD, 0x2340, 0x22AA, 0x21F8, 0x212A, 0x2036, 0x1F21, 0x1DF8, 0x1CC9, ++ 0x1BA2, 0x1A92, 0x19A6, 0x18EC, 0x1873, 0x1847, 0x1887, 0x1933, 0x1A32, ++ 0x1B68, 0x1CB8, 0x1E09, 0x1F3E, 0x203D, 0x20EA, 0x212A, 0x2123, 0x2110, ++ 0x20F3, 0x20CD, 0x209F, 0x206C, 0x2035, 0x1FFB, 0x1FC1, 0x1F87, 0x1F50, ++ 0x1F1D, 0x1EEF, 0x1EC9, 0x1EAB, 0x1E99, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, ++ 0x1E92, 0x1E92, 0x1E92, 0x1EA8, 0x1EE5, 0x1F43, 0x1FBC, 0x204B, 0x20E9, ++ 0x2190, 0x2239, 0x22E0, 0x237E, 0x240D, 0x2486, 0x24E4, 0x2521, 0x2537, ++ 0x0000, 0xFFFB, 0xFFF0, 0xFFDF, 0xFFCA, 0xFFB0, 0xFF95, 0xFF78, 0xFF5C, ++ 0xFF40, 0xFF27, 0xFF11, 0xFF00, 0xFEF5, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, ++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, ++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF6, ++ 0xFF02, 0xFF14, 0xFF2C, 0xFF49, 0xFF69, 0xFF8C, 0xFFB1, 0xFFD6, 0xFFFA, ++ 0x001E, 0x003E, 0x005B, 0x0073, 0x0086, 0x0092, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, ++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, 0x008E, 0x0086, 0x007B, 0x006F, ++ 0x0061, 0x0052, 0x0043, 0x0035, 0x0027, 0x001A, 0x0010, 0x0007, 0x0002, ++ 0x0000, 0xFFFF, 0xFFF8, 0xFFE3, 0xFFC3, 0xFF9A, 0xFF6A, 0xFF36, 0xFF00, ++ 0xFECA, 0xFE96, 0xFE66, 0xFE3D, 0xFE1D, 0xFE08, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, ++ 0xFE00, 0xFDFC, 0xFDF7, 0xFDF1, 0xFDE9, 0xFDE0, 0xFDD6, 0xFDCC, 0xFDC2, ++ 0xFDB8, 0xFDAE, 0xFDA5, 0xFD9D, 0xFD97, 0xFD91, 0xFD8E, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, ++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD95, 0xFDAB, 0xFDCE, 0xFDFB, ++ 0xFE2F, 0xFE69, 0xFEA7, 0xFEE5, 0xFF23, 0xFF5D, 0xFF91, 0xFFBE, 0xFFE1, ++ 0xFFF7, 0xFFFF, 0xBF3F, 0xBFCF, 0xC163, 0xC3CF, 0xC6E9, 0xCA84, 0xCE75, ++ 0xD292, 0xD6AF, 0xDAA0, 0xDE3B, 0xE154, 0xE3C0, 0xE554, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, ++ 0xE5E4, 0xE57B, 0xE451, 0xE27F, 0xE020, 0xDD4D, 0xDA20, 0xD6B2, 0xD31E, ++ 0xCF7D, 0xCBE8, 0xC87B, 0xC54D, 0xC27A, 0xC01B, 0xBE49, 0xBD1F, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, ++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCBE, 0xBCD5, 0xBCF9, ++ 0xBD28, 0xBD5E, 0xBD9A, 0xBDDA, 0xBE1B, 0xBE5B, 0xBE97, 0xBECD, 0xBEFC, ++ 0xBF20, 0xBF37, 0xBF3F, 0x0000, 0x0000, 0xBF5E, 0x1B09, 0x1AC0, 0x19F2, ++ 0x18B7, 0x1724, 0x154E, 0x134D, 0x1136, 0x0F1F, 0x0D1D, 0x0B48, 0x09B5, ++ 0x087A, 0x07AC, 0x0763, 0x077A, 0x07B8, 0x0813, 0x0882, 0x08FA, 0x0973, ++ 0x09E2, 0x0A3D, 0x0A7B, 0x0A92, 0x0A7B, 0x0A3D, 0x09E2, 0x0973, 0x08FA, ++ 0x0882, 0x0813, 0x07B8, 0x077A, 0x0763, 0x07AA, 0x0873, 0x09AC, 0x0B45, ++ 0x0D2C, 0x0F4F, 0x119E, 0x1407, 0x1678, 0x18E1, 0x1B30, 0x1D53, 0x1F3A, ++ 0x20D3, 0x220C, 0x22D5, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, ++ 0x231C, 0x2302, 0x22B7, 0x2245, 0x21B1, 0x2104, 0x2044, 0x1F7A, 0x1EAB, ++ 0x1DE0, 0x1D21, 0x1C73, 0x1BE0, 0x1B6D, 0x1B23, 0x1B09, 0x1144, 0x1195, ++ 0x1279, 0x13D6, 0x1594, 0x179C, 0x19D4, 0x1C25, 0x1E76, 0x20AE, 0x22B6, ++ 0x2475, 0x25D2, 0x26B5, 0x2707, 0x26F7, 0x26CD, 0x268E, 0x2643, 0x25F0, ++ 0x259E, 0x2552, 0x2514, 0x24E9, 0x24DA, 0x24E9, 0x2514, 0x2552, 0x259E, ++ 0x25F0, 0x2643, 0x268E, 0x26CD, 0x26F7, 0x2707, 0x26A6, 0x2595, 0x23EA, ++ 0x21BE, 0x1F27, 0x1C3E, 0x191A, 0x15D2, 0x127F, 0x0F38, 0x0C14, 0x092A, ++ 0x0694, 0x0467, 0x02BD, 0x01AB, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, ++ 0x014B, 0x014B, 0x017F, 0x0212, 0x02F4, 0x0418, 0x056F, 0x06EA, 0x087B, ++ 0x0A14, 0x0BA5, 0x0D20, 0x0E77, 0x0F9B, 0x107D, 0x1110, 0x1144, 0xAC43, ++ 0xAC00, 0xAB44, 0xAA24, 0xA8B2, 0xA705, 0xA52F, 0xA345, 0xA15B, 0x9F85, ++ 0x9DD8, 0x9C66, 0x9B46, 0x9A8A, 0x9A47, 0x9A8D, 0x9B4A, 0x9C61, 0x9DB4, ++ 0x9F24, 0xA095, 0xA1E8, 0xA2FF, 0xA3BC, 0xA402, 0xA3BC, 0xA2FF, 0xA1E8, ++ 0xA095, 0x9F24, 0x9DB4, 0x9C61, 0x9B4A, 0x9A8D, 0x9A47, 0x9A7A, 0x9B09, ++ 0x9BEA, 0x9D0F, 0x9E6B, 0x9FF3, 0xA19A, 0xA354, 0xA514, 0xA6CE, 0xA875, ++ 0xA9FD, 0xAB59, 0xAC7E, 0xAD5F, 0xADEE, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, ++ 0xAE21, 0xAE21, 0xAE21, 0xAE1B, 0xAE0A, 0xADEF, 0xADCD, 0xADA5, 0xAD79, ++ 0xAD4A, 0xAD1A, 0xACEB, 0xACBF, 0xAC97, 0xAC75, 0xAC5B, 0xAC49, 0xAC43, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, ++ 0xFFFA, 0xFFF3, 0xFFEB, 0xFFE1, 0xFFD7, 0xFFCB, 0xFFBF, 0xFFB2, 0xFFA6, ++ 0xFF9A, 0xFF8F, 0xFF85, 0xFF7D, 0xFF77, 0xFF73, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, ++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF73, 0xFF78, 0xFF80, 0xFF8A, 0xFF96, ++ 0xFFA3, 0xFFB1, 0xFFBF, 0xFFCD, 0xFFDA, 0xFFE6, 0xFFF0, 0xFFF8, 0xFFFD, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0020, 0x007C, 0x010C, 0x01C7, 0x02A7, 0x03A1, 0x04B0, 0x05CB, 0x06E9, ++ 0x0804, 0x0913, 0x0A0E, 0x0AED, 0x0BA8, 0x0C38, 0x0C94, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, ++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0C8B, 0x0C16, 0x0B62, 0x0A7A, ++ 0x0969, 0x083B, 0x06FD, 0x05B8, 0x0479, 0x034B, 0x023A, 0x0152, 0x009E, ++ 0x0029, 0x0000, 0x1E4A, 0x1DD9, 0x1C9C, 0x1AB6, 0x1849, 0x1575, 0x125E, ++ 0x0F25, 0x0BEC, 0x08D5, 0x0601, 0x0394, 0x01AE, 0x0071, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x002D, 0x00AE, 0x0176, 0x027C, 0x03B3, 0x0511, 0x068B, 0x0815, ++ 0x09A5, 0x0B30, 0x0CA9, 0x0E07, 0x0F3F, 0x1044, 0x110D, 0x118D, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, ++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11E3, 0x1256, 0x1309, ++ 0x13EE, 0x14FC, 0x1626, 0x1761, 0x18A3, 0x19DE, 0x1B08, 0x1C16, 0x1CFB, ++ 0x1DAE, 0x1E21, 0x1E4A, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x000D, 0x002F, 0x0062, 0x00A0, 0x00E3, 0x0126, 0x0164, 0x0197, 0x01B9, ++ 0x01C6, 0x01B9, 0x0197, 0x0164, 0x0126, 0x00E3, 0x00A0, 0x0062, 0x002F, ++ 0x000D, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, ++ 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, ++ 0xFF4D, 0xFF9F, 0x0018, 0x00AA, 0x014A, 0x01E9, 0x027B, 0x02F3, 0x0345, ++ 0x0363, 0x0345, 0x02F3, 0x027B, 0x01E9, 0x014A, 0x00AA, 0x0018, 0xFF9F, ++ 0xFF4D, 0xFF2F, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, ++ 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9BF, ++ 0xC97E, 0xC91E, 0xC8AA, 0xC82B, 0xC7AD, 0xC738, 0xC6D8, 0xC697, 0xC67F, ++ 0xC697, 0xC6D8, 0xC738, 0xC7AD, 0xC82B, 0xC8AA, 0xC91E, 0xC97E, 0xC9BF, ++ 0xC9D7, + }; + +diff --git a/assets/anims/anim_37.inc.c.rej b/assets/anims/anim_37.inc.c.rej +new file mode 100644 +index 0000000..bff03cb +--- /dev/null ++++ b/assets/anims/anim_37.inc.c.rej +@@ -0,0 +1,954 @@ ++diff a/assets/anims/anim_37.inc.c b/assets/anims/anim_37.inc.c (rejected hunks) ++@@ -12,455 +12,505 @@ static const struct Animation anim_37[] = { ++ ++ ++ static const u16 anim_37_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, ++- 0x0064, 0x0C2A, 0x0064, 0x0C8E, 0x0064, 0x0CF2, ++- 0x0064, 0x0AFE, 0x0064, 0x0B62, 0x0064, 0x0BC6, ++- 0x0064, 0x09D2, 0x0064, 0x0A36, 0x0064, 0x0A9A, ++- 0x0001, 0x09CE, 0x0001, 0x09CF, 0x0001, 0x09D0, ++- 0x0064, 0x0193, 0x0064, 0x01F7, 0x0064, 0x025B, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x012F, ++- 0x0064, 0x0003, 0x0064, 0x0067, 0x0064, 0x00CB, ++- 0x0001, 0x09CA, 0x0001, 0x09CB, 0x0001, 0x09CC, ++- 0x0064, 0x044F, 0x0064, 0x04B3, 0x0064, 0x0517, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x03EB, ++- 0x0064, 0x02BF, 0x0064, 0x0323, 0x0064, 0x0387, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09CD, ++- 0x0001, 0x09C7, 0x0001, 0x09C8, 0x0001, 0x09C9, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x0963, ++- 0x0064, 0x0837, 0x0064, 0x089B, 0x0064, 0x08FF, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x09D1, ++- 0x0064, 0x070B, 0x0064, 0x076F, 0x0064, 0x07D3, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0064, 0x06A7, ++- 0x0064, 0x057B, 0x0064, 0x05DF, 0x0064, 0x0643, +++0x0034, 0x0000, 0x0063, 0x0034, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, +++ 0x0099, 0x0001, 0x009A, 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, +++ 0x0064, 0x009E, 0x0064, 0x0102, 0x0064, 0x0166, 0x0064, 0x01CA, 0x0064, +++ 0x022E, 0x0064, 0x0292, 0x0001, 0x02F6, 0x0001, 0x02F7, 0x0001, 0x02F8, +++ 0x0064, 0x02F9, 0x0064, 0x035D, 0x0064, 0x03C1, 0x0064, 0x0425, 0x0064, +++ 0x0489, 0x0064, 0x04ED, 0x0064, 0x0551, 0x0064, 0x05B5, 0x0064, 0x0619, +++ 0x0034, 0x067D, 0x0034, 0x06B1, 0x0033, 0x06E5, 0x0064, 0x0718, 0x0064, +++ 0x077C, 0x0064, 0x07E0, 0x0064, 0x0844, 0x0064, 0x08A8, 0x0064, 0x090C, +++ 0x0063, 0x0970, 0x0061, 0x09D3, 0x0034, 0x0A34, 0x0001, 0x0A68, 0x0001, +++ 0x0A69, 0x0001, 0x0A6A, 0x0064, 0x0A6B, 0x0064, 0x0ACF, 0x0064, 0x0B33, +++ 0x0064, 0x0B97, 0x0064, 0x0BFB, 0x0064, 0x0C5F, 0x0064, 0x0CC3, 0x0064, +++ 0x0D27, 0x0064, 0x0D8B, 0x0001, 0x0DEF, 0x0001, 0x0DF0, 0x0001, 0x0DF1, +++ 0x0064, 0x0DF2, 0x0064, 0x0E56, 0x0064, 0x0EBA, 0x0064, 0x0F1E, 0x0064, +++ 0x0F82, 0x0064, 0x0FE6, 0x0063, 0x104A, 0x0023, 0x10AD, 0x0023, 0x10D0, ++ }; ++ ++ static const s16 anim_37_values[] = { ++- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0xFFD8, 0xFF6C, 0xFECF, 0xFE13, ++- 0xFD4C, 0xFC8C, 0xFBE6, 0xFB6D, 0xFB34, 0xFB45, 0xFB94, 0xFC16, ++- 0xFCBE, 0xFD82, 0xFE55, 0xFF2C, 0xFFFA, 0x00B2, 0x014C, 0x01B9, ++- 0x01EE, 0x01E0, 0x0182, 0x00C9, 0xFFA9, 0xFE15, 0xFBC9, 0xF8A1, ++- 0xF4C1, 0xF04B, 0xEB62, 0xE62B, 0xE0C9, 0xDB5E, 0xD60E, 0xD0FD, ++- 0xCC4E, 0xC824, 0xC4A2, 0xC29B, 0xC259, 0xC336, 0xC48E, 0xC5BB, ++- 0xC69B, 0xC77E, 0xC864, 0xC94C, 0xCA38, 0xCB27, 0xCC1A, 0xCD11, ++- 0xCE0D, 0xCF0E, 0xD014, 0xD121, 0xD233, 0xD34C, 0xD46C, 0xD594, ++- 0xD6C3, 0xD7FA, 0xD93A, 0xDA82, 0xDD37, 0xE115, 0xE3A3, 0xE4B9, ++- 0xE5D6, 0xE6FA, 0xE823, 0xE94F, 0xEA7F, 0xEBB1, 0xECE3, 0xEE16, ++- 0xEF47, 0xF076, 0xF1A2, 0xF2C9, 0xF3EB, 0xF507, 0xF61B, 0xF726, ++- 0xF828, 0xF91F, 0xFA0A, 0xFAE9, 0xFBB9, 0xFC7B, 0xFD2D, 0xFDCE, ++- 0xFE5D, 0xFED9, 0xFF40, 0xFF93, 0xFFCF, 0xFFF4, 0x0000, 0xF97C, ++- 0xF975, 0xF963, 0xF948, 0xF929, 0xF908, 0xF8E7, 0xF8CC, 0xF8B7, ++- 0xF8AE, 0xF8B4, 0xF8CB, 0xF8EF, 0xF91D, 0xF951, 0xF989, 0xF9C2, ++- 0xF9F7, 0xFA25, 0xFA4A, 0xFA62, 0xFA6A, 0xFA5E, 0xFA3B, 0xF9FE, ++- 0xF9A4, 0xF929, 0xF87A, 0xF78B, 0xF667, 0xF518, 0xF3A8, 0xF221, ++- 0xF08E, 0xEEF7, 0xED68, 0xEBEA, 0xEA87, 0xE94A, 0xE83D, 0xE7A0, ++- 0xE788, 0xE7BB, 0xE803, 0xE827, 0xE829, 0xE82F, 0xE839, 0xE846, ++- 0xE856, 0xE866, 0xE878, 0xE889, 0xE899, 0xE8A8, 0xE8B3, 0xE8BC, ++- 0xE8C0, 0xE8C0, 0xE8B9, 0xE8AC, 0xE898, 0xE87C, 0xE856, 0xE827, ++- 0xE6BC, 0xE468, 0xE374, 0xE3FB, 0xE492, 0xE538, 0xE5EB, 0xE6AA, ++- 0xE773, 0xE845, 0xE920, 0xEA01, 0xEAE7, 0xEBD2, 0xECBF, 0xEDAD, ++- 0xEE9C, 0xEF89, 0xF073, 0xF159, 0xF23B, 0xF315, 0xF3E8, 0xF4B1, ++- 0xF570, 0xF623, 0xF6C9, 0xF760, 0xF7E7, 0xF85D, 0xF8C1, 0xF911, ++- 0xF94B, 0xF96F, 0xF97C, 0xED8C, 0xED19, 0xEBE4, 0xEA24, 0xE80D, ++- 0xE5D5, 0xE3B3, 0xE1DA, 0xE082, 0xDFDF, 0xDFBE, 0xDFC4, 0xDFEE, ++- 0xE036, 0xE09A, 0xE116, 0xE1A5, 0xE243, 0xE2EE, 0xE3A0, 0xE456, ++- 0xE50C, 0xE5BE, 0xE669, 0xE707, 0xE796, 0xE811, 0xE880, 0xE8ED, ++- 0xE957, 0xE9BF, 0xEA25, 0xEA88, 0xEAE9, 0xEB48, 0xEBA5, 0xEC00, ++- 0xEC59, 0xECB0, 0xED05, 0xED54, 0xED95, 0xEDC8, 0xEDEB, 0xEDFE, ++- 0xEE0A, 0xEE1B, 0xEE2F, 0xEE45, 0xEE5C, 0xEE75, 0xEE8C, 0xEEA3, ++- 0xEEB7, 0xEEC8, 0xEED5, 0xEEDD, 0xEEE0, 0xEEDB, 0xEECF, 0xEEBA, ++- 0xEE9B, 0xEE73, 0xEE3E, 0xEDFE, 0xEC38, 0xE938, 0xE79F, 0xE7A0, ++- 0xE7AA, 0xE7BC, 0xE7D6, 0xE7F7, 0xE81E, 0xE84B, 0xE87D, 0xE8B4, ++- 0xE8EF, 0xE92E, 0xE970, 0xE9B4, 0xE9F9, 0xEA40, 0xEA88, 0xEAD0, ++- 0xEB17, 0xEB5E, 0xEBA3, 0xEBE5, 0xEC25, 0xEC61, 0xEC9A, 0xECCE, ++- 0xECFD, 0xED26, 0xED49, 0xED65, 0xED7A, 0xED87, 0xED8C, 0xCA4F, ++- 0xCA8C, 0xCB31, 0xCC28, 0xCD57, 0xCEA6, 0xCFFE, 0xD146, 0xD266, ++- 0xD346, 0xD407, 0xD4D6, 0xD5B0, 0xD691, 0xD775, 0xD856, 0xD932, ++- 0xDA04, 0xDAC8, 0xDB79, 0xDC15, 0xDC95, 0xDCF7, 0xDD36, 0xDD4F, ++- 0xDD3C, 0xDCFA, 0xDC6C, 0xDB82, 0xDA49, 0xD8CF, 0xD721, 0xD54C, ++- 0xD35D, 0xD162, 0xCF69, 0xCD7D, 0xCBAE, 0xCA08, 0xC898, 0xC772, ++- 0xC699, 0xC5FF, 0xC598, 0xC555, 0xC551, 0xC594, 0xC5F8, 0xC658, ++- 0xC68E, 0xC649, 0xC5A3, 0xC514, 0xC517, 0xC626, 0xC834, 0xCACC, ++- 0xCDC6, 0xD0FB, 0xD445, 0xD77D, 0xDA7C, 0xDD1C, 0xDF35, 0xE0A1, ++- 0xDDDA, 0xD77C, 0xD398, 0xD2F8, 0xD25E, 0xD1CB, 0xD13E, 0xD0B7, ++- 0xD036, 0xCFBB, 0xCF46, 0xCED6, 0xCE6D, 0xCE09, 0xCDAB, 0xCD52, ++- 0xCCFE, 0xCCB0, 0xCC66, 0xCC22, 0xCBE3, 0xCBA9, 0xCB74, 0xCB44, ++- 0xCB18, 0xCAF0, 0xCACE, 0xCAAF, 0xCA95, 0xCA80, 0xCA6E, 0xCA60, ++- 0xCA57, 0xCA51, 0xCA4F, 0xFB1D, 0xFB3B, 0xFB89, 0xFBF6, 0xFC71, ++- 0xFCEA, 0xFD4D, 0xFD8C, 0xFD93, 0xFD53, 0xFCCA, 0xFC08, 0xFB18, ++- 0xFA03, 0xF8D3, 0xF792, 0xF64A, 0xF504, 0xF3CB, 0xF2A8, 0xF1A5, ++- 0xF0CD, 0xF028, 0xEFC1, 0xEFA1, 0xEFD3, 0xF061, 0xF17C, 0xF33E, ++- 0xF58C, 0xF84C, 0xFB63, 0xFEB4, 0x0226, 0x059E, 0x0901, 0x0C34, ++- 0x0F1B, 0x119D, 0x139D, 0x144C, 0x136E, 0x11C9, 0x1021, 0x0F3B, ++- 0x0F54, 0x0FEA, 0x10A0, 0x111A, 0x10FC, 0x0FD3, 0x0DDC, 0x0BC4, ++- 0x0A37, 0x09E3, 0x0AB9, 0x0C1F, 0x0DED, 0x0FF9, 0x121B, 0x142B, ++- 0x1601, 0x1774, 0x185B, 0x188F, 0x142B, 0x0C12, 0x0742, 0x066F, ++- 0x05A4, 0x04E2, 0x0429, 0x0377, 0x02CE, 0x022C, 0x0193, 0x0101, ++- 0x0076, 0xFFF5, 0xFF79, 0xFF05, 0xFE98, 0xFE32, 0xFDD2, 0xFD7A, ++- 0xFD28, 0xFCDC, 0xFC97, 0xFC58, 0xFC1F, 0xFBED, 0xFBC0, 0xFB99, ++- 0xFB77, 0xFB5B, 0xFB44, 0xFB33, 0xFB27, 0xFB1F, 0xFB1D, 0xD2DC, ++- 0xD371, 0xD505, 0xD757, 0xDA27, 0xDD34, 0xE03D, 0xE303, 0xE544, ++- 0xE6BF, 0xE7B8, 0xE89B, 0xE96A, 0xEA23, 0xEAC9, 0xEB5C, 0xEBDC, ++- 0xEC49, 0xECA4, 0xECEE, 0xED27, 0xED50, 0xED69, 0xED73, 0xED6E, ++- 0xED5A, 0xED39, 0xECF6, 0xEC7F, 0xEBDD, 0xEB16, 0xEA32, 0xE936, ++- 0xE82A, 0xE714, 0xE5FD, 0xE4EA, 0xE3E3, 0xE2EE, 0xE213, 0xE10C, ++- 0xDFD1, 0xDEC8, 0xDE55, 0xDEDC, 0xE0F9, 0xE468, 0xE841, 0xEB9A, ++- 0xED8B, 0xEDBF, 0xECCF, 0xEB3E, 0xE98B, 0xE837, 0xE72B, 0xE600, ++- 0xE4C5, 0xE387, 0xE255, 0xE13D, 0xE04D, 0xDF93, 0xDF1D, 0xDEF8, ++- 0xE195, 0xE653, 0xE8AE, 0xE84B, 0xE7D4, 0xE74A, 0xE6AF, 0xE605, ++- 0xE54C, 0xE487, 0xE3B7, 0xE2DD, 0xE1FC, 0xE114, 0xE028, 0xDF38, ++- 0xDE46, 0xDD54, 0xDC63, 0xDB75, 0xDA8B, 0xD9A7, 0xD8CA, 0xD7F7, ++- 0xD72D, 0xD670, 0xD5C0, 0xD51F, 0xD48F, 0xD410, 0xD3A5, 0xD350, ++- 0xD310, 0xD2E9, 0xD2DC, 0xD4B4, 0xD49A, 0xD457, 0xD3F6, 0xD383, ++- 0xD30A, 0xD297, 0xD238, 0xD1F7, 0xD1E1, 0xD20C, 0xD27E, 0xD327, ++- 0xD3FB, 0xD4EC, 0xD5EA, 0xD6EA, 0xD7DC, 0xD8B3, 0xD960, 0xD9D7, ++- 0xDA09, 0xD9E8, 0xD967, 0xD877, 0xD70A, 0xD513, 0xD241, 0xCE66, ++- 0xC9AD, 0xC43E, 0xBE44, 0xB7E8, 0xB154, 0xAAB0, 0xA427, 0x9DE2, ++- 0x980B, 0x92CA, 0x8E4A, 0x8B6A, 0x8A73, 0x8AAD, 0x8B5F, 0x8BD2, ++- 0x8C4A, 0x8D43, 0x8E54, 0x8F17, 0x8F24, 0x8DDA, 0x8B7F, 0x8902, ++- 0x8756, 0x876B, 0x88E0, 0x8AAB, 0x8CC8, 0x8F30, 0x91DB, 0x94C3, ++- 0x97E1, 0x9B2F, 0x9EA6, 0xA240, 0xA8ED, 0xB1C6, 0xB6F9, 0xB86A, ++- 0xB9D8, 0xBB43, 0xBCAB, 0xBE0E, 0xBF6D, 0xC0C7, 0xC21B, 0xC369, ++- 0xC4AF, 0xC5ED, 0xC723, 0xC850, 0xC973, 0xCA8C, 0xCB9B, 0xCC9D, ++- 0xCD94, 0xCE7D, 0xCF5A, 0xD028, 0xD0E7, 0xD198, 0xD238, 0xD2C8, ++- 0xD347, 0xD3B3, 0xD40E, 0xD455, 0xD489, 0xD4A9, 0xD4B4, 0x0000, ++- 0x0139, 0x0497, 0x09A6, 0x0FF2, 0x1707, 0x1E71, 0x25BC, 0x2C75, ++- 0x3226, 0x371F, 0x3BA7, 0x3F3C, 0x415D, 0x420A, 0x417B, 0x3F88, ++- 0x3C08, 0x31D3, 0x2767, 0x22EB, 0x1EF4, 0x1B74, 0x1861, 0x15AD, ++- 0x134E, 0x1135, 0x0F2B, 0x0D08, 0x0ADB, 0x08B3, 0x069F, 0x04AF, ++- 0x02F2, 0x0177, 0x004D, 0xFF84, 0xFF2A, 0xFF4E, 0x0000, 0x0112, ++- 0x0249, 0x03A5, 0x0521, 0x06BC, 0x0874, 0x0A47, 0x0C32, 0x0E32, ++- 0x1047, 0x126C, 0x14A1, 0x16E3, 0x1930, 0x1B85, 0x1DE0, 0x203F, ++- 0x22A0, 0x2500, 0x275D, 0x29B5, 0x2C06, 0x2E4D, 0x3089, 0x32B6, ++- 0x34D3, 0x36DE, 0x38D4, 0x3AB2, 0x3C77, 0x3E21, 0x3FAD, 0x4118, ++- 0x4262, 0x4386, 0x4484, 0x4559, 0x4602, 0x467E, 0x46CA, 0x46E4, ++- 0x4652, 0x44B3, 0x4225, 0x3EC9, 0x3ABF, 0x3625, 0x311D, 0x2BC5, ++- 0x263D, 0x20A6, 0x1B1E, 0x15C6, 0x10BE, 0x0C24, 0x081A, 0x04BE, ++- 0x0230, 0x0091, 0x0000, 0x0000, 0x00C7, 0x02E4, 0x05FF, 0x09C2, ++- 0x0DD4, 0x11DF, 0x158D, 0x1884, 0x1A70, 0x19F6, 0x1713, 0x136C, ++- 0x10A9, 0x0F2A, 0x0E12, 0x0D2E, 0x0C4B, 0x0C1D, 0x0AF3, 0x077A, ++- 0x033A, 0xFEA5, 0xFA2C, 0xF644, 0xF360, 0xF1F2, 0xF1B2, 0xF1FD, ++- 0xF2BC, 0xF3D9, 0xF53D, 0xF6D3, 0xF883, 0xFA39, 0xFBDD, 0xFD59, ++- 0xFE97, 0xFF81, 0x0000, 0x003F, 0x0078, 0x00AB, 0x00D9, 0x0100, ++- 0x0123, 0x0140, 0x0159, 0x016D, 0x017C, 0x0188, 0x0190, 0x0194, ++- 0x0194, 0x0192, 0x018C, 0x0184, 0x0179, 0x016C, 0x015D, 0x014D, ++- 0x013A, 0x0127, 0x0112, 0x00FD, 0x00E7, 0x00D1, 0x00BB, 0x00A5, ++- 0x008F, 0x007A, 0x0066, 0x0053, 0x0042, 0x0031, 0x0023, 0x0017, ++- 0x000D, 0x0006, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF549, ++- 0xF543, 0xF535, 0xF521, 0xF50B, 0xF4F8, 0xF4EB, 0xF4E8, 0xF4F3, ++- 0xF50F, 0xF571, 0xF61C, 0xF6CC, 0xF73C, 0xF751, 0xF732, 0xF6FE, ++- 0xF6D7, 0xF707, 0xF6AE, 0xF540, 0xF372, 0xF17C, 0xEF94, 0xEDEE, ++- 0xECC3, 0xEC47, 0xEC5C, 0xECB5, 0xED48, 0xEE09, 0xEEEC, 0xEFE5, ++- 0xF0E8, 0xF1EA, 0xF2E0, 0xF3BC, 0xF475, 0xF4FD, 0xF549, 0xF572, ++- 0xF597, 0xF5B7, 0xF5D4, 0xF5EE, 0xF604, 0xF617, 0xF627, 0xF633, ++- 0xF63D, 0xF645, 0xF64A, 0xF64C, 0xF64D, 0xF64B, 0xF647, 0xF642, ++- 0xF63B, 0xF633, 0xF629, 0xF61F, 0xF613, 0xF607, 0xF5F9, 0xF5EC, ++- 0xF5DE, 0xF5D0, 0xF5C2, 0xF5B3, 0xF5A6, 0xF598, 0xF58B, 0xF57F, ++- 0xF574, 0xF569, 0xF560, 0xF558, 0xF552, 0xF54D, 0xF54A, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xC7DD, 0xC7C7, 0xC798, 0xC76A, 0xC75C, ++- 0xC789, 0xC80E, 0xC906, 0xCA8D, 0xCCC1, 0xD220, 0xDAE1, 0xE3B8, ++- 0xE957, 0xEA96, 0xE94F, 0xE6BA, 0xE411, 0xDFE4, 0xDB94, 0xD918, ++- 0xD6C5, 0xD496, 0xD287, 0xD094, 0xCEB8, 0xCCF0, 0xCB0D, 0xC8F5, ++- 0xC6BB, 0xC475, 0xC237, 0xC016, 0xBE28, 0xBC81, 0xBB37, 0xBA5D, ++- 0xBA09, 0xBA50, 0xBAF9, 0xBBBA, 0xBC94, 0xBD84, 0xBE89, 0xBFA2, ++- 0xC0CE, 0xC20A, 0xC357, 0xC4B1, 0xC619, 0xC78C, 0xC909, 0xCA8F, ++- 0xCC1D, 0xCDB1, 0xCF4A, 0xD0E6, 0xD284, 0xD423, 0xD5C1, 0xD75D, ++- 0xD8F5, 0xDA89, 0xDC17, 0xDD9D, 0xDF1B, 0xE08E, 0xE1F5, 0xE350, ++- 0xE49C, 0xE5D9, 0xE704, 0xE81D, 0xE923, 0xEA13, 0xE9FB, 0xE85B, ++- 0xE5DE, 0xE32F, 0xE0F9, 0xDFE7, 0xE005, 0xE0C5, 0xE1F2, 0xE355, ++- 0xE4B7, 0xE5E1, 0xE69E, 0xE6B5, 0xE5F1, 0xE413, 0xE132, 0xDD96, ++- 0xD989, 0xD553, 0xD13D, 0xCD91, 0xCA97, 0xC898, 0xC7DD, 0x054B, ++- 0x0588, 0x0615, 0x06BA, 0x073B, 0x075F, 0x06EB, 0x05A5, 0x0352, ++- 0xFFB8, 0xF621, 0xE640, 0xD678, 0xCD2E, 0xCBD3, 0xCF14, 0xD630, ++- 0xE067, 0xFAF3, 0x1244, 0x15D6, 0x16DD, 0x160A, 0x140F, 0x119A, ++- 0x0F5D, 0x0E08, 0x0D59, 0x0C9C, 0x0BD5, 0x0B07, 0x0A37, 0x0969, ++- 0x08A0, 0x07E2, 0x0731, 0x0693, 0x060A, 0x059C, 0x054B, 0x0511, ++- 0x04E2, 0x04BC, 0x04A0, 0x048D, 0x0481, 0x047B, 0x047C, 0x0483, ++- 0x048D, 0x049C, 0x04AD, 0x04C0, 0x04D5, 0x04EA, 0x04FF, 0x0513, ++- 0x0525, 0x0535, 0x0541, 0x0549, 0x054B, 0x05DD, 0x071C, 0x085C, ++- 0x08ED, 0x0821, 0x054B, 0x0082, 0xFA82, 0xF38F, 0xEBF4, 0xE3F6, ++- 0xDBDE, 0xD3F2, 0xCC7A, 0xC5BE, 0xC005, 0xBB96, 0xB8B9, 0xB7B5, ++- 0xB854, 0xBA1B, 0xBCE6, 0xC093, 0xC4FF, 0xCA08, 0xCF8B, 0xD564, ++- 0xDB71, 0xE190, 0xE79D, 0xED76, 0xF2F9, 0xF802, 0xFC6E, 0x001A, ++- 0x02E5, 0x04AC, 0x054B, 0x2BD6, 0x2BD1, 0x2BC2, 0x2BAA, 0x2B89, ++- 0x2B62, 0x2B33, 0x2AFF, 0x2AC5, 0x2A87, 0x29DF, 0x28DC, 0x2834, ++- 0x289B, 0x2B11, 0x2EF2, 0x3276, 0x33D8, 0x2DBD, 0x26F4, 0x25A0, ++- 0x24D6, 0x247A, 0x246F, 0x249C, 0x24E4, 0x252B, 0x257A, 0x25E5, ++- 0x2667, 0x26FB, 0x279B, 0x2843, 0x28EB, 0x2991, 0x2A2D, 0x2ABA, ++- 0x2B34, 0x2B94, 0x2BD6, 0x2C03, 0x2C27, 0x2C43, 0x2C59, 0x2C68, ++- 0x2C71, 0x2C75, 0x2C74, 0x2C6F, 0x2C67, 0x2C5C, 0x2C4F, 0x2C40, ++- 0x2C31, 0x2C20, 0x2C10, 0x2C01, 0x2BF3, 0x2BE7, 0x2BDE, 0x2BD8, ++- 0x2BD6, 0x2BD0, 0x2BC2, 0x2BB3, 0x2BAD, 0x2BB6, 0x2BD6, 0x2C0D, ++- 0x2C51, 0x2CA1, 0x2CF7, 0x2D52, 0x2DAF, 0x2E09, 0x2E5E, 0x2EAB, ++- 0x2EEC, 0x2F1F, 0x2F40, 0x2F4B, 0x2F44, 0x2F30, 0x2F10, 0x2EE6, ++- 0x2EB4, 0x2E7A, 0x2E3B, 0x2DF9, 0x2DB4, 0x2D6E, 0x2D29, 0x2CE6, ++- 0x2CA7, 0x2C6E, 0x2C3B, 0x2C11, 0x2BF2, 0x2BDD, 0x2BD6, 0xCCF6, ++- 0xCC30, 0xC9F7, 0xC671, 0xC1C3, 0xBC14, 0xB589, 0xAE48, 0xA677, ++- 0x9E3B, 0x9093, 0x7D00, 0x6A73, 0x5FD8, 0x5F88, 0x65A7, 0x6FCE, ++- 0x7B96, 0x9226, 0xA6A2, 0xAD79, 0xB2D4, 0xB6F6, 0xBA25, 0xBCA3, ++- 0xBEB4, 0xC09D, 0xC26E, 0xC40D, 0xC57F, 0xC6C6, 0xC7E6, 0xC8E2, ++- 0xC9BE, 0xCA7C, 0xCB21, 0xCBAF, 0xCC2B, 0xCC96, 0xCCF6, 0xCD48, ++- 0xCD8B, 0xCDC0, 0xCDE8, 0xCE03, 0xCE14, 0xCE1C, 0xCE1A, 0xCE12, ++- 0xCE03, 0xCDEE, 0xCDD6, 0xCDBA, 0xCD9D, 0xCD7F, 0xCD61, 0xCD45, ++- 0xCD2C, 0xCD16, 0xCD05, 0xCCFA, 0xCCF6, 0xCDD6, 0xCFC3, 0xD1B0, ++- 0xD290, 0xD156, 0xCCF6, 0xC593, 0xBC4D, 0xB195, 0xA5D6, 0x9981, ++- 0x8D02, 0x80C9, 0x753F, 0x6ADA, 0x6205, 0x5B2D, 0x56C1, 0x552F, ++- 0x5625, 0x58E3, 0x5D33, 0x62E0, 0x69B4, 0x7179, 0x79FA, 0x8304, ++- 0x8C5B, 0x95CD, 0x9F25, 0xA82C, 0xB0AC, 0xB872, 0xBF45, 0xC4F2, ++- 0xC942, 0xCC00, 0xCCF6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++- 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, ++- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, ++- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, ++- 0x0003, 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, ++- 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++- 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, ++- 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, 0x0003, 0x0002, ++- 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xC9D8, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, ++- 0xC9DC, 0xC9DD, 0xC9DE, 0xC9DF, 0xC9DF, 0xC9DF, 0xC9E0, 0xC9E0, ++- 0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E6, 0xC9E7, 0xC9E9, 0xC9EA, ++- 0xC9EC, 0xC9EE, 0xC9EF, 0xC9F0, 0xC9F1, 0xC9F2, 0xC9F3, 0xC9F3, ++- 0xC9F3, 0xC9F3, 0xC9F2, 0xC9F1, 0xC9EF, 0xC9ED, 0xC9EA, 0xC9E6, ++- 0xC9E2, 0xC9DE, 0xC9D8, 0xC9D2, 0xC9CB, 0xC9C3, 0xC9BB, 0xC9B2, ++- 0xC9A9, 0xC99F, 0xC995, 0xC98A, 0xC97F, 0xC973, 0xC967, 0xC95B, ++- 0xC94E, 0xC942, 0xC935, 0xC928, 0xC91B, 0xC90E, 0xC901, 0xC8F4, ++- 0xC8E7, 0xC8DB, 0xC8CE, 0xC8C2, 0xC8B6, 0xC8AA, 0xC89F, 0xC894, ++- 0xC889, 0xC87F, 0xC875, 0xC86C, 0xC863, 0xC85C, 0xC854, 0xC84E, ++- 0xC848, 0xC843, 0xC83F, 0xC83B, 0xC839, 0xC837, 0xC837, 0xC83C, ++- 0xC849, 0xC85D, 0xC878, 0xC898, 0xC8BB, 0xC8E1, 0xC907, 0xC92E, ++- 0xC954, 0xC977, 0xC997, 0xC9B2, 0xC9C6, 0xC9D3, 0xC9D8, 0x1E4A, ++- 0x1E4F, 0x1E5E, 0x1E74, 0x1E8F, 0x1EAC, 0x1ECA, 0x1EE5, 0x1EFB, ++- 0x1F0A, 0x1F0F, 0x1F0E, 0x1F0C, 0x1F08, 0x1F02, 0x1EFC, 0x1EF4, ++- 0x1EEB, 0x1EE1, 0x1ED7, 0x1ECC, 0x1EC0, 0x1EB5, 0x1EA9, 0x1E9D, ++- 0x1E91, 0x1E86, 0x1E7B, 0x1E70, 0x1E67, 0x1E5E, 0x1E56, 0x1E4F, ++- 0x1E49, 0x1E45, 0x1E42, 0x1E41, 0x1E42, 0x1E45, 0x1E4A, 0x1E50, ++- 0x1E58, 0x1E61, 0x1E6C, 0x1E77, 0x1E84, 0x1E91, 0x1E9F, 0x1EAF, ++- 0x1EBF, 0x1ED0, 0x1EE1, 0x1EF3, 0x1F05, 0x1F18, 0x1F2C, 0x1F3F, ++- 0x1F53, 0x1F67, 0x1F7B, 0x1F8F, 0x1FA3, 0x1FB7, 0x1FCA, 0x1FDD, ++- 0x1FF0, 0x2003, 0x2015, 0x2027, 0x2037, 0x2048, 0x2057, 0x2066, ++- 0x2073, 0x2080, 0x208C, 0x2096, 0x20A0, 0x20A8, 0x20AF, 0x20B4, ++- 0x20B8, 0x20BB, 0x20BB, 0x20B4, 0x20A0, 0x2082, 0x205A, 0x202A, ++- 0x1FF5, 0x1FBD, 0x1F82, 0x1F48, 0x1F10, 0x1EDB, 0x1EAB, 0x1E83, ++- 0x1E64, 0x1E51, 0x1E4A, 0x1B09, 0x1B06, 0x1AFF, 0x1AF4, 0x1AE5, ++- 0x1AD4, 0x1AC1, 0x1AAD, 0x1A99, 0x1A86, 0x1A73, 0x1A46, 0x1A4C, ++- 0x1A52, 0x1A58, 0x1A5F, 0x1A67, 0x1A6E, 0x1A76, 0x1A7F, 0x1A87, ++- 0x1A90, 0x1A98, 0x1AA1, 0x1AAA, 0x1AB3, 0x1ABB, 0x1AC4, 0x1ACC, ++- 0x1AD4, 0x1ADB, 0x1AE2, 0x1AE9, 0x1AF0, 0x1AF5, 0x1AFB, 0x1AFF, ++- 0x1B03, 0x1B06, 0x1B09, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0E, ++- 0x1B0F, 0x1B0E, 0x1B0E, 0x1B0D, 0x1B0C, 0x1B0B, 0x1B09, 0x1B07, ++- 0x1B05, 0x1B03, 0x1B00, 0x1AFE, 0x1AFB, 0x1AF7, 0x1AF4, 0x1AF0, ++- 0x1AED, 0x1AE9, 0x1AE5, 0x1AE0, 0x1ADC, 0x1AD8, 0x1AD3, 0x1ACE, ++- 0x1AC9, 0x1AC5, 0x1AC0, 0x1AB8, 0x1AAD, 0x1A9E, 0x1A8E, 0x1A7C, ++- 0x1A6A, 0x1A58, 0x1A49, 0x1A3B, 0x1A31, 0x1A2C, 0x1A2B, 0x1A30, ++- 0x1A39, 0x1A45, 0x1A54, 0x1A65, 0x1A77, 0x1A8B, 0x1A9F, 0x1AB3, ++- 0x1AC6, 0x1AD8, 0x1AE8, 0x1AF6, 0x1B00, 0x1B06, 0x1B09, 0x1144, ++- 0x1149, 0x1155, 0x1168, 0x1180, 0x119C, 0x11BB, 0x11DC, 0x11FD, ++- 0x121D, 0x123B, 0x1282, 0x1279, 0x126F, 0x1264, 0x1259, 0x124D, ++- 0x1240, 0x1233, 0x1225, 0x1218, 0x120A, 0x11FB, 0x11ED, 0x11DF, ++- 0x11D1, 0x11C3, 0x11B5, 0x11A8, 0x119B, 0x118F, 0x1183, 0x1178, ++- 0x116D, 0x1164, 0x115B, 0x1154, 0x114E, 0x1148, 0x1144, 0x1141, ++- 0x113F, 0x113D, 0x113C, 0x113B, 0x113B, 0x113B, 0x113C, 0x113D, ++- 0x113F, 0x1141, 0x1144, 0x1147, 0x114A, 0x114E, 0x1152, 0x1157, ++- 0x115C, 0x1161, 0x1166, 0x116C, 0x1172, 0x1179, 0x117F, 0x1186, ++- 0x118D, 0x1195, 0x119C, 0x11A4, 0x11AC, 0x11B4, 0x11BC, 0x11C8, ++- 0x11DA, 0x11F2, 0x120D, 0x1229, 0x1247, 0x1263, 0x127D, 0x1293, ++- 0x12A3, 0x12AC, 0x12AC, 0x12A5, 0x1296, 0x1283, 0x126B, 0x124F, ++- 0x1230, 0x1210, 0x11F0, 0x11CF, 0x11B0, 0x1193, 0x1179, 0x1164, ++- 0x1153, 0x1148, 0x1144, 0xAC44, 0xAC3E, 0xAC2C, 0xAC12, 0xABEF, ++- 0xABC7, 0xAB9A, 0xAB6B, 0xAB3C, 0xAB0D, 0xAAE2, 0xAA7B, 0xAA88, ++- 0xAA96, 0xAAA5, 0xAAB6, 0xAAC7, 0xAAD9, 0xAAEC, 0xAAFF, 0xAB13, ++- 0xAB28, 0xAB3C, 0xAB51, 0xAB65, 0xAB79, 0xAB8E, 0xABA1, 0xABB4, ++- 0xABC7, 0xABD9, 0xABEA, 0xABFA, 0xAC09, 0xAC16, 0xAC23, 0xAC2D, ++- 0xAC37, 0xAC3E, 0xAC44, 0xAC48, 0xAC4C, 0xAC4E, 0xAC50, 0xAC51, ++- 0xAC52, 0xAC51, 0xAC50, 0xAC4E, 0xAC4C, 0xAC49, 0xAC45, 0xAC41, ++- 0xAC3C, 0xAC36, 0xAC30, 0xAC2A, 0xAC23, 0xAC1B, 0xAC13, 0xAC0B, ++- 0xAC02, 0xABF9, 0xABEF, 0xABE5, 0xABDB, 0xABD0, 0xABC5, 0xABBA, ++- 0xABAF, 0xABA4, 0xAB98, 0xAB87, 0xAB6C, 0xAB4A, 0xAB23, 0xAAFA, ++- 0xAACF, 0xAAA6, 0xAA81, 0xAA62, 0xAA4A, 0xAA3D, 0xAA3C, 0xAA48, ++- 0xAA5C, 0xAA78, 0xAA9B, 0xAAC3, 0xAAEF, 0xAB1D, 0xAB4C, 0xAB7B, ++- 0xABA8, 0xABD2, 0xABF7, 0xAC17, 0xAC2F, 0xAC3E, 0xAC44, 0x0000, ++- 0xFFF2, 0xFFCB, 0xFF90, 0xFF48, 0xFEF7, 0xFEA2, 0xFE50, 0xFE07, ++- 0xFDCA, 0xFDA0, 0xFD8F, 0xFDC4, 0xFE4A, 0xFEEE, 0xFF7E, 0xFFC8, ++- 0xFFDD, 0xFFEE, 0xFFFD, 0x0008, 0x0011, 0x0018, 0x001D, 0x0020, ++- 0x0021, 0x0021, 0x0020, 0x001D, 0x001A, 0x0017, 0x0013, 0x000E, ++- 0x000A, 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, ++- 0x0003, 0x0004, 0x0006, 0x0007, 0x0008, 0x000A, 0x000B, 0x000C, ++- 0x000D, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, ++- 0x0016, 0x0017, 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, ++- 0x001D, 0x001E, 0x001F, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, ++- 0x0025, 0x0026, 0x0027, 0x0028, 0x0028, 0x0029, 0x0029, 0x002A, ++- 0x0029, 0x0029, 0x0028, 0x0027, 0x0025, 0x0022, 0x001F, 0x001C, ++- 0x0019, 0x0015, 0x0012, 0x000E, 0x000B, 0x0008, 0x0005, 0x0003, ++- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++- 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0000, 0xFFFD, ++- 0xFFF8, 0xFFF1, 0xFFEC, 0xFFEA, 0xFFEA, 0xFFEA, 0xFFEB, 0xFFEC, ++- 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF5, ++- 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFE, 0xFFFE, ++- 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, ++- 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBF40, ++- 0xBF4F, 0xBF79, 0xBFB8, 0xC007, 0xC060, 0xC0BE, 0xC11B, 0xC172, ++- 0xC1BD, 0xC1F7, 0xC21A, 0xC206, 0xC1B3, 0xC144, 0xC0DE, 0xC0A3, ++- 0xC089, 0xC070, 0xC058, 0xC041, 0xC02B, 0xC016, 0xC001, 0xBFEE, ++- 0xBFDB, 0xBFCA, 0xBFB9, 0xBFA9, 0xBF9B, 0xBF8D, 0xBF80, 0xBF75, ++- 0xBF6A, 0xBF60, 0xBF58, 0xBF50, 0xBF4A, 0xBF45, 0xBF40, 0xBF3D, ++- 0xBF3A, 0xBF38, 0xBF37, 0xBF36, 0xBF36, 0xBF37, 0xBF38, 0xBF3A, ++- 0xBF3C, 0xBF3F, 0xBF43, 0xBF47, 0xBF4C, 0xBF51, 0xBF57, 0xBF5D, ++- 0xBF64, 0xBF6C, 0xBF74, 0xBF7C, 0xBF85, 0xBF8F, 0xBF99, 0xBFA4, ++- 0xBFAF, 0xBFBA, 0xBFC6, 0xBFD3, 0xBFE0, 0xBFF2, 0xC00C, 0xC02C, ++- 0xC052, 0xC07B, 0xC0A6, 0xC0D2, 0xC0FC, 0xC123, 0xC145, 0xC162, ++- 0xC177, 0xC182, 0xC183, 0xC178, 0xC162, 0xC143, 0xC11D, 0xC0F0, ++- 0xC0BF, 0xC08C, 0xC057, 0xC022, 0xBFF0, 0xBFC1, 0xBF97, 0xBF73, ++- 0xBF58, 0xBF46, 0xBF40, 0x2537, 0x252D, 0x2512, 0x24EB, 0x24B9, ++- 0x2482, 0x244A, 0x2413, 0x23E2, 0x23BA, 0x239F, 0x2395, 0x2397, ++- 0x239C, 0x23A3, 0x23AD, 0x23B9, 0x23C8, 0x23D8, 0x23EA, 0x23FD, ++- 0x2412, 0x2427, 0x243D, 0x2453, 0x246A, 0x2480, 0x2497, 0x24AC, ++- 0x24C1, 0x24D6, 0x24E8, 0x24FA, 0x2509, 0x2517, 0x2523, 0x252C, ++- 0x2532, 0x2536, 0x2537, 0x2535, 0x2532, 0x252D, 0x2528, 0x2521, ++- 0x2519, 0x2510, 0x2506, 0x24FB, 0x24EF, 0x24E3, 0x24D6, 0x24C8, ++- 0x24B9, 0x24AA, 0x249B, 0x248B, 0x247B, 0x246B, 0x245B, 0x244A, ++- 0x2439, 0x2429, 0x2418, 0x2408, 0x23F8, 0x23E8, 0x23D9, 0x23CA, ++- 0x23BB, 0x23AD, 0x23A0, 0x2393, 0x2387, 0x237C, 0x2372, 0x2369, ++- 0x2360, 0x2359, 0x2353, 0x234F, 0x234B, 0x2349, 0x2348, 0x234E, ++- 0x235D, 0x2376, 0x2395, 0x23BB, 0x23E5, 0x2411, 0x243F, 0x246E, ++- 0x249A, 0x24C4, 0x24E9, 0x2509, 0x2521, 0x2531, 0x2537, 0xD64A, ++- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, ++- 0x4171, 0xBF5F, 0x0000, 0xFF82, 0xFE28, 0xFC20, 0xF999, 0xF6C3, ++- 0xF3CD, 0xF0E6, 0xEE3E, 0xEC02, 0xE987, 0xE6E6, 0xE576, 0xE68F, ++- 0xEA93, 0xF065, 0xF725, 0xFDF2, 0x03EA, 0x082F, 0x0A52, 0x0AE1, ++- 0x0A71, 0x0996, 0x08E6, 0x0878, 0x07FF, 0x077D, 0x06F3, 0x0661, ++- 0x05CA, 0x052D, 0x048B, 0x03E7, 0x0340, 0x0298, 0x01F0, 0x0148, ++- 0x00A2, 0x0000, 0xFF2F, 0xFE27, 0xFD2A, 0xFC77, 0xFC4F, 0xFD02, ++- 0xFE66, 0x0001, 0x015C, 0x01FF, 0x019D, 0x0086, 0xFF2E, 0xFE05, ++- 0xFD7F, 0xFDBB, 0xFE6F, 0xFF6F, 0x0093, 0x01B1, 0x029F, 0x0333, ++- 0x0343, 0x02A4, 0x012E, 0xFDE0, 0xF86F, 0xF1C1, 0xEABA, 0xE440, ++- 0xDF38, 0xDC87, 0xDC8D, 0xDE9E, 0xE20D, 0xE630, 0xEA5A, 0xEDDF, ++- 0xF014, 0xF0F2, 0xF113, 0xF0B3, 0xF011, 0xEF6B, 0xEF00, 0xEF0E, ++- 0xEF78, 0xEFF7, 0xF08C, 0xF138, 0xF1FC, 0xF2D8, 0xF3CD, 0xF4DB, ++- 0xF604, 0xF7D4, 0xFA67, 0xFD11, 0xFF28, 0x0000, 0x0000, 0x001B, ++- 0x0067, 0x00D7, 0x0162, 0x01FB, 0x0297, 0x032C, 0x03AF, 0x0414, ++- 0x0461, 0x0491, 0x0488, 0x042B, 0x0375, 0x0285, 0x0173, 0x0058, ++- 0xFF50, 0xFE70, 0xFDAB, 0xFCEF, 0xFC53, 0xFBED, 0xFBD3, 0xFBEB, ++- 0xFC0B, 0xFC31, 0xFC5F, 0xFC94, 0xFCD0, 0xFD13, 0xFD5C, 0xFDAB, ++- 0xFE00, 0xFE5C, 0xFEBD, 0xFF23, 0xFF8F, 0x0000, 0x00C8, 0x0200, ++- 0x0350, 0x0462, 0x04DE, 0x047F, 0x037E, 0x0245, 0x013C, 0x00CC, ++- 0x013A, 0x023E, 0x0374, 0x0475, 0x04DD, 0x04C5, 0x048C, 0x0437, ++- 0x03CB, 0x034D, 0x02C1, 0x022B, 0x0192, 0x00F9, 0x0064, 0xFFB3, ++- 0xFED0, 0xFDD7, 0xFCE4, 0xFC14, 0xFB81, 0xFB47, 0xFB76, 0xFBFC, ++- 0xFCBE, 0xFDA4, 0xFE94, 0xFF75, 0x002D, 0x00D5, 0x018A, 0x023E, ++- 0x02E2, 0x0366, 0x03BB, 0x03D3, 0x03AA, 0x034F, 0x02CE, 0x0235, ++- 0x018E, 0x00E8, 0x004E, 0xFFCD, 0xFF70, 0xFF52, 0xFF71, 0xFFAC, ++- 0xFFE6, 0x0000, 0xFC62, 0xFC99, 0xFD2E, 0xFE0A, 0xFF16, 0x003A, ++- 0x015F, 0x026D, 0x034E, 0x03E9, 0x044D, 0x045B, 0x03BE, 0x021D, ++- 0xFF22, 0xFB1A, 0xF6AD, 0xF27D, 0xEF31, 0xED6E, 0xEE10, 0xF0C0, ++- 0xF454, 0xF7A2, 0xF97D, 0xFA2C, 0xFABA, 0xFB2B, 0xFB83, 0xFBC4, ++- 0xFBF2, 0xFC11, 0xFC24, 0xFC2D, 0xFC31, 0xFC32, 0xFC34, 0xFC3B, ++- 0xFC49, 0xFC62, 0xFC6D, 0xFC58, 0xFC33, 0xFC0C, 0xFBF1, 0xFBE3, ++- 0xFBD8, 0xFBD0, 0xFBC7, 0xFBBD, 0xFBAF, 0xFB9E, 0xFB8E, 0xFB82, ++- 0xFB7D, 0xFB8A, 0xFBAA, 0xFBD5, 0xFC04, 0xFC30, 0xFC50, 0xFC5D, ++- 0xFC4F, 0xFC1E, 0xFBC4, 0xFAD7, 0xF938, 0xF746, 0xF564, 0xF3F3, ++- 0xF353, 0xF3E6, 0xF5FF, 0xF962, 0xFD9D, 0x023B, 0x06CD, 0x0ADE, ++- 0x0DFB, 0x1068, 0x12A1, 0x1488, 0x1602, 0x16F2, 0x173B, 0x16C0, ++- 0x156F, 0x1365, 0x10CE, 0x0DD9, 0x0AB1, 0x0784, 0x047E, 0x01CC, ++- 0xFF9B, 0xFE11, 0xFD1D, 0xFC9D, 0xFC6A, 0xFC62, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0xFFEA, 0xFFBC, 0xFF9A, 0xFFA7, 0x0005, 0x00FA, 0x0270, 0x03FD, ++- 0x0539, 0x05B9, 0x05B0, 0x0596, 0x056D, 0x0536, 0x04F4, 0x04A8, ++- 0x0453, 0x03F7, 0x0397, 0x0333, 0x02CD, 0x0267, 0x0203, 0x01A2, ++- 0x0146, 0x00F1, 0x00A4, 0x0061, 0x002A, 0x0000, 0xFFE0, 0xFFC4, ++- 0xFFAC, 0xFF99, 0xFF89, 0xFF7C, 0xFF73, 0xFF6C, 0xFF68, 0xFF66, ++- 0xFF66, 0xFF68, 0xFF6C, 0xFF70, 0xFF75, 0xFF7B, 0xFF81, 0xFF87, ++- 0xFF8D, 0xFF92, 0xFF96, 0xFF99, 0xFF9B, 0xFF9A, 0xFF98, 0xFF95, ++- 0xFF94, 0xFF93, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, 0xFF92, ++- 0xFF91, 0xFF90, 0xFF8F, 0xFF91, 0xFF94, 0xFF98, 0xFF9D, 0xFFA3, ++- 0xFFA9, 0xFFAF, 0xFFB6, 0xFFBD, 0xFFC3, 0xFFCA, 0xFFD1, 0xFFD8, ++- 0xFFDF, 0xFFE5, 0xFFEB, 0xFFF0, 0xFFF5, 0xFFF9, 0xFFFC, 0xFFFE, ++- 0x0000, 0x0000, 0x0000, 0xFFEF, 0xFFC3, 0xFF89, 0xFF50, 0xFF24, ++- 0xFF12, 0xFF28, 0xFF73, 0x0000, 0x0168, 0x03C7, 0x066C, 0x08A6, ++- 0x09C7, 0x0967, 0x07FE, 0x0622, 0x046D, 0x0376, 0x0316, 0x02BF, ++- 0x026E, 0x0225, 0x01E3, 0x01A6, 0x0170, 0x013F, 0x0113, 0x00EC, ++- 0x00C9, 0x00AA, 0x008D, 0x0074, 0x005D, 0x0048, 0x0035, 0x0022, ++- 0x0011, 0x0000, 0xFFF1, 0xFFE4, 0xFFDB, 0xFFD5, 0xFFD1, 0xFFD0, ++- 0xFFD1, 0xFFD4, 0xFFD8, 0xFFDF, 0xFFE6, 0xFFEF, 0xFFF9, 0x0002, ++- 0x000D, 0x0019, 0x0024, 0x002F, 0x003A, 0x0044, 0x004E, 0x0056, ++- 0x005E, 0x0063, 0x0068, 0x0054, 0x001E, 0xFFDC, 0xFF9E, 0xFF7B, ++- 0xFF84, 0xFFCF, 0x006E, 0x01D7, 0x041C, 0x06BE, 0x093D, 0x0B18, ++- 0x0BD0, 0x0BB8, 0x0B7C, 0x0B1F, 0x0AA6, 0x0A13, 0x096C, 0x08B3, ++- 0x07ED, 0x071E, 0x0648, 0x0572, 0x049D, 0x03CE, 0x0309, 0x0252, ++- 0x01AD, 0x011C, 0x00A6, 0x004C, 0x0013, 0x0000, 0x0884, 0x0847, ++- 0x07A3, 0x06B4, 0x0597, 0x0468, 0x0343, 0x0245, 0x018A, 0x012E, ++- 0x018E, 0x02B0, 0x042D, 0x059E, 0x069D, 0x071D, 0x0762, 0x0780, ++- 0x078B, 0x0797, 0x07AA, 0x07BD, 0x07CE, 0x07DE, 0x07EE, 0x07FD, ++- 0x080B, 0x0818, 0x0825, 0x0831, 0x083C, 0x0846, 0x0850, 0x0859, ++- 0x0862, 0x086A, 0x0871, 0x0878, 0x087E, 0x0884, 0x0889, 0x088D, ++- 0x0890, 0x0893, 0x0895, 0x0897, 0x0898, 0x0898, 0x0899, 0x0898, ++- 0x0898, 0x0897, 0x0896, 0x0895, 0x0893, 0x0892, 0x0890, 0x088F, ++- 0x088D, 0x088C, 0x088B, 0x088A, 0x0889, 0x0889, 0x0889, 0x0889, ++- 0x088A, 0x088B, 0x088B, 0x088C, 0x088C, 0x088B, 0x0889, 0x0885, ++- 0x087F, 0x0879, 0x0872, 0x086D, 0x086B, 0x086B, 0x086B, 0x086C, ++- 0x086D, 0x086E, 0x086F, 0x0871, 0x0872, 0x0874, 0x0876, 0x0878, ++- 0x0879, 0x087B, 0x087D, 0x087E, 0x0880, 0x0881, 0x0882, 0x0883, ++- 0x0883, 0x0884, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, ++- 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0009, 0x0009, 0x0009, ++- 0x0009, 0x0009, 0x0008, 0x0008, 0x0008, 0x0008, 0x0007, 0x0007, ++- 0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, ++- 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, ++- 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ++- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ++- 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ++- 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, ++- 0x0009, 0x0014, 0x0021, 0x0031, 0x0041, 0x0051, 0x0060, 0x006D, ++- 0x0077, 0x007E, 0x007F, 0x007F, 0x007E, 0x007C, 0x007A, 0x0077, ++- 0x0074, 0x0070, 0x006B, 0x0067, 0x0062, 0x005C, 0x0057, 0x0051, ++- 0x004B, 0x0045, 0x003F, 0x0038, 0x0032, 0x002C, 0x0025, 0x001F, ++- 0x0019, 0x0014, 0x000E, 0x0009, 0x0004, 0x0000, 0xFFFC, 0xFFF7, ++- 0xFFF2, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDB, 0xFFD5, 0xFFCF, 0xFFC9, ++- 0xFFC3, 0xFFBD, 0xFFB7, 0xFFB1, 0xFFAB, 0xFFA5, 0xFFA0, 0xFF9B, ++- 0xFF96, 0xFF92, 0xFF8E, 0xFF8A, 0xFF87, 0xFF85, 0xFF83, 0xFF81, ++- 0xFF80, 0xFF80, 0xFF80, 0xFF81, 0xFF83, 0xFF88, 0xFF92, 0xFFA0, ++- 0xFFB2, 0xFFC5, 0xFFDB, 0xFFF2, 0x0007, 0x001D, 0x0032, 0x0044, ++- 0x0054, 0x005F, 0x0066, 0x0069, 0x0068, 0x0064, 0x005D, 0x0055, ++- 0x004B, 0x0041, 0x0035, 0x002A, 0x001F, 0x0015, 0x000C, 0x0005, ++- 0x0001, 0x0000, 0x40A1, 0x40A4, 0x40AC, 0x40B8, 0x40C7, 0x40D7, ++- 0x40E8, 0x40F8, 0x4107, 0x4112, 0x4118, 0x411A, 0x4119, 0x4118, ++- 0x4116, 0x4114, 0x4111, 0x410D, 0x4109, 0x4105, 0x4101, 0x40FC, ++- 0x40F6, 0x40F1, 0x40EC, 0x40E6, 0x40E0, 0x40DA, 0x40D4, 0x40CF, ++- 0x40C9, 0x40C3, 0x40BE, 0x40B9, 0x40B4, 0x40AF, 0x40AB, 0x40A7, ++- 0x40A4, 0x40A1, 0x409E, 0x409C, 0x409A, 0x4098, 0x4096, 0x4094, ++- 0x4092, 0x4090, 0x408F, 0x408D, 0x408C, 0x408A, 0x4089, 0x4088, ++- 0x4087, 0x4086, 0x4085, 0x4084, 0x4084, 0x4083, 0x4082, 0x4082, ++- 0x4081, 0x4080, 0x4080, 0x407F, 0x407F, 0x407E, 0x407E, 0x407D, ++- 0x407D, 0x407D, 0x407D, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, ++- 0x4083, 0x4084, 0x4086, 0x4088, 0x4089, 0x408A, 0x408C, 0x408D, ++- 0x408F, 0x4091, 0x4093, 0x4094, 0x4096, 0x4098, 0x409A, 0x409C, ++- 0x409D, 0x409E, 0x40A0, 0x40A0, 0x40A1, 0x40A1, +++0x0000, 0x0001, 0x0003, 0x0006, 0x000A, 0x000F, 0x0015, 0x001A, 0x0020, +++ 0x0025, 0x002A, 0x002E, 0x0032, 0x0034, 0x0035, 0x0035, 0x0035, 0x0035, +++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +++ 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0034, +++ 0x0033, 0x0030, 0x002D, 0x002A, 0x0026, 0x0021, 0x001D, 0x0018, 0x0013, +++ 0x000F, 0x000B, 0x0007, 0x0004, 0x0002, 0x0001, 0x0000, 0x00AA, 0x00A9, +++ 0x00A6, 0x00A1, 0x009C, 0x0095, 0x008D, 0x0086, 0x007E, 0x0076, 0x0070, +++ 0x006A, 0x0065, 0x0062, 0x0061, 0x0062, 0x0064, 0x0066, 0x0069, 0x006D, +++ 0x0070, 0x0073, 0x0076, 0x0078, 0x0078, 0x0078, 0x0076, 0x0073, 0x0070, +++ 0x006D, 0x0069, 0x0066, 0x0064, 0x0062, 0x0061, 0x0062, 0x0064, 0x0068, +++ 0x006D, 0x0073, 0x007A, 0x0081, 0x0088, 0x0090, 0x0097, 0x009F, 0x00A5, +++ 0x00AB, 0x00B0, 0x00B4, 0x00B6, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, +++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, +++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, +++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, +++ 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B1, +++ 0x00B0, 0x00AF, 0x00AD, 0x00AC, 0x00AB, 0x00AB, 0x00AA, 0x0000, 0x0000, +++ 0x3FFF, 0x0000, 0x0000, 0x0000, 0x40A1, 0x0000, 0xFFD3, 0xFF59, 0xFE9D, +++ 0xFDAC, 0xFC94, 0xFB62, 0xFA23, 0xF8E3, 0xF7B1, 0xF699, 0xF5A9, 0xF4EC, +++ 0xF472, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, +++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, 0xF446, +++ 0xF446, 0xF446, 0xF446, 0xF446, 0xF43C, 0xF421, 0xF3F5, 0xF3BD, 0xF379, +++ 0xF32D, 0xF2DB, 0xF286, 0xF22F, 0xF1DA, 0xF188, 0xF13C, 0xF0F9, 0xF0C0, +++ 0xF095, 0xF079, 0xF06F, 0xF0A3, 0xF132, 0xF208, 0xF310, 0xF437, 0xF567, +++ 0xF68E, 0xF796, 0xF86B, 0xF8FA, 0xF92F, 0xF8FA, 0xF86B, 0xF796, 0xF68E, +++ 0xF567, 0xF437, 0xF310, 0xF208, 0xF132, 0xF0A3, 0xF06F, 0xF08F, 0xF0E8, +++ 0xF173, 0xF229, 0xF301, 0xF3F3, 0xF4F9, 0xF609, 0xF71D, 0xF82C, 0xF92F, +++ 0xFA1F, 0xFAFB, 0xFBC4, 0xFC7A, 0xFD1E, 0xFDB1, 0xFE31, 0xFEA1, 0xFF01, +++ 0xFF51, 0xFF91, 0xFFC2, 0xFFE4, 0xFFF8, 0x0000, 0xFFFF, 0x0006, 0x0018, +++ 0x0033, 0x0055, 0x007D, 0x00A9, 0x00D6, 0x0104, 0x0130, 0x0158, 0x017A, +++ 0x0195, 0x01A6, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, +++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, +++ 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01AD, 0x01A5, 0x0190, 0x016E, 0x0142, +++ 0x010E, 0x00D3, 0x0094, 0x0052, 0x000E, 0xFFCB, 0xFF8C, 0xFF51, 0xFF1D, +++ 0xFEF1, 0xFECF, 0xFEBA, 0xFEB2, 0xFEB7, 0xFEC2, 0xFED4, 0xFEEA, 0xFF02, +++ 0xFF1B, 0xFF33, 0xFF49, 0xFF5A, 0xFF66, 0xFF6B, 0xFF66, 0xFF5A, 0xFF49, +++ 0xFF33, 0xFF1B, 0xFF02, 0xFEEA, 0xFED4, 0xFEC2, 0xFEB7, 0xFEB2, 0xFEB5, +++ 0xFEBC, 0xFEC8, 0xFED6, 0xFEE8, 0xFEFC, 0xFF12, 0xFF28, 0xFF3F, 0xFF55, +++ 0xFF6B, 0xFF7F, 0xFF91, 0xFFA2, 0xFFB1, 0xFFBF, 0xFFCC, 0xFFD7, 0xFFE0, +++ 0xFFE9, 0xFFF0, 0xFFF5, 0xFFFA, 0xFFFD, 0xFFFE, 0xFFFF, 0x0884, 0x08A3, +++ 0x08F9, 0x097D, 0x0A27, 0x0AEC, 0x0BC3, 0x0CA4, 0x0D85, 0x0E5C, 0x0F21, +++ 0x0FCA, 0x104F, 0x10A5, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, +++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, +++ 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x10C4, 0x1090, 0x0FFD, 0x0F17, +++ 0x0DEB, 0x0C85, 0x0AF2, 0x093F, 0x0779, 0x05AB, 0x03E2, 0x022C, 0x0095, +++ 0xFF27, 0xFDF3, 0xFD03, 0xFC64, 0xFC23, 0xFC16, 0xFC0B, 0xFC03, 0xFBFC, +++ 0xFBF7, 0xFBF4, 0xFBF1, 0xFBF0, 0xFBEF, 0xFBEF, 0xFBEF, 0xFBF0, 0xFBF3, +++ 0xFBF8, 0xFBFE, 0xFC05, 0xFC0C, 0xFC13, 0xFC19, 0xFC1E, 0xFC22, 0xFC23, +++ 0xFC22, 0xFC1E, 0xFC19, 0xFC13, 0xFC0C, 0xFC05, 0xFBFE, 0xFBF8, 0xFBF3, +++ 0xFBF0, 0xFBEF, 0xFC18, 0xFC8B, 0xFD3E, 0xFE24, 0xFF32, 0x005D, 0x0199, +++ 0x02DB, 0x0416, 0x0541, 0x064F, 0x0735, 0x07E7, 0x085B, 0x0884, 0x0000, +++ 0xFF9C, 0xFE87, 0xFCDE, 0xFABE, 0xF844, 0xF590, 0xF2BE, 0xEFEC, 0xED37, +++ 0xEABE, 0xE89E, 0xE6F4, 0xE5DF, 0xE57C, 0xE58C, 0xE5B8, 0xE5F8, 0xE646, +++ 0xE69B, 0xE6EF, 0xE73D, 0xE77D, 0xE7A9, 0xE7B9, 0xE7A9, 0xE77D, 0xE73D, +++ 0xE6EF, 0xE69B, 0xE646, 0xE5F8, 0xE5B8, 0xE58C, 0xE57C, 0xE5D9, 0xE6DF, +++ 0xE878, 0xEA8E, 0xED0A, 0xEFD5, 0xF2D8, 0xF5FE, 0xF92E, 0xFC54, 0xFF57, +++ 0x0223, 0x049F, 0x06B5, 0x084E, 0x0954, 0x09B1, 0x0997, 0x0951, 0x08E9, +++ 0x0868, 0x07D8, 0x0744, 0x06B4, 0x0633, 0x05CB, 0x0585, 0x056C, 0x0585, +++ 0x05CB, 0x0633, 0x06B4, 0x0744, 0x07D8, 0x0868, 0x08E9, 0x0951, 0x0997, +++ 0x09B1, 0x09A3, 0x097D, 0x093F, 0x08EE, 0x088C, 0x081B, 0x079E, 0x0719, +++ 0x068D, 0x05FD, 0x056C, 0x04DC, 0x044F, 0x03C5, 0x0341, 0x02C2, 0x024B, +++ 0x01DB, 0x0174, 0x0118, 0x00C7, 0x0082, 0x004B, 0x0022, 0x0009, 0x0000, +++ 0xFFFF, 0x0033, 0x00C3, 0x01A0, 0x02BB, 0x0404, 0x056C, 0x06E3, 0x085A, +++ 0x09C2, 0x0B0B, 0x0C26, 0x0D03, 0x0D93, 0x0DC6, 0x0DA7, 0x0D53, 0x0CD7, +++ 0x0C40, 0x0B9C, 0x0AF8, 0x0A61, 0x09E5, 0x0991, 0x0972, 0x0991, 0x09E5, +++ 0x0A61, 0x0AF8, 0x0B9C, 0x0C40, 0x0CD7, 0x0D53, 0x0DA7, 0x0DC6, 0x0D95, +++ 0x0D08, 0x0C2C, 0x0B0E, 0x09B8, 0x0837, 0x0697, 0x04E4, 0x032A, 0x0175, +++ 0xFFD0, 0xFE49, 0xFCEC, 0xFBC3, 0xFADC, 0xFA41, 0xFA00, 0xF9F1, 0xF9E5, +++ 0xF9DB, 0xF9D3, 0xF9CD, 0xF9C9, 0xF9C6, 0xF9C5, 0xF9C4, 0xF9C3, 0xF9C3, +++ 0xF9C5, 0xF9C9, 0xF9CE, 0xF9D6, 0xF9DE, 0xF9E6, 0xF9EE, 0xF9F5, 0xF9FB, +++ 0xF9FF, 0xFA00, 0xF9FF, 0xF9FB, 0xF9F5, 0xF9EE, 0xF9E6, 0xF9DE, 0xF9D6, +++ 0xF9CE, 0xF9C9, 0xF9C5, 0xF9C3, 0xF9D8, 0xFA11, 0xFA69, 0xFADB, 0xFB61, +++ 0xFBF5, 0xFC91, 0xFD31, 0xFDCD, 0xFE61, 0xFEE7, 0xFF59, 0xFFB1, 0xFFEB, +++ 0xFFFF, 0xFC61, 0xFC5F, 0xFC5A, 0xFC50, 0xFC42, 0xFC30, 0xFC18, 0xFBFB, +++ 0xFBD9, 0xFBB0, 0xFB81, 0xFB4B, 0xFB0F, 0xFACA, 0xFA7F, 0xFA2C, 0xF9D4, +++ 0xF97A, 0xF922, 0xF8CF, 0xF884, 0xF844, 0xF812, 0xF7F2, 0xF7E6, 0xF7EF, +++ 0xF809, 0xF832, 0xF869, 0xF8AC, 0xF8FA, 0xF951, 0xF9B0, 0xFA15, 0xFA7F, +++ 0xFAEC, 0xFB5C, 0xFBCD, 0xFC3F, 0xFCB2, 0xFD23, 0xFD93, 0xFE00, 0xFE6A, +++ 0xFED0, 0xFF30, 0xFF8B, 0xFFE0, 0x002E, 0x0073, 0x00AE, 0x00E0, 0x0109, +++ 0x012A, 0x0145, 0x015A, 0x0169, 0x0174, 0x017C, 0x0180, 0x0183, 0x0184, +++ 0x0184, 0x0180, 0x0175, 0x0166, 0x0153, 0x013D, 0x0127, 0x0111, 0x00FE, +++ 0x00EE, 0x00E4, 0x00E0, 0x00E4, 0x00EE, 0x00FE, 0x0111, 0x0127, 0x013D, +++ 0x0153, 0x0166, 0x0175, 0x0180, 0x0184, 0x0173, 0x0144, 0x00FB, 0x009D, +++ 0x002F, 0xFFB4, 0xFF33, 0xFEB0, 0xFE2F, 0xFDB6, 0xFD47, 0xFCEA, 0xFCA1, +++ 0xFC72, 0xFC61, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFAD3, 0xFA05, 0xF8CA, +++ 0xF737, 0xF561, 0xF360, 0xF148, 0xEF31, 0xED30, 0xEB5A, 0xE9C7, 0xE88B, +++ 0xE7BE, 0xE775, 0xE7B8, 0xE870, 0xE97E, 0xEAC7, 0xEC2C, 0xED92, 0xEEDA, +++ 0xEFE8, 0xF0A0, 0xF0E4, 0xF0A0, 0xEFE8, 0xEEDA, 0xED92, 0xEC2C, 0xEAC7, +++ 0xE97E, 0xE870, 0xE7B8, 0xE775, 0xE862, 0xEB06, 0xEF26, 0xF489, 0xFAF6, +++ 0x0236, 0x0A0D, 0x1243, 0x1AA0, 0x22E9, 0x2AE6, 0x325D, 0xB917, 0xBED9, +++ 0xC36A, 0xC693, 0xC818, 0xC8AB, 0xC924, 0xC984, 0xC9D0, 0xCA08, 0xCA30, +++ 0xCA4C, 0xCA5C, 0xCA64, 0xCA68, 0xCA68, 0xCA5A, 0xCA34, 0xC9FC, 0xC9B6, +++ 0xC968, 0xC918, 0xC8CA, 0xC884, 0xC84C, 0xC826, 0xC818, 0xC826, 0xC84C, +++ 0xC884, 0xC8CA, 0xC918, 0xC968, 0xC9B6, 0xC9FC, 0xCA34, 0xCA5A, 0xCA68, +++ 0xC965, 0xC68E, 0xC229, 0xBC7F, 0x35DA, 0x2E7F, 0x26B8, 0x1ECD, 0x1706, +++ 0x0FAC, 0x0906, 0x035C, 0xFEF6, 0xFC1F, 0xFB1C, 0xD2DB, 0xD2ED, 0xD320, +++ 0xD374, 0xD3E6, 0xD474, 0xD51D, 0xD5DE, 0xD6B5, 0xD7A2, 0xD8A1, 0xD9B0, +++ 0xDACF, 0xDBFB, 0xDD31, 0xDE70, 0xDFB0, 0xE0E9, 0xE213, 0xE325, 0xE417, +++ 0xE4E2, 0xE57D, 0xE5E0, 0xE603, 0xE5C4, 0xE518, 0xE41B, 0xE2E8, 0xE19A, +++ 0xE04C, 0xDF19, 0xDE1C, 0xDD71, 0xDD31, 0xDDE1, 0xDFD3, 0xE2DD, 0xE6D3, +++ 0xEB8B, 0xF0DA, 0xF694, 0xFC8E, 0x029F, 0x089A, 0x0E54, 0x13A2, 0x67A5, +++ 0x63AF, 0x60A5, 0x5EB3, 0x5E03, 0x5E1D, 0x5E62, 0x5ECA, 0x5F4A, 0x5FD9, +++ 0x606C, 0x60FB, 0x617B, 0x61E3, 0x6228, 0x6242, 0x6228, 0x61E3, 0x617B, +++ 0x60FB, 0x606C, 0x5FD9, 0x5F4A, 0x5ECA, 0x5E62, 0x5E1D, 0x5E03, 0x5E04, +++ 0x5E0A, 0x5E19, 0x5E38, 0x5E69, 0x5EB4, 0x5F1B, 0x5FA5, 0x6056, 0x6133, +++ 0x6242, 0x6438, 0x67A2, 0x6C44, 0x71E1, 0x07C2, 0x00E2, 0xF9BB, 0xF28B, +++ 0xEB8C, 0xE4FC, 0xDF16, 0xDA17, 0xD63A, 0xD3BD, 0xD2DB, 0xD4B3, 0xD4F3, +++ 0xD5A6, 0xD6B9, 0xD819, 0xD9B2, 0xDB71, 0xDD44, 0xDF17, 0xE0D6, 0xE270, +++ 0xE3CF, 0xE4E2, 0xE595, 0xE5D5, 0xE58A, 0xE4BE, 0xE390, 0xE223, 0xE095, +++ 0xDF07, 0xDD9A, 0xDC6D, 0xDBA0, 0xDB55, 0xDBA0, 0xDC6D, 0xDD9A, 0xDF07, +++ 0xE095, 0xE223, 0xE390, 0xE4BE, 0xE58A, 0xE5D5, 0xE4B3, 0xE17E, 0xDC7B, +++ 0xD5F3, 0xCE2B, 0xC56B, 0xBBF9, 0xB21D, 0xA81E, 0x9E42, 0x94D1, 0x8C11, +++ 0x0449, 0xFDC0, 0xF8BD, 0xF588, 0xF466, 0xF475, 0xF49F, 0xF4DD, 0xF52B, +++ 0xF581, 0xF5DA, 0xF630, 0xF67D, 0xF6BB, 0xF6E5, 0xF6F4, 0xF6E5, 0xF6BB, +++ 0xF67D, 0xF630, 0xF5DA, 0xF581, 0xF52B, 0xF4DD, 0xF49F, 0xF475, 0xF466, +++ 0xF466, 0xF46A, 0xF473, 0xF485, 0xF4A3, 0xF4D0, 0xF50F, 0xF562, 0xF5CC, +++ 0xF652, 0xF6F4, 0xF8C2, 0xFC8F, 0x020C, 0x08E7, 0x90CF, 0x9976, 0xA289, +++ 0xABB9, 0xB4B5, 0xBD2C, 0xC4CD, 0xCB49, 0xD04E, 0xD38D, 0xD4B3, 0xFFFF, +++ 0x0055, 0x0143, 0x02B1, 0x0484, 0x06A4, 0x08F7, 0x0B64, 0x0DD0, 0x1023, +++ 0x1243, 0x1417, 0x1584, 0x1672, 0x16C8, 0x16A8, 0x1654, 0x15D8, 0x1541, +++ 0x149D, 0x13F8, 0x1361, 0x12E5, 0x1291, 0x1272, 0x1291, 0x12E5, 0x1361, +++ 0x13F8, 0x149D, 0x1541, 0x15D8, 0x1654, 0x16A8, 0x16C8, 0x1645, 0x14D4, +++ 0x1294, 0x0FA5, 0x0C26, 0x0838, 0x03FA, 0xFF8B, 0xFB0D, 0xF69F, 0xF261, +++ 0xEE73, 0xEAF4, 0xE805, 0xE5C5, 0xE453, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, +++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, +++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, +++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, 0xE3D1, +++ 0xE3D1, 0xE3D1, 0xE3D1, 0xE42D, 0xE530, 0xE6C0, 0xE8C3, 0xEB20, 0xEDBD, +++ 0xF080, 0xF350, 0xF614, 0xF8B1, 0xFB0E, 0xFD11, 0xFEA0, 0xFFA3, 0xFFFF, +++ 0xFFFF, 0x001C, 0x006B, 0x00E5, 0x0180, 0x0235, 0x02FA, 0x03C8, 0x0496, +++ 0x055C, 0x0611, 0x06AC, 0x0725, 0x0774, 0x0791, 0x077E, 0x074D, 0x0704, +++ 0x06AB, 0x064B, 0x05EB, 0x0592, 0x0549, 0x0518, 0x0506, 0x0518, 0x0549, +++ 0x0592, 0x05EB, 0x064B, 0x06AB, 0x0704, 0x074D, 0x077E, 0x0791, 0x077E, +++ 0x0749, 0x06F6, 0x068A, 0x060A, 0x057A, 0x04DE, 0x043B, 0x0396, 0x02F3, +++ 0x0258, 0x01C7, 0x0147, 0x00DB, 0x0088, 0x0053, 0x0041, 0x0041, 0x0041, +++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, +++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, +++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, +++ 0x0041, 0x0041, 0x0041, 0x0041, 0x0040, 0x003D, 0x003A, 0x0035, 0x0030, +++ 0x002A, 0x0023, 0x001D, 0x0017, 0x0011, 0x000B, 0x0007, 0x0003, 0x0001, +++ 0xFFFF, 0xCA4E, 0xCA1A, 0xC987, 0xC8A5, 0xC784, 0xC634, 0xC4C5, 0xC346, +++ 0xC1C7, 0xC057, 0xBF07, 0xBDE7, 0xBD05, 0xBC72, 0xBC3D, 0xBC4D, 0xBC79, +++ 0xBCB9, 0xBD06, 0xBD5B, 0xBDAF, 0xBDFD, 0xBE3D, 0xBE68, 0xBE78, 0xBE68, +++ 0xBE3D, 0xBDFD, 0xBDAF, 0xBD5B, 0xBD06, 0xBCB9, 0xBC79, 0xBC4D, 0xBC3D, +++ 0xBCE2, 0xBEB5, 0xC18D, 0xC544, 0xC9AF, 0xCEA8, 0xD405, 0xD99F, 0xDF4D, +++ 0xE4E7, 0xEA45, 0xEF3D, 0xF3A9, 0xF75F, 0xFA38, 0xFC0B, 0xFCAF, 0xFCAF, +++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, +++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, +++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, +++ 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFCAF, 0xFC0B, 0xFA3C, 0xF772, 0xF3D9, +++ 0xEF9F, 0xEAF3, 0xE603, 0xE0FB, 0xDC0A, 0xD75E, 0xD324, 0xCF8B, 0xCCC1, +++ 0xCAF3, 0xCA4E, 0xFFFF, 0xFFF3, 0xFFD0, 0xFF9A, 0xFF56, 0xFF06, 0xFEAF, +++ 0xFE55, 0xFDFA, 0xFDA3, 0xFD53, 0xFD0F, 0xFCDA, 0xFCB7, 0xFCAA, 0xFCAA, +++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, +++ 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, 0xFCAA, +++ 0xFCAA, 0xFCB0, 0xFCBF, 0xFCD7, 0xFCF6, 0xFD1B, 0xFD45, 0xFD72, 0xFDA2, +++ 0xFDD1, 0xFE01, 0xFE2E, 0xFE58, 0xFE7D, 0xFE9C, 0xFEB4, 0xFEC3, 0xFEC9, +++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, +++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, +++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, +++ 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFEC9, 0xFECD, 0xFED8, 0xFEE9, +++ 0xFEFF, 0xFF19, 0xFF36, 0xFF54, 0xFF73, 0xFF92, 0xFFAF, 0xFFC9, 0xFFDF, +++ 0xFFF0, 0xFFFB, 0xFFFF, 0xF97B, 0xF93D, 0xF88F, 0xF784, 0xF62F, 0xF4A2, +++ 0xF2EF, 0xF12A, 0xEF65, 0xEDB3, 0xEC26, 0xEAD0, 0xE9C5, 0xE918, 0xE8DA, +++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, +++ 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, 0xE8DA, +++ 0xE8DA, 0xE8DA, 0xE916, 0xE9C1, 0xEACC, 0xEC29, 0xEDC7, 0xEF9A, 0xF191, +++ 0xF39F, 0xF5B4, 0xF7C2, 0xF9B9, 0xFB8C, 0xFD2B, 0xFE87, 0xFF92, 0x003E, +++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, +++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, +++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, +++ 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x007B, 0x0064, 0x0024, +++ 0xFFC0, 0xFF40, 0xFEAA, 0xFE03, 0xFD54, 0xFCA1, 0xFBF1, 0xFB4B, 0xFAB5, +++ 0xFA35, 0xF9D2, 0xF992, 0xF97B, 0xED8B, 0xEDA5, 0xEDEC, 0xEE5A, 0xEEE6, +++ 0xEF89, 0xF03B, 0xF0F6, 0xF1B0, 0xF262, 0xF305, 0xF392, 0xF3FF, 0xF447, +++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, +++ 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, 0xF460, +++ 0xF460, 0xF460, 0xF460, 0xF453, 0xF42E, 0xF3F3, 0xF3A8, 0xF34D, 0xF2E7, +++ 0xF27A, 0xF207, 0xF193, 0xF120, 0xF0B3, 0xF04D, 0xEFF3, 0xEFA7, 0xEF6C, +++ 0xEF47, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, +++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, +++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, +++ 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF3A, 0xEF34, +++ 0xEF25, 0xEF0D, 0xEEEE, 0xEECA, 0xEEA2, 0xEE78, 0xEE4D, 0xEE23, 0xEDFB, +++ 0xEDD7, 0xEDB8, 0xEDA0, 0xED91, 0xED8B, 0x0001, 0xFFEC, 0xFFB3, 0xFF5C, +++ 0xFEED, 0xFE6C, 0xFDDE, 0xFD4B, 0xFCB7, 0xFC2A, 0xFBA8, 0xFB39, 0xFAE2, +++ 0xFAAA, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, +++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFA96, +++ 0xFA96, 0xFA96, 0xFA96, 0xFA96, 0xFAA3, 0xFACB, 0xFB08, 0xFB58, 0xFBB7, +++ 0xFC22, 0xFC95, 0xFD0E, 0xFD88, 0xFE00, 0xFE74, 0xFEDF, 0xFF3E, 0xFF8E, +++ 0xFFCB, 0xFFF2, 0x0001, 0xFFFE, 0x0009, 0x0027, 0x0054, 0x008E, 0x00D1, +++ 0x011A, 0x0166, 0x01B3, 0x01FC, 0x023F, 0x0279, 0x02A6, 0x02C3, 0x02CE, +++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, +++ 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, +++ 0x02CE, 0x02CE, 0x02C7, 0x02B2, 0x0293, 0x0269, 0x0238, 0x0200, 0x01C5, +++ 0x0186, 0x0147, 0x0108, 0x00CC, 0x0095, 0x0064, 0x003A, 0x001B, 0x0006, +++ 0xFFFE, 0xC170, 0xC170, 0xC16E, 0xC16B, 0xC167, 0xC162, 0xC15E, 0xC158, +++ 0xC153, 0xC14F, 0xC14A, 0xC146, 0xC143, 0xC141, 0xC141, 0xC141, 0xC141, +++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, +++ 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, 0xC141, +++ 0xC141, 0xC142, 0xC145, 0xC147, 0xC14B, 0xC14E, 0xC152, 0xC156, 0xC15B, +++ 0xC15F, 0xC163, 0xC166, 0xC16A, 0xC16C, 0xC16E, 0xC170, 0x054B, 0x04DF, +++ 0x03AF, 0x01DB, 0xFF81, 0xFCC2, 0xF9BD, 0xF690, 0xF35C, 0xF03F, 0xED58, +++ 0xEAC7, 0xE8AC, 0xE724, 0xE651, 0xE5EC, 0xE59B, 0xE55D, 0xE52E, 0xE50C, +++ 0xE4F5, 0xE4E7, 0xE4E0, 0xE4DE, 0xE4DD, 0xE4E8, 0xE504, 0xE52E, 0xE560, +++ 0xE597, 0xE5CE, 0xE600, 0xE62A, 0xE646, 0xE651, 0xE615, 0xE56D, 0xE466, +++ 0xE30D, 0xE172, 0xDFA3, 0xDDAD, 0xDBA0, 0xD988, 0xD774, 0xD573, 0xD392, +++ 0xD1DF, 0xD06A, 0xCF40, 0xCE6E, 0xCE04, 0xCDD7, 0xCDB2, 0xCD94, 0xCD7D, +++ 0xCD6B, 0xCD5F, 0xCD57, 0xCD52, 0xCD4F, 0xCD4E, 0xCD4E, 0xCD52, 0xCD5E, +++ 0xCD6F, 0xCD85, 0xCD9D, 0xCDB5, 0xCDCD, 0xCDE3, 0xCDF4, 0xCE00, 0xCE04, +++ 0xCE00, 0xCDF4, 0xCDE3, 0xCDCD, 0xCDB5, 0xCD9D, 0xCD85, 0xCD6F, 0xCD5E, +++ 0xCD52, 0xCD4E, 0xCE04, 0xD006, 0xD320, 0xD720, 0xDBD2, 0xE103, 0xE680, +++ 0xEC17, 0xF195, 0xF6C6, 0xFB78, 0xFF77, 0x0293, 0x0494, 0x054B, 0x2BD6, +++ 0x2BED, 0x2C30, 0x2C95, 0x2D17, 0x2DAE, 0x2E54, 0x2F00, 0x2FAD, 0x3052, +++ 0x30E9, 0x316B, 0x31D1, 0x3213, 0x322B, 0x31E9, 0x3137, 0x3030, 0x2EF1, +++ 0x2D96, 0x2C3B, 0x2AFC, 0x29F5, 0x2943, 0x2901, 0x2943, 0x29F5, 0x2AFC, +++ 0x2C3B, 0x2D96, 0x2EF1, 0x3030, 0x3137, 0x31E9, 0x322B, 0x31DC, 0x30FD, +++ 0x2F9F, 0x2DD3, 0x2BAC, 0x293B, 0x2692, 0x23C3, 0x20DF, 0x1DF9, 0x1B22, +++ 0x186B, 0x15E7, 0x13A8, 0x11BE, 0x103D, 0x0F35, 0x0E82, 0x0DEE, 0x0D79, +++ 0x0D1D, 0x0CD8, 0x0CA7, 0x0C86, 0x0C71, 0x0C67, 0x0C63, 0x0C63, 0x0C74, +++ 0x0CA2, 0x0CE7, 0x0D3C, 0x0D9B, 0x0DFD, 0x0E5C, 0x0EB1, 0x0EF6, 0x0F24, +++ 0x0F35, 0x0F24, 0x0EF6, 0x0EB1, 0x0E5C, 0x0DFD, 0x0D9B, 0x0D3C, 0x0CE7, +++ 0x0CA2, 0x0C74, 0x0C63, 0x0CC9, 0x0DEA, 0x0FA8, 0x11E7, 0x148A, 0x1775, +++ 0x1A8A, 0x1DAE, 0x20C4, 0x23AF, 0x2652, 0x2891, 0x2A4F, 0x2B6F, 0x2BD6, +++ 0xCCF5, 0xCC8A, 0xCB5F, 0xC994, 0xC749, 0xC49D, 0xC1B2, 0xBEA6, 0xBB9A, +++ 0xB8AF, 0xB603, 0xB3B8, 0xB1ED, 0xB0C1, 0xB057, 0xB060, 0xB079, 0xB09E, +++ 0xB0CB, 0xB0FC, 0xB12D, 0xB15A, 0xB17F, 0xB198, 0xB1A1, 0xB1A1, 0xB19E, +++ 0xB198, 0xB18C, 0xB178, 0xB15A, 0xB130, 0xB0F8, 0xB0B0, 0xB057, 0xAFD6, +++ 0xAF21, 0xAE3E, 0xAD36, 0xAC11, 0xAAD5, 0xA98C, 0xA83D, 0xA6F0, 0xA5AD, +++ 0xA47B, 0xA362, 0xA26B, 0xA19E, 0xA101, 0xA09D, 0xA07A, 0xA07D, 0xA083, +++ 0xA08D, 0xA099, 0xA0A6, 0xA0B4, 0xA0C1, 0xA0CD, 0xA0D7, 0xA0DD, 0xA0DF, +++ 0xA0DD, 0xA0D7, 0xA0CD, 0xA0C1, 0xA0B4, 0xA0A6, 0xA099, 0xA08D, 0xA083, +++ 0xA07D, 0xA07A, 0xA07A, 0xA07B, 0xA07C, 0xA07F, 0xA084, 0xA08B, 0xA094, +++ 0xA0A1, 0xA0B2, 0xA0C6, 0xA0DF, 0xA187, 0xA32D, 0xA5AA, 0xA8D6, 0xAC8B, +++ 0xB0A0, 0xB4EE, 0xB94E, 0xBD98, 0xC1A6, 0xC54F, 0xC86D, 0xCAD7, 0xCC67, +++ 0xCCF5, 0xFFFF, 0xFFD7, 0xFF66, 0xFEB9, 0xFDDB, 0xFCD9, 0xFBBF, 0xFA99, +++ 0xF972, 0xF858, 0xF756, 0xF679, 0xF5CB, 0xF55A, 0xF532, 0xF545, 0xF57A, +++ 0xF5C7, 0xF625, 0xF68A, 0xF6F0, 0xF74E, 0xF79B, 0xF7CF, 0xF7E3, 0xF7CF, +++ 0xF79B, 0xF74E, 0xF6F0, 0xF68A, 0xF625, 0xF5C7, 0xF57A, 0xF545, 0xF532, +++ 0xF53C, 0xF557, 0xF582, 0xF5BC, 0xF603, 0xF655, 0xF6B1, 0xF714, 0xF77E, +++ 0xF7EC, 0xF85E, 0xF8D0, 0xF942, 0xF9B2, 0xFA1E, 0xFA85, 0xFAE5, 0xFB3C, +++ 0xFB8B, 0xFBD1, 0xFC0F, 0xFC44, 0xFC71, 0xFC95, 0xFCB1, 0xFCC5, 0xFCD2, +++ 0xFCD5, 0xFCCA, 0xFCAA, 0xFC7B, 0xFC40, 0xFBFF, 0xFBBB, 0xFB7A, 0xFB3F, +++ 0xFB10, 0xFAF0, 0xFAE5, 0xFAEA, 0xFAFA, 0xFB14, 0xFB36, 0xFB60, 0xFB92, +++ 0xFBC9, 0xFC06, 0xFC48, 0xFC8D, 0xFCD5, 0xFD20, 0xFD6B, 0xFDB6, 0xFE01, +++ 0xFE4A, 0xFE91, 0xFED4, 0xFF12, 0xFF4C, 0xFF7F, 0xFFAA, 0xFFCE, 0xFFE9, +++ 0xFFF9, 0xFFFF, 0x0000, 0xFFD5, 0xFF60, 0xFEAC, 0xFDC5, 0xFCB9, 0xFB93, +++ 0xFA61, 0xF930, 0xF80A, 0xF6FE, 0xF617, 0xF563, 0xF4EE, 0xF4C4, 0xF4FC, +++ 0xF593, 0xF672, 0xF781, 0xF8A8, 0xF9CF, 0xFADE, 0xFBBD, 0xFC54, 0xFC8C, +++ 0xFC54, 0xFBBD, 0xFADE, 0xF9CF, 0xF8A8, 0xF781, 0xF672, 0xF593, 0xF4FC, +++ 0xF4C4, 0xF4FA, 0xF595, 0xF685, 0xF7C0, 0xF936, 0xFADA, 0xFCA0, 0xFE7A, +++ 0x005C, 0x0236, 0x03FC, 0x05A0, 0x0716, 0x0850, 0x0941, 0x09DB, 0x0A12, +++ 0x0A03, 0x09D9, 0x099B, 0x094E, 0x08F9, 0x08A0, 0x084B, 0x07FE, 0x07C0, +++ 0x0796, 0x0787, 0x0796, 0x07C0, 0x07FE, 0x084B, 0x08A0, 0x08F9, 0x094E, +++ 0x099B, 0x09D9, 0x0A03, 0x0A12, 0x0A0E, 0x0A01, 0x09EA, 0x09C9, 0x099D, +++ 0x0966, 0x0922, 0x08D1, 0x0872, 0x0804, 0x0787, 0x06FB, 0x0662, 0x05C0, +++ 0x0518, 0x046D, 0x03C2, 0x031C, 0x027C, 0x01E7, 0x0160, 0x00EA, 0x0089, +++ 0x003F, 0x0010, 0x0000, 0xC7DC, 0xC771, 0xC645, 0xC479, 0xC22C, 0xBF7E, +++ 0xBC90, 0xB983, 0xB675, 0xB387, 0xB0DA, 0xAE8D, 0xACC0, 0xAB94, 0xAB29, +++ 0xAB4E, 0xABB3, 0xAC48, 0xACFD, 0xADC2, 0xAE86, 0xAF3B, 0xAFD0, 0xB035, +++ 0xB05A, 0xB035, 0xAFD0, 0xAF3B, 0xAE86, 0xADC2, 0xACFD, 0xAC48, 0xABB3, +++ 0xAB4E, 0xAB29, 0xAB6E, 0xAC31, 0xAD64, 0xAEF7, 0xB0D9, 0xB2FC, 0xB54F, +++ 0xB7C2, 0xBA47, 0xBCCE, 0xBF46, 0xC1A0, 0xC3CC, 0xC5BB, 0xC75D, 0xC8A2, +++ 0xC97B, 0xCA0A, 0xCA80, 0xCADE, 0xCB27, 0xCB5E, 0xCB85, 0xCBA0, 0xCBB0, +++ 0xCBB8, 0xCBBB, 0xCBBB, 0xCBAE, 0xCB89, 0xCB52, 0xCB0E, 0xCAC2, 0xCA74, +++ 0xCA28, 0xC9E4, 0xC9AD, 0xC988, 0xC97B, 0xC988, 0xC9AD, 0xC9E4, 0xCA28, +++ 0xCA74, 0xCAC2, 0xCB0E, 0xCB52, 0xCB89, 0xCBAE, 0xCBBB, 0xCBAF, 0xCB8B, +++ 0xCB54, 0xCB0E, 0xCABA, 0xCA5F, 0xC9FD, 0xC99A, 0xC939, 0xC8DD, 0xC88A, +++ 0xC843, 0xC80C, 0xC7E9, 0xC7DC, 0xFFFF, 0x0080, 0x01E7, 0x040D, 0x06CE, +++ 0x0A01, 0x0D82, 0x1129, 0x14D0, 0x1850, 0x1B84, 0x1E44, 0x206B, 0x21D1, +++ 0x2252, 0x224D, 0x2242, 0x2231, 0x221D, 0x2206, 0x21F0, 0x21DC, 0x21CB, +++ 0x21BF, 0x21BB, 0x21BF, 0x21CB, 0x21DC, 0x21F0, 0x2206, 0x221D, 0x2231, +++ 0x2242, 0x224D, 0x2252, 0x21FA, 0x2101, 0x1F7D, 0x1D83, 0x1B29, 0x1883, +++ 0x15A7, 0x12AC, 0x0FA6, 0x0CAA, 0x09CF, 0x0729, 0x04CE, 0x02D4, 0x0150, +++ 0x0058, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFF4, 0xFFD4, 0xFFA3, 0xFF64, +++ 0xFF1B, 0xFECB, 0xFE78, 0xFE24, 0xFDD5, 0xFD8B, 0xFD4D, 0xFD1C, 0xFCFC, +++ 0xFCF0, 0xFD0E, 0xFD5D, 0xFDD2, 0xFE60, 0xFEFB, 0xFF96, 0x0025, 0x009A, +++ 0x00EA, 0x0107, 0x00EA, 0x009A, 0x0025, 0xFF96, 0xFEFB, 0xFE60, 0xFDD2, +++ 0xFD5D, 0xFD0E, 0xFCF0, 0xFCF8, 0xFD0E, 0xFD31, 0xFD5E, 0xFD94, 0xFDD0, +++ 0xFE11, 0xFE55, 0xFE9A, 0xFEDE, 0xFF1F, 0xFF5C, 0xFF91, 0xFFBE, 0xFFE1, +++ 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xF548, 0xF654, 0xF942, 0xFDC6, 0x0392, 0x0A57, 0x11C8, +++ 0x1997, 0x2176, 0x2918, 0x302E, 0x366B, 0x3B81, 0x3F23, 0x4102, 0x41CF, +++ 0x4274, 0x42F4, 0x4354, 0x4399, 0x43C7, 0x43E3, 0x43F2, 0x43F7, 0x43F8, +++ 0x43F7, 0x43F2, 0x43E3, 0x43C7, 0x4399, 0x4354, 0x42F4, 0x4274, 0x41CF, +++ 0x4102, 0x3F77, 0x3CBA, 0x38F5, 0x3453, 0x2EFF, 0x2922, 0x22E9, 0x1C7D, +++ 0x160A, 0x0FB9, 0x09B5, 0x0429, 0xFF3F, 0xFB23, 0xF7FF, 0xF5FD, 0xF548, +++ 0x0000, 0x0000, 0xBF5E, 0xD649, 0xD69E, 0xD78C, 0xD8F8, 0xDACB, 0xDCEA, +++ 0xDF3C, 0xE1A7, 0xE412, 0xE664, 0xE883, 0xEA56, 0xEBC3, 0xECB0, 0xED05, +++ 0xEC9C, 0xEB7F, 0xE9DB, 0xE7DE, 0xE5B3, 0xE388, 0xE18A, 0xDFE7, 0xDECA, +++ 0xDE61, 0xDECA, 0xDFE7, 0xE18A, 0xE388, 0xE5B3, 0xE7DE, 0xE9DB, 0xEB7F, +++ 0xEC9C, 0xED05, 0xECF5, 0xECC5, 0xEC77, 0xEC0C, 0xEB85, 0xEAE3, 0xEA27, +++ 0xE953, 0xE866, 0xE764, 0xE64C, 0xE51F, 0xE3E0, 0xE28E, 0xE12C, 0xDFB9, +++ 0xDE39, 0xDCAB, 0xDB1A, 0xD98C, 0xD80C, 0xD6A2, 0xD557, 0xD435, 0xD343, +++ 0xD28B, 0xD217, 0xD1EE, 0xD237, 0xD300, 0xD42C, 0xD59F, 0xD73D, 0xD8E9, +++ 0xDA87, 0xDBFA, 0xDD26, 0xDDEF, 0xDE39, 0xDDEF, 0xDD26, 0xDBFA, 0xDA87, +++ 0xD8E9, 0xD73D, 0xD59F, 0xD42C, 0xD300, 0xD237, 0xD1EE, 0xD1FC, 0xD224, +++ 0xD262, 0xD2B1, 0xD30F, 0xD376, 0xD3E4, 0xD453, 0xD4C1, 0xD528, 0xD585, +++ 0xD5D5, 0xD613, 0xD63B, 0xD649, 0xEC40, 0xEBF2, 0xEB17, 0xE9C7, 0xE819, +++ 0xE625, 0xE402, 0xE1C8, 0xDF8E, 0xDD6B, 0xDB76, 0xD9C9, 0xD879, 0xD79E, +++ 0xD750, 0xD75D, 0xD780, 0xD7B3, 0xD7F2, 0xD836, 0xD87A, 0xD8B9, 0xD8EC, +++ 0xD910, 0xD91C, 0xD910, 0xD8EC, 0xD8B9, 0xD87A, 0xD836, 0xD7F2, 0xD7B3, +++ 0xD780, 0xD75D, 0xD750, 0xD7AC, 0xD8B2, 0xDA4C, 0xDC63, 0xDEE2, 0xE1B1, +++ 0xE4BC, 0xE7EB, 0xEB29, 0xEE5E, 0xF176, 0xF45A, 0xF6F4, 0xF92D, 0xFAEF, +++ 0xFC24, 0xFCB7, 0xFCEB, 0xFD16, 0xFD38, 0xFD53, 0xFD67, 0xFD75, 0xFD7F, +++ 0xFD85, 0xFD88, 0xFD89, 0xFD89, 0xFD84, 0xFD77, 0xFD63, 0xFD4A, 0xFD2E, +++ 0xFD12, 0xFCF6, 0xFCDD, 0xFCC9, 0xFCBC, 0xFCB7, 0xFCBC, 0xFCC9, 0xFCDD, +++ 0xFCF6, 0xFD12, 0xFD2E, 0xFD4A, 0xFD63, 0xFD77, 0xFD84, 0xFD89, 0xFD51, +++ 0xFCB2, 0xFBBD, 0xFA81, 0xF90E, 0xF774, 0xF5C2, 0xF408, 0xF256, 0xF0BB, +++ 0xEF48, 0xEE0C, 0xED17, 0xEC78, 0xEC40, 0xB59D, 0xB501, 0xB34B, 0xB0A9, +++ 0xAD4D, 0xA963, 0xA51B, 0xA0A5, 0x9C2E, 0x97E6, 0x93FD, 0x90A0, 0x8DFF, +++ 0x8C49, 0x8BAC, 0x8C1F, 0x8D56, 0x8F20, 0x914C, 0x93AA, 0x9607, 0x9833, +++ 0x99FE, 0x9B35, 0x9BA7, 0x9B35, 0x99FE, 0x9833, 0x9607, 0x93AA, 0x914C, +++ 0x8F20, 0x8D56, 0x8C1F, 0x8BAC, 0x8C34, 0x8DB6, 0x9012, 0x9325, 0x96D1, +++ 0x9AF3, 0x9F6A, 0xA417, 0xA8D8, 0xAD8B, 0xB211, 0xB649, 0xBA11, 0xBD49, +++ 0xBFCF, 0xC183, 0xC245, 0xC27C, 0xC2AA, 0xC2CE, 0xC2EA, 0xC300, 0xC30F, +++ 0xC319, 0xC31F, 0xC322, 0xC324, 0xC324, 0xC31F, 0xC310, 0xC2FB, 0xC2E1, +++ 0xC2C3, 0xC2A5, 0xC288, 0xC26D, 0xC258, 0xC24A, 0xC245, 0xC24A, 0xC258, +++ 0xC26D, 0xC288, 0xC2A5, 0xC2C3, 0xC2E1, 0xC2FB, 0xC310, 0xC31F, 0xC324, +++ 0xC2F8, 0xC27C, 0xC1BC, 0xC0C4, 0xBFA2, 0xBE61, 0xBD0D, 0xBBB4, 0xBA60, +++ 0xB91F, 0xB7FD, 0xB705, 0xB646, 0xB5C9, 0xB59D, 0x0000, 0xFFF6, 0xFFDD, +++ 0xFFB7, 0xFF86, 0xFF4D, 0xFF0E, 0xFECD, 0xFE8C, 0xFE4E, 0xFE15, 0xFDE4, +++ 0xFDBD, 0xFDA5, 0xFD9C, 0xFDB5, 0xFDF9, 0xFE5D, 0xFED7, 0xFF5C, 0xFFE1, +++ 0x005C, 0x00C0, 0x0105, 0x011E, 0x0112, 0x00EF, 0x00B7, 0x006C, 0x0011, +++ 0xFFA7, 0xFF31, 0xFEB2, 0xFE2A, 0xFD9C, 0xFD0A, 0xFC75, 0xFBE0, 0xFB4B, +++ 0xFAB8, 0xFA29, 0xF99E, 0xF91A, 0xF89D, 0xF82A, 0xF7C1, 0xF765, 0xF716, +++ 0xF6D6, 0xF6A6, 0xF689, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, +++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, +++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, +++ 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, 0xF67F, +++ 0xF67F, 0xF69E, 0xF6F5, 0xF77C, 0xF829, 0xF8F5, 0xF9D7, 0xFAC5, 0xFBB8, +++ 0xFCA7, 0xFD88, 0xFE54, 0xFF02, 0xFF89, 0xFFE0, 0x0000, 0xFFFF, 0xFFC0, +++ 0xFF10, 0xFE02, 0xFCA9, 0xFB17, 0xF95F, 0xF794, 0xF5CA, 0xF412, 0xF280, +++ 0xF126, 0xF018, 0xEF68, 0xEF2A, 0xEF3C, 0xEF6F, 0xEFBA, 0xF015, 0xF078, +++ 0xF0DB, 0xF136, 0xF181, 0xF1B3, 0xF1C6, 0xF1BB, 0xF19C, 0xF16B, 0xF12C, +++ 0xF0E1, 0xF08E, 0xF036, 0xEFDB, 0xEF81, 0xEF2A, 0xEED8, 0xEE8D, 0xEE48, +++ 0xEE09, 0xEDD0, 0xED9C, 0xED6D, 0xED44, 0xED20, 0xED01, 0xECE6, 0xECD0, +++ 0xECBE, 0xECB1, 0xECA7, 0xECA2, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, +++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, +++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, +++ 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, 0xECA0, +++ 0xECA0, 0xECA0, 0xECDF, 0xED91, 0xEEA4, 0xF006, 0xF1A5, 0xF371, 0xF558, +++ 0xF747, 0xF92D, 0xFAF9, 0xFC99, 0xFDFB, 0xFF0E, 0xFFC0, 0xFFFF, 0x2537, +++ 0x2536, 0x2534, 0x252D, 0x251F, 0x2508, 0x24E5, 0x24B5, 0x2475, 0x2423, +++ 0x23BD, 0x2340, 0x22AA, 0x21F8, 0x212A, 0x2036, 0x1F21, 0x1DF8, 0x1CC9, +++ 0x1BA2, 0x1A92, 0x19A6, 0x18EC, 0x1873, 0x1847, 0x1887, 0x1933, 0x1A32, +++ 0x1B68, 0x1CB8, 0x1E09, 0x1F3E, 0x203D, 0x20EA, 0x212A, 0x2123, 0x2110, +++ 0x20F3, 0x20CD, 0x209F, 0x206C, 0x2035, 0x1FFB, 0x1FC1, 0x1F87, 0x1F50, +++ 0x1F1D, 0x1EEF, 0x1EC9, 0x1EAB, 0x1E99, 0x1E92, 0x1E92, 0x1E92, 0x1E92, +++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, +++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, +++ 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, 0x1E92, +++ 0x1E92, 0x1E92, 0x1E92, 0x1EA8, 0x1EE5, 0x1F43, 0x1FBC, 0x204B, 0x20E9, +++ 0x2190, 0x2239, 0x22E0, 0x237E, 0x240D, 0x2486, 0x24E4, 0x2521, 0x2537, +++ 0x0000, 0xFFFB, 0xFFF0, 0xFFDF, 0xFFCA, 0xFFB0, 0xFF95, 0xFF78, 0xFF5C, +++ 0xFF40, 0xFF27, 0xFF11, 0xFF00, 0xFEF5, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, +++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, +++ 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF1, 0xFEF6, +++ 0xFF02, 0xFF14, 0xFF2C, 0xFF49, 0xFF69, 0xFF8C, 0xFFB1, 0xFFD6, 0xFFFA, +++ 0x001E, 0x003E, 0x005B, 0x0073, 0x0086, 0x0092, 0x0096, 0x0096, 0x0096, +++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, +++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, +++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, +++ 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, 0x008E, 0x0086, 0x007B, 0x006F, +++ 0x0061, 0x0052, 0x0043, 0x0035, 0x0027, 0x001A, 0x0010, 0x0007, 0x0002, +++ 0x0000, 0xFFFF, 0xFFF8, 0xFFE3, 0xFFC3, 0xFF9A, 0xFF6A, 0xFF36, 0xFF00, +++ 0xFECA, 0xFE96, 0xFE66, 0xFE3D, 0xFE1D, 0xFE08, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, +++ 0xFE00, 0xFDFC, 0xFDF7, 0xFDF1, 0xFDE9, 0xFDE0, 0xFDD6, 0xFDCC, 0xFDC2, +++ 0xFDB8, 0xFDAE, 0xFDA5, 0xFD9D, 0xFD97, 0xFD91, 0xFD8E, 0xFD8D, 0xFD8D, +++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, +++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, +++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, +++ 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD8D, 0xFD95, 0xFDAB, 0xFDCE, 0xFDFB, +++ 0xFE2F, 0xFE69, 0xFEA7, 0xFEE5, 0xFF23, 0xFF5D, 0xFF91, 0xFFBE, 0xFFE1, +++ 0xFFF7, 0xFFFF, 0xBF3F, 0xBFCF, 0xC163, 0xC3CF, 0xC6E9, 0xCA84, 0xCE75, +++ 0xD292, 0xD6AF, 0xDAA0, 0xDE3B, 0xE154, 0xE3C0, 0xE554, 0xE5E4, 0xE5E4, +++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, +++ 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, 0xE5E4, +++ 0xE5E4, 0xE57B, 0xE451, 0xE27F, 0xE020, 0xDD4D, 0xDA20, 0xD6B2, 0xD31E, +++ 0xCF7D, 0xCBE8, 0xC87B, 0xC54D, 0xC27A, 0xC01B, 0xBE49, 0xBD1F, 0xBCB6, +++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, +++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, +++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, +++ 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCB6, 0xBCBE, 0xBCD5, 0xBCF9, +++ 0xBD28, 0xBD5E, 0xBD9A, 0xBDDA, 0xBE1B, 0xBE5B, 0xBE97, 0xBECD, 0xBEFC, +++ 0xBF20, 0xBF37, 0xBF3F, 0x0000, 0x0000, 0xBF5E, 0x1B09, 0x1AC0, 0x19F2, +++ 0x18B7, 0x1724, 0x154E, 0x134D, 0x1136, 0x0F1F, 0x0D1D, 0x0B48, 0x09B5, +++ 0x087A, 0x07AC, 0x0763, 0x077A, 0x07B8, 0x0813, 0x0882, 0x08FA, 0x0973, +++ 0x09E2, 0x0A3D, 0x0A7B, 0x0A92, 0x0A7B, 0x0A3D, 0x09E2, 0x0973, 0x08FA, +++ 0x0882, 0x0813, 0x07B8, 0x077A, 0x0763, 0x07AA, 0x0873, 0x09AC, 0x0B45, +++ 0x0D2C, 0x0F4F, 0x119E, 0x1407, 0x1678, 0x18E1, 0x1B30, 0x1D53, 0x1F3A, +++ 0x20D3, 0x220C, 0x22D5, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, +++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, +++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, +++ 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, 0x231C, +++ 0x231C, 0x2302, 0x22B7, 0x2245, 0x21B1, 0x2104, 0x2044, 0x1F7A, 0x1EAB, +++ 0x1DE0, 0x1D21, 0x1C73, 0x1BE0, 0x1B6D, 0x1B23, 0x1B09, 0x1144, 0x1195, +++ 0x1279, 0x13D6, 0x1594, 0x179C, 0x19D4, 0x1C25, 0x1E76, 0x20AE, 0x22B6, +++ 0x2475, 0x25D2, 0x26B5, 0x2707, 0x26F7, 0x26CD, 0x268E, 0x2643, 0x25F0, +++ 0x259E, 0x2552, 0x2514, 0x24E9, 0x24DA, 0x24E9, 0x2514, 0x2552, 0x259E, +++ 0x25F0, 0x2643, 0x268E, 0x26CD, 0x26F7, 0x2707, 0x26A6, 0x2595, 0x23EA, +++ 0x21BE, 0x1F27, 0x1C3E, 0x191A, 0x15D2, 0x127F, 0x0F38, 0x0C14, 0x092A, +++ 0x0694, 0x0467, 0x02BD, 0x01AB, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, +++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, +++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, +++ 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, 0x014B, +++ 0x014B, 0x014B, 0x017F, 0x0212, 0x02F4, 0x0418, 0x056F, 0x06EA, 0x087B, +++ 0x0A14, 0x0BA5, 0x0D20, 0x0E77, 0x0F9B, 0x107D, 0x1110, 0x1144, 0xAC43, +++ 0xAC00, 0xAB44, 0xAA24, 0xA8B2, 0xA705, 0xA52F, 0xA345, 0xA15B, 0x9F85, +++ 0x9DD8, 0x9C66, 0x9B46, 0x9A8A, 0x9A47, 0x9A8D, 0x9B4A, 0x9C61, 0x9DB4, +++ 0x9F24, 0xA095, 0xA1E8, 0xA2FF, 0xA3BC, 0xA402, 0xA3BC, 0xA2FF, 0xA1E8, +++ 0xA095, 0x9F24, 0x9DB4, 0x9C61, 0x9B4A, 0x9A8D, 0x9A47, 0x9A7A, 0x9B09, +++ 0x9BEA, 0x9D0F, 0x9E6B, 0x9FF3, 0xA19A, 0xA354, 0xA514, 0xA6CE, 0xA875, +++ 0xA9FD, 0xAB59, 0xAC7E, 0xAD5F, 0xADEE, 0xAE21, 0xAE21, 0xAE21, 0xAE21, +++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, +++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, +++ 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, 0xAE21, +++ 0xAE21, 0xAE21, 0xAE21, 0xAE1B, 0xAE0A, 0xADEF, 0xADCD, 0xADA5, 0xAD79, +++ 0xAD4A, 0xAD1A, 0xACEB, 0xACBF, 0xAC97, 0xAC75, 0xAC5B, 0xAC49, 0xAC43, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFE, +++ 0xFFFA, 0xFFF3, 0xFFEB, 0xFFE1, 0xFFD7, 0xFFCB, 0xFFBF, 0xFFB2, 0xFFA6, +++ 0xFF9A, 0xFF8F, 0xFF85, 0xFF7D, 0xFF77, 0xFF73, 0xFF72, 0xFF72, 0xFF72, +++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, +++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, +++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF72, +++ 0xFF72, 0xFF72, 0xFF72, 0xFF72, 0xFF73, 0xFF78, 0xFF80, 0xFF8A, 0xFF96, +++ 0xFFA3, 0xFFB1, 0xFFBF, 0xFFCD, 0xFFDA, 0xFFE6, 0xFFF0, 0xFFF8, 0xFFFD, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0020, 0x007C, 0x010C, 0x01C7, 0x02A7, 0x03A1, 0x04B0, 0x05CB, 0x06E9, +++ 0x0804, 0x0913, 0x0A0E, 0x0AED, 0x0BA8, 0x0C38, 0x0C94, 0x0CB4, 0x0CB4, +++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, +++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, +++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, +++ 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0CB4, 0x0C8B, 0x0C16, 0x0B62, 0x0A7A, +++ 0x0969, 0x083B, 0x06FD, 0x05B8, 0x0479, 0x034B, 0x023A, 0x0152, 0x009E, +++ 0x0029, 0x0000, 0x1E4A, 0x1DD9, 0x1C9C, 0x1AB6, 0x1849, 0x1575, 0x125E, +++ 0x0F25, 0x0BEC, 0x08D5, 0x0601, 0x0394, 0x01AE, 0x0071, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x002D, 0x00AE, 0x0176, 0x027C, 0x03B3, 0x0511, 0x068B, 0x0815, +++ 0x09A5, 0x0B30, 0x0CA9, 0x0E07, 0x0F3F, 0x1044, 0x110D, 0x118D, 0x11BA, +++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, +++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, +++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, +++ 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11BA, 0x11E3, 0x1256, 0x1309, +++ 0x13EE, 0x14FC, 0x1626, 0x1761, 0x18A3, 0x19DE, 0x1B08, 0x1C16, 0x1CFB, +++ 0x1DAE, 0x1E21, 0x1E4A, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x000D, 0x002F, 0x0062, 0x00A0, 0x00E3, 0x0126, 0x0164, 0x0197, 0x01B9, +++ 0x01C6, 0x01B9, 0x0197, 0x0164, 0x0126, 0x00E3, 0x00A0, 0x0062, 0x002F, +++ 0x000D, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, +++ 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, +++ 0xFF4D, 0xFF9F, 0x0018, 0x00AA, 0x014A, 0x01E9, 0x027B, 0x02F3, 0x0345, +++ 0x0363, 0x0345, 0x02F3, 0x027B, 0x01E9, 0x014A, 0x00AA, 0x0018, 0xFF9F, +++ 0xFF4D, 0xFF2F, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, +++ 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9D7, 0xC9BF, +++ 0xC97E, 0xC91E, 0xC8AA, 0xC82B, 0xC7AD, 0xC738, 0xC6D8, 0xC697, 0xC67F, +++ 0xC697, 0xC6D8, 0xC738, 0xC7AD, 0xC82B, 0xC8AA, 0xC91E, 0xC97E, 0xC9BF, +++ 0xC9D7, ++ }; ++ +diff --git a/assets/anims/anim_38.inc.c b/assets/anims/anim_38.inc.c +index 179f498..6c935aa 100644 +--- a/assets/anims/anim_38.inc.c ++++ b/assets/anims/anim_38.inc.c +@@ -1,9 +1,9 @@ + static const struct Animation anim_38[] = { +- 1, +- 189, + 0, ++ 189, + 0, +- 0x0C, ++ 1, ++ 54, + ANIMINDEX_NUMPARTS(anim_38_indices), + anim_38_values, + anim_38_indices, +@@ -12,81 +12,263 @@ static const struct Animation anim_38[] = { + + + static const u16 anim_38_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x000C, 0x0182, 0x000C, 0x018E, 0x000C, 0x019A, +- 0x000C, 0x015E, 0x000C, 0x016A, 0x000C, 0x0176, +- 0x000C, 0x013A, 0x000C, 0x0146, 0x000C, 0x0152, +- 0x0001, 0x0136, 0x0001, 0x0137, 0x0001, 0x0138, +- 0x000C, 0x0033, 0x000C, 0x003F, 0x000C, 0x004B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0027, +- 0x000C, 0x0003, 0x000C, 0x000F, 0x000C, 0x001B, +- 0x0001, 0x0132, 0x0001, 0x0133, 0x0001, 0x0134, +- 0x000C, 0x0087, 0x000C, 0x0093, 0x000C, 0x009F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x007B, +- 0x000C, 0x0057, 0x000C, 0x0063, 0x000C, 0x006F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0135, +- 0x0001, 0x012F, 0x0001, 0x0130, 0x0001, 0x0131, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0123, +- 0x000C, 0x00FF, 0x000C, 0x010B, 0x000C, 0x0117, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0139, +- 0x000C, 0x00DB, 0x000C, 0x00E7, 0x000C, 0x00F3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x00CF, +- 0x000C, 0x00AB, 0x000C, 0x00B7, 0x000C, 0x00C3, ++ 0x0037, 0x0000, 0x0037, 0x0037, 0x0001, 0x006E, 0x0032, 0x006F, 0x0001, 0x00A1, 0x0037, 0x00A2, ++ 0x0037, 0x00D9, 0x0036, 0x0110, 0x0001, 0x0146, 0x0037, 0x0147, 0x0037, 0x017E, 0x0037, 0x01B5, ++ 0x0037, 0x01EC, 0x0036, 0x0223, 0x0037, 0x0259, 0x0001, 0x0290, 0x0001, 0x0291, 0x0001, 0x0292, ++ 0x0037, 0x0293, 0x0037, 0x02CA, 0x0037, 0x0301, 0x0037, 0x0338, 0x0037, 0x036F, 0x0037, 0x03A6, ++ 0x0037, 0x03DD, 0x0037, 0x0414, 0x0037, 0x044B, 0x0001, 0x0482, 0x0001, 0x0483, 0x0001, 0x0484, ++ 0x0037, 0x0485, 0x0037, 0x04BC, 0x0037, 0x04F3, 0x0037, 0x052A, 0x0037, 0x0561, 0x0037, 0x0598, ++ 0x0037, 0x05CF, 0x0037, 0x0606, 0x0037, 0x063D, 0x0036, 0x0674, 0x0037, 0x06AA, 0x0037, 0x06E1, ++ 0x0037, 0x0718, 0x0037, 0x074F, 0x0037, 0x0786, 0x0025, 0x07BD, 0x0026, 0x07E2, 0x0037, 0x0808, ++ 0x0033, 0x083F, 0x0031, 0x0872, 0x0037, 0x08A3, 0x0036, 0x08DA, 0x0037, 0x0910, 0x0036, 0x0947, ++ 0x0037, 0x097D, 0x0037, 0x09B4, 0x0037, 0x09EB, 0x0037, 0x0A22, 0x0034, 0x0A59, 0x0037, 0x0A8D, ++ 0x0037, 0x0AC4, 0x0037, 0x0AFB, 0x0037, 0x0B32, + }; + + static const s16 anim_38_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0xEA73, 0xEB7E, 0xEDCA, 0xF01B, 0xF23E, +- 0xF4B3, 0xF74B, 0xF9D9, 0xFC2C, 0xFE18, 0xFF6E, 0xFFFF, 0xE788, +- 0xEA9C, 0xF0A1, 0xF4C5, 0xF631, 0xF74C, 0xF820, 0xF8B7, 0xF91C, +- 0xF957, 0xF974, 0xF97C, 0xE831, 0xE717, 0xE522, 0xE459, 0xE519, +- 0xE649, 0xE7C0, 0xE955, 0xEADD, 0xEC2F, 0xED21, 0xED8A, 0xD054, +- 0xD69D, 0xE231, 0xE820, 0xE678, 0xE2FC, 0xDE4B, 0xD902, 0xD3C1, +- 0xCF24, 0xCBCB, 0xCA54, 0x02F5, 0x017D, 0xFEA2, 0xFCB3, 0xFC18, +- 0xFBAA, 0xFB60, 0xFB34, 0xFB1F, 0xFB18, 0xFB1A, 0xFB1D, 0xE52A, +- 0xE560, 0xE576, 0xE496, 0xE299, 0xE00B, 0xDD2E, 0xDA40, 0xD782, +- 0xD532, 0xD391, 0xD2DE, 0xBF44, 0xC5C1, 0xD229, 0xD9EA, 0xDB29, +- 0xDB49, 0xDA95, 0xD955, 0xD7D5, 0xD65E, 0xD53B, 0xD4B5, 0x4043, +- 0x425F, 0x466F, 0x4911, 0x46E4, 0x3EDF, 0x335B, 0x2606, 0x188D, +- 0x0C9D, 0x03E3, 0x000D, 0x006A, 0x005B, 0x003A, 0x0015, 0x0000, +- 0xFFF9, 0xFFF7, 0xFFF7, 0xFFF9, 0xFFFC, 0xFFFF, 0x0000, 0xF58E, +- 0xF584, 0xF56E, 0xF557, 0xF549, 0xF545, 0xF543, 0xF543, 0xF545, +- 0xF547, 0xF548, 0xF549, 0xEA13, 0xE896, 0xE543, 0xE1CD, 0xDFE7, +- 0xE1F0, 0xE5AE, 0xE5F1, 0xDFA8, 0xD5E3, 0xCCA4, 0xC7EF, 0xDC6A, +- 0xD5B0, 0xC76B, 0xBA78, 0xB7B5, 0xC231, 0xD432, 0xE961, 0xFD69, +- 0x0BF1, 0x0BD0, 0x056F, 0x2D97, 0x2DE0, 0x2E7F, 0x2F16, 0x2F4B, +- 0x2F06, 0x2E81, 0x2DDB, 0x2D32, 0x2CA4, 0x2C25, 0x2BD7, 0x8F0E, +- 0x84E8, 0x6F29, 0x5AE6, 0x552F, 0x61F7, 0x78DF, 0x9482, 0xAF70, +- 0xC443, 0xCCB4, 0xCCFC, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, +- 0x0006, 0x0005, 0x0004, 0x0002, 0x0001, 0x0000, 0x0000, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xC871, 0xC866, 0xC84D, 0xC834, 0xC828, +- 0xC837, 0xC86B, 0xC8BC, 0xC91A, 0xC974, 0xC9B8, 0xC9D8, 0x205D, +- 0x2038, 0x1FDD, 0x1F6A, 0x1EFC, 0x1EB2, 0x1E89, 0x1E6D, 0x1E5A, +- 0x1E50, 0x1E4B, 0x1E4A, 0x1A92, 0x1A9A, 0x1AAE, 0x1AC7, 0x1AE0, +- 0x1AF0, 0x1AF9, 0x1B00, 0x1B04, 0x1B07, 0x1B08, 0x1B09, 0x1206, +- 0x11F9, 0x11DA, 0x11B1, 0x118B, 0x1170, 0x1161, 0x1155, 0x114D, +- 0x1148, 0x1145, 0x1144, 0xAB2C, 0xAB3F, 0xAB6D, 0xABA8, 0xABE1, +- 0xAC07, 0xAC1D, 0xAC2D, 0xAC38, 0xAC3F, 0xAC43, 0xAC44, 0x0026, +- 0x0027, 0x0028, 0x002A, 0x002A, 0x0028, 0x0023, 0x001B, 0x0012, +- 0x0009, 0x0003, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, +- 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xC07C, +- 0xC09C, 0xC0E6, 0xC13B, 0xC17A, 0xC183, 0xC146, 0xC0D9, 0xC055, +- 0xBFD3, 0xBF6F, 0xBF41, 0x239D, 0x238E, 0x236D, 0x234C, 0x233A, +- 0x2348, 0x2385, 0x23E5, 0x2454, 0x24BF, 0x2511, 0x2536, 0xD64A, +- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0xE406, 0xE997, 0xF014, 0xF0C9, 0xF00C, 0xEF10, +- 0xEF0E, 0xF088, 0xF2F9, 0xF604, 0xFB79, 0xFFED, 0xFD18, 0xFE5B, +- 0x002D, 0x0166, 0x029D, 0x0387, 0x03D3, 0x02CD, 0x00DF, 0xFF70, +- 0xFF7E, 0xFFFE, 0xFFF2, 0x0603, 0x0DFB, 0x11E4, 0x1555, 0x174B, +- 0x16C0, 0x10EB, 0x075D, 0xFF9B, 0xFCBA, 0xFC61, 0xFF91, 0xFF90, +- 0xFF94, 0xFF9F, 0xFFAD, 0xFFBD, 0xFFCD, 0xFFDC, 0xFFEA, 0xFFF5, +- 0xFFFD, 0x0000, 0x0314, 0x0783, 0x0BD0, 0x0B33, 0x0A06, 0x0873, +- 0x06A6, 0x04C7, 0x0303, 0x0185, 0x0076, 0x0001, 0x0882, 0x0876, +- 0x086B, 0x086C, 0x086E, 0x0871, 0x0875, 0x0879, 0x087D, 0x0880, +- 0x0883, 0x0884, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, +- 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFB9, 0xFFC5, +- 0xFFE3, 0x000A, 0x0033, 0x0055, 0x0066, 0x0060, 0x0048, 0x0029, +- 0x000D, 0x0000, 0x407E, 0x407E, 0x4081, 0x4084, 0x4087, 0x408A, +- 0x408E, 0x4093, 0x4098, 0x409C, 0x40A0, 0x40A1, ++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000A, 0x000B, 0x000D, ++ 0x000E, 0x000F, 0x0011, 0x0012, 0x0013, 0x0014, 0x0016, 0x0013, 0x0011, 0x000E, 0x000C, 0x000A, ++ 0x0007, 0x0005, 0x0002, 0x0000, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF6, ++ 0xFFF5, 0xFFF4, 0xFFF3, 0xFFF2, 0xFFF0, 0xFFEF, 0xFFEE, 0xFFED, 0xFFEC, 0xFFEA, 0xFFED, 0xFFEF, ++ 0xFFF2, 0xFFF4, 0xFFF6, 0xFFF9, 0xFFFB, 0xFFFE, 0x0000, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, ++ 0x00B9, 0x00B8, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B2, 0x00B1, 0x00B1, 0x00B0, ++ 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, 0x00BB, 0x00BD, 0x00BC, ++ 0x00BB, 0x00BA, 0x00B9, 0x00B9, 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, ++ 0x00B1, 0x00B0, 0x00B0, 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, ++ 0x00BB, 0x00BD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0036, 0x006B, 0x00A1, 0x00D6, ++ 0x010B, 0x0141, 0x0177, 0x01AD, 0x01E2, 0x0217, 0x024D, 0x0283, 0x02B8, 0x02EF, 0x0323, 0x035A, ++ 0x038E, 0x032A, 0x02C4, 0x025E, 0x01F9, 0x0195, 0x0130, 0x00CA, 0x0065, 0xFFFF, 0xFFCC, 0xFF9A, ++ 0xFF67, 0xFF35, 0xFF02, 0xFED0, 0xFE9D, 0xFE6A, 0xFE38, 0xFE06, 0xFDD3, 0xFDA0, 0xFD6E, 0xFD3B, ++ 0xFD09, 0xFCD6, 0xFCA3, 0xFC72, 0xFCD6, 0xFD3B, 0xFDA0, 0xFE06, 0xFE6A, 0xFED0, 0xFF35, 0xFF9A, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x4000, 0x00D0, 0x00D0, 0x00EF, 0x0146, 0x01CA, 0x0272, 0x0333, 0x0403, 0x04D8, ++ 0x05A8, 0x0668, 0x0710, 0x0794, 0x07EB, 0x080A, 0x077C, 0x06ED, 0x065F, 0x05D1, 0x0543, 0x04B4, ++ 0x0426, 0x0398, 0x0309, 0x027B, 0x01ED, 0x015E, 0x00D0, 0xFFC3, 0xFEAE, 0xFD94, 0xFC7C, 0xFB6B, ++ 0xFA65, 0xF972, 0xF894, 0xF7D3, 0xF734, 0xF6BB, 0xF66F, 0xF655, 0xF714, 0xF7D4, 0xF893, 0xF953, ++ 0xFA13, 0xFAD2, 0xFB92, 0xFC51, 0xFD11, 0xFDD1, 0xFE90, 0xFF50, 0x0011, 0x00D0, 0x0000, 0x0000, ++ 0xFFFC, 0xFFF3, 0xFFE5, 0xFFD3, 0xFFBE, 0xFFA8, 0xFF91, 0xFF7B, 0xFF67, 0xFF55, 0xFF47, 0xFF3E, ++ 0xFF3A, 0xFF4A, 0xFF59, 0xFF68, 0xFF77, 0xFF86, 0xFF95, 0xFFA4, 0xFFB3, 0xFFC3, 0xFFD2, 0xFFE1, ++ 0xFFF0, 0x0000, 0x0017, 0x002D, 0x0043, 0x0058, 0x006C, 0x007F, 0x0090, 0x009F, 0x00AC, 0x00B7, ++ 0x00BF, 0x00C4, 0x00C5, 0x00B7, 0x00A9, 0x009B, 0x008D, 0x007F, 0x0071, 0x0063, 0x0055, 0x0047, ++ 0x0039, 0x002A, 0x001C, 0x000E, 0x0000, 0x0993, 0x0993, 0x0963, 0x08DD, 0x0811, 0x070F, 0x05E6, ++ 0x04A5, 0x035D, 0x021C, 0x00F3, 0xFFF0, 0xFF24, 0xFE9F, 0xFE6F, 0xFF4A, 0x0026, 0x0102, 0x01DD, ++ 0x02B8, 0x0393, 0x046F, 0x054A, 0x0625, 0x0701, 0x07DC, 0x08B7, 0x0993, 0x0963, 0x08DD, 0x0811, ++ 0x070F, 0x05E6, 0x04A5, 0x035D, 0x021D, 0x00F3, 0xFFF0, 0xFF25, 0xFE9F, 0xFE6F, 0xFF3B, 0x0007, ++ 0x00D3, 0x019E, 0x026A, 0x0336, 0x0401, 0x04CD, 0x0598, 0x0664, 0x0730, 0x07FB, 0x08C7, 0x0993, ++ 0x0007, 0x0007, 0xFFE6, 0xFF8B, 0xFF01, 0xFE53, 0xFD8A, 0xFCB1, 0xFBD3, 0xFAFA, 0xFA31, 0xF983, ++ 0xF8F9, 0xF89E, 0xF87E, 0xF88F, 0xF8C2, 0xF912, 0xF97D, 0xFA00, 0xFA98, 0xFB42, 0xFBFA, 0xFCBE, ++ 0xFD8B, 0xFE5D, 0xFF32, 0x0007, 0x00D8, 0x01A5, 0x026B, 0x0329, 0x03DE, 0x0489, 0x0528, 0x05B9, ++ 0x063C, 0x06AE, 0x070F, 0x075D, 0x0796, 0x07B9, 0x07C5, 0x079E, 0x0733, 0x0690, 0x05C4, 0x04DC, ++ 0x03E6, 0x02F1, 0x0209, 0x013D, 0x009A, 0x002E, 0x0007, 0xFFC9, 0xFFC9, 0xFFC9, 0xFFC6, 0xFFC3, ++ 0xFFBE, 0xFFB9, 0xFFB3, 0xFFAE, 0xFFA8, 0xFFA3, 0xFF9F, 0xFF9B, 0xFF99, 0xFF98, 0xFF99, 0xFF9B, ++ 0xFF9F, 0xFFA3, 0xFFA8, 0xFFAE, 0xFFB3, 0xFFB9, 0xFFBE, 0xFFC3, 0xFFC6, 0xFFC9, 0xFFC9, 0xFFC9, ++ 0xFFC9, 0xFFC8, 0xFFC6, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC0, 0xFFBE, 0xFFBD, 0xFFBB, 0xFFBA, 0xFFB9, ++ 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB9, 0xFFBB, 0xFFBD, 0xFFBF, 0xFFC1, 0xFFC3, 0xFFC5, 0xFFC7, 0xFFC8, ++ 0xFFC9, 0xF555, 0xF555, 0xF582, 0xF5FF, 0xF6BE, 0xF7B0, 0xF8C6, 0xF9F2, 0xFB26, 0xFC52, 0xFD68, ++ 0xFE5A, 0xFF19, 0xFF96, 0xFFC3, 0xFF96, 0xFF19, 0xFE5A, 0xFD68, 0xFC52, 0xFB26, 0xF9F2, 0xF8C6, ++ 0xF7B0, 0xF6BE, 0xF5FF, 0xF582, 0xF555, 0xF576, 0xF5D3, 0xF664, 0xF71E, 0xF7F8, 0xF8E9, 0xF9E9, ++ 0xFAED, 0xFBEC, 0xFCDE, 0xFDB8, 0xFE72, 0xFF02, 0xFF60, 0xFF81, 0xFF4E, 0xFEC0, 0xFDEA, 0xFCDE, ++ 0xFBAD, 0xFA6B, 0xF928, 0xF7F8, 0xF6EC, 0xF616, 0xF588, 0xF555, 0xFFFE, 0x0001, 0xC170, 0xF40C, ++ 0xF40C, 0xF60A, 0xF807, 0xFA04, 0xFC02, 0xFDFF, 0xFFFD, 0x01FB, 0x03F8, 0x05F6, 0x07F3, 0x09F1, ++ 0x0BEE, 0x0DEB, 0x0FE9, 0x11E6, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x11F4, 0x1005, 0x0E15, ++ 0x0C26, 0x0A37, 0x0847, 0x0658, 0x06DF, 0x0766, 0x07ED, 0x0874, 0x08FC, 0x0983, 0x0A0A, 0x0A91, ++ 0x0B18, 0x0B9F, 0x0C26, 0x0CAE, 0x0D35, 0x0DBC, 0x0E43, 0x0BE1, 0x097F, 0x071D, 0x04BB, 0x0259, ++ 0xFFF6, 0xFD94, 0xFB32, 0xF8D0, 0xF66E, 0xF40C, 0xDC0B, 0xDC0B, 0xDBFE, 0xDBF1, 0xDBE3, 0xDBD6, ++ 0xDBC9, 0xDBBC, 0xDBAF, 0xDBA1, 0xDB94, 0xDB87, 0xDB7A, 0xDB6D, 0xDB5F, 0xDB52, 0xDB45, 0xDB38, ++ 0xDB38, 0xDB38, 0xDB38, 0xDB38, 0xDC56, 0xDD74, 0xDE92, 0xDFB1, 0xE0CF, 0xE1ED, 0xE30B, 0xE52D, ++ 0xE74F, 0xE971, 0xEB93, 0xEDB4, 0xEFD6, 0xF1F8, 0xF41A, 0xF63C, 0xF85E, 0xFA7F, 0xFCA1, 0xFEC3, ++ 0x00E6, 0x0308, 0xFF7B, 0xFBF0, 0xF865, 0xF4DA, 0xF14F, 0xEDC3, 0xEA38, 0xE6AD, 0xE322, 0xDF96, ++ 0xDC0B, 0x94C0, 0x94C0, 0x9B35, 0xA1A9, 0xA81E, 0xAE93, 0xB507, 0xBB7C, 0xC1F1, 0xC865, 0xCEDA, ++ 0xD54F, 0xDBC3, 0xE238, 0xE8AD, 0xEF21, 0xF596, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xEB63, ++ 0xDABC, 0xCA14, 0xB96D, 0xA8C6, 0x981E, 0x8777, 0x882E, 0x88E4, 0x899B, 0x8A52, 0x8B09, 0x8BC0, ++ 0x8C76, 0x8D2D, 0x8DE4, 0x8E9B, 0x8F51, 0x9008, 0x90BF, 0x9176, 0x922C, 0x9268, 0x92A4, 0x92E0, ++ 0x931C, 0x9358, 0x9394, 0x93D0, 0x940C, 0x9448, 0x9484, 0x94C0, 0xFCE1, 0xFCE1, 0xFE2F, 0xFF7E, ++ 0x00CD, 0x021C, 0x036B, 0x04B9, 0x0608, 0x0756, 0x08A5, 0x09F3, 0x0B42, 0x0C90, 0x0DDF, 0x0F2E, ++ 0x107C, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x106B, 0x0F0C, 0x0DAC, 0x0C4D, 0x0AED, 0x098D, ++ 0x082E, 0x067F, 0x04D1, 0x0323, 0x0174, 0xFFC5, 0xFE16, 0xFC68, 0xFABA, 0xF90B, 0xF75D, 0xF5AE, ++ 0xF400, 0xF252, 0xF0A3, 0xF1A8, 0xF2AD, 0xF3B3, 0xF4B8, 0xF5BD, 0xF6C2, 0xF7C7, 0xF8CC, 0xF9D1, ++ 0xFAD6, 0xFBDC, 0xFCE1, 0x1C35, 0x1C35, 0x1BAF, 0x1B29, 0x1AA3, 0x1A1D, 0x1997, 0x1911, 0x188B, ++ 0x1805, 0x177F, 0x16F9, 0x1673, 0x15ED, 0x1568, 0x14E2, 0x145C, 0x13D6, 0x13D6, 0x13D6, 0x13D6, ++ 0x13D6, 0x148E, 0x1546, 0x15FF, 0x16B7, 0x1770, 0x1828, 0x18E0, 0x1977, 0x1A0D, 0x1AA4, 0x1B3A, ++ 0x1BD1, 0x1C67, 0x1CFE, 0x1D94, 0x1E2B, 0x1EC1, 0x1F58, 0x1FEE, 0x2085, 0x211B, 0x20B3, 0x204A, ++ 0x1FE2, 0x1F79, 0x1F11, 0x1EA8, 0x1E40, 0x1DD7, 0x1D6F, 0x1D06, 0x1C9D, 0x1C35, 0xEE48, 0xEE48, ++ 0xEF90, 0xF0D9, 0xF221, 0xF369, 0xF4B2, 0xF5FA, 0xF742, 0xF88A, 0xF9D3, 0xFB1B, 0xFC63, 0xFDAC, ++ 0xFEF4, 0x003D, 0x0186, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x01AA, 0x0086, 0xFF62, 0xFE3E, ++ 0xFD1A, 0xFBF6, 0xFAD3, 0xF912, 0xF751, 0xF590, 0xF3CF, 0xF20E, 0xF04D, 0xEE8C, 0xECCB, 0xEB0A, ++ 0xE949, 0xE788, 0xE5C7, 0xE406, 0xE245, 0xE346, 0xE446, 0xE546, 0xE646, 0xE747, 0xE847, 0xE947, ++ 0xEA47, 0xEB47, 0xEC48, 0xED48, 0xEE48, 0x21A1, 0x21A1, 0x2006, 0x1B7B, 0x146D, 0x0B46, 0x0071, ++ 0xF45A, 0xE76D, 0xDA15, 0xCCBD, 0xBFD0, 0xB3BA, 0xA8E6, 0x9FBF, 0x98B0, 0x9426, 0x928A, 0x928A, ++ 0x928A, 0x928A, 0x928A, 0xA6FB, 0xBB6C, 0xCFDD, 0xE44E, 0xF8BF, 0x0D30, 0x21A1, 0x2188, 0x2143, ++ 0x20D8, 0x2050, 0x1FB2, 0x1F04, 0x1E50, 0x1D9B, 0x1CED, 0x1C4F, 0x1BC7, 0x1B5C, 0x1B17, 0x1AFE, ++ 0x1B1F, 0x1B7C, 0x1C07, 0x1CB7, 0x1D7D, 0x1E50, 0x1F22, 0x1FE9, 0x2098, 0x2123, 0x2180, 0x21A1, ++ 0xF7CA, 0xF7CA, 0xF77F, 0xF6AD, 0xF565, 0xF3BC, 0xF1C6, 0xEF95, 0xED3D, 0xEAD2, 0xE867, 0xE60F, ++ 0xE3DE, 0xE1E8, 0xE03F, 0xDEF8, 0xDE25, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xE18F, 0xE543, ++ 0xE8F8, 0xECAC, 0xF061, 0xF415, 0xF7CA, 0xF8A6, 0xF964, 0xFA04, 0xFA89, 0xFAF6, 0xFB4E, 0xFB92, ++ 0xFBC5, 0xFBEA, 0xFC03, 0xFC12, 0xFC19, 0xFC1C, 0xFC1C, 0xFC07, 0xFBCA, 0xFB70, 0xFAFE, 0xFA7C, ++ 0xF9F3, 0xF96A, 0xF8E9, 0xF877, 0xF81C, 0xF7E0, 0xF7CA, 0xF6E8, 0xF6E8, 0xF76A, 0xF8D9, 0xFB13, ++ 0xFDF6, 0x0163, 0x0533, 0x0948, 0x0D7E, 0x11B5, 0x15CA, 0x199A, 0x1D06, 0x1FE9, 0x2223, 0x2392, ++ 0x2414, 0x2414, 0x2414, 0x2414, 0x2414, 0x1DA0, 0x172C, 0x10B8, 0x0A45, 0x03D1, 0xFD5C, 0xF6E8, ++ 0xF4BC, 0xF2E0, 0xF14C, 0xEFFC, 0xEEE9, 0xEE0C, 0xED61, 0xECE0, 0xEC83, 0xEC45, 0xEC20, 0xEC0C, ++ 0xEC05, 0xEC04, 0xEC3B, 0xECD3, 0xEDB8, 0xEED7, 0xF01D, 0xF176, 0xF2CF, 0xF415, 0xF534, 0xF619, ++ 0xF6B1, 0xF6E8, 0xFFFE, 0x0001, 0xC170, 0xF96B, 0xF96B, 0xF913, 0xF8BA, 0xF862, 0xF80A, 0xF7B1, ++ 0xF759, 0xF700, 0xF6A8, 0xF64F, 0xF5F7, 0xF59E, 0xF546, 0xF4ED, 0xF495, 0xF43C, 0xF3E4, 0xF38B, ++ 0xF5F5, 0xF85E, 0xFAC8, 0xFD32, 0xFF9B, 0x0206, 0x046F, 0x06D9, 0x0942, 0x0BAC, 0x0A47, 0x08E2, ++ 0x077E, 0x0619, 0x04B4, 0x0350, 0x01EB, 0x0086, 0xFF21, 0xFDBC, 0xFC57, 0xFAF2, 0xF98E, 0xF829, ++ 0xF6C4, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF62F, 0xF6FE, 0xF7CD, 0xF89C, 0xF96B, ++ 0x1D0F, 0x1D0F, 0x1B21, 0x1934, 0x1746, 0x1559, 0x136B, 0x117E, 0x0F90, 0x0DA3, 0x0BB5, 0x09C8, ++ 0x07DA, 0x05ED, 0x03FF, 0x0212, 0x0024, 0xFE36, 0xFC48, 0x0048, 0x0446, 0x0845, 0x0C43, 0x1042, ++ 0x1440, 0x183F, 0x1C3D, 0x203C, 0x243A, 0x2443, 0x244C, 0x2455, 0x245F, 0x2468, 0x2471, 0x247A, ++ 0x2483, 0x248C, 0x2495, 0x249E, 0x24A7, 0x24B0, 0x24BA, 0x24C3, 0x24CC, 0x24CC, 0x24CC, 0x24CC, ++ 0x24CC, 0x24CC, 0x2340, 0x21B3, 0x2027, 0x1E9B, 0x1D0F, 0x86F8, 0x86F8, 0x879B, 0x883F, 0x88E2, ++ 0x8986, 0x8A29, 0x8ACD, 0x8B71, 0x8C14, 0x8CB8, 0x8D5B, 0x8DFF, 0x8EA3, 0x8F46, 0x8FEA, 0x908D, ++ 0x9131, 0x91D4, 0x9211, 0x924D, 0x9289, 0x92C5, 0x9301, 0x933D, 0x9379, 0x93B5, 0x93F1, 0x942D, ++ 0x9A9C, 0xA10A, 0xA779, 0xADE7, 0xB456, 0xBAC4, 0xC132, 0xC7A1, 0xCE0F, 0xD47E, 0xDAEC, 0xE15B, ++ 0xE7C9, 0xEE38, 0xF4A6, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xE3DB, 0xCCA2, 0xB56A, ++ 0x9E31, 0x86F8, 0xF7CB, 0xF7CB, 0xF9B7, 0xFBA4, 0xFD90, 0xFF7C, 0x016A, 0x0356, 0x0542, 0x072F, ++ 0x091B, 0x0B07, 0x0CF4, 0x0EE0, 0x10CC, 0x0FA7, 0x0E81, 0x0D5B, 0x0C36, 0x0B10, 0x09EA, 0x08C4, ++ 0x079F, 0x0679, 0x0553, 0x042D, 0x0308, 0x01E2, 0x00BC, 0xFF96, 0xFE70, 0xFD4A, 0xFC24, 0xFAFF, ++ 0xF9D9, 0xF8B3, 0xF78D, 0xF668, 0xF542, 0xF41C, 0xF2F7, 0xF1D1, 0xF0AB, 0xEF85, 0xEE60, 0xEE60, ++ 0xEE60, 0xEE60, 0xEE60, 0xEE60, 0xF042, 0xF224, 0xF406, 0xF5E9, 0xF7CB, 0xE769, 0xE769, 0xE6BA, ++ 0xE60B, 0xE55D, 0xE4AE, 0xE3FF, 0xE350, 0xE2A1, 0xE1F2, 0xE143, 0xE094, 0xDFE6, 0xDF37, 0xDE88, ++ 0xDF00, 0xDF77, 0xDFEF, 0xE067, 0xE0DF, 0xE156, 0xE1CE, 0xE246, 0xE2BE, 0xE336, 0xE3AD, 0xE425, ++ 0xE49D, 0xE515, 0xE58C, 0xE604, 0xE67C, 0xE6F4, 0xE76B, 0xE7E3, 0xE85B, 0xE8D3, 0xE94B, 0xE9C2, ++ 0xEA3A, 0xEAB2, 0xEB2A, 0xEBA1, 0xEC19, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEB89, ++ 0xEA81, 0xE979, 0xE871, 0xE769, 0xFB6E, 0xFB6E, 0xF9BC, 0xF809, 0xF657, 0xF4A5, 0xF2F2, 0xF140, ++ 0xEF8E, 0xEDDB, 0xEC29, 0xEA77, 0xE8C4, 0xE712, 0xE55F, 0xE65B, 0xE756, 0xE852, 0xE94D, 0xEA49, ++ 0xEB44, 0xEC40, 0xED3B, 0xEE37, 0xEF32, 0xF02D, 0xF129, 0xF224, 0xF320, 0xF41B, 0xF517, 0xF612, ++ 0xF70E, 0xF809, 0xF905, 0xFA00, 0xFAFC, 0xFBF7, 0xFCF2, 0xFDEE, 0xFEE9, 0xFFE5, 0x00E1, 0x01DD, ++ 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x015D, 0xFFE0, 0xFE65, 0xFCEA, 0xFB6E, 0xDE55, ++ 0xDE55, 0xDF02, 0xDFAE, 0xE05A, 0xE107, 0xE1B3, 0xE260, 0xE30C, 0xE3B8, 0xE465, 0xE511, 0xE5BE, ++ 0xE66A, 0xE716, 0xE676, 0xE5D6, 0xE536, 0xE496, 0xE3F6, 0xE356, 0xE2B6, 0xE216, 0xE176, 0xE0D6, ++ 0xE035, 0xDF95, 0xDEF5, 0xDE55, 0xE702, 0xEFAF, 0xF85D, 0x010B, 0x09B8, 0x1265, 0x1B12, 0x23BF, ++ 0x2C6C, 0x351A, 0x3DC7, 0x4674, 0x4F21, 0x57CE, 0x607B, 0x6928, 0x6928, 0x6928, 0x6928, 0x6928, ++ 0x6928, 0x4D65, 0x31A1, 0x15DD, 0xFA19, 0xDE55, 0x0700, 0x0700, 0x06AE, 0x065D, 0x060C, 0x05BA, ++ 0x0569, 0x0518, 0x04C6, 0x0475, 0x0424, 0x03D2, 0x0381, 0x0330, 0x02DE, 0x032A, 0x0375, 0x03C1, ++ 0x040C, 0x0458, 0x04A3, 0x04EF, 0x053B, 0x0586, 0x05D2, 0x061D, 0x0669, 0x06B4, 0x0700, 0x08AE, ++ 0x0A5D, 0x0C0C, 0x0DBB, 0x0F69, 0x1118, 0x12C7, 0x1476, 0x1624, 0x17D3, 0x1982, 0x1B31, 0x1CDF, ++ 0x1E8E, 0x203D, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x1C89, 0x1727, 0x11C4, 0x0C62, ++ 0x0700, 0xF641, 0xF641, 0xF587, 0xF4CE, 0xF414, 0xF35A, 0xF2A0, 0xF1E6, 0xF12C, 0xF072, 0xEFB9, ++ 0xEEFF, 0xEE45, 0xED8B, 0xECD1, 0xED7E, 0xEE2A, 0xEED7, 0xEF84, 0xF030, 0xF0DD, 0xF189, 0xF236, ++ 0xF2E2, 0xF38F, 0xF43C, 0xF4E8, 0xF595, 0xF641, 0xF8CC, 0xFB57, 0xFDE1, 0x006D, 0x02F8, 0x0583, ++ 0x080D, 0x0A98, 0x0D23, 0x0FAE, 0x1238, 0x14C3, 0x174E, 0x19D9, 0x1C63, 0x1EEE, 0x1EEE, 0x1EEE, ++ 0x1EEE, 0x1EEE, 0x1EEE, 0x16CC, 0x0EA9, 0x0687, 0xFE64, 0xF641, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFD, 0xFF65, 0xFECD, 0xFE34, 0xFD9C, 0xFE42, 0xFEE8, ++ 0xFF8E, 0x0035, 0x002A, 0x001F, 0x0014, 0x0009, 0xFFFD, 0x0056, 0x00AE, 0x0106, 0x015E, 0x015E, ++ 0x015E, 0x015E, 0x015E, 0x015E, 0x0106, 0x00AE, 0x0056, 0xFFFD, 0x0093, 0x0128, 0x01BD, 0x0252, ++ 0x02E7, 0x037D, 0x0412, 0x04A7, 0x053C, 0x05D1, 0x0666, 0x0665, 0x0664, 0x0664, 0x0663, 0x0662, ++ 0x0662, 0x0661, 0x0660, 0x0660, 0x065F, 0x065E, 0x0518, 0x03D1, 0x028B, 0x0144, 0xFFFD, 0xFFFF, ++ 0xFFFF, 0x01AD, 0x035A, 0x0507, 0x06B4, 0x05EC, 0x0524, 0x045C, 0x0394, 0x02DD, 0x0225, 0x016E, ++ 0x00B7, 0xFFFE, 0xFF2D, 0xFE5B, 0xFD89, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFD89, ++ 0xFE5B, 0xFF2D, 0xFFFF, 0xFFA5, 0xFF4B, 0xFEF2, 0xFE98, 0xFE3E, 0xFDE4, 0xFD8B, 0xFD31, 0xFCD7, ++ 0xFC7D, 0xFC24, 0xFC29, 0xFC2F, 0xFC34, 0xFC3A, 0xFC3F, 0xFC45, 0xFC4A, 0xFC50, 0xFC55, 0xFC5B, ++ 0xFC60, 0xFD1A, 0xFDD3, 0xFE8C, 0xFF46, 0xFFFF, 0x8000, 0x8000, 0x7C82, 0x7904, 0x7586, 0x7209, ++ 0x72AF, 0x7355, 0x73FC, 0x74A2, 0x73AE, 0x72B9, 0x71C4, 0x70CF, 0x6FDA, 0x6FD7, 0x6FD3, 0x6FD0, ++ 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x7684, 0x7D3B, 0x83F3, 0x8AAA, 0x8EE5, 0x931F, ++ 0x975A, 0x9B94, 0x9FCF, 0xA409, 0xA843, 0xAC7E, 0xB0B8, 0xB4F3, 0xB92D, 0xB980, 0xB9D3, 0xBA25, ++ 0xBA78, 0xBACA, 0xBB1D, 0xBB70, 0xBBC2, 0xBC15, 0xBC68, 0xBCBA, 0xB095, 0xA470, 0x984A, 0x8C25, ++ 0x8000, 0x0000, 0x0000, 0xFFB9, 0xFF73, 0xFF2D, 0xFEE7, 0xFF23, 0xFF60, 0xFF9C, 0xFFD8, 0xFFE0, ++ 0xFFE8, 0xFFF0, 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFD, 0xFFFC, 0xFFFA, 0xFFF9, 0x0001, 0x0009, 0x0010, 0x0018, ++ 0x0013, 0x000E, 0x0009, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x038E, 0x038E, 0x06C7, 0x0A00, 0x0D39, 0x1072, 0x0EF3, 0x0D74, ++ 0x0BF5, 0x0A76, 0x0B34, 0x0BF2, 0x0CAF, 0x0D6D, 0x0E2B, 0x0D92, 0x0CF9, 0x0C60, 0x0BC7, 0x0B2E, ++ 0x0A95, 0x09FC, 0x0963, 0x08CA, 0x0831, 0x0798, 0x06FF, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, ++ 0x2A3B, 0x2BA7, 0x2D13, 0x2E7F, 0x2FEB, 0x3119, 0x3246, 0x3374, 0x34A2, 0x35CF, 0x36FD, 0x382A, ++ 0x3958, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2F87, 0x2489, 0x198B, 0x0E8C, 0x038E, 0xFFFF, ++ 0xFFFF, 0xFFDD, 0xFFBA, 0xFF98, 0xFF75, 0xFF53, 0xFF31, 0xFF0E, 0xFEEC, 0xFECA, 0xFEA7, 0xFE85, ++ 0xFE62, 0xFE40, 0xFDD6, 0xFD6B, 0xFD01, 0xFC96, 0xFC2C, 0xFBC1, 0xFB57, 0xFAEC, 0xFA82, 0xFBE1, ++ 0xFD41, 0xFEA0, 0x0000, 0x0034, 0x0067, 0x009B, 0x00CE, 0x00B7, 0x00A0, 0x008A, 0x0073, 0x005C, ++ 0x0045, 0x002E, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFCA, 0xFF95, 0xFF60, 0xFF2B, 0xFEF6, 0xFEC1, 0xFE8C, 0xFE57, ++ 0xFE23, 0xFDEE, 0xFDB9, 0xFD84, 0xFD4F, 0xFDAE, 0xFE0D, 0xFE6C, 0xFECB, 0xFF2A, 0xFF89, 0xFFE8, ++ 0x0048, 0x00A7, 0x007D, 0x0054, 0x002A, 0xFFFF, 0xFF9A, 0xFF36, 0xFED1, 0xFE6D, 0xFE9A, 0xFEC6, ++ 0xFEF3, 0xFF20, 0xFF4C, 0xFF79, 0xFFA6, 0xFFD2, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xCAAA, 0xCAAA, 0xCB05, 0xCB5F, 0xCBBA, 0xCC15, 0xCC6F, 0xCCCA, 0xCD25, ++ 0xCD80, 0xCDDA, 0xCE35, 0xCE90, 0xCEEA, 0xCF45, 0xD00D, 0xD0D5, 0xD19D, 0xD265, 0xD32D, 0xD3F5, ++ 0xD4BD, 0xD585, 0xD64D, 0xD0B9, 0xCB26, 0xC593, 0xBFFF, 0xBB27, 0xB64F, 0xB178, 0xACA0, 0xB0C0, ++ 0xB4E1, 0xB902, 0xBD23, 0xC143, 0xC564, 0xC985, 0xCDA6, 0xD1C6, 0xD274, 0xD322, 0xD3D1, 0xD47F, ++ 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, 0xB341, 0xBEF5, 0xCAAA, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF6A, 0xFED5, 0xFE40, 0xFDAB, 0xFD16, ++ 0xFC81, 0xFBEC, 0xFB57, 0xFAC2, 0xFA2D, 0xF998, 0xF999, 0xF99A, 0xF99A, 0xF99B, 0xF99C, 0xF99C, ++ 0xF99D, 0xF99E, 0xF99E, 0xF99F, 0xF9A0, 0xFB38, 0xFCD0, 0xFE68, 0x0000, 0x009D, 0x013A, 0x01D6, ++ 0x0273, 0x0230, 0x01ED, 0x01A9, 0x0166, 0x0123, 0x00DA, 0x0092, 0x0049, 0x0000, 0xFFB9, 0xFF72, ++ 0xFF2B, 0xFEE4, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFEE4, 0xFF2B, 0xFF72, 0xFFB8, 0xFFFF, ++ 0x0000, 0x0000, 0x005B, 0x00B6, 0x0111, 0x016C, 0x01C7, 0x0222, 0x027C, 0x02D7, 0x0332, 0x038D, ++ 0x03E8, 0x03E3, 0x03DD, 0x03D7, 0x03D2, 0x03CC, 0x03C7, 0x03C1, 0x03BC, 0x03B6, 0x03B1, 0x03AB, ++ 0x02C1, 0x01D6, 0x00EB, 0x0001, 0xFE54, 0xFCA8, 0xFAFC, 0xF950, 0xF9FA, 0xFAA4, 0xFB4D, 0xFBF7, ++ 0xFCA0, 0xFD78, 0xFE4F, 0xFF27, 0xFFFF, 0x00A7, 0x014F, 0x01F7, 0x029F, 0x0347, 0x0347, 0x0347, ++ 0x0347, 0x0347, 0x029F, 0x01F7, 0x014F, 0x00A8, 0x0000, 0x8AAA, 0x8AAA, 0x8EE5, 0x9320, 0x975B, ++ 0x9B96, 0x9FD2, 0xA40D, 0xA848, 0xAC83, 0xB0BE, 0xB4F9, 0xB934, 0xB987, 0xB9D9, 0xBA2C, 0xBA7E, ++ 0xBAD1, 0xBB24, 0xBB76, 0xBBC9, 0xBC1C, 0xBC6E, 0xBCC1, 0xAD91, 0x9E60, 0x8F30, 0x8000, 0x7C67, ++ 0x78CF, 0x7536, 0x719E, 0x71D7, 0x7210, 0x7249, 0x7282, 0x72BB, 0x71DF, 0x7102, 0x7026, 0x6F49, ++ 0x6F5F, 0x6F75, 0x6F8B, 0x6FA1, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x751B, 0x7A7F, 0x7FE3, ++ 0x8546, 0x8AAA, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0000, 0x0666, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, 0x2A96, 0x2C5D, 0x2E24, 0x2FEB, 0x3157, ++ 0x32C3, 0x3430, 0x359C, 0x3708, 0x37EB, 0x38CF, 0x39B2, 0x3A96, 0x3A96, 0x3A96, 0x3A96, 0x3A96, ++ 0x3A96, 0x2CD4, 0x1F12, 0x1150, 0x038E, 0x0505, 0x067D, 0x07F4, 0x096B, 0x08EB, 0x086A, 0x07EA, ++ 0x076A, 0x06E9, 0x08BA, 0x0A8A, 0x0C5A, 0x0E2B, 0x0DC3, 0x0D5C, 0x0CF5, 0x0C8E, 0x0C27, 0x0B38, ++ 0x0A48, 0x0959, 0x086A, 0x0803, 0x079C, 0x0735, 0x06CD, 0x0666, 0x0000, 0x0000, 0xFFCA, 0xFF96, ++ 0xFF61, 0xFF2C, 0xFF3C, 0xFF4D, 0xFF5D, 0xFF6D, 0xFF7D, 0xFF8D, 0xFF9D, 0xFFAE, 0xFFBE, 0xFFCE, ++ 0xFFDE, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0000, 0xFFFF, ++ 0xFE4E, 0xFC9E, 0xFAEE, 0xF93E, 0xFA04, 0xFACB, 0xFB92, 0xFC58, 0xFD1F, 0xFDE5, 0xFEAC, 0xFF73, ++ 0x003A, 0x0101, 0x0126, 0x014A, 0x016F, 0x0193, 0x01B8, 0x01DD, 0x0201, 0x0226, 0x024B, 0x01B8, ++ 0x0125, 0x0093, 0x0000, 0x0030, 0x0030, 0x0094, 0x00F8, 0x015C, 0x01C0, 0x01A2, 0x0183, 0x0164, ++ 0x0145, 0x0126, 0x0108, 0x00E9, 0x00CA, 0x00AB, 0x008C, 0x006E, 0x004F, 0x0030, 0x0030, 0x0030, ++ 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x00BF, 0x014F, 0x01DE, 0x026D, 0x0266, ++ 0x025F, 0x0258, 0x0251, 0x024A, 0x0243, 0x023C, 0x0235, 0x022E, 0x0226, 0x021F, 0x0217, 0x020F, ++ 0x0207, 0x01FF, 0x01F8, 0x01F0, 0x01E8, 0x01E0, 0x0174, 0x0108, 0x009C, 0x0030, 0xBFFF, 0xBFFF, ++ 0xBAFF, 0xB5FE, 0xB0FE, 0xABFE, 0xAF29, 0xB254, 0xB57F, 0xB8AA, 0xBBD5, 0xBF00, 0xC22B, 0xC556, ++ 0xC881, 0xCBAC, 0xCED7, 0xD202, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, ++ 0xB91B, 0xCAAA, 0xCC6B, 0xCE2C, 0xCFED, 0xD1AE, 0xD1BB, 0xD1C9, 0xD1D6, 0xD1E4, 0xD1F1, 0xD1FF, ++ 0xD20D, 0xD21A, 0xD228, 0xD235, 0xD202, 0xD1CE, 0xD19B, 0xD167, 0xD134, 0xD101, 0xD0CD, 0xD09A, ++ 0xD066, 0xCC4D, 0xC833, 0xC419, 0xBFFF, + }; + +diff --git a/assets/anims/anim_38.inc.c.rej b/assets/anims/anim_38.inc.c.rej +new file mode 100644 +index 0000000..f037391 +--- /dev/null ++++ b/assets/anims/anim_38.inc.c.rej +@@ -0,0 +1,351 @@ ++diff a/assets/anims/anim_38.inc.c b/assets/anims/anim_38.inc.c (rejected hunks) ++@@ -1,9 +1,9 @@ ++ static const struct Animation anim_38[] = { ++- 1, ++- 189, ++ 0, +++ 189, ++ 0, ++- 0x0C, +++ 1, +++ 54, ++ ANIMINDEX_NUMPARTS(anim_38_indices), ++ anim_38_values, ++ anim_38_indices, ++@@ -12,81 +12,263 @@ static const struct Animation anim_38[] = { ++ ++ ++ static const u16 anim_38_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, ++- 0x000C, 0x0182, 0x000C, 0x018E, 0x000C, 0x019A, ++- 0x000C, 0x015E, 0x000C, 0x016A, 0x000C, 0x0176, ++- 0x000C, 0x013A, 0x000C, 0x0146, 0x000C, 0x0152, ++- 0x0001, 0x0136, 0x0001, 0x0137, 0x0001, 0x0138, ++- 0x000C, 0x0033, 0x000C, 0x003F, 0x000C, 0x004B, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0027, ++- 0x000C, 0x0003, 0x000C, 0x000F, 0x000C, 0x001B, ++- 0x0001, 0x0132, 0x0001, 0x0133, 0x0001, 0x0134, ++- 0x000C, 0x0087, 0x000C, 0x0093, 0x000C, 0x009F, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x007B, ++- 0x000C, 0x0057, 0x000C, 0x0063, 0x000C, 0x006F, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0135, ++- 0x0001, 0x012F, 0x0001, 0x0130, 0x0001, 0x0131, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x0123, ++- 0x000C, 0x00FF, 0x000C, 0x010B, 0x000C, 0x0117, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0139, ++- 0x000C, 0x00DB, 0x000C, 0x00E7, 0x000C, 0x00F3, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000C, 0x00CF, ++- 0x000C, 0x00AB, 0x000C, 0x00B7, 0x000C, 0x00C3, +++ 0x0037, 0x0000, 0x0037, 0x0037, 0x0001, 0x006E, 0x0032, 0x006F, 0x0001, 0x00A1, 0x0037, 0x00A2, +++ 0x0037, 0x00D9, 0x0036, 0x0110, 0x0001, 0x0146, 0x0037, 0x0147, 0x0037, 0x017E, 0x0037, 0x01B5, +++ 0x0037, 0x01EC, 0x0036, 0x0223, 0x0037, 0x0259, 0x0001, 0x0290, 0x0001, 0x0291, 0x0001, 0x0292, +++ 0x0037, 0x0293, 0x0037, 0x02CA, 0x0037, 0x0301, 0x0037, 0x0338, 0x0037, 0x036F, 0x0037, 0x03A6, +++ 0x0037, 0x03DD, 0x0037, 0x0414, 0x0037, 0x044B, 0x0001, 0x0482, 0x0001, 0x0483, 0x0001, 0x0484, +++ 0x0037, 0x0485, 0x0037, 0x04BC, 0x0037, 0x04F3, 0x0037, 0x052A, 0x0037, 0x0561, 0x0037, 0x0598, +++ 0x0037, 0x05CF, 0x0037, 0x0606, 0x0037, 0x063D, 0x0036, 0x0674, 0x0037, 0x06AA, 0x0037, 0x06E1, +++ 0x0037, 0x0718, 0x0037, 0x074F, 0x0037, 0x0786, 0x0025, 0x07BD, 0x0026, 0x07E2, 0x0037, 0x0808, +++ 0x0033, 0x083F, 0x0031, 0x0872, 0x0037, 0x08A3, 0x0036, 0x08DA, 0x0037, 0x0910, 0x0036, 0x0947, +++ 0x0037, 0x097D, 0x0037, 0x09B4, 0x0037, 0x09EB, 0x0037, 0x0A22, 0x0034, 0x0A59, 0x0037, 0x0A8D, +++ 0x0037, 0x0AC4, 0x0037, 0x0AFB, 0x0037, 0x0B32, ++ }; ++ ++ static const s16 anim_38_values[] = { ++- 0x0000, 0x00AA, 0x3FFF, 0xEA73, 0xEB7E, 0xEDCA, 0xF01B, 0xF23E, ++- 0xF4B3, 0xF74B, 0xF9D9, 0xFC2C, 0xFE18, 0xFF6E, 0xFFFF, 0xE788, ++- 0xEA9C, 0xF0A1, 0xF4C5, 0xF631, 0xF74C, 0xF820, 0xF8B7, 0xF91C, ++- 0xF957, 0xF974, 0xF97C, 0xE831, 0xE717, 0xE522, 0xE459, 0xE519, ++- 0xE649, 0xE7C0, 0xE955, 0xEADD, 0xEC2F, 0xED21, 0xED8A, 0xD054, ++- 0xD69D, 0xE231, 0xE820, 0xE678, 0xE2FC, 0xDE4B, 0xD902, 0xD3C1, ++- 0xCF24, 0xCBCB, 0xCA54, 0x02F5, 0x017D, 0xFEA2, 0xFCB3, 0xFC18, ++- 0xFBAA, 0xFB60, 0xFB34, 0xFB1F, 0xFB18, 0xFB1A, 0xFB1D, 0xE52A, ++- 0xE560, 0xE576, 0xE496, 0xE299, 0xE00B, 0xDD2E, 0xDA40, 0xD782, ++- 0xD532, 0xD391, 0xD2DE, 0xBF44, 0xC5C1, 0xD229, 0xD9EA, 0xDB29, ++- 0xDB49, 0xDA95, 0xD955, 0xD7D5, 0xD65E, 0xD53B, 0xD4B5, 0x4043, ++- 0x425F, 0x466F, 0x4911, 0x46E4, 0x3EDF, 0x335B, 0x2606, 0x188D, ++- 0x0C9D, 0x03E3, 0x000D, 0x006A, 0x005B, 0x003A, 0x0015, 0x0000, ++- 0xFFF9, 0xFFF7, 0xFFF7, 0xFFF9, 0xFFFC, 0xFFFF, 0x0000, 0xF58E, ++- 0xF584, 0xF56E, 0xF557, 0xF549, 0xF545, 0xF543, 0xF543, 0xF545, ++- 0xF547, 0xF548, 0xF549, 0xEA13, 0xE896, 0xE543, 0xE1CD, 0xDFE7, ++- 0xE1F0, 0xE5AE, 0xE5F1, 0xDFA8, 0xD5E3, 0xCCA4, 0xC7EF, 0xDC6A, ++- 0xD5B0, 0xC76B, 0xBA78, 0xB7B5, 0xC231, 0xD432, 0xE961, 0xFD69, ++- 0x0BF1, 0x0BD0, 0x056F, 0x2D97, 0x2DE0, 0x2E7F, 0x2F16, 0x2F4B, ++- 0x2F06, 0x2E81, 0x2DDB, 0x2D32, 0x2CA4, 0x2C25, 0x2BD7, 0x8F0E, ++- 0x84E8, 0x6F29, 0x5AE6, 0x552F, 0x61F7, 0x78DF, 0x9482, 0xAF70, ++- 0xC443, 0xCCB4, 0xCCFC, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, ++- 0x0006, 0x0005, 0x0004, 0x0002, 0x0001, 0x0000, 0x0000, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xC871, 0xC866, 0xC84D, 0xC834, 0xC828, ++- 0xC837, 0xC86B, 0xC8BC, 0xC91A, 0xC974, 0xC9B8, 0xC9D8, 0x205D, ++- 0x2038, 0x1FDD, 0x1F6A, 0x1EFC, 0x1EB2, 0x1E89, 0x1E6D, 0x1E5A, ++- 0x1E50, 0x1E4B, 0x1E4A, 0x1A92, 0x1A9A, 0x1AAE, 0x1AC7, 0x1AE0, ++- 0x1AF0, 0x1AF9, 0x1B00, 0x1B04, 0x1B07, 0x1B08, 0x1B09, 0x1206, ++- 0x11F9, 0x11DA, 0x11B1, 0x118B, 0x1170, 0x1161, 0x1155, 0x114D, ++- 0x1148, 0x1145, 0x1144, 0xAB2C, 0xAB3F, 0xAB6D, 0xABA8, 0xABE1, ++- 0xAC07, 0xAC1D, 0xAC2D, 0xAC38, 0xAC3F, 0xAC43, 0xAC44, 0x0026, ++- 0x0027, 0x0028, 0x002A, 0x002A, 0x0028, 0x0023, 0x001B, 0x0012, ++- 0x0009, 0x0003, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, ++- 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xC07C, ++- 0xC09C, 0xC0E6, 0xC13B, 0xC17A, 0xC183, 0xC146, 0xC0D9, 0xC055, ++- 0xBFD3, 0xBF6F, 0xBF41, 0x239D, 0x238E, 0x236D, 0x234C, 0x233A, ++- 0x2348, 0x2385, 0x23E5, 0x2454, 0x24BF, 0x2511, 0x2536, 0xD64A, ++- 0xEC41, 0xB59E, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, ++- 0x4171, 0xBF5F, 0xE406, 0xE997, 0xF014, 0xF0C9, 0xF00C, 0xEF10, ++- 0xEF0E, 0xF088, 0xF2F9, 0xF604, 0xFB79, 0xFFED, 0xFD18, 0xFE5B, ++- 0x002D, 0x0166, 0x029D, 0x0387, 0x03D3, 0x02CD, 0x00DF, 0xFF70, ++- 0xFF7E, 0xFFFE, 0xFFF2, 0x0603, 0x0DFB, 0x11E4, 0x1555, 0x174B, ++- 0x16C0, 0x10EB, 0x075D, 0xFF9B, 0xFCBA, 0xFC61, 0xFF91, 0xFF90, ++- 0xFF94, 0xFF9F, 0xFFAD, 0xFFBD, 0xFFCD, 0xFFDC, 0xFFEA, 0xFFF5, ++- 0xFFFD, 0x0000, 0x0314, 0x0783, 0x0BD0, 0x0B33, 0x0A06, 0x0873, ++- 0x06A6, 0x04C7, 0x0303, 0x0185, 0x0076, 0x0001, 0x0882, 0x0876, ++- 0x086B, 0x086C, 0x086E, 0x0871, 0x0875, 0x0879, 0x087D, 0x0880, ++- 0x0883, 0x0884, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ++- 0xFFFD, 0xFFFE, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFB9, 0xFFC5, ++- 0xFFE3, 0x000A, 0x0033, 0x0055, 0x0066, 0x0060, 0x0048, 0x0029, ++- 0x000D, 0x0000, 0x407E, 0x407E, 0x4081, 0x4084, 0x4087, 0x408A, ++- 0x408E, 0x4093, 0x4098, 0x409C, 0x40A0, 0x40A1, +++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000A, 0x000B, 0x000D, +++ 0x000E, 0x000F, 0x0011, 0x0012, 0x0013, 0x0014, 0x0016, 0x0013, 0x0011, 0x000E, 0x000C, 0x000A, +++ 0x0007, 0x0005, 0x0002, 0x0000, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF6, +++ 0xFFF5, 0xFFF4, 0xFFF3, 0xFFF2, 0xFFF0, 0xFFEF, 0xFFEE, 0xFFED, 0xFFEC, 0xFFEA, 0xFFED, 0xFFEF, +++ 0xFFF2, 0xFFF4, 0xFFF6, 0xFFF9, 0xFFFB, 0xFFFE, 0x0000, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, +++ 0x00B9, 0x00B8, 0x00B7, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B2, 0x00B1, 0x00B1, 0x00B0, +++ 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, 0x00BB, 0x00BD, 0x00BC, +++ 0x00BB, 0x00BA, 0x00B9, 0x00B9, 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, +++ 0x00B1, 0x00B0, 0x00B0, 0x00AF, 0x00AE, 0x00B0, 0x00B1, 0x00B3, 0x00B4, 0x00B6, 0x00B8, 0x00B9, +++ 0x00BB, 0x00BD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFE, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0036, 0x006B, 0x00A1, 0x00D6, +++ 0x010B, 0x0141, 0x0177, 0x01AD, 0x01E2, 0x0217, 0x024D, 0x0283, 0x02B8, 0x02EF, 0x0323, 0x035A, +++ 0x038E, 0x032A, 0x02C4, 0x025E, 0x01F9, 0x0195, 0x0130, 0x00CA, 0x0065, 0xFFFF, 0xFFCC, 0xFF9A, +++ 0xFF67, 0xFF35, 0xFF02, 0xFED0, 0xFE9D, 0xFE6A, 0xFE38, 0xFE06, 0xFDD3, 0xFDA0, 0xFD6E, 0xFD3B, +++ 0xFD09, 0xFCD6, 0xFCA3, 0xFC72, 0xFCD6, 0xFD3B, 0xFDA0, 0xFE06, 0xFE6A, 0xFED0, 0xFF35, 0xFF9A, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x4000, 0x00D0, 0x00D0, 0x00EF, 0x0146, 0x01CA, 0x0272, 0x0333, 0x0403, 0x04D8, +++ 0x05A8, 0x0668, 0x0710, 0x0794, 0x07EB, 0x080A, 0x077C, 0x06ED, 0x065F, 0x05D1, 0x0543, 0x04B4, +++ 0x0426, 0x0398, 0x0309, 0x027B, 0x01ED, 0x015E, 0x00D0, 0xFFC3, 0xFEAE, 0xFD94, 0xFC7C, 0xFB6B, +++ 0xFA65, 0xF972, 0xF894, 0xF7D3, 0xF734, 0xF6BB, 0xF66F, 0xF655, 0xF714, 0xF7D4, 0xF893, 0xF953, +++ 0xFA13, 0xFAD2, 0xFB92, 0xFC51, 0xFD11, 0xFDD1, 0xFE90, 0xFF50, 0x0011, 0x00D0, 0x0000, 0x0000, +++ 0xFFFC, 0xFFF3, 0xFFE5, 0xFFD3, 0xFFBE, 0xFFA8, 0xFF91, 0xFF7B, 0xFF67, 0xFF55, 0xFF47, 0xFF3E, +++ 0xFF3A, 0xFF4A, 0xFF59, 0xFF68, 0xFF77, 0xFF86, 0xFF95, 0xFFA4, 0xFFB3, 0xFFC3, 0xFFD2, 0xFFE1, +++ 0xFFF0, 0x0000, 0x0017, 0x002D, 0x0043, 0x0058, 0x006C, 0x007F, 0x0090, 0x009F, 0x00AC, 0x00B7, +++ 0x00BF, 0x00C4, 0x00C5, 0x00B7, 0x00A9, 0x009B, 0x008D, 0x007F, 0x0071, 0x0063, 0x0055, 0x0047, +++ 0x0039, 0x002A, 0x001C, 0x000E, 0x0000, 0x0993, 0x0993, 0x0963, 0x08DD, 0x0811, 0x070F, 0x05E6, +++ 0x04A5, 0x035D, 0x021C, 0x00F3, 0xFFF0, 0xFF24, 0xFE9F, 0xFE6F, 0xFF4A, 0x0026, 0x0102, 0x01DD, +++ 0x02B8, 0x0393, 0x046F, 0x054A, 0x0625, 0x0701, 0x07DC, 0x08B7, 0x0993, 0x0963, 0x08DD, 0x0811, +++ 0x070F, 0x05E6, 0x04A5, 0x035D, 0x021D, 0x00F3, 0xFFF0, 0xFF25, 0xFE9F, 0xFE6F, 0xFF3B, 0x0007, +++ 0x00D3, 0x019E, 0x026A, 0x0336, 0x0401, 0x04CD, 0x0598, 0x0664, 0x0730, 0x07FB, 0x08C7, 0x0993, +++ 0x0007, 0x0007, 0xFFE6, 0xFF8B, 0xFF01, 0xFE53, 0xFD8A, 0xFCB1, 0xFBD3, 0xFAFA, 0xFA31, 0xF983, +++ 0xF8F9, 0xF89E, 0xF87E, 0xF88F, 0xF8C2, 0xF912, 0xF97D, 0xFA00, 0xFA98, 0xFB42, 0xFBFA, 0xFCBE, +++ 0xFD8B, 0xFE5D, 0xFF32, 0x0007, 0x00D8, 0x01A5, 0x026B, 0x0329, 0x03DE, 0x0489, 0x0528, 0x05B9, +++ 0x063C, 0x06AE, 0x070F, 0x075D, 0x0796, 0x07B9, 0x07C5, 0x079E, 0x0733, 0x0690, 0x05C4, 0x04DC, +++ 0x03E6, 0x02F1, 0x0209, 0x013D, 0x009A, 0x002E, 0x0007, 0xFFC9, 0xFFC9, 0xFFC9, 0xFFC6, 0xFFC3, +++ 0xFFBE, 0xFFB9, 0xFFB3, 0xFFAE, 0xFFA8, 0xFFA3, 0xFF9F, 0xFF9B, 0xFF99, 0xFF98, 0xFF99, 0xFF9B, +++ 0xFF9F, 0xFFA3, 0xFFA8, 0xFFAE, 0xFFB3, 0xFFB9, 0xFFBE, 0xFFC3, 0xFFC6, 0xFFC9, 0xFFC9, 0xFFC9, +++ 0xFFC9, 0xFFC8, 0xFFC6, 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC0, 0xFFBE, 0xFFBD, 0xFFBB, 0xFFBA, 0xFFB9, +++ 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB9, 0xFFBB, 0xFFBD, 0xFFBF, 0xFFC1, 0xFFC3, 0xFFC5, 0xFFC7, 0xFFC8, +++ 0xFFC9, 0xF555, 0xF555, 0xF582, 0xF5FF, 0xF6BE, 0xF7B0, 0xF8C6, 0xF9F2, 0xFB26, 0xFC52, 0xFD68, +++ 0xFE5A, 0xFF19, 0xFF96, 0xFFC3, 0xFF96, 0xFF19, 0xFE5A, 0xFD68, 0xFC52, 0xFB26, 0xF9F2, 0xF8C6, +++ 0xF7B0, 0xF6BE, 0xF5FF, 0xF582, 0xF555, 0xF576, 0xF5D3, 0xF664, 0xF71E, 0xF7F8, 0xF8E9, 0xF9E9, +++ 0xFAED, 0xFBEC, 0xFCDE, 0xFDB8, 0xFE72, 0xFF02, 0xFF60, 0xFF81, 0xFF4E, 0xFEC0, 0xFDEA, 0xFCDE, +++ 0xFBAD, 0xFA6B, 0xF928, 0xF7F8, 0xF6EC, 0xF616, 0xF588, 0xF555, 0xFFFE, 0x0001, 0xC170, 0xF40C, +++ 0xF40C, 0xF60A, 0xF807, 0xFA04, 0xFC02, 0xFDFF, 0xFFFD, 0x01FB, 0x03F8, 0x05F6, 0x07F3, 0x09F1, +++ 0x0BEE, 0x0DEB, 0x0FE9, 0x11E6, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x13E4, 0x11F4, 0x1005, 0x0E15, +++ 0x0C26, 0x0A37, 0x0847, 0x0658, 0x06DF, 0x0766, 0x07ED, 0x0874, 0x08FC, 0x0983, 0x0A0A, 0x0A91, +++ 0x0B18, 0x0B9F, 0x0C26, 0x0CAE, 0x0D35, 0x0DBC, 0x0E43, 0x0BE1, 0x097F, 0x071D, 0x04BB, 0x0259, +++ 0xFFF6, 0xFD94, 0xFB32, 0xF8D0, 0xF66E, 0xF40C, 0xDC0B, 0xDC0B, 0xDBFE, 0xDBF1, 0xDBE3, 0xDBD6, +++ 0xDBC9, 0xDBBC, 0xDBAF, 0xDBA1, 0xDB94, 0xDB87, 0xDB7A, 0xDB6D, 0xDB5F, 0xDB52, 0xDB45, 0xDB38, +++ 0xDB38, 0xDB38, 0xDB38, 0xDB38, 0xDC56, 0xDD74, 0xDE92, 0xDFB1, 0xE0CF, 0xE1ED, 0xE30B, 0xE52D, +++ 0xE74F, 0xE971, 0xEB93, 0xEDB4, 0xEFD6, 0xF1F8, 0xF41A, 0xF63C, 0xF85E, 0xFA7F, 0xFCA1, 0xFEC3, +++ 0x00E6, 0x0308, 0xFF7B, 0xFBF0, 0xF865, 0xF4DA, 0xF14F, 0xEDC3, 0xEA38, 0xE6AD, 0xE322, 0xDF96, +++ 0xDC0B, 0x94C0, 0x94C0, 0x9B35, 0xA1A9, 0xA81E, 0xAE93, 0xB507, 0xBB7C, 0xC1F1, 0xC865, 0xCEDA, +++ 0xD54F, 0xDBC3, 0xE238, 0xE8AD, 0xEF21, 0xF596, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xFC0B, 0xEB63, +++ 0xDABC, 0xCA14, 0xB96D, 0xA8C6, 0x981E, 0x8777, 0x882E, 0x88E4, 0x899B, 0x8A52, 0x8B09, 0x8BC0, +++ 0x8C76, 0x8D2D, 0x8DE4, 0x8E9B, 0x8F51, 0x9008, 0x90BF, 0x9176, 0x922C, 0x9268, 0x92A4, 0x92E0, +++ 0x931C, 0x9358, 0x9394, 0x93D0, 0x940C, 0x9448, 0x9484, 0x94C0, 0xFCE1, 0xFCE1, 0xFE2F, 0xFF7E, +++ 0x00CD, 0x021C, 0x036B, 0x04B9, 0x0608, 0x0756, 0x08A5, 0x09F3, 0x0B42, 0x0C90, 0x0DDF, 0x0F2E, +++ 0x107C, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x11CB, 0x106B, 0x0F0C, 0x0DAC, 0x0C4D, 0x0AED, 0x098D, +++ 0x082E, 0x067F, 0x04D1, 0x0323, 0x0174, 0xFFC5, 0xFE16, 0xFC68, 0xFABA, 0xF90B, 0xF75D, 0xF5AE, +++ 0xF400, 0xF252, 0xF0A3, 0xF1A8, 0xF2AD, 0xF3B3, 0xF4B8, 0xF5BD, 0xF6C2, 0xF7C7, 0xF8CC, 0xF9D1, +++ 0xFAD6, 0xFBDC, 0xFCE1, 0x1C35, 0x1C35, 0x1BAF, 0x1B29, 0x1AA3, 0x1A1D, 0x1997, 0x1911, 0x188B, +++ 0x1805, 0x177F, 0x16F9, 0x1673, 0x15ED, 0x1568, 0x14E2, 0x145C, 0x13D6, 0x13D6, 0x13D6, 0x13D6, +++ 0x13D6, 0x148E, 0x1546, 0x15FF, 0x16B7, 0x1770, 0x1828, 0x18E0, 0x1977, 0x1A0D, 0x1AA4, 0x1B3A, +++ 0x1BD1, 0x1C67, 0x1CFE, 0x1D94, 0x1E2B, 0x1EC1, 0x1F58, 0x1FEE, 0x2085, 0x211B, 0x20B3, 0x204A, +++ 0x1FE2, 0x1F79, 0x1F11, 0x1EA8, 0x1E40, 0x1DD7, 0x1D6F, 0x1D06, 0x1C9D, 0x1C35, 0xEE48, 0xEE48, +++ 0xEF90, 0xF0D9, 0xF221, 0xF369, 0xF4B2, 0xF5FA, 0xF742, 0xF88A, 0xF9D3, 0xFB1B, 0xFC63, 0xFDAC, +++ 0xFEF4, 0x003D, 0x0186, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x01AA, 0x0086, 0xFF62, 0xFE3E, +++ 0xFD1A, 0xFBF6, 0xFAD3, 0xF912, 0xF751, 0xF590, 0xF3CF, 0xF20E, 0xF04D, 0xEE8C, 0xECCB, 0xEB0A, +++ 0xE949, 0xE788, 0xE5C7, 0xE406, 0xE245, 0xE346, 0xE446, 0xE546, 0xE646, 0xE747, 0xE847, 0xE947, +++ 0xEA47, 0xEB47, 0xEC48, 0xED48, 0xEE48, 0x21A1, 0x21A1, 0x2006, 0x1B7B, 0x146D, 0x0B46, 0x0071, +++ 0xF45A, 0xE76D, 0xDA15, 0xCCBD, 0xBFD0, 0xB3BA, 0xA8E6, 0x9FBF, 0x98B0, 0x9426, 0x928A, 0x928A, +++ 0x928A, 0x928A, 0x928A, 0xA6FB, 0xBB6C, 0xCFDD, 0xE44E, 0xF8BF, 0x0D30, 0x21A1, 0x2188, 0x2143, +++ 0x20D8, 0x2050, 0x1FB2, 0x1F04, 0x1E50, 0x1D9B, 0x1CED, 0x1C4F, 0x1BC7, 0x1B5C, 0x1B17, 0x1AFE, +++ 0x1B1F, 0x1B7C, 0x1C07, 0x1CB7, 0x1D7D, 0x1E50, 0x1F22, 0x1FE9, 0x2098, 0x2123, 0x2180, 0x21A1, +++ 0xF7CA, 0xF7CA, 0xF77F, 0xF6AD, 0xF565, 0xF3BC, 0xF1C6, 0xEF95, 0xED3D, 0xEAD2, 0xE867, 0xE60F, +++ 0xE3DE, 0xE1E8, 0xE03F, 0xDEF8, 0xDE25, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xDDDA, 0xE18F, 0xE543, +++ 0xE8F8, 0xECAC, 0xF061, 0xF415, 0xF7CA, 0xF8A6, 0xF964, 0xFA04, 0xFA89, 0xFAF6, 0xFB4E, 0xFB92, +++ 0xFBC5, 0xFBEA, 0xFC03, 0xFC12, 0xFC19, 0xFC1C, 0xFC1C, 0xFC07, 0xFBCA, 0xFB70, 0xFAFE, 0xFA7C, +++ 0xF9F3, 0xF96A, 0xF8E9, 0xF877, 0xF81C, 0xF7E0, 0xF7CA, 0xF6E8, 0xF6E8, 0xF76A, 0xF8D9, 0xFB13, +++ 0xFDF6, 0x0163, 0x0533, 0x0948, 0x0D7E, 0x11B5, 0x15CA, 0x199A, 0x1D06, 0x1FE9, 0x2223, 0x2392, +++ 0x2414, 0x2414, 0x2414, 0x2414, 0x2414, 0x1DA0, 0x172C, 0x10B8, 0x0A45, 0x03D1, 0xFD5C, 0xF6E8, +++ 0xF4BC, 0xF2E0, 0xF14C, 0xEFFC, 0xEEE9, 0xEE0C, 0xED61, 0xECE0, 0xEC83, 0xEC45, 0xEC20, 0xEC0C, +++ 0xEC05, 0xEC04, 0xEC3B, 0xECD3, 0xEDB8, 0xEED7, 0xF01D, 0xF176, 0xF2CF, 0xF415, 0xF534, 0xF619, +++ 0xF6B1, 0xF6E8, 0xFFFE, 0x0001, 0xC170, 0xF96B, 0xF96B, 0xF913, 0xF8BA, 0xF862, 0xF80A, 0xF7B1, +++ 0xF759, 0xF700, 0xF6A8, 0xF64F, 0xF5F7, 0xF59E, 0xF546, 0xF4ED, 0xF495, 0xF43C, 0xF3E4, 0xF38B, +++ 0xF5F5, 0xF85E, 0xFAC8, 0xFD32, 0xFF9B, 0x0206, 0x046F, 0x06D9, 0x0942, 0x0BAC, 0x0A47, 0x08E2, +++ 0x077E, 0x0619, 0x04B4, 0x0350, 0x01EB, 0x0086, 0xFF21, 0xFDBC, 0xFC57, 0xFAF2, 0xF98E, 0xF829, +++ 0xF6C4, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF560, 0xF62F, 0xF6FE, 0xF7CD, 0xF89C, 0xF96B, +++ 0x1D0F, 0x1D0F, 0x1B21, 0x1934, 0x1746, 0x1559, 0x136B, 0x117E, 0x0F90, 0x0DA3, 0x0BB5, 0x09C8, +++ 0x07DA, 0x05ED, 0x03FF, 0x0212, 0x0024, 0xFE36, 0xFC48, 0x0048, 0x0446, 0x0845, 0x0C43, 0x1042, +++ 0x1440, 0x183F, 0x1C3D, 0x203C, 0x243A, 0x2443, 0x244C, 0x2455, 0x245F, 0x2468, 0x2471, 0x247A, +++ 0x2483, 0x248C, 0x2495, 0x249E, 0x24A7, 0x24B0, 0x24BA, 0x24C3, 0x24CC, 0x24CC, 0x24CC, 0x24CC, +++ 0x24CC, 0x24CC, 0x2340, 0x21B3, 0x2027, 0x1E9B, 0x1D0F, 0x86F8, 0x86F8, 0x879B, 0x883F, 0x88E2, +++ 0x8986, 0x8A29, 0x8ACD, 0x8B71, 0x8C14, 0x8CB8, 0x8D5B, 0x8DFF, 0x8EA3, 0x8F46, 0x8FEA, 0x908D, +++ 0x9131, 0x91D4, 0x9211, 0x924D, 0x9289, 0x92C5, 0x9301, 0x933D, 0x9379, 0x93B5, 0x93F1, 0x942D, +++ 0x9A9C, 0xA10A, 0xA779, 0xADE7, 0xB456, 0xBAC4, 0xC132, 0xC7A1, 0xCE0F, 0xD47E, 0xDAEC, 0xE15B, +++ 0xE7C9, 0xEE38, 0xF4A6, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xFB14, 0xE3DB, 0xCCA2, 0xB56A, +++ 0x9E31, 0x86F8, 0xF7CB, 0xF7CB, 0xF9B7, 0xFBA4, 0xFD90, 0xFF7C, 0x016A, 0x0356, 0x0542, 0x072F, +++ 0x091B, 0x0B07, 0x0CF4, 0x0EE0, 0x10CC, 0x0FA7, 0x0E81, 0x0D5B, 0x0C36, 0x0B10, 0x09EA, 0x08C4, +++ 0x079F, 0x0679, 0x0553, 0x042D, 0x0308, 0x01E2, 0x00BC, 0xFF96, 0xFE70, 0xFD4A, 0xFC24, 0xFAFF, +++ 0xF9D9, 0xF8B3, 0xF78D, 0xF668, 0xF542, 0xF41C, 0xF2F7, 0xF1D1, 0xF0AB, 0xEF85, 0xEE60, 0xEE60, +++ 0xEE60, 0xEE60, 0xEE60, 0xEE60, 0xF042, 0xF224, 0xF406, 0xF5E9, 0xF7CB, 0xE769, 0xE769, 0xE6BA, +++ 0xE60B, 0xE55D, 0xE4AE, 0xE3FF, 0xE350, 0xE2A1, 0xE1F2, 0xE143, 0xE094, 0xDFE6, 0xDF37, 0xDE88, +++ 0xDF00, 0xDF77, 0xDFEF, 0xE067, 0xE0DF, 0xE156, 0xE1CE, 0xE246, 0xE2BE, 0xE336, 0xE3AD, 0xE425, +++ 0xE49D, 0xE515, 0xE58C, 0xE604, 0xE67C, 0xE6F4, 0xE76B, 0xE7E3, 0xE85B, 0xE8D3, 0xE94B, 0xE9C2, +++ 0xEA3A, 0xEAB2, 0xEB2A, 0xEBA1, 0xEC19, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEC91, 0xEB89, +++ 0xEA81, 0xE979, 0xE871, 0xE769, 0xFB6E, 0xFB6E, 0xF9BC, 0xF809, 0xF657, 0xF4A5, 0xF2F2, 0xF140, +++ 0xEF8E, 0xEDDB, 0xEC29, 0xEA77, 0xE8C4, 0xE712, 0xE55F, 0xE65B, 0xE756, 0xE852, 0xE94D, 0xEA49, +++ 0xEB44, 0xEC40, 0xED3B, 0xEE37, 0xEF32, 0xF02D, 0xF129, 0xF224, 0xF320, 0xF41B, 0xF517, 0xF612, +++ 0xF70E, 0xF809, 0xF905, 0xFA00, 0xFAFC, 0xFBF7, 0xFCF2, 0xFDEE, 0xFEE9, 0xFFE5, 0x00E1, 0x01DD, +++ 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x015D, 0xFFE0, 0xFE65, 0xFCEA, 0xFB6E, 0xDE55, +++ 0xDE55, 0xDF02, 0xDFAE, 0xE05A, 0xE107, 0xE1B3, 0xE260, 0xE30C, 0xE3B8, 0xE465, 0xE511, 0xE5BE, +++ 0xE66A, 0xE716, 0xE676, 0xE5D6, 0xE536, 0xE496, 0xE3F6, 0xE356, 0xE2B6, 0xE216, 0xE176, 0xE0D6, +++ 0xE035, 0xDF95, 0xDEF5, 0xDE55, 0xE702, 0xEFAF, 0xF85D, 0x010B, 0x09B8, 0x1265, 0x1B12, 0x23BF, +++ 0x2C6C, 0x351A, 0x3DC7, 0x4674, 0x4F21, 0x57CE, 0x607B, 0x6928, 0x6928, 0x6928, 0x6928, 0x6928, +++ 0x6928, 0x4D65, 0x31A1, 0x15DD, 0xFA19, 0xDE55, 0x0700, 0x0700, 0x06AE, 0x065D, 0x060C, 0x05BA, +++ 0x0569, 0x0518, 0x04C6, 0x0475, 0x0424, 0x03D2, 0x0381, 0x0330, 0x02DE, 0x032A, 0x0375, 0x03C1, +++ 0x040C, 0x0458, 0x04A3, 0x04EF, 0x053B, 0x0586, 0x05D2, 0x061D, 0x0669, 0x06B4, 0x0700, 0x08AE, +++ 0x0A5D, 0x0C0C, 0x0DBB, 0x0F69, 0x1118, 0x12C7, 0x1476, 0x1624, 0x17D3, 0x1982, 0x1B31, 0x1CDF, +++ 0x1E8E, 0x203D, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x21EC, 0x1C89, 0x1727, 0x11C4, 0x0C62, +++ 0x0700, 0xF641, 0xF641, 0xF587, 0xF4CE, 0xF414, 0xF35A, 0xF2A0, 0xF1E6, 0xF12C, 0xF072, 0xEFB9, +++ 0xEEFF, 0xEE45, 0xED8B, 0xECD1, 0xED7E, 0xEE2A, 0xEED7, 0xEF84, 0xF030, 0xF0DD, 0xF189, 0xF236, +++ 0xF2E2, 0xF38F, 0xF43C, 0xF4E8, 0xF595, 0xF641, 0xF8CC, 0xFB57, 0xFDE1, 0x006D, 0x02F8, 0x0583, +++ 0x080D, 0x0A98, 0x0D23, 0x0FAE, 0x1238, 0x14C3, 0x174E, 0x19D9, 0x1C63, 0x1EEE, 0x1EEE, 0x1EEE, +++ 0x1EEE, 0x1EEE, 0x1EEE, 0x16CC, 0x0EA9, 0x0687, 0xFE64, 0xF641, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFD, 0xFFFD, 0xFF65, 0xFECD, 0xFE34, 0xFD9C, 0xFE42, 0xFEE8, +++ 0xFF8E, 0x0035, 0x002A, 0x001F, 0x0014, 0x0009, 0xFFFD, 0x0056, 0x00AE, 0x0106, 0x015E, 0x015E, +++ 0x015E, 0x015E, 0x015E, 0x015E, 0x0106, 0x00AE, 0x0056, 0xFFFD, 0x0093, 0x0128, 0x01BD, 0x0252, +++ 0x02E7, 0x037D, 0x0412, 0x04A7, 0x053C, 0x05D1, 0x0666, 0x0665, 0x0664, 0x0664, 0x0663, 0x0662, +++ 0x0662, 0x0661, 0x0660, 0x0660, 0x065F, 0x065E, 0x0518, 0x03D1, 0x028B, 0x0144, 0xFFFD, 0xFFFF, +++ 0xFFFF, 0x01AD, 0x035A, 0x0507, 0x06B4, 0x05EC, 0x0524, 0x045C, 0x0394, 0x02DD, 0x0225, 0x016E, +++ 0x00B7, 0xFFFE, 0xFF2D, 0xFE5B, 0xFD89, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFCB7, 0xFD89, +++ 0xFE5B, 0xFF2D, 0xFFFF, 0xFFA5, 0xFF4B, 0xFEF2, 0xFE98, 0xFE3E, 0xFDE4, 0xFD8B, 0xFD31, 0xFCD7, +++ 0xFC7D, 0xFC24, 0xFC29, 0xFC2F, 0xFC34, 0xFC3A, 0xFC3F, 0xFC45, 0xFC4A, 0xFC50, 0xFC55, 0xFC5B, +++ 0xFC60, 0xFD1A, 0xFDD3, 0xFE8C, 0xFF46, 0xFFFF, 0x8000, 0x8000, 0x7C82, 0x7904, 0x7586, 0x7209, +++ 0x72AF, 0x7355, 0x73FC, 0x74A2, 0x73AE, 0x72B9, 0x71C4, 0x70CF, 0x6FDA, 0x6FD7, 0x6FD3, 0x6FD0, +++ 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x6FCC, 0x7684, 0x7D3B, 0x83F3, 0x8AAA, 0x8EE5, 0x931F, +++ 0x975A, 0x9B94, 0x9FCF, 0xA409, 0xA843, 0xAC7E, 0xB0B8, 0xB4F3, 0xB92D, 0xB980, 0xB9D3, 0xBA25, +++ 0xBA78, 0xBACA, 0xBB1D, 0xBB70, 0xBBC2, 0xBC15, 0xBC68, 0xBCBA, 0xB095, 0xA470, 0x984A, 0x8C25, +++ 0x8000, 0x0000, 0x0000, 0xFFB9, 0xFF73, 0xFF2D, 0xFEE7, 0xFF23, 0xFF60, 0xFF9C, 0xFFD8, 0xFFE0, +++ 0xFFE8, 0xFFF0, 0xFFF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFD, 0xFFFC, 0xFFFA, 0xFFF9, 0x0001, 0x0009, 0x0010, 0x0018, +++ 0x0013, 0x000E, 0x0009, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x038E, 0x038E, 0x06C7, 0x0A00, 0x0D39, 0x1072, 0x0EF3, 0x0D74, +++ 0x0BF5, 0x0A76, 0x0B34, 0x0BF2, 0x0CAF, 0x0D6D, 0x0E2B, 0x0D92, 0x0CF9, 0x0C60, 0x0BC7, 0x0B2E, +++ 0x0A95, 0x09FC, 0x0963, 0x08CA, 0x0831, 0x0798, 0x06FF, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, +++ 0x2A3B, 0x2BA7, 0x2D13, 0x2E7F, 0x2FEB, 0x3119, 0x3246, 0x3374, 0x34A2, 0x35CF, 0x36FD, 0x382A, +++ 0x3958, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2F87, 0x2489, 0x198B, 0x0E8C, 0x038E, 0xFFFF, +++ 0xFFFF, 0xFFDD, 0xFFBA, 0xFF98, 0xFF75, 0xFF53, 0xFF31, 0xFF0E, 0xFEEC, 0xFECA, 0xFEA7, 0xFE85, +++ 0xFE62, 0xFE40, 0xFDD6, 0xFD6B, 0xFD01, 0xFC96, 0xFC2C, 0xFBC1, 0xFB57, 0xFAEC, 0xFA82, 0xFBE1, +++ 0xFD41, 0xFEA0, 0x0000, 0x0034, 0x0067, 0x009B, 0x00CE, 0x00B7, 0x00A0, 0x008A, 0x0073, 0x005C, +++ 0x0045, 0x002E, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFCA, 0xFF95, 0xFF60, 0xFF2B, 0xFEF6, 0xFEC1, 0xFE8C, 0xFE57, +++ 0xFE23, 0xFDEE, 0xFDB9, 0xFD84, 0xFD4F, 0xFDAE, 0xFE0D, 0xFE6C, 0xFECB, 0xFF2A, 0xFF89, 0xFFE8, +++ 0x0048, 0x00A7, 0x007D, 0x0054, 0x002A, 0xFFFF, 0xFF9A, 0xFF36, 0xFED1, 0xFE6D, 0xFE9A, 0xFEC6, +++ 0xFEF3, 0xFF20, 0xFF4C, 0xFF79, 0xFFA6, 0xFFD2, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xCAAA, 0xCAAA, 0xCB05, 0xCB5F, 0xCBBA, 0xCC15, 0xCC6F, 0xCCCA, 0xCD25, +++ 0xCD80, 0xCDDA, 0xCE35, 0xCE90, 0xCEEA, 0xCF45, 0xD00D, 0xD0D5, 0xD19D, 0xD265, 0xD32D, 0xD3F5, +++ 0xD4BD, 0xD585, 0xD64D, 0xD0B9, 0xCB26, 0xC593, 0xBFFF, 0xBB27, 0xB64F, 0xB178, 0xACA0, 0xB0C0, +++ 0xB4E1, 0xB902, 0xBD23, 0xC143, 0xC564, 0xC985, 0xCDA6, 0xD1C6, 0xD274, 0xD322, 0xD3D1, 0xD47F, +++ 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, 0xB341, 0xBEF5, 0xCAAA, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF6A, 0xFED5, 0xFE40, 0xFDAB, 0xFD16, +++ 0xFC81, 0xFBEC, 0xFB57, 0xFAC2, 0xFA2D, 0xF998, 0xF999, 0xF99A, 0xF99A, 0xF99B, 0xF99C, 0xF99C, +++ 0xF99D, 0xF99E, 0xF99E, 0xF99F, 0xF9A0, 0xFB38, 0xFCD0, 0xFE68, 0x0000, 0x009D, 0x013A, 0x01D6, +++ 0x0273, 0x0230, 0x01ED, 0x01A9, 0x0166, 0x0123, 0x00DA, 0x0092, 0x0049, 0x0000, 0xFFB9, 0xFF72, +++ 0xFF2B, 0xFEE4, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFE9E, 0xFEE4, 0xFF2B, 0xFF72, 0xFFB8, 0xFFFF, +++ 0x0000, 0x0000, 0x005B, 0x00B6, 0x0111, 0x016C, 0x01C7, 0x0222, 0x027C, 0x02D7, 0x0332, 0x038D, +++ 0x03E8, 0x03E3, 0x03DD, 0x03D7, 0x03D2, 0x03CC, 0x03C7, 0x03C1, 0x03BC, 0x03B6, 0x03B1, 0x03AB, +++ 0x02C1, 0x01D6, 0x00EB, 0x0001, 0xFE54, 0xFCA8, 0xFAFC, 0xF950, 0xF9FA, 0xFAA4, 0xFB4D, 0xFBF7, +++ 0xFCA0, 0xFD78, 0xFE4F, 0xFF27, 0xFFFF, 0x00A7, 0x014F, 0x01F7, 0x029F, 0x0347, 0x0347, 0x0347, +++ 0x0347, 0x0347, 0x029F, 0x01F7, 0x014F, 0x00A8, 0x0000, 0x8AAA, 0x8AAA, 0x8EE5, 0x9320, 0x975B, +++ 0x9B96, 0x9FD2, 0xA40D, 0xA848, 0xAC83, 0xB0BE, 0xB4F9, 0xB934, 0xB987, 0xB9D9, 0xBA2C, 0xBA7E, +++ 0xBAD1, 0xBB24, 0xBB76, 0xBBC9, 0xBC1C, 0xBC6E, 0xBCC1, 0xAD91, 0x9E60, 0x8F30, 0x8000, 0x7C67, +++ 0x78CF, 0x7536, 0x719E, 0x71D7, 0x7210, 0x7249, 0x7282, 0x72BB, 0x71DF, 0x7102, 0x7026, 0x6F49, +++ 0x6F5F, 0x6F75, 0x6F8B, 0x6FA1, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x6FB7, 0x751B, 0x7A7F, 0x7FE3, +++ 0x8546, 0x8AAA, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0000, 0x0666, 0x0666, 0x0F01, 0x179B, 0x2035, 0x28CF, 0x2A96, 0x2C5D, 0x2E24, 0x2FEB, 0x3157, +++ 0x32C3, 0x3430, 0x359C, 0x3708, 0x37EB, 0x38CF, 0x39B2, 0x3A96, 0x3A96, 0x3A96, 0x3A96, 0x3A96, +++ 0x3A96, 0x2CD4, 0x1F12, 0x1150, 0x038E, 0x0505, 0x067D, 0x07F4, 0x096B, 0x08EB, 0x086A, 0x07EA, +++ 0x076A, 0x06E9, 0x08BA, 0x0A8A, 0x0C5A, 0x0E2B, 0x0DC3, 0x0D5C, 0x0CF5, 0x0C8E, 0x0C27, 0x0B38, +++ 0x0A48, 0x0959, 0x086A, 0x0803, 0x079C, 0x0735, 0x06CD, 0x0666, 0x0000, 0x0000, 0xFFCA, 0xFF96, +++ 0xFF61, 0xFF2C, 0xFF3C, 0xFF4D, 0xFF5D, 0xFF6D, 0xFF7D, 0xFF8D, 0xFF9D, 0xFFAE, 0xFFBE, 0xFFCE, +++ 0xFFDE, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0000, 0xFFFF, +++ 0xFE4E, 0xFC9E, 0xFAEE, 0xF93E, 0xFA04, 0xFACB, 0xFB92, 0xFC58, 0xFD1F, 0xFDE5, 0xFEAC, 0xFF73, +++ 0x003A, 0x0101, 0x0126, 0x014A, 0x016F, 0x0193, 0x01B8, 0x01DD, 0x0201, 0x0226, 0x024B, 0x01B8, +++ 0x0125, 0x0093, 0x0000, 0x0030, 0x0030, 0x0094, 0x00F8, 0x015C, 0x01C0, 0x01A2, 0x0183, 0x0164, +++ 0x0145, 0x0126, 0x0108, 0x00E9, 0x00CA, 0x00AB, 0x008C, 0x006E, 0x004F, 0x0030, 0x0030, 0x0030, +++ 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x00BF, 0x014F, 0x01DE, 0x026D, 0x0266, +++ 0x025F, 0x0258, 0x0251, 0x024A, 0x0243, 0x023C, 0x0235, 0x022E, 0x0226, 0x021F, 0x0217, 0x020F, +++ 0x0207, 0x01FF, 0x01F8, 0x01F0, 0x01E8, 0x01E0, 0x0174, 0x0108, 0x009C, 0x0030, 0xBFFF, 0xBFFF, +++ 0xBAFF, 0xB5FE, 0xB0FE, 0xABFE, 0xAF29, 0xB254, 0xB57F, 0xB8AA, 0xBBD5, 0xBF00, 0xC22B, 0xC556, +++ 0xC881, 0xCBAC, 0xCED7, 0xD202, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xD52D, 0xBE5D, 0xA78D, +++ 0xB91B, 0xCAAA, 0xCC6B, 0xCE2C, 0xCFED, 0xD1AE, 0xD1BB, 0xD1C9, 0xD1D6, 0xD1E4, 0xD1F1, 0xD1FF, +++ 0xD20D, 0xD21A, 0xD228, 0xD235, 0xD202, 0xD1CE, 0xD19B, 0xD167, 0xD134, 0xD101, 0xD0CD, 0xD09A, +++ 0xD066, 0xCC4D, 0xC833, 0xC419, 0xBFFF, ++ }; ++ +diff --git a/assets/anims/anim_49.inc.c b/assets/anims/anim_49.inc.c +index be72c0e..d3c9d98 100644 +--- a/assets/anims/anim_49.inc.c ++++ b/assets/anims/anim_49.inc.c +@@ -1,9 +1,9 @@ + static const struct Animation anim_49[] = { +- 1, ++ 0, + 189, + 0, + 0, +- 0x10, ++ 0x48, + ANIMINDEX_NUMPARTS(anim_49_indices), + anim_49_values, + anim_49_indices, +@@ -12,110 +12,194 @@ static const struct Animation anim_49[] = { + + + static const u16 anim_49_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0010, 0x0002, 0x0001, 0x0000, 0x0001, 0x0012, 0x0001, 0x0000, +- 0x0010, 0x0259, 0x0010, 0x0269, 0x0010, 0x0279, +- 0x0010, 0x0229, 0x0010, 0x0239, 0x0010, 0x0249, +- 0x0010, 0x01F9, 0x0010, 0x0209, 0x0010, 0x0219, +- 0x0001, 0x01C6, 0x0001, 0x01C7, 0x0001, 0x01C8, +- 0x0010, 0x0053, 0x0010, 0x0063, 0x0010, 0x0073, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0043, +- 0x0010, 0x0013, 0x0010, 0x0023, 0x0010, 0x0033, +- 0x0001, 0x01B3, 0x0001, 0x01B4, 0x0001, 0x01B5, +- 0x0010, 0x00A3, 0x0010, 0x00B3, 0x0010, 0x00C3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0093, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0083, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x01B6, +- 0x0010, 0x0183, 0x0010, 0x0193, 0x0010, 0x01A3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0173, +- 0x0010, 0x0143, 0x0010, 0x0153, 0x0010, 0x0163, +- 0x0010, 0x01C9, 0x0010, 0x01D9, 0x0010, 0x01E9, +- 0x0010, 0x0113, 0x0010, 0x0123, 0x0010, 0x0133, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0103, +- 0x0010, 0x00D3, 0x0010, 0x00E3, 0x0010, 0x00F3, ++0x0001, 0x0000, 0x0047, 0x0001, 0x0001, 0x0048, 0x0001, 0x0049, 0x0001, ++ 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, 0x0001, 0x004E, ++ 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, 0x0051, 0x0001, 0x0052, 0x0001, ++ 0x0053, 0x0001, 0x0054, 0x0001, 0x0055, 0x0001, 0x0056, 0x0001, 0x0057, ++ 0x0001, 0x0058, 0x0001, 0x0059, 0x003B, 0x005A, 0x0001, 0x0095, 0x0001, ++ 0x0096, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, 0x0099, 0x0001, 0x009A, ++ 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, 0x0001, 0x009E, 0x0001, ++ 0x009F, 0x003B, 0x00A0, 0x0001, 0x00DB, 0x0001, 0x00DC, 0x0001, 0x00DD, ++ 0x0001, 0x00DE, 0x0001, 0x00DF, 0x0001, 0x00E0, 0x0001, 0x00E1, 0x0001, ++ 0x00E2, 0x0001, 0x00E3, 0x0047, 0x00E4, 0x0047, 0x012B, 0x0049, 0x0172, ++ 0x0049, 0x01BB, 0x0049, 0x0204, 0x0049, 0x024D, 0x0049, 0x0296, 0x0049, ++ 0x02DF, 0x0049, 0x0328, 0x0001, 0x0371, 0x0001, 0x0372, 0x0001, 0x0373, ++ 0x0049, 0x0374, 0x0049, 0x03BD, 0x0049, 0x0406, 0x0049, 0x044F, 0x0049, ++ 0x0498, 0x0049, 0x04E1, 0x0049, 0x052A, 0x0049, 0x0573, 0x0049, 0x05BC, + }; + + static const s16 anim_49_values[] = { +- 0x0000, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x3FFF, 0x1292, 0x124F, 0x1233, 0x1261, 0x128E, +- 0x1233, 0x115B, 0x1069, 0x0F61, 0x0E48, 0x0D22, 0x0BF1, 0x0ABB, +- 0x0984, 0x084E, 0x071F, 0x0362, 0x033F, 0x0331, 0x0349, 0x0361, +- 0x0331, 0x02BD, 0x023C, 0x01AF, 0x0119, 0x007C, 0xFFDB, 0xFF36, +- 0xFE8F, 0xFDEA, 0xFD48, 0xDC1E, 0xDC66, 0xDC83, 0xDC59, 0xDC2F, +- 0xDC83, 0xDD4E, 0xDE30, 0xDF27, 0xE02E, 0xE142, 0xE25E, 0xE380, +- 0xE4A4, 0xE5C6, 0xE6E1, 0xF163, 0xF0C6, 0xF085, 0xF0E4, 0xF142, +- 0xF085, 0xEEBE, 0xECC2, 0xEA99, 0xE84B, 0xE5E1, 0xE362, 0xE0D7, +- 0xDE49, 0xDBC0, 0xD943, 0xCD29, 0xCF2E, 0xD1AB, 0xD855, 0xE231, +- 0xE83D, 0xEA01, 0xEBB0, 0xED4B, 0xEED1, 0xF042, 0xF19D, 0xF2E3, +- 0xF413, 0xF52C, 0xF62E, 0xFE28, 0xFD52, 0xFB12, 0xF050, 0xDF34, +- 0xD552, 0xD3BA, 0xD26B, 0xD162, 0xD097, 0xD005, 0xCFA6, 0xCF75, +- 0xCF6B, 0xCF84, 0xCFB8, 0xFA4C, 0xF657, 0xF1CD, 0xE6D1, 0xD738, +- 0xCE99, 0xCD80, 0xCCB8, 0xCC3A, 0xCBFF, 0xCBFF, 0xCC33, 0xCC94, +- 0xCD1A, 0xCDC0, 0xCE7D, 0xD7F1, 0xD83D, 0xD85C, 0xD814, 0xD7CD, +- 0xD85C, 0xD9B4, 0xDB35, 0xDCD8, 0xDE96, 0xE06B, 0xE24E, 0xE43B, +- 0xE62A, 0xE816, 0xE9F8, 0xEBA5, 0xF17D, 0xF639, 0xF877, 0xF804, +- 0xF639, 0xF412, 0xF1A9, 0xEF0A, 0xEC3E, 0xE950, 0xE649, 0xE333, +- 0xE01A, 0xDD06, 0xDA01, 0xFBB1, 0x0748, 0x1209, 0x1B2B, 0x21E8, +- 0x257A, 0x26CD, 0x275F, 0x2742, 0x268C, 0x254D, 0x2399, 0x2183, +- 0x1F1E, 0x1C7D, 0x19B3, 0x2D0E, 0x2E43, 0x2F5A, 0x3042, 0x30EA, +- 0x313E, 0x3154, 0x3152, 0x3138, 0x310B, 0x30CC, 0x307E, 0x3023, +- 0x2FBF, 0x2F54, 0x2EE5, 0xB0BB, 0xBCD2, 0xC81F, 0xD1D8, 0xD933, +- 0xDD66, 0xDF68, 0xE0C2, 0xE183, 0xE1BA, 0xE176, 0xE0C8, 0xDFBE, +- 0xDE67, 0xDCD4, 0xDB13, 0xFF2D, 0xFF44, 0xFF57, 0xFF5F, 0xFF5B, +- 0xFF57, 0xFF4F, 0xFF38, 0xFF1A, 0xFEFA, 0xFEDE, 0xFECC, 0xFEC9, +- 0xFEDB, 0xFF09, 0xFF57, 0x023F, 0x023F, 0x0244, 0x0247, 0x0246, +- 0x0244, 0x0247, 0x024E, 0x0258, 0x0262, 0x026B, 0x0271, 0x0272, +- 0x026C, 0x025D, 0x0244, 0xB9FE, 0xBC1A, 0xBDAE, 0xBE39, 0xBDF3, +- 0xBDAE, 0xBDAD, 0xBDAB, 0xBDA8, 0xBDA6, 0xBDA3, 0xBDA2, 0xBDA1, +- 0xBDA3, 0xBDA7, 0xBDAE, 0x5EA1, 0x6088, 0x5EA1, 0x54C8, 0x4813, +- 0x3E71, 0x385C, 0x3260, 0x2C92, 0x2705, 0x21CB, 0x1CF8, 0x189F, +- 0x14D3, 0x11A7, 0x0F2E, 0x0B6D, 0x05F1, 0x0156, 0xFEA9, 0xFDDB, +- 0xFDAE, 0xFD6B, 0xFD32, 0xFD06, 0xFCE7, 0xFCD7, 0xFCDA, 0xFCF0, +- 0xFD1C, 0xFD60, 0xFDBD, 0x01E2, 0xFB93, 0xF64E, 0xF422, 0xF514, +- 0xF67E, 0xF745, 0xF815, 0xF8EE, 0xF9D2, 0xFAC1, 0xFBBD, 0xFCC5, +- 0xFDDC, 0xFF01, 0x0034, 0x9CFC, 0x951F, 0x8F7C, 0x915F, 0x998A, +- 0x9EFD, 0x9FEC, 0xA08F, 0xA0EC, 0xA109, 0xA0EA, 0xA096, 0xA012, +- 0x9F64, 0x9E92, 0x9DA0, 0x00B9, 0x00C9, 0x00D0, 0x00D0, 0x00D0, +- 0x00D0, 0x00D3, 0x00DD, 0x00E9, 0x00F7, 0x0103, 0x010A, 0x010C, +- 0x0104, 0x00F1, 0x00D0, 0xFF32, 0xFF36, 0xFF38, 0xFF38, 0xFF38, +- 0xFF38, 0xFF36, 0xFF32, 0xFF2C, 0xFF26, 0xFF21, 0xFF1D, 0xFF1D, +- 0xFF20, 0xFF29, 0xFF38, 0xC245, 0xC1D8, 0xC1AA, 0xC1AA, 0xC1AA, +- 0xC1AA, 0xC1B3, 0xC1C9, 0xC1E6, 0xC206, 0xC221, 0xC233, 0xC236, +- 0xC224, 0xC1F7, 0xC1AA, 0x1FFC, 0x1A51, 0x152F, 0x1307, 0x141B, +- 0x152F, 0x1506, 0x149C, 0x140E, 0x1377, 0x12F2, 0x129B, 0x128D, +- 0x12E4, 0x13BC, 0x152F, 0x0C64, 0x0D70, 0x0DB3, 0x099B, 0x020F, +- 0xFD99, 0xFD2B, 0xFD50, 0xFDE6, 0xFECE, 0xFFE8, 0x0111, 0x022D, +- 0x0319, 0x03B5, 0x03E1, 0x089E, 0x0707, 0x0536, 0x018E, 0xFCBA, +- 0xFA1A, 0xF9EF, 0xFA2A, 0xFAB4, 0xFB78, 0xFC61, 0xFD58, 0xFE49, +- 0xFF1E, 0xFFC1, 0x001C, 0xBD10, 0xC45E, 0xCA4D, 0xCAA9, 0xC545, +- 0xBFD1, 0xBC46, 0xB8CA, 0xB557, 0xB1E4, 0xAE6B, 0xAAE5, 0xA74B, +- 0xA394, 0x9FBB, 0x9BB7, 0x7FFF, 0x7FFF, 0x4171, 0xBF62, 0xBF60, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x7FFF, 0x7FFF, +- 0x4171, 0xFCC9, 0xFE90, 0x0000, 0x008B, 0x0045, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x054B, 0x025E, 0x0000, 0xFF1A, 0xFF8D, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xB893, 0xBC54, 0xBF5F, 0xC086, 0xBFF3, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0x1DE4, 0x1617, 0x0E5E, 0x07EF, 0x0238, 0xFF26, 0xFE45, +- 0xFDCC, 0xFDA8, 0xFDC7, 0xFE17, 0xFE85, 0xFEFF, 0xFF73, 0xFFCF, +- 0x0000, 0x0F0A, 0x07A4, 0x007F, 0x004E, 0x0256, 0x03A4, 0x038A, +- 0x0353, 0x0304, 0x02A2, 0x0233, 0x01BD, 0x0144, 0x00CE, 0x0060, +- 0x0000, 0xEC1C, 0xF7D2, 0x0570, 0x09F6, 0x0BBC, 0x0C88, 0x0D77, +- 0x0E6C, 0x0F5D, 0x103B, 0x10FA, 0x118D, 0x11E8, 0x11FE, 0x11C2, +- 0x1128, 0x0938, 0x0935, 0x093C, 0x096C, 0x0991, 0x093C, 0x0875, +- 0x0790, 0x0696, 0x058D, 0x0480, 0x0374, 0x0273, 0x0185, 0x00B1, +- 0x0000, 0xFA57, 0xF98D, 0xF8E4, 0xF883, 0xF884, 0xF8E4, 0xF97D, +- 0xFA2D, 0xFAEE, 0xFBBA, 0xFC89, 0xFD57, 0xFE1D, 0xFED5, 0xFF78, +- 0x0000, 0x283D, 0x2C61, 0x2FE8, 0x31E2, 0x31C2, 0x2FE8, 0x2D01, +- 0x2994, 0x25CA, 0x21CB, 0x1DBF, 0x19CE, 0x1620, 0x12DD, 0x102D, +- 0x0E38, 0x507D, 0x5567, 0x5AAF, 0x6428, 0x710E, 0x7A85, 0x7E7D, +- 0x802D, 0x80A3, 0x80EC, 0x813F, 0x8135, 0x80F0, 0x808F, 0x8034, +- 0x7FFF, 0x0507, 0x05D2, 0x0674, 0x0672, 0x0583, 0x03E6, 0x0145, +- 0xFDE3, 0xFADE, 0xF959, 0xF97B, 0xFA6F, 0xFBE2, 0xFD83, 0xFEFE, +- 0x0000, 0x2F0C, 0x2DB3, 0x2BAA, 0x275D, 0x1E94, 0x1041, 0xFBCF, +- 0xE349, 0xC990, 0xB184, 0x9A5F, 0x824A, 0x6A87, 0x5457, 0x40FF, +- 0x31BF, ++ 0x0000, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, ++ 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BB, ++ 0x00BA, 0x00BA, 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, ++ 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C1, 0x00C2, ++ 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, 0x00BF, ++ 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, 0x00BA, ++ 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, 0x00BB, 0x00BC, ++ 0x00BD, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C0, 0x00C1, 0x00C1, 0x00C2, ++ 0x0000, 0x0000, 0x3FFF, 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFC16, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0xE029, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, ++ 0x02DE, 0x025B, 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, ++ 0x0154, 0x01D8, 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, ++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, ++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0xF624, 0xFE1F, 0xF61D, 0xEF0B, ++ 0xFB82, 0xF92D, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0x1FD6, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, ++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, ++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, ++ 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, 0x01D8, 0x0154, ++ 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, 0x025B, 0x02DE, ++ 0x0362, 0x03E5, 0x0468, 0x09D1, 0x0214, 0xF623, 0x10DE, 0x04B1, 0xF95F, ++ 0xFFFF, 0xFFFF, 0x0000, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x015F, ++ 0x0107, 0x00AF, 0x0056, 0xFFFD, 0x0051, 0x00A5, 0x00F8, 0x014C, 0x019F, ++ 0x01F3, 0x0246, 0x029A, 0x02ED, 0x0341, 0x0394, 0x03E8, 0x043B, 0x048F, ++ 0x04E2, 0x0536, 0x0589, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, ++ 0x0592, 0x0546, 0x04FB, 0x04B0, 0x0465, 0x041A, 0x03CF, 0x0384, 0x0339, ++ 0x02ED, 0x02A2, 0x0257, 0x020C, 0x01C1, 0x0176, 0x012B, 0x00E0, 0x0094, ++ 0x0049, 0xFFFD, 0x002F, 0x0060, 0x0091, 0x00C2, 0x00F3, 0x0124, 0x0156, ++ 0x0187, 0x01B8, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, ++ 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x097B, 0x071C, ++ 0x04BD, 0x025F, 0x0000, 0x00BB, 0x0176, 0x0230, 0x02EB, 0x03A6, 0x0461, ++ 0x051B, 0x05D6, 0x0691, 0x074C, 0x0807, 0x08C1, 0x097C, 0x0A37, 0x0AF2, ++ 0x0BAC, 0x0C67, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0C7A, ++ 0x0BD2, 0x0B29, 0x0A81, 0x09D9, 0x0931, 0x0889, 0x07E1, 0x0739, 0x0690, ++ 0x05E8, 0x0540, 0x0498, 0x03F0, 0x0348, 0x02A0, 0x01F8, 0x014F, 0x00A7, ++ 0xFFFE, 0x0150, 0x02A1, 0x03F2, 0x0544, 0x0695, 0x07E6, 0x0937, 0x0A88, ++ 0x0BD9, 0xC17F, 0xC17F, 0xC1C4, 0xC208, 0xC24D, 0xC292, 0xC2D7, 0xC2CA, ++ 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, 0xB7FF, 0xAD81, 0xA304, ++ 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, 0x799E, 0x7588, 0x7173, ++ 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, 0x54DE, 0x50C9, 0x4CB4, ++ 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, 0x41EB, 0x4143, 0x43BE, 0x4639, ++ 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, 0x551C, 0x5797, 0x5A12, 0x5C8D, ++ 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, 0x6B6F, 0x6DEB, 0x7066, 0x72E1, ++ 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, ++ 0xC13A, 0xC17F, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF2, ++ 0xFFE8, 0xFFDC, 0xFFCA, 0xFFB4, 0xFF99, 0xFF77, 0xFF4F, 0xFF16, 0xFECD, ++ 0xFE86, 0xFE4F, 0xFE39, 0xFE39, 0xFE39, 0xFE39, 0xFE4B, 0xFE7D, 0xFECB, ++ 0xFF2F, 0xFFA4, 0x0027, 0x00B1, 0x013D, 0x01C6, 0x0248, 0x02BE, 0x0322, ++ 0x0370, 0x03A2, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03AD, ++ 0x039A, 0x037B, 0x0352, 0x0321, 0x02E9, 0x02AB, 0x0269, 0x0224, 0x01DE, ++ 0x0198, 0x0153, 0x0110, 0x00D2, 0x009A, 0x0068, 0x003F, 0x001F, 0x000B, ++ 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0007, ++ 0x000D, 0x0017, 0x0024, 0x0035, 0x004B, 0x0067, 0x0089, 0x00B2, 0x0154, ++ 0x0295, 0x0405, 0x0534, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x057B, 0x04DE, ++ 0x03ED, 0x02B6, 0x0149, 0xFFB4, 0xFE08, 0xFC55, 0xFAAA, 0xF916, 0xF7A9, ++ 0xF671, 0xF580, 0xF4E4, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, ++ 0xF4C1, 0xF4FE, 0xF55C, 0xF5DA, 0xF671, 0xF71F, 0xF7DD, 0xF8A9, 0xF97D, ++ 0xFA56, 0xFB2F, 0xFC03, 0xFCCF, 0xFD8E, 0xFE3B, 0xFED2, 0xFF50, 0xFFAF, ++ 0xFFEB, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0001, 0x18E6, 0x18E6, 0x18E6, 0x18EA, 0x18F3, ++ 0x1904, 0x1922, 0x194D, 0x198A, 0x19DA, 0x1A42, 0x1AC3, 0x1B61, 0x1C1F, ++ 0x2059, 0x2943, 0x33A2, 0x3C3A, 0x3FCF, 0x3FCF, 0x3FCF, 0x3FCF, 0x3F07, ++ 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, 0x1E35, 0x1837, 0x128C, ++ 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, ++ 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, 0x0664, 0x07CD, 0x095A, 0x0B02, ++ 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, 0x1532, 0x169A, 0x17D6, 0x18DB, ++ 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, 0x19ED, 0x19B4, 0x1979, 0x1940, ++ 0x1911, 0x18F0, 0x18E3, 0x18E5, 0x18E6, 0xFCB1, 0xFCB1, 0xFCC0, 0xFCE9, ++ 0xFD29, 0xFD7D, 0xFDE0, 0xFE51, 0xFECA, 0xFF48, 0xFFC8, 0x0048, 0x00C1, ++ 0x0131, 0x0195, 0x01E8, 0x0229, 0x0252, 0x0260, 0x025E, 0x0258, 0x024E, ++ 0x0241, 0x0232, 0x0220, 0x020E, 0x01FA, 0x01E5, 0x01D1, 0x01BD, 0x01AA, ++ 0x0199, 0x0189, 0x017D, 0x0173, 0x016D, 0x016A, 0x016A, 0x016A, 0x016A, ++ 0x016A, 0x016A, 0x016A, 0x016A, 0x0169, 0x0167, 0x0164, 0x015F, 0x0158, ++ 0x014F, 0x0144, 0x0136, 0x0124, 0x010F, 0x00F6, 0x00D9, 0x00B8, 0x0092, ++ 0x0067, 0x0036, 0xFFFF, 0xFFBE, 0xFF6F, 0xFF14, 0xFEB1, 0xFE49, 0xFDE1, ++ 0xFD7E, 0xFD28, 0xFCE2, 0xFCB5, 0xFCA4, 0xFCB1, 0xFFB1, 0xFFB1, 0xFF9E, ++ 0xFF6A, 0xFF18, 0xFEAD, 0xFE2E, 0xFD9F, 0xFD04, 0xFC63, 0xFBBF, 0xFB1E, ++ 0xFA84, 0xF9F5, 0xF975, 0xF90A, 0xF8B8, 0xF884, 0xF871, 0xF888, 0xF8CA, ++ 0xF930, 0xF9B6, 0xFA56, 0xFB0B, 0xFBD1, 0xFCA1, 0xFD76, 0xFE4B, 0xFF1B, ++ 0xFFE0, 0x0097, 0x0137, 0x01BD, 0x0223, 0x0264, 0x027B, 0x027B, 0x027B, ++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0279, 0x0275, 0x0270, 0x0267, ++ 0x025C, 0x024C, 0x0238, 0x021F, 0x0200, 0x01DB, 0x01B0, 0x017D, 0x0143, ++ 0x0100, 0x00B4, 0x005F, 0x0000, 0xFEE0, 0xFCEB, 0xFB10, 0xFA3C, 0xFA8A, ++ 0xFB54, 0xFC68, 0xFD95, 0xFEA9, 0xFF73, 0xFFC2, 0xFFB1, 0xE40B, 0xE40B, ++ 0xE406, 0xE3F5, 0xE3D9, 0xE3B2, 0xE37D, 0xE33D, 0xE2EF, 0xE293, 0xE22A, ++ 0xE1B2, 0xE12B, 0xE096, 0xDFF1, 0xDF3B, 0xDE76, 0xDD9F, 0xDCB8, 0xDBBF, ++ 0xDAB8, 0xD9A7, 0xD88E, 0xD771, 0xD654, 0xD53A, 0xD427, 0xD31D, 0xD221, ++ 0xD135, 0xD05E, 0xCF9E, 0xCEFA, 0xCE74, 0xCE10, 0xCDD2, 0xCDBC, 0xCDBC, ++ 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, 0xCC8A, 0xCB26, 0xC952, 0xC71E, ++ 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, ++ 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, 0xA929, 0xAE85, 0xB602, 0xBE6F, ++ 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, 0xE304, 0xE410, 0xE40B, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFA76, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, ++ 0xFA6D, 0xFAB9, 0xFB04, 0xFB4F, 0xFB9A, 0xFBE5, 0xFC30, 0xFC7B, 0xFCC6, ++ 0xFD12, 0xFD5D, 0xFDA8, 0xFDF3, 0xFE3E, 0xFE89, 0xFED4, 0xFF1F, 0xFF6B, ++ 0xFFB6, 0x0002, 0xFFD0, 0xFF9F, 0xFF6E, 0xFF3D, 0xFF0C, 0xFEDB, 0xFEA9, ++ 0xFE78, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, ++ 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFEA0, 0xFEF8, ++ 0xFF50, 0xFFA9, 0x0002, 0xFFAE, 0xFF5A, 0xFF07, 0xFEB3, 0xFE60, 0xFE0C, ++ 0xFDB9, 0xFD65, 0xFD12, 0xFCBE, 0xFC6B, 0xFC17, 0xFBC4, 0xFB70, 0xFB1D, ++ 0xFAC9, 0xFA76, 0xFA22, 0xF398, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, ++ 0xF2DD, 0xF385, 0xF42D, 0xF4D6, 0xF57E, 0xF626, 0xF6CE, 0xF776, 0xF81E, ++ 0xF8C6, 0xF96F, 0xFA17, 0xFABF, 0xFB67, 0xFC0F, 0xFCB7, 0xFD5F, 0xFE07, ++ 0xFEB0, 0xFF58, 0x0001, 0xFEAF, 0xFD5E, 0xFC0D, 0xFABB, 0xF96A, 0xF819, ++ 0xF6C8, 0xF577, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, ++ 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF684, ++ 0xF8E3, 0xFB42, 0xFDA0, 0xFFFF, 0xFF44, 0xFE89, 0xFDCF, 0xFD14, 0xFC59, ++ 0xFB9E, 0xFAE4, 0xFA29, 0xF96E, 0xF8B3, 0xF7F8, 0xF73E, 0xF683, 0xF5C8, ++ 0xF50D, 0xF453, 0xF398, 0xF2DD, 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, ++ 0x41EB, 0x4143, 0x43BE, 0x4639, 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, ++ 0x551C, 0x5797, 0x5A12, 0x5C8D, 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, ++ 0x6B6F, 0x6DEB, 0x7066, 0x72E1, 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, ++ 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, 0xC13A, 0xC17F, 0xC1C4, 0xC208, 0xC24D, ++ 0xC292, 0xC2D7, 0xC2CA, 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, ++ 0xB7FF, 0xAD81, 0xA304, 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, ++ 0x799E, 0x7588, 0x7173, 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, ++ 0x54DE, 0x50C9, 0x4CB4, 0x489E, 0x4489, 0xFC4B, 0xFC4B, 0xFC4B, 0xFC4B, ++ 0xFC4B, 0xFC4B, 0xFC4B, 0xFC52, 0xFC65, 0xFC84, 0xFCAD, 0xFCDE, 0xFD16, ++ 0xFD54, 0xFD96, 0xFDDB, 0xFE21, 0xFE67, 0xFEAC, 0xFEEF, 0xFF2D, 0xFF65, ++ 0xFF97, 0xFFC0, 0xFFE0, 0xFFF4, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, ++ 0x0008, 0x000E, 0x0016, 0x0021, 0x002F, 0x0040, 0x0056, 0x006F, 0x008D, ++ 0x00B0, 0x00E6, 0x012D, 0x0176, 0x01AF, 0x01C6, 0x01C6, 0x01C6, 0x01C6, ++ 0x01B4, 0x0182, 0x0134, 0x00D0, 0x005B, 0xFFD8, 0xFF4E, 0xFEC2, 0xFE39, ++ 0xFDB7, 0xFD41, 0xFCDD, 0xFC8F, 0xFC5D, 0xFC4B, 0x0B53, 0x0B53, 0x0B53, ++ 0x0B53, 0x0B53, 0x0B53, 0x0B53, 0x0B3E, 0x0B01, 0x0AA3, 0x0A25, 0x098E, ++ 0x08E0, 0x0822, 0x0756, 0x0682, 0x05A9, 0x04D0, 0x03FC, 0x0330, 0x0271, ++ 0x01C4, 0x012D, 0x00AF, 0x0050, 0x0014, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, ++ 0xFFFB, 0xFFF7, 0xFFF1, 0xFFE9, 0xFFDE, 0xFFD0, 0xFFBE, 0xFFA9, 0xFF8F, ++ 0xFF70, 0xFF4D, 0xFEAF, 0xFD6F, 0xFBFD, 0xFACC, 0xFA4D, 0xFA4D, 0xFA4D, ++ 0xFA4D, 0xFA84, 0xFB21, 0xFC12, 0xFD49, 0xFEB6, 0x004B, 0x01F7, 0x03AA, ++ 0x0555, 0x06E9, 0x0856, 0x098E, 0x0A7F, 0x0B1B, 0x0B53, 0x02B5, 0x02B5, ++ 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, ++ 0x0664, 0x07CD, 0x095A, 0x0B02, 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, ++ 0x1532, 0x169A, 0x17D6, 0x18DB, 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, ++ 0x19ED, 0x19B4, 0x1979, 0x1940, 0x1911, 0x18F0, 0x18E3, 0x18E4, 0x18E6, ++ 0x18EC, 0x18F7, 0x1909, 0x1925, 0x194B, 0x197E, 0x19BF, 0x1A11, 0x1A75, ++ 0x1AED, 0x1B7A, 0x1C1F, 0x2047, 0x292E, 0x3394, 0x3C35, 0x3FCF, 0x3FCF, ++ 0x3FCF, 0x3FCF, 0x3F07, 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, ++ 0x1E35, 0x1837, 0x128C, 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x016A, ++ 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x0168, 0x015F, 0x0152, ++ 0x0141, 0x012C, 0x0115, 0x00FB, 0x00E0, 0x00C4, 0x00A7, 0x008B, 0x006F, ++ 0x0056, 0x003E, 0x0029, 0x0018, 0x000B, 0x0003, 0x0000, 0x001E, 0x006A, ++ 0x00D6, 0x014E, 0x01C3, 0x0231, 0x0292, 0x02E5, 0x0324, 0x034D, 0x035B, ++ 0x034E, 0x0329, 0x02EE, 0x02A2, 0x0246, 0x01DF, 0x016E, 0x00F7, 0x007D, ++ 0x0004, 0xFF8C, 0xFF1B, 0xFEB4, 0xFE58, 0xFE0B, 0xFDD1, 0xFDAC, 0xFD9F, ++ 0xFDA7, 0xFDC0, 0xFDE7, 0xFE19, 0xFE56, 0xFE9A, 0xFEE5, 0xFF34, 0xFF84, ++ 0xFFD5, 0x0024, 0x006F, 0x00B3, 0x00F0, 0x0123, 0x0149, 0x0162, 0x016A, ++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0276, 0x0268, ++ 0x0251, 0x0233, 0x020E, 0x01E5, 0x01B8, 0x0188, 0x0157, 0x0125, 0x00F3, ++ 0x00C3, 0x0096, 0x006D, 0x0049, 0x002A, 0x0014, 0x0005, 0xFFFF, 0x00E6, ++ 0x02E1, 0x04DD, 0x05C3, 0x0575, 0x04AB, 0x0397, 0x026A, 0x0156, 0x008C, ++ 0x003D, 0x004E, 0x007E, 0x00C8, 0x012A, 0x019E, 0x0223, 0x02B3, 0x034A, ++ 0x03E5, 0x0481, 0x0518, 0x05A8, 0x062C, 0x06A1, 0x0703, 0x074D, 0x077D, ++ 0x078E, 0x0782, 0x0761, 0x072D, 0x06EA, 0x0699, 0x063D, 0x05D9, 0x0570, ++ 0x0504, 0x0499, 0x0430, 0x03CC, 0x0370, 0x031F, 0x02DB, 0x02A8, 0x0287, ++ 0x027B, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, ++ 0xCC8A, 0xCB26, 0xC952, 0xC71E, 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, ++ 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, ++ 0xA929, 0xAE85, 0xB602, 0xBE6F, 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, ++ 0xE304, 0xE410, 0xE40B, 0xE3FE, 0xE3E8, 0xE3C7, 0xE39C, 0xE366, 0xE324, ++ 0xE2D6, 0xE27B, 0xE214, 0xE19E, 0xE11A, 0xE087, 0xDFE5, 0xDF33, 0xDE70, ++ 0xDD9D, 0xDCB8, 0xDBC1, 0xDABC, 0xD9AB, 0xD893, 0xD777, 0xD65A, 0xD540, ++ 0xD42C, 0xD322, 0xD225, 0xD139, 0xD061, 0xCFA1, 0xCEFB, 0xCE75, 0xCE11, ++ 0xCDD2, 0xCDBC, + }; + +diff --git a/assets/anims/anim_49.inc.c.rej b/assets/anims/anim_49.inc.c.rej +new file mode 100644 +index 0000000..724663b +--- /dev/null ++++ b/assets/anims/anim_49.inc.c.rej +@@ -0,0 +1,310 @@ ++diff a/assets/anims/anim_49.inc.c b/assets/anims/anim_49.inc.c (rejected hunks) ++@@ -1,9 +1,9 @@ ++ static const struct Animation anim_49[] = { ++- 1, +++ 0, ++ 189, ++ 0, ++ 0, ++- 0x10, +++ 0x48, ++ ANIMINDEX_NUMPARTS(anim_49_indices), ++ anim_49_values, ++ anim_49_indices, ++@@ -12,110 +12,194 @@ static const struct Animation anim_49[] = { ++ ++ ++ static const u16 anim_49_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0001, 0x0010, 0x0002, 0x0001, 0x0000, 0x0001, 0x0012, 0x0001, 0x0000, ++- 0x0010, 0x0259, 0x0010, 0x0269, 0x0010, 0x0279, ++- 0x0010, 0x0229, 0x0010, 0x0239, 0x0010, 0x0249, ++- 0x0010, 0x01F9, 0x0010, 0x0209, 0x0010, 0x0219, ++- 0x0001, 0x01C6, 0x0001, 0x01C7, 0x0001, 0x01C8, ++- 0x0010, 0x0053, 0x0010, 0x0063, 0x0010, 0x0073, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0043, ++- 0x0010, 0x0013, 0x0010, 0x0023, 0x0010, 0x0033, ++- 0x0001, 0x01B3, 0x0001, 0x01B4, 0x0001, 0x01B5, ++- 0x0010, 0x00A3, 0x0010, 0x00B3, 0x0010, 0x00C3, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0093, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0083, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x01B6, ++- 0x0010, 0x0183, 0x0010, 0x0193, 0x0010, 0x01A3, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0173, ++- 0x0010, 0x0143, 0x0010, 0x0153, 0x0010, 0x0163, ++- 0x0010, 0x01C9, 0x0010, 0x01D9, 0x0010, 0x01E9, ++- 0x0010, 0x0113, 0x0010, 0x0123, 0x0010, 0x0133, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0010, 0x0103, ++- 0x0010, 0x00D3, 0x0010, 0x00E3, 0x0010, 0x00F3, +++0x0001, 0x0000, 0x0047, 0x0001, 0x0001, 0x0048, 0x0001, 0x0049, 0x0001, +++ 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, 0x0001, 0x004E, +++ 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, 0x0051, 0x0001, 0x0052, 0x0001, +++ 0x0053, 0x0001, 0x0054, 0x0001, 0x0055, 0x0001, 0x0056, 0x0001, 0x0057, +++ 0x0001, 0x0058, 0x0001, 0x0059, 0x003B, 0x005A, 0x0001, 0x0095, 0x0001, +++ 0x0096, 0x0001, 0x0097, 0x0001, 0x0098, 0x0001, 0x0099, 0x0001, 0x009A, +++ 0x0001, 0x009B, 0x0001, 0x009C, 0x0001, 0x009D, 0x0001, 0x009E, 0x0001, +++ 0x009F, 0x003B, 0x00A0, 0x0001, 0x00DB, 0x0001, 0x00DC, 0x0001, 0x00DD, +++ 0x0001, 0x00DE, 0x0001, 0x00DF, 0x0001, 0x00E0, 0x0001, 0x00E1, 0x0001, +++ 0x00E2, 0x0001, 0x00E3, 0x0047, 0x00E4, 0x0047, 0x012B, 0x0049, 0x0172, +++ 0x0049, 0x01BB, 0x0049, 0x0204, 0x0049, 0x024D, 0x0049, 0x0296, 0x0049, +++ 0x02DF, 0x0049, 0x0328, 0x0001, 0x0371, 0x0001, 0x0372, 0x0001, 0x0373, +++ 0x0049, 0x0374, 0x0049, 0x03BD, 0x0049, 0x0406, 0x0049, 0x044F, 0x0049, +++ 0x0498, 0x0049, 0x04E1, 0x0049, 0x052A, 0x0049, 0x0573, 0x0049, 0x05BC, ++ }; ++ ++ static const s16 anim_49_values[] = { ++- 0x0000, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x3FFF, 0x1292, 0x124F, 0x1233, 0x1261, 0x128E, ++- 0x1233, 0x115B, 0x1069, 0x0F61, 0x0E48, 0x0D22, 0x0BF1, 0x0ABB, ++- 0x0984, 0x084E, 0x071F, 0x0362, 0x033F, 0x0331, 0x0349, 0x0361, ++- 0x0331, 0x02BD, 0x023C, 0x01AF, 0x0119, 0x007C, 0xFFDB, 0xFF36, ++- 0xFE8F, 0xFDEA, 0xFD48, 0xDC1E, 0xDC66, 0xDC83, 0xDC59, 0xDC2F, ++- 0xDC83, 0xDD4E, 0xDE30, 0xDF27, 0xE02E, 0xE142, 0xE25E, 0xE380, ++- 0xE4A4, 0xE5C6, 0xE6E1, 0xF163, 0xF0C6, 0xF085, 0xF0E4, 0xF142, ++- 0xF085, 0xEEBE, 0xECC2, 0xEA99, 0xE84B, 0xE5E1, 0xE362, 0xE0D7, ++- 0xDE49, 0xDBC0, 0xD943, 0xCD29, 0xCF2E, 0xD1AB, 0xD855, 0xE231, ++- 0xE83D, 0xEA01, 0xEBB0, 0xED4B, 0xEED1, 0xF042, 0xF19D, 0xF2E3, ++- 0xF413, 0xF52C, 0xF62E, 0xFE28, 0xFD52, 0xFB12, 0xF050, 0xDF34, ++- 0xD552, 0xD3BA, 0xD26B, 0xD162, 0xD097, 0xD005, 0xCFA6, 0xCF75, ++- 0xCF6B, 0xCF84, 0xCFB8, 0xFA4C, 0xF657, 0xF1CD, 0xE6D1, 0xD738, ++- 0xCE99, 0xCD80, 0xCCB8, 0xCC3A, 0xCBFF, 0xCBFF, 0xCC33, 0xCC94, ++- 0xCD1A, 0xCDC0, 0xCE7D, 0xD7F1, 0xD83D, 0xD85C, 0xD814, 0xD7CD, ++- 0xD85C, 0xD9B4, 0xDB35, 0xDCD8, 0xDE96, 0xE06B, 0xE24E, 0xE43B, ++- 0xE62A, 0xE816, 0xE9F8, 0xEBA5, 0xF17D, 0xF639, 0xF877, 0xF804, ++- 0xF639, 0xF412, 0xF1A9, 0xEF0A, 0xEC3E, 0xE950, 0xE649, 0xE333, ++- 0xE01A, 0xDD06, 0xDA01, 0xFBB1, 0x0748, 0x1209, 0x1B2B, 0x21E8, ++- 0x257A, 0x26CD, 0x275F, 0x2742, 0x268C, 0x254D, 0x2399, 0x2183, ++- 0x1F1E, 0x1C7D, 0x19B3, 0x2D0E, 0x2E43, 0x2F5A, 0x3042, 0x30EA, ++- 0x313E, 0x3154, 0x3152, 0x3138, 0x310B, 0x30CC, 0x307E, 0x3023, ++- 0x2FBF, 0x2F54, 0x2EE5, 0xB0BB, 0xBCD2, 0xC81F, 0xD1D8, 0xD933, ++- 0xDD66, 0xDF68, 0xE0C2, 0xE183, 0xE1BA, 0xE176, 0xE0C8, 0xDFBE, ++- 0xDE67, 0xDCD4, 0xDB13, 0xFF2D, 0xFF44, 0xFF57, 0xFF5F, 0xFF5B, ++- 0xFF57, 0xFF4F, 0xFF38, 0xFF1A, 0xFEFA, 0xFEDE, 0xFECC, 0xFEC9, ++- 0xFEDB, 0xFF09, 0xFF57, 0x023F, 0x023F, 0x0244, 0x0247, 0x0246, ++- 0x0244, 0x0247, 0x024E, 0x0258, 0x0262, 0x026B, 0x0271, 0x0272, ++- 0x026C, 0x025D, 0x0244, 0xB9FE, 0xBC1A, 0xBDAE, 0xBE39, 0xBDF3, ++- 0xBDAE, 0xBDAD, 0xBDAB, 0xBDA8, 0xBDA6, 0xBDA3, 0xBDA2, 0xBDA1, ++- 0xBDA3, 0xBDA7, 0xBDAE, 0x5EA1, 0x6088, 0x5EA1, 0x54C8, 0x4813, ++- 0x3E71, 0x385C, 0x3260, 0x2C92, 0x2705, 0x21CB, 0x1CF8, 0x189F, ++- 0x14D3, 0x11A7, 0x0F2E, 0x0B6D, 0x05F1, 0x0156, 0xFEA9, 0xFDDB, ++- 0xFDAE, 0xFD6B, 0xFD32, 0xFD06, 0xFCE7, 0xFCD7, 0xFCDA, 0xFCF0, ++- 0xFD1C, 0xFD60, 0xFDBD, 0x01E2, 0xFB93, 0xF64E, 0xF422, 0xF514, ++- 0xF67E, 0xF745, 0xF815, 0xF8EE, 0xF9D2, 0xFAC1, 0xFBBD, 0xFCC5, ++- 0xFDDC, 0xFF01, 0x0034, 0x9CFC, 0x951F, 0x8F7C, 0x915F, 0x998A, ++- 0x9EFD, 0x9FEC, 0xA08F, 0xA0EC, 0xA109, 0xA0EA, 0xA096, 0xA012, ++- 0x9F64, 0x9E92, 0x9DA0, 0x00B9, 0x00C9, 0x00D0, 0x00D0, 0x00D0, ++- 0x00D0, 0x00D3, 0x00DD, 0x00E9, 0x00F7, 0x0103, 0x010A, 0x010C, ++- 0x0104, 0x00F1, 0x00D0, 0xFF32, 0xFF36, 0xFF38, 0xFF38, 0xFF38, ++- 0xFF38, 0xFF36, 0xFF32, 0xFF2C, 0xFF26, 0xFF21, 0xFF1D, 0xFF1D, ++- 0xFF20, 0xFF29, 0xFF38, 0xC245, 0xC1D8, 0xC1AA, 0xC1AA, 0xC1AA, ++- 0xC1AA, 0xC1B3, 0xC1C9, 0xC1E6, 0xC206, 0xC221, 0xC233, 0xC236, ++- 0xC224, 0xC1F7, 0xC1AA, 0x1FFC, 0x1A51, 0x152F, 0x1307, 0x141B, ++- 0x152F, 0x1506, 0x149C, 0x140E, 0x1377, 0x12F2, 0x129B, 0x128D, ++- 0x12E4, 0x13BC, 0x152F, 0x0C64, 0x0D70, 0x0DB3, 0x099B, 0x020F, ++- 0xFD99, 0xFD2B, 0xFD50, 0xFDE6, 0xFECE, 0xFFE8, 0x0111, 0x022D, ++- 0x0319, 0x03B5, 0x03E1, 0x089E, 0x0707, 0x0536, 0x018E, 0xFCBA, ++- 0xFA1A, 0xF9EF, 0xFA2A, 0xFAB4, 0xFB78, 0xFC61, 0xFD58, 0xFE49, ++- 0xFF1E, 0xFFC1, 0x001C, 0xBD10, 0xC45E, 0xCA4D, 0xCAA9, 0xC545, ++- 0xBFD1, 0xBC46, 0xB8CA, 0xB557, 0xB1E4, 0xAE6B, 0xAAE5, 0xA74B, ++- 0xA394, 0x9FBB, 0x9BB7, 0x7FFF, 0x7FFF, 0x4171, 0xBF62, 0xBF60, ++- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, ++- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x7FFF, 0x7FFF, ++- 0x4171, 0xFCC9, 0xFE90, 0x0000, 0x008B, 0x0045, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x054B, 0x025E, 0x0000, 0xFF1A, 0xFF8D, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0xB893, 0xBC54, 0xBF5F, 0xC086, 0xBFF3, 0xBF5F, 0xBF5F, ++- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, ++- 0xBF5F, 0x1DE4, 0x1617, 0x0E5E, 0x07EF, 0x0238, 0xFF26, 0xFE45, ++- 0xFDCC, 0xFDA8, 0xFDC7, 0xFE17, 0xFE85, 0xFEFF, 0xFF73, 0xFFCF, ++- 0x0000, 0x0F0A, 0x07A4, 0x007F, 0x004E, 0x0256, 0x03A4, 0x038A, ++- 0x0353, 0x0304, 0x02A2, 0x0233, 0x01BD, 0x0144, 0x00CE, 0x0060, ++- 0x0000, 0xEC1C, 0xF7D2, 0x0570, 0x09F6, 0x0BBC, 0x0C88, 0x0D77, ++- 0x0E6C, 0x0F5D, 0x103B, 0x10FA, 0x118D, 0x11E8, 0x11FE, 0x11C2, ++- 0x1128, 0x0938, 0x0935, 0x093C, 0x096C, 0x0991, 0x093C, 0x0875, ++- 0x0790, 0x0696, 0x058D, 0x0480, 0x0374, 0x0273, 0x0185, 0x00B1, ++- 0x0000, 0xFA57, 0xF98D, 0xF8E4, 0xF883, 0xF884, 0xF8E4, 0xF97D, ++- 0xFA2D, 0xFAEE, 0xFBBA, 0xFC89, 0xFD57, 0xFE1D, 0xFED5, 0xFF78, ++- 0x0000, 0x283D, 0x2C61, 0x2FE8, 0x31E2, 0x31C2, 0x2FE8, 0x2D01, ++- 0x2994, 0x25CA, 0x21CB, 0x1DBF, 0x19CE, 0x1620, 0x12DD, 0x102D, ++- 0x0E38, 0x507D, 0x5567, 0x5AAF, 0x6428, 0x710E, 0x7A85, 0x7E7D, ++- 0x802D, 0x80A3, 0x80EC, 0x813F, 0x8135, 0x80F0, 0x808F, 0x8034, ++- 0x7FFF, 0x0507, 0x05D2, 0x0674, 0x0672, 0x0583, 0x03E6, 0x0145, ++- 0xFDE3, 0xFADE, 0xF959, 0xF97B, 0xFA6F, 0xFBE2, 0xFD83, 0xFEFE, ++- 0x0000, 0x2F0C, 0x2DB3, 0x2BAA, 0x275D, 0x1E94, 0x1041, 0xFBCF, ++- 0xE349, 0xC990, 0xB184, 0x9A5F, 0x824A, 0x6A87, 0x5457, 0x40FF, ++- 0x31BF, +++ 0x0000, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, +++ 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BB, +++ 0x00BA, 0x00BA, 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, +++ 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C1, 0x00C2, +++ 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C2, 0x00C1, 0x00C1, 0x00C0, 0x00BF, +++ 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, 0x00BA, +++ 0x00BA, 0x00B9, 0x00B9, 0x00B9, 0x00BA, 0x00BA, 0x00BB, 0x00BB, 0x00BC, +++ 0x00BD, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C0, 0x00C1, 0x00C1, 0x00C2, +++ 0x0000, 0x0000, 0x3FFF, 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFC16, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0xE029, +++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, +++ 0x02DE, 0x025B, 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, +++ 0x0154, 0x01D8, 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, +++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, +++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, +++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, +++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0xF624, 0xFE1F, 0xF61D, 0xEF0B, +++ 0xFB82, 0xF92D, 0xFFFE, 0x0001, 0xC170, 0xFFFF, 0x1FD6, 0x0468, 0x0468, +++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, +++ 0x01D8, 0x0154, 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, +++ 0x025B, 0x02DE, 0x0362, 0x03E5, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, +++ 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, 0x0468, +++ 0x0468, 0x0468, 0x0468, 0x03E5, 0x0362, 0x02DE, 0x025B, 0x01D8, 0x0154, +++ 0x00D1, 0x004E, 0xFFC9, 0x004E, 0x00D1, 0x0154, 0x01D8, 0x025B, 0x02DE, +++ 0x0362, 0x03E5, 0x0468, 0x09D1, 0x0214, 0xF623, 0x10DE, 0x04B1, 0xF95F, +++ 0xFFFF, 0xFFFF, 0x0000, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, +++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x015F, +++ 0x0107, 0x00AF, 0x0056, 0xFFFD, 0x0051, 0x00A5, 0x00F8, 0x014C, 0x019F, +++ 0x01F3, 0x0246, 0x029A, 0x02ED, 0x0341, 0x0394, 0x03E8, 0x043B, 0x048F, +++ 0x04E2, 0x0536, 0x0589, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, 0x05DD, +++ 0x0592, 0x0546, 0x04FB, 0x04B0, 0x0465, 0x041A, 0x03CF, 0x0384, 0x0339, +++ 0x02ED, 0x02A2, 0x0257, 0x020C, 0x01C1, 0x0176, 0x012B, 0x00E0, 0x0094, +++ 0x0049, 0xFFFD, 0x002F, 0x0060, 0x0091, 0x00C2, 0x00F3, 0x0124, 0x0156, +++ 0x0187, 0x01B8, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, +++ 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x0BD9, 0x097B, 0x071C, +++ 0x04BD, 0x025F, 0x0000, 0x00BB, 0x0176, 0x0230, 0x02EB, 0x03A6, 0x0461, +++ 0x051B, 0x05D6, 0x0691, 0x074C, 0x0807, 0x08C1, 0x097C, 0x0A37, 0x0AF2, +++ 0x0BAC, 0x0C67, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0D22, 0x0C7A, +++ 0x0BD2, 0x0B29, 0x0A81, 0x09D9, 0x0931, 0x0889, 0x07E1, 0x0739, 0x0690, +++ 0x05E8, 0x0540, 0x0498, 0x03F0, 0x0348, 0x02A0, 0x01F8, 0x014F, 0x00A7, +++ 0xFFFE, 0x0150, 0x02A1, 0x03F2, 0x0544, 0x0695, 0x07E6, 0x0937, 0x0A88, +++ 0x0BD9, 0xC17F, 0xC17F, 0xC1C4, 0xC208, 0xC24D, 0xC292, 0xC2D7, 0xC2CA, +++ 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, 0xB7FF, 0xAD81, 0xA304, +++ 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, 0x799E, 0x7588, 0x7173, +++ 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, 0x54DE, 0x50C9, 0x4CB4, +++ 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, 0x41EB, 0x4143, 0x43BE, 0x4639, +++ 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, 0x551C, 0x5797, 0x5A12, 0x5C8D, +++ 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, 0x6B6F, 0x6DEB, 0x7066, 0x72E1, +++ 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, +++ 0xC13A, 0xC17F, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF2, +++ 0xFFE8, 0xFFDC, 0xFFCA, 0xFFB4, 0xFF99, 0xFF77, 0xFF4F, 0xFF16, 0xFECD, +++ 0xFE86, 0xFE4F, 0xFE39, 0xFE39, 0xFE39, 0xFE39, 0xFE4B, 0xFE7D, 0xFECB, +++ 0xFF2F, 0xFFA4, 0x0027, 0x00B1, 0x013D, 0x01C6, 0x0248, 0x02BE, 0x0322, +++ 0x0370, 0x03A2, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03B4, 0x03AD, +++ 0x039A, 0x037B, 0x0352, 0x0321, 0x02E9, 0x02AB, 0x0269, 0x0224, 0x01DE, +++ 0x0198, 0x0153, 0x0110, 0x00D2, 0x009A, 0x0068, 0x003F, 0x001F, 0x000B, +++ 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0007, +++ 0x000D, 0x0017, 0x0024, 0x0035, 0x004B, 0x0067, 0x0089, 0x00B2, 0x0154, +++ 0x0295, 0x0405, 0x0534, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x057B, 0x04DE, +++ 0x03ED, 0x02B6, 0x0149, 0xFFB4, 0xFE08, 0xFC55, 0xFAAA, 0xF916, 0xF7A9, +++ 0xF671, 0xF580, 0xF4E4, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, 0xF4AC, +++ 0xF4C1, 0xF4FE, 0xF55C, 0xF5DA, 0xF671, 0xF71F, 0xF7DD, 0xF8A9, 0xF97D, +++ 0xFA56, 0xFB2F, 0xFC03, 0xFCCF, 0xFD8E, 0xFE3B, 0xFED2, 0xFF50, 0xFFAF, +++ 0xFFEB, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0001, 0x18E6, 0x18E6, 0x18E6, 0x18EA, 0x18F3, +++ 0x1904, 0x1922, 0x194D, 0x198A, 0x19DA, 0x1A42, 0x1AC3, 0x1B61, 0x1C1F, +++ 0x2059, 0x2943, 0x33A2, 0x3C3A, 0x3FCF, 0x3FCF, 0x3FCF, 0x3FCF, 0x3F07, +++ 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, 0x1E35, 0x1837, 0x128C, +++ 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, +++ 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, 0x0664, 0x07CD, 0x095A, 0x0B02, +++ 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, 0x1532, 0x169A, 0x17D6, 0x18DB, +++ 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, 0x19ED, 0x19B4, 0x1979, 0x1940, +++ 0x1911, 0x18F0, 0x18E3, 0x18E5, 0x18E6, 0xFCB1, 0xFCB1, 0xFCC0, 0xFCE9, +++ 0xFD29, 0xFD7D, 0xFDE0, 0xFE51, 0xFECA, 0xFF48, 0xFFC8, 0x0048, 0x00C1, +++ 0x0131, 0x0195, 0x01E8, 0x0229, 0x0252, 0x0260, 0x025E, 0x0258, 0x024E, +++ 0x0241, 0x0232, 0x0220, 0x020E, 0x01FA, 0x01E5, 0x01D1, 0x01BD, 0x01AA, +++ 0x0199, 0x0189, 0x017D, 0x0173, 0x016D, 0x016A, 0x016A, 0x016A, 0x016A, +++ 0x016A, 0x016A, 0x016A, 0x016A, 0x0169, 0x0167, 0x0164, 0x015F, 0x0158, +++ 0x014F, 0x0144, 0x0136, 0x0124, 0x010F, 0x00F6, 0x00D9, 0x00B8, 0x0092, +++ 0x0067, 0x0036, 0xFFFF, 0xFFBE, 0xFF6F, 0xFF14, 0xFEB1, 0xFE49, 0xFDE1, +++ 0xFD7E, 0xFD28, 0xFCE2, 0xFCB5, 0xFCA4, 0xFCB1, 0xFFB1, 0xFFB1, 0xFF9E, +++ 0xFF6A, 0xFF18, 0xFEAD, 0xFE2E, 0xFD9F, 0xFD04, 0xFC63, 0xFBBF, 0xFB1E, +++ 0xFA84, 0xF9F5, 0xF975, 0xF90A, 0xF8B8, 0xF884, 0xF871, 0xF888, 0xF8CA, +++ 0xF930, 0xF9B6, 0xFA56, 0xFB0B, 0xFBD1, 0xFCA1, 0xFD76, 0xFE4B, 0xFF1B, +++ 0xFFE0, 0x0097, 0x0137, 0x01BD, 0x0223, 0x0264, 0x027B, 0x027B, 0x027B, +++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0279, 0x0275, 0x0270, 0x0267, +++ 0x025C, 0x024C, 0x0238, 0x021F, 0x0200, 0x01DB, 0x01B0, 0x017D, 0x0143, +++ 0x0100, 0x00B4, 0x005F, 0x0000, 0xFEE0, 0xFCEB, 0xFB10, 0xFA3C, 0xFA8A, +++ 0xFB54, 0xFC68, 0xFD95, 0xFEA9, 0xFF73, 0xFFC2, 0xFFB1, 0xE40B, 0xE40B, +++ 0xE406, 0xE3F5, 0xE3D9, 0xE3B2, 0xE37D, 0xE33D, 0xE2EF, 0xE293, 0xE22A, +++ 0xE1B2, 0xE12B, 0xE096, 0xDFF1, 0xDF3B, 0xDE76, 0xDD9F, 0xDCB8, 0xDBBF, +++ 0xDAB8, 0xD9A7, 0xD88E, 0xD771, 0xD654, 0xD53A, 0xD427, 0xD31D, 0xD221, +++ 0xD135, 0xD05E, 0xCF9E, 0xCEFA, 0xCE74, 0xCE10, 0xCDD2, 0xCDBC, 0xCDBC, +++ 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, 0xCC8A, 0xCB26, 0xC952, 0xC71E, +++ 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, +++ 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, 0xA929, 0xAE85, 0xB602, 0xBE6F, +++ 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, 0xE304, 0xE410, 0xE40B, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFA76, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, 0xFA22, +++ 0xFA6D, 0xFAB9, 0xFB04, 0xFB4F, 0xFB9A, 0xFBE5, 0xFC30, 0xFC7B, 0xFCC6, +++ 0xFD12, 0xFD5D, 0xFDA8, 0xFDF3, 0xFE3E, 0xFE89, 0xFED4, 0xFF1F, 0xFF6B, +++ 0xFFB6, 0x0002, 0xFFD0, 0xFF9F, 0xFF6E, 0xFF3D, 0xFF0C, 0xFEDB, 0xFEA9, +++ 0xFE78, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, +++ 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFE47, 0xFEA0, 0xFEF8, +++ 0xFF50, 0xFFA9, 0x0002, 0xFFAE, 0xFF5A, 0xFF07, 0xFEB3, 0xFE60, 0xFE0C, +++ 0xFDB9, 0xFD65, 0xFD12, 0xFCBE, 0xFC6B, 0xFC17, 0xFBC4, 0xFB70, 0xFB1D, +++ 0xFAC9, 0xFA76, 0xFA22, 0xF398, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, 0xF2DD, +++ 0xF2DD, 0xF385, 0xF42D, 0xF4D6, 0xF57E, 0xF626, 0xF6CE, 0xF776, 0xF81E, +++ 0xF8C6, 0xF96F, 0xFA17, 0xFABF, 0xFB67, 0xFC0F, 0xFCB7, 0xFD5F, 0xFE07, +++ 0xFEB0, 0xFF58, 0x0001, 0xFEAF, 0xFD5E, 0xFC0D, 0xFABB, 0xF96A, 0xF819, +++ 0xF6C8, 0xF577, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, +++ 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF426, 0xF684, +++ 0xF8E3, 0xFB42, 0xFDA0, 0xFFFF, 0xFF44, 0xFE89, 0xFDCF, 0xFD14, 0xFC59, +++ 0xFB9E, 0xFAE4, 0xFA29, 0xF96E, 0xF8B3, 0xF7F8, 0xF73E, 0xF683, 0xF5C8, +++ 0xF50D, 0xF453, 0xF398, 0xF2DD, 0x489E, 0x4489, 0x43E1, 0x433A, 0x4292, +++ 0x41EB, 0x4143, 0x43BE, 0x4639, 0x48B5, 0x4B30, 0x4DAB, 0x5026, 0x52A1, +++ 0x551C, 0x5797, 0x5A12, 0x5C8D, 0x5F08, 0x6183, 0x63FE, 0x6679, 0x68F4, +++ 0x6B6F, 0x6DEB, 0x7066, 0x72E1, 0x7B8E, 0x843B, 0x8CE8, 0x9594, 0x9E41, +++ 0xA6EE, 0xAF9B, 0xB848, 0xC0F5, 0xC13A, 0xC17F, 0xC1C4, 0xC208, 0xC24D, +++ 0xC292, 0xC2D7, 0xC2CA, 0xC2BD, 0xC2B0, 0xC2A3, 0xC296, 0xC289, 0xC27C, +++ 0xB7FF, 0xAD81, 0xA304, 0x9886, 0x8E08, 0x89F3, 0x85DE, 0x81C8, 0x7DB3, +++ 0x799E, 0x7588, 0x7173, 0x6D5E, 0x6949, 0x6533, 0x611E, 0x5D09, 0x58F3, +++ 0x54DE, 0x50C9, 0x4CB4, 0x489E, 0x4489, 0xFC4B, 0xFC4B, 0xFC4B, 0xFC4B, +++ 0xFC4B, 0xFC4B, 0xFC4B, 0xFC52, 0xFC65, 0xFC84, 0xFCAD, 0xFCDE, 0xFD16, +++ 0xFD54, 0xFD96, 0xFDDB, 0xFE21, 0xFE67, 0xFEAC, 0xFEEF, 0xFF2D, 0xFF65, +++ 0xFF97, 0xFFC0, 0xFFE0, 0xFFF4, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, +++ 0x0008, 0x000E, 0x0016, 0x0021, 0x002F, 0x0040, 0x0056, 0x006F, 0x008D, +++ 0x00B0, 0x00E6, 0x012D, 0x0176, 0x01AF, 0x01C6, 0x01C6, 0x01C6, 0x01C6, +++ 0x01B4, 0x0182, 0x0134, 0x00D0, 0x005B, 0xFFD8, 0xFF4E, 0xFEC2, 0xFE39, +++ 0xFDB7, 0xFD41, 0xFCDD, 0xFC8F, 0xFC5D, 0xFC4B, 0x0B53, 0x0B53, 0x0B53, +++ 0x0B53, 0x0B53, 0x0B53, 0x0B53, 0x0B3E, 0x0B01, 0x0AA3, 0x0A25, 0x098E, +++ 0x08E0, 0x0822, 0x0756, 0x0682, 0x05A9, 0x04D0, 0x03FC, 0x0330, 0x0271, +++ 0x01C4, 0x012D, 0x00AF, 0x0050, 0x0014, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, +++ 0xFFFB, 0xFFF7, 0xFFF1, 0xFFE9, 0xFFDE, 0xFFD0, 0xFFBE, 0xFFA9, 0xFF8F, +++ 0xFF70, 0xFF4D, 0xFEAF, 0xFD6F, 0xFBFD, 0xFACC, 0xFA4D, 0xFA4D, 0xFA4D, +++ 0xFA4D, 0xFA84, 0xFB21, 0xFC12, 0xFD49, 0xFEB6, 0x004B, 0x01F7, 0x03AA, +++ 0x0555, 0x06E9, 0x0856, 0x098E, 0x0A7F, 0x0B1B, 0x0B53, 0x02B5, 0x02B5, +++ 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02B5, 0x02E1, 0x035E, 0x0424, 0x0529, +++ 0x0664, 0x07CD, 0x095A, 0x0B02, 0x0CBC, 0x0E7F, 0x1043, 0x11FD, 0x13A5, +++ 0x1532, 0x169A, 0x17D6, 0x18DB, 0x19A1, 0x1A1E, 0x1A4A, 0x1A3D, 0x1A1C, +++ 0x19ED, 0x19B4, 0x1979, 0x1940, 0x1911, 0x18F0, 0x18E3, 0x18E4, 0x18E6, +++ 0x18EC, 0x18F7, 0x1909, 0x1925, 0x194B, 0x197E, 0x19BF, 0x1A11, 0x1A75, +++ 0x1AED, 0x1B7A, 0x1C1F, 0x2047, 0x292E, 0x3394, 0x3C35, 0x3FCF, 0x3FCF, +++ 0x3FCF, 0x3FCF, 0x3F07, 0x3CD7, 0x3974, 0x3517, 0x2FF8, 0x2A4D, 0x244F, +++ 0x1E35, 0x1837, 0x128C, 0x0D6D, 0x0910, 0x05AD, 0x037C, 0x02B5, 0x016A, +++ 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x016A, 0x0168, 0x015F, 0x0152, +++ 0x0141, 0x012C, 0x0115, 0x00FB, 0x00E0, 0x00C4, 0x00A7, 0x008B, 0x006F, +++ 0x0056, 0x003E, 0x0029, 0x0018, 0x000B, 0x0003, 0x0000, 0x001E, 0x006A, +++ 0x00D6, 0x014E, 0x01C3, 0x0231, 0x0292, 0x02E5, 0x0324, 0x034D, 0x035B, +++ 0x034E, 0x0329, 0x02EE, 0x02A2, 0x0246, 0x01DF, 0x016E, 0x00F7, 0x007D, +++ 0x0004, 0xFF8C, 0xFF1B, 0xFEB4, 0xFE58, 0xFE0B, 0xFDD1, 0xFDAC, 0xFD9F, +++ 0xFDA7, 0xFDC0, 0xFDE7, 0xFE19, 0xFE56, 0xFE9A, 0xFEE5, 0xFF34, 0xFF84, +++ 0xFFD5, 0x0024, 0x006F, 0x00B3, 0x00F0, 0x0123, 0x0149, 0x0162, 0x016A, +++ 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x027B, 0x0276, 0x0268, +++ 0x0251, 0x0233, 0x020E, 0x01E5, 0x01B8, 0x0188, 0x0157, 0x0125, 0x00F3, +++ 0x00C3, 0x0096, 0x006D, 0x0049, 0x002A, 0x0014, 0x0005, 0xFFFF, 0x00E6, +++ 0x02E1, 0x04DD, 0x05C3, 0x0575, 0x04AB, 0x0397, 0x026A, 0x0156, 0x008C, +++ 0x003D, 0x004E, 0x007E, 0x00C8, 0x012A, 0x019E, 0x0223, 0x02B3, 0x034A, +++ 0x03E5, 0x0481, 0x0518, 0x05A8, 0x062C, 0x06A1, 0x0703, 0x074D, 0x077D, +++ 0x078E, 0x0782, 0x0761, 0x072D, 0x06EA, 0x0699, 0x063D, 0x05D9, 0x0570, +++ 0x0504, 0x0499, 0x0430, 0x03CC, 0x0370, 0x031F, 0x02DB, 0x02A8, 0x0287, +++ 0x027B, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCDBC, 0xCD6D, +++ 0xCC8A, 0xCB26, 0xC952, 0xC71E, 0xC49D, 0xC1DF, 0xBEF5, 0xBBF2, 0xB8E6, +++ 0xB5E3, 0xB2F9, 0xB03B, 0xADBA, 0xAB86, 0xA9B2, 0xA84D, 0xA76B, 0xA71C, +++ 0xA929, 0xAE85, 0xB602, 0xBE6F, 0xC6C2, 0xCE90, 0xD591, 0xDB7E, 0xE012, +++ 0xE304, 0xE410, 0xE40B, 0xE3FE, 0xE3E8, 0xE3C7, 0xE39C, 0xE366, 0xE324, +++ 0xE2D6, 0xE27B, 0xE214, 0xE19E, 0xE11A, 0xE087, 0xDFE5, 0xDF33, 0xDE70, +++ 0xDD9D, 0xDCB8, 0xDBC1, 0xDABC, 0xD9AB, 0xD893, 0xD777, 0xD65A, 0xD540, +++ 0xD42C, 0xD322, 0xD225, 0xD139, 0xD061, 0xCFA1, 0xCEFB, 0xCE75, 0xCE11, +++ 0xCDD2, 0xCDBC, ++ }; ++ +diff --git a/assets/anims/anim_51.inc.c b/assets/anims/anim_51.inc.c +index 386b7c3..36d5347 100644 +--- a/assets/anims/anim_51.inc.c ++++ b/assets/anims/anim_51.inc.c +@@ -1,9 +1,9 @@ + static const struct Animation anim_51[] = { +- 1, +- 189, +- 0, +- 0, +- 0x0E, ++ 1, ++ 0, ++ 0, ++ 1, ++ 49, + ANIMINDEX_NUMPARTS(anim_51_indices), + anim_51_values, + anim_51_indices, +@@ -12,91 +12,299 @@ static const struct Animation anim_51[] = { + + + static const u16 anim_51_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x01E7, +- 0x000E, 0x01BD, 0x000E, 0x01CB, 0x000E, 0x01D9, +- 0x000E, 0x0193, 0x000E, 0x01A1, 0x000E, 0x01AF, +- 0x0001, 0x018F, 0x0001, 0x0190, 0x0001, 0x0191, +- 0x000E, 0x003B, 0x000E, 0x0049, 0x000E, 0x0057, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x002D, +- 0x000E, 0x0003, 0x000E, 0x0011, 0x000E, 0x001F, +- 0x0001, 0x018B, 0x0001, 0x018C, 0x0001, 0x018D, +- 0x000E, 0x009D, 0x000E, 0x00AB, 0x000E, 0x00B9, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x008F, +- 0x000E, 0x0065, 0x000E, 0x0073, 0x000E, 0x0081, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x018E, +- 0x000E, 0x0161, 0x000E, 0x016F, 0x000E, 0x017D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x0153, +- 0x000E, 0x0129, 0x000E, 0x0137, 0x000E, 0x0145, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0192, +- 0x000E, 0x00FF, 0x000E, 0x010D, 0x000E, 0x011B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x00F1, +- 0x000E, 0x00C7, 0x000E, 0x00D5, 0x000E, 0x00E3, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0017, ++ 0x0004, 0x0001, 0x001B, 0x0001, 0x001C, 0x0001, 0x001D, 0x0017, 0x001E, ++ 0x0032, 0x0035, 0x0032, 0x0067, 0x0032, 0x0099, 0x0032, 0x00CB, 0x0032, ++ 0x00FD, 0x0032, 0x012F, 0x0032, 0x0161, 0x0032, 0x0193, 0x0032, 0x01C5, ++ 0x0025, 0x01F7, 0x0025, 0x021C, 0x0025, 0x0241, 0x0032, 0x0266, 0x0032, ++ 0x0298, 0x0032, 0x02CA, 0x0032, 0x02FC, 0x0031, 0x032E, 0x0032, 0x035F, ++ 0x0017, 0x0391, 0x0017, 0x03A8, 0x0017, 0x03BF, 0x0031, 0x03D6, 0x0032, ++ 0x0407, 0x0032, 0x0439, 0x0032, 0x046B, 0x0032, 0x049D, 0x0032, 0x04CF, ++ 0x0025, 0x0501, 0x0025, 0x0526, 0x0025, 0x054B, 0x0014, 0x0570, 0x0017, ++ 0x0584, 0x0016, 0x059B, 0x0032, 0x05B1, 0x002B, 0x05E3, 0x002F, 0x060E, ++ 0x0031, 0x063D, 0x0030, 0x066E, 0x0032, 0x069E, 0x0032, 0x06D0, 0x0031, ++ 0x0702, 0x0032, 0x0733, 0x0032, 0x0765, 0x0032, 0x0797, 0x0032, 0x07C9, ++ 0x0032, 0x07FB, 0x0032, 0x082D, 0x0032, 0x085F, 0x0032, 0x0891, 0x0032, ++ 0x08C3, 0x0032, 0x08F5, 0x0032, 0x0927, 0x0032, 0x0959, 0x0032, 0x098B, + }; + + static const s16 anim_51_values[] = { +- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0007, 0x001A, 0x0035, 0x0054, 0x0072, 0x008D, 0x00A0, +- 0x00A8, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF983, 0xF984, 0xF984, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED5E, 0xECE6, 0xEC3D, +- 0xEB7B, 0xEAB9, 0xEA10, 0xE999, 0xE96B, 0xF385, 0xF22A, 0xEEEE, +- 0xEB12, 0xE7D7, 0xE67B, 0xE533, 0xE1D0, 0xDD06, 0xD78A, 0xD20D, +- 0xCD43, 0xC9E0, 0xC898, 0xD757, 0xD5F8, 0xD2B2, 0xCECA, 0xCB84, +- 0xCA25, 0xCD31, 0xD538, 0xE092, 0xED96, 0xFA99, 0x05F2, 0x0DFA, +- 0x1106, 0xEFC6, 0xED2E, 0xE700, 0xDFA0, 0xD972, 0xD6DA, 0xD787, +- 0xD94F, 0xDBD3, 0xDEB6, 0xE199, 0xE41D, 0xE5E5, 0xE692, 0xCF2C, +- 0xD401, 0xDF88, 0xED49, 0xF8D0, 0xFDA5, 0xFA7C, 0xF229, 0xE664, +- 0xD8E6, 0xCB68, 0xBFA2, 0xB74F, 0xB427, 0x020B, 0x020B, 0x020B, +- 0x020B, 0x020B, 0x020B, 0x01F5, 0x01B9, 0x0165, 0x0105, 0x00A5, +- 0x0051, 0x0016, 0x0000, 0x03A9, 0x03A9, 0x03A9, 0x03A9, 0x03A9, +- 0x03A9, 0x0381, 0x0317, 0x0280, 0x01D4, 0x0128, 0x0092, 0x0028, +- 0x0000, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF521, +- 0xF43B, 0xF2F6, 0xF182, 0xF00D, 0xEEC9, 0xEDE3, 0xED8C, 0xF3BE, +- 0xF128, 0xEAFE, 0xE3A3, 0xDD79, 0xDAE3, 0xDA04, 0xD7B6, 0xD474, +- 0xD0B9, 0xCCFD, 0xC9BB, 0xC76E, 0xC68E, 0x1AB9, 0x1E2D, 0x2669, +- 0x303D, 0x3879, 0x3BED, 0x38D6, 0x30B1, 0x252E, 0x17FB, 0x0AC8, +- 0xFF46, 0xF721, 0xF40A, 0x1465, 0x169A, 0x1BDF, 0x2228, 0x276D, +- 0x29A2, 0x2926, 0x27E1, 0x2614, 0x2404, 0x21F4, 0x2028, 0x1EE2, +- 0x1E67, 0xC825, 0xCCD7, 0xD80A, 0xE567, 0xF09A, 0xF54C, 0xF286, +- 0xEB36, 0xE0DF, 0xD505, 0xC92A, 0xBED3, 0xB783, 0xB4BD, 0xFFC5, +- 0xFFBF, 0xFFB0, 0xFFA0, 0xFF95, 0xFF94, 0xFF9F, 0xFFB1, 0xFFC7, +- 0xFFDF, 0xFFF6, 0x0009, 0x0016, 0x001B, 0xFF39, 0xFF31, 0xFF23, +- 0xFF1A, 0xFF25, 0xFF4F, 0xFF9F, 0x000D, 0x008D, 0x0112, 0x018F, +- 0x01F8, 0x0241, 0x025B, 0xD5A9, 0xD6E5, 0xD9C7, 0xDD1C, 0xDFAC, +- 0xE042, 0xDEBB, 0xDC0C, 0xD8A1, 0xD4E4, 0xD142, 0xCE24, 0xCBF7, +- 0xCB25, 0x41BC, 0x3B93, 0x2D02, 0x1BE7, 0x0E1D, 0x0982, 0x0E7F, +- 0x186D, 0x2591, 0x3432, 0x4294, 0x4EFD, 0x57B4, 0x5AFE, 0x0768, +- 0x0737, 0x06B9, 0x0610, 0x055D, 0x04C0, 0x042B, 0x0380, 0x02CE, +- 0x0220, 0x0183, 0x0103, 0x00AD, 0x008D, 0x0954, 0x087D, 0x0671, +- 0x03E1, 0x0181, 0x0005, 0xFF59, 0xFEEB, 0xFEAF, 0xFE99, 0xFE9D, +- 0xFEAE, 0xFEC2, 0xFECB, 0xA3E7, 0xA47F, 0xA5C2, 0xA6EA, 0xA72F, +- 0xA5CB, 0xA26E, 0x9DAC, 0x9817, 0x9241, 0x8CB9, 0x8812, 0x84DE, +- 0x83AC, 0x0000, 0xFFFF, 0xFFFB, 0xFFF8, 0xFFF9, 0x0000, 0x000F, +- 0x0024, 0x003C, 0x0056, 0x006E, 0x0082, 0x0090, 0x0095, 0x0000, +- 0x0003, 0x0009, 0x000D, 0x000C, 0x0000, 0xFFE7, 0xFFC4, 0xFF9C, +- 0xFF72, 0xFF4A, 0xFF28, 0xFF11, 0xFF09, 0xBA5D, 0xBDB3, 0xC5BF, +- 0xCF8C, 0xD825, 0xDC96, 0xDCF0, 0xDB95, 0xD908, 0xD5CD, 0xD265, +- 0xCF54, 0xCD1C, 0xCC42, 0x4CBC, 0x45FF, 0x35FA, 0x22F8, 0x1345, +- 0x0D2D, 0x10F9, 0x19A5, 0x2589, 0x32FC, 0x4056, 0x4BED, 0x5418, +- 0x5730, 0xF894, 0xF924, 0xFA84, 0xFC3C, 0xFDD5, 0xFED6, 0xFF4B, +- 0xFF98, 0xFFC3, 0xFFD4, 0xFFD4, 0xFFCB, 0xFFBF, 0xFFBA, 0xF606, +- 0xF706, 0xF976, 0xFC7C, 0xFF3D, 0x00DF, 0x0174, 0x01AD, 0x01A0, +- 0x0163, 0x010D, 0x00B3, 0x006E, 0x0051, 0x98E7, 0x9A74, 0x9E10, +- 0xA22A, 0xA52F, 0xA590, 0xA313, 0x9EF3, 0x99CC, 0x9439, 0x8ED4, +- 0x8A3A, 0x8705, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x7FFF, +- 0x7FFF, 0x4171, 0xBF5F, 0x0081, 0x0081, 0x0082, 0x0081, 0x007E, +- 0x0076, 0x0069, 0x0058, 0x0045, 0x0031, 0x001E, 0x000E, 0x0004, +- 0x0000, 0x0214, 0x021B, 0x0228, 0x0233, 0x0230, 0x0216, 0x01E0, +- 0x0195, 0x013D, 0x00E2, 0x008C, 0x0044, 0x0012, 0x0000, 0x035A, +- 0x02CA, 0x01A0, 0x00A9, 0x00B3, 0x028A, 0x068D, 0x0C26, 0x12AD, +- 0x197B, 0x1FE9, 0x2550, 0x2908, 0x2A6B, 0x0000, 0xFFFF, 0xFFFC, +- 0xFFF7, 0xFFF4, 0xFFF3, 0xFFF3, 0xFFF5, 0xFFF7, 0xFFFA, 0xFFFC, +- 0xFFFE, 0x0000, 0x0000, 0xFF53, 0xFF51, 0xFF4D, 0xFF4A, 0xFF4B, +- 0xFF54, 0xFF65, 0xFF7E, 0xFF9A, 0xFFB7, 0xFFD3, 0xFFEB, 0xFFFB, +- 0x0000, 0x0D24, 0x0D73, 0x0E34, 0x0F20, 0x0FF2, 0x1066, 0x107E, +- 0x1073, 0x104D, 0x1019, 0x0FDE, 0x0FA8, 0x0F80, 0x0F71, 0x40A1, +- 0x4036, 0x4048, 0x42D9, 0x49E7, 0x5772, 0x70F5, 0x8A78, 0xA3FB, +- 0xBD7F, 0xD702, 0xF085, 0x0A08, 0x238B, ++ 0x0000, 0x00BF, 0x0000, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, ++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3F82, 0x3E6F, 0x3D5B, 0x3CDE, ++ 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, ++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, ++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3CD0, 0x3B53, 0x39D6, 0x3929, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFF5, 0xFFDE, 0xFFC2, 0xFFAC, 0xFFA2, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, ++ 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, ++ 0xFFA2, 0xFFA5, 0xFFAB, 0xFFB2, 0xFFBA, 0xFFC3, 0xFFCC, 0xFFD5, 0xFFDD, ++ 0xFFE4, 0xFFE9, 0xFFED, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFF96, 0xFF4E, 0xFF2D, ++ 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, ++ 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF41, 0xFF33, 0xFF1E, 0xFF03, ++ 0xFEE4, 0xFEC2, 0xFE9F, 0xFE7E, 0xFE5F, 0xFE43, 0xFE2E, 0xFE20, 0xFE1B, ++ 0x0000, 0x0006, 0x0015, 0x002E, 0x004E, 0x0074, 0x00A0, 0x00D0, 0x0102, ++ 0x0135, 0x0168, 0x019A, 0x01C9, 0x01F5, 0x021C, 0x023C, 0x0254, 0x0264, ++ 0x026A, 0x00DD, 0xFD3E, 0xF919, 0xF5FA, 0xF4C0, 0xF493, 0xF547, 0xF5FA, ++ 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, ++ 0xF493, 0xF4D7, 0xF595, 0xF6B6, 0xF824, 0xF9C9, 0xFB8F, 0xFD61, 0xFF27, ++ 0x00CD, 0x023B, 0x035C, 0x0419, 0x045E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFF6, 0xFFDE, 0xFFB5, ++ 0xFF81, 0xFF4A, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF59, 0xFF81, ++ 0xFF59, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF33, 0xFF3A, 0xFF46, ++ 0xFF54, 0xFF64, 0xFF76, 0xFF88, 0xFF9A, 0xFFAA, 0xFFB8, 0xFFC4, 0xFFCB, ++ 0xFFCE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x0000, 0x0006, 0x001C, 0x0045, 0x0083, 0x00CC, 0x00F0, 0x00BA, ++ 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, ++ 0x00BA, 0x00F0, 0x00EC, 0x00E0, 0x00CE, 0x00B6, 0x009B, 0x007E, 0x0061, ++ 0x0044, 0x0029, 0x0012, 0xFFFE, 0xFFF2, 0xFFEE, 0x2081, 0x2091, 0x20BC, ++ 0x20FB, 0x2146, 0x2194, 0x21DF, 0x221E, 0x2249, 0x2259, 0x2259, 0x2259, ++ 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x21DB, 0x1E64, 0x15A3, ++ 0x0A36, 0x0088, 0xFBDC, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFDB2, ++ 0x0088, 0xFDB2, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFB13, 0xFBAA, ++ 0xFC92, 0xFDB6, 0xFF08, 0x0074, 0x01E9, 0x0354, 0x04A5, 0x05CA, 0x06B1, ++ 0x0749, 0x077F, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, ++ 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, ++ 0xFDA3, 0xFDA3, 0xFE16, 0x0079, 0x058F, 0x0AF2, 0x0D73, 0x0D73, 0x0D73, ++ 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, ++ 0x0D73, 0x0D73, 0x0D73, 0x0DB2, 0x0E62, 0x0F6E, 0x10C1, 0x1248, 0x13EE, ++ 0x159D, 0x1743, 0x18C9, 0x1A1D, 0x1B29, 0x1BD8, 0x1C17, 0xAE9E, 0xAE9E, ++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, ++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAA8E, 0xA67F, ++ 0xB684, 0xD443, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, ++ 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE45E, ++ 0xE49C, 0xE4FA, 0xE572, 0xE5FD, 0xE692, 0xE72A, 0xE7BF, 0xE849, 0xE8C1, ++ 0xE920, 0xE95E, 0xE975, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, ++ 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, ++ 0xC519, 0xC519, 0xC519, 0xC4B5, 0xC28D, 0xBDE4, 0xB8F0, 0xB6A2, 0xB6A2, ++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, ++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB679, 0xB605, 0xB556, 0xB477, 0xB376, ++ 0xB262, 0xB146, 0xB032, 0xAF31, 0xAE52, 0xADA2, 0xAD2F, 0xAD06, 0xFFFF, ++ 0xFFF2, 0xFFD0, 0xFF9F, 0xFF65, 0xFF27, 0xFEED, 0xFEBC, 0xFE9A, 0xFE8D, ++ 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xF73B, ++ 0xEF76, 0xEF08, 0xEEFF, 0xEE91, 0xECE5, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, ++ 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, ++ 0xE029, 0xDFC7, 0xDEC1, 0xDD47, 0xDB86, 0xD9AE, 0xD7ED, 0xD672, 0xD56D, ++ 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, ++ 0xD6CC, 0xDD3F, 0xE8FA, 0xF5C3, 0xFE2F, 0x00C5, 0x0123, 0xFFA9, 0xFE2F, ++ 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, ++ 0x0123, 0x0468, 0x0478, 0x04A1, 0x04DD, 0x0524, 0x056F, 0x05B6, 0x05F2, ++ 0x061C, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, ++ 0x062B, 0x0D45, 0x1460, 0x0C5A, 0xFD72, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, ++ 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, ++ 0xF5AB, 0xF5EA, 0xF7D3, 0xF7DB, 0xF7F0, 0xF80E, 0xF831, 0xF857, 0xF87A, ++ 0xF898, 0xF8AD, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, ++ 0xF8B5, 0xF8B5, 0xF996, 0xFFC0, 0x0F3F, 0x2278, 0x303E, 0x34E7, 0x3592, ++ 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, ++ 0x303E, 0x32E8, 0x3592, 0x350B, 0x3392, 0x3155, 0x2E7E, 0x2B3A, 0x27B4, ++ 0x2418, 0x2092, 0x1D4E, 0x1A77, 0x183A, 0x16C2, 0x163B, 0xF504, 0xF4E5, ++ 0xF492, 0xF419, 0xF38A, 0xF2F4, 0xF266, 0xF1ED, 0xF19A, 0xF17B, 0xF17B, ++ 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF166, 0xF0D4, ++ 0xE9C6, 0xDDB4, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD82A, 0xD906, ++ 0xD82A, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD801, 0xD906, 0xD99F, ++ 0xDA21, 0xDA8D, 0xDAE6, 0xDB2C, 0xDB64, 0xDB8D, 0xDBAB, 0xDBBF, 0xDBCB, ++ 0xDBD1, 0xDBD3, 0xDBD4, 0xF662, 0xF662, 0xF663, 0xF663, 0xF664, 0xF664, ++ 0xF665, 0xF665, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, ++ 0xF666, 0xF666, 0xF666, 0xF5DD, 0xF220, 0xE88A, 0xDBEE, 0xD149, 0xCC47, ++ 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, ++ 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCBC6, 0xCD32, 0xCF5D, 0xD21D, 0xD546, ++ 0xD8B0, 0xDC2E, 0xDF97, 0xE2C1, 0xE581, 0xE7AC, 0xE918, 0xE99B, 0xEF0B, ++ 0xEF2F, 0xEF92, 0xF021, 0xF0CA, 0xF17C, 0xF225, 0xF2B4, 0xF317, 0xF33C, ++ 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF34A, ++ 0xF3AB, 0xF4AB, 0xF614, 0xF77A, 0xF87B, 0xF8DB, 0xF82B, 0xF77A, 0xF82B, ++ 0xF8DB, 0xF82B, 0xF77A, 0xF82B, 0xF8DB, 0xF82B, 0xF77A, 0xF7E5, 0xF8DB, ++ 0xF9FC, 0xFB2E, 0xFC6B, 0xFDAC, 0xFEE9, 0x001D, 0x013E, 0x0246, 0x032E, ++ 0x03EF, 0x0481, 0x04DE, 0x04FF, 0xFB82, 0xFB38, 0xFA6F, 0xF94D, 0xF7F5, ++ 0xF68B, 0xF533, 0xF411, 0xF348, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, ++ 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2E4, 0xF233, 0xF06D, 0xEE09, 0xEBDC, ++ 0xEA93, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, ++ 0xEA2E, 0xEB05, 0xEBDC, 0xEB1C, 0xEA2E, 0xE9D8, 0xE98F, 0xE952, 0xE920, ++ 0xE8F8, 0xE8D9, 0xE8C2, 0xE8B1, 0xE8A6, 0xE89F, 0xE89B, 0xE89A, 0xF92D, ++ 0xF916, 0xF8D8, 0xF87F, 0xF815, 0xF7A5, 0xF73B, 0xF6E2, 0xF6A4, 0xF68D, ++ 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF66D, ++ 0xF58D, 0xF347, 0xF01F, 0xED17, 0xEB0E, 0xEA56, 0xEBB7, 0xED17, 0xEBB7, ++ 0xEA56, 0xEBB7, 0xED17, 0xEBB7, 0xEA56, 0xEBB7, 0xED17, 0xEC34, 0xEA56, ++ 0xE877, 0xE6C9, 0xE54A, 0xE3F8, 0xE2D1, 0xE1D4, 0xE0FE, 0xE04E, 0xDFC2, ++ 0xDF58, 0xDF0F, 0xDEE4, 0xDED6, 0xFFFE, 0x0003, 0x000E, 0x001E, 0x0031, ++ 0x0045, 0x0059, 0x0069, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, ++ 0x0078, 0x0078, 0x0078, 0x0078, 0x009E, 0x01A7, 0x0418, 0x06C7, 0x080A, ++ 0x0001, 0x007A, 0x01BE, 0x0393, 0x05C0, 0x0809, 0x0A35, 0x0C0B, 0x0D4F, ++ 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, ++ 0x0CCC, 0x05E7, 0xF59C, 0xE3C0, 0xDB58, 0xC170, 0xC171, 0xC173, 0xC176, ++ 0xC179, 0xC17C, 0xC180, 0xC182, 0xC184, 0xC185, 0xC185, 0xC185, 0xC185, ++ 0xC185, 0xC185, 0xC185, 0xC185, 0xC185, 0xC12B, 0xBEB7, 0xB8EA, 0xB28E, ++ 0xAF90, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, ++ 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, ++ 0xFCE7, 0xFD58, 0x006D, 0x0AA8, 0x1A78, 0x2961, 0xB22F, 0xB4D8, 0x2F1D, ++ 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, ++ 0x2EDE, 0xB4D8, 0xB5C1, 0xB686, 0xB72A, 0xB7B1, 0xB81D, 0xB871, 0xB8B0, ++ 0xB8DD, 0xB8FB, 0xB90E, 0xB917, 0xB91B, 0x73C6, 0x73C6, 0x73C6, 0x73C6, ++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, ++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x733A, 0x6FCF, 0x67E6, 0x5E12, ++ 0x55EF, 0x2DDF, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x53A5, 0x55EF, ++ 0x53A5, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x2E93, 0x2E65, 0x2E1E, ++ 0x2DC5, 0x2D5F, 0x2CF0, 0x2C7F, 0x2C10, 0x2BAA, 0x2B51, 0x2B0A, 0x2ADC, ++ 0x2ACC, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, ++ 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, ++ 0xFE97, 0xFD2B, 0xFBBF, 0x08C8, 0x22E8, 0x36AF, 0xBC96, 0xBD6E, 0x3A0E, ++ 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, ++ 0x397A, 0xBD6E, 0xBF91, 0xC161, 0xC2E3, 0xC41F, 0xC51D, 0xC5E2, 0xC676, ++ 0xC6E1, 0xC728, 0xC753, 0xC769, 0xC771, 0xC772, 0x09D1, 0x09C3, 0x099E, ++ 0x0969, 0x092A, 0x08E8, 0x08A9, 0x0874, 0x084F, 0x0842, 0x0842, 0x0842, ++ 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x07D8, 0x04F7, 0xFD25, ++ 0xF250, 0xE88F, 0xE318, 0xE18D, 0xE50E, 0xE88F, 0xE50E, 0xE18D, 0xE50E, ++ 0xE88F, 0xE50E, 0xE18D, 0xE50E, 0xE88F, 0xE564, 0xE18D, 0xE04F, 0xDF42, ++ 0xDE62, 0xDDAA, 0xDD17, 0xDCA5, 0xDC4F, 0xDC11, 0xDBE8, 0xDBCF, 0xDBC2, ++ 0xDBBD, 0xDBBC, 0x0214, 0x024C, 0x02E3, 0x03BD, 0x04C0, 0x05D0, 0x06D3, ++ 0x07AD, 0x0844, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, ++ 0x087C, 0x087C, 0x0E32, 0x195D, 0x2282, 0x2811, 0x29F1, 0x29E7, 0x29DD, ++ 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, ++ 0x29F1, 0x29EE, 0x29DD, 0x298F, 0x28E8, 0x27FA, 0x26D4, 0x2587, 0x2424, ++ 0x22BB, 0x215C, 0x2018, 0x1F00, 0x1E23, 0x1D93, 0x1D5F, 0xF623, 0xF626, ++ 0xF62D, 0xF637, 0xF643, 0xF64F, 0xF65B, 0xF666, 0xF66C, 0xF66F, 0xF66F, ++ 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF7C5, 0xF91A, ++ 0xF2FE, 0xE60F, 0xDA65, 0xD589, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, ++ 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD507, ++ 0xD58E, 0xD65C, 0xD760, 0xD88C, 0xD9CF, 0xDB1A, 0xDC5D, 0xDD89, 0xDE8D, ++ 0xDF5B, 0xDFE2, 0xE012, 0x10DE, 0x1076, 0x0F62, 0x0DD1, 0x0BF6, 0x0A02, ++ 0x0827, 0x0697, 0x0582, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, ++ 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x03F0, ++ 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, ++ 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x04B1, 0x0560, 0x0735, 0x09DC, 0x0D01, ++ 0x1051, 0x1376, 0x161D, 0x17F2, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, ++ 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, ++ 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, ++ 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0xF95F, 0xF916, 0xF853, 0xF737, ++ 0xF5E8, 0xF487, 0xF337, 0xF21C, 0xF158, 0xF10F, 0xF10F, 0xF10F, 0xF10F, ++ 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, ++ 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, ++ 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0051, 0x003F, 0x001C, 0xFFFE, 0xFFF4, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, ++ 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFFC, 0xFFF2, ++ 0xFFC7, 0xFF6D, 0xFEEF, 0xFE53, 0xFDA3, 0xFCE8, 0xFC2A, 0xFB71, 0xFAC7, ++ 0xFA34, 0xF9C0, 0xF974, 0xF959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x001D, 0x001C, 0x0015, 0x0001, ++ 0xFF55, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, ++ 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFEB7, 0xFEB6, 0xFEB6, 0xFEB5, ++ 0xFEB5, 0xFEB4, 0x217F, 0x21B4, 0x224A, 0x2336, 0x246C, 0x25DE, 0x2781, ++ 0x2949, 0x2B29, 0x2D15, 0x2F01, 0x30E2, 0x32A9, 0x344C, 0x35BF, 0x36F4, ++ 0x37E0, 0x3876, 0x38AB, 0x26D2, 0x3B1B, 0x62F8, 0x7EF0, 0x85AA, 0x86A0, ++ 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, ++ 0x7EF0, 0x82C5, 0x86A0, 0x86AB, 0x86B5, 0x86BD, 0x86C3, 0x86C9, 0x86CD, ++ 0x86D0, 0x86D2, 0x86D4, 0x86D5, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, ++ 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, ++ 0xF7B1, 0xF7A8, 0xF79E, 0xF7A4, 0xF7B1, 0xF7BD, 0xF7C9, 0xF7D3, 0xF7DC, ++ 0xF7E4, 0xF7EB, 0xF7F1, 0xF7F6, 0xF7FA, 0xF7FD, 0xF7FF, 0xF800, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, ++ 0x0092, 0x0092, 0x0092, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00AB, ++ 0x00C4, 0x00AB, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00A8, 0x00C4, ++ 0x00CE, 0x00D7, 0x00DE, 0x00E4, 0x00E9, 0x00ED, 0x00F0, 0x00F2, 0x00F3, ++ 0x00F4, 0x00F5, 0x3F9E, 0x3F9E, 0x3F9D, 0x3F9C, 0x3F9A, 0x3F97, 0x3F92, ++ 0x3F8B, 0x3F82, 0x3F76, 0x3F67, 0x3F55, 0x3F3F, 0x3F26, 0x3F08, 0x3EE5, ++ 0x3EBE, 0x3E91, 0x3E5F, 0x37C4, 0x2981, 0x1B4C, 0x14D9, 0x1634, 0x178F, ++ 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, ++ 0x14D9, 0x15F2, 0x178F, 0x1884, 0x1953, 0x19FF, 0x1A8D, 0x1AFE, 0x1B56, ++ 0x1B98, 0x1BC7, 0x1BE7, 0x1BFB, 0x1C04, 0x1C08, 0x1C09, 0xF7D1, 0xF7ED, ++ 0xF83E, 0xF8BE, 0xF965, 0xFA2D, 0xFB0F, 0xFC05, 0xFD09, 0xFE13, 0xFF1D, ++ 0x0021, 0x0117, 0x01F9, 0x02C1, 0x0368, 0x03E8, 0x0439, 0x0456, 0x01FD, ++ 0x029C, 0x03C2, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0445, 0x042A, ++ 0x0445, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0457, 0x042A, 0x03C3, ++ 0x0326, 0x025D, 0x0174, 0x0076, 0xFF6C, 0xFE64, 0xFD66, 0xFC7E, 0xFBB7, ++ 0xFB1C, 0xFAB6, 0xFA92, 0x08F7, 0x08F7, 0x08F4, 0x08EC, 0x08DD, 0x08C5, ++ 0x08A0, 0x086C, 0x0828, 0x07D0, 0x0762, 0x06DC, 0x063B, 0x057D, 0x049F, ++ 0x039F, 0x027B, 0x012F, 0xFFBA, 0xF95E, 0xFA68, 0xFC9D, 0xFEA3, 0xFF80, ++ 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, ++ 0xFF22, 0xFEA3, 0xFF16, 0xFFA0, 0xFFC9, 0xFFEB, 0x0009, 0x0021, 0x0034, ++ 0x0043, 0x004E, 0x0056, 0x005B, 0x005E, 0x0060, 0x0061, 0xBE26, 0xBE28, ++ 0xBE3A, 0xBE6B, 0xBECB, 0xBF69, 0xC054, 0xC19C, 0xC351, 0xC582, 0xC83F, ++ 0xCB97, 0xCF99, 0xD455, 0xD9DC, 0xE03B, 0xE783, 0xEFC3, 0xF90B, 0x1CC6, ++ 0x16F9, 0x0A64, 0xFE41, 0xF81C, 0xF6B7, 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, ++ 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, 0xFA7C, 0xFE41, 0xFBE9, 0xF6B7, 0xF0F7, ++ 0xEB32, 0xE57D, 0xDFED, 0xDA98, 0xD593, 0xD0F4, 0xCCD0, 0xC93C, 0xC64F, ++ 0xC41D, 0xC2BC, 0xC241, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFE7, 0xFFA6, 0xFF43, 0xFEC6, 0xFE35, ++ 0xFD99, 0xFCF9, 0xFC5E, 0xFBCD, 0xFB4F, 0xFAEC, 0xFAAB, 0xFA94, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0xFFDC, 0xFF77, 0xFEDE, 0xFE1D, 0xFD3E, 0xFC4D, 0xFB57, 0xFA66, 0xF987, ++ 0xF8C6, 0xF82D, 0xF7C8, 0xF7A4, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, ++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, ++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE705, 0xE68E, 0xE618, 0xE5E3, ++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, ++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE56F, 0xE42E, 0xE243, 0xDFD6, ++ 0xDD0B, 0xDA08, 0xD6F3, 0xD3F0, 0xD125, 0xCEB8, 0xCCCE, 0xCB8C, 0xCB19, ++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, ++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, ++ 0xFCCC, 0xFD43, 0xFDBB, 0xFE0F, 0xFE77, 0xFF09, 0xFF5A, 0xFEE8, 0xFE77, ++ 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, ++ 0xFF5A, 0xFF57, 0xFF4F, 0xFF44, 0xFF35, 0xFF24, 0xFF12, 0xFF00, 0xFEEE, ++ 0xFEDD, 0xFECE, 0xFEC3, 0xFEBB, 0xFEB9, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, ++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, ++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xFA42, 0xFBA6, 0xFD62, ++ 0xFF23, 0x008D, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0023, 0xFF23, ++ 0x0023, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0119, 0x00FE, 0x00D4, ++ 0x009F, 0x0062, 0x0021, 0xFFDD, 0xFF9B, 0xFF5E, 0xFF2A, 0xFF00, 0xFEE5, ++ 0xFEDB, 0x398E, 0x39C5, 0x3A61, 0x3B57, 0x3C98, 0x3E18, 0x3FCC, 0x41A5, ++ 0x4398, 0x4597, 0x4797, 0x4989, 0x4B63, 0x4D16, 0x4E97, 0x4FD8, 0x50CD, ++ 0x5169, 0x51A0, 0x43AB, 0x5D15, 0x8DE0, 0xACDC, 0xB1BC, 0xB26E, 0xAFA5, ++ 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, ++ 0xAFA5, 0xB26E, 0xB236, 0xB199, 0xB0AB, 0xAF7C, 0xAE21, 0xACA9, 0xAB29, ++ 0xA9B2, 0xA856, 0xA727, 0xA639, 0xA59C, 0xA564, 0xFFC9, 0xFFC9, 0xFFCA, ++ 0xFFCB, 0xFFCC, 0xFFCE, 0xFFD0, 0xFFD2, 0xFFD4, 0xFFD6, 0xFFD9, 0xFFDB, ++ 0xFFDD, 0xFFDF, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE4, 0xFFDC, 0xFFCB, ++ 0xFFBB, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, ++ 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFBB, 0xFFD0, 0xFFEB, 0x000A, ++ 0x002C, 0x004F, 0x0074, 0x0097, 0x00BA, 0x00DA, 0x00F7, 0x010F, 0x0121, ++ 0x012D, 0x0131, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9C, 0xFF9D, ++ 0xFF9E, 0xFF9F, 0xFFA1, 0xFFA3, 0xFFA6, 0xFFA9, 0xFFAD, 0xFFB2, 0xFFB7, ++ 0xFFBD, 0xFFC4, 0xFFCB, 0x00ED, 0x035D, 0x05CD, 0x06EB, 0x06EE, 0x06EE, ++ 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, ++ 0x06EB, 0x06EC, 0x06EE, 0x06FC, 0x0719, 0x0743, 0x0777, 0x07B1, 0x07F0, ++ 0x0830, 0x086E, 0x08A7, 0x08D9, 0x0900, 0x0919, 0x0922, 0x427D, 0x427D, ++ 0x427C, 0x427B, 0x4279, 0x4276, 0x4271, 0x426A, 0x4261, 0x4256, 0x4247, ++ 0x4235, 0x4220, 0x4206, 0x41E9, 0x41C7, 0x41A0, 0x4174, 0x4143, 0x3A86, ++ 0x2BF7, 0x1D75, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x17E3, 0x18E6, ++ 0x17E3, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x1780, 0x18E6, 0x1A77, ++ 0x1C10, 0x1DA9, 0x1F3C, 0x20C1, 0x2232, 0x2388, 0x24BC, 0x25C8, 0x26A4, ++ 0x274A, 0x27B2, 0x27D6, 0x02A5, 0x02A7, 0x02AE, 0x02B8, 0x02C6, 0x02D6, ++ 0x02E9, 0x02FD, 0x0312, 0x0327, 0x033D, 0x0352, 0x0366, 0x0379, 0x0389, ++ 0x0396, 0x03A1, 0x03A7, 0x03AA, 0xFF8D, 0x003F, 0x01C4, 0x034B, 0x042B, ++ 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, ++ 0x03DB, 0x034B, 0x03A9, 0x046B, 0x0525, 0x05C2, 0x0646, 0x06B2, 0x0709, ++ 0x074D, 0x0780, 0x07A5, 0x07BF, 0x07CE, 0x07D6, 0x07D9, 0x07DA, 0x0390, ++ 0x0390, 0x038E, 0x0389, 0x0380, 0x0370, 0x0358, 0x0337, 0x030B, 0x02D3, ++ 0x028D, 0x0237, 0x01D0, 0x0157, 0x00C9, 0x0026, 0xFF6A, 0xFE96, 0xFDA8, ++ 0xF9CD, 0xFA8A, 0xFBF2, 0xFCCF, 0xFCEA, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, ++ 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCD5, 0xFCEE, ++ 0xFD20, 0xFD6A, 0xFDC7, 0xFE32, 0xFEA5, 0xFF1D, 0xFF95, 0x0008, 0x0070, ++ 0x00C9, 0x010F, 0x013C, 0x014C, 0xCAC9, 0xCACB, 0xCADA, 0xCB02, 0xCB51, ++ 0xCBD3, 0xCC94, 0xCDA2, 0xCF0A, 0xD0D8, 0xD318, 0xD5D9, 0xD925, 0xDD0B, ++ 0xE197, 0xE6D6, 0xECD4, 0xF39E, 0xFB42, 0x1F5A, 0x19BA, 0x0D41, 0x0088, ++ 0xF8E3, 0xF692, 0xFB8C, 0x0088, 0xFB8C, 0xF692, 0xFB8C, 0x0088, 0xFB8C, ++ 0xF692, 0xFB8C, 0x0088, 0xFD52, 0xF692, 0xEFDD, 0xE9E4, 0xE49E, 0xE002, ++ 0xDC07, 0xD8A5, 0xD5D3, 0xD388, 0xD1BC, 0xD065, 0xCF7B, 0xCEF5, 0xCECA, + }; + +diff --git a/assets/anims/anim_51.inc.c.rej b/assets/anims/anim_51.inc.c.rej +new file mode 100644 +index 0000000..58a5fc2 +--- /dev/null ++++ b/assets/anims/anim_51.inc.c.rej +@@ -0,0 +1,399 @@ ++diff a/assets/anims/anim_51.inc.c b/assets/anims/anim_51.inc.c (rejected hunks) ++@@ -1,9 +1,9 @@ ++ static const struct Animation anim_51[] = { ++- 1, ++- 189, ++- 0, ++- 0, ++- 0x0E, +++ 1, +++ 0, +++ 0, +++ 1, +++ 49, ++ ANIMINDEX_NUMPARTS(anim_51_indices), ++ anim_51_values, ++ anim_51_indices, ++@@ -12,91 +12,299 @@ static const struct Animation anim_51[] = { ++ ++ ++ static const u16 anim_51_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x01E7, ++- 0x000E, 0x01BD, 0x000E, 0x01CB, 0x000E, 0x01D9, ++- 0x000E, 0x0193, 0x000E, 0x01A1, 0x000E, 0x01AF, ++- 0x0001, 0x018F, 0x0001, 0x0190, 0x0001, 0x0191, ++- 0x000E, 0x003B, 0x000E, 0x0049, 0x000E, 0x0057, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x002D, ++- 0x000E, 0x0003, 0x000E, 0x0011, 0x000E, 0x001F, ++- 0x0001, 0x018B, 0x0001, 0x018C, 0x0001, 0x018D, ++- 0x000E, 0x009D, 0x000E, 0x00AB, 0x000E, 0x00B9, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x008F, ++- 0x000E, 0x0065, 0x000E, 0x0073, 0x000E, 0x0081, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x018E, ++- 0x000E, 0x0161, 0x000E, 0x016F, 0x000E, 0x017D, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x0153, ++- 0x000E, 0x0129, 0x000E, 0x0137, 0x000E, 0x0145, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0192, ++- 0x000E, 0x00FF, 0x000E, 0x010D, 0x000E, 0x011B, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000E, 0x00F1, ++- 0x000E, 0x00C7, 0x000E, 0x00D5, 0x000E, 0x00E3, +++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0017, +++ 0x0004, 0x0001, 0x001B, 0x0001, 0x001C, 0x0001, 0x001D, 0x0017, 0x001E, +++ 0x0032, 0x0035, 0x0032, 0x0067, 0x0032, 0x0099, 0x0032, 0x00CB, 0x0032, +++ 0x00FD, 0x0032, 0x012F, 0x0032, 0x0161, 0x0032, 0x0193, 0x0032, 0x01C5, +++ 0x0025, 0x01F7, 0x0025, 0x021C, 0x0025, 0x0241, 0x0032, 0x0266, 0x0032, +++ 0x0298, 0x0032, 0x02CA, 0x0032, 0x02FC, 0x0031, 0x032E, 0x0032, 0x035F, +++ 0x0017, 0x0391, 0x0017, 0x03A8, 0x0017, 0x03BF, 0x0031, 0x03D6, 0x0032, +++ 0x0407, 0x0032, 0x0439, 0x0032, 0x046B, 0x0032, 0x049D, 0x0032, 0x04CF, +++ 0x0025, 0x0501, 0x0025, 0x0526, 0x0025, 0x054B, 0x0014, 0x0570, 0x0017, +++ 0x0584, 0x0016, 0x059B, 0x0032, 0x05B1, 0x002B, 0x05E3, 0x002F, 0x060E, +++ 0x0031, 0x063D, 0x0030, 0x066E, 0x0032, 0x069E, 0x0032, 0x06D0, 0x0031, +++ 0x0702, 0x0032, 0x0733, 0x0032, 0x0765, 0x0032, 0x0797, 0x0032, 0x07C9, +++ 0x0032, 0x07FB, 0x0032, 0x082D, 0x0032, 0x085F, 0x0032, 0x0891, 0x0032, +++ 0x08C3, 0x0032, 0x08F5, 0x0032, 0x0927, 0x0032, 0x0959, 0x0032, 0x098B, ++ }; ++ ++ static const s16 anim_51_values[] = { ++- 0x0000, 0x00AA, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0007, 0x001A, 0x0035, 0x0054, 0x0072, 0x008D, 0x00A0, ++- 0x00A8, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF983, 0xF984, 0xF984, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED5E, 0xECE6, 0xEC3D, ++- 0xEB7B, 0xEAB9, 0xEA10, 0xE999, 0xE96B, 0xF385, 0xF22A, 0xEEEE, ++- 0xEB12, 0xE7D7, 0xE67B, 0xE533, 0xE1D0, 0xDD06, 0xD78A, 0xD20D, ++- 0xCD43, 0xC9E0, 0xC898, 0xD757, 0xD5F8, 0xD2B2, 0xCECA, 0xCB84, ++- 0xCA25, 0xCD31, 0xD538, 0xE092, 0xED96, 0xFA99, 0x05F2, 0x0DFA, ++- 0x1106, 0xEFC6, 0xED2E, 0xE700, 0xDFA0, 0xD972, 0xD6DA, 0xD787, ++- 0xD94F, 0xDBD3, 0xDEB6, 0xE199, 0xE41D, 0xE5E5, 0xE692, 0xCF2C, ++- 0xD401, 0xDF88, 0xED49, 0xF8D0, 0xFDA5, 0xFA7C, 0xF229, 0xE664, ++- 0xD8E6, 0xCB68, 0xBFA2, 0xB74F, 0xB427, 0x020B, 0x020B, 0x020B, ++- 0x020B, 0x020B, 0x020B, 0x01F5, 0x01B9, 0x0165, 0x0105, 0x00A5, ++- 0x0051, 0x0016, 0x0000, 0x03A9, 0x03A9, 0x03A9, 0x03A9, 0x03A9, ++- 0x03A9, 0x0381, 0x0317, 0x0280, 0x01D4, 0x0128, 0x0092, 0x0028, ++- 0x0000, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF578, 0xF521, ++- 0xF43B, 0xF2F6, 0xF182, 0xF00D, 0xEEC9, 0xEDE3, 0xED8C, 0xF3BE, ++- 0xF128, 0xEAFE, 0xE3A3, 0xDD79, 0xDAE3, 0xDA04, 0xD7B6, 0xD474, ++- 0xD0B9, 0xCCFD, 0xC9BB, 0xC76E, 0xC68E, 0x1AB9, 0x1E2D, 0x2669, ++- 0x303D, 0x3879, 0x3BED, 0x38D6, 0x30B1, 0x252E, 0x17FB, 0x0AC8, ++- 0xFF46, 0xF721, 0xF40A, 0x1465, 0x169A, 0x1BDF, 0x2228, 0x276D, ++- 0x29A2, 0x2926, 0x27E1, 0x2614, 0x2404, 0x21F4, 0x2028, 0x1EE2, ++- 0x1E67, 0xC825, 0xCCD7, 0xD80A, 0xE567, 0xF09A, 0xF54C, 0xF286, ++- 0xEB36, 0xE0DF, 0xD505, 0xC92A, 0xBED3, 0xB783, 0xB4BD, 0xFFC5, ++- 0xFFBF, 0xFFB0, 0xFFA0, 0xFF95, 0xFF94, 0xFF9F, 0xFFB1, 0xFFC7, ++- 0xFFDF, 0xFFF6, 0x0009, 0x0016, 0x001B, 0xFF39, 0xFF31, 0xFF23, ++- 0xFF1A, 0xFF25, 0xFF4F, 0xFF9F, 0x000D, 0x008D, 0x0112, 0x018F, ++- 0x01F8, 0x0241, 0x025B, 0xD5A9, 0xD6E5, 0xD9C7, 0xDD1C, 0xDFAC, ++- 0xE042, 0xDEBB, 0xDC0C, 0xD8A1, 0xD4E4, 0xD142, 0xCE24, 0xCBF7, ++- 0xCB25, 0x41BC, 0x3B93, 0x2D02, 0x1BE7, 0x0E1D, 0x0982, 0x0E7F, ++- 0x186D, 0x2591, 0x3432, 0x4294, 0x4EFD, 0x57B4, 0x5AFE, 0x0768, ++- 0x0737, 0x06B9, 0x0610, 0x055D, 0x04C0, 0x042B, 0x0380, 0x02CE, ++- 0x0220, 0x0183, 0x0103, 0x00AD, 0x008D, 0x0954, 0x087D, 0x0671, ++- 0x03E1, 0x0181, 0x0005, 0xFF59, 0xFEEB, 0xFEAF, 0xFE99, 0xFE9D, ++- 0xFEAE, 0xFEC2, 0xFECB, 0xA3E7, 0xA47F, 0xA5C2, 0xA6EA, 0xA72F, ++- 0xA5CB, 0xA26E, 0x9DAC, 0x9817, 0x9241, 0x8CB9, 0x8812, 0x84DE, ++- 0x83AC, 0x0000, 0xFFFF, 0xFFFB, 0xFFF8, 0xFFF9, 0x0000, 0x000F, ++- 0x0024, 0x003C, 0x0056, 0x006E, 0x0082, 0x0090, 0x0095, 0x0000, ++- 0x0003, 0x0009, 0x000D, 0x000C, 0x0000, 0xFFE7, 0xFFC4, 0xFF9C, ++- 0xFF72, 0xFF4A, 0xFF28, 0xFF11, 0xFF09, 0xBA5D, 0xBDB3, 0xC5BF, ++- 0xCF8C, 0xD825, 0xDC96, 0xDCF0, 0xDB95, 0xD908, 0xD5CD, 0xD265, ++- 0xCF54, 0xCD1C, 0xCC42, 0x4CBC, 0x45FF, 0x35FA, 0x22F8, 0x1345, ++- 0x0D2D, 0x10F9, 0x19A5, 0x2589, 0x32FC, 0x4056, 0x4BED, 0x5418, ++- 0x5730, 0xF894, 0xF924, 0xFA84, 0xFC3C, 0xFDD5, 0xFED6, 0xFF4B, ++- 0xFF98, 0xFFC3, 0xFFD4, 0xFFD4, 0xFFCB, 0xFFBF, 0xFFBA, 0xF606, ++- 0xF706, 0xF976, 0xFC7C, 0xFF3D, 0x00DF, 0x0174, 0x01AD, 0x01A0, ++- 0x0163, 0x010D, 0x00B3, 0x006E, 0x0051, 0x98E7, 0x9A74, 0x9E10, ++- 0xA22A, 0xA52F, 0xA590, 0xA313, 0x9EF3, 0x99CC, 0x9439, 0x8ED4, ++- 0x8A3A, 0x8705, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x7FFF, ++- 0x7FFF, 0x4171, 0xBF5F, 0x0081, 0x0081, 0x0082, 0x0081, 0x007E, ++- 0x0076, 0x0069, 0x0058, 0x0045, 0x0031, 0x001E, 0x000E, 0x0004, ++- 0x0000, 0x0214, 0x021B, 0x0228, 0x0233, 0x0230, 0x0216, 0x01E0, ++- 0x0195, 0x013D, 0x00E2, 0x008C, 0x0044, 0x0012, 0x0000, 0x035A, ++- 0x02CA, 0x01A0, 0x00A9, 0x00B3, 0x028A, 0x068D, 0x0C26, 0x12AD, ++- 0x197B, 0x1FE9, 0x2550, 0x2908, 0x2A6B, 0x0000, 0xFFFF, 0xFFFC, ++- 0xFFF7, 0xFFF4, 0xFFF3, 0xFFF3, 0xFFF5, 0xFFF7, 0xFFFA, 0xFFFC, ++- 0xFFFE, 0x0000, 0x0000, 0xFF53, 0xFF51, 0xFF4D, 0xFF4A, 0xFF4B, ++- 0xFF54, 0xFF65, 0xFF7E, 0xFF9A, 0xFFB7, 0xFFD3, 0xFFEB, 0xFFFB, ++- 0x0000, 0x0D24, 0x0D73, 0x0E34, 0x0F20, 0x0FF2, 0x1066, 0x107E, ++- 0x1073, 0x104D, 0x1019, 0x0FDE, 0x0FA8, 0x0F80, 0x0F71, 0x40A1, ++- 0x4036, 0x4048, 0x42D9, 0x49E7, 0x5772, 0x70F5, 0x8A78, 0xA3FB, ++- 0xBD7F, 0xD702, 0xF085, 0x0A08, 0x238B, +++ 0x0000, 0x00BF, 0x0000, 0x0000, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, +++ 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3F82, 0x3E6F, 0x3D5B, 0x3CDE, +++ 0x0000, 0xFFFF, 0x0000, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, +++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, +++ 0x3D7D, 0x3D7D, 0x3D7D, 0x3D7D, 0x3CD0, 0x3B53, 0x39D6, 0x3929, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFF5, 0xFFDE, 0xFFC2, 0xFFAC, 0xFFA2, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, +++ 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, 0xFFA6, 0xFFAC, 0xFFA6, 0xFFA0, +++ 0xFFA2, 0xFFA5, 0xFFAB, 0xFFB2, 0xFFBA, 0xFFC3, 0xFFCC, 0xFFD5, 0xFFDD, +++ 0xFFE4, 0xFFE9, 0xFFED, 0xFFEE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFF96, 0xFF4E, 0xFF2D, +++ 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, +++ 0xFF46, 0xFF3A, 0xFF2D, 0xFF3A, 0xFF46, 0xFF41, 0xFF33, 0xFF1E, 0xFF03, +++ 0xFEE4, 0xFEC2, 0xFE9F, 0xFE7E, 0xFE5F, 0xFE43, 0xFE2E, 0xFE20, 0xFE1B, +++ 0x0000, 0x0006, 0x0015, 0x002E, 0x004E, 0x0074, 0x00A0, 0x00D0, 0x0102, +++ 0x0135, 0x0168, 0x019A, 0x01C9, 0x01F5, 0x021C, 0x023C, 0x0254, 0x0264, +++ 0x026A, 0x00DD, 0xFD3E, 0xF919, 0xF5FA, 0xF4C0, 0xF493, 0xF547, 0xF5FA, +++ 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, 0xF493, 0xF547, 0xF5FA, 0xF547, +++ 0xF493, 0xF4D7, 0xF595, 0xF6B6, 0xF824, 0xF9C9, 0xFB8F, 0xFD61, 0xFF27, +++ 0x00CD, 0x023B, 0x035C, 0x0419, 0x045E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFF6, 0xFFDE, 0xFFB5, +++ 0xFF81, 0xFF4A, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF59, 0xFF81, +++ 0xFF59, 0xFF30, 0xFF59, 0xFF81, 0xFF59, 0xFF30, 0xFF33, 0xFF3A, 0xFF46, +++ 0xFF54, 0xFF64, 0xFF76, 0xFF88, 0xFF9A, 0xFFAA, 0xFFB8, 0xFFC4, 0xFFCB, +++ 0xFFCE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0x0000, 0x0006, 0x001C, 0x0045, 0x0083, 0x00CC, 0x00F0, 0x00BA, +++ 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, 0x00BA, 0x00F0, 0x00BA, 0x0083, +++ 0x00BA, 0x00F0, 0x00EC, 0x00E0, 0x00CE, 0x00B6, 0x009B, 0x007E, 0x0061, +++ 0x0044, 0x0029, 0x0012, 0xFFFE, 0xFFF2, 0xFFEE, 0x2081, 0x2091, 0x20BC, +++ 0x20FB, 0x2146, 0x2194, 0x21DF, 0x221E, 0x2249, 0x2259, 0x2259, 0x2259, +++ 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x2259, 0x21DB, 0x1E64, 0x15A3, +++ 0x0A36, 0x0088, 0xFBDC, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFDB2, +++ 0x0088, 0xFDB2, 0xFADC, 0xFDB2, 0x0088, 0xFDB2, 0xFADC, 0xFB13, 0xFBAA, +++ 0xFC92, 0xFDB6, 0xFF08, 0x0074, 0x01E9, 0x0354, 0x04A5, 0x05CA, 0x06B1, +++ 0x0749, 0x077F, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, +++ 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, 0xFDA3, +++ 0xFDA3, 0xFDA3, 0xFE16, 0x0079, 0x058F, 0x0AF2, 0x0D73, 0x0D73, 0x0D73, +++ 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, 0x0D73, +++ 0x0D73, 0x0D73, 0x0D73, 0x0DB2, 0x0E62, 0x0F6E, 0x10C1, 0x1248, 0x13EE, +++ 0x159D, 0x1743, 0x18C9, 0x1A1D, 0x1B29, 0x1BD8, 0x1C17, 0xAE9E, 0xAE9E, +++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, +++ 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAE9E, 0xAA8E, 0xA67F, +++ 0xB684, 0xD443, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, +++ 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE447, 0xE45E, +++ 0xE49C, 0xE4FA, 0xE572, 0xE5FD, 0xE692, 0xE72A, 0xE7BF, 0xE849, 0xE8C1, +++ 0xE920, 0xE95E, 0xE975, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, +++ 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, 0xC519, +++ 0xC519, 0xC519, 0xC519, 0xC4B5, 0xC28D, 0xBDE4, 0xB8F0, 0xB6A2, 0xB6A2, +++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, +++ 0xB6A2, 0xB6A2, 0xB6A2, 0xB6A2, 0xB679, 0xB605, 0xB556, 0xB477, 0xB376, +++ 0xB262, 0xB146, 0xB032, 0xAF31, 0xAE52, 0xADA2, 0xAD2F, 0xAD06, 0xFFFF, +++ 0xFFF2, 0xFFD0, 0xFF9F, 0xFF65, 0xFF27, 0xFEED, 0xFEBC, 0xFE9A, 0xFE8D, +++ 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xFE8D, 0xF73B, +++ 0xEF76, 0xEF08, 0xEEFF, 0xEE91, 0xECE5, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, +++ 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, 0xED1F, 0xEE91, 0xED1F, 0xEBAD, +++ 0xE029, 0xDFC7, 0xDEC1, 0xDD47, 0xDB86, 0xD9AE, 0xD7ED, 0xD672, 0xD56D, +++ 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, 0xD50B, +++ 0xD6CC, 0xDD3F, 0xE8FA, 0xF5C3, 0xFE2F, 0x00C5, 0x0123, 0xFFA9, 0xFE2F, +++ 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, 0x0123, 0xFFA9, 0xFE2F, 0xFFA9, +++ 0x0123, 0x0468, 0x0478, 0x04A1, 0x04DD, 0x0524, 0x056F, 0x05B6, 0x05F2, +++ 0x061C, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, 0x062B, +++ 0x062B, 0x0D45, 0x1460, 0x0C5A, 0xFD72, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, +++ 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, 0xF5AB, 0xF5EA, 0xF5AB, 0xF56C, +++ 0xF5AB, 0xF5EA, 0xF7D3, 0xF7DB, 0xF7F0, 0xF80E, 0xF831, 0xF857, 0xF87A, +++ 0xF898, 0xF8AD, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, 0xF8B5, +++ 0xF8B5, 0xF8B5, 0xF996, 0xFFC0, 0x0F3F, 0x2278, 0x303E, 0x34E7, 0x3592, +++ 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, 0x303E, 0x32E8, 0x3592, 0x32E8, +++ 0x303E, 0x32E8, 0x3592, 0x350B, 0x3392, 0x3155, 0x2E7E, 0x2B3A, 0x27B4, +++ 0x2418, 0x2092, 0x1D4E, 0x1A77, 0x183A, 0x16C2, 0x163B, 0xF504, 0xF4E5, +++ 0xF492, 0xF419, 0xF38A, 0xF2F4, 0xF266, 0xF1ED, 0xF19A, 0xF17B, 0xF17B, +++ 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF17B, 0xF166, 0xF0D4, +++ 0xE9C6, 0xDDB4, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD82A, 0xD906, +++ 0xD82A, 0xD74F, 0xD82A, 0xD906, 0xD82A, 0xD74F, 0xD801, 0xD906, 0xD99F, +++ 0xDA21, 0xDA8D, 0xDAE6, 0xDB2C, 0xDB64, 0xDB8D, 0xDBAB, 0xDBBF, 0xDBCB, +++ 0xDBD1, 0xDBD3, 0xDBD4, 0xF662, 0xF662, 0xF663, 0xF663, 0xF664, 0xF664, +++ 0xF665, 0xF665, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, 0xF666, +++ 0xF666, 0xF666, 0xF666, 0xF5DD, 0xF220, 0xE88A, 0xDBEE, 0xD149, 0xCC47, +++ 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCE46, 0xD149, 0xCE46, 0xCB43, +++ 0xCE46, 0xD149, 0xCE46, 0xCB43, 0xCBC6, 0xCD32, 0xCF5D, 0xD21D, 0xD546, +++ 0xD8B0, 0xDC2E, 0xDF97, 0xE2C1, 0xE581, 0xE7AC, 0xE918, 0xE99B, 0xEF0B, +++ 0xEF2F, 0xEF92, 0xF021, 0xF0CA, 0xF17C, 0xF225, 0xF2B4, 0xF317, 0xF33C, +++ 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF33C, 0xF34A, +++ 0xF3AB, 0xF4AB, 0xF614, 0xF77A, 0xF87B, 0xF8DB, 0xF82B, 0xF77A, 0xF82B, +++ 0xF8DB, 0xF82B, 0xF77A, 0xF82B, 0xF8DB, 0xF82B, 0xF77A, 0xF7E5, 0xF8DB, +++ 0xF9FC, 0xFB2E, 0xFC6B, 0xFDAC, 0xFEE9, 0x001D, 0x013E, 0x0246, 0x032E, +++ 0x03EF, 0x0481, 0x04DE, 0x04FF, 0xFB82, 0xFB38, 0xFA6F, 0xF94D, 0xF7F5, +++ 0xF68B, 0xF533, 0xF411, 0xF348, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, +++ 0xF2FD, 0xF2FD, 0xF2FD, 0xF2FD, 0xF2E4, 0xF233, 0xF06D, 0xEE09, 0xEBDC, +++ 0xEA93, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, 0xEA2E, 0xEB05, 0xEBDC, 0xEB05, +++ 0xEA2E, 0xEB05, 0xEBDC, 0xEB1C, 0xEA2E, 0xE9D8, 0xE98F, 0xE952, 0xE920, +++ 0xE8F8, 0xE8D9, 0xE8C2, 0xE8B1, 0xE8A6, 0xE89F, 0xE89B, 0xE89A, 0xF92D, +++ 0xF916, 0xF8D8, 0xF87F, 0xF815, 0xF7A5, 0xF73B, 0xF6E2, 0xF6A4, 0xF68D, +++ 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF68D, 0xF66D, +++ 0xF58D, 0xF347, 0xF01F, 0xED17, 0xEB0E, 0xEA56, 0xEBB7, 0xED17, 0xEBB7, +++ 0xEA56, 0xEBB7, 0xED17, 0xEBB7, 0xEA56, 0xEBB7, 0xED17, 0xEC34, 0xEA56, +++ 0xE877, 0xE6C9, 0xE54A, 0xE3F8, 0xE2D1, 0xE1D4, 0xE0FE, 0xE04E, 0xDFC2, +++ 0xDF58, 0xDF0F, 0xDEE4, 0xDED6, 0xFFFE, 0x0003, 0x000E, 0x001E, 0x0031, +++ 0x0045, 0x0059, 0x0069, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, +++ 0x0078, 0x0078, 0x0078, 0x0078, 0x009E, 0x01A7, 0x0418, 0x06C7, 0x080A, +++ 0x0001, 0x007A, 0x01BE, 0x0393, 0x05C0, 0x0809, 0x0A35, 0x0C0B, 0x0D4F, +++ 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, 0x0DC8, +++ 0x0CCC, 0x05E7, 0xF59C, 0xE3C0, 0xDB58, 0xC170, 0xC171, 0xC173, 0xC176, +++ 0xC179, 0xC17C, 0xC180, 0xC182, 0xC184, 0xC185, 0xC185, 0xC185, 0xC185, +++ 0xC185, 0xC185, 0xC185, 0xC185, 0xC185, 0xC12B, 0xBEB7, 0xB8EA, 0xB28E, +++ 0xAF90, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, +++ 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, 0xFCE7, +++ 0xFCE7, 0xFD58, 0x006D, 0x0AA8, 0x1A78, 0x2961, 0xB22F, 0xB4D8, 0x2F1D, +++ 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, 0x2F1D, 0xB4D8, 0x2F1D, 0x2961, +++ 0x2EDE, 0xB4D8, 0xB5C1, 0xB686, 0xB72A, 0xB7B1, 0xB81D, 0xB871, 0xB8B0, +++ 0xB8DD, 0xB8FB, 0xB90E, 0xB917, 0xB91B, 0x73C6, 0x73C6, 0x73C6, 0x73C6, +++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, +++ 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x73C6, 0x733A, 0x6FCF, 0x67E6, 0x5E12, +++ 0x55EF, 0x2DDF, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x53A5, 0x55EF, +++ 0x53A5, 0x2EA3, 0x53A5, 0x55EF, 0x53A5, 0x2EA3, 0x2E93, 0x2E65, 0x2E1E, +++ 0x2DC5, 0x2D5F, 0x2CF0, 0x2C7F, 0x2C10, 0x2BAA, 0x2B51, 0x2B0A, 0x2ADC, +++ 0x2ACC, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, +++ 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, 0xFE97, +++ 0xFE97, 0xFD2B, 0xFBBF, 0x08C8, 0x22E8, 0x36AF, 0xBC96, 0xBD6E, 0x3A0E, +++ 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, 0x3A0E, 0xBD6E, 0x3A0E, 0x36AF, +++ 0x397A, 0xBD6E, 0xBF91, 0xC161, 0xC2E3, 0xC41F, 0xC51D, 0xC5E2, 0xC676, +++ 0xC6E1, 0xC728, 0xC753, 0xC769, 0xC771, 0xC772, 0x09D1, 0x09C3, 0x099E, +++ 0x0969, 0x092A, 0x08E8, 0x08A9, 0x0874, 0x084F, 0x0842, 0x0842, 0x0842, +++ 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x0842, 0x07D8, 0x04F7, 0xFD25, +++ 0xF250, 0xE88F, 0xE318, 0xE18D, 0xE50E, 0xE88F, 0xE50E, 0xE18D, 0xE50E, +++ 0xE88F, 0xE50E, 0xE18D, 0xE50E, 0xE88F, 0xE564, 0xE18D, 0xE04F, 0xDF42, +++ 0xDE62, 0xDDAA, 0xDD17, 0xDCA5, 0xDC4F, 0xDC11, 0xDBE8, 0xDBCF, 0xDBC2, +++ 0xDBBD, 0xDBBC, 0x0214, 0x024C, 0x02E3, 0x03BD, 0x04C0, 0x05D0, 0x06D3, +++ 0x07AD, 0x0844, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, 0x087C, +++ 0x087C, 0x087C, 0x0E32, 0x195D, 0x2282, 0x2811, 0x29F1, 0x29E7, 0x29DD, +++ 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, 0x29F1, 0x29E7, 0x29DD, 0x29E7, +++ 0x29F1, 0x29EE, 0x29DD, 0x298F, 0x28E8, 0x27FA, 0x26D4, 0x2587, 0x2424, +++ 0x22BB, 0x215C, 0x2018, 0x1F00, 0x1E23, 0x1D93, 0x1D5F, 0xF623, 0xF626, +++ 0xF62D, 0xF637, 0xF643, 0xF64F, 0xF65B, 0xF666, 0xF66C, 0xF66F, 0xF66F, +++ 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF66F, 0xF7C5, 0xF91A, +++ 0xF2FE, 0xE60F, 0xDA65, 0xD589, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, +++ 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD79E, 0xDA65, 0xD79E, 0xD4D7, 0xD507, +++ 0xD58E, 0xD65C, 0xD760, 0xD88C, 0xD9CF, 0xDB1A, 0xDC5D, 0xDD89, 0xDE8D, +++ 0xDF5B, 0xDFE2, 0xE012, 0x10DE, 0x1076, 0x0F62, 0x0DD1, 0x0BF6, 0x0A02, +++ 0x0827, 0x0697, 0x0582, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, +++ 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x051B, 0x03F0, +++ 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x03F0, 0x051B, 0x03F0, 0x02C6, +++ 0x03F0, 0x051B, 0x03F0, 0x02C6, 0x04B1, 0x0560, 0x0735, 0x09DC, 0x0D01, +++ 0x1051, 0x1376, 0x161D, 0x17F2, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, +++ 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, 0x18A1, +++ 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0x199D, 0x18A1, 0x199D, +++ 0x1A9A, 0x199D, 0x18A1, 0x199D, 0x1A9A, 0xF95F, 0xF916, 0xF853, 0xF737, +++ 0xF5E8, 0xF487, 0xF337, 0xF21C, 0xF158, 0xF10F, 0xF10F, 0xF10F, 0xF10F, +++ 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, 0xF10F, +++ 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xED7A, 0xF10F, +++ 0xED7A, 0xE9E4, 0xED7A, 0xF10F, 0xED7A, 0xE9E4, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0051, 0x003F, 0x001C, 0xFFFE, 0xFFF4, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, +++ 0xFFF2, 0xFFF8, 0xFFFE, 0xFFF8, 0xFFF2, 0xFFF8, 0xFFFE, 0xFFFC, 0xFFF2, +++ 0xFFC7, 0xFF6D, 0xFEEF, 0xFE53, 0xFDA3, 0xFCE8, 0xFC2A, 0xFB71, 0xFAC7, +++ 0xFA34, 0xF9C0, 0xF974, 0xF959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x001D, 0x001C, 0x0015, 0x0001, +++ 0xFF55, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, +++ 0xFEB8, 0xFF5C, 0x0001, 0xFF5C, 0xFEB8, 0xFEB7, 0xFEB6, 0xFEB6, 0xFEB5, +++ 0xFEB5, 0xFEB4, 0x217F, 0x21B4, 0x224A, 0x2336, 0x246C, 0x25DE, 0x2781, +++ 0x2949, 0x2B29, 0x2D15, 0x2F01, 0x30E2, 0x32A9, 0x344C, 0x35BF, 0x36F4, +++ 0x37E0, 0x3876, 0x38AB, 0x26D2, 0x3B1B, 0x62F8, 0x7EF0, 0x85AA, 0x86A0, +++ 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, 0x7EF0, 0x82C8, 0x86A0, 0x82C8, +++ 0x7EF0, 0x82C5, 0x86A0, 0x86AB, 0x86B5, 0x86BD, 0x86C3, 0x86C9, 0x86CD, +++ 0x86D0, 0x86D2, 0x86D4, 0x86D5, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, +++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, +++ 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF79E, +++ 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, 0xF7B1, 0xF7A8, 0xF79E, 0xF7A8, +++ 0xF7B1, 0xF7A8, 0xF79E, 0xF7A4, 0xF7B1, 0xF7BD, 0xF7C9, 0xF7D3, 0xF7DC, +++ 0xF7E4, 0xF7EB, 0xF7F1, 0xF7F6, 0xF7FA, 0xF7FD, 0xF7FF, 0xF800, 0x0092, +++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, +++ 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, +++ 0x0092, 0x0092, 0x0092, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00AB, +++ 0x00C4, 0x00AB, 0x0092, 0x00AB, 0x00C4, 0x00AB, 0x0092, 0x00A8, 0x00C4, +++ 0x00CE, 0x00D7, 0x00DE, 0x00E4, 0x00E9, 0x00ED, 0x00F0, 0x00F2, 0x00F3, +++ 0x00F4, 0x00F5, 0x3F9E, 0x3F9E, 0x3F9D, 0x3F9C, 0x3F9A, 0x3F97, 0x3F92, +++ 0x3F8B, 0x3F82, 0x3F76, 0x3F67, 0x3F55, 0x3F3F, 0x3F26, 0x3F08, 0x3EE5, +++ 0x3EBE, 0x3E91, 0x3E5F, 0x37C4, 0x2981, 0x1B4C, 0x14D9, 0x1634, 0x178F, +++ 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, 0x14D9, 0x1634, 0x178F, 0x1634, +++ 0x14D9, 0x15F2, 0x178F, 0x1884, 0x1953, 0x19FF, 0x1A8D, 0x1AFE, 0x1B56, +++ 0x1B98, 0x1BC7, 0x1BE7, 0x1BFB, 0x1C04, 0x1C08, 0x1C09, 0xF7D1, 0xF7ED, +++ 0xF83E, 0xF8BE, 0xF965, 0xFA2D, 0xFB0F, 0xFC05, 0xFD09, 0xFE13, 0xFF1D, +++ 0x0021, 0x0117, 0x01F9, 0x02C1, 0x0368, 0x03E8, 0x0439, 0x0456, 0x01FD, +++ 0x029C, 0x03C2, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0445, 0x042A, +++ 0x0445, 0x0460, 0x0445, 0x042A, 0x0445, 0x0460, 0x0457, 0x042A, 0x03C3, +++ 0x0326, 0x025D, 0x0174, 0x0076, 0xFF6C, 0xFE64, 0xFD66, 0xFC7E, 0xFBB7, +++ 0xFB1C, 0xFAB6, 0xFA92, 0x08F7, 0x08F7, 0x08F4, 0x08EC, 0x08DD, 0x08C5, +++ 0x08A0, 0x086C, 0x0828, 0x07D0, 0x0762, 0x06DC, 0x063B, 0x057D, 0x049F, +++ 0x039F, 0x027B, 0x012F, 0xFFBA, 0xF95E, 0xFA68, 0xFC9D, 0xFEA3, 0xFF80, +++ 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, 0xFF22, 0xFEA3, 0xFF22, 0xFFA0, +++ 0xFF22, 0xFEA3, 0xFF16, 0xFFA0, 0xFFC9, 0xFFEB, 0x0009, 0x0021, 0x0034, +++ 0x0043, 0x004E, 0x0056, 0x005B, 0x005E, 0x0060, 0x0061, 0xBE26, 0xBE28, +++ 0xBE3A, 0xBE6B, 0xBECB, 0xBF69, 0xC054, 0xC19C, 0xC351, 0xC582, 0xC83F, +++ 0xCB97, 0xCF99, 0xD455, 0xD9DC, 0xE03B, 0xE783, 0xEFC3, 0xF90B, 0x1CC6, +++ 0x16F9, 0x0A64, 0xFE41, 0xF81C, 0xF6B7, 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, +++ 0xFA7C, 0xFE41, 0xFA7C, 0xF6B7, 0xFA7C, 0xFE41, 0xFBE9, 0xF6B7, 0xF0F7, +++ 0xEB32, 0xE57D, 0xDFED, 0xDA98, 0xD593, 0xD0F4, 0xCCD0, 0xC93C, 0xC64F, +++ 0xC41D, 0xC2BC, 0xC241, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFE7, 0xFFA6, 0xFF43, 0xFEC6, 0xFE35, +++ 0xFD99, 0xFCF9, 0xFC5E, 0xFBCD, 0xFB4F, 0xFAEC, 0xFAAB, 0xFA94, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0xFFDC, 0xFF77, 0xFEDE, 0xFE1D, 0xFD3E, 0xFC4D, 0xFB57, 0xFA66, 0xF987, +++ 0xF8C6, 0xF82D, 0xF7C8, 0xF7A4, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, +++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, +++ 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE73A, 0xE705, 0xE68E, 0xE618, 0xE5E3, +++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, +++ 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE5E3, 0xE56F, 0xE42E, 0xE243, 0xDFD6, +++ 0xDD0B, 0xDA08, 0xD6F3, 0xD3F0, 0xD125, 0xCEB8, 0xCCCE, 0xCB8C, 0xCB19, +++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, +++ 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, 0xFCCC, +++ 0xFCCC, 0xFD43, 0xFDBB, 0xFE0F, 0xFE77, 0xFF09, 0xFF5A, 0xFEE8, 0xFE77, +++ 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, 0xFF5A, 0xFEE8, 0xFE77, 0xFEE8, +++ 0xFF5A, 0xFF57, 0xFF4F, 0xFF44, 0xFF35, 0xFF24, 0xFF12, 0xFF00, 0xFEEE, +++ 0xFEDD, 0xFECE, 0xFEC3, 0xFEBB, 0xFEB9, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, +++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, +++ 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xF9A2, 0xFA42, 0xFBA6, 0xFD62, +++ 0xFF23, 0x008D, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0023, 0xFF23, +++ 0x0023, 0x0123, 0x0023, 0xFF23, 0x0023, 0x0123, 0x0119, 0x00FE, 0x00D4, +++ 0x009F, 0x0062, 0x0021, 0xFFDD, 0xFF9B, 0xFF5E, 0xFF2A, 0xFF00, 0xFEE5, +++ 0xFEDB, 0x398E, 0x39C5, 0x3A61, 0x3B57, 0x3C98, 0x3E18, 0x3FCC, 0x41A5, +++ 0x4398, 0x4597, 0x4797, 0x4989, 0x4B63, 0x4D16, 0x4E97, 0x4FD8, 0x50CD, +++ 0x5169, 0x51A0, 0x43AB, 0x5D15, 0x8DE0, 0xACDC, 0xB1BC, 0xB26E, 0xAFA5, +++ 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, 0xAFA5, 0xB26E, 0xAFA5, 0xACDC, +++ 0xAFA5, 0xB26E, 0xB236, 0xB199, 0xB0AB, 0xAF7C, 0xAE21, 0xACA9, 0xAB29, +++ 0xA9B2, 0xA856, 0xA727, 0xA639, 0xA59C, 0xA564, 0xFFC9, 0xFFC9, 0xFFCA, +++ 0xFFCB, 0xFFCC, 0xFFCE, 0xFFD0, 0xFFD2, 0xFFD4, 0xFFD6, 0xFFD9, 0xFFDB, +++ 0xFFDD, 0xFFDF, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE4, 0xFFDC, 0xFFCB, +++ 0xFFBB, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, +++ 0xFFB3, 0xFFC1, 0xFFD0, 0xFFC1, 0xFFB3, 0xFFBB, 0xFFD0, 0xFFEB, 0x000A, +++ 0x002C, 0x004F, 0x0074, 0x0097, 0x00BA, 0x00DA, 0x00F7, 0x010F, 0x0121, +++ 0x012D, 0x0131, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9B, 0xFF9C, 0xFF9D, +++ 0xFF9E, 0xFF9F, 0xFFA1, 0xFFA3, 0xFFA6, 0xFFA9, 0xFFAD, 0xFFB2, 0xFFB7, +++ 0xFFBD, 0xFFC4, 0xFFCB, 0x00ED, 0x035D, 0x05CD, 0x06EB, 0x06EE, 0x06EE, +++ 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, 0x06EB, 0x06ED, 0x06EE, 0x06ED, +++ 0x06EB, 0x06EC, 0x06EE, 0x06FC, 0x0719, 0x0743, 0x0777, 0x07B1, 0x07F0, +++ 0x0830, 0x086E, 0x08A7, 0x08D9, 0x0900, 0x0919, 0x0922, 0x427D, 0x427D, +++ 0x427C, 0x427B, 0x4279, 0x4276, 0x4271, 0x426A, 0x4261, 0x4256, 0x4247, +++ 0x4235, 0x4220, 0x4206, 0x41E9, 0x41C7, 0x41A0, 0x4174, 0x4143, 0x3A86, +++ 0x2BF7, 0x1D75, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x17E3, 0x18E6, +++ 0x17E3, 0x16E0, 0x17E3, 0x18E6, 0x17E3, 0x16E0, 0x1780, 0x18E6, 0x1A77, +++ 0x1C10, 0x1DA9, 0x1F3C, 0x20C1, 0x2232, 0x2388, 0x24BC, 0x25C8, 0x26A4, +++ 0x274A, 0x27B2, 0x27D6, 0x02A5, 0x02A7, 0x02AE, 0x02B8, 0x02C6, 0x02D6, +++ 0x02E9, 0x02FD, 0x0312, 0x0327, 0x033D, 0x0352, 0x0366, 0x0379, 0x0389, +++ 0x0396, 0x03A1, 0x03A7, 0x03AA, 0xFF8D, 0x003F, 0x01C4, 0x034B, 0x042B, +++ 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, 0x03DB, 0x034B, 0x03DB, 0x046B, +++ 0x03DB, 0x034B, 0x03A9, 0x046B, 0x0525, 0x05C2, 0x0646, 0x06B2, 0x0709, +++ 0x074D, 0x0780, 0x07A5, 0x07BF, 0x07CE, 0x07D6, 0x07D9, 0x07DA, 0x0390, +++ 0x0390, 0x038E, 0x0389, 0x0380, 0x0370, 0x0358, 0x0337, 0x030B, 0x02D3, +++ 0x028D, 0x0237, 0x01D0, 0x0157, 0x00C9, 0x0026, 0xFF6A, 0xFE96, 0xFDA8, +++ 0xF9CD, 0xFA8A, 0xFBF2, 0xFCCF, 0xFCEA, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, +++ 0xFCEE, 0xFCDE, 0xFCCF, 0xFCDE, 0xFCEE, 0xFCDE, 0xFCCF, 0xFCD5, 0xFCEE, +++ 0xFD20, 0xFD6A, 0xFDC7, 0xFE32, 0xFEA5, 0xFF1D, 0xFF95, 0x0008, 0x0070, +++ 0x00C9, 0x010F, 0x013C, 0x014C, 0xCAC9, 0xCACB, 0xCADA, 0xCB02, 0xCB51, +++ 0xCBD3, 0xCC94, 0xCDA2, 0xCF0A, 0xD0D8, 0xD318, 0xD5D9, 0xD925, 0xDD0B, +++ 0xE197, 0xE6D6, 0xECD4, 0xF39E, 0xFB42, 0x1F5A, 0x19BA, 0x0D41, 0x0088, +++ 0xF8E3, 0xF692, 0xFB8C, 0x0088, 0xFB8C, 0xF692, 0xFB8C, 0x0088, 0xFB8C, +++ 0xF692, 0xFB8C, 0x0088, 0xFD52, 0xF692, 0xEFDD, 0xE9E4, 0xE49E, 0xE002, +++ 0xDC07, 0xD8A5, 0xD5D3, 0xD388, 0xD1BC, 0xD065, 0xCF7B, 0xCEF5, 0xCECA, ++ }; ++ +diff --git a/assets/anims/anim_54.inc.c b/assets/anims/anim_54.inc.c +index 701d3fc..d4cda20 100644 +--- a/assets/anims/anim_54.inc.c ++++ b/assets/anims/anim_54.inc.c +@@ -1,9 +1,9 @@ + static const struct Animation anim_54[] = { +- 1, +- 189, +- 0, +- 0, +- 0x1E, ++ 0, ++ 0, ++ 0, ++ 1, ++ 71, + ANIMINDEX_NUMPARTS(anim_54_indices), + anim_54_values, + anim_54_indices, +@@ -12,111 +12,163 @@ static const struct Animation anim_54[] = { + + + static const u16 anim_54_indices[] = { +- 0x0001, 0x0000, 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F, 0x0001, 0x0000, +- 0x0001, 0x028E, 0x0001, 0x028F, 0x0001, 0x0290, +- 0x001E, 0x0234, 0x001E, 0x0252, 0x001E, 0x0270, +- 0x001E, 0x01DA, 0x001E, 0x01F8, 0x001E, 0x0216, +- 0x0001, 0x01D6, 0x0001, 0x01D7, 0x0001, 0x01D8, +- 0x0001, 0x0024, 0x0001, 0x0025, 0x0001, 0x0026, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023, +- 0x0001, 0x0020, 0x0001, 0x0021, 0x0001, 0x0022, +- 0x0001, 0x01D2, 0x0001, 0x01D3, 0x0001, 0x01D4, +- 0x0001, 0x002B, 0x0001, 0x002C, 0x0001, 0x002D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x002A, +- 0x0001, 0x0027, 0x0001, 0x0028, 0x0001, 0x0029, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D5, +- 0x001E, 0x0178, 0x001E, 0x0196, 0x001E, 0x01B4, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x015A, +- 0x001E, 0x0100, 0x001E, 0x011E, 0x001E, 0x013C, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D9, +- 0x001E, 0x00A6, 0x001E, 0x00C4, 0x001E, 0x00E2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x0088, +- 0x001E, 0x002E, 0x001E, 0x004C, 0x001E, 0x006A, ++0x0001, 0x0000, 0x0046, 0x0001, 0x0001, 0x0047, 0x0001, 0x0048, 0x0001, ++ 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, ++ 0x0001, 0x004E, 0x0001, 0x004F, 0x0048, 0x0050, 0x0001, 0x0098, 0x0001, ++ 0x0099, 0x0048, 0x009A, 0x0001, 0x00E2, 0x0001, 0x00E3, 0x0001, 0x00E4, ++ 0x0048, 0x00E5, 0x0048, 0x012D, 0x0048, 0x0175, 0x0001, 0x01BD, 0x0001, ++ 0x01BE, 0x0001, 0x01BF, 0x0001, 0x01C0, 0x0001, 0x01C1, 0x0001, 0x01C2, ++ 0x0001, 0x01C3, 0x0001, 0x01C4, 0x0001, 0x01C5, 0x0048, 0x01C6, 0x0048, ++ 0x020E, 0x0048, 0x0256, 0x0001, 0x029E, 0x0001, 0x029F, 0x0001, 0x02A0, ++ 0x0001, 0x02A1, 0x0001, 0x02A2, 0x0001, 0x02A3, 0x0001, 0x02A4, 0x0001, ++ 0x02A5, 0x0001, 0x02A6, 0x0001, 0x02A7, 0x0001, 0x02A8, 0x0048, 0x02A9, ++ 0x0001, 0x02F1, 0x0001, 0x02F2, 0x0001, 0x02F3, 0x0048, 0x02F4, 0x0048, ++ 0x033C, 0x0048, 0x0384, 0x0001, 0x03CC, 0x0001, 0x03CD, 0x0001, 0x03CE, ++ 0x0001, 0x03CF, 0x0001, 0x03D0, 0x0048, 0x03D1, 0x0001, 0x0419, 0x0001, ++ 0x041A, 0x0001, 0x041B, 0x0048, 0x041C, 0x0047, 0x0464, 0x0048, 0x04AB, + }; + + static const s16 anim_54_values[] = { +- 0x0000, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A7, 0x00A4, 0x00A2, +- 0x009F, 0x009C, 0x0099, 0x0097, 0x0095, 0x0093, 0x0092, 0x0092, +- 0x0092, 0x0093, 0x0094, 0x0096, 0x0099, 0x009B, 0x009E, 0x00A0, +- 0x00A3, 0x00A5, 0x00A7, 0x00A9, 0x00AB, 0x00AC, 0x00AC, 0x3FFF, +- 0xE441, 0xF273, 0xFBD8, 0xE392, 0xD5A2, 0xEA6D, 0xE897, 0x13E1, +- 0x08D0, 0xF6A5, 0xE501, 0x87F6, 0x5359, 0x4901, 0x26DE, 0x26DA, +- 0x26D0, 0x26C0, 0x26AB, 0x2693, 0x2679, 0x265E, 0x2643, 0x2629, +- 0x2611, 0x25FC, 0x25EC, 0x25E2, 0x25DE, 0x25E1, 0x25EA, 0x25F8, +- 0x260B, 0x2620, 0x2638, 0x2651, 0x266B, 0x2684, 0x269C, 0x26B1, +- 0x26C4, 0x26D2, 0x26DB, 0x26DE, 0x0E76, 0x0E82, 0x0EA5, 0x0EDA, +- 0x0F1D, 0x0F6C, 0x0FC2, 0x101C, 0x1076, 0x10CC, 0x111A, 0x115E, +- 0x1193, 0x11B5, 0x11C2, 0x11B7, 0x1199, 0x116A, 0x112E, 0x10E7, +- 0x1099, 0x1046, 0x0FF2, 0x0F9F, 0x0F51, 0x0F0A, 0x0ECE, 0x0E9F, +- 0x0E81, 0x0E76, 0xC8E8, 0xC8DE, 0xC8C3, 0xC899, 0xC864, 0xC826, +- 0xC7E2, 0xC79B, 0xC754, 0xC711, 0xC6D3, 0xC69D, 0xC674, 0xC658, +- 0xC64F, 0xC657, 0xC66F, 0xC694, 0xC6C3, 0xC6FB, 0xC739, 0xC77A, +- 0xC7BC, 0xC7FE, 0xC83B, 0xC873, 0xC8A2, 0xC8C7, 0xC8DF, 0xC8E8, +- 0x28E1, 0x2947, 0x2A64, 0x2C1A, 0x2E4B, 0x30D7, 0x33A0, 0x3687, +- 0x396F, 0x3C38, 0x3EC4, 0x40F4, 0x42AA, 0x43C8, 0x442E, 0x43D4, +- 0x42DA, 0x4157, 0x3F64, 0x3D1A, 0x3A92, 0x37E4, 0x352B, 0x327D, +- 0x2FF5, 0x2DAB, 0x2BB8, 0x2A35, 0x293A, 0x28E1, 0x160C, 0x15F9, +- 0x15C5, 0x1574, 0x150D, 0x1494, 0x1411, 0x1387, 0x12FE, 0x127B, +- 0x1202, 0x119B, 0x114A, 0x1115, 0x1103, 0x1113, 0x1141, 0x1189, +- 0x11E5, 0x1251, 0x12C9, 0x1347, 0x13C8, 0x1446, 0x14BE, 0x152A, +- 0x1586, 0x15CE, 0x15FC, 0x160C, 0x0C9B, 0x0CBA, 0x0D14, 0x0D9D, +- 0x0E4C, 0x0F18, 0x0FF8, 0x10E0, 0x11C9, 0x12A8, 0x1375, 0x1424, +- 0x14AD, 0x1506, 0x1526, 0x150A, 0x14BC, 0x1443, 0x13A7, 0x12EF, +- 0x1224, 0x114E, 0x1073, 0x0F9D, 0x0ED2, 0x0E1A, 0x0D7E, 0x0D05, +- 0x0CB6, 0x0C9B, 0xAE77, 0xAE3E, 0xAD9D, 0xACA7, 0xAB6C, 0xA9FE, +- 0xA86D, 0xA6CC, 0xA52A, 0xA399, 0xA22B, 0xA0F0, 0x9FFA, 0x9F59, +- 0x9F20, 0x9F52, 0x9FDF, 0xA0B9, 0xA1D1, 0xA31A, 0xA486, 0xA607, +- 0xA790, 0xA911, 0xAA7D, 0xABC6, 0xACDE, 0xADB8, 0xAE45, 0xAE77, +- 0xDECF, 0xDED1, 0xDED6, 0xDEDD, 0xDEE7, 0xDEF3, 0xDEFF, 0xDF0C, +- 0xDF1A, 0xDF26, 0xDF32, 0xDF3C, 0xDF43, 0xDF48, 0xDF4A, 0xDF49, +- 0xDF44, 0xDF3D, 0xDF35, 0xDF2A, 0xDF1F, 0xDF13, 0xDF06, 0xDEFA, +- 0xDEEF, 0xDEE4, 0xDEDC, 0xDED5, 0xDED0, 0xDECF, 0xF348, 0xF343, +- 0xF334, 0xF31C, 0xF2FE, 0xF2DA, 0xF2B4, 0xF28C, 0xF264, 0xF23D, +- 0xF21A, 0xF1FC, 0xF1E4, 0xF1D5, 0xF1CF, 0xF1D4, 0xF1E1, 0xF1F6, +- 0xF211, 0xF231, 0xF254, 0xF279, 0xF29F, 0xF2C4, 0xF2E7, 0xF306, +- 0xF321, 0xF336, 0xF344, 0xF348, 0xC276, 0xC271, 0xC261, 0xC249, +- 0xC22B, 0xC207, 0xC1E0, 0xC1B8, 0xC190, 0xC169, 0xC145, 0xC127, +- 0xC10F, 0xC0FF, 0xC0FA, 0xC0FF, 0xC10C, 0xC121, 0xC13C, 0xC15C, +- 0xC180, 0xC1A5, 0xC1CB, 0xC1F0, 0xC214, 0xC234, 0xC24F, 0xC264, +- 0xC271, 0xC276, 0x3B81, 0x3BC7, 0x3C8A, 0x3DB7, 0x3F38, 0x40F7, +- 0x42E1, 0x44E0, 0x46DE, 0x48C8, 0x4A87, 0x4C08, 0x4D35, 0x4DF9, +- 0x4E3E, 0x4E01, 0x4D55, 0x4C4C, 0x4AF5, 0x4963, 0x47A6, 0x45CF, +- 0x43F0, 0x4219, 0x405D, 0x3ECA, 0x3D74, 0x3C6A, 0x3BBE, 0x3B81, +- 0x0F41, 0x0F3E, 0x0F36, 0x0F29, 0x0F1A, 0x0F07, 0x0EF3, 0x0EDE, +- 0x0EC9, 0x0EB5, 0x0EA3, 0x0E93, 0x0E87, 0x0E7F, 0x0E7C, 0x0E7E, +- 0x0E85, 0x0E90, 0x0E9E, 0x0EAF, 0x0EC1, 0x0ED4, 0x0EE8, 0x0EFB, +- 0x0F0E, 0x0F1E, 0x0F2C, 0x0F37, 0x0F3E, 0x0F41, 0x027B, 0x0283, +- 0x0298, 0x02B9, 0x02E3, 0x0314, 0x0349, 0x0381, 0x03B9, 0x03EE, +- 0x041F, 0x0449, 0x046A, 0x047F, 0x0487, 0x0480, 0x046D, 0x0450, +- 0x042B, 0x03FF, 0x03CF, 0x039B, 0x0367, 0x0334, 0x0303, 0x02D7, +- 0x02B2, 0x0295, 0x0282, 0x027B, 0x97AD, 0x9784, 0x9710, 0x965F, +- 0x957D, 0x9475, 0x9355, 0x9228, 0x90FB, 0x8FDB, 0x8ED3, 0x8DF1, +- 0x8D40, 0x8CCC, 0x8CA3, 0x8CC7, 0x8D2C, 0x8DC9, 0x8E93, 0x8F80, +- 0x9086, 0x919B, 0x92B5, 0x93CA, 0x94D0, 0x95BD, 0x9687, 0x9724, +- 0x9789, 0x97AD, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, +- 0x4171, 0xBF5F, 0x12F7, 0x12F7, 0x12F7, 0x12F7, 0x12F8, 0x12F8, +- 0x12F9, 0x12F9, 0x12FA, 0x12FB, 0x12FB, 0x12FC, 0x12FC, 0x12FC, +- 0x12FC, 0x12FC, 0x12FC, 0x12FC, 0x12FB, 0x12FB, 0x12FA, 0x12FA, +- 0x12F9, 0x12F9, 0x12F8, 0x12F8, 0x12F7, 0x12F7, 0x12F7, 0x12F7, +- 0xFEE7, 0xFEEE, 0xFEFF, 0xFF19, 0xFF3B, 0xFF62, 0xFF8D, 0xFFBA, +- 0xFFE7, 0x0011, 0x0039, 0x005A, 0x0075, 0x0086, 0x008C, 0x0087, +- 0x0078, 0x0060, 0x0042, 0x001F, 0xFFF9, 0xFFCF, 0xFFA5, 0xFF7C, +- 0xFF55, 0xFF31, 0xFF13, 0xFEFC, 0xFEED, 0xFEE7, 0x05CC, 0x05C0, +- 0x059E, 0x0569, 0x0526, 0x04D8, 0x0482, 0x0429, 0x03CF, 0x037A, +- 0x032B, 0x02E8, 0x02B4, 0x0291, 0x0285, 0x0290, 0x02AE, 0x02DC, +- 0x0318, 0x035F, 0x03AD, 0x03FF, 0x0453, 0x04A5, 0x04F3, 0x0539, +- 0x0575, 0x05A4, 0x05C2, 0x05CC, 0x1510, 0x150C, 0x1503, 0x14F5, +- 0x14E3, 0x14CE, 0x14B6, 0x149E, 0x1486, 0x146F, 0x145A, 0x1448, +- 0x143A, 0x1430, 0x142D, 0x1430, 0x1438, 0x1445, 0x1455, 0x1468, +- 0x147D, 0x1493, 0x14AA, 0x14C0, 0x14D5, 0x14E8, 0x14F8, 0x1505, +- 0x150D, 0x1510, 0xF6F7, 0xF6ED, 0xF6CF, 0xF6A0, 0xF665, 0xF621, +- 0xF5D6, 0xF588, 0xF539, 0xF4EE, 0xF4AA, 0xF46F, 0xF441, 0xF423, +- 0xF418, 0xF421, 0xF43C, 0xF464, 0xF499, 0xF4D7, 0xF51B, 0xF563, +- 0xF5AC, 0xF5F4, 0xF639, 0xF676, 0xF6AB, 0xF6D4, 0xF6EE, 0xF6F7, +- 0xFE90, 0xFE99, 0xFEB1, 0xFED7, 0xFF07, 0xFF3E, 0xFF7C, 0xFFBB, +- 0xFFFB, 0x0037, 0x006F, 0x009F, 0x00C4, 0x00DD, 0x00E6, 0x00DE, +- 0x00C9, 0x00A7, 0x007D, 0x004A, 0x0013, 0xFFD9, 0xFF9D, 0xFF63, +- 0xFF2B, 0xFEF9, 0xFECE, 0xFEAD, 0xFE98, 0xFE90, 0xD96B, 0x06DD, +- 0x4534, ++0x0000, 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, ++ 0x00B9, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, 0x00B2, ++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00B9, ++ 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B3, 0x00B2, 0x00B2, ++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x0000, ++ 0x3FFA, 0x38E3, 0x3FFA, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, 0x0ED5, ++ 0x0ED8, 0x0EE0, 0x0EED, 0x0EFD, 0x0F11, 0x0F27, 0x0F3F, 0x0F58, 0x0F71, ++ 0x0F8A, 0x0FA2, 0x0FB8, 0x0FCC, 0x0FDC, 0x0FE9, 0x0FF1, 0x0FF4, 0x0FF1, ++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, ++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0x0ED8, ++ 0x0EDF, 0x0EEB, 0x0EF9, 0x0F0B, 0x0F20, 0x0F36, 0x0F4D, 0x0F64, 0x0F7C, ++ 0x0F93, 0x0FA9, 0x0FBE, 0x0FD0, 0x0FDE, 0x0FEA, 0x0FF1, 0x0FF4, 0x0FF1, ++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, ++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0xFFFF, ++ 0x0000, 0xED48, 0xED4F, 0xED61, 0xED7F, 0xEDA5, 0xEDD3, 0xEE06, 0xEE3D, ++ 0xEE77, 0xEEB1, 0xEEEB, 0xEF22, 0xEF55, 0xEF83, 0xEFA9, 0xEFC7, 0xEFD9, ++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, ++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, ++ 0xED48, 0xED4E, 0xED5F, 0xED79, 0xED9C, 0xEDC5, 0xEDF4, 0xEE27, 0xEE5D, ++ 0xEE94, 0xEECB, 0xEF01, 0xEF34, 0xEF63, 0xEF8C, 0xEFAF, 0xEFC9, 0xEFDA, ++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, ++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, ++ 0xED48, 0xFFFE, 0x0001, 0xC170, 0x242B, 0x2429, 0x2423, 0x241B, 0x240F, ++ 0x2401, 0x23F2, 0x23E1, 0x23D0, 0x23BE, 0x23AD, 0x239C, 0x238D, 0x237F, ++ 0x2374, 0x236B, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, ++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, ++ 0x241C, 0x2424, 0x2429, 0x242B, 0x2429, 0x2424, 0x241C, 0x2412, 0x2405, ++ 0x23F7, 0x23E8, 0x23D8, 0x23C7, 0x23B7, 0x23A7, 0x2397, 0x2389, 0x237D, ++ 0x2372, 0x236A, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, ++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, ++ 0x241C, 0x2424, 0x2429, 0x242B, 0xE53D, 0xE542, 0xE550, 0xE565, 0xE582, ++ 0xE5A4, 0xE5CA, 0xE5F3, 0xE61E, 0xE64A, 0xE675, 0xE69E, 0xE6C5, 0xE6E7, ++ 0xE703, 0xE719, 0xE727, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, ++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, ++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE541, 0xE54E, 0xE561, 0xE57B, 0xE59A, ++ 0xE5BD, 0xE5E3, 0xE60B, 0xE634, 0xE65D, 0xE685, 0xE6AC, 0xE6CF, 0xE6ED, ++ 0xE707, 0xE71B, 0xE728, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, ++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, ++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE6CA, 0xE6C4, 0xE6B1, 0xE695, 0xE670, ++ 0xE644, 0xE613, 0xE5DD, 0xE5A5, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, ++ 0xE47D, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, ++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69A, 0xE679, 0xE651, ++ 0xE624, 0xE5F2, 0xE5BE, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE499, ++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, ++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xF989, 0x0344, 0xF9BC, 0xB507, 0xEAA7, ++ 0x0B25, 0xFFFE, 0x0001, 0xC170, 0xDBD4, 0xDBD6, 0xDBDC, 0xDBE4, 0xDBF0, ++ 0xDBFE, 0xDC0D, 0xDC1E, 0xDC2F, 0xDC41, 0xDC52, 0xDC62, 0xDC72, 0xDC80, ++ 0xDC8B, 0xDC94, 0xDC99, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, ++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, ++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0xDBD6, 0xDBDB, 0xDBE3, 0xDBED, 0xDBFA, ++ 0xDC08, 0xDC17, 0xDC27, 0xDC38, 0xDC48, 0xDC58, 0xDC68, 0xDC76, 0xDC82, ++ 0xDC8D, 0xDC95, 0xDC9A, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, ++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, ++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0x1AC2, 0x1ABD, 0x1AAF, 0x1A99, 0x1A7D, ++ 0x1A5B, 0x1A35, 0x1A0C, 0x19E1, 0x19B5, 0x198A, 0x1961, 0x193A, 0x1918, ++ 0x18FC, 0x18E6, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, ++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, ++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0x1ABE, 0x1AB1, 0x1A9E, 0x1A84, 0x1A65, ++ 0x1A42, 0x1A1C, 0x19F4, 0x19CB, 0x19A2, 0x197A, 0x1954, 0x1931, 0x1912, ++ 0x18F8, 0x18E4, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, ++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, ++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0xE6CA, 0xE6C4, 0xE6B2, 0xE695, 0xE670, ++ 0xE644, 0xE613, 0xE5DD, 0xE5A6, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, ++ 0xE47E, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, ++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69B, 0xE679, 0xE651, ++ 0xE624, 0xE5F3, 0xE5BF, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE49A, ++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, ++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, ++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0x066C, 0xFCF0, 0xF9BE, 0x4ABB, 0x154E, ++ 0x0B14, 0xFFFF, 0x0000, 0xF4F0, 0xFAF3, 0x0199, 0x925A, 0x9255, 0x9246, ++ 0x922E, 0x920F, 0x91EB, 0x91C1, 0x9195, 0x9167, 0x9137, 0x9109, 0x90DD, ++ 0x90B3, 0x908F, 0x9070, 0x9058, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, ++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, ++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0x9255, 0x9248, 0x9233, ++ 0x9217, 0x91F5, 0x91D0, 0x91A7, 0x917B, 0x914F, 0x9123, 0x90F7, 0x90CE, ++ 0x90A9, 0x9087, 0x906B, 0x9056, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, ++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, ++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0xF54D, 0xFF0D, 0x56C9, ++ 0xFF72, 0xFF75, 0xFF7D, 0xFF8A, 0xFF9A, 0xFFAD, 0xFFC3, 0xFFDB, 0xFFF4, ++ 0x000E, 0x0027, 0x003E, 0x0054, 0x0068, 0x0078, 0x0085, 0x008D, 0x0090, ++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, ++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, ++ 0xFF75, 0xFF7C, 0xFF87, 0xFF96, 0xFFA8, 0xFFBC, 0xFFD2, 0xFFE9, 0x0001, ++ 0x0019, 0x0030, 0x0046, 0x005A, 0x006C, 0x007B, 0x0086, 0x008D, 0x0090, ++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, ++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, ++ 0x03AD, 0x03AB, 0x03A8, 0x03A3, 0x039C, 0x0394, 0x038B, 0x0382, 0x0378, ++ 0x036D, 0x0363, 0x035A, 0x0351, 0x0349, 0x0342, 0x033D, 0x033A, 0x0339, ++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, ++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, ++ 0x03AC, 0x03A9, 0x03A4, 0x039E, 0x0397, 0x038F, 0x0386, 0x037C, 0x0373, ++ 0x0369, 0x0360, 0x0357, 0x034E, 0x0347, 0x0341, 0x033D, 0x033A, 0x0339, ++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, ++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, ++ 0xC483, 0xC493, 0xC4C3, 0xC50D, 0xC56E, 0xC5E1, 0xC662, 0xC6EE, 0xC780, ++ 0xC814, 0xC8A5, 0xC931, 0xC9B3, 0xCA26, 0xCA86, 0xCAD0, 0xCB00, 0xCB11, ++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, ++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, ++ 0xC492, 0xC4BC, 0xC4FF, 0xC556, 0xC5BF, 0xC636, 0xC6B7, 0xC73E, 0xC7CA, ++ 0xC855, 0xC8DD, 0xC95E, 0xC9D4, 0xCA3D, 0xCA94, 0xCAD7, 0xCB02, 0xCB11, ++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, ++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, ++ 0x0000, 0xFFFF, 0x0193, 0xFB78, 0xFD16, 0xB8F1, 0xB8EC, 0xB8DE, 0xB8C9, ++ 0xB8AD, 0xB88B, 0xB866, 0xB83D, 0xB813, 0xB7E8, 0xB7BE, 0xB795, 0xB770, ++ 0xB74E, 0xB732, 0xB71D, 0xB70F, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, ++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, ++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0xB8EC, 0xB8E0, 0xB8CD, 0xB8B3, ++ 0xB895, 0xB873, 0xB84D, 0xB826, 0xB7FD, 0xB7D5, 0xB7AE, 0xB788, 0xB766, ++ 0xB747, 0xB72E, 0xB71B, 0xB70E, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, ++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, ++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0x03B5, 0xFDFE, 0x114E, 0x0265, ++ 0x0264, 0x0261, 0x025C, 0x0256, 0x024F, 0x0247, 0x023E, 0x0235, 0x022B, ++ 0x0222, 0x0219, 0x0211, 0x020A, 0x0204, 0x01FF, 0x01FC, 0x01FB, 0x01FC, ++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, ++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x0264, ++ 0x0261, 0x025D, 0x0258, 0x0251, 0x024A, 0x0241, 0x0239, 0x0230, 0x0227, ++ 0x021E, 0x0216, 0x020F, 0x0208, 0x0203, 0x01FE, 0x01FC, 0x01FB, 0x01FC, ++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, ++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x03F7, ++ 0x03F7, 0x03F4, 0x03F0, 0x03EB, 0x03E4, 0x03DD, 0x03D6, 0x03CE, 0x03C6, ++ 0x03BE, 0x03B6, 0x03AF, 0x03A9, 0x03A4, 0x03A0, 0x039D, 0x039C, 0x039D, ++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, ++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0x03F7, 0x03F7, ++ 0x03F4, 0x03F1, 0x03EC, 0x03E6, 0x03E0, 0x03D9, 0x03D1, 0x03CA, 0x03C2, ++ 0x03BB, 0x03B4, 0x03AE, 0x03A8, 0x03A3, 0x03A0, 0x039D, 0x039C, 0x039D, ++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, ++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0xD10C, 0xD0FB, ++ 0xD0C9, 0xD07A, 0xD014, 0xCF9A, 0xCF12, 0xCE7E, 0xCDE4, 0xCD48, 0xCCAD, ++ 0xCC1A, 0xCB91, 0xCB17, 0xCAB1, 0xCA63, 0xCA31, 0xCA1F, 0xCA2F, 0xCA5C, ++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, ++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, 0xD0FD, 0xD0D0, ++ 0xD089, 0xD02D, 0xCFBE, 0xCF41, 0xCEB8, 0xCE29, 0xCD96, 0xCD02, 0xCC73, ++ 0xCBEB, 0xCB6D, 0xCAFF, 0xCAA2, 0xCA5C, 0xCA2F, 0xCA1F, 0xCA2F, 0xCA5C, ++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, ++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, + }; + +diff --git a/assets/anims/anim_54.inc.c.rej b/assets/anims/anim_54.inc.c.rej +new file mode 100644 +index 0000000..23c6550 +--- /dev/null ++++ b/assets/anims/anim_54.inc.c.rej +@@ -0,0 +1,283 @@ ++diff a/assets/anims/anim_54.inc.c b/assets/anims/anim_54.inc.c (rejected hunks) ++@@ -1,9 +1,9 @@ ++ static const struct Animation anim_54[] = { ++- 1, ++- 189, ++- 0, ++- 0, ++- 0x1E, +++ 0, +++ 0, +++ 0, +++ 1, +++ 71, ++ ANIMINDEX_NUMPARTS(anim_54_indices), ++ anim_54_values, ++ anim_54_indices, ++@@ -12,111 +12,163 @@ static const struct Animation anim_54[] = { ++ ++ ++ static const u16 anim_54_indices[] = { ++- 0x0001, 0x0000, 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F, 0x0001, 0x0000, ++- 0x0001, 0x028E, 0x0001, 0x028F, 0x0001, 0x0290, ++- 0x001E, 0x0234, 0x001E, 0x0252, 0x001E, 0x0270, ++- 0x001E, 0x01DA, 0x001E, 0x01F8, 0x001E, 0x0216, ++- 0x0001, 0x01D6, 0x0001, 0x01D7, 0x0001, 0x01D8, ++- 0x0001, 0x0024, 0x0001, 0x0025, 0x0001, 0x0026, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023, ++- 0x0001, 0x0020, 0x0001, 0x0021, 0x0001, 0x0022, ++- 0x0001, 0x01D2, 0x0001, 0x01D3, 0x0001, 0x01D4, ++- 0x0001, 0x002B, 0x0001, 0x002C, 0x0001, 0x002D, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x002A, ++- 0x0001, 0x0027, 0x0001, 0x0028, 0x0001, 0x0029, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D5, ++- 0x001E, 0x0178, 0x001E, 0x0196, 0x001E, 0x01B4, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x015A, ++- 0x001E, 0x0100, 0x001E, 0x011E, 0x001E, 0x013C, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01D9, ++- 0x001E, 0x00A6, 0x001E, 0x00C4, 0x001E, 0x00E2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x0088, ++- 0x001E, 0x002E, 0x001E, 0x004C, 0x001E, 0x006A, +++0x0001, 0x0000, 0x0046, 0x0001, 0x0001, 0x0047, 0x0001, 0x0048, 0x0001, +++ 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, 0x0001, 0x004D, +++ 0x0001, 0x004E, 0x0001, 0x004F, 0x0048, 0x0050, 0x0001, 0x0098, 0x0001, +++ 0x0099, 0x0048, 0x009A, 0x0001, 0x00E2, 0x0001, 0x00E3, 0x0001, 0x00E4, +++ 0x0048, 0x00E5, 0x0048, 0x012D, 0x0048, 0x0175, 0x0001, 0x01BD, 0x0001, +++ 0x01BE, 0x0001, 0x01BF, 0x0001, 0x01C0, 0x0001, 0x01C1, 0x0001, 0x01C2, +++ 0x0001, 0x01C3, 0x0001, 0x01C4, 0x0001, 0x01C5, 0x0048, 0x01C6, 0x0048, +++ 0x020E, 0x0048, 0x0256, 0x0001, 0x029E, 0x0001, 0x029F, 0x0001, 0x02A0, +++ 0x0001, 0x02A1, 0x0001, 0x02A2, 0x0001, 0x02A3, 0x0001, 0x02A4, 0x0001, +++ 0x02A5, 0x0001, 0x02A6, 0x0001, 0x02A7, 0x0001, 0x02A8, 0x0048, 0x02A9, +++ 0x0001, 0x02F1, 0x0001, 0x02F2, 0x0001, 0x02F3, 0x0048, 0x02F4, 0x0048, +++ 0x033C, 0x0048, 0x0384, 0x0001, 0x03CC, 0x0001, 0x03CD, 0x0001, 0x03CE, +++ 0x0001, 0x03CF, 0x0001, 0x03D0, 0x0048, 0x03D1, 0x0001, 0x0419, 0x0001, +++ 0x041A, 0x0001, 0x041B, 0x0048, 0x041C, 0x0047, 0x0464, 0x0048, 0x04AB, ++ }; ++ ++ static const s16 anim_54_values[] = { ++- 0x0000, 0x00AC, 0x00AC, 0x00AB, 0x00A9, 0x00A7, 0x00A4, 0x00A2, ++- 0x009F, 0x009C, 0x0099, 0x0097, 0x0095, 0x0093, 0x0092, 0x0092, ++- 0x0092, 0x0093, 0x0094, 0x0096, 0x0099, 0x009B, 0x009E, 0x00A0, ++- 0x00A3, 0x00A5, 0x00A7, 0x00A9, 0x00AB, 0x00AC, 0x00AC, 0x3FFF, ++- 0xE441, 0xF273, 0xFBD8, 0xE392, 0xD5A2, 0xEA6D, 0xE897, 0x13E1, ++- 0x08D0, 0xF6A5, 0xE501, 0x87F6, 0x5359, 0x4901, 0x26DE, 0x26DA, ++- 0x26D0, 0x26C0, 0x26AB, 0x2693, 0x2679, 0x265E, 0x2643, 0x2629, ++- 0x2611, 0x25FC, 0x25EC, 0x25E2, 0x25DE, 0x25E1, 0x25EA, 0x25F8, ++- 0x260B, 0x2620, 0x2638, 0x2651, 0x266B, 0x2684, 0x269C, 0x26B1, ++- 0x26C4, 0x26D2, 0x26DB, 0x26DE, 0x0E76, 0x0E82, 0x0EA5, 0x0EDA, ++- 0x0F1D, 0x0F6C, 0x0FC2, 0x101C, 0x1076, 0x10CC, 0x111A, 0x115E, ++- 0x1193, 0x11B5, 0x11C2, 0x11B7, 0x1199, 0x116A, 0x112E, 0x10E7, ++- 0x1099, 0x1046, 0x0FF2, 0x0F9F, 0x0F51, 0x0F0A, 0x0ECE, 0x0E9F, ++- 0x0E81, 0x0E76, 0xC8E8, 0xC8DE, 0xC8C3, 0xC899, 0xC864, 0xC826, ++- 0xC7E2, 0xC79B, 0xC754, 0xC711, 0xC6D3, 0xC69D, 0xC674, 0xC658, ++- 0xC64F, 0xC657, 0xC66F, 0xC694, 0xC6C3, 0xC6FB, 0xC739, 0xC77A, ++- 0xC7BC, 0xC7FE, 0xC83B, 0xC873, 0xC8A2, 0xC8C7, 0xC8DF, 0xC8E8, ++- 0x28E1, 0x2947, 0x2A64, 0x2C1A, 0x2E4B, 0x30D7, 0x33A0, 0x3687, ++- 0x396F, 0x3C38, 0x3EC4, 0x40F4, 0x42AA, 0x43C8, 0x442E, 0x43D4, ++- 0x42DA, 0x4157, 0x3F64, 0x3D1A, 0x3A92, 0x37E4, 0x352B, 0x327D, ++- 0x2FF5, 0x2DAB, 0x2BB8, 0x2A35, 0x293A, 0x28E1, 0x160C, 0x15F9, ++- 0x15C5, 0x1574, 0x150D, 0x1494, 0x1411, 0x1387, 0x12FE, 0x127B, ++- 0x1202, 0x119B, 0x114A, 0x1115, 0x1103, 0x1113, 0x1141, 0x1189, ++- 0x11E5, 0x1251, 0x12C9, 0x1347, 0x13C8, 0x1446, 0x14BE, 0x152A, ++- 0x1586, 0x15CE, 0x15FC, 0x160C, 0x0C9B, 0x0CBA, 0x0D14, 0x0D9D, ++- 0x0E4C, 0x0F18, 0x0FF8, 0x10E0, 0x11C9, 0x12A8, 0x1375, 0x1424, ++- 0x14AD, 0x1506, 0x1526, 0x150A, 0x14BC, 0x1443, 0x13A7, 0x12EF, ++- 0x1224, 0x114E, 0x1073, 0x0F9D, 0x0ED2, 0x0E1A, 0x0D7E, 0x0D05, ++- 0x0CB6, 0x0C9B, 0xAE77, 0xAE3E, 0xAD9D, 0xACA7, 0xAB6C, 0xA9FE, ++- 0xA86D, 0xA6CC, 0xA52A, 0xA399, 0xA22B, 0xA0F0, 0x9FFA, 0x9F59, ++- 0x9F20, 0x9F52, 0x9FDF, 0xA0B9, 0xA1D1, 0xA31A, 0xA486, 0xA607, ++- 0xA790, 0xA911, 0xAA7D, 0xABC6, 0xACDE, 0xADB8, 0xAE45, 0xAE77, ++- 0xDECF, 0xDED1, 0xDED6, 0xDEDD, 0xDEE7, 0xDEF3, 0xDEFF, 0xDF0C, ++- 0xDF1A, 0xDF26, 0xDF32, 0xDF3C, 0xDF43, 0xDF48, 0xDF4A, 0xDF49, ++- 0xDF44, 0xDF3D, 0xDF35, 0xDF2A, 0xDF1F, 0xDF13, 0xDF06, 0xDEFA, ++- 0xDEEF, 0xDEE4, 0xDEDC, 0xDED5, 0xDED0, 0xDECF, 0xF348, 0xF343, ++- 0xF334, 0xF31C, 0xF2FE, 0xF2DA, 0xF2B4, 0xF28C, 0xF264, 0xF23D, ++- 0xF21A, 0xF1FC, 0xF1E4, 0xF1D5, 0xF1CF, 0xF1D4, 0xF1E1, 0xF1F6, ++- 0xF211, 0xF231, 0xF254, 0xF279, 0xF29F, 0xF2C4, 0xF2E7, 0xF306, ++- 0xF321, 0xF336, 0xF344, 0xF348, 0xC276, 0xC271, 0xC261, 0xC249, ++- 0xC22B, 0xC207, 0xC1E0, 0xC1B8, 0xC190, 0xC169, 0xC145, 0xC127, ++- 0xC10F, 0xC0FF, 0xC0FA, 0xC0FF, 0xC10C, 0xC121, 0xC13C, 0xC15C, ++- 0xC180, 0xC1A5, 0xC1CB, 0xC1F0, 0xC214, 0xC234, 0xC24F, 0xC264, ++- 0xC271, 0xC276, 0x3B81, 0x3BC7, 0x3C8A, 0x3DB7, 0x3F38, 0x40F7, ++- 0x42E1, 0x44E0, 0x46DE, 0x48C8, 0x4A87, 0x4C08, 0x4D35, 0x4DF9, ++- 0x4E3E, 0x4E01, 0x4D55, 0x4C4C, 0x4AF5, 0x4963, 0x47A6, 0x45CF, ++- 0x43F0, 0x4219, 0x405D, 0x3ECA, 0x3D74, 0x3C6A, 0x3BBE, 0x3B81, ++- 0x0F41, 0x0F3E, 0x0F36, 0x0F29, 0x0F1A, 0x0F07, 0x0EF3, 0x0EDE, ++- 0x0EC9, 0x0EB5, 0x0EA3, 0x0E93, 0x0E87, 0x0E7F, 0x0E7C, 0x0E7E, ++- 0x0E85, 0x0E90, 0x0E9E, 0x0EAF, 0x0EC1, 0x0ED4, 0x0EE8, 0x0EFB, ++- 0x0F0E, 0x0F1E, 0x0F2C, 0x0F37, 0x0F3E, 0x0F41, 0x027B, 0x0283, ++- 0x0298, 0x02B9, 0x02E3, 0x0314, 0x0349, 0x0381, 0x03B9, 0x03EE, ++- 0x041F, 0x0449, 0x046A, 0x047F, 0x0487, 0x0480, 0x046D, 0x0450, ++- 0x042B, 0x03FF, 0x03CF, 0x039B, 0x0367, 0x0334, 0x0303, 0x02D7, ++- 0x02B2, 0x0295, 0x0282, 0x027B, 0x97AD, 0x9784, 0x9710, 0x965F, ++- 0x957D, 0x9475, 0x9355, 0x9228, 0x90FB, 0x8FDB, 0x8ED3, 0x8DF1, ++- 0x8D40, 0x8CCC, 0x8CA3, 0x8CC7, 0x8D2C, 0x8DC9, 0x8E93, 0x8F80, ++- 0x9086, 0x919B, 0x92B5, 0x93CA, 0x94D0, 0x95BD, 0x9687, 0x9724, ++- 0x9789, 0x97AD, 0x8001, 0x8001, 0x4171, 0xBF5F, 0x8001, 0x8001, ++- 0x4171, 0xBF5F, 0x12F7, 0x12F7, 0x12F7, 0x12F7, 0x12F8, 0x12F8, ++- 0x12F9, 0x12F9, 0x12FA, 0x12FB, 0x12FB, 0x12FC, 0x12FC, 0x12FC, ++- 0x12FC, 0x12FC, 0x12FC, 0x12FC, 0x12FB, 0x12FB, 0x12FA, 0x12FA, ++- 0x12F9, 0x12F9, 0x12F8, 0x12F8, 0x12F7, 0x12F7, 0x12F7, 0x12F7, ++- 0xFEE7, 0xFEEE, 0xFEFF, 0xFF19, 0xFF3B, 0xFF62, 0xFF8D, 0xFFBA, ++- 0xFFE7, 0x0011, 0x0039, 0x005A, 0x0075, 0x0086, 0x008C, 0x0087, ++- 0x0078, 0x0060, 0x0042, 0x001F, 0xFFF9, 0xFFCF, 0xFFA5, 0xFF7C, ++- 0xFF55, 0xFF31, 0xFF13, 0xFEFC, 0xFEED, 0xFEE7, 0x05CC, 0x05C0, ++- 0x059E, 0x0569, 0x0526, 0x04D8, 0x0482, 0x0429, 0x03CF, 0x037A, ++- 0x032B, 0x02E8, 0x02B4, 0x0291, 0x0285, 0x0290, 0x02AE, 0x02DC, ++- 0x0318, 0x035F, 0x03AD, 0x03FF, 0x0453, 0x04A5, 0x04F3, 0x0539, ++- 0x0575, 0x05A4, 0x05C2, 0x05CC, 0x1510, 0x150C, 0x1503, 0x14F5, ++- 0x14E3, 0x14CE, 0x14B6, 0x149E, 0x1486, 0x146F, 0x145A, 0x1448, ++- 0x143A, 0x1430, 0x142D, 0x1430, 0x1438, 0x1445, 0x1455, 0x1468, ++- 0x147D, 0x1493, 0x14AA, 0x14C0, 0x14D5, 0x14E8, 0x14F8, 0x1505, ++- 0x150D, 0x1510, 0xF6F7, 0xF6ED, 0xF6CF, 0xF6A0, 0xF665, 0xF621, ++- 0xF5D6, 0xF588, 0xF539, 0xF4EE, 0xF4AA, 0xF46F, 0xF441, 0xF423, ++- 0xF418, 0xF421, 0xF43C, 0xF464, 0xF499, 0xF4D7, 0xF51B, 0xF563, ++- 0xF5AC, 0xF5F4, 0xF639, 0xF676, 0xF6AB, 0xF6D4, 0xF6EE, 0xF6F7, ++- 0xFE90, 0xFE99, 0xFEB1, 0xFED7, 0xFF07, 0xFF3E, 0xFF7C, 0xFFBB, ++- 0xFFFB, 0x0037, 0x006F, 0x009F, 0x00C4, 0x00DD, 0x00E6, 0x00DE, ++- 0x00C9, 0x00A7, 0x007D, 0x004A, 0x0013, 0xFFD9, 0xFF9D, 0xFF63, ++- 0xFF2B, 0xFEF9, 0xFECE, 0xFEAD, 0xFE98, 0xFE90, 0xD96B, 0x06DD, ++- 0x4534, +++0x0000, 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BB, 0x00BB, 0x00BA, +++ 0x00B9, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B4, 0x00B3, 0x00B2, 0x00B2, +++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, +++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x00BE, +++ 0x00BE, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00B9, +++ 0x00B8, 0x00B7, 0x00B6, 0x00B5, 0x00B4, 0x00B3, 0x00B3, 0x00B2, 0x00B2, +++ 0x00B2, 0x00B2, 0x00B2, 0x00B3, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, +++ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BC, 0x00BD, 0x00BE, 0x0000, +++ 0x3FFA, 0x38E3, 0x3FFA, 0xFFFF, 0x0000, 0x3D7D, 0xFFFF, 0xFFFF, 0x0ED5, +++ 0x0ED8, 0x0EE0, 0x0EED, 0x0EFD, 0x0F11, 0x0F27, 0x0F3F, 0x0F58, 0x0F71, +++ 0x0F8A, 0x0FA2, 0x0FB8, 0x0FCC, 0x0FDC, 0x0FE9, 0x0FF1, 0x0FF4, 0x0FF1, +++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, +++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0x0ED8, +++ 0x0EDF, 0x0EEB, 0x0EF9, 0x0F0B, 0x0F20, 0x0F36, 0x0F4D, 0x0F64, 0x0F7C, +++ 0x0F93, 0x0FA9, 0x0FBE, 0x0FD0, 0x0FDE, 0x0FEA, 0x0FF1, 0x0FF4, 0x0FF1, +++ 0x0FEA, 0x0FDE, 0x0FD0, 0x0FBE, 0x0FA9, 0x0F93, 0x0F7C, 0x0F64, 0x0F4D, +++ 0x0F36, 0x0F20, 0x0F0B, 0x0EF9, 0x0EEB, 0x0EDF, 0x0ED8, 0x0ED5, 0xFFFF, +++ 0x0000, 0xED48, 0xED4F, 0xED61, 0xED7F, 0xEDA5, 0xEDD3, 0xEE06, 0xEE3D, +++ 0xEE77, 0xEEB1, 0xEEEB, 0xEF22, 0xEF55, 0xEF83, 0xEFA9, 0xEFC7, 0xEFD9, +++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, +++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, +++ 0xED48, 0xED4E, 0xED5F, 0xED79, 0xED9C, 0xEDC5, 0xEDF4, 0xEE27, 0xEE5D, +++ 0xEE94, 0xEECB, 0xEF01, 0xEF34, 0xEF63, 0xEF8C, 0xEFAF, 0xEFC9, 0xEFDA, +++ 0xEFE0, 0xEFDA, 0xEFC9, 0xEFAF, 0xEF8C, 0xEF63, 0xEF34, 0xEF01, 0xEECB, +++ 0xEE94, 0xEE5D, 0xEE27, 0xEDF4, 0xEDC5, 0xED9C, 0xED79, 0xED5F, 0xED4E, +++ 0xED48, 0xFFFE, 0x0001, 0xC170, 0x242B, 0x2429, 0x2423, 0x241B, 0x240F, +++ 0x2401, 0x23F2, 0x23E1, 0x23D0, 0x23BE, 0x23AD, 0x239C, 0x238D, 0x237F, +++ 0x2374, 0x236B, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, +++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, +++ 0x241C, 0x2424, 0x2429, 0x242B, 0x2429, 0x2424, 0x241C, 0x2412, 0x2405, +++ 0x23F7, 0x23E8, 0x23D8, 0x23C7, 0x23B7, 0x23A7, 0x2397, 0x2389, 0x237D, +++ 0x2372, 0x236A, 0x2365, 0x2363, 0x2365, 0x236A, 0x2372, 0x237D, 0x2389, +++ 0x2397, 0x23A7, 0x23B7, 0x23C7, 0x23D8, 0x23E8, 0x23F7, 0x2405, 0x2412, +++ 0x241C, 0x2424, 0x2429, 0x242B, 0xE53D, 0xE542, 0xE550, 0xE565, 0xE582, +++ 0xE5A4, 0xE5CA, 0xE5F3, 0xE61E, 0xE64A, 0xE675, 0xE69E, 0xE6C5, 0xE6E7, +++ 0xE703, 0xE719, 0xE727, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, +++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, +++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE541, 0xE54E, 0xE561, 0xE57B, 0xE59A, +++ 0xE5BD, 0xE5E3, 0xE60B, 0xE634, 0xE65D, 0xE685, 0xE6AC, 0xE6CF, 0xE6ED, +++ 0xE707, 0xE71B, 0xE728, 0xE72C, 0xE728, 0xE71B, 0xE707, 0xE6ED, 0xE6CF, +++ 0xE6AC, 0xE685, 0xE65D, 0xE634, 0xE60B, 0xE5E3, 0xE5BD, 0xE59A, 0xE57B, +++ 0xE561, 0xE54E, 0xE541, 0xE53D, 0xE6CA, 0xE6C4, 0xE6B1, 0xE695, 0xE670, +++ 0xE644, 0xE613, 0xE5DD, 0xE5A5, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, +++ 0xE47D, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, +++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, +++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69A, 0xE679, 0xE651, +++ 0xE624, 0xE5F2, 0xE5BE, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE499, +++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE499, 0xE4C2, +++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BE, 0xE5F2, 0xE624, 0xE651, 0xE679, +++ 0xE69A, 0xE6B4, 0xE6C4, 0xE6CA, 0xF989, 0x0344, 0xF9BC, 0xB507, 0xEAA7, +++ 0x0B25, 0xFFFE, 0x0001, 0xC170, 0xDBD4, 0xDBD6, 0xDBDC, 0xDBE4, 0xDBF0, +++ 0xDBFE, 0xDC0D, 0xDC1E, 0xDC2F, 0xDC41, 0xDC52, 0xDC62, 0xDC72, 0xDC80, +++ 0xDC8B, 0xDC94, 0xDC99, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, +++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, +++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0xDBD6, 0xDBDB, 0xDBE3, 0xDBED, 0xDBFA, +++ 0xDC08, 0xDC17, 0xDC27, 0xDC38, 0xDC48, 0xDC58, 0xDC68, 0xDC76, 0xDC82, +++ 0xDC8D, 0xDC95, 0xDC9A, 0xDC9B, 0xDC9A, 0xDC95, 0xDC8D, 0xDC82, 0xDC76, +++ 0xDC68, 0xDC58, 0xDC48, 0xDC38, 0xDC27, 0xDC17, 0xDC08, 0xDBFA, 0xDBED, +++ 0xDBE3, 0xDBDB, 0xDBD6, 0xDBD4, 0x1AC2, 0x1ABD, 0x1AAF, 0x1A99, 0x1A7D, +++ 0x1A5B, 0x1A35, 0x1A0C, 0x19E1, 0x19B5, 0x198A, 0x1961, 0x193A, 0x1918, +++ 0x18FC, 0x18E6, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, +++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, +++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0x1ABE, 0x1AB1, 0x1A9E, 0x1A84, 0x1A65, +++ 0x1A42, 0x1A1C, 0x19F4, 0x19CB, 0x19A2, 0x197A, 0x1954, 0x1931, 0x1912, +++ 0x18F8, 0x18E4, 0x18D8, 0x18D3, 0x18D8, 0x18E4, 0x18F8, 0x1912, 0x1931, +++ 0x1954, 0x197A, 0x19A2, 0x19CB, 0x19F4, 0x1A1C, 0x1A42, 0x1A65, 0x1A84, +++ 0x1A9E, 0x1AB1, 0x1ABE, 0x1AC2, 0xE6CA, 0xE6C4, 0xE6B2, 0xE695, 0xE670, +++ 0xE644, 0xE613, 0xE5DD, 0xE5A6, 0xE56D, 0xE535, 0xE500, 0xE4CE, 0xE4A2, +++ 0xE47E, 0xE461, 0xE44F, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, +++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, +++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0xE6C4, 0xE6B4, 0xE69B, 0xE679, 0xE651, +++ 0xE624, 0xE5F3, 0xE5BF, 0xE589, 0xE554, 0xE520, 0xE4EF, 0xE4C2, 0xE49A, +++ 0xE478, 0xE45F, 0xE44E, 0xE449, 0xE44E, 0xE45F, 0xE478, 0xE49A, 0xE4C2, +++ 0xE4EF, 0xE520, 0xE554, 0xE589, 0xE5BF, 0xE5F3, 0xE624, 0xE651, 0xE679, +++ 0xE69B, 0xE6B4, 0xE6C4, 0xE6CA, 0x066C, 0xFCF0, 0xF9BE, 0x4ABB, 0x154E, +++ 0x0B14, 0xFFFF, 0x0000, 0xF4F0, 0xFAF3, 0x0199, 0x925A, 0x9255, 0x9246, +++ 0x922E, 0x920F, 0x91EB, 0x91C1, 0x9195, 0x9167, 0x9137, 0x9109, 0x90DD, +++ 0x90B3, 0x908F, 0x9070, 0x9058, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, +++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, +++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0x9255, 0x9248, 0x9233, +++ 0x9217, 0x91F5, 0x91D0, 0x91A7, 0x917B, 0x914F, 0x9123, 0x90F7, 0x90CE, +++ 0x90A9, 0x9087, 0x906B, 0x9056, 0x9049, 0x9044, 0x9049, 0x9056, 0x906B, +++ 0x9087, 0x90A9, 0x90CE, 0x90F7, 0x9123, 0x914F, 0x917B, 0x91A7, 0x91D0, +++ 0x91F5, 0x9217, 0x9233, 0x9248, 0x9255, 0x925A, 0xF54D, 0xFF0D, 0x56C9, +++ 0xFF72, 0xFF75, 0xFF7D, 0xFF8A, 0xFF9A, 0xFFAD, 0xFFC3, 0xFFDB, 0xFFF4, +++ 0x000E, 0x0027, 0x003E, 0x0054, 0x0068, 0x0078, 0x0085, 0x008D, 0x0090, +++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, +++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, +++ 0xFF75, 0xFF7C, 0xFF87, 0xFF96, 0xFFA8, 0xFFBC, 0xFFD2, 0xFFE9, 0x0001, +++ 0x0019, 0x0030, 0x0046, 0x005A, 0x006C, 0x007B, 0x0086, 0x008D, 0x0090, +++ 0x008D, 0x0086, 0x007B, 0x006C, 0x005A, 0x0046, 0x0030, 0x0019, 0x0001, +++ 0xFFE9, 0xFFD2, 0xFFBC, 0xFFA8, 0xFF96, 0xFF87, 0xFF7C, 0xFF75, 0xFF72, +++ 0x03AD, 0x03AB, 0x03A8, 0x03A3, 0x039C, 0x0394, 0x038B, 0x0382, 0x0378, +++ 0x036D, 0x0363, 0x035A, 0x0351, 0x0349, 0x0342, 0x033D, 0x033A, 0x0339, +++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, +++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, +++ 0x03AC, 0x03A9, 0x03A4, 0x039E, 0x0397, 0x038F, 0x0386, 0x037C, 0x0373, +++ 0x0369, 0x0360, 0x0357, 0x034E, 0x0347, 0x0341, 0x033D, 0x033A, 0x0339, +++ 0x033A, 0x033D, 0x0341, 0x0347, 0x034E, 0x0357, 0x0360, 0x0369, 0x0373, +++ 0x037C, 0x0386, 0x038F, 0x0397, 0x039E, 0x03A4, 0x03A9, 0x03AC, 0x03AD, +++ 0xC483, 0xC493, 0xC4C3, 0xC50D, 0xC56E, 0xC5E1, 0xC662, 0xC6EE, 0xC780, +++ 0xC814, 0xC8A5, 0xC931, 0xC9B3, 0xCA26, 0xCA86, 0xCAD0, 0xCB00, 0xCB11, +++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, +++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, +++ 0xC492, 0xC4BC, 0xC4FF, 0xC556, 0xC5BF, 0xC636, 0xC6B7, 0xC73E, 0xC7CA, +++ 0xC855, 0xC8DD, 0xC95E, 0xC9D4, 0xCA3D, 0xCA94, 0xCAD7, 0xCB02, 0xCB11, +++ 0xCB02, 0xCAD7, 0xCA94, 0xCA3D, 0xC9D4, 0xC95E, 0xC8DD, 0xC855, 0xC7CA, +++ 0xC73E, 0xC6B7, 0xC636, 0xC5BF, 0xC556, 0xC4FF, 0xC4BC, 0xC492, 0xC483, +++ 0x0000, 0xFFFF, 0x0193, 0xFB78, 0xFD16, 0xB8F1, 0xB8EC, 0xB8DE, 0xB8C9, +++ 0xB8AD, 0xB88B, 0xB866, 0xB83D, 0xB813, 0xB7E8, 0xB7BE, 0xB795, 0xB770, +++ 0xB74E, 0xB732, 0xB71D, 0xB70F, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, +++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, +++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0xB8EC, 0xB8E0, 0xB8CD, 0xB8B3, +++ 0xB895, 0xB873, 0xB84D, 0xB826, 0xB7FD, 0xB7D5, 0xB7AE, 0xB788, 0xB766, +++ 0xB747, 0xB72E, 0xB71B, 0xB70E, 0xB70A, 0xB70E, 0xB71B, 0xB72E, 0xB747, +++ 0xB766, 0xB788, 0xB7AE, 0xB7D5, 0xB7FD, 0xB826, 0xB84D, 0xB873, 0xB895, +++ 0xB8B3, 0xB8CD, 0xB8E0, 0xB8EC, 0xB8F1, 0x03B5, 0xFDFE, 0x114E, 0x0265, +++ 0x0264, 0x0261, 0x025C, 0x0256, 0x024F, 0x0247, 0x023E, 0x0235, 0x022B, +++ 0x0222, 0x0219, 0x0211, 0x020A, 0x0204, 0x01FF, 0x01FC, 0x01FB, 0x01FC, +++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, +++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x0264, +++ 0x0261, 0x025D, 0x0258, 0x0251, 0x024A, 0x0241, 0x0239, 0x0230, 0x0227, +++ 0x021E, 0x0216, 0x020F, 0x0208, 0x0203, 0x01FE, 0x01FC, 0x01FB, 0x01FC, +++ 0x01FE, 0x0203, 0x0208, 0x020F, 0x0216, 0x021E, 0x0227, 0x0230, 0x0239, +++ 0x0241, 0x024A, 0x0251, 0x0258, 0x025D, 0x0261, 0x0264, 0x0265, 0x03F7, +++ 0x03F7, 0x03F4, 0x03F0, 0x03EB, 0x03E4, 0x03DD, 0x03D6, 0x03CE, 0x03C6, +++ 0x03BE, 0x03B6, 0x03AF, 0x03A9, 0x03A4, 0x03A0, 0x039D, 0x039C, 0x039D, +++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, +++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0x03F7, 0x03F7, +++ 0x03F4, 0x03F1, 0x03EC, 0x03E6, 0x03E0, 0x03D9, 0x03D1, 0x03CA, 0x03C2, +++ 0x03BB, 0x03B4, 0x03AE, 0x03A8, 0x03A3, 0x03A0, 0x039D, 0x039C, 0x039D, +++ 0x03A0, 0x03A3, 0x03A8, 0x03AE, 0x03B4, 0x03BB, 0x03C2, 0x03CA, 0x03D1, +++ 0x03D9, 0x03E0, 0x03E6, 0x03EC, 0x03F1, 0x03F4, 0x03F7, 0xD10C, 0xD0FB, +++ 0xD0C9, 0xD07A, 0xD014, 0xCF9A, 0xCF12, 0xCE7E, 0xCDE4, 0xCD48, 0xCCAD, +++ 0xCC1A, 0xCB91, 0xCB17, 0xCAB1, 0xCA63, 0xCA31, 0xCA1F, 0xCA2F, 0xCA5C, +++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, +++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, 0xD0FD, 0xD0D0, +++ 0xD089, 0xD02D, 0xCFBE, 0xCF41, 0xCEB8, 0xCE29, 0xCD96, 0xCD02, 0xCC73, +++ 0xCBEB, 0xCB6D, 0xCAFF, 0xCAA2, 0xCA5C, 0xCA2F, 0xCA1F, 0xCA2F, 0xCA5C, +++ 0xCAA2, 0xCAFF, 0xCB6D, 0xCBEB, 0xCC73, 0xCD02, 0xCD96, 0xCE29, 0xCEB8, +++ 0xCF41, 0xCFBE, 0xD02D, 0xD089, 0xD0D0, 0xD0FD, 0xD10C, ++ }; ++ +diff --git a/assets/anims/anim_6F_70.inc.c b/assets/anims/anim_6F_70.inc.c +index aa21be5..7bb982f 100644 +--- a/assets/anims/anim_6F_70.inc.c ++++ b/assets/anims/anim_6F_70.inc.c +@@ -24,35 +24,46 @@ static const struct Animation anim_70[] = { + + + static const u16 anim_6F_70_indices[] = { +- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x000A, 0x0027, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0026, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0025, +- 0x0001, 0x0021, 0x0001, 0x0022, 0x0001, 0x0023, +- 0x0001, 0x0007, 0x0001, 0x0008, 0x0001, 0x0009, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0006, +- 0x0001, 0x0003, 0x0001, 0x0004, 0x0001, 0x0005, +- 0x0001, 0x001D, 0x0001, 0x001E, 0x0001, 0x001F, +- 0x0001, 0x000C, 0x0001, 0x000D, 0x0001, 0x000E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000A, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0020, +- 0x0001, 0x001A, 0x0001, 0x001B, 0x0001, 0x001C, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0019, +- 0x0001, 0x0016, 0x0001, 0x0017, 0x0001, 0x0018, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0024, +- 0x0001, 0x0013, 0x0001, 0x0014, 0x0001, 0x0015, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0012, +- 0x0001, 0x000F, 0x0001, 0x0010, 0x0001, 0x0011, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x000A, 0x0006, 0x0003, 0x0010, 0x000A, 0x0013, ++ 0x0008, 0x001D, 0x000A, 0x0025, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, ++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, ++ 0x0001, 0x0036, 0x0001, 0x0037, 0x0001, 0x0038, 0x000A, 0x0039, 0x0006, ++ 0x0043, 0x0001, 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, ++ 0x0001, 0x004D, 0x0001, 0x004E, 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, ++ 0x0051, 0x0001, 0x0052, 0x0009, 0x0053, 0x0009, 0x005C, 0x0001, 0x0065, ++ 0x000A, 0x0066, 0x000A, 0x0070, 0x0001, 0x007A, 0x0007, 0x007B, 0x000A, ++ 0x0082, 0x0001, 0x008C, 0x0001, 0x008D, 0x0001, 0x008E, 0x0001, 0x008F, ++ 0x000A, 0x0090, 0x000A, 0x009A, 0x0001, 0x00A4, 0x0001, 0x00A5, 0x0001, ++ 0x00A6, 0x0001, 0x00A7, 0x000A, 0x00A8, 0x000A, 0x00B2, 0x0001, 0x00BC, ++ 0x0001, 0x00BD, 0x0001, 0x00BE, 0x0001, 0x00BF, 0x0009, 0x00C0, 0x0008, ++ 0x00C9, 0x0001, 0x00D1, 0x0001, 0x00D2, 0x0001, 0x00D3, 0x0001, 0x00D4, + }; + + static const s16 anim_6F_70_values[] = { +- 0x0000, 0x0090, 0x3FFF, 0x00A8, 0xF984, 0xE96B, 0xC898, 0x1106, +- 0xE692, 0xB427, 0xED8C, 0xC68E, 0xF40A, 0x1E67, 0xB4BD, 0x001B, +- 0x025B, 0xCB25, 0x5AFE, 0x008D, 0xFECB, 0x83AC, 0x0095, 0xFF09, +- 0xCC42, 0x5730, 0xFFBA, 0x0051, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, +- 0xBF5F, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x2A6B, 0x0F71, 0x3FFF, +- 0x5948, 0x7290, 0x8BD8, 0xA521, 0xBE69, 0xD7B2, 0xF0FA, 0x0A43, +- 0x238B, ++ 0x0000, 0x0090, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x3FFF, 0x5998, 0x7332, 0x8CCB, 0xA665, 0xBFFE, 0xD998, 0xF331, ++ 0x0CCC, 0x2665, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0F71, 0x0001, 0x0001, 0xF600, 0xFFFE, 0x0001, 0xC170, ++ 0x1105, 0xE691, 0xA0E5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xC897, 0x00A8, 0xF983, 0xE96A, 0xFFFE, 0x0001, 0xC170, 0xF408, ++ 0x1E67, 0xA17A, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0xC68D, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xED8B, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, 0xFFB9, 0x0051, 0x7778, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x5730, 0x00F3, 0xFF26, 0xA56A, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, ++ 0x008D, 0xFECA, 0x7553, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x5AFE, 0xFEE3, 0x0264, 0xA441, + }; + +diff --git a/assets/anims/anim_6F_70.inc.c.rej b/assets/anims/anim_6F_70.inc.c.rej +new file mode 100644 +index 0000000..bfd8603 +--- /dev/null ++++ b/assets/anims/anim_6F_70.inc.c.rej +@@ -0,0 +1,75 @@ ++diff a/assets/anims/anim_6F_70.inc.c b/assets/anims/anim_6F_70.inc.c (rejected hunks) ++@@ -24,35 +24,46 @@ static const struct Animation anim_70[] = { ++ ++ ++ static const u16 anim_6F_70_indices[] = { ++- 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0002, 0x0001, 0x0000, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x000A, 0x0027, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0026, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0025, ++- 0x0001, 0x0021, 0x0001, 0x0022, 0x0001, 0x0023, ++- 0x0001, 0x0007, 0x0001, 0x0008, 0x0001, 0x0009, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0006, ++- 0x0001, 0x0003, 0x0001, 0x0004, 0x0001, 0x0005, ++- 0x0001, 0x001D, 0x0001, 0x001E, 0x0001, 0x001F, ++- 0x0001, 0x000C, 0x0001, 0x000D, 0x0001, 0x000E, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000B, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x000A, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0020, ++- 0x0001, 0x001A, 0x0001, 0x001B, 0x0001, 0x001C, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0019, ++- 0x0001, 0x0016, 0x0001, 0x0017, 0x0001, 0x0018, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0024, ++- 0x0001, 0x0013, 0x0001, 0x0014, 0x0001, 0x0015, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0012, ++- 0x0001, 0x000F, 0x0001, 0x0010, 0x0001, 0x0011, +++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, +++ 0x0004, 0x0001, 0x0005, 0x000A, 0x0006, 0x0003, 0x0010, 0x000A, 0x0013, +++ 0x0008, 0x001D, 0x000A, 0x0025, 0x0001, 0x002F, 0x0001, 0x0030, 0x0001, +++ 0x0031, 0x0001, 0x0032, 0x0001, 0x0033, 0x0001, 0x0034, 0x0001, 0x0035, +++ 0x0001, 0x0036, 0x0001, 0x0037, 0x0001, 0x0038, 0x000A, 0x0039, 0x0006, +++ 0x0043, 0x0001, 0x0049, 0x0001, 0x004A, 0x0001, 0x004B, 0x0001, 0x004C, +++ 0x0001, 0x004D, 0x0001, 0x004E, 0x0001, 0x004F, 0x0001, 0x0050, 0x0001, +++ 0x0051, 0x0001, 0x0052, 0x0009, 0x0053, 0x0009, 0x005C, 0x0001, 0x0065, +++ 0x000A, 0x0066, 0x000A, 0x0070, 0x0001, 0x007A, 0x0007, 0x007B, 0x000A, +++ 0x0082, 0x0001, 0x008C, 0x0001, 0x008D, 0x0001, 0x008E, 0x0001, 0x008F, +++ 0x000A, 0x0090, 0x000A, 0x009A, 0x0001, 0x00A4, 0x0001, 0x00A5, 0x0001, +++ 0x00A6, 0x0001, 0x00A7, 0x000A, 0x00A8, 0x000A, 0x00B2, 0x0001, 0x00BC, +++ 0x0001, 0x00BD, 0x0001, 0x00BE, 0x0001, 0x00BF, 0x0009, 0x00C0, 0x0008, +++ 0x00C9, 0x0001, 0x00D1, 0x0001, 0x00D2, 0x0001, 0x00D3, 0x0001, 0x00D4, ++ }; ++ ++ static const s16 anim_6F_70_values[] = { ++- 0x0000, 0x0090, 0x3FFF, 0x00A8, 0xF984, 0xE96B, 0xC898, 0x1106, ++- 0xE692, 0xB427, 0xED8C, 0xC68E, 0xF40A, 0x1E67, 0xB4BD, 0x001B, ++- 0x025B, 0xCB25, 0x5AFE, 0x008D, 0xFECB, 0x83AC, 0x0095, 0xFF09, ++- 0xCC42, 0x5730, 0xFFBA, 0x0051, 0x85D1, 0x7FFF, 0x7FFF, 0x4171, ++- 0xBF5F, 0x7FFF, 0x7FFF, 0x4171, 0xBF5F, 0x2A6B, 0x0F71, 0x3FFF, ++- 0x5948, 0x7290, 0x8BD8, 0xA521, 0xBE69, 0xD7B2, 0xF0FA, 0x0A43, ++- 0x238B, +++ 0x0000, 0x0090, 0x0000, 0x0000, 0x3FFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x3FFF, 0x5998, 0x7332, 0x8CCB, 0xA665, 0xBFFE, 0xD998, 0xF331, +++ 0x0CCC, 0x2665, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0F71, 0x0001, 0x0001, 0xF600, 0xFFFE, 0x0001, 0xC170, +++ 0x1105, 0xE691, 0xA0E5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xC897, 0x00A8, 0xF983, 0xE96A, 0xFFFE, 0x0001, 0xC170, 0xF408, +++ 0x1E67, 0xA17A, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0xC68D, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xED8B, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, 0xFFB9, 0x0051, 0x7778, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x5730, 0x00F3, 0xFF26, 0xA56A, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xBF5E, +++ 0x008D, 0xFECA, 0x7553, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x5AFE, 0xFEE3, 0x0264, 0xA441, ++ }; ++ +diff --git a/assets/anims/anim_72_73.inc.c b/assets/anims/anim_72_73.inc.c +index 411baab..6efe1d8 100644 +--- a/assets/anims/anim_72_73.inc.c ++++ b/assets/anims/anim_72_73.inc.c +@@ -1,53 +1,53 @@ + static const struct Animation anim_72[] = { +- 0, +- 189, +- 0, +- 0, +- 0x48, +- ANIMINDEX_NUMPARTS(anim_72_73_indices), +- anim_72_73_values, +- anim_72_73_indices, +- 0, ++ 0, ++ 189, ++ 0, ++ 0, ++ 0x48, ++ ANIMINDEX_NUMPARTS(anim_72_73_indices), ++ anim_72_73_values, ++ anim_72_73_indices, ++ 0, + }; + + static const struct Animation anim_73[] = { +- 0, +- 189, +- 0, +- 0, +- 0x48, +- ANIMINDEX_NUMPARTS(anim_72_73_indices), +- anim_72_73_values, +- anim_72_73_indices, +- 0, ++ 0, ++ 189, ++ 0, ++ 0, ++ 0x48, ++ ANIMINDEX_NUMPARTS(anim_72_73_indices), ++ anim_72_73_values, ++ anim_72_73_indices, ++ 0, + }; + + + static const u16 anim_72_73_indices[] = { +- 0x0001, 0x0000, 0x0048, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0049, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0833, +- 0x0048, 0x07A3, 0x0001, 0x0000, 0x0048, 0x07EB, +- 0x0048, 0x0713, 0x0001, 0x0000, 0x0048, 0x075B, +- 0x0001, 0x070F, 0x0001, 0x0710, 0x0001, 0x0711, +- 0x0048, 0x0123, 0x0048, 0x016B, 0x0048, 0x01B3, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x00DB, +- 0x0048, 0x004A, 0x0048, 0x0092, 0x0001, 0x00DA, +- 0x0001, 0x067C, 0x0001, 0x067D, 0x0001, 0x067E, +- 0x0048, 0x031B, 0x0048, 0x0363, 0x0048, 0x03AB, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x02D3, +- 0x0048, 0x01FB, 0x0048, 0x0243, 0x0048, 0x028B, +- 0x0001, 0x0000, 0x0048, 0x067F, 0x0048, 0x06C7, +- 0x0048, 0x05A4, 0x0048, 0x05EC, 0x0048, 0x0634, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x055C, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0514, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0712, +- 0x0001, 0x0483, 0x0048, 0x0484, 0x0048, 0x04CC, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x043B, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x03F3, ++ 0x0001, 0x0000, 0x0048, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0049, 0x0001, 0x0000, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0833, ++ 0x0048, 0x07A3, 0x0001, 0x0000, 0x0048, 0x07EB, ++ 0x0048, 0x0713, 0x0001, 0x0000, 0x0048, 0x075B, ++ 0x0001, 0x070F, 0x0001, 0x0710, 0x0001, 0x0711, ++ 0x0048, 0x0123, 0x0048, 0x016B, 0x0048, 0x01B3, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x00DB, ++ 0x0048, 0x004A, 0x0048, 0x0092, 0x0001, 0x00DA, ++ 0x0001, 0x067C, 0x0001, 0x067D, 0x0001, 0x067E, ++ 0x0048, 0x031B, 0x0048, 0x0363, 0x0048, 0x03AB, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x02D3, ++ 0x0048, 0x01FB, 0x0048, 0x0243, 0x0048, 0x028B, ++ 0x0001, 0x0000, 0x0048, 0x067F, 0x0048, 0x06C7, ++ 0x0048, 0x05A4, 0x0048, 0x05EC, 0x0048, 0x0634, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x055C, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x0514, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0712, ++ 0x0001, 0x0483, 0x0048, 0x0484, 0x0048, 0x04CC, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x043B, ++ 0x0001, 0x0000, 0x0001, 0x0000, 0x0048, 0x03F3, + }; + + static const s16 anim_72_73_values[] = { +- 0x0000, 0x00C0, 0x00BD, 0x00B8, 0x00B4, 0x00B1, 0x00AF, 0x00AD, ++ 0x0000, 0x00C0, 0x00BD, 0x00B8, 0x00B4, 0x00B1, 0x00AF, 0x00AD, + 0x00AB, 0x00AC, 0x00AE, 0x00B0, 0x00B3, 0x00B7, 0x00BA, 0x00BE, + 0x00C2, 0x00C5, 0x00C8, 0x00CB, 0x00CE, 0x00D1, 0x00D3, 0x00D6, + 0x00D8, 0x00D9, 0x00D9, 0x00D9, 0x00D8, 0x00D7, 0x00D5, 0x00D2, +diff --git a/assets/anims/anim_81.inc.c b/assets/anims/anim_81.inc.c +index f82ba32..c6bbe81 100644 +--- a/assets/anims/anim_81.inc.c ++++ b/assets/anims/anim_81.inc.c +@@ -3,7 +3,7 @@ static const struct Animation anim_81[] = { + 189, + 0, + 0, +- 0x32, ++ 97, + ANIMINDEX_NUMPARTS(anim_81_indices), + anim_81_values, + anim_81_indices, +@@ -12,298 +12,332 @@ static const struct Animation anim_81[] = { + + + static const u16 anim_81_indices[] = { +- 0x0001, 0x0000, 0x0032, 0x0001, 0x0032, 0x0033, 0x0001, 0x0000, 0x0001, 0x0065, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0838, +- 0x0032, 0x07A2, 0x0032, 0x07D4, 0x0032, 0x0806, +- 0x0032, 0x070C, 0x0032, 0x073E, 0x0032, 0x0770, +- 0x0032, 0x0675, 0x0032, 0x06A7, 0x0032, 0x06D9, +- 0x0032, 0x012E, 0x0032, 0x0160, 0x0032, 0x0192, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00FC, +- 0x0032, 0x0066, 0x0032, 0x0098, 0x0032, 0x00CA, +- 0x0032, 0x05DE, 0x0032, 0x0610, 0x0032, 0x0642, +- 0x0032, 0x028C, 0x0032, 0x02BE, 0x0032, 0x02F0, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x025A, +- 0x0032, 0x01C4, 0x0032, 0x01F6, 0x0032, 0x0228, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0674, +- 0x0032, 0x0548, 0x0032, 0x057A, 0x0032, 0x05AC, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0516, +- 0x0032, 0x0480, 0x0032, 0x04B2, 0x0032, 0x04E4, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x070B, +- 0x0032, 0x03EA, 0x0032, 0x041C, 0x0032, 0x044E, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x03B8, +- 0x0032, 0x0322, 0x0032, 0x0354, 0x0032, 0x0386, ++ 0x0001, 0x0000, 0x0010, 0x0001, 0x0001, 0x0011, 0x0011, 0x0012, 0x0011, ++ 0x0023, 0x0011, 0x0034, 0x0010, 0x0045, 0x0011, 0x0055, 0x0001, 0x0066, ++ 0x0062, 0x0067, 0x0062, 0x00C9, 0x0061, 0x012B, 0x0059, 0x018C, 0x0059, ++ 0x01E5, 0x0059, 0x023E, 0x0001, 0x0297, 0x0001, 0x0298, 0x0001, 0x0299, ++ 0x0059, 0x029A, 0x0058, 0x02F3, 0x0059, 0x034B, 0x0011, 0x03A4, 0x0011, ++ 0x03B5, 0x0011, 0x03C6, 0x0011, 0x03D7, 0x0011, 0x03E8, 0x0011, 0x03F9, ++ 0x0011, 0x040A, 0x0011, 0x041B, 0x0010, 0x042C, 0x0059, 0x043C, 0x0059, ++ 0x0495, 0x0059, 0x04EE, 0x0011, 0x0547, 0x0011, 0x0558, 0x0011, 0x0569, ++ 0x0011, 0x057A, 0x0011, 0x058B, 0x0011, 0x059C, 0x0011, 0x05AD, 0x000D, ++ 0x05BE, 0x0001, 0x05CB, 0x0011, 0x05CC, 0x0011, 0x05DD, 0x0011, 0x05EE, ++ 0x0011, 0x05FF, 0x0011, 0x0610, 0x0011, 0x0621, 0x0011, 0x0632, 0x0011, ++ 0x0643, 0x0011, 0x0654, 0x0059, 0x0665, 0x0059, 0x06BE, 0x0057, 0x0717, ++ 0x0062, 0x076E, 0x0062, 0x07D0, 0x0062, 0x0832, 0x0062, 0x0894, 0x0062, ++ 0x08F6, 0x0062, 0x0958, 0x0062, 0x09BA, 0x0062, 0x0A1C, 0x0062, 0x0A7E, + }; + + static const s16 anim_81_values[] = { +- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, +- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, +- 0x00AB, 0x00AB, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +- 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, +- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, +- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3FFF, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, +- 0x0009, 0x000A, 0x000B, 0x000D, 0x000E, 0x0010, 0x0011, 0x0013, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, +- 0xF97B, 0xF97B, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, +- 0xF979, 0xF979, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8B, 0xED8A, 0xED88, 0xED85, 0xED82, 0xED7D, 0xED79, 0xED73, +- 0xED6D, 0xED67, 0xED60, 0xED58, 0xED51, 0xED48, 0xED40, 0xED37, +- 0xED2E, 0xED24, 0xED1B, 0xED11, 0xCA4F, 0xCA42, 0xCA1E, 0xC9EA, +- 0xC9AC, 0xC969, 0xC929, 0xC8F0, 0xC8C7, 0xC8B1, 0xC8B6, 0xC8DC, +- 0xC929, 0xC9A2, 0xCA4F, 0xCB44, 0xCC88, 0xCE0F, 0xCFC9, 0xD1AB, +- 0xD3A6, 0xD5AC, 0xD7B0, 0xD9A5, 0xDB7D, 0xDD29, 0xDE9E, 0xDFCC, +- 0xE0A7, 0xE120, 0xE161, 0xE19B, 0xE1CF, 0xE1FD, 0xE225, 0xE246, +- 0xE262, 0xE279, 0xE28B, 0xE297, 0xE29F, 0xE2A3, 0xE2A2, 0xE29C, +- 0xE293, 0xE286, 0xE276, 0xE263, 0xE24C, 0xE232, 0xFB1D, 0xFB2B, +- 0xFB52, 0xFB8F, 0xFBDC, 0xFC36, 0xFC98, 0xFCFE, 0xFD65, 0xFDC7, +- 0xFE21, 0xFE6E, 0xFEAA, 0xFED1, 0xFEDF, 0xFED4, 0xFEB3, 0xFE81, +- 0xFE3F, 0xFDF2, 0xFD9D, 0xFD42, 0xFCE5, 0xFC88, 0xFC2F, 0xFBDE, +- 0xFB97, 0xFB5D, 0xFB33, 0xFB1D, 0xFB0D, 0xFAF4, 0xFAD2, 0xFAA9, +- 0xFA77, 0xFA3E, 0xF9FF, 0xF9B8, 0xF96C, 0xF91A, 0xF8C3, 0xF867, +- 0xF806, 0xF7A2, 0xF739, 0xF6CE, 0xF660, 0xF5F0, 0xF57D, 0xF50A, +- 0xD2DC, 0xD2FE, 0xD35F, 0xD3F3, 0xD4B1, 0xD58D, 0xD67F, 0xD77A, +- 0xD876, 0xD967, 0xDA44, 0xDB01, 0xDB95, 0xDBF6, 0xDC18, 0xDBFC, +- 0xDBAC, 0xDB30, 0xDA8F, 0xD9D2, 0xD900, 0xD820, 0xD73B, 0xD658, +- 0xD57E, 0xD4B6, 0xD407, 0xD378, 0xD312, 0xD2DC, 0xD2C0, 0xD2A4, +- 0xD288, 0xD26C, 0xD250, 0xD234, 0xD217, 0xD1FB, 0xD1DF, 0xD1C4, +- 0xD1A8, 0xD18D, 0xD172, 0xD157, 0xD13D, 0xD123, 0xD10A, 0xD0F1, +- 0xD0D9, 0xD0C1, 0xD4B4, 0xD4A4, 0xD478, 0xD434, 0xD3DD, 0xD378, +- 0xD309, 0xD296, 0xD223, 0xD1B4, 0xD14F, 0xD0F8, 0xD0B4, 0xD088, +- 0xD078, 0xD085, 0xD0AA, 0xD0E3, 0xD12C, 0xD183, 0xD1E3, 0xD24A, +- 0xD2B3, 0xD31B, 0xD37F, 0xD3DA, 0xD42B, 0xD46C, 0xD49B, 0xD4B4, +- 0xD4C6, 0xD4E4, 0xD50C, 0xD53F, 0xD57B, 0xD5C0, 0xD60E, 0xD664, +- 0xD6C1, 0xD726, 0xD791, 0xD802, 0xD879, 0xD8F5, 0xD975, 0xD9F9, +- 0xDA80, 0xDB0B, 0xDB98, 0xDC26, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xFFFD, 0xFFF4, 0xFFE4, 0xFFCF, 0xFFB5, 0xFF95, +- 0xFF71, 0xFF49, 0xFF1C, 0xFEEC, 0xFEB9, 0xFE83, 0xFE4A, 0xFE0E, +- 0xFDD1, 0xFD92, 0xFD52, 0xFD11, 0xFCCF, 0xFC8D, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, +- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF548, 0xF546, 0xF545, 0xF543, 0xF541, 0xF53F, 0xF53C, 0xF539, +- 0xF536, 0xF533, 0xF530, 0xF52D, 0xF529, 0xF526, 0xF522, 0xF51E, +- 0xF51A, 0xF517, 0xC7DD, 0xC7D7, 0xC7C5, 0xC7AB, 0xC78C, 0xC76A, +- 0xC74A, 0xC72E, 0xC719, 0xC70E, 0xC711, 0xC724, 0xC74A, 0xC787, +- 0xC7DD, 0xC858, 0xC8F9, 0xC9BB, 0xCA97, 0xCB86, 0xCC82, 0xCD84, +- 0xCE85, 0xCF7F, 0xD06A, 0xD141, 0xD1FC, 0xD295, 0xD305, 0xD346, +- 0xD36D, 0xD394, 0xD3BC, 0xD3E3, 0xD40B, 0xD432, 0xD45A, 0xD481, +- 0xD4A8, 0xD4CF, 0xD4F5, 0xD51B, 0xD540, 0xD564, 0xD588, 0xD5AA, +- 0xD5CC, 0xD5ED, 0xD60C, 0xD62B, 0x054B, 0x0539, 0x0505, 0x04B7, +- 0x0454, 0x03E5, 0x036E, 0x02F8, 0x0287, 0x0224, 0x01D4, 0x019E, +- 0x0189, 0x019B, 0x01DB, 0x0252, 0x02FF, 0x03D9, 0x04D7, 0x05F1, +- 0x071E, 0x0856, 0x098F, 0x0AC1, 0x0BE2, 0x0CEC, 0x0DD3, 0x0E91, +- 0x0F1B, 0x0F6A, 0x0F96, 0x0FC0, 0x0FE6, 0x100A, 0x102B, 0x1049, +- 0x1065, 0x107E, 0x1094, 0x10A8, 0x10BA, 0x10C9, 0x10D7, 0x10E2, +- 0x10EB, 0x10F3, 0x10F8, 0x10FC, 0x10FE, 0x10FE, 0x2BD6, 0x2BD6, +- 0x2BD4, 0x2BCE, 0x2BC3, 0x2BB3, 0x2B9A, 0x2B78, 0x2B4B, 0x2B11, +- 0x2ACA, 0x2A73, 0x2A0B, 0x2991, 0x2903, 0x2852, 0x2775, 0x2673, +- 0x2555, 0x2423, 0x22E4, 0x219F, 0x205E, 0x1F28, 0x1E04, 0x1CFB, +- 0x1C14, 0x1B57, 0x1ACC, 0x1A7B, 0x1A4C, 0x1A1F, 0x19F6, 0x19CF, +- 0x19AC, 0x198C, 0x196E, 0x1953, 0x193B, 0x1925, 0x1912, 0x1901, +- 0x18F3, 0x18E7, 0x18DD, 0x18D4, 0x18CE, 0x18CA, 0x18C8, 0x18C7, +- 0xCCF6, 0xCCEC, 0xCCD0, 0xCCA6, 0xCC72, 0xCC39, 0xCBFF, 0xCBC6, +- 0xCB94, 0xCB6D, 0xCB54, 0xCB4E, 0xCB5F, 0xCB8A, 0xCBD4, 0xCC46, +- 0xCCE2, 0xCDA1, 0xCE7C, 0xCF6C, 0xD069, 0xD16E, 0xD273, 0xD370, +- 0xD460, 0xD53B, 0xD5FA, 0xD697, 0xD709, 0xD74B, 0xD770, 0xD793, +- 0xD7B4, 0xD7D2, 0xD7ED, 0xD807, 0xD81E, 0xD833, 0xD846, 0xD856, +- 0xD865, 0xD872, 0xD87D, 0xD886, 0xD88E, 0xD894, 0xD898, 0xD89B, +- 0xD89C, 0xD89C, 0x0000, 0x0006, 0x0017, 0x0032, 0x0054, 0x007B, +- 0x00A7, 0x00D4, 0x0101, 0x012D, 0x0154, 0x0176, 0x0191, 0x01A2, +- 0x01A8, 0x01A3, 0x0194, 0x017E, 0x0160, 0x013D, 0x0117, 0x00EE, +- 0x00C4, 0x009B, 0x0074, 0x0050, 0x0031, 0x0018, 0x0007, 0x0000, +- 0xFFFE, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFF0, 0xFFEE, +- 0xFFEB, 0xFFE9, 0xFFE7, 0xFFE6, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, +- 0xFFDD, 0xFFDB, 0xFFDA, 0xFFD8, 0xFF30, 0xFF30, 0xFF30, 0xFF31, +- 0xFF31, 0xFF32, 0xFF32, 0xFF33, 0xFF34, 0xFF34, 0xFF35, 0xFF36, +- 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF35, 0xFF35, +- 0xFF34, 0xFF33, 0xFF33, 0xFF32, 0xFF32, 0xFF31, 0xFF31, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, +- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, +- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xC9D8, 0xC9D4, +- 0xC9C7, 0xC9B3, 0xC99A, 0xC97D, 0xC95D, 0xC93C, 0xC91A, 0xC8FB, +- 0xC8DD, 0xC8C4, 0xC8B1, 0xC8A4, 0xC89F, 0xC8A3, 0xC8AE, 0xC8BF, +- 0xC8D5, 0xC8EE, 0xC90B, 0xC929, 0xC947, 0xC966, 0xC983, 0xC99D, +- 0xC9B4, 0xC9C6, 0xC9D2, 0xC9D8, 0xC9DA, 0xC9DC, 0xC9DF, 0xC9E2, +- 0xC9E5, 0xC9E8, 0xC9EB, 0xC9EE, 0xC9F2, 0xC9F6, 0xC9FA, 0xC9FE, +- 0xCA03, 0xCA07, 0xCA0C, 0xCA11, 0xCA16, 0xCA1B, 0xCA20, 0xCA26, +- 0x1E4A, 0x1E50, 0x1E61, 0x1E7B, 0x1E9C, 0x1EC3, 0x1EEE, 0x1F1A, +- 0x1F47, 0x1F71, 0x1F98, 0x1FBA, 0x1FD4, 0x1FE5, 0x1FEB, 0x1FE6, +- 0x1FD7, 0x1FC1, 0x1FA4, 0x1F81, 0x1F5C, 0x1F33, 0x1F0A, 0x1EE2, +- 0x1EBB, 0x1E98, 0x1E7A, 0x1E62, 0x1E51, 0x1E4A, 0x1E47, 0x1E43, +- 0x1E3E, 0x1E39, 0x1E33, 0x1E2C, 0x1E25, 0x1E1C, 0x1E14, 0x1E0A, +- 0x1E00, 0x1DF5, 0x1DEA, 0x1DDE, 0x1DD1, 0x1DC4, 0x1DB6, 0x1DA8, +- 0x1D99, 0x1D8A, 0x1B09, 0x1B07, 0x1B02, 0x1AFB, 0x1AF2, 0x1AE7, +- 0x1ADC, 0x1AD0, 0x1AC3, 0x1AB8, 0x1AAD, 0x1AA4, 0x1A9D, 0x1A98, +- 0x1A96, 0x1A98, 0x1A9C, 0x1AA2, 0x1AAA, 0x1AB3, 0x1ABE, 0x1AC9, +- 0x1AD4, 0x1ADF, 0x1AEA, 0x1AF3, 0x1AFC, 0x1B02, 0x1B07, 0x1B09, +- 0x1B0A, 0x1B0B, 0x1B0D, 0x1B0F, 0x1B11, 0x1B14, 0x1B17, 0x1B1A, +- 0x1B1E, 0x1B21, 0x1B26, 0x1B2A, 0x1B2F, 0x1B34, 0x1B3A, 0x1B3F, +- 0x1B45, 0x1B4B, 0x1B52, 0x1B58, 0x1144, 0x1147, 0x114F, 0x115B, +- 0x116A, 0x117C, 0x1190, 0x11A4, 0x11B8, 0x11CC, 0x11DE, 0x11ED, +- 0x11F9, 0x1201, 0x1204, 0x1201, 0x11FB, 0x11F0, 0x11E3, 0x11D3, +- 0x11C2, 0x11B0, 0x119D, 0x118A, 0x1179, 0x1168, 0x115B, 0x114F, +- 0x1148, 0x1144, 0x1143, 0x1142, 0x1141, 0x1140, 0x113F, 0x113E, +- 0x113D, 0x113C, 0x113B, 0x113A, 0x1139, 0x1138, 0x1137, 0x1136, +- 0x1136, 0x1135, 0x1134, 0x1133, 0x1133, 0x1132, 0xAC44, 0xAC40, +- 0xAC35, 0xAC24, 0xAC0E, 0xABF4, 0xABD9, 0xABBC, 0xAB9F, 0xAB83, +- 0xAB69, 0xAB53, 0xAB42, 0xAB37, 0xAB33, 0xAB37, 0xAB40, 0xAB4F, +- 0xAB62, 0xAB78, 0xAB91, 0xABAB, 0xABC6, 0xABE0, 0xABF9, 0xAC10, +- 0xAC24, 0xAC34, 0xAC3F, 0xAC44, 0xAC46, 0xAC49, 0xAC4C, 0xAC50, +- 0xAC54, 0xAC59, 0xAC5F, 0xAC65, 0xAC6C, 0xAC73, 0xAC7B, 0xAC84, +- 0xAC8C, 0xAC96, 0xACA0, 0xACAA, 0xACB4, 0xACBF, 0xACCB, 0xACD7, +- 0x0000, 0xFFFA, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5C, 0xFF30, +- 0xFF04, 0xFED9, 0xFEB2, 0xFE91, 0xFE76, 0xFE65, 0xFE5F, 0xFE65, +- 0xFE75, 0xFE8D, 0xFEAC, 0xFED1, 0xFEF9, 0xFF24, 0xFF4F, 0xFF79, +- 0xFFA0, 0xFFC2, 0xFFDF, 0xFFF4, 0x0000, 0x0000, 0xFFFB, 0xFFF5, +- 0xFFEE, 0xFFE7, 0xFFDF, 0xFFD7, 0xFFCE, 0xFFC4, 0xFFBA, 0xFFB0, +- 0xFFA5, 0xFF99, 0xFF8E, 0xFF81, 0xFF75, 0xFF68, 0xFF5A, 0xFF4D, +- 0xFF3F, 0xFF30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFB, 0xFFF9, 0xFFF8, +- 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFC, 0x0000, +- 0x0005, 0x000A, 0x000F, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, +- 0x0034, 0x003B, 0x0042, 0x0049, 0x0050, 0x0057, 0x005E, 0x0066, +- 0x006D, 0x0075, 0x007D, 0x0084, 0xBF40, 0xBF40, 0xBF40, 0xBF40, +- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, +- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF3E, 0xBF3C, 0xBF39, 0xBF36, +- 0xBF33, 0xBF30, 0xBF2E, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2E, 0xBF32, +- 0xBF38, 0xBF40, 0xBF4A, 0xBF54, 0xBF5E, 0xBF68, 0xBF73, 0xBF7F, +- 0xBF8A, 0xBF96, 0xBFA2, 0xBFAF, 0xBFBB, 0xBFC8, 0xBFD5, 0xBFE3, +- 0xBFF0, 0xBFFE, 0xC00C, 0xC01A, 0xC028, 0xC037, 0x2537, 0x253D, +- 0x254E, 0x2568, 0x2589, 0x25B0, 0x25DB, 0x2607, 0x2634, 0x265E, +- 0x2685, 0x26A7, 0x26C1, 0x26D2, 0x26D8, 0x26D3, 0x26C4, 0x26AE, +- 0x2691, 0x266F, 0x2649, 0x2621, 0x25F8, 0x25CF, 0x25A9, 0x2585, +- 0x2567, 0x254F, 0x253E, 0x2537, 0x2534, 0x2530, 0x252C, 0x2527, +- 0x2522, 0x251C, 0x2516, 0x250F, 0x2507, 0x24FF, 0x24F7, 0x24EE, +- 0x24E4, 0x24DA, 0x24D0, 0x24C5, 0x24BA, 0x24AE, 0x24A2, 0x2495, +- 0xD64A, 0xD64C, 0xD651, 0xD658, 0xD662, 0xD66D, 0xD67A, 0xD686, +- 0xD693, 0xD69F, 0xD6AB, 0xD6B4, 0xD6BC, 0xD6C1, 0xD6C2, 0xD6C1, +- 0xD6BD, 0xD6B6, 0xD6AE, 0xD6A4, 0xD699, 0xD68E, 0xD682, 0xD676, +- 0xD66B, 0xD661, 0xD658, 0xD651, 0xD64C, 0xD64A, 0xD649, 0xD647, +- 0xD645, 0xD642, 0xD63E, 0xD63A, 0xD635, 0xD630, 0xD62A, 0xD623, +- 0xD61C, 0xD614, 0xD60C, 0xD603, 0xD5FA, 0xD5F1, 0xD5E7, 0xD5DC, +- 0xD5D1, 0xD5C6, 0xEC41, 0xEC3C, 0xEC2D, 0xEC17, 0xEBFA, 0xEBD9, +- 0xEBB5, 0xEB8F, 0xEB69, 0xEB45, 0xEB24, 0xEB08, 0xEAF1, 0xEAE3, +- 0xEADE, 0xEAE2, 0xEAEE, 0xEB02, 0xEB1A, 0xEB37, 0xEB58, 0xEB7A, +- 0xEB9D, 0xEBBF, 0xEBE0, 0xEBFE, 0xEC18, 0xEC2C, 0xEC3A, 0xEC41, +- 0xEC43, 0xEC45, 0xEC47, 0xEC49, 0xEC4A, 0xEC4C, 0xEC4D, 0xEC4F, +- 0xEC50, 0xEC51, 0xEC52, 0xEC53, 0xEC54, 0xEC54, 0xEC55, 0xEC56, +- 0xEC56, 0xEC56, 0xEC57, 0xEC57, 0xB59E, 0xB59B, 0xB590, 0xB581, +- 0xB56D, 0xB555, 0xB53C, 0xB521, 0xB507, 0xB4ED, 0xB4D6, 0xB4C2, +- 0xB4B2, 0xB4A8, 0xB4A4, 0xB4A7, 0xB4B0, 0xB4BE, 0xB4CF, 0xB4E3, +- 0xB4FA, 0xB512, 0xB52B, 0xB543, 0xB55A, 0xB56F, 0xB581, 0xB590, +- 0xB59A, 0xB59E, 0xB5A0, 0xB5A3, 0xB5A7, 0xB5AB, 0xB5B1, 0xB5B7, +- 0xB5BE, 0xB5C6, 0xB5CE, 0xB5D7, 0xB5E1, 0xB5EC, 0xB5F7, 0xB603, +- 0xB610, 0xB61D, 0xB62B, 0xB639, 0xB648, 0xB658, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFD, 0x7FFA, 0x7FF4, 0x7FEC, +- 0x7FE3, 0x7FD7, 0x7FCA, 0x7FBB, 0x7FAB, 0x7F9A, 0x7F87, 0x7F74, +- 0x7F60, 0x7F4B, 0x7F35, 0x7F1F, 0x7F09, 0x7EF2, 0x7EDC, 0x7EC5, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, +- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x8000, 0x8006, +- 0x800E, 0x801A, 0x8028, 0x8039, 0x804D, 0x8062, 0x807A, 0x8094, +- 0x80AF, 0x80CC, 0x80EA, 0x8109, 0x8129, 0x814A, 0x816B, 0x818C, +- 0x81AE, 0x81CF, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, +- 0x416C, 0x4160, 0x414C, 0x4130, 0x410E, 0x40E5, 0x40B6, 0x4082, +- 0x4049, 0x400C, 0x3FCB, 0x3F86, 0x3F3E, 0x3EF3, 0x3EA7, 0x3E59, +- 0x3E0A, 0x3DBA, 0x3D6A, 0x3D1B, 0xBF5F, 0x7FFF, 0x7FF5, 0x7FDA, +- 0x7FB4, 0x7F86, 0x7F56, 0x7F26, 0x7EFD, 0x7EDE, 0x7ECE, 0x7ED2, +- 0x7EEE, 0x7F26, 0x7F80, 0x7FFF, 0x80B2, 0x81A0, 0x82BF, 0x8404, +- 0x8565, 0x86D9, 0x8856, 0x89D1, 0x8B40, 0x8C9A, 0x8DD5, 0x8EE6, +- 0x8FC4, 0x9065, 0x90BE, 0x90EE, 0x911C, 0x9148, 0x9170, 0x9196, +- 0x91B9, 0x91DA, 0x91F9, 0x9215, 0x922F, 0x9246, 0x925B, 0x926E, +- 0x927F, 0x928F, 0x929C, 0x92A7, 0x92B0, 0x92B8, 0x92BE, 0x7FFF, +- 0x8002, 0x800C, 0x801B, 0x802D, 0x8040, 0x8052, 0x8062, 0x806E, +- 0x8074, 0x8072, 0x8068, 0x8052, 0x8030, 0x7FFF, 0x7FB9, 0x7F5D, +- 0x7EEE, 0x7E71, 0x7DE8, 0x7D59, 0x7CC6, 0x7C34, 0x7BA6, 0x7B20, +- 0x7AA6, 0x7A3D, 0x79E7, 0x79A9, 0x7987, 0x7974, 0x7962, 0x7951, +- 0x7942, 0x7933, 0x7925, 0x7919, 0x790D, 0x7902, 0x78F8, 0x78EF, +- 0x78E7, 0x78E0, 0x78D9, 0x78D3, 0x78CE, 0x78CA, 0x78C6, 0x78C3, +- 0x78C1, 0x4171, 0x416B, 0x415B, 0x4144, 0x4128, 0x410B, 0x40EE, +- 0x40D5, 0x40C3, 0x40B9, 0x40BB, 0x40CC, 0x40EE, 0x4124, 0x4171, +- 0x41DD, 0x426D, 0x431A, 0x43DE, 0x44B3, 0x4594, 0x4679, 0x475E, +- 0x483C, 0x490D, 0x49CB, 0x4A70, 0x4AF5, 0x4B56, 0x4B8C, 0x4BAA, +- 0x4BC5, 0x4BDF, 0x4BF8, 0x4C0F, 0x4C24, 0x4C38, 0x4C4A, 0x4C5B, +- 0x4C6B, 0x4C79, 0x4C86, 0x4C91, 0x4C9C, 0x4CA5, 0x4CAD, 0x4CB3, +- 0x4CB9, 0x4CBE, 0x4CC1, 0xBF5F, 0x0000, 0x0000, 0xFFFF, 0xFFFE, +- 0xFFFD, 0xFFFB, 0xFFFA, 0xFFF8, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF8, +- 0xFFFA, 0xFFFC, 0x0000, 0x0008, 0x0017, 0x002B, 0x0043, 0x005D, +- 0x0078, 0x0092, 0x00A9, 0x00BC, 0x00CA, 0x00D1, 0x00CF, 0x00C3, +- 0x00AC, 0x0087, 0x0054, 0x0014, 0xFFC8, 0xFF72, 0xFF13, 0xFEAD, +- 0xFE42, 0xFDD4, 0xFD64, 0xFCF4, 0xFC86, 0xFC1B, 0xFBB5, 0xFB57, +- 0xFB00, 0xFAB5, 0xFA75, 0xFA42, 0xFA20, 0xFA0E, 0x0000, 0x0000, +- 0xFFFE, 0xFFFB, 0xFFF8, 0xFFF4, 0xFFF1, 0xFFEE, 0xFFEC, 0xFFEA, +- 0xFFEB, 0xFFED, 0xFFF1, 0xFFF7, 0x0000, 0x000C, 0x001B, 0x002D, +- 0x0040, 0x0056, 0x006D, 0x0084, 0x009D, 0x00B5, 0x00CD, 0x00E5, +- 0x00FB, 0x0110, 0x0124, 0x0135, 0x0146, 0x015A, 0x016F, 0x0187, +- 0x019F, 0x01B8, 0x01D0, 0x01E9, 0x0200, 0x0215, 0x0229, 0x023A, +- 0x0248, 0x0252, 0x0258, 0x025A, 0x0257, 0x024E, 0x023E, 0x0228, +- 0xFC62, 0xFC5F, 0xFC57, 0xFC4B, 0xFC3C, 0xFC2C, 0xFC1A, 0xFC09, +- 0xFBFA, 0xFBED, 0xFBE4, 0xFBDF, 0xFBE0, 0xFBE9, 0xFBF9, 0xFC13, +- 0xFC36, 0xFC61, 0xFC92, 0xFCC9, 0xFD03, 0xFD3F, 0xFD7B, 0xFDB7, +- 0xFDF0, 0xFE25, 0xFE55, 0xFE7E, 0xFE9F, 0xFEB7, 0xFEC4, 0xFEC9, +- 0xFEC7, 0xFEBF, 0xFEB1, 0xFEA0, 0xFE8B, 0xFE75, 0xFE5F, 0xFE48, +- 0xFE33, 0xFE21, 0xFE12, 0xFE08, 0xFE04, 0xFE06, 0xFE11, 0xFE25, +- 0xFE43, 0xFE6C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFD, +- 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, +- 0xFFF4, 0xFFF2, 0xFFF1, 0xFFF0, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, +- 0x0017, 0x001C, 0x0020, 0x0023, 0x0024, 0x0023, 0x001F, 0x0018, +- 0x000E, 0x0000, 0xFFEF, 0xFFDB, 0xFFC6, 0xFFAE, 0xFF94, 0xFF78, +- 0xFF5B, 0xFF3D, 0xFF1D, 0xFEFB, 0xFED9, 0xFEB5, 0xFE91, 0xFE6C, +- 0xFE46, 0xFE1F, 0xFDF8, 0xFDD1, 0xFDAA, 0xFD82, 0x0884, 0x0890, +- 0x08B2, 0x08E4, 0x0922, 0x0966, 0x09AC, 0x09EF, 0x0A29, 0x0A55, +- 0x0A70, 0x0A72, 0x0A59, 0x0A1E, 0x09BD, 0x0925, 0x0850, 0x0749, +- 0x061C, 0x04D2, 0x0376, 0x0213, 0x00B5, 0xFF65, 0xFE2F, 0xFD1C, +- 0xFC39, 0xFB8F, 0xFB29, 0xFB13, 0xFB2B, 0xFB4C, 0xFB74, 0xFBA4, +- 0xFBDA, 0xFC17, 0xFC5A, 0xFCA4, 0xFCF3, 0xFD47, 0xFDA1, 0xFE00, +- 0xFE63, 0xFECA, 0xFF36, 0xFFA5, 0x0016, 0x008C, 0x0104, 0x017F, +- 0x40A1, 0x40A7, 0x40B8, 0x40D2, 0x40F4, 0x411B, 0x4145, 0x4172, +- 0x419E, 0x41C9, 0x41F0, 0x4211, 0x422B, 0x423C, 0x4242, 0x423D, +- 0x422F, 0x4219, 0x41FC, 0x41DA, 0x41B4, 0x418D, 0x4164, 0x413B, +- 0x4115, 0x40F2, 0x40D3, 0x40BB, 0x40A9, 0x40A1, 0x409E, 0x409A, +- 0x4097, 0x4094, 0x4091, 0x408E, 0x408C, 0x4089, 0x4087, 0x4084, +- 0x4082, 0x4080, 0x407E, 0x407C, 0x407B, 0x4079, 0x4077, 0x4076, +- 0x4075, 0x4073, ++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AC, 0x00AE, 0x00AF, 0x00B1, ++ 0x00B3, 0x00B5, 0x00B7, 0x00B9, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF, ++ 0x0000, 0x0000, 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, ++ 0xDCD0, 0xD68A, 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x3FFF, ++ 0x3FFF, 0x3FE8, 0x3FA6, 0x3F42, 0x3EC0, 0x3E27, 0x3D7E, 0x3CCC, 0x3C16, ++ 0x3B64, 0x3ABB, 0x3A22, 0x39A1, 0x393C, 0x38FB, 0x38E3, 0x0000, 0x0000, ++ 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, 0xDCD0, 0xD68A, ++ 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFFF4, 0xFFD5, 0xFFA4, ++ 0xFF65, 0xFF19, 0xFEC5, 0xFE69, 0xFE0A, 0xFDA9, 0xFD4A, 0xFCEF, 0xFC9A, ++ 0xFC4F, 0xFC11, 0xFBE1, 0xFBBB, 0xFB96, 0xFB73, 0xFB51, 0xFB31, 0xFB13, ++ 0xFAF5, 0xFAD9, 0xFABF, 0xFAA6, 0xFA8E, 0xFA77, 0xFA62, 0xFA4D, 0xFA3A, ++ 0xFA28, 0xFA17, 0xFA07, 0xF9F7, 0xF9E9, 0xF9DC, 0xF9CF, 0xF9C3, 0xF9B8, ++ 0xF9AE, 0xF9A4, 0xF99B, 0xF993, 0xF98B, 0xF984, 0xF97D, 0xF977, 0xF971, ++ 0xF96B, 0xF966, 0xF961, 0xF95C, 0xF958, 0xF953, 0xF94F, 0xF94B, 0xF947, ++ 0xF943, 0xF93F, 0xF93B, 0xF936, 0xF932, 0xF92D, 0xF928, 0xF923, 0xF91E, ++ 0xF918, 0xF912, 0xF90B, 0xF904, 0xF8FD, 0xF8F5, 0xF8EC, 0xF8E3, 0xF8D9, ++ 0xF8CE, 0xF8C3, 0xF8B7, 0xF8AA, 0xF89C, 0xF88D, 0xF87E, 0xF86D, 0xF85C, ++ 0xF849, 0xF835, 0xF821, 0xF80B, 0xF7F6, 0xF7DF, 0xF7C8, 0xF7B0, 0xF798, ++ 0xF780, 0xF768, 0xF74F, 0xFFFF, 0xFFFF, 0x0002, 0x0006, 0x000E, 0x0017, ++ 0x0023, 0x0030, 0x003F, 0x004E, 0x005E, 0x006E, 0x007E, 0x008E, 0x009C, ++ 0x00A9, 0x00B4, 0x00BF, 0x00C9, 0x00D2, 0x00DB, 0x00E4, 0x00EC, 0x00F4, ++ 0x00FB, 0x0102, 0x0109, 0x010F, 0x0116, 0x011B, 0x0121, 0x0126, 0x012B, ++ 0x0130, 0x0134, 0x0139, 0x013C, 0x0140, 0x0144, 0x0147, 0x014A, 0x014D, ++ 0x0150, 0x0152, 0x0154, 0x0157, 0x0159, 0x015B, 0x015C, 0x015E, 0x0160, ++ 0x0161, 0x0163, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016A, 0x016B, ++ 0x016C, 0x016D, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, 0x0175, 0x0176, ++ 0x0178, 0x017A, 0x017B, 0x017D, 0x017F, 0x0181, 0x0184, 0x0186, 0x0189, ++ 0x018B, 0x018E, 0x0192, 0x0195, 0x0199, 0x019C, 0x01A0, 0x01A5, 0x01A9, ++ 0x01AE, 0x01B3, 0x01B8, 0x01BE, 0x01C3, 0x01C9, 0x01CF, 0x01D4, 0x01DA, ++ 0x01E0, 0x01E6, 0x0884, 0x0884, 0x08B7, 0x0945, 0x0A22, 0x0B3E, 0x0C8B, ++ 0x0DFC, 0x0F82, 0x110F, 0x1295, 0x1406, 0x1553, 0x166F, 0x174C, 0x17DA, ++ 0x180D, 0x180C, 0x1808, 0x1802, 0x17FA, 0x17F0, 0x17E4, 0x17D6, 0x17C6, ++ 0x17B4, 0x17A0, 0x178A, 0x1773, 0x175B, 0x1740, 0x1725, 0x1707, 0x16E9, ++ 0x16C9, 0x16A9, 0x1687, 0x1664, 0x1640, 0x161B, 0x15F5, 0x15CF, 0x15A8, ++ 0x1580, 0x1558, 0x152F, 0x1506, 0x14DC, 0x14B2, 0x1488, 0x145E, 0x1434, ++ 0x140A, 0x13DF, 0x13B5, 0x138B, 0x1362, 0x1338, 0x1310, 0x12E7, 0x12BF, ++ 0x1298, 0x1271, 0x124B, 0x1226, 0x1202, 0x11DF, 0x11BD, 0x119C, 0x117C, ++ 0x115D, 0x1140, 0x1123, 0x1109, 0x10F0, 0x10D8, 0x10C2, 0x10AE, 0x109B, ++ 0x108B, 0x107C, 0x106F, 0x1064, 0x105C, 0x1055, 0x1051, 0x104E, 0x104C, ++ 0x104A, 0x1048, 0x1046, 0x1044, 0x1043, 0x1042, 0x1041, 0x1041, 0x1040, ++ 0x0000, 0x0000, 0xFFE4, 0xFF96, 0xFF1F, 0xFE85, 0xFDD0, 0xFD09, 0xFC35, ++ 0xFB5E, 0xFA8B, 0xF9C3, 0xF90E, 0xF874, 0xF7FD, 0xF7B0, 0xF794, 0xF794, ++ 0xF794, 0xF794, 0xF795, 0xF795, 0xF795, 0xF795, 0xF795, 0xF796, 0xF796, ++ 0xF796, 0xF796, 0xF797, 0xF797, 0xF797, 0xF797, 0xF798, 0xF798, 0xF798, ++ 0xF799, 0xF799, 0xF799, 0xF799, 0xF79A, 0xF79A, 0xF79A, 0xF79A, 0xF79A, ++ 0xF79A, 0xF79A, 0xF79A, 0xF794, 0xF780, 0xF760, 0xF735, 0xF6FF, 0xF6BE, ++ 0xF674, 0xF621, 0xF5C6, 0xF563, 0xF4F9, 0xF489, 0xF414, 0xF399, 0xF31A, ++ 0xF298, 0xF212, 0xF18A, 0xF101, 0xF077, 0xEFEC, 0xEF61, 0xEED8, 0xEE50, ++ 0xEDCB, 0xED48, 0xECC9, 0xEC4F, 0xEBD9, 0xEB69, 0xEAFF, 0xEA9C, 0xEA41, ++ 0xE9EE, 0xE9A4, 0xE964, 0xE92D, 0xE902, 0xE8E2, 0xE8CF, 0xE8C8, 0xFFFF, ++ 0xFFFF, 0xFFF9, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5B, 0xFF2D, 0xFEFD, ++ 0xFECD, 0xFE9F, 0xFE74, 0xFE4E, 0xFE2F, 0xFE17, 0xFE09, 0xFE00, 0xFDF8, ++ 0xFDF1, 0xFDE9, 0xFDE3, 0xFDDD, 0xFDD7, 0xFDD2, 0xFDCD, 0xFDC9, 0xFDC5, ++ 0xFDC1, 0xFDBE, 0xFDBB, 0xFDB9, 0xFDB7, 0xFDB5, 0xFDB3, 0xFDB1, 0xFDB0, ++ 0xFDAF, 0xFDAE, 0xFDAE, 0xFDAD, 0xFDAD, 0xFDAC, 0xFDAC, 0xFDAC, 0xFDAC, ++ 0xFDAC, 0xFDAC, 0xFDAD, 0xFDAF, 0xFDB3, 0xFDB7, 0xFDBD, 0xFDC5, 0xFDCD, ++ 0xFDD6, 0xFDE1, 0xFDEC, 0xFDF8, 0xFE04, 0xFE11, 0xFE1F, 0xFE2D, 0xFE3C, ++ 0xFE4B, 0xFE5A, 0xFE6A, 0xFE79, 0xFE89, 0xFE98, 0xFEA8, 0xFEB7, 0xFEC6, ++ 0xFED5, 0xFEE3, 0xFEF1, 0xFEFE, 0xFF0A, 0xFF16, 0xFF21, 0xFF2C, 0xFF35, ++ 0xFF3D, 0xFF44, 0xFF4A, 0xFF4F, 0xFF53, 0xFF55, 0xFF56, 0xFC61, 0xFC61, ++ 0xFC48, 0xFC01, 0xFB94, 0xFB08, 0xFA63, 0xF9AC, 0xF8EB, 0xF826, 0xF765, ++ 0xF6AF, 0xF60A, 0xF57D, 0xF510, 0xF4C9, 0xF4B0, 0xF4B3, 0xF4BB, 0xF4C8, ++ 0xF4DA, 0xF4EF, 0xF509, 0xF526, 0xF546, 0xF569, 0xF58E, 0xF5B5, 0xF5DE, ++ 0xF608, 0xF633, 0xF65F, 0xF68B, 0xF6B6, 0xF6E1, 0xF70B, 0xF734, 0xF75C, ++ 0xF781, 0xF7A4, 0xF7C4, 0xF7E1, 0xF7FA, 0xF810, 0xF822, 0xF82F, 0xF837, ++ 0xF839, 0xF836, 0xF82B, 0xF819, 0xF801, 0xF7E3, 0xF7C0, 0xF797, 0xF769, ++ 0xF736, 0xF700, 0xF6C5, 0xF687, 0xF646, 0xF602, 0xF5BC, 0xF574, 0xF52A, ++ 0xF4DF, 0xF493, 0xF446, 0xF3F9, 0xF3AD, 0xF361, 0xF316, 0xF2CC, 0xF284, ++ 0xF23D, 0xF1FA, 0xF1B9, 0xF17B, 0xF140, 0xF109, 0xF0D7, 0xF0A9, 0xF080, ++ 0xF05C, 0xF03E, 0xF027, 0xF015, 0xF00A, 0xF006, 0xFFFE, 0x0001, 0xC170, ++ 0xFB1C, 0xFB1C, 0xFB3F, 0xFBA3, 0xFC3D, 0xFD04, 0xFDED, 0xFEEE, 0xFFFF, ++ 0x0115, 0x0226, 0x0328, 0x0411, 0x04D7, 0x0571, 0x05D5, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, ++ 0x05F8, 0x05F8, 0x05F8, 0x05F9, 0x05FA, 0x05FD, 0x0600, 0x0605, 0x060A, ++ 0x0610, 0x0616, 0x061E, 0x0626, 0x062E, 0x0637, 0x0640, 0x064A, 0x0654, ++ 0x065F, 0x0669, 0x0674, 0x067F, 0x068A, 0x0695, 0x06A0, 0x06AB, 0x06B6, ++ 0x06C0, 0x06CB, 0x06D5, 0x06DF, 0x06E8, 0x06F1, 0x06F9, 0x0701, 0x0709, ++ 0x070F, 0x0715, 0x071A, 0x071F, 0x0722, 0x0724, 0x0726, 0x0727, 0xD2DB, ++ 0xD2DB, 0xD2EA, 0xD315, 0xD358, 0xD3AD, 0xD412, 0xD481, 0xD4F6, 0xD56E, ++ 0xD5E3, 0xD652, 0xD6B7, 0xD70C, 0xD74F, 0xD77A, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, ++ 0xD789, 0xD789, 0xD789, 0xD78A, 0xD78B, 0xD78D, 0xD78F, 0xD791, 0xD794, ++ 0xD797, 0xD79B, 0xD79E, 0xD7A2, 0xD7A7, 0xD7AB, 0xD7B0, 0xD7B4, 0xD7B9, ++ 0xD7BE, 0xD7C3, 0xD7C9, 0xD7CE, 0xD7D3, 0xD7D8, 0xD7DD, 0xD7E3, 0xD7E8, ++ 0xD7EC, 0xD7F1, 0xD7F6, 0xD7FA, 0xD7FE, 0xD802, 0xD806, 0xD80A, 0xD80D, ++ 0xD810, 0xD812, 0xD814, 0xD816, 0xD817, 0xD818, 0xD4B3, 0xD4B3, 0xD4B7, ++ 0xD4C2, 0xD4D4, 0xD4EA, 0xD504, 0xD521, 0xD53F, 0xD55E, 0xD57D, 0xD59A, ++ 0xD5B4, 0xD5CA, 0xD5DC, 0xD5E7, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, ++ 0xD5EF, 0xD5FC, 0xD610, 0xD62D, 0xD650, 0xD67A, 0xD6AA, 0xD6E0, 0xD71B, ++ 0xD75C, 0xD7A1, 0xD7EA, 0xD836, 0xD886, 0xD8D9, 0xD92D, 0xD984, 0xD9DD, ++ 0xDA36, 0xDA90, 0xDAEB, 0xDB45, 0xDB9E, 0xDBF7, 0xDC4E, 0xDCA3, 0xDCF5, ++ 0xDD45, 0xDD92, 0xDDDB, 0xDE1F, 0xDE60, 0xDE9B, 0xDED1, 0xDF01, 0xDF2B, ++ 0xDF4F, 0xDF6B, 0xDF7F, 0xDF8C, 0xDF90, 0xFFFF, 0xFFFF, 0xFF9F, 0xFE92, ++ 0xFCF2, 0xFADA, 0xF864, 0xF5AB, 0xF2CB, 0xEFDD, 0xECFC, 0xEA44, 0xE7CE, ++ 0xE5B6, 0xE416, 0xE309, 0xE2A9, 0x0000, 0x0000, 0x0025, 0x008C, 0x012B, ++ 0x01F8, 0x02E9, 0x03F3, 0x050D, 0x062C, 0x0746, 0x0850, 0x0941, 0x0A0E, ++ 0x0AAD, 0x0B14, 0x0B39, 0xCA4E, 0xCA4E, 0xC9DE, 0xC8A4, 0xC6BE, 0xC44C, ++ 0xC16C, 0xBE3F, 0xBAE3, 0xB777, 0xB41A, 0xB0ED, 0xAE0E, 0xAB9B, 0xA9B5, ++ 0xA87B, 0xA80B, 0x0000, 0x0000, 0x0079, 0x01CF, 0x03DE, 0x0686, 0x09A5, ++ 0x0D18, 0x10BD, 0x1474, 0x181A, 0x1B8D, 0x1EAC, 0x2153, 0x2363, 0x24B8, ++ 0x2532, 0xF97B, 0xF97B, 0xF929, 0xF844, 0xF6E1, 0xF517, 0xF2FE, 0xF0AC, ++ 0xEE38, 0xEBB8, 0xE944, 0xE6F1, 0xE4D8, 0xE30F, 0xE1AC, 0xE0C6, 0xE074, ++ 0xED8B, 0xED8B, 0xEDD6, 0xEEAA, 0xEFF2, 0xF198, 0xF387, 0xF5AB, 0xF7EF, ++ 0xFA3D, 0xFC81, 0xFEA5, 0x0095, 0x023B, 0x0383, 0x0457, 0x04A2, 0xFFFE, ++ 0xFFFE, 0xFFE7, 0xFFA7, 0xFF45, 0xFEC5, 0xFE30, 0xFD8A, 0xFCDC, 0xFC2A, ++ 0xFB7B, 0xFAD5, 0xFA40, 0xF9C1, 0xF95E, 0xF91E, 0xF907, 0x0001, 0x0001, ++ 0x0006, 0x0013, 0x0027, 0x0042, 0x0061, 0x0083, 0x00A7, 0x00CC, 0x00F1, ++ 0x0113, 0x0132, 0x014C, 0x0161, 0x016E, 0x0173, 0xC170, 0xC170, 0xC170, ++ 0xC16F, 0xC16D, 0xC16B, 0xC168, 0xC165, 0xC162, 0xC15F, 0xC15C, 0xC159, ++ 0xC156, 0xC154, 0xC152, 0xC151, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, ++ 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, ++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054D, 0x0552, ++ 0x055A, 0x0564, 0x0572, 0x0582, 0x0594, 0x05A8, 0x05BE, 0x05D7, 0x05F1, ++ 0x060C, 0x0629, 0x0647, 0x0666, 0x0686, 0x06A7, 0x06C8, 0x06EA, 0x070C, ++ 0x072E, 0x0750, 0x0772, 0x0793, 0x07B4, 0x07D4, 0x07F3, 0x0811, 0x082E, ++ 0x0849, 0x0863, 0x087B, 0x0892, 0x08A6, 0x08B8, 0x08C8, 0x08D5, 0x08E0, ++ 0x08E8, 0x08ED, 0x08EE, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, ++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD5, 0x2BD4, 0x2BD2, ++ 0x2BCF, 0x2BCB, 0x2BC7, 0x2BC2, 0x2BBC, 0x2BB6, 0x2BAF, 0x2BA8, 0x2BA0, ++ 0x2B98, 0x2B90, 0x2B88, 0x2B7F, 0x2B76, 0x2B6C, 0x2B63, 0x2B5A, 0x2B50, ++ 0x2B47, 0x2B3E, 0x2B34, 0x2B2B, 0x2B22, 0x2B1A, 0x2B11, 0x2B09, 0x2B02, ++ 0x2AFB, 0x2AF4, 0x2AEE, 0x2AE8, 0x2AE3, 0x2ADF, 0x2ADB, 0x2AD8, 0x2AD6, ++ 0x2AD5, 0x2AD4, 0xCCF5, 0xCCF5, 0xCD18, 0xCD7A, 0xCE11, 0xCED4, 0xCFB9, ++ 0xD0B7, 0xD1C2, 0xD2D3, 0xD3DF, 0xD4DC, 0xD5C1, 0xD684, 0xD71C, 0xD77E, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, ++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A7, 0xD7B8, 0xD7D6, 0xD7FE, ++ 0xD830, 0xD86B, 0xD8AF, 0xD8FC, 0xD950, 0xD9AB, 0xDA0C, 0xDA73, 0xDAE0, ++ 0xDB50, 0xDBC5, 0xDC3E, 0xDCB9, 0xDD36, 0xDDB4, 0xDE34, 0xDEB4, 0xDF33, ++ 0xDFB2, 0xE02F, 0xE0AA, 0xE122, 0xE197, 0xE208, 0xE274, 0xE2DB, 0xE33D, ++ 0xE398, 0xE3EC, 0xE438, 0xE47C, 0xE4B8, 0xE4EA, 0xE512, 0xE52F, 0xE541, ++ 0xE547, 0x0000, 0x0000, 0x0072, 0x01B2, 0x03A0, 0x061D, 0x090A, 0x0C45, ++ 0x0FB0, 0x132C, 0x1697, 0x19D2, 0x1CBF, 0x1F3C, 0x212A, 0x226A, 0x22DC, ++ 0x0000, 0x0000, 0xFFE0, 0xFF89, 0xFF02, 0xFE55, 0xFD89, 0xFCA8, 0xFBBA, ++ 0xFAC8, 0xF9D9, 0xF8F8, 0xF82D, 0xF77F, 0xF6F9, 0xF6A2, 0xF683, 0xC7DC, ++ 0xC7DC, 0xC780, 0xC67C, 0xC4EA, 0xC2E3, 0xC083, 0xBDE2, 0xBB1A, 0xB846, ++ 0xB57E, 0xB2DD, 0xB07D, 0xAE77, 0xACE5, 0xABE1, 0xAB84, 0xFFFF, 0xFFFF, ++ 0xFF76, 0xFDF5, 0xFBA2, 0xF8A3, 0xF51E, 0xF139, 0xED1C, 0xE8EB, 0xE4CD, ++ 0xE0E9, 0xDD64, 0xDA65, 0xD811, 0xD690, 0xD607, 0x0000, 0x0000, 0x005A, ++ 0x0156, 0x02DC, 0x04D3, 0x0722, 0x09AF, 0x0C61, 0x0F20, 0x11D3, 0x1460, ++ 0x16AF, 0x18A5, 0x1A2C, 0x1B28, 0x1B82, 0xF548, 0xF548, 0xF582, 0xF626, ++ 0xF724, 0xF86A, 0xF9EA, 0xFB92, 0xFD52, 0xFF1B, 0x00DC, 0x0284, 0x0404, ++ 0x054A, 0x0648, 0x06EB, 0x0726, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xD649, ++ 0xD649, 0xD6CD, 0xD841, 0xDA80, 0xDD65, 0xE0CC, 0xE48E, 0xE888, 0xEC94, ++ 0xF08E, 0xF450, 0xF7B6, 0xFA9B, 0xFCDA, 0xFE4E, 0xFED2, 0xEC40, 0xEC40, ++ 0xEC7B, 0xED22, 0xEE23, 0xEF6E, 0xF0F3, 0xF2A2, 0xF469, 0xF638, 0xF7FF, ++ 0xF9AE, 0xFB33, 0xFC7E, 0xFD7F, 0xFE26, 0xFE61, 0xB59D, 0xB59D, 0xB5EB, ++ 0xB6C6, 0xB819, 0xB9CD, 0xBBCE, 0xBE05, 0xC05C, 0xC2BF, 0xC516, 0xC74D, ++ 0xC94D, 0xCB02, 0xCC55, 0xCD30, 0xCD7E, 0x0000, 0x0000, 0xFFFD, 0xFFF7, ++ 0xFFEE, 0xFFE3, 0xFFD5, 0xFFC6, 0xFFB7, 0xFFA6, 0xFF97, 0xFF88, 0xFF7A, ++ 0xFF6F, 0xFF66, 0xFF60, 0xFF5E, 0xFFFF, 0xFFFF, 0x0005, 0x0011, 0x0025, ++ 0x003F, 0x005C, 0x007E, 0x00A1, 0x00C4, 0x00E7, 0x0108, 0x0126, 0x0140, ++ 0x0153, 0x0160, 0x0165, 0x2537, 0x2537, 0x24CF, 0x23A9, 0x21E4, 0x1F9B, ++ 0x1CED, 0x19F5, 0x16D3, 0x13A1, 0x107E, 0x0D87, 0x0AD9, 0x0890, 0x06CB, ++ 0x05A5, 0x053D, 0xFFFF, 0xFFFF, 0xFFF0, 0xFFC4, 0xFF81, 0xFF2B, 0xFEC6, ++ 0xFE56, 0xFDE0, 0xFD67, 0xFCF1, 0xFC81, 0xFC1C, 0xFBC6, 0xFB83, 0xFB58, ++ 0xFB48, 0x0000, 0x0000, 0xFFD3, 0xFF58, 0xFE9A, 0xFDA6, 0xFC86, 0xFB48, ++ 0xF9F8, 0xF8A2, 0xF752, 0xF614, 0xF4F4, 0xF3FF, 0xF342, 0xF2C7, 0xF29B, ++ 0xBF3F, 0xBF3F, 0xBF51, 0xBF84, 0xBFD3, 0xC038, 0xC0AF, 0xC132, 0xC1BD, ++ 0xC24B, 0xC2D6, 0xC359, 0xC3D0, 0xC435, 0xC484, 0xC4B6, 0xC4C8, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, 0x001A, 0x0022, ++ 0x002C, 0x0036, 0x0042, 0x004E, 0x005B, 0x0069, 0x0077, 0x0086, 0x0095, ++ 0x00A5, 0x00B4, 0x00C4, 0x00D5, 0x00E5, 0x00F5, 0x0105, 0x0115, 0x0124, ++ 0x0133, 0x0142, 0x0150, 0x015E, 0x016B, 0x0177, 0x0183, 0x018D, 0x0197, ++ 0x01A0, 0x01A7, 0x01AD, 0x01B2, 0x01B6, 0x01B8, 0x01B9, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFB, 0xFFEE, 0xFFD9, 0xFFBD, 0xFF9A, 0xFF71, 0xFF41, 0xFF0B, ++ 0xFED0, 0xFE90, 0xFE4C, 0xFE03, 0xFDB7, 0xFD68, 0xFD16, 0xFCC1, 0xFC6B, ++ 0xFC13, 0xFBBA, 0xFB60, 0xFB07, 0xFAAD, 0xFA54, 0xF9FC, 0xF9A6, 0xF951, ++ 0xF8FF, 0xF8B0, 0xF864, 0xF81B, 0xF7D7, 0xF797, 0xF75C, 0xF726, 0xF6F6, ++ 0xF6CD, 0xF6AA, 0xF68E, 0xF679, 0xF66C, 0xF668, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, ++ 0xBF5E, 0xBF5E, 0xBF5D, 0xBF5D, 0xBF5C, 0xBF5B, 0xBF5A, 0xBF59, 0xBF58, ++ 0xBF56, 0xBF55, 0xBF53, 0xBF52, 0xBF50, 0xBF4E, 0xBF4D, 0xBF4B, 0xBF49, ++ 0xBF47, 0xBF45, 0xBF43, 0xBF41, 0xBF3F, 0xBF3E, 0xBF3C, 0xBF3A, 0xBF38, ++ 0xBF36, 0xBF35, 0xBF33, 0xBF32, 0xBF30, 0xBF2F, 0xBF2E, 0xBF2D, 0xBF2C, ++ 0xBF2B, 0xBF2B, 0xBF2A, 0x1B09, 0x1B09, 0x1AA6, 0x198E, 0x17DF, 0x15B3, ++ 0x1326, 0x1054, 0x0D58, 0x0A4E, 0x0752, 0x0480, 0x01F3, 0xFFC6, 0xFE16, ++ 0xFCFF, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, ++ 0xFCA2, 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, ++ 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, 0xFCA2, ++ 0xFCA2, 0xFCA1, 0x1144, 0x1144, 0x1104, 0x104E, 0x0F36, 0x0DCD, 0x0C26, ++ 0x0A51, 0x0861, 0x0668, 0x0479, 0x02A4, 0x00FC, 0xFF92, 0xFE7A, 0xFDC5, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD84, 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, ++ 0xFD5D, 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, ++ 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, ++ 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, 0xFD81, ++ 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, 0xFD5F, ++ 0xFD65, 0xAC43, 0xAC43, 0xAC8D, 0xAD5B, 0xAE9B, 0xB037, 0xB21A, 0xB431, ++ 0xB666, 0xB8A6, 0xBADB, 0xBCF2, 0xBED6, 0xC071, 0xC1B1, 0xC27F, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2AA, ++ 0xC255, 0xC1D7, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, ++ 0xBEA9, 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, ++ 0xC1D8, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, ++ 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, 0xC1D8, ++ 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, 0xBF49, ++ 0xFFFF, 0xFFFF, 0xFFFD, 0xFFF9, 0xFFF2, 0xFFE9, 0xFFDF, 0xFFD3, 0xFFC7, ++ 0xFFBB, 0xFFAE, 0xFFA3, 0xFF99, 0xFF90, 0xFF89, 0xFF84, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, ++ 0xFF8B, 0xFF90, 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA9, ++ 0xFFA9, 0xFFA9, 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA7, 0xFFA6, 0xFFA6, 0xFFA5, ++ 0xFFA4, 0xFFA3, 0xFFA2, 0xFFA1, 0xFFA0, 0xFF9F, 0xFF9E, 0xFF9D, 0xFF9C, ++ 0xFF9B, 0xFF9A, 0xFF98, 0xFF97, 0xFF96, 0xFF95, 0xFF94, 0xFF92, 0xFF91, ++ 0xFF90, 0xFF8F, 0xFF8E, 0xFF8D, 0xFF8C, 0xFF8B, 0xFF8A, 0xFF89, 0xFFFF, ++ 0xFFFF, 0x0008, 0x001F, 0x0042, 0x006F, 0x00A4, 0x00DF, 0x011D, 0x015C, ++ 0x019A, 0x01D4, 0x0209, 0x0237, 0x025A, 0x0270, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, 0x0274, 0x026E, ++ 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, 0x024B, 0x024B, ++ 0x024B, 0x024C, 0x024C, 0x024D, 0x024E, 0x024E, 0x024F, 0x0250, 0x0251, ++ 0x0252, 0x0253, 0x0254, 0x0255, 0x0257, 0x0258, 0x0259, 0x025B, 0x025C, ++ 0x025D, 0x025F, 0x0260, 0x0262, 0x0263, 0x0264, 0x0266, 0x0267, 0x0269, ++ 0x026A, 0x026B, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x1E4A, 0x1E4A, ++ 0x1DF9, 0x1D16, 0x1BB6, 0x19F1, 0x17DD, 0x1591, 0x1323, 0x10A9, 0x0E3B, ++ 0x0BEF, 0x09DB, 0x0816, 0x06B7, 0x05D3, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, ++ 0x0714, 0x078B, 0x07F8, 0x0852, 0x088F, 0x08A5, 0x08A4, 0x08A1, 0x089C, ++ 0x0896, 0x088D, 0x0883, 0x0877, 0x086A, 0x085B, 0x084B, 0x083A, 0x0828, ++ 0x0815, 0x0800, 0x07EB, 0x07D5, 0x07BF, 0x07A7, 0x0790, 0x0777, 0x075F, ++ 0x0746, 0x072D, 0x0714, 0x06FB, 0x06E2, 0x06C9, 0x06B0, 0x0698, 0x0680, ++ 0x0669, 0x0653, 0x063D, 0x0627, 0x0613, 0x0600, 0xFFFF, 0xFFFF, 0x0014, ++ 0x004E, 0x00A7, 0x011A, 0x01A0, 0x0235, 0x02D3, 0x0373, 0x0411, 0x04A6, ++ 0x052D, 0x059F, 0x05F8, 0x0632, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, ++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, ++ 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, ++ 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, 0x0637, ++ 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, 0x0609, ++ 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0xFF2F, 0xFF2F, 0xFF61, 0xFFEF, ++ 0x00CB, 0x01E5, 0x0330, 0x049E, 0x0622, 0x07AC, 0x092F, 0x0A9E, 0x0BE9, ++ 0x0D03, 0x0DDE, 0x0E6B, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, ++ 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, ++ 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, ++ 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, ++ 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, ++ 0x1559, 0x158B, 0x1529, 0x142B, 0xC9D7, 0xC9D7, 0xC9EA, 0xCA1E, 0xCA6F, ++ 0xCAD8, 0xCB52, 0xCBDA, 0xCC69, 0xCCFB, 0xCD8B, 0xCE12, 0xCE8D, 0xCEF5, ++ 0xCF46, 0xCF7B, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, ++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, ++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, ++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, ++ 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, 0xC328, ++ 0xC2CC, 0xC381, 0xC553, + }; + +diff --git a/assets/anims/anim_81.inc.c.rej b/assets/anims/anim_81.inc.c.rej +new file mode 100644 +index 0000000..2f035d7 +--- /dev/null ++++ b/assets/anims/anim_81.inc.c.rej +@@ -0,0 +1,633 @@ ++diff a/assets/anims/anim_81.inc.c b/assets/anims/anim_81.inc.c (rejected hunks) ++@@ -3,7 +3,7 @@ static const struct Animation anim_81[] = { ++ 189, ++ 0, ++ 0, ++- 0x32, +++ 97, ++ ANIMINDEX_NUMPARTS(anim_81_indices), ++ anim_81_values, ++ anim_81_indices, ++@@ -12,298 +12,332 @@ static const struct Animation anim_81[] = { ++ ++ ++ static const u16 anim_81_indices[] = { ++- 0x0001, 0x0000, 0x0032, 0x0001, 0x0032, 0x0033, 0x0001, 0x0000, 0x0001, 0x0065, 0x0001, 0x0000, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0838, ++- 0x0032, 0x07A2, 0x0032, 0x07D4, 0x0032, 0x0806, ++- 0x0032, 0x070C, 0x0032, 0x073E, 0x0032, 0x0770, ++- 0x0032, 0x0675, 0x0032, 0x06A7, 0x0032, 0x06D9, ++- 0x0032, 0x012E, 0x0032, 0x0160, 0x0032, 0x0192, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00FC, ++- 0x0032, 0x0066, 0x0032, 0x0098, 0x0032, 0x00CA, ++- 0x0032, 0x05DE, 0x0032, 0x0610, 0x0032, 0x0642, ++- 0x0032, 0x028C, 0x0032, 0x02BE, 0x0032, 0x02F0, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x025A, ++- 0x0032, 0x01C4, 0x0032, 0x01F6, 0x0032, 0x0228, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0674, ++- 0x0032, 0x0548, 0x0032, 0x057A, 0x0032, 0x05AC, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x0516, ++- 0x0032, 0x0480, 0x0032, 0x04B2, 0x0032, 0x04E4, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x070B, ++- 0x0032, 0x03EA, 0x0032, 0x041C, 0x0032, 0x044E, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x03B8, ++- 0x0032, 0x0322, 0x0032, 0x0354, 0x0032, 0x0386, +++ 0x0001, 0x0000, 0x0010, 0x0001, 0x0001, 0x0011, 0x0011, 0x0012, 0x0011, +++ 0x0023, 0x0011, 0x0034, 0x0010, 0x0045, 0x0011, 0x0055, 0x0001, 0x0066, +++ 0x0062, 0x0067, 0x0062, 0x00C9, 0x0061, 0x012B, 0x0059, 0x018C, 0x0059, +++ 0x01E5, 0x0059, 0x023E, 0x0001, 0x0297, 0x0001, 0x0298, 0x0001, 0x0299, +++ 0x0059, 0x029A, 0x0058, 0x02F3, 0x0059, 0x034B, 0x0011, 0x03A4, 0x0011, +++ 0x03B5, 0x0011, 0x03C6, 0x0011, 0x03D7, 0x0011, 0x03E8, 0x0011, 0x03F9, +++ 0x0011, 0x040A, 0x0011, 0x041B, 0x0010, 0x042C, 0x0059, 0x043C, 0x0059, +++ 0x0495, 0x0059, 0x04EE, 0x0011, 0x0547, 0x0011, 0x0558, 0x0011, 0x0569, +++ 0x0011, 0x057A, 0x0011, 0x058B, 0x0011, 0x059C, 0x0011, 0x05AD, 0x000D, +++ 0x05BE, 0x0001, 0x05CB, 0x0011, 0x05CC, 0x0011, 0x05DD, 0x0011, 0x05EE, +++ 0x0011, 0x05FF, 0x0011, 0x0610, 0x0011, 0x0621, 0x0011, 0x0632, 0x0011, +++ 0x0643, 0x0011, 0x0654, 0x0059, 0x0665, 0x0059, 0x06BE, 0x0057, 0x0717, +++ 0x0062, 0x076E, 0x0062, 0x07D0, 0x0062, 0x0832, 0x0062, 0x0894, 0x0062, +++ 0x08F6, 0x0062, 0x0958, 0x0062, 0x09BA, 0x0062, 0x0A1C, 0x0062, 0x0A7E, ++ }; ++ ++ static const s16 anim_81_values[] = { ++- 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, ++- 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AB, ++- 0x00AB, 0x00AB, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++- 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0002, 0x0003, 0x0003, ++- 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0001, ++- 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3FFF, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++- 0x0001, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, ++- 0x0009, 0x000A, 0x000B, 0x000D, 0x000E, 0x0010, 0x0011, 0x0013, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, 0xF97B, ++- 0xF97B, 0xF97B, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, 0xF97A, ++- 0xF979, 0xF979, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8B, 0xED8A, 0xED88, 0xED85, 0xED82, 0xED7D, 0xED79, 0xED73, ++- 0xED6D, 0xED67, 0xED60, 0xED58, 0xED51, 0xED48, 0xED40, 0xED37, ++- 0xED2E, 0xED24, 0xED1B, 0xED11, 0xCA4F, 0xCA42, 0xCA1E, 0xC9EA, ++- 0xC9AC, 0xC969, 0xC929, 0xC8F0, 0xC8C7, 0xC8B1, 0xC8B6, 0xC8DC, ++- 0xC929, 0xC9A2, 0xCA4F, 0xCB44, 0xCC88, 0xCE0F, 0xCFC9, 0xD1AB, ++- 0xD3A6, 0xD5AC, 0xD7B0, 0xD9A5, 0xDB7D, 0xDD29, 0xDE9E, 0xDFCC, ++- 0xE0A7, 0xE120, 0xE161, 0xE19B, 0xE1CF, 0xE1FD, 0xE225, 0xE246, ++- 0xE262, 0xE279, 0xE28B, 0xE297, 0xE29F, 0xE2A3, 0xE2A2, 0xE29C, ++- 0xE293, 0xE286, 0xE276, 0xE263, 0xE24C, 0xE232, 0xFB1D, 0xFB2B, ++- 0xFB52, 0xFB8F, 0xFBDC, 0xFC36, 0xFC98, 0xFCFE, 0xFD65, 0xFDC7, ++- 0xFE21, 0xFE6E, 0xFEAA, 0xFED1, 0xFEDF, 0xFED4, 0xFEB3, 0xFE81, ++- 0xFE3F, 0xFDF2, 0xFD9D, 0xFD42, 0xFCE5, 0xFC88, 0xFC2F, 0xFBDE, ++- 0xFB97, 0xFB5D, 0xFB33, 0xFB1D, 0xFB0D, 0xFAF4, 0xFAD2, 0xFAA9, ++- 0xFA77, 0xFA3E, 0xF9FF, 0xF9B8, 0xF96C, 0xF91A, 0xF8C3, 0xF867, ++- 0xF806, 0xF7A2, 0xF739, 0xF6CE, 0xF660, 0xF5F0, 0xF57D, 0xF50A, ++- 0xD2DC, 0xD2FE, 0xD35F, 0xD3F3, 0xD4B1, 0xD58D, 0xD67F, 0xD77A, ++- 0xD876, 0xD967, 0xDA44, 0xDB01, 0xDB95, 0xDBF6, 0xDC18, 0xDBFC, ++- 0xDBAC, 0xDB30, 0xDA8F, 0xD9D2, 0xD900, 0xD820, 0xD73B, 0xD658, ++- 0xD57E, 0xD4B6, 0xD407, 0xD378, 0xD312, 0xD2DC, 0xD2C0, 0xD2A4, ++- 0xD288, 0xD26C, 0xD250, 0xD234, 0xD217, 0xD1FB, 0xD1DF, 0xD1C4, ++- 0xD1A8, 0xD18D, 0xD172, 0xD157, 0xD13D, 0xD123, 0xD10A, 0xD0F1, ++- 0xD0D9, 0xD0C1, 0xD4B4, 0xD4A4, 0xD478, 0xD434, 0xD3DD, 0xD378, ++- 0xD309, 0xD296, 0xD223, 0xD1B4, 0xD14F, 0xD0F8, 0xD0B4, 0xD088, ++- 0xD078, 0xD085, 0xD0AA, 0xD0E3, 0xD12C, 0xD183, 0xD1E3, 0xD24A, ++- 0xD2B3, 0xD31B, 0xD37F, 0xD3DA, 0xD42B, 0xD46C, 0xD49B, 0xD4B4, ++- 0xD4C6, 0xD4E4, 0xD50C, 0xD53F, 0xD57B, 0xD5C0, 0xD60E, 0xD664, ++- 0xD6C1, 0xD726, 0xD791, 0xD802, 0xD879, 0xD8F5, 0xD975, 0xD9F9, ++- 0xDA80, 0xDB0B, 0xDB98, 0xDC26, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0xFFFD, 0xFFF4, 0xFFE4, 0xFFCF, 0xFFB5, 0xFF95, ++- 0xFF71, 0xFF49, 0xFF1C, 0xFEEC, 0xFEB9, 0xFE83, 0xFE4A, 0xFE0E, ++- 0xFDD1, 0xFD92, 0xFD52, 0xFD11, 0xFCCF, 0xFC8D, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, ++- 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF548, 0xF546, 0xF545, 0xF543, 0xF541, 0xF53F, 0xF53C, 0xF539, ++- 0xF536, 0xF533, 0xF530, 0xF52D, 0xF529, 0xF526, 0xF522, 0xF51E, ++- 0xF51A, 0xF517, 0xC7DD, 0xC7D7, 0xC7C5, 0xC7AB, 0xC78C, 0xC76A, ++- 0xC74A, 0xC72E, 0xC719, 0xC70E, 0xC711, 0xC724, 0xC74A, 0xC787, ++- 0xC7DD, 0xC858, 0xC8F9, 0xC9BB, 0xCA97, 0xCB86, 0xCC82, 0xCD84, ++- 0xCE85, 0xCF7F, 0xD06A, 0xD141, 0xD1FC, 0xD295, 0xD305, 0xD346, ++- 0xD36D, 0xD394, 0xD3BC, 0xD3E3, 0xD40B, 0xD432, 0xD45A, 0xD481, ++- 0xD4A8, 0xD4CF, 0xD4F5, 0xD51B, 0xD540, 0xD564, 0xD588, 0xD5AA, ++- 0xD5CC, 0xD5ED, 0xD60C, 0xD62B, 0x054B, 0x0539, 0x0505, 0x04B7, ++- 0x0454, 0x03E5, 0x036E, 0x02F8, 0x0287, 0x0224, 0x01D4, 0x019E, ++- 0x0189, 0x019B, 0x01DB, 0x0252, 0x02FF, 0x03D9, 0x04D7, 0x05F1, ++- 0x071E, 0x0856, 0x098F, 0x0AC1, 0x0BE2, 0x0CEC, 0x0DD3, 0x0E91, ++- 0x0F1B, 0x0F6A, 0x0F96, 0x0FC0, 0x0FE6, 0x100A, 0x102B, 0x1049, ++- 0x1065, 0x107E, 0x1094, 0x10A8, 0x10BA, 0x10C9, 0x10D7, 0x10E2, ++- 0x10EB, 0x10F3, 0x10F8, 0x10FC, 0x10FE, 0x10FE, 0x2BD6, 0x2BD6, ++- 0x2BD4, 0x2BCE, 0x2BC3, 0x2BB3, 0x2B9A, 0x2B78, 0x2B4B, 0x2B11, ++- 0x2ACA, 0x2A73, 0x2A0B, 0x2991, 0x2903, 0x2852, 0x2775, 0x2673, ++- 0x2555, 0x2423, 0x22E4, 0x219F, 0x205E, 0x1F28, 0x1E04, 0x1CFB, ++- 0x1C14, 0x1B57, 0x1ACC, 0x1A7B, 0x1A4C, 0x1A1F, 0x19F6, 0x19CF, ++- 0x19AC, 0x198C, 0x196E, 0x1953, 0x193B, 0x1925, 0x1912, 0x1901, ++- 0x18F3, 0x18E7, 0x18DD, 0x18D4, 0x18CE, 0x18CA, 0x18C8, 0x18C7, ++- 0xCCF6, 0xCCEC, 0xCCD0, 0xCCA6, 0xCC72, 0xCC39, 0xCBFF, 0xCBC6, ++- 0xCB94, 0xCB6D, 0xCB54, 0xCB4E, 0xCB5F, 0xCB8A, 0xCBD4, 0xCC46, ++- 0xCCE2, 0xCDA1, 0xCE7C, 0xCF6C, 0xD069, 0xD16E, 0xD273, 0xD370, ++- 0xD460, 0xD53B, 0xD5FA, 0xD697, 0xD709, 0xD74B, 0xD770, 0xD793, ++- 0xD7B4, 0xD7D2, 0xD7ED, 0xD807, 0xD81E, 0xD833, 0xD846, 0xD856, ++- 0xD865, 0xD872, 0xD87D, 0xD886, 0xD88E, 0xD894, 0xD898, 0xD89B, ++- 0xD89C, 0xD89C, 0x0000, 0x0006, 0x0017, 0x0032, 0x0054, 0x007B, ++- 0x00A7, 0x00D4, 0x0101, 0x012D, 0x0154, 0x0176, 0x0191, 0x01A2, ++- 0x01A8, 0x01A3, 0x0194, 0x017E, 0x0160, 0x013D, 0x0117, 0x00EE, ++- 0x00C4, 0x009B, 0x0074, 0x0050, 0x0031, 0x0018, 0x0007, 0x0000, ++- 0xFFFE, 0xFFFB, 0xFFF9, 0xFFF7, 0xFFF4, 0xFFF2, 0xFFF0, 0xFFEE, ++- 0xFFEB, 0xFFE9, 0xFFE7, 0xFFE6, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, ++- 0xFFDD, 0xFFDB, 0xFFDA, 0xFFD8, 0xFF30, 0xFF30, 0xFF30, 0xFF31, ++- 0xFF31, 0xFF32, 0xFF32, 0xFF33, 0xFF34, 0xFF34, 0xFF35, 0xFF36, ++- 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF36, 0xFF35, 0xFF35, ++- 0xFF34, 0xFF33, 0xFF33, 0xFF32, 0xFF32, 0xFF31, 0xFF31, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF30, ++- 0xFF30, 0xFF30, 0xFF30, 0xFF30, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, ++- 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xFF2F, 0xC9D8, 0xC9D4, ++- 0xC9C7, 0xC9B3, 0xC99A, 0xC97D, 0xC95D, 0xC93C, 0xC91A, 0xC8FB, ++- 0xC8DD, 0xC8C4, 0xC8B1, 0xC8A4, 0xC89F, 0xC8A3, 0xC8AE, 0xC8BF, ++- 0xC8D5, 0xC8EE, 0xC90B, 0xC929, 0xC947, 0xC966, 0xC983, 0xC99D, ++- 0xC9B4, 0xC9C6, 0xC9D2, 0xC9D8, 0xC9DA, 0xC9DC, 0xC9DF, 0xC9E2, ++- 0xC9E5, 0xC9E8, 0xC9EB, 0xC9EE, 0xC9F2, 0xC9F6, 0xC9FA, 0xC9FE, ++- 0xCA03, 0xCA07, 0xCA0C, 0xCA11, 0xCA16, 0xCA1B, 0xCA20, 0xCA26, ++- 0x1E4A, 0x1E50, 0x1E61, 0x1E7B, 0x1E9C, 0x1EC3, 0x1EEE, 0x1F1A, ++- 0x1F47, 0x1F71, 0x1F98, 0x1FBA, 0x1FD4, 0x1FE5, 0x1FEB, 0x1FE6, ++- 0x1FD7, 0x1FC1, 0x1FA4, 0x1F81, 0x1F5C, 0x1F33, 0x1F0A, 0x1EE2, ++- 0x1EBB, 0x1E98, 0x1E7A, 0x1E62, 0x1E51, 0x1E4A, 0x1E47, 0x1E43, ++- 0x1E3E, 0x1E39, 0x1E33, 0x1E2C, 0x1E25, 0x1E1C, 0x1E14, 0x1E0A, ++- 0x1E00, 0x1DF5, 0x1DEA, 0x1DDE, 0x1DD1, 0x1DC4, 0x1DB6, 0x1DA8, ++- 0x1D99, 0x1D8A, 0x1B09, 0x1B07, 0x1B02, 0x1AFB, 0x1AF2, 0x1AE7, ++- 0x1ADC, 0x1AD0, 0x1AC3, 0x1AB8, 0x1AAD, 0x1AA4, 0x1A9D, 0x1A98, ++- 0x1A96, 0x1A98, 0x1A9C, 0x1AA2, 0x1AAA, 0x1AB3, 0x1ABE, 0x1AC9, ++- 0x1AD4, 0x1ADF, 0x1AEA, 0x1AF3, 0x1AFC, 0x1B02, 0x1B07, 0x1B09, ++- 0x1B0A, 0x1B0B, 0x1B0D, 0x1B0F, 0x1B11, 0x1B14, 0x1B17, 0x1B1A, ++- 0x1B1E, 0x1B21, 0x1B26, 0x1B2A, 0x1B2F, 0x1B34, 0x1B3A, 0x1B3F, ++- 0x1B45, 0x1B4B, 0x1B52, 0x1B58, 0x1144, 0x1147, 0x114F, 0x115B, ++- 0x116A, 0x117C, 0x1190, 0x11A4, 0x11B8, 0x11CC, 0x11DE, 0x11ED, ++- 0x11F9, 0x1201, 0x1204, 0x1201, 0x11FB, 0x11F0, 0x11E3, 0x11D3, ++- 0x11C2, 0x11B0, 0x119D, 0x118A, 0x1179, 0x1168, 0x115B, 0x114F, ++- 0x1148, 0x1144, 0x1143, 0x1142, 0x1141, 0x1140, 0x113F, 0x113E, ++- 0x113D, 0x113C, 0x113B, 0x113A, 0x1139, 0x1138, 0x1137, 0x1136, ++- 0x1136, 0x1135, 0x1134, 0x1133, 0x1133, 0x1132, 0xAC44, 0xAC40, ++- 0xAC35, 0xAC24, 0xAC0E, 0xABF4, 0xABD9, 0xABBC, 0xAB9F, 0xAB83, ++- 0xAB69, 0xAB53, 0xAB42, 0xAB37, 0xAB33, 0xAB37, 0xAB40, 0xAB4F, ++- 0xAB62, 0xAB78, 0xAB91, 0xABAB, 0xABC6, 0xABE0, 0xABF9, 0xAC10, ++- 0xAC24, 0xAC34, 0xAC3F, 0xAC44, 0xAC46, 0xAC49, 0xAC4C, 0xAC50, ++- 0xAC54, 0xAC59, 0xAC5F, 0xAC65, 0xAC6C, 0xAC73, 0xAC7B, 0xAC84, ++- 0xAC8C, 0xAC96, 0xACA0, 0xACAA, 0xACB4, 0xACBF, 0xACCB, 0xACD7, ++- 0x0000, 0xFFFA, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5C, 0xFF30, ++- 0xFF04, 0xFED9, 0xFEB2, 0xFE91, 0xFE76, 0xFE65, 0xFE5F, 0xFE65, ++- 0xFE75, 0xFE8D, 0xFEAC, 0xFED1, 0xFEF9, 0xFF24, 0xFF4F, 0xFF79, ++- 0xFFA0, 0xFFC2, 0xFFDF, 0xFFF4, 0x0000, 0x0000, 0xFFFB, 0xFFF5, ++- 0xFFEE, 0xFFE7, 0xFFDF, 0xFFD7, 0xFFCE, 0xFFC4, 0xFFBA, 0xFFB0, ++- 0xFFA5, 0xFF99, 0xFF8E, 0xFF81, 0xFF75, 0xFF68, 0xFF5A, 0xFF4D, ++- 0xFF3F, 0xFF30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFB, 0xFFF9, 0xFFF8, ++- 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF9, 0xFFFC, 0x0000, ++- 0x0005, 0x000A, 0x000F, 0x0015, 0x001B, 0x0021, 0x0027, 0x002E, ++- 0x0034, 0x003B, 0x0042, 0x0049, 0x0050, 0x0057, 0x005E, 0x0066, ++- 0x006D, 0x0075, 0x007D, 0x0084, 0xBF40, 0xBF40, 0xBF40, 0xBF40, ++- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF40, ++- 0xBF40, 0xBF40, 0xBF40, 0xBF40, 0xBF3E, 0xBF3C, 0xBF39, 0xBF36, ++- 0xBF33, 0xBF30, 0xBF2E, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2E, 0xBF32, ++- 0xBF38, 0xBF40, 0xBF4A, 0xBF54, 0xBF5E, 0xBF68, 0xBF73, 0xBF7F, ++- 0xBF8A, 0xBF96, 0xBFA2, 0xBFAF, 0xBFBB, 0xBFC8, 0xBFD5, 0xBFE3, ++- 0xBFF0, 0xBFFE, 0xC00C, 0xC01A, 0xC028, 0xC037, 0x2537, 0x253D, ++- 0x254E, 0x2568, 0x2589, 0x25B0, 0x25DB, 0x2607, 0x2634, 0x265E, ++- 0x2685, 0x26A7, 0x26C1, 0x26D2, 0x26D8, 0x26D3, 0x26C4, 0x26AE, ++- 0x2691, 0x266F, 0x2649, 0x2621, 0x25F8, 0x25CF, 0x25A9, 0x2585, ++- 0x2567, 0x254F, 0x253E, 0x2537, 0x2534, 0x2530, 0x252C, 0x2527, ++- 0x2522, 0x251C, 0x2516, 0x250F, 0x2507, 0x24FF, 0x24F7, 0x24EE, ++- 0x24E4, 0x24DA, 0x24D0, 0x24C5, 0x24BA, 0x24AE, 0x24A2, 0x2495, ++- 0xD64A, 0xD64C, 0xD651, 0xD658, 0xD662, 0xD66D, 0xD67A, 0xD686, ++- 0xD693, 0xD69F, 0xD6AB, 0xD6B4, 0xD6BC, 0xD6C1, 0xD6C2, 0xD6C1, ++- 0xD6BD, 0xD6B6, 0xD6AE, 0xD6A4, 0xD699, 0xD68E, 0xD682, 0xD676, ++- 0xD66B, 0xD661, 0xD658, 0xD651, 0xD64C, 0xD64A, 0xD649, 0xD647, ++- 0xD645, 0xD642, 0xD63E, 0xD63A, 0xD635, 0xD630, 0xD62A, 0xD623, ++- 0xD61C, 0xD614, 0xD60C, 0xD603, 0xD5FA, 0xD5F1, 0xD5E7, 0xD5DC, ++- 0xD5D1, 0xD5C6, 0xEC41, 0xEC3C, 0xEC2D, 0xEC17, 0xEBFA, 0xEBD9, ++- 0xEBB5, 0xEB8F, 0xEB69, 0xEB45, 0xEB24, 0xEB08, 0xEAF1, 0xEAE3, ++- 0xEADE, 0xEAE2, 0xEAEE, 0xEB02, 0xEB1A, 0xEB37, 0xEB58, 0xEB7A, ++- 0xEB9D, 0xEBBF, 0xEBE0, 0xEBFE, 0xEC18, 0xEC2C, 0xEC3A, 0xEC41, ++- 0xEC43, 0xEC45, 0xEC47, 0xEC49, 0xEC4A, 0xEC4C, 0xEC4D, 0xEC4F, ++- 0xEC50, 0xEC51, 0xEC52, 0xEC53, 0xEC54, 0xEC54, 0xEC55, 0xEC56, ++- 0xEC56, 0xEC56, 0xEC57, 0xEC57, 0xB59E, 0xB59B, 0xB590, 0xB581, ++- 0xB56D, 0xB555, 0xB53C, 0xB521, 0xB507, 0xB4ED, 0xB4D6, 0xB4C2, ++- 0xB4B2, 0xB4A8, 0xB4A4, 0xB4A7, 0xB4B0, 0xB4BE, 0xB4CF, 0xB4E3, ++- 0xB4FA, 0xB512, 0xB52B, 0xB543, 0xB55A, 0xB56F, 0xB581, 0xB590, ++- 0xB59A, 0xB59E, 0xB5A0, 0xB5A3, 0xB5A7, 0xB5AB, 0xB5B1, 0xB5B7, ++- 0xB5BE, 0xB5C6, 0xB5CE, 0xB5D7, 0xB5E1, 0xB5EC, 0xB5F7, 0xB603, ++- 0xB610, 0xB61D, 0xB62B, 0xB639, 0xB648, 0xB658, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFD, 0x7FFA, 0x7FF4, 0x7FEC, ++- 0x7FE3, 0x7FD7, 0x7FCA, 0x7FBB, 0x7FAB, 0x7F9A, 0x7F87, 0x7F74, ++- 0x7F60, 0x7F4B, 0x7F35, 0x7F1F, 0x7F09, 0x7EF2, 0x7EDC, 0x7EC5, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, ++- 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x8000, 0x8006, ++- 0x800E, 0x801A, 0x8028, 0x8039, 0x804D, 0x8062, 0x807A, 0x8094, ++- 0x80AF, 0x80CC, 0x80EA, 0x8109, 0x8129, 0x814A, 0x816B, 0x818C, ++- 0x81AE, 0x81CF, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, ++- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, ++- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, ++- 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, 0x4171, ++- 0x416C, 0x4160, 0x414C, 0x4130, 0x410E, 0x40E5, 0x40B6, 0x4082, ++- 0x4049, 0x400C, 0x3FCB, 0x3F86, 0x3F3E, 0x3EF3, 0x3EA7, 0x3E59, ++- 0x3E0A, 0x3DBA, 0x3D6A, 0x3D1B, 0xBF5F, 0x7FFF, 0x7FF5, 0x7FDA, ++- 0x7FB4, 0x7F86, 0x7F56, 0x7F26, 0x7EFD, 0x7EDE, 0x7ECE, 0x7ED2, ++- 0x7EEE, 0x7F26, 0x7F80, 0x7FFF, 0x80B2, 0x81A0, 0x82BF, 0x8404, ++- 0x8565, 0x86D9, 0x8856, 0x89D1, 0x8B40, 0x8C9A, 0x8DD5, 0x8EE6, ++- 0x8FC4, 0x9065, 0x90BE, 0x90EE, 0x911C, 0x9148, 0x9170, 0x9196, ++- 0x91B9, 0x91DA, 0x91F9, 0x9215, 0x922F, 0x9246, 0x925B, 0x926E, ++- 0x927F, 0x928F, 0x929C, 0x92A7, 0x92B0, 0x92B8, 0x92BE, 0x7FFF, ++- 0x8002, 0x800C, 0x801B, 0x802D, 0x8040, 0x8052, 0x8062, 0x806E, ++- 0x8074, 0x8072, 0x8068, 0x8052, 0x8030, 0x7FFF, 0x7FB9, 0x7F5D, ++- 0x7EEE, 0x7E71, 0x7DE8, 0x7D59, 0x7CC6, 0x7C34, 0x7BA6, 0x7B20, ++- 0x7AA6, 0x7A3D, 0x79E7, 0x79A9, 0x7987, 0x7974, 0x7962, 0x7951, ++- 0x7942, 0x7933, 0x7925, 0x7919, 0x790D, 0x7902, 0x78F8, 0x78EF, ++- 0x78E7, 0x78E0, 0x78D9, 0x78D3, 0x78CE, 0x78CA, 0x78C6, 0x78C3, ++- 0x78C1, 0x4171, 0x416B, 0x415B, 0x4144, 0x4128, 0x410B, 0x40EE, ++- 0x40D5, 0x40C3, 0x40B9, 0x40BB, 0x40CC, 0x40EE, 0x4124, 0x4171, ++- 0x41DD, 0x426D, 0x431A, 0x43DE, 0x44B3, 0x4594, 0x4679, 0x475E, ++- 0x483C, 0x490D, 0x49CB, 0x4A70, 0x4AF5, 0x4B56, 0x4B8C, 0x4BAA, ++- 0x4BC5, 0x4BDF, 0x4BF8, 0x4C0F, 0x4C24, 0x4C38, 0x4C4A, 0x4C5B, ++- 0x4C6B, 0x4C79, 0x4C86, 0x4C91, 0x4C9C, 0x4CA5, 0x4CAD, 0x4CB3, ++- 0x4CB9, 0x4CBE, 0x4CC1, 0xBF5F, 0x0000, 0x0000, 0xFFFF, 0xFFFE, ++- 0xFFFD, 0xFFFB, 0xFFFA, 0xFFF8, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF8, ++- 0xFFFA, 0xFFFC, 0x0000, 0x0008, 0x0017, 0x002B, 0x0043, 0x005D, ++- 0x0078, 0x0092, 0x00A9, 0x00BC, 0x00CA, 0x00D1, 0x00CF, 0x00C3, ++- 0x00AC, 0x0087, 0x0054, 0x0014, 0xFFC8, 0xFF72, 0xFF13, 0xFEAD, ++- 0xFE42, 0xFDD4, 0xFD64, 0xFCF4, 0xFC86, 0xFC1B, 0xFBB5, 0xFB57, ++- 0xFB00, 0xFAB5, 0xFA75, 0xFA42, 0xFA20, 0xFA0E, 0x0000, 0x0000, ++- 0xFFFE, 0xFFFB, 0xFFF8, 0xFFF4, 0xFFF1, 0xFFEE, 0xFFEC, 0xFFEA, ++- 0xFFEB, 0xFFED, 0xFFF1, 0xFFF7, 0x0000, 0x000C, 0x001B, 0x002D, ++- 0x0040, 0x0056, 0x006D, 0x0084, 0x009D, 0x00B5, 0x00CD, 0x00E5, ++- 0x00FB, 0x0110, 0x0124, 0x0135, 0x0146, 0x015A, 0x016F, 0x0187, ++- 0x019F, 0x01B8, 0x01D0, 0x01E9, 0x0200, 0x0215, 0x0229, 0x023A, ++- 0x0248, 0x0252, 0x0258, 0x025A, 0x0257, 0x024E, 0x023E, 0x0228, ++- 0xFC62, 0xFC5F, 0xFC57, 0xFC4B, 0xFC3C, 0xFC2C, 0xFC1A, 0xFC09, ++- 0xFBFA, 0xFBED, 0xFBE4, 0xFBDF, 0xFBE0, 0xFBE9, 0xFBF9, 0xFC13, ++- 0xFC36, 0xFC61, 0xFC92, 0xFCC9, 0xFD03, 0xFD3F, 0xFD7B, 0xFDB7, ++- 0xFDF0, 0xFE25, 0xFE55, 0xFE7E, 0xFE9F, 0xFEB7, 0xFEC4, 0xFEC9, ++- 0xFEC7, 0xFEBF, 0xFEB1, 0xFEA0, 0xFE8B, 0xFE75, 0xFE5F, 0xFE48, ++- 0xFE33, 0xFE21, 0xFE12, 0xFE08, 0xFE04, 0xFE06, 0xFE11, 0xFE25, ++- 0xFE43, 0xFE6C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFD, ++- 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, ++- 0xFFF4, 0xFFF2, 0xFFF1, 0xFFF0, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, ++- 0x0017, 0x001C, 0x0020, 0x0023, 0x0024, 0x0023, 0x001F, 0x0018, ++- 0x000E, 0x0000, 0xFFEF, 0xFFDB, 0xFFC6, 0xFFAE, 0xFF94, 0xFF78, ++- 0xFF5B, 0xFF3D, 0xFF1D, 0xFEFB, 0xFED9, 0xFEB5, 0xFE91, 0xFE6C, ++- 0xFE46, 0xFE1F, 0xFDF8, 0xFDD1, 0xFDAA, 0xFD82, 0x0884, 0x0890, ++- 0x08B2, 0x08E4, 0x0922, 0x0966, 0x09AC, 0x09EF, 0x0A29, 0x0A55, ++- 0x0A70, 0x0A72, 0x0A59, 0x0A1E, 0x09BD, 0x0925, 0x0850, 0x0749, ++- 0x061C, 0x04D2, 0x0376, 0x0213, 0x00B5, 0xFF65, 0xFE2F, 0xFD1C, ++- 0xFC39, 0xFB8F, 0xFB29, 0xFB13, 0xFB2B, 0xFB4C, 0xFB74, 0xFBA4, ++- 0xFBDA, 0xFC17, 0xFC5A, 0xFCA4, 0xFCF3, 0xFD47, 0xFDA1, 0xFE00, ++- 0xFE63, 0xFECA, 0xFF36, 0xFFA5, 0x0016, 0x008C, 0x0104, 0x017F, ++- 0x40A1, 0x40A7, 0x40B8, 0x40D2, 0x40F4, 0x411B, 0x4145, 0x4172, ++- 0x419E, 0x41C9, 0x41F0, 0x4211, 0x422B, 0x423C, 0x4242, 0x423D, ++- 0x422F, 0x4219, 0x41FC, 0x41DA, 0x41B4, 0x418D, 0x4164, 0x413B, ++- 0x4115, 0x40F2, 0x40D3, 0x40BB, 0x40A9, 0x40A1, 0x409E, 0x409A, ++- 0x4097, 0x4094, 0x4091, 0x408E, 0x408C, 0x4089, 0x4087, 0x4084, ++- 0x4082, 0x4080, 0x407E, 0x407C, 0x407B, 0x4079, 0x4077, 0x4076, ++- 0x4075, 0x4073, +++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AC, 0x00AE, 0x00AF, 0x00B1, +++ 0x00B3, 0x00B5, 0x00B7, 0x00B9, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF, +++ 0x0000, 0x0000, 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, +++ 0xDCD0, 0xD68A, 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x3FFF, +++ 0x3FFF, 0x3FE8, 0x3FA6, 0x3F42, 0x3EC0, 0x3E27, 0x3D7E, 0x3CCC, 0x3C16, +++ 0x3B64, 0x3ABB, 0x3A22, 0x39A1, 0x393C, 0x38FB, 0x38E3, 0x0000, 0x0000, +++ 0xFF2E, 0xFCE3, 0xF958, 0xF4C6, 0xEF69, 0xE97A, 0xE334, 0xDCD0, 0xD68A, +++ 0xD09B, 0xCB3E, 0xC6AC, 0xC321, 0xC0D6, 0xC005, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFFF4, 0xFFD5, 0xFFA4, +++ 0xFF65, 0xFF19, 0xFEC5, 0xFE69, 0xFE0A, 0xFDA9, 0xFD4A, 0xFCEF, 0xFC9A, +++ 0xFC4F, 0xFC11, 0xFBE1, 0xFBBB, 0xFB96, 0xFB73, 0xFB51, 0xFB31, 0xFB13, +++ 0xFAF5, 0xFAD9, 0xFABF, 0xFAA6, 0xFA8E, 0xFA77, 0xFA62, 0xFA4D, 0xFA3A, +++ 0xFA28, 0xFA17, 0xFA07, 0xF9F7, 0xF9E9, 0xF9DC, 0xF9CF, 0xF9C3, 0xF9B8, +++ 0xF9AE, 0xF9A4, 0xF99B, 0xF993, 0xF98B, 0xF984, 0xF97D, 0xF977, 0xF971, +++ 0xF96B, 0xF966, 0xF961, 0xF95C, 0xF958, 0xF953, 0xF94F, 0xF94B, 0xF947, +++ 0xF943, 0xF93F, 0xF93B, 0xF936, 0xF932, 0xF92D, 0xF928, 0xF923, 0xF91E, +++ 0xF918, 0xF912, 0xF90B, 0xF904, 0xF8FD, 0xF8F5, 0xF8EC, 0xF8E3, 0xF8D9, +++ 0xF8CE, 0xF8C3, 0xF8B7, 0xF8AA, 0xF89C, 0xF88D, 0xF87E, 0xF86D, 0xF85C, +++ 0xF849, 0xF835, 0xF821, 0xF80B, 0xF7F6, 0xF7DF, 0xF7C8, 0xF7B0, 0xF798, +++ 0xF780, 0xF768, 0xF74F, 0xFFFF, 0xFFFF, 0x0002, 0x0006, 0x000E, 0x0017, +++ 0x0023, 0x0030, 0x003F, 0x004E, 0x005E, 0x006E, 0x007E, 0x008E, 0x009C, +++ 0x00A9, 0x00B4, 0x00BF, 0x00C9, 0x00D2, 0x00DB, 0x00E4, 0x00EC, 0x00F4, +++ 0x00FB, 0x0102, 0x0109, 0x010F, 0x0116, 0x011B, 0x0121, 0x0126, 0x012B, +++ 0x0130, 0x0134, 0x0139, 0x013C, 0x0140, 0x0144, 0x0147, 0x014A, 0x014D, +++ 0x0150, 0x0152, 0x0154, 0x0157, 0x0159, 0x015B, 0x015C, 0x015E, 0x0160, +++ 0x0161, 0x0163, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016A, 0x016B, +++ 0x016C, 0x016D, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, 0x0175, 0x0176, +++ 0x0178, 0x017A, 0x017B, 0x017D, 0x017F, 0x0181, 0x0184, 0x0186, 0x0189, +++ 0x018B, 0x018E, 0x0192, 0x0195, 0x0199, 0x019C, 0x01A0, 0x01A5, 0x01A9, +++ 0x01AE, 0x01B3, 0x01B8, 0x01BE, 0x01C3, 0x01C9, 0x01CF, 0x01D4, 0x01DA, +++ 0x01E0, 0x01E6, 0x0884, 0x0884, 0x08B7, 0x0945, 0x0A22, 0x0B3E, 0x0C8B, +++ 0x0DFC, 0x0F82, 0x110F, 0x1295, 0x1406, 0x1553, 0x166F, 0x174C, 0x17DA, +++ 0x180D, 0x180C, 0x1808, 0x1802, 0x17FA, 0x17F0, 0x17E4, 0x17D6, 0x17C6, +++ 0x17B4, 0x17A0, 0x178A, 0x1773, 0x175B, 0x1740, 0x1725, 0x1707, 0x16E9, +++ 0x16C9, 0x16A9, 0x1687, 0x1664, 0x1640, 0x161B, 0x15F5, 0x15CF, 0x15A8, +++ 0x1580, 0x1558, 0x152F, 0x1506, 0x14DC, 0x14B2, 0x1488, 0x145E, 0x1434, +++ 0x140A, 0x13DF, 0x13B5, 0x138B, 0x1362, 0x1338, 0x1310, 0x12E7, 0x12BF, +++ 0x1298, 0x1271, 0x124B, 0x1226, 0x1202, 0x11DF, 0x11BD, 0x119C, 0x117C, +++ 0x115D, 0x1140, 0x1123, 0x1109, 0x10F0, 0x10D8, 0x10C2, 0x10AE, 0x109B, +++ 0x108B, 0x107C, 0x106F, 0x1064, 0x105C, 0x1055, 0x1051, 0x104E, 0x104C, +++ 0x104A, 0x1048, 0x1046, 0x1044, 0x1043, 0x1042, 0x1041, 0x1041, 0x1040, +++ 0x0000, 0x0000, 0xFFE4, 0xFF96, 0xFF1F, 0xFE85, 0xFDD0, 0xFD09, 0xFC35, +++ 0xFB5E, 0xFA8B, 0xF9C3, 0xF90E, 0xF874, 0xF7FD, 0xF7B0, 0xF794, 0xF794, +++ 0xF794, 0xF794, 0xF795, 0xF795, 0xF795, 0xF795, 0xF795, 0xF796, 0xF796, +++ 0xF796, 0xF796, 0xF797, 0xF797, 0xF797, 0xF797, 0xF798, 0xF798, 0xF798, +++ 0xF799, 0xF799, 0xF799, 0xF799, 0xF79A, 0xF79A, 0xF79A, 0xF79A, 0xF79A, +++ 0xF79A, 0xF79A, 0xF79A, 0xF794, 0xF780, 0xF760, 0xF735, 0xF6FF, 0xF6BE, +++ 0xF674, 0xF621, 0xF5C6, 0xF563, 0xF4F9, 0xF489, 0xF414, 0xF399, 0xF31A, +++ 0xF298, 0xF212, 0xF18A, 0xF101, 0xF077, 0xEFEC, 0xEF61, 0xEED8, 0xEE50, +++ 0xEDCB, 0xED48, 0xECC9, 0xEC4F, 0xEBD9, 0xEB69, 0xEAFF, 0xEA9C, 0xEA41, +++ 0xE9EE, 0xE9A4, 0xE964, 0xE92D, 0xE902, 0xE8E2, 0xE8CF, 0xE8C8, 0xFFFF, +++ 0xFFFF, 0xFFF9, 0xFFE9, 0xFFCF, 0xFFAE, 0xFF87, 0xFF5B, 0xFF2D, 0xFEFD, +++ 0xFECD, 0xFE9F, 0xFE74, 0xFE4E, 0xFE2F, 0xFE17, 0xFE09, 0xFE00, 0xFDF8, +++ 0xFDF1, 0xFDE9, 0xFDE3, 0xFDDD, 0xFDD7, 0xFDD2, 0xFDCD, 0xFDC9, 0xFDC5, +++ 0xFDC1, 0xFDBE, 0xFDBB, 0xFDB9, 0xFDB7, 0xFDB5, 0xFDB3, 0xFDB1, 0xFDB0, +++ 0xFDAF, 0xFDAE, 0xFDAE, 0xFDAD, 0xFDAD, 0xFDAC, 0xFDAC, 0xFDAC, 0xFDAC, +++ 0xFDAC, 0xFDAC, 0xFDAD, 0xFDAF, 0xFDB3, 0xFDB7, 0xFDBD, 0xFDC5, 0xFDCD, +++ 0xFDD6, 0xFDE1, 0xFDEC, 0xFDF8, 0xFE04, 0xFE11, 0xFE1F, 0xFE2D, 0xFE3C, +++ 0xFE4B, 0xFE5A, 0xFE6A, 0xFE79, 0xFE89, 0xFE98, 0xFEA8, 0xFEB7, 0xFEC6, +++ 0xFED5, 0xFEE3, 0xFEF1, 0xFEFE, 0xFF0A, 0xFF16, 0xFF21, 0xFF2C, 0xFF35, +++ 0xFF3D, 0xFF44, 0xFF4A, 0xFF4F, 0xFF53, 0xFF55, 0xFF56, 0xFC61, 0xFC61, +++ 0xFC48, 0xFC01, 0xFB94, 0xFB08, 0xFA63, 0xF9AC, 0xF8EB, 0xF826, 0xF765, +++ 0xF6AF, 0xF60A, 0xF57D, 0xF510, 0xF4C9, 0xF4B0, 0xF4B3, 0xF4BB, 0xF4C8, +++ 0xF4DA, 0xF4EF, 0xF509, 0xF526, 0xF546, 0xF569, 0xF58E, 0xF5B5, 0xF5DE, +++ 0xF608, 0xF633, 0xF65F, 0xF68B, 0xF6B6, 0xF6E1, 0xF70B, 0xF734, 0xF75C, +++ 0xF781, 0xF7A4, 0xF7C4, 0xF7E1, 0xF7FA, 0xF810, 0xF822, 0xF82F, 0xF837, +++ 0xF839, 0xF836, 0xF82B, 0xF819, 0xF801, 0xF7E3, 0xF7C0, 0xF797, 0xF769, +++ 0xF736, 0xF700, 0xF6C5, 0xF687, 0xF646, 0xF602, 0xF5BC, 0xF574, 0xF52A, +++ 0xF4DF, 0xF493, 0xF446, 0xF3F9, 0xF3AD, 0xF361, 0xF316, 0xF2CC, 0xF284, +++ 0xF23D, 0xF1FA, 0xF1B9, 0xF17B, 0xF140, 0xF109, 0xF0D7, 0xF0A9, 0xF080, +++ 0xF05C, 0xF03E, 0xF027, 0xF015, 0xF00A, 0xF006, 0xFFFE, 0x0001, 0xC170, +++ 0xFB1C, 0xFB1C, 0xFB3F, 0xFBA3, 0xFC3D, 0xFD04, 0xFDED, 0xFEEE, 0xFFFF, +++ 0x0115, 0x0226, 0x0328, 0x0411, 0x04D7, 0x0571, 0x05D5, 0x05F8, 0x05F8, +++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, +++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, +++ 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, 0x05F8, +++ 0x05F8, 0x05F8, 0x05F8, 0x05F9, 0x05FA, 0x05FD, 0x0600, 0x0605, 0x060A, +++ 0x0610, 0x0616, 0x061E, 0x0626, 0x062E, 0x0637, 0x0640, 0x064A, 0x0654, +++ 0x065F, 0x0669, 0x0674, 0x067F, 0x068A, 0x0695, 0x06A0, 0x06AB, 0x06B6, +++ 0x06C0, 0x06CB, 0x06D5, 0x06DF, 0x06E8, 0x06F1, 0x06F9, 0x0701, 0x0709, +++ 0x070F, 0x0715, 0x071A, 0x071F, 0x0722, 0x0724, 0x0726, 0x0727, 0xD2DB, +++ 0xD2DB, 0xD2EA, 0xD315, 0xD358, 0xD3AD, 0xD412, 0xD481, 0xD4F6, 0xD56E, +++ 0xD5E3, 0xD652, 0xD6B7, 0xD70C, 0xD74F, 0xD77A, 0xD789, 0xD789, 0xD789, +++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, +++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, +++ 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, 0xD789, +++ 0xD789, 0xD789, 0xD789, 0xD78A, 0xD78B, 0xD78D, 0xD78F, 0xD791, 0xD794, +++ 0xD797, 0xD79B, 0xD79E, 0xD7A2, 0xD7A7, 0xD7AB, 0xD7B0, 0xD7B4, 0xD7B9, +++ 0xD7BE, 0xD7C3, 0xD7C9, 0xD7CE, 0xD7D3, 0xD7D8, 0xD7DD, 0xD7E3, 0xD7E8, +++ 0xD7EC, 0xD7F1, 0xD7F6, 0xD7FA, 0xD7FE, 0xD802, 0xD806, 0xD80A, 0xD80D, +++ 0xD810, 0xD812, 0xD814, 0xD816, 0xD817, 0xD818, 0xD4B3, 0xD4B3, 0xD4B7, +++ 0xD4C2, 0xD4D4, 0xD4EA, 0xD504, 0xD521, 0xD53F, 0xD55E, 0xD57D, 0xD59A, +++ 0xD5B4, 0xD5CA, 0xD5DC, 0xD5E7, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, +++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, +++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, +++ 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, 0xD5EB, +++ 0xD5EF, 0xD5FC, 0xD610, 0xD62D, 0xD650, 0xD67A, 0xD6AA, 0xD6E0, 0xD71B, +++ 0xD75C, 0xD7A1, 0xD7EA, 0xD836, 0xD886, 0xD8D9, 0xD92D, 0xD984, 0xD9DD, +++ 0xDA36, 0xDA90, 0xDAEB, 0xDB45, 0xDB9E, 0xDBF7, 0xDC4E, 0xDCA3, 0xDCF5, +++ 0xDD45, 0xDD92, 0xDDDB, 0xDE1F, 0xDE60, 0xDE9B, 0xDED1, 0xDF01, 0xDF2B, +++ 0xDF4F, 0xDF6B, 0xDF7F, 0xDF8C, 0xDF90, 0xFFFF, 0xFFFF, 0xFF9F, 0xFE92, +++ 0xFCF2, 0xFADA, 0xF864, 0xF5AB, 0xF2CB, 0xEFDD, 0xECFC, 0xEA44, 0xE7CE, +++ 0xE5B6, 0xE416, 0xE309, 0xE2A9, 0x0000, 0x0000, 0x0025, 0x008C, 0x012B, +++ 0x01F8, 0x02E9, 0x03F3, 0x050D, 0x062C, 0x0746, 0x0850, 0x0941, 0x0A0E, +++ 0x0AAD, 0x0B14, 0x0B39, 0xCA4E, 0xCA4E, 0xC9DE, 0xC8A4, 0xC6BE, 0xC44C, +++ 0xC16C, 0xBE3F, 0xBAE3, 0xB777, 0xB41A, 0xB0ED, 0xAE0E, 0xAB9B, 0xA9B5, +++ 0xA87B, 0xA80B, 0x0000, 0x0000, 0x0079, 0x01CF, 0x03DE, 0x0686, 0x09A5, +++ 0x0D18, 0x10BD, 0x1474, 0x181A, 0x1B8D, 0x1EAC, 0x2153, 0x2363, 0x24B8, +++ 0x2532, 0xF97B, 0xF97B, 0xF929, 0xF844, 0xF6E1, 0xF517, 0xF2FE, 0xF0AC, +++ 0xEE38, 0xEBB8, 0xE944, 0xE6F1, 0xE4D8, 0xE30F, 0xE1AC, 0xE0C6, 0xE074, +++ 0xED8B, 0xED8B, 0xEDD6, 0xEEAA, 0xEFF2, 0xF198, 0xF387, 0xF5AB, 0xF7EF, +++ 0xFA3D, 0xFC81, 0xFEA5, 0x0095, 0x023B, 0x0383, 0x0457, 0x04A2, 0xFFFE, +++ 0xFFFE, 0xFFE7, 0xFFA7, 0xFF45, 0xFEC5, 0xFE30, 0xFD8A, 0xFCDC, 0xFC2A, +++ 0xFB7B, 0xFAD5, 0xFA40, 0xF9C1, 0xF95E, 0xF91E, 0xF907, 0x0001, 0x0001, +++ 0x0006, 0x0013, 0x0027, 0x0042, 0x0061, 0x0083, 0x00A7, 0x00CC, 0x00F1, +++ 0x0113, 0x0132, 0x014C, 0x0161, 0x016E, 0x0173, 0xC170, 0xC170, 0xC170, +++ 0xC16F, 0xC16D, 0xC16B, 0xC168, 0xC165, 0xC162, 0xC15F, 0xC15C, 0xC159, +++ 0xC156, 0xC154, 0xC152, 0xC151, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, +++ 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054B, 0x054C, +++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, +++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, +++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, +++ 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054C, 0x054D, 0x0552, +++ 0x055A, 0x0564, 0x0572, 0x0582, 0x0594, 0x05A8, 0x05BE, 0x05D7, 0x05F1, +++ 0x060C, 0x0629, 0x0647, 0x0666, 0x0686, 0x06A7, 0x06C8, 0x06EA, 0x070C, +++ 0x072E, 0x0750, 0x0772, 0x0793, 0x07B4, 0x07D4, 0x07F3, 0x0811, 0x082E, +++ 0x0849, 0x0863, 0x087B, 0x0892, 0x08A6, 0x08B8, 0x08C8, 0x08D5, 0x08E0, +++ 0x08E8, 0x08ED, 0x08EE, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, +++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, +++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, +++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, +++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, +++ 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD6, 0x2BD5, 0x2BD4, 0x2BD2, +++ 0x2BCF, 0x2BCB, 0x2BC7, 0x2BC2, 0x2BBC, 0x2BB6, 0x2BAF, 0x2BA8, 0x2BA0, +++ 0x2B98, 0x2B90, 0x2B88, 0x2B7F, 0x2B76, 0x2B6C, 0x2B63, 0x2B5A, 0x2B50, +++ 0x2B47, 0x2B3E, 0x2B34, 0x2B2B, 0x2B22, 0x2B1A, 0x2B11, 0x2B09, 0x2B02, +++ 0x2AFB, 0x2AF4, 0x2AEE, 0x2AE8, 0x2AE3, 0x2ADF, 0x2ADB, 0x2AD8, 0x2AD6, +++ 0x2AD5, 0x2AD4, 0xCCF5, 0xCCF5, 0xCD18, 0xCD7A, 0xCE11, 0xCED4, 0xCFB9, +++ 0xD0B7, 0xD1C2, 0xD2D3, 0xD3DF, 0xD4DC, 0xD5C1, 0xD684, 0xD71C, 0xD77E, +++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, +++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, +++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, +++ 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A0, 0xD7A7, 0xD7B8, 0xD7D6, 0xD7FE, +++ 0xD830, 0xD86B, 0xD8AF, 0xD8FC, 0xD950, 0xD9AB, 0xDA0C, 0xDA73, 0xDAE0, +++ 0xDB50, 0xDBC5, 0xDC3E, 0xDCB9, 0xDD36, 0xDDB4, 0xDE34, 0xDEB4, 0xDF33, +++ 0xDFB2, 0xE02F, 0xE0AA, 0xE122, 0xE197, 0xE208, 0xE274, 0xE2DB, 0xE33D, +++ 0xE398, 0xE3EC, 0xE438, 0xE47C, 0xE4B8, 0xE4EA, 0xE512, 0xE52F, 0xE541, +++ 0xE547, 0x0000, 0x0000, 0x0072, 0x01B2, 0x03A0, 0x061D, 0x090A, 0x0C45, +++ 0x0FB0, 0x132C, 0x1697, 0x19D2, 0x1CBF, 0x1F3C, 0x212A, 0x226A, 0x22DC, +++ 0x0000, 0x0000, 0xFFE0, 0xFF89, 0xFF02, 0xFE55, 0xFD89, 0xFCA8, 0xFBBA, +++ 0xFAC8, 0xF9D9, 0xF8F8, 0xF82D, 0xF77F, 0xF6F9, 0xF6A2, 0xF683, 0xC7DC, +++ 0xC7DC, 0xC780, 0xC67C, 0xC4EA, 0xC2E3, 0xC083, 0xBDE2, 0xBB1A, 0xB846, +++ 0xB57E, 0xB2DD, 0xB07D, 0xAE77, 0xACE5, 0xABE1, 0xAB84, 0xFFFF, 0xFFFF, +++ 0xFF76, 0xFDF5, 0xFBA2, 0xF8A3, 0xF51E, 0xF139, 0xED1C, 0xE8EB, 0xE4CD, +++ 0xE0E9, 0xDD64, 0xDA65, 0xD811, 0xD690, 0xD607, 0x0000, 0x0000, 0x005A, +++ 0x0156, 0x02DC, 0x04D3, 0x0722, 0x09AF, 0x0C61, 0x0F20, 0x11D3, 0x1460, +++ 0x16AF, 0x18A5, 0x1A2C, 0x1B28, 0x1B82, 0xF548, 0xF548, 0xF582, 0xF626, +++ 0xF724, 0xF86A, 0xF9EA, 0xFB92, 0xFD52, 0xFF1B, 0x00DC, 0x0284, 0x0404, +++ 0x054A, 0x0648, 0x06EB, 0x0726, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xD649, +++ 0xD649, 0xD6CD, 0xD841, 0xDA80, 0xDD65, 0xE0CC, 0xE48E, 0xE888, 0xEC94, +++ 0xF08E, 0xF450, 0xF7B6, 0xFA9B, 0xFCDA, 0xFE4E, 0xFED2, 0xEC40, 0xEC40, +++ 0xEC7B, 0xED22, 0xEE23, 0xEF6E, 0xF0F3, 0xF2A2, 0xF469, 0xF638, 0xF7FF, +++ 0xF9AE, 0xFB33, 0xFC7E, 0xFD7F, 0xFE26, 0xFE61, 0xB59D, 0xB59D, 0xB5EB, +++ 0xB6C6, 0xB819, 0xB9CD, 0xBBCE, 0xBE05, 0xC05C, 0xC2BF, 0xC516, 0xC74D, +++ 0xC94D, 0xCB02, 0xCC55, 0xCD30, 0xCD7E, 0x0000, 0x0000, 0xFFFD, 0xFFF7, +++ 0xFFEE, 0xFFE3, 0xFFD5, 0xFFC6, 0xFFB7, 0xFFA6, 0xFF97, 0xFF88, 0xFF7A, +++ 0xFF6F, 0xFF66, 0xFF60, 0xFF5E, 0xFFFF, 0xFFFF, 0x0005, 0x0011, 0x0025, +++ 0x003F, 0x005C, 0x007E, 0x00A1, 0x00C4, 0x00E7, 0x0108, 0x0126, 0x0140, +++ 0x0153, 0x0160, 0x0165, 0x2537, 0x2537, 0x24CF, 0x23A9, 0x21E4, 0x1F9B, +++ 0x1CED, 0x19F5, 0x16D3, 0x13A1, 0x107E, 0x0D87, 0x0AD9, 0x0890, 0x06CB, +++ 0x05A5, 0x053D, 0xFFFF, 0xFFFF, 0xFFF0, 0xFFC4, 0xFF81, 0xFF2B, 0xFEC6, +++ 0xFE56, 0xFDE0, 0xFD67, 0xFCF1, 0xFC81, 0xFC1C, 0xFBC6, 0xFB83, 0xFB58, +++ 0xFB48, 0x0000, 0x0000, 0xFFD3, 0xFF58, 0xFE9A, 0xFDA6, 0xFC86, 0xFB48, +++ 0xF9F8, 0xF8A2, 0xF752, 0xF614, 0xF4F4, 0xF3FF, 0xF342, 0xF2C7, 0xF29B, +++ 0xBF3F, 0xBF3F, 0xBF51, 0xBF84, 0xBFD3, 0xC038, 0xC0AF, 0xC132, 0xC1BD, +++ 0xC24B, 0xC2D6, 0xC359, 0xC3D0, 0xC435, 0xC484, 0xC4B6, 0xC4C8, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0001, 0x0003, 0x0007, 0x000C, 0x0012, 0x001A, 0x0022, +++ 0x002C, 0x0036, 0x0042, 0x004E, 0x005B, 0x0069, 0x0077, 0x0086, 0x0095, +++ 0x00A5, 0x00B4, 0x00C4, 0x00D5, 0x00E5, 0x00F5, 0x0105, 0x0115, 0x0124, +++ 0x0133, 0x0142, 0x0150, 0x015E, 0x016B, 0x0177, 0x0183, 0x018D, 0x0197, +++ 0x01A0, 0x01A7, 0x01AD, 0x01B2, 0x01B6, 0x01B8, 0x01B9, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFB, 0xFFEE, 0xFFD9, 0xFFBD, 0xFF9A, 0xFF71, 0xFF41, 0xFF0B, +++ 0xFED0, 0xFE90, 0xFE4C, 0xFE03, 0xFDB7, 0xFD68, 0xFD16, 0xFCC1, 0xFC6B, +++ 0xFC13, 0xFBBA, 0xFB60, 0xFB07, 0xFAAD, 0xFA54, 0xF9FC, 0xF9A6, 0xF951, +++ 0xF8FF, 0xF8B0, 0xF864, 0xF81B, 0xF7D7, 0xF797, 0xF75C, 0xF726, 0xF6F6, +++ 0xF6CD, 0xF6AA, 0xF68E, 0xF679, 0xF66C, 0xF668, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, 0xBF5E, +++ 0xBF5E, 0xBF5E, 0xBF5D, 0xBF5D, 0xBF5C, 0xBF5B, 0xBF5A, 0xBF59, 0xBF58, +++ 0xBF56, 0xBF55, 0xBF53, 0xBF52, 0xBF50, 0xBF4E, 0xBF4D, 0xBF4B, 0xBF49, +++ 0xBF47, 0xBF45, 0xBF43, 0xBF41, 0xBF3F, 0xBF3E, 0xBF3C, 0xBF3A, 0xBF38, +++ 0xBF36, 0xBF35, 0xBF33, 0xBF32, 0xBF30, 0xBF2F, 0xBF2E, 0xBF2D, 0xBF2C, +++ 0xBF2B, 0xBF2B, 0xBF2A, 0x1B09, 0x1B09, 0x1AA6, 0x198E, 0x17DF, 0x15B3, +++ 0x1326, 0x1054, 0x0D58, 0x0A4E, 0x0752, 0x0480, 0x01F3, 0xFFC6, 0xFE16, +++ 0xFCFF, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, +++ 0xFCA2, 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, +++ 0xFCA2, 0xFCA2, 0xFCA1, 0xFCA0, 0xFC9E, 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9D, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1, 0xFCA2, 0xFCA2, 0xFCA2, +++ 0xFCA2, 0xFCA1, 0x1144, 0x1144, 0x1104, 0x104E, 0x0F36, 0x0DCD, 0x0C26, +++ 0x0A51, 0x0861, 0x0668, 0x0479, 0x02A4, 0x00FC, 0xFF92, 0xFE7A, 0xFDC5, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD84, 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, +++ 0xFD5D, 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, +++ 0xFD81, 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, +++ 0xFD5F, 0xFD65, 0xFD6D, 0xFD75, 0xFD7D, 0xFD83, 0xFD85, 0xFD84, 0xFD81, +++ 0xFD7C, 0xFD77, 0xFD71, 0xFD6B, 0xFD66, 0xFD61, 0xFD5E, 0xFD5D, 0xFD5F, +++ 0xFD65, 0xAC43, 0xAC43, 0xAC8D, 0xAD5B, 0xAE9B, 0xB037, 0xB21A, 0xB431, +++ 0xB666, 0xB8A6, 0xBADB, 0xBCF2, 0xBED6, 0xC071, 0xC1B1, 0xC27F, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2AA, +++ 0xC255, 0xC1D7, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, +++ 0xBEA9, 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, +++ 0xC1D8, 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, +++ 0xBF49, 0xC023, 0xC111, 0xC1EB, 0xC28B, 0xC2C9, 0xC2AA, 0xC255, 0xC1D8, +++ 0xC140, 0xC09A, 0xBFF5, 0xBF5D, 0xBEE0, 0xBE8B, 0xBE6B, 0xBEA9, 0xBF49, +++ 0xFFFF, 0xFFFF, 0xFFFD, 0xFFF9, 0xFFF2, 0xFFE9, 0xFFDF, 0xFFD3, 0xFFC7, +++ 0xFFBB, 0xFFAE, 0xFFA3, 0xFF99, 0xFF90, 0xFF89, 0xFF84, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, +++ 0xFF8B, 0xFF90, 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA9, +++ 0xFFA9, 0xFFA9, 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA7, 0xFFA6, 0xFFA6, 0xFFA5, +++ 0xFFA4, 0xFFA3, 0xFFA2, 0xFFA1, 0xFFA0, 0xFF9F, 0xFF9E, 0xFF9D, 0xFF9C, +++ 0xFF9B, 0xFF9A, 0xFF98, 0xFF97, 0xFF96, 0xFF95, 0xFF94, 0xFF92, 0xFF91, +++ 0xFF90, 0xFF8F, 0xFF8E, 0xFF8D, 0xFF8C, 0xFF8B, 0xFF8A, 0xFF89, 0xFFFF, +++ 0xFFFF, 0x0008, 0x001F, 0x0042, 0x006F, 0x00A4, 0x00DF, 0x011D, 0x015C, +++ 0x019A, 0x01D4, 0x0209, 0x0237, 0x025A, 0x0270, 0x0278, 0x0278, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, 0x0274, 0x026E, +++ 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, 0x024B, 0x024B, +++ 0x024B, 0x024C, 0x024C, 0x024D, 0x024E, 0x024E, 0x024F, 0x0250, 0x0251, +++ 0x0252, 0x0253, 0x0254, 0x0255, 0x0257, 0x0258, 0x0259, 0x025B, 0x025C, +++ 0x025D, 0x025F, 0x0260, 0x0262, 0x0263, 0x0264, 0x0266, 0x0267, 0x0269, +++ 0x026A, 0x026B, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x1E4A, 0x1E4A, +++ 0x1DF9, 0x1D16, 0x1BB6, 0x19F1, 0x17DD, 0x1591, 0x1323, 0x10A9, 0x0E3B, +++ 0x0BEF, 0x09DB, 0x0816, 0x06B7, 0x05D3, 0x0582, 0x0582, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, +++ 0x0714, 0x078B, 0x07F8, 0x0852, 0x088F, 0x08A5, 0x08A4, 0x08A1, 0x089C, +++ 0x0896, 0x088D, 0x0883, 0x0877, 0x086A, 0x085B, 0x084B, 0x083A, 0x0828, +++ 0x0815, 0x0800, 0x07EB, 0x07D5, 0x07BF, 0x07A7, 0x0790, 0x0777, 0x075F, +++ 0x0746, 0x072D, 0x0714, 0x06FB, 0x06E2, 0x06C9, 0x06B0, 0x0698, 0x0680, +++ 0x0669, 0x0653, 0x063D, 0x0627, 0x0613, 0x0600, 0xFFFF, 0xFFFF, 0x0014, +++ 0x004E, 0x00A7, 0x011A, 0x01A0, 0x0235, 0x02D3, 0x0373, 0x0411, 0x04A6, +++ 0x052D, 0x059F, 0x05F8, 0x0632, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, +++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, +++ 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, +++ 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, 0x0637, +++ 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, 0x0614, 0x0609, +++ 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0xFF2F, 0xFF2F, 0xFF61, 0xFFEF, +++ 0x00CB, 0x01E5, 0x0330, 0x049E, 0x0622, 0x07AC, 0x092F, 0x0A9E, 0x0BE9, +++ 0x0D03, 0x0DDE, 0x0E6B, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, +++ 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, +++ 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, +++ 0x14D3, 0x1559, 0x158B, 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, +++ 0x0E9E, 0x0ECF, 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, +++ 0x1559, 0x158B, 0x1529, 0x142B, 0xC9D7, 0xC9D7, 0xC9EA, 0xCA1E, 0xCA6F, +++ 0xCAD8, 0xCB52, 0xCBDA, 0xCC69, 0xCCFB, 0xCD8B, 0xCE12, 0xCE8D, 0xCEF5, +++ 0xCF46, 0xCF7B, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, +++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, +++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, +++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, +++ 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, 0xC328, +++ 0xC2CC, 0xC381, 0xC553, ++ }; ++ +diff --git a/assets/anims/anim_84.inc.c b/assets/anims/anim_84.inc.c +index 21f981a..6505065 100644 +--- a/assets/anims/anim_84.inc.c ++++ b/assets/anims/anim_84.inc.c +@@ -3,7 +3,7 @@ static const struct Animation anim_84[] = { + 189, + 0, + 0, +- 0x40, ++ 97, + ANIMINDEX_NUMPARTS(anim_84_indices), + anim_84_values, + anim_84_indices, +@@ -12,326 +12,584 @@ static const struct Animation anim_84[] = { + + + static const u16 anim_84_indices[] = { +- 0x0001, 0x0000, 0x0040, 0x0001, 0x0040, 0x0041, 0x0001, 0x0000, 0x0001, 0x0081, 0x0001, 0x0000, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x090A, +- 0x0040, 0x084A, 0x0040, 0x088A, 0x0040, 0x08CA, +- 0x0040, 0x078A, 0x0040, 0x07CA, 0x0040, 0x080A, +- 0x0001, 0x0786, 0x0001, 0x0787, 0x0001, 0x0788, +- 0x0040, 0x0182, 0x0040, 0x01C2, 0x0040, 0x0202, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0142, +- 0x0040, 0x0082, 0x0040, 0x00C2, 0x0040, 0x0102, +- 0x0001, 0x0782, 0x0001, 0x0783, 0x0001, 0x0784, +- 0x0040, 0x0342, 0x0040, 0x0382, 0x0040, 0x03C2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0302, +- 0x0040, 0x0242, 0x0040, 0x0282, 0x0040, 0x02C2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0785, +- 0x0040, 0x06C2, 0x0040, 0x0702, 0x0040, 0x0742, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0682, +- 0x0040, 0x05C2, 0x0040, 0x0602, 0x0040, 0x0642, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0789, +- 0x0040, 0x0502, 0x0040, 0x0542, 0x0040, 0x0582, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x04C2, +- 0x0040, 0x0402, 0x0040, 0x0442, 0x0040, 0x0482, ++0x0001, 0x0000, 0x005D, 0x0001, 0x0001, 0x005E, 0x003C, 0x005F, 0x003B, ++ 0x009B, 0x005D, 0x00D6, 0x005B, 0x0133, 0x005D, 0x018E, 0x0001, 0x01EB, ++ 0x0062, 0x01EC, 0x0062, 0x024E, 0x0062, 0x02B0, 0x0062, 0x0312, 0x0062, ++ 0x0374, 0x0062, 0x03D6, 0x005D, 0x0438, 0x005D, 0x0495, 0x005D, 0x04F2, ++ 0x003C, 0x054F, 0x003C, 0x058B, 0x003C, 0x05C7, 0x003C, 0x0603, 0x003C, ++ 0x063F, 0x003C, 0x067B, 0x005D, 0x06B7, 0x005D, 0x0714, 0x005D, 0x0771, ++ 0x003B, 0x07CE, 0x003B, 0x0809, 0x0039, 0x0844, 0x0062, 0x087D, 0x0062, ++ 0x08DF, 0x0062, 0x0941, 0x005D, 0x09A3, 0x005D, 0x0A00, 0x005D, 0x0A5D, ++ 0x005A, 0x0ABA, 0x005A, 0x0B14, 0x005A, 0x0B6E, 0x005D, 0x0BC8, 0x005D, ++ 0x0C25, 0x0001, 0x0C82, 0x005D, 0x0C83, 0x005D, 0x0CE0, 0x005D, 0x0D3D, ++ 0x005D, 0x0D9A, 0x005D, 0x0DF7, 0x005D, 0x0E54, 0x005D, 0x0EB1, 0x005D, ++ 0x0F0E, 0x005D, 0x0F6B, 0x003A, 0x0FC8, 0x003C, 0x1002, 0x003C, 0x103E, ++ 0x005D, 0x107A, 0x005D, 0x10D7, 0x005D, 0x1134, 0x005D, 0x1191, 0x005D, ++ 0x11EE, 0x005D, 0x124B, 0x005D, 0x12A8, 0x005D, 0x1305, 0x005D, 0x1362, + }; + + static const s16 anim_84_values[] = { +- 0x0000, 0x00AB, 0x00AA, 0x00A7, 0x00A3, 0x009F, 0x0099, 0x0092, +- 0x008B, 0x0084, 0x007C, 0x0073, 0x0068, 0x005B, 0x004E, 0x0043, +- 0x0039, 0x0032, 0x002F, 0x002D, 0x002E, 0x002F, 0x0031, 0x0033, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, +- 0x0035, 0xFFFF, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, 0xFFEA, 0xFFE2, +- 0xFFD9, 0xFFD0, 0xFFC7, 0xFFBB, 0xFFAC, 0xFF9B, 0xFF8A, 0xFF7A, +- 0xFF6D, 0xFF63, 0xFF5D, 0xFF5A, 0xFF58, 0xFF57, 0xFF58, 0xFF58, +- 0xFF59, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, +- 0xFF5A, 0x3FFF, 0xFE50, 0xFE40, 0xFE17, 0xFDE1, 0xFDAC, 0xFD83, +- 0xFD73, 0xFD87, 0xFDCD, 0xFE50, 0xFF66, 0x0122, 0x0333, 0x0543, +- 0x0700, 0x0816, 0x0899, 0x08DF, 0x08F3, 0x08E3, 0x08BA, 0x0885, +- 0x084F, 0x0826, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, +- 0x0816, 0x0816, 0xF9B4, 0xF9DB, 0xFA3C, 0xFABB, 0xFB39, 0xFB9A, +- 0xFBC1, 0xFB91, 0xFAEB, 0xF9B4, 0xF722, 0xF302, 0xEE1C, 0xE937, +- 0xE517, 0xE285, 0xE14D, 0xE0A8, 0xE078, 0xE09E, 0xE100, 0xE17E, +- 0xE1FC, 0xE25E, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, +- 0xE285, 0xE285, 0xF845, 0xF85D, 0xF898, 0xF8E4, 0xF931, 0xF96C, +- 0xF984, 0xF966, 0xF902, 0xF845, 0xF6B5, 0xF434, 0xF13A, 0xEE40, +- 0xEBBF, 0xEA2F, 0xE972, 0xE90D, 0xE8F0, 0xE907, 0xE943, 0xE98F, +- 0xE9DC, 0xEA17, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, +- 0xEA2F, 0xEA2F, 0xE4CB, 0xE3E1, 0xE352, 0xE310, 0xE30D, 0xE33B, +- 0xE38C, 0xE3F4, 0xE462, 0xE4CB, 0xE552, 0xE61A, 0xE714, 0xE82D, +- 0xE956, 0xEA7F, 0xEBC9, 0xED4F, 0xEEF8, 0xF0A8, 0xF245, 0xF3B4, +- 0xF4DB, 0xF5A0, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, +- 0xF5E7, 0xF5E7, 0x896F, 0x8A49, 0x8B9F, 0x8D40, 0x8EFB, 0x909E, +- 0x91F8, 0x92D8, 0x930B, 0x9262, 0x8FF5, 0x8B93, 0x861C, 0x8071, +- 0x7B72, 0x7800, 0x75CB, 0x73EC, 0x725E, 0x711B, 0x701E, 0x6F62, +- 0x6EE3, 0x6E9A, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, +- 0x6E83, 0x6E83, 0xA3B0, 0xA309, 0xA3C2, 0xA581, 0xA7EE, 0xAAAE, +- 0xAD69, 0xAFC6, 0xB16B, 0xB1FE, 0xB0F8, 0xAE7A, 0xAB26, 0xA7A1, +- 0xA490, 0xA296, 0xA187, 0xA0C0, 0xA036, 0x9FDF, 0x9FB0, 0x9F9E, +- 0x9F9F, 0x9FA7, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, +- 0x9FAC, 0x9FAC, 0x384A, 0x37DB, 0x36B9, 0x351E, 0x3344, 0x3163, +- 0x2FB7, 0x2E77, 0x2DDF, 0x2E27, 0x3005, 0x338F, 0x380F, 0x3CD2, +- 0x4120, 0x4446, 0x468F, 0x48BB, 0x4AC0, 0x4C92, 0x4E27, 0x4F75, +- 0x5070, 0x510E, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, +- 0x5146, 0x5146, 0x0BDE, 0x0A32, 0x0973, 0x096A, 0x09DD, 0x0A97, +- 0x0B5E, 0x0BFD, 0x0C3A, 0x0BDE, 0x0AC6, 0x0918, 0x070C, 0x04DA, +- 0x02B9, 0x00E0, 0xFF1F, 0xFD30, 0xFB2C, 0xF930, 0xF755, 0xF5B5, +- 0xF46C, 0xF393, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, +- 0xF345, 0xF345, 0x04C8, 0x0445, 0x0386, 0x02B4, 0x01F6, 0x0172, +- 0x0151, 0x01BA, 0x02D5, 0x04C8, 0x08E3, 0x0F81, 0x1757, 0x1F1D, +- 0x2588, 0x294E, 0x2AB3, 0x2B00, 0x2A74, 0x294F, 0x27D1, 0x2638, +- 0x24C6, 0x23B9, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, +- 0x2351, 0x2351, 0xFA2D, 0xFA60, 0xFA9F, 0xFADE, 0xFB14, 0xFB35, +- 0xFB3A, 0xFB16, 0xFABF, 0xFA2D, 0xF925, 0xF795, 0xF5AA, 0xF392, +- 0xF17A, 0xEF8F, 0xED9D, 0xEB66, 0xE90C, 0xE6B1, 0xE477, 0xE281, +- 0xE0F0, 0xDFE6, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, +- 0xDF86, 0xDF86, 0xF09C, 0xF145, 0xF19F, 0xF1BA, 0xF1A5, 0xF170, +- 0xF12B, 0xF0E6, 0xF0B1, 0xF09C, 0xF085, 0xF052, 0xF01F, 0xF008, +- 0xF029, 0xF09C, 0xF175, 0xF2A1, 0xF402, 0xF57D, 0xF6F3, 0xF849, +- 0xF961, 0xFA1E, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, +- 0xFA63, 0xFA63, 0x12E8, 0x1350, 0x13AD, 0x1401, 0x144E, 0x1494, +- 0x14D6, 0x1515, 0x1552, 0x1590, 0x15D4, 0x161C, 0x165E, 0x168F, +- 0x16A3, 0x1690, 0x1651, 0x15EE, 0x1574, 0x14EC, 0x1464, 0x13E6, +- 0x137D, 0x1336, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, +- 0x131C, 0x131C, 0x0693, 0x0694, 0x07E5, 0x0A22, 0x0CE5, 0x0FC7, +- 0x1262, 0x1452, 0x1531, 0x1497, 0x1145, 0x0B1F, 0x0373, 0xFB95, +- 0xF4D4, 0xF080, 0xEE3E, 0xECBC, 0xEBD9, 0xEB72, 0xEB69, 0xEB9B, +- 0xEBE7, 0xEC2D, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, +- 0xEC4C, 0xEC4C, 0xCABB, 0xCBF3, 0xCD03, 0xCDF1, 0xCEC7, 0xCF8D, +- 0xD04C, 0xD10C, 0xD1D7, 0xD2B4, 0xD3A3, 0xD499, 0xD593, 0xD68F, +- 0xD787, 0xD879, 0xD97D, 0xDAA1, 0xDBD7, 0xDD0B, 0xDE2D, 0xDF2D, +- 0xDFF8, 0xE07F, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, +- 0xE0B0, 0xE0B0, 0x0000, 0x0002, 0x0007, 0x000E, 0x0016, 0x0020, +- 0x0029, 0x0032, 0x0039, 0x003F, 0x0043, 0x0046, 0x0048, 0x0048, +- 0x0045, 0x003F, 0x0033, 0x0023, 0x000F, 0xFFFC, 0xFFE8, 0xFFD5, +- 0xFFC6, 0xFFBC, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, +- 0xFFB8, 0xFFB8, 0xFF30, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF35, +- 0xFF36, 0xFF38, 0xFF39, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, +- 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3B, 0xFF3B, 0xFF3C, 0xFF3C, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, +- 0xFF3D, 0xFF3D, 0xC9D8, 0xC96E, 0xC871, 0xC705, 0xC54E, 0xC36F, +- 0xC18D, 0xBFCB, 0xBE4D, 0xBD36, 0xBC62, 0xBBAC, 0xBB3F, 0xBB41, +- 0xBBDB, 0xBD36, 0xBF8B, 0xC2C4, 0xC690, 0xCAA1, 0xCEA7, 0xD253, +- 0xD554, 0xD75C, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, +- 0xD81B, 0xD81B, 0x1E4A, 0x1FB6, 0x231D, 0x27F8, 0x2DBF, 0x33E9, +- 0x39EE, 0x3F46, 0x4369, 0x45CF, 0x45F1, 0x4401, 0x408D, 0x3C24, +- 0x3753, 0x32A9, 0x2D8E, 0x275D, 0x2088, 0x1983, 0x12C1, 0x0CB6, +- 0x07D7, 0x0495, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, +- 0x0366, 0x0366, 0x1B09, 0x1A7E, 0x1933, 0x1753, 0x150A, 0x1281, +- 0x0FE4, 0x0D5E, 0x0B18, 0x093E, 0x07A8, 0x0625, 0x04D2, 0x03CE, +- 0x0334, 0x0324, 0x03AB, 0x04AA, 0x05FD, 0x0781, 0x090F, 0x0A85, +- 0x0BBD, 0x0C93, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, +- 0x0CE2, 0x0CE2, 0x1144, 0x1142, 0x113D, 0x1136, 0x1131, 0x112E, +- 0x1130, 0x1139, 0x114B, 0x1168, 0x11AB, 0x121A, 0x1299, 0x130B, +- 0x1354, 0x1357, 0x1310, 0x1299, 0x1200, 0x1154, 0x10A5, 0x1003, +- 0x0F7C, 0x0F20, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, +- 0x0EFE, 0x0EFE, 0xAC44, 0xAB52, 0xA915, 0xA5D5, 0xA1D9, 0x9D68, +- 0x98CC, 0x944C, 0x902F, 0x8CBE, 0x898A, 0x8631, 0x8314, 0x8092, +- 0x7F0A, 0x7EDC, 0x8026, 0x828C, 0x85B8, 0x8953, 0x8D08, 0x9080, +- 0x9364, 0x9560, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, +- 0x961D, 0x961D, 0x0000, 0x0008, 0x000D, 0x000E, 0x000D, 0x000A, +- 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0xFFFC, 0xFFFA, 0xFFF9, 0xFFFA, 0xFFFB, +- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0xBF40, 0xBF38, 0xBF34, 0xBF33, 0xBF34, 0xBF36, +- 0xBF39, 0xBF3D, 0xBF3F, 0xBF40, 0xBF1C, 0xBECB, 0xBE7B, 0xBE57, +- 0xBE8A, 0xBF40, 0xC098, 0xC273, 0xC4A2, 0xC6FA, 0xC94B, 0xCB67, +- 0xCD22, 0xCE4E, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, +- 0xCEBC, 0xCEBC, 0x2537, 0x266B, 0x2950, 0x2D6B, 0x3244, 0x3760, +- 0x3C47, 0x407F, 0x438F, 0x44FE, 0x440B, 0x40C9, 0x3BFE, 0x3671, +- 0x30E6, 0x2C24, 0x279F, 0x227D, 0x1D0D, 0x179B, 0x1277, 0x0DF0, +- 0x0A53, 0x07EE, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, +- 0x0710, 0x0710, 0xD64A, 0xD74E, 0xD9B7, 0xDD32, 0xE167, 0xE602, +- 0xEAAD, 0xEF13, 0xF2DD, 0xF5B7, 0xF789, 0xF893, 0xF903, 0xF906, +- 0xF8CA, 0xF87B, 0xF803, 0xF73E, 0xF644, 0xF52E, 0xF413, 0xF30D, +- 0xF234, 0xF1A0, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, +- 0xF169, 0xF169, 0xEC41, 0xEC5A, 0xEC97, 0xECEE, 0xED56, 0xEDC4, +- 0xEE30, 0xEE8F, 0xEEDA, 0xEF05, 0xEEF4, 0xEEA8, 0xEE41, 0xEDE0, +- 0xEDA5, 0xEDB1, 0xEE09, 0xEE92, 0xEF3C, 0xEFF8, 0xF0B5, 0xF163, +- 0xF1F3, 0xF255, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, +- 0xF279, 0xF279, 0xB59E, 0xB448, 0xB119, 0xAC80, 0xA6ED, 0xA0CE, +- 0x9A92, 0x94A9, 0x8F81, 0x8B8A, 0x88B4, 0x869F, 0x8540, 0x848B, +- 0x8477, 0x84F7, 0x8634, 0x8835, 0x8ABC, 0x8D8A, 0x9061, 0x9303, +- 0x9532, 0x96AE, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, +- 0x973B, 0x973B, 0x9524, 0x5D21, 0x475E, 0xBF5F, 0x90BE, 0x7987, +- 0x4B8C, 0xBF5F, 0x0015, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, +- 0x0016, 0x0016, 0x0016, 0x0015, 0x0017, 0x001C, 0x0021, 0x0023, +- 0x0020, 0x0015, 0x0003, 0xFFEC, 0xFFD0, 0xFFB1, 0xFF93, 0xFF75, +- 0xFF5A, 0xFF44, 0xFF35, 0xFF2C, 0xFF2A, 0xFF2B, 0xFF30, 0xFF36, +- 0xFF3C, 0xFF41, 0xFF42, 0xFF3E, 0xFF35, 0xFF26, 0xFF16, 0xFF05, +- 0xFEF2, 0xFEDD, 0xFEC8, 0xFEB2, 0xFE9C, 0xFE85, 0xFE6D, 0xFE56, +- 0xFE3F, 0xFE28, 0xFE12, 0xFDFC, 0xFDE8, 0xFDD4, 0xFDC2, 0xFDB1, +- 0xFDA2, 0xFD95, 0xFD89, 0xFD80, 0xFD7A, 0xFD75, 0xFD72, 0xFD71, +- 0xFD71, 0xFD73, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, +- 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4B, 0xFD4B, 0xFD4A, +- 0xFD4B, 0xFD4C, 0xFD4F, 0xFD52, 0xFD56, 0xFD5A, 0xFD5E, 0xFD62, +- 0xFD65, 0xFD68, 0xFD6A, 0xFD6B, 0xFD69, 0xFD65, 0xFD61, 0xFD5D, +- 0xFD5A, 0xFD5A, 0xFD5B, 0xFD61, 0xFD6A, 0xFD78, 0xFD86, 0xFD97, +- 0xFDA8, 0xFDBB, 0xFDCF, 0xFDE3, 0xFDF8, 0xFE0E, 0xFE23, 0xFE39, +- 0xFE4E, 0xFE63, 0xFE78, 0xFE8C, 0xFE9F, 0xFEB0, 0xFEC1, 0xFECF, +- 0xFEDD, 0xFEE8, 0xFEF1, 0xFEF8, 0xFEFC, 0xFEFE, 0xFEFF, 0xFEFD, +- 0xFEF9, 0xFEF4, 0xF588, 0xF577, 0xF56E, 0xF56C, 0xF56E, 0xF573, +- 0xF57A, 0xF580, 0xF586, 0xF588, 0xF568, 0xF522, 0xF4DC, 0xF4BC, +- 0xF4E9, 0xF588, 0xF6A1, 0xF811, 0xF9BE, 0xFB8D, 0xFD64, 0xFF29, +- 0x00C0, 0x0210, 0x0300, 0x0379, 0x038E, 0x0359, 0x02F7, 0x0283, +- 0x0219, 0x01D5, 0x01D2, 0x022C, 0x0300, 0x042D, 0x0581, 0x06F6, +- 0x088A, 0x0A37, 0x0BF9, 0x0DCD, 0x0FAD, 0x1197, 0x1385, 0x1574, +- 0x175F, 0x1942, 0x1B19, 0x1CE0, 0x1E93, 0x202D, 0x21AB, 0x2307, +- 0x243E, 0x254C, 0x262D, 0x26DC, 0x2757, 0x27A3, 0x27C2, 0x27BA, +- 0x278D, 0x2740, 0xFD9F, 0xFDCE, 0xFE05, 0xFE42, 0xFE83, 0xFEC4, +- 0xFF03, 0xFF3E, 0xFF71, 0xFF9B, 0xFFB7, 0xFFC5, 0xFFCA, 0xFFC8, +- 0xFFC2, 0xFFBE, 0xFFB9, 0xFFB0, 0xFFA4, 0xFF98, 0xFF8B, 0xFF7F, +- 0xFF75, 0xFF6F, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, +- 0xFF6C, 0xFF6C, 0x04A4, 0x0441, 0x03D0, 0x0356, 0x02D7, 0x0259, +- 0x01DF, 0x0170, 0x0110, 0x00C4, 0x0098, 0x008F, 0x009C, 0x00B3, +- 0x00C9, 0x00D2, 0x00CF, 0x00C9, 0x00C3, 0x00BC, 0x00B4, 0x00AE, +- 0x00A8, 0x00A4, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, +- 0x00A3, 0x00A3, 0x0FC6, 0x113B, 0x128D, 0x13C1, 0x14E0, 0x15F1, +- 0x16FA, 0x1803, 0x1913, 0x1A30, 0x1B99, 0x1D52, 0x1F0B, 0x2075, +- 0x2140, 0x211E, 0x1FF6, 0x1E0E, 0x1BA3, 0x18F1, 0x1635, 0x13AB, +- 0x1190, 0x1020, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, +- 0x0F98, 0x0F98, 0x40A1, 0x40C8, 0x4129, 0x41A8, 0x4227, 0x4288, +- 0x42AF, 0x427E, 0x41D9, 0x40A1, 0x3E0E, 0x39EC, 0x3504, 0x301D, +- 0x2BFB, 0x2968, 0x2830, 0x278B, 0x275A, 0x2781, 0x27E2, 0x2861, +- 0x28E0, 0x2941, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, +- 0x2968, 0x2968, ++ 0x0000, 0x00BD, 0x00BD, 0x00BD, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, ++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, ++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00C2, ++ 0x00C9, 0x00D2, 0x00DB, 0x00E1, 0x00E4, 0x00DD, 0x00C9, 0x00AD, 0x008E, ++ 0x006E, 0x0052, 0x003F, 0x0037, 0xFFFF, 0xC005, 0xC005, 0xC005, 0xC005, ++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, 0xC016, 0xC022, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, 0xC08C, 0xC0C1, ++ 0xC0FF, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, 0xC380, 0xC3EF, ++ 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, 0xC778, 0xC7E0, ++ 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CC, 0xCA02, 0xCA2C, 0xCA4C, ++ 0xCA5F, 0xCA66, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, ++ 0x38E3, 0x38E3, 0x38E3, 0x38E4, 0x38E5, 0x38E7, 0x38E7, 0x38E7, 0x38E7, ++ 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, ++ 0x38E7, 0x38E8, 0x38EA, 0x38EE, 0x38F2, 0x38F8, 0x38FF, 0x3907, 0x3910, ++ 0x391A, 0x3924, 0x392F, 0x393A, 0x3946, 0x3953, 0x395F, 0x396C, 0x3979, ++ 0x3986, 0x3992, 0x399F, 0x39AB, 0x39B7, 0x39C3, 0x39CE, 0x39D8, 0x39E2, ++ 0x39EB, 0x39F2, 0x39F9, 0x39FF, 0x3A04, 0x3A08, 0x3A0A, 0xC005, 0xC005, ++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, ++ 0xC016, 0xC022, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, ++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, ++ 0xC08C, 0xC0C1, 0xC100, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, ++ 0xC380, 0xC3EF, 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, ++ 0xC778, 0xC7E0, 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CD, 0xCA02, ++ 0xCA2C, 0xCA4C, 0xCA5F, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, ++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, ++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCB55, 0xCDF2, 0xD1F4, 0xD716, ++ 0xDD0F, 0xE396, 0xEA66, 0xF135, 0xF7BD, 0xFDB6, 0x02D8, 0x06DB, 0x0978, ++ 0x0A67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x40A1, 0xF721, 0xF709, 0xF6F2, ++ 0xF6DB, 0xF6C5, 0xF6B0, 0xF69B, 0xF687, 0xF674, 0xF662, 0xF650, 0xF640, ++ 0xF630, 0xF621, 0xF613, 0xF606, 0xF5FA, 0xF5F0, 0xF5E6, 0xF5DE, 0xF5D6, ++ 0xF5D0, 0xF5CC, 0xF5C8, 0xF5C6, 0xF5C5, 0xF5CD, 0xF5E4, 0xF609, 0xF63C, ++ 0xF67A, 0xF6C4, 0xF719, 0xF776, 0xF7DD, 0xF84A, 0xF8BF, 0xF939, 0xF9B8, ++ 0xFA3A, 0xFAC0, 0xFB47, 0xFBCF, 0xFC57, 0xFCDF, 0xFD64, 0xFDE7, 0xFE66, ++ 0xFEE0, 0xFF54, 0xFFC2, 0x0029, 0x0087, 0x00DB, 0x0125, 0x0164, 0x0196, ++ 0x01BB, 0x01D2, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, ++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, ++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01F8, 0x024B, 0x02CA, 0x036F, 0x042F, ++ 0x0504, 0x05E3, 0x06C5, 0x07A2, 0x0870, 0x0928, 0x09C0, 0x0A27, 0x0A4E, ++ 0x0A4C, 0x0A47, 0x0A41, 0x0A3A, 0x0A35, 0x01F4, 0x01F9, 0x01FF, 0x0204, ++ 0x0209, 0x020E, 0x0213, 0x0218, 0x021C, 0x0221, 0x0225, 0x0229, 0x022D, ++ 0x0230, 0x0234, 0x0237, 0x023A, 0x023C, 0x023F, 0x0241, 0x0242, 0x0244, ++ 0x0245, 0x0246, 0x0246, 0x0247, 0x0245, 0x0240, 0x0239, 0x022E, 0x0221, ++ 0x0212, 0x0200, 0x01ED, 0x01D8, 0x01C1, 0x01A9, 0x018F, 0x0175, 0x015A, ++ 0x013E, 0x0122, 0x0106, 0x00EA, 0x00CE, 0x00B2, 0x0097, 0x007D, 0x0063, ++ 0x004B, 0x0034, 0x001F, 0x000C, 0xFFF9, 0xFFEA, 0xFFDD, 0xFFD3, 0xFFCB, ++ 0xFFC6, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, ++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, ++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFF37, 0xFDB2, 0xFB68, 0xF88D, 0xF554, 0xF1F1, ++ 0xEE97, 0xEB7A, 0xE8CE, 0xE6C5, 0xE593, 0xE516, 0xE4E9, 0xE4DD, 0xE4CB, ++ 0xE4AF, 0xE48F, 0xE471, 0xE45B, 0x1040, 0x1040, 0x1040, 0x1040, 0x1040, ++ 0x1040, 0x1040, 0x1040, 0x1040, 0x103F, 0x103F, 0x103F, 0x103E, 0x103D, ++ 0x103D, 0x103C, 0x103B, 0x103A, 0x1039, 0x1038, 0x1036, 0x1035, 0x1033, ++ 0x1031, 0x102F, 0x102D, 0x1023, 0x100A, 0x0FE4, 0x0FB1, 0x0F72, 0x0F28, ++ 0x0ED4, 0x0E77, 0x0E12, 0x0DA5, 0x0D32, 0x0CB9, 0x0C3C, 0x0BBC, 0x0B39, ++ 0x0AB4, 0x0A2E, 0x09A8, 0x0923, 0x08A0, 0x0820, 0x07A3, 0x072C, 0x06BA, ++ 0x064E, 0x05EA, 0x058E, 0x053B, 0x04F3, 0x04B6, 0x0484, 0x0460, 0x0449, ++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, ++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, ++ 0x0442, 0x0442, 0x0442, 0x0445, 0x044B, 0x0458, 0x046D, 0x048D, 0x04B9, ++ 0x04F4, 0x053F, 0x059D, 0x0611, 0x07A3, 0x0A0A, 0x0B48, 0x0AEB, 0x0A01, ++ 0x08D1, 0x07A1, 0x06B8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, ++ 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8CA, 0xE8CE, 0xE8D3, 0xE8D4, 0xE8D4, ++ 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, ++ 0xE8D4, 0xE8D4, 0xE8EA, 0xE92B, 0xE993, 0xEA20, 0xEAD1, 0xEBA3, 0xEC93, ++ 0xED9F, 0xEEC5, 0xF003, 0xF155, 0xF2BB, 0xF430, 0xF5B4, 0xF743, 0xF8DC, ++ 0xFA7B, 0xFC1F, 0xFDC5, 0xFF6B, 0x0110, 0x02AF, 0x0446, 0x05D5, 0x0757, ++ 0x08CA, 0x0A2E, 0x0B7E, 0x0CB9, 0x0DDC, 0x0EE5, 0x0FD2, 0x10A0, 0x114D, ++ 0x11DE, 0x125A, 0x12C3, 0x131B, 0x1362, 0x139C, 0x13C8, 0x13EA, 0x1402, ++ 0x1412, 0x141C, 0x1421, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, ++ 0x1423, 0x1401, 0x139C, 0x12F4, 0x1208, 0x10DA, 0x0F68, 0x0DB3, 0x0BBC, ++ 0x0982, 0x0706, 0x0447, 0x015F, 0xFECD, 0xFD2A, 0xFC58, 0xFBCC, 0xFB76, ++ 0xFB4B, 0xFB3B, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, ++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF57, 0xFF57, ++ 0xFF57, 0xFF58, 0xFF58, 0xFF59, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, ++ 0xFF5E, 0xFF60, 0xFF61, 0xFF63, 0xFF65, 0xFF67, 0xFF6A, 0xFF6C, 0xFF6F, ++ 0xFF72, 0xFF75, 0xFF79, 0xFF7C, 0xFF80, 0xFF84, 0xFF89, 0xFF8E, 0xFF98, ++ 0xFFAC, 0xFFC9, 0xFFEC, 0x0015, 0x0040, 0x006C, 0x0098, 0x00C2, 0x00E8, ++ 0x0109, 0x0122, 0x0133, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, ++ 0x0109, 0x0085, 0xFFBE, 0xFEC5, 0xFDAB, 0xFC81, 0xFB57, 0xFA40, 0xF94A, ++ 0xF889, 0xF80C, 0xF7D7, 0xF7B8, 0xF770, 0xF6D2, 0xF5F4, 0xF501, 0xF420, ++ 0xF37B, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, ++ 0xF006, 0xF006, 0xF007, 0xF00A, 0xF00C, 0xF00D, 0xF00D, 0xF00D, 0xF00D, ++ 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, ++ 0xF014, 0xF028, 0xF048, 0xF074, 0xF0AA, 0xF0EA, 0xF133, 0xF184, 0xF1DD, ++ 0xF23D, 0xF2A2, 0xF30C, 0xF37A, 0xF3EB, 0xF460, 0xF4D5, 0xF54C, 0xF5C3, ++ 0xF639, 0xF6AD, 0xF71F, 0xF78E, 0xF7F9, 0xF85F, 0xF8C0, 0xF91A, 0xF96D, ++ 0xF9B8, 0xF9FA, 0xFA32, 0xFA60, 0xFA82, 0xFA99, 0xFAA2, 0xFAA5, 0xFAA7, ++ 0xFAA9, 0xFAAA, 0xFAAC, 0xFAAD, 0xFAAD, 0xFAAE, 0xFAAE, 0xFAAF, 0xFAAF, ++ 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAB9, ++ 0xFADF, 0xFB2B, 0xFBA6, 0xFC5B, 0xFD53, 0xFE98, 0x0036, 0x0235, 0x049F, ++ 0x077E, 0x0AB4, 0x0D7E, 0x0EF0, 0x0F54, 0x0F98, 0x0FC1, 0x0FD6, 0x0FDE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, ++ 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFFA, 0xFFFA, ++ 0xFFF9, 0xFFF9, 0xFFF9, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF7, 0xFFF7, ++ 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, ++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, ++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFC8, 0xFF45, ++ 0xFE7B, 0xFD7A, 0xFC4E, 0xFB06, 0xF9B0, 0xF85A, 0xF713, 0xF5E7, 0xF4E5, ++ 0xF41C, 0xF399, 0xF36A, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, 0x0003, ++ 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, ++ 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, ++ 0x0005, 0x000B, 0x001C, 0x0037, 0x0058, 0x007F, 0x00AA, 0x00D7, 0x0103, ++ 0x012E, 0x0155, 0x0177, 0x0191, 0x01A2, 0x01A8, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC173, 0xC179, 0xC184, 0xC193, ++ 0xC1A6, 0xC1BB, 0xC1D4, 0xC1F0, 0xC20E, 0xC22E, 0xC250, 0xC274, 0xC29A, ++ 0xC2C0, 0xC2E7, 0xC30F, 0xC337, 0xC35F, 0xC387, 0xC3AF, 0xC3D5, 0xC3FA, ++ 0xC41E, 0xC441, 0xC461, 0xC47F, 0xC49B, 0xC4B3, 0xC4C9, 0xC4DC, 0xC4EA, ++ 0xC4F5, 0xC4FC, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, ++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, ++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4F2, 0xC4CE, 0xC498, 0xC453, 0xC402, ++ 0xC3A9, 0xC34D, 0xC2F1, 0xC299, 0xC248, 0xC202, 0xC1CC, 0xC1A9, 0xC19C, ++ 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, ++ 0x0727, 0x0726, 0x0723, 0x0721, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, ++ 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x071F, ++ 0x071B, 0x0715, 0x070D, 0x0703, 0x06F7, 0x06EA, 0x06DB, 0x06CB, 0x06B9, ++ 0x06A7, 0x0693, 0x067F, 0x066A, 0x0655, 0x063F, 0x0629, 0x0614, 0x05FE, ++ 0x05E9, 0x05D4, 0x05C0, 0x05AC, 0x059A, 0x0588, 0x0578, 0x0569, 0x055B, ++ 0x0550, 0x0546, 0x053E, 0x0538, 0x0534, 0x0533, 0xD818, 0xD818, 0xD818, ++ 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD817, 0xD816, ++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, ++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD814, 0xD813, 0xD810, 0xD80D, ++ 0xD808, 0xD803, 0xD7FD, 0xD7F7, 0xD7F0, 0xD7E8, 0xD7E0, 0xD7D8, 0xD7CF, ++ 0xD7C6, 0xD7BD, 0xD7B3, 0xD7AA, 0xD7A0, 0xD797, 0xD78E, 0xD784, 0xD77C, ++ 0xD773, 0xD76B, 0xD763, 0xD75C, 0xD756, 0xD750, 0xD74B, 0xD747, 0xD743, ++ 0xD740, 0xD73F, 0xD73E, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, ++ 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF8E, 0xDF8C, 0xDF8B, 0xDF8B, ++ 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, ++ 0xDF8B, 0xDF8B, 0xDF8A, 0xDF86, 0xDF81, 0xDF7A, 0xDF71, 0xDF66, 0xDF5A, ++ 0xDF4C, 0xDF3E, 0xDF2E, 0xDF1D, 0xDF0B, 0xDEF9, 0xDEE6, 0xDED3, 0xDEC0, ++ 0xDEAC, 0xDE98, 0xDE85, 0xDE72, 0xDE5F, 0xDE4D, 0xDE3B, 0xDE2A, 0xDE1A, ++ 0xDE0C, 0xDDFE, 0xDDF2, 0xDDE7, 0xDDDE, 0xDDD7, 0xDDD2, 0xDDCE, 0xDDCD, ++ 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, ++ 0xE2A9, 0xE2AB, 0xE2B1, 0xE2B6, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, ++ 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2BC, ++ 0xE2C5, 0xE2D3, 0xE2E7, 0xE2FF, 0xE31C, 0xE33D, 0xE361, 0xE389, 0xE3B4, ++ 0xE3E1, 0xE410, 0xE442, 0xE474, 0xE4A8, 0xE4DD, 0xE512, 0xE547, 0xE57C, ++ 0xE5B0, 0xE5E2, 0xE614, 0xE643, 0xE670, 0xE69B, 0xE6C3, 0xE6E7, 0xE708, ++ 0xE725, 0xE73D, 0xE751, 0xE75F, 0xE768, 0xE76B, 0x0B39, 0x0B39, 0x0B39, ++ 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B38, 0x0B36, ++ 0x0B34, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, ++ 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B32, 0x0B2E, 0x0B29, 0x0B21, ++ 0x0B18, 0x0B0D, 0x0B00, 0x0AF2, 0x0AE3, 0x0AD3, 0x0AC1, 0x0AAF, 0x0A9C, ++ 0x0A89, 0x0A75, 0x0A61, 0x0A4D, 0x0A38, 0x0A24, 0x0A11, 0x09FD, 0x09EA, ++ 0x09D8, 0x09C7, 0x09B6, 0x09A7, 0x0999, 0x098D, 0x0982, 0x0978, 0x0971, ++ 0x096B, 0x0968, 0x0967, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, ++ 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80E, 0xA814, 0xA81B, 0xA81D, 0xA81D, ++ 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, ++ 0xA81D, 0xA81D, 0xA821, 0xA82B, 0xA83C, 0xA853, 0xA870, 0xA891, 0xA8B8, ++ 0xA8E2, 0xA911, 0xA942, 0xA977, 0xA9AF, 0xA9E8, 0xAA24, 0xAA60, 0xAA9E, ++ 0xAADC, 0xAB1A, 0xAB57, 0xAB94, 0xABCF, 0xAC09, 0xAC40, 0xAC75, 0xACA7, ++ 0xACD5, 0xAD00, 0xAD26, 0xAD48, 0xAD64, 0xAD7B, 0xAD8C, 0xAD96, 0xAD9A, ++ 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, ++ 0x2532, 0x252F, 0x2528, 0x2521, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, ++ 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251A, ++ 0x250F, 0x24FC, 0x24E3, 0x24C5, 0x24A0, 0x2476, 0x2448, 0x2416, 0x23E0, ++ 0x23A6, 0x236A, 0x232B, 0x22EB, 0x22A9, 0x2267, 0x2223, 0x21E0, 0x219D, ++ 0x215C, 0x211B, 0x20DD, 0x20A1, 0x2067, 0x2031, 0x1FFF, 0x1FD0, 0x1FA7, ++ 0x1F82, 0x1F63, 0x1F4B, 0x1F38, 0x1F2D, 0x1F29, 0x1F29, 0x1F29, 0x1F29, ++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, ++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F53, 0x1FCA, ++ 0x2080, 0x2169, 0x2278, 0x23A0, 0x24D6, 0x260B, 0x2733, 0x2842, 0x292B, ++ 0x29E1, 0x2A58, 0x2A82, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, ++ 0xE074, 0xE074, 0xE074, 0xE074, 0xE077, 0xE07B, 0xE080, 0xE082, 0xE082, ++ 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, ++ 0xE082, 0xE082, 0xE084, 0xE08C, 0xE098, 0xE0A9, 0xE0BE, 0xE0D6, 0xE0F2, ++ 0xE112, 0xE133, 0xE158, 0xE17F, 0xE1A7, 0xE1D1, 0xE1FC, 0xE229, 0xE256, ++ 0xE283, 0xE2B0, 0xE2DD, 0xE309, 0xE335, 0xE35F, 0xE387, 0xE3AE, 0xE3D2, ++ 0xE3F4, 0xE413, 0xE42F, 0xE448, 0xE45D, 0xE46D, 0xE47A, 0xE481, 0xE484, ++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, ++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, ++ 0xE484, 0xE461, 0xE402, 0xE36E, 0xE2B2, 0xE1D6, 0xE0E6, 0xDFEC, 0xDEF2, ++ 0xDE02, 0xDD27, 0xDC6A, 0xDBD7, 0xDB77, 0xDB54, 0x04A2, 0x04A2, 0x04A2, ++ 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A0, 0x049C, ++ 0x0497, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, ++ 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0493, 0x048C, 0x0481, 0x0471, ++ 0x045E, 0x0447, 0x042E, 0x0411, 0x03F2, 0x03D0, 0x03AC, 0x0387, 0x0360, ++ 0x0338, 0x030F, 0x02E6, 0x02BC, 0x0293, 0x0269, 0x0240, 0x0218, 0x01F2, ++ 0x01CC, 0x01A9, 0x0187, 0x0168, 0x014B, 0x0131, 0x011B, 0x0107, 0x00F8, ++ 0x00ED, 0x00E6, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, ++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, ++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00DB, 0x00C2, 0x009D, 0x006E, 0x0037, ++ 0xFFFA, 0xFFBB, 0xFF7C, 0xFF3F, 0xFF08, 0xFED9, 0xFEB4, 0xFE9C, 0xFE93, ++ 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, ++ 0xF907, 0xF908, 0xF909, 0xF90A, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, ++ 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90C, ++ 0xF90E, 0xF911, 0xF916, 0xF91C, 0xF922, 0xF92A, 0xF933, 0xF93C, 0xF946, ++ 0xF951, 0xF95D, 0xF968, 0xF974, 0xF981, 0xF98D, 0xF99A, 0xF9A6, 0xF9B3, ++ 0xF9BF, 0xF9CB, 0xF9D7, 0xF9E2, 0xF9ED, 0xF9F7, 0xFA00, 0xFA09, 0xFA11, ++ 0xFA18, 0xFA1D, 0xFA22, 0xFA26, 0xFA28, 0x0173, 0x0173, 0x0173, 0x0173, ++ 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0172, ++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, ++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0171, 0x0170, 0x016F, ++ 0x016D, 0x016C, 0x016A, 0x0168, 0x0166, 0x0164, 0x0161, 0x015F, 0x015C, ++ 0x015A, 0x0157, 0x0155, 0x0152, 0x014F, 0x014D, 0x014A, 0x0148, 0x0146, ++ 0x0143, 0x0141, 0x013F, 0x013D, 0x013C, 0x013A, 0x0139, 0x0138, 0x0138, ++ 0x0137, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, ++ 0xC152, 0xC152, 0xC152, 0xC152, 0xC152, 0xC153, 0xC153, 0xC153, 0xC153, ++ 0xC154, 0xC154, 0xC154, 0xC154, 0xC154, 0xC155, 0xC155, 0xC155, 0xC155, ++ 0xC155, 0xC155, 0xC155, 0xC156, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, ++ 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08ED, 0x08ED, 0x08EC, ++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, ++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EB, 0x08EA, 0x08E9, ++ 0x08E8, 0x08E7, 0x08E6, 0x08E4, 0x08E3, 0x08E1, 0x08E0, 0x08DE, 0x08DD, ++ 0x08DB, 0x08D9, 0x08D8, 0x08D6, 0x08D4, 0x08D3, 0x08D1, 0x08D0, 0x08CE, ++ 0x08CD, 0x08CB, 0x08CA, 0x08C9, 0x08C8, 0x08C8, 0x08C7, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, ++ 0x08C6, 0x08C6, 0x0AB9, 0x1032, 0x189D, 0x2369, 0x3003, 0x3DD8, 0x4C57, ++ 0x5AEC, 0x6905, 0x7611, 0x817C, 0x8AA8, 0x90C9, 0x9304, 0x92EA, 0x92A9, ++ 0x9255, 0x9200, 0x91BF, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, ++ 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD5, 0x2AD5, 0x2AD5, ++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, ++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD4, 0x2AD3, 0x2AD2, 0x2AD0, 0x2ACE, 0x2ACC, ++ 0x2ACA, 0x2AC7, 0x2AC5, 0x2AC2, 0x2ABF, 0x2ABB, 0x2AB8, 0x2AB5, 0x2AB1, ++ 0x2AAE, 0x2AAB, 0x2AA7, 0x2AA4, 0x2AA1, 0x2A9D, 0x2A9A, 0x2A97, 0x2A95, ++ 0x2A92, 0x2A90, 0x2A8E, 0x2A8C, 0x2A8A, 0x2A89, 0x2A88, 0x2A88, 0x2A87, ++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, ++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, ++ 0x2A87, 0x2A49, 0x299E, 0x289E, 0x2761, 0x25FE, 0x248D, 0x2326, 0x21E0, ++ 0x20D4, 0x2018, 0x1FC5, 0x1FBA, 0x1FBA, 0x1FAF, 0x1F85, 0x1F41, 0x1EF1, ++ 0x1EA4, 0x1E6B, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, ++ 0xE547, 0xE547, 0xE547, 0xE545, 0xE540, 0xE53C, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, ++ 0xE60A, 0xE855, 0xEBE8, 0xF08C, 0xF60C, 0xFC34, 0x02CE, 0x09A4, 0x1082, ++ 0x1732, 0x1D7F, 0x2314, 0x271F, 0x28AE, 0x2869, 0x27BC, 0x26DB, 0x25FA, ++ 0x254C, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, ++ 0x22DC, 0x22DC, 0x22D9, 0x22D3, 0x22CC, 0x22C9, 0x22C9, 0x22C9, 0x22C9, ++ 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, ++ 0x22C6, 0x22BB, 0x22AA, 0x2293, 0x2276, 0x2254, 0x222D, 0x2201, 0x21D2, ++ 0x219F, 0x2169, 0x2131, 0x20F6, 0x20BA, 0x207C, 0x203E, 0x1FFF, 0x1FC0, ++ 0x1F81, 0x1F44, 0x1F07, 0x1ECD, 0x1E94, 0x1E5E, 0x1E2C, 0x1DFC, 0x1DD1, ++ 0x1DAA, 0x1D88, 0x1D6B, 0x1D54, 0x1D43, 0x1D38, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, ++ 0x1D34, 0x1D3E, 0x1D51, 0x1D5B, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, ++ 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF685, 0xF687, 0xF688, ++ 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, ++ 0xF688, 0xF688, 0xF688, 0xF689, 0xF68C, 0xF690, 0xF697, 0xF69E, 0xF6A8, ++ 0xF6B2, 0xF6BE, 0xF6CB, 0xF6D9, 0xF6E8, 0xF6F7, 0xF707, 0xF717, 0xF728, ++ 0xF739, 0xF74A, 0xF75B, 0xF76C, 0xF77D, 0xF78E, 0xF79D, 0xF7AD, 0xF7BB, ++ 0xF7C9, 0xF7D6, 0xF7E2, 0xF7ED, 0xF7F6, 0xF7FE, 0xF804, 0xF809, 0xF80C, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, ++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF792, 0xF6AF, 0xF634, 0xAB84, 0xAB84, ++ 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB86, ++ 0xAB8C, 0xAB91, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, ++ 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB96, 0xAB9F, 0xABAD, ++ 0xABC0, 0xABD7, 0xABF3, 0xAC13, 0xAC36, 0xAC5C, 0xAC86, 0xACB1, 0xACDF, ++ 0xAD0F, 0xAD40, 0xAD72, 0xADA5, 0xADD8, 0xAE0B, 0xAE3E, 0xAE70, 0xAEA1, ++ 0xAED1, 0xAEFF, 0xAF2B, 0xAF54, 0xAF7A, 0xAF9E, 0xAFBD, 0xAFD9, 0xAFF1, ++ 0xB004, 0xB012, 0xB01A, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, ++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB035, 0xB062, ++ 0xB07A, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, ++ 0xD607, 0xD607, 0xD60B, 0xD613, 0xD61A, 0xD61E, 0xD61E, 0xD61E, 0xD61E, ++ 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, ++ 0xD622, 0xD62F, 0xD644, 0xD660, 0xD683, 0xD6AC, 0xD6DB, 0xD70F, 0xD748, ++ 0xD785, 0xD7C6, 0xD80A, 0xD850, 0xD899, 0xD8E3, 0xD92E, 0xD97A, 0xD9C6, ++ 0xDA11, 0xDA5B, 0xDAA4, 0xDAEB, 0xDB2F, 0xDB6F, 0xDBAD, 0xDBE5, 0xDC1A, ++ 0xDC49, 0xDC72, 0xDC95, 0xDCB1, 0xDCC5, 0xDCD2, 0xDCD6, 0xDCD6, 0xDCD6, ++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, ++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDF85, ++ 0xE6E0, 0xF1DE, 0xFF74, 0x0E9A, 0x1E44, 0x2D69, 0x3B00, 0x45FD, 0x4D58, ++ 0x5007, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, ++ 0x1B82, 0x1B82, 0x1B7F, 0x1B7A, 0x1B75, 0x1B73, 0x1B73, 0x1B73, 0x1B73, ++ 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, ++ 0x1B70, 0x1B68, 0x1B5A, 0x1B48, 0x1B31, 0x1B16, 0x1AF7, 0x1AD5, 0x1AB0, ++ 0x1A88, 0x1A5D, 0x1A31, 0x1A03, 0x19D3, 0x19A2, 0x1971, 0x193F, 0x190E, ++ 0x18DC, 0x18AC, 0x187C, 0x184E, 0x1821, 0x17F7, 0x17CF, 0x17A9, 0x1787, ++ 0x1768, 0x174D, 0x1737, 0x1724, 0x1717, 0x170E, 0x170B, 0x170B, 0x170B, ++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, ++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x1775, ++ 0x1896, 0x1A45, 0x1C5B, 0x1EAE, 0x2115, 0x2368, 0x257E, 0x272D, 0x284E, ++ 0x28B8, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, ++ 0x0726, 0x0726, 0x0724, 0x0721, 0x071E, 0x071C, 0x071C, 0x071C, 0x071C, ++ 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, ++ 0x071A, 0x0715, 0x070C, 0x0700, 0x06F1, 0x06E0, 0x06CC, 0x06B6, 0x069D, ++ 0x0683, 0x0668, 0x064B, 0x062D, 0x060E, 0x05EE, 0x05CE, 0x05AE, 0x058E, ++ 0x056E, 0x054E, 0x052F, 0x0511, 0x04F4, 0x04D9, 0x04BF, 0x04A6, 0x0490, ++ 0x047C, 0x046B, 0x045C, 0x0450, 0x0447, 0x0442, 0x0440, 0x0440, 0x0440, ++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, ++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x04CF, ++ 0x0658, 0x08A3, 0x0B79, 0x0EA2, 0x11E7, 0x1510, 0x17E6, 0x1A31, 0x1BBA, ++ 0x1C49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xFED2, ++ 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, ++ 0xFECF, 0xFEC8, 0xFEC0, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, ++ 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEB8, 0xFEAC, ++ 0xFE98, 0xFE7D, 0xFE5B, 0xFE34, 0xFE06, 0xFDD4, 0xFD9D, 0xFD62, 0xFD23, ++ 0xFCE2, 0xFC9E, 0xFC57, 0xFC10, 0xFBC7, 0xFB7E, 0xFB35, 0xFAEC, 0xFAA4, ++ 0xFA5E, 0xFA1A, 0xF9D8, 0xF99A, 0xF95F, 0xF928, 0xF8F5, 0xF8C8, 0xF8A0, ++ 0xF87F, 0xF863, 0xF850, 0xF843, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, ++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, ++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF82C, 0xF7DE, 0xF736, ++ 0xF615, 0xF45A, 0xF1E6, 0xEEB0, 0xEB02, 0xE73E, 0xE3C4, 0xE0F6, 0xDF1C, ++ 0xDE21, 0xDDD8, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, ++ 0xFE61, 0xFE61, 0xFE61, 0xFE5F, 0xFE5C, 0xFE59, 0xFE57, 0xFE57, 0xFE57, ++ 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, ++ 0xFE57, 0xFE55, 0xFE50, 0xFE47, 0xFE3B, 0xFE2C, 0xFE1A, 0xFE06, 0xFDEF, ++ 0xFDD6, 0xFDBC, 0xFDA0, 0xFD83, 0xFD64, 0xFD45, 0xFD25, 0xFD04, 0xFCE4, ++ 0xFCC3, 0xFCA2, 0xFC82, 0xFC63, 0xFC44, 0xFC27, 0xFC0B, 0xFBF1, 0xFBD8, ++ 0xFBC2, 0xFBAD, 0xFB9B, 0xFB8C, 0xFB80, 0xFB77, 0xFB72, 0xFB70, 0xFB70, ++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, ++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, ++ 0xFB4C, 0xFAF2, 0xFA7C, 0xFA07, 0xF9AC, 0xF987, 0xF987, 0xF987, 0xF987, ++ 0xF987, 0xF986, 0xF975, 0xF955, 0xF944, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, ++ 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7C, 0xCD77, 0xCD73, ++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, ++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD6E, 0xCD67, 0xCD5B, 0xCD4B, 0xCD37, ++ 0xCD20, 0xCD05, 0xCCE8, 0xCCC7, 0xCCA5, 0xCC80, 0xCC59, 0xCC31, 0xCC08, ++ 0xCBDD, 0xCBB2, 0xCB87, 0xCB5C, 0xCB31, 0xCB07, 0xCADE, 0xCAB6, 0xCA8F, ++ 0xCA6A, 0xCA47, 0xCA27, 0xCA09, 0xC9EF, 0xC9D7, 0xC9C3, 0xC9B3, 0xC9A8, ++ 0xC9A0, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, ++ 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, ++ 0xC99E, 0xC99E, 0xC99E, 0xCA41, 0xCBE9, 0xCE32, 0xD0B9, 0xD31A, 0xD4F1, ++ 0xD606, 0xD68D, 0xD6C7, 0xD6F5, 0xD759, 0xD814, 0xD8D6, 0xD92F, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, ++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5F, ++ 0xFF5F, 0xFF5F, 0xFF60, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, ++ 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6F, ++ 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF74, 0xFF75, 0xFF76, 0xFF77, ++ 0xFF77, 0xFF77, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, ++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, ++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0x0060, 0x02E2, 0x06B3, ++ 0x0B87, 0x1111, 0x1705, 0x1D1B, 0x231B, 0x28D1, 0x2E07, 0x328B, 0x3623, ++ 0x3885, 0x3961, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, ++ 0x0165, 0x0165, 0x0165, 0x0165, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, ++ 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, ++ 0x0164, 0x0164, 0x0163, 0x0163, 0x0162, 0x0161, 0x015F, 0x015E, 0x015C, ++ 0x015A, 0x0158, 0x0156, 0x0154, 0x0151, 0x014F, 0x014C, 0x014A, 0x0147, ++ 0x0145, 0x0142, 0x0140, 0x013D, 0x013B, 0x0139, 0x0137, 0x0135, 0x0133, ++ 0x0131, 0x012F, 0x012E, 0x012D, 0x012C, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, ++ 0x00F5, 0x006E, 0xFFBD, 0xFF0E, 0xFE86, 0xFE50, 0xFFD3, 0x038E, 0x0848, ++ 0x0CCB, 0x0FE1, 0x1144, 0x11C7, 0x11DA, 0x053D, 0x053D, 0x053D, 0x053D, ++ 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x0540, 0x0546, 0x054C, ++ 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, ++ 0x054E, 0x054E, 0x054E, 0x054E, 0x0552, 0x055B, 0x056B, 0x0580, 0x059B, ++ 0x05BA, 0x05DE, 0x0606, 0x0631, 0x0660, 0x0691, 0x06C5, 0x06FB, 0x0732, ++ 0x076B, 0x07A4, 0x07DE, 0x0817, 0x0851, 0x0889, 0x08C1, 0x08F6, 0x092A, ++ 0x095C, 0x098A, 0x09B5, 0x09DD, 0x0A01, 0x0A20, 0x0A3B, 0x0A50, 0x0A60, ++ 0x0A6A, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, ++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, ++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0BE3, 0x0FCD, 0x1577, 0x1C2D, 0x233B, 0x29EE, ++ 0x2FB7, 0x34A7, 0x38F3, 0x3CD2, 0x407A, 0x43F7, 0x46A5, 0x47B7, 0xFB48, ++ 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, ++ 0xFB49, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, ++ 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4D, ++ 0xFB4F, 0xFB52, 0xFB56, 0xFB5B, 0xFB60, 0xFB66, 0xFB6C, 0xFB73, 0xFB7A, ++ 0xFB82, 0xFB8A, 0xFB92, 0xFB9A, 0xFBA3, 0xFBAB, 0xFBB4, 0xFBBC, 0xFBC5, ++ 0xFBCD, 0xFBD5, 0xFBDC, 0xFBE4, 0xFBEB, 0xFBF1, 0xFBF7, 0xFBFC, 0xFC01, ++ 0xFC05, 0xFC08, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, ++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, ++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFB9F, 0xFA6E, 0xF89A, ++ 0xF643, 0xF389, 0xF08F, 0xED74, 0xEA59, 0xE75E, 0xE4A5, 0xE24E, 0xE079, ++ 0xDF48, 0xDEDC, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, ++ 0xF29B, 0xF29B, 0xF29B, 0xF29C, 0xF29F, 0xF2A1, 0xF2A2, 0xF2A2, 0xF2A2, ++ 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, ++ 0xF2A2, 0xF2A4, 0xF2A8, 0xF2AE, 0xF2B7, 0xF2C2, 0xF2CF, 0xF2DE, 0xF2EF, ++ 0xF301, 0xF315, 0xF329, 0xF33F, 0xF356, 0xF36D, 0xF384, 0xF39C, 0xF3B5, ++ 0xF3CD, 0xF3E5, 0xF3FC, 0xF414, 0xF42A, 0xF440, 0xF455, 0xF468, 0xF47A, ++ 0xF48B, 0xF49A, 0xF4A7, 0xF4B2, 0xF4BB, 0xF4C2, 0xF4C6, 0xF4C7, 0xF4C7, ++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, ++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, ++ 0xF45C, 0xF32F, 0xF161, 0xEF12, 0xEC63, 0xE973, 0xE663, 0xE353, 0xE064, ++ 0xDDB4, 0xDB65, 0xD998, 0xD86B, 0xD800, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, ++ 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C7, 0xC4C6, ++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, ++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C5, 0xC4C3, 0xC4C1, 0xC4BD, 0xC4B8, ++ 0xC4B3, 0xC4AD, 0xC4A6, 0xC49E, 0xC496, 0xC48E, 0xC485, 0xC47B, 0xC472, ++ 0xC468, 0xC45E, 0xC454, 0xC44A, 0xC440, 0xC436, 0xC42D, 0xC423, 0xC41A, ++ 0xC412, 0xC40A, 0xC402, 0xC3FB, 0xC3F5, 0xC3F0, 0xC3EB, 0xC3E8, 0xC3E5, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, ++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC435, 0xC51D, 0xC681, 0xC849, 0xCA5B, 0xCC9F, ++ 0xCEFC, 0xD158, 0xD39C, 0xD5AE, 0xD776, 0xD8DA, 0xD9C2, 0xDA15, 0x01B9, ++ 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, ++ 0x01B9, 0x01B9, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, ++ 0x01B7, 0x01B6, 0x01B4, 0x01B2, 0x01B0, 0x01AE, 0x01AC, 0x01AA, 0x01A7, ++ 0x01A4, 0x01A1, 0x019E, 0x019B, 0x0198, 0x0195, 0x0192, 0x018F, 0x018C, ++ 0x0189, 0x0186, 0x0183, 0x0180, 0x017E, 0x017B, 0x0179, 0x0177, 0x0176, ++ 0x0174, 0x0173, 0x0172, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, ++ 0xF668, 0xF668, 0xF668, 0xF668, 0xF669, 0xF66B, 0xF66C, 0xF66D, 0xF66D, ++ 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, ++ 0xF66D, 0xF66D, 0xF66E, 0xF671, 0xF676, 0xF67C, 0xF684, 0xF68E, 0xF698, ++ 0xF6A4, 0xF6B1, 0xF6BF, 0xF6CE, 0xF6DE, 0xF6EE, 0xF6FE, 0xF70F, 0xF721, ++ 0xF732, 0xF743, 0xF754, 0xF765, 0xF776, 0xF786, 0xF796, 0xF7A4, 0xF7B2, ++ 0xF7BF, 0xF7CB, 0xF7D6, 0xF7DF, 0xF7E7, 0xF7EE, 0xF7F2, 0xF7F5, 0xF7F6, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, ++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBF2D, 0xBF2D, 0xBF2D, 0xBF2E, 0xBF2E, 0xBF2E, 0xBF2F, 0xBF2F, ++ 0xBF2F, 0xBF30, 0xBF30, 0xBF30, 0xBF31, 0xBF31, 0xBF31, 0xBF32, 0xBF32, ++ 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF33, 0xFCA2, 0xFC9F, 0xFC9E, ++ 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, ++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9F, 0xFCA8, 0xFCB7, 0xFCCC, ++ 0xFCE5, 0xFD03, 0xFD25, 0xFD4B, 0xFD74, 0xFDA1, 0xFDD0, 0xFE01, 0xFE34, ++ 0xFE69, 0xFE9F, 0xFED6, 0xFF0D, 0xFF44, 0xFF7B, 0xFFB0, 0xFFE5, 0x0019, ++ 0x004B, 0x007A, 0x00A6, 0x00D0, 0x00F6, 0x0118, 0x0136, 0x014F, 0x0163, ++ 0x0172, 0x017B, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, ++ 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, ++ 0x017F, 0x017F, 0x017F, 0x017F, 0x0176, 0x0143, 0x00C4, 0xFFD2, 0xFE4B, ++ 0xFC0C, 0xF906, 0xF584, 0xF1E8, 0xEE92, 0xEBE5, 0xEA28, 0xE942, 0xE901, ++ 0xFD5F, 0xFD62, 0xFD69, 0xFD72, 0xFD7B, 0xFD82, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, ++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD87, ++ 0xFD8D, 0xFD97, 0xFDA4, 0xFDB4, 0xFDC8, 0xFDDE, 0xFDF6, 0xFE11, 0xFE2E, ++ 0xFE4C, 0xFE6C, 0xFE8E, 0xFEB0, 0xFED3, 0xFEF6, 0xFF1A, 0xFF3E, 0xFF61, ++ 0xFF84, 0xFFA7, 0xFFC8, 0xFFE8, 0x0008, 0x0024, 0x003F, 0x0058, 0x006E, ++ 0x0081, 0x0092, 0x009F, 0x00A9, 0x00AF, 0x00B1, 0x00B1, 0x00B1, 0x00B1, ++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, ++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x0053, 0xFF43, ++ 0xFD8F, 0xFB45, 0xF872, 0xF524, 0xF171, 0xED90, 0xE9C0, 0xE641, 0xE352, ++ 0xE128, 0xDFD6, 0xDF63, 0xBEA9, 0xBF5F, 0xC03F, 0xC129, 0xC1F9, 0xC28F, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, ++ 0xC2C9, 0xC2C9, 0xC2C7, 0xC2C0, 0xC2B5, 0xC2A5, 0xC293, 0xC27D, 0xC263, ++ 0xC247, 0xC229, 0xC208, 0xC1E5, 0xC1C0, 0xC19B, 0xC173, 0xC14C, 0xC123, ++ 0xC0FA, 0xC0D2, 0xC0A9, 0xC081, 0xC05A, 0xC034, 0xC010, 0xBFED, 0xBFCC, ++ 0xBFAD, 0xBF91, 0xBF78, 0xBF62, 0xBF4F, 0xBF40, 0xBF35, 0xBF2E, 0xBF2C, ++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, ++ 0xBF2C, 0xBFAE, 0xC0F4, 0xC29C, 0xC444, 0xC58A, 0xC60C, 0xC5E5, 0xC586, ++ 0xC515, 0xC4B7, 0xC48F, 0xC4BF, 0xC518, 0xC548, 0xFF8A, 0xFF89, 0xFF88, ++ 0xFF87, 0xFF86, 0xFF86, 0xFF85, 0xFF84, 0xFF84, 0xFF84, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, ++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, 0xFF8B, 0xFF90, ++ 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA7, 0xFFA2, 0xFF9A, ++ 0xFF92, 0xFF8A, 0xFF85, 0xFF83, 0xFF83, 0xFF85, 0xFF88, 0xFF8C, 0xFF91, ++ 0xFF95, 0xFF9A, 0xFFA0, 0xFFA5, 0xFFA9, 0xFFAD, 0xFFB1, 0xFFB4, 0xFFB6, ++ 0xFFB8, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, ++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, ++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0x0075, 0x024A, 0x04AB, 0x070C, 0x08E0, ++ 0x099C, 0x08DC, 0x0712, 0x04F0, 0x0327, 0x0267, 0x027F, 0x02AB, 0x02C3, ++ 0x0270, 0x0272, 0x0273, 0x0275, 0x0276, 0x0276, 0x0277, 0x0277, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, ++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, ++ 0x0274, 0x026E, 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, ++ 0x024D, 0x0254, 0x025D, 0x0266, 0x026F, 0x0276, 0x0278, 0x0278, 0x0276, ++ 0x0274, 0x0271, 0x026D, 0x0268, 0x0262, 0x025B, 0x0254, 0x024B, 0x0242, ++ 0x0238, 0x022F, 0x0226, 0x0220, 0x021B, 0x0219, 0x0219, 0x0219, 0x0219, ++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, ++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0238, 0x02A7, ++ 0x0382, 0x04E5, 0x06ED, 0x09B5, 0x0D45, 0x114D, 0x1568, 0x1932, 0x1C44, ++ 0x1E52, 0x1F6F, 0x1FC5, 0x0613, 0x05FA, 0x05E4, 0x05D1, 0x05C0, 0x05B1, ++ 0x05A5, 0x059B, 0x0593, 0x058C, 0x0588, 0x0585, 0x0583, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, ++ 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, 0x0714, 0x078B, 0x07F8, ++ 0x0852, 0x088F, 0x08A5, 0x0879, 0x0806, 0x0769, 0x06BE, 0x0622, 0x05AF, ++ 0x0582, 0x058B, 0x05A6, 0x05D2, 0x060F, 0x065B, 0x06B5, 0x071E, 0x0794, ++ 0x0817, 0x08A5, 0x093E, 0x09D8, 0x0A6A, 0x0AED, 0x0B55, 0x0B9A, 0x0BB4, ++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, ++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, ++ 0x0BB4, 0x0D09, 0x1060, 0x14BE, 0x1927, 0x1C9F, 0x1E2B, 0x1E57, 0x1E62, ++ 0x1E63, 0x1E6E, 0x1E9A, 0x1F5F, 0x2088, 0x2122, 0x05FC, 0x060F, 0x0620, ++ 0x062F, 0x063C, 0x0643, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, ++ 0x061F, 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, ++ 0x0628, 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, ++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, ++ 0x0637, 0x0642, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, ++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0633, 0x05FF, 0x05AE, 0x0547, 0x04CE, ++ 0x044B, 0x03C1, 0x0338, 0x02B4, 0x023C, 0x01D5, 0x0184, 0x014F, 0x013C, ++ 0x1529, 0x14AD, 0x1376, 0x11E3, 0x1050, 0x0F1A, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, ++ 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, ++ 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, ++ 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, ++ 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, ++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E01, 0x0C48, ++ 0x09A4, 0x0644, 0x0256, 0xFE08, 0xF98C, 0xF511, 0xF0C4, 0xECD6, 0xE976, ++ 0xE6D2, 0xE519, 0xE47C, 0xC381, 0xC465, 0xC6A1, 0xC987, 0xCC6E, 0xCEA9, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, ++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, ++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, ++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, ++ 0xCF8D, 0xCF80, 0xCF5C, 0xCF24, 0xCEDC, 0xCE89, 0xCE2E, 0xCDCF, 0xCD71, ++ 0xCD16, 0xCCC2, 0xCC7B, 0xCC43, 0xCC1F, 0xCC12, + }; + +diff --git a/assets/anims/anim_84.inc.c.rej b/assets/anims/anim_84.inc.c.rej +new file mode 100644 +index 0000000..21063d7 +--- /dev/null ++++ b/assets/anims/anim_84.inc.c.rej +@@ -0,0 +1,913 @@ ++diff a/assets/anims/anim_84.inc.c b/assets/anims/anim_84.inc.c (rejected hunks) ++@@ -3,7 +3,7 @@ static const struct Animation anim_84[] = { ++ 189, ++ 0, ++ 0, ++- 0x40, +++ 97, ++ ANIMINDEX_NUMPARTS(anim_84_indices), ++ anim_84_values, ++ anim_84_indices, ++@@ -12,326 +12,584 @@ static const struct Animation anim_84[] = { ++ ++ ++ static const u16 anim_84_indices[] = { ++- 0x0001, 0x0000, 0x0040, 0x0001, 0x0040, 0x0041, 0x0001, 0x0000, 0x0001, 0x0081, 0x0001, 0x0000, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x090A, ++- 0x0040, 0x084A, 0x0040, 0x088A, 0x0040, 0x08CA, ++- 0x0040, 0x078A, 0x0040, 0x07CA, 0x0040, 0x080A, ++- 0x0001, 0x0786, 0x0001, 0x0787, 0x0001, 0x0788, ++- 0x0040, 0x0182, 0x0040, 0x01C2, 0x0040, 0x0202, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0142, ++- 0x0040, 0x0082, 0x0040, 0x00C2, 0x0040, 0x0102, ++- 0x0001, 0x0782, 0x0001, 0x0783, 0x0001, 0x0784, ++- 0x0040, 0x0342, 0x0040, 0x0382, 0x0040, 0x03C2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0302, ++- 0x0040, 0x0242, 0x0040, 0x0282, 0x0040, 0x02C2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0785, ++- 0x0040, 0x06C2, 0x0040, 0x0702, 0x0040, 0x0742, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x0682, ++- 0x0040, 0x05C2, 0x0040, 0x0602, 0x0040, 0x0642, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0789, ++- 0x0040, 0x0502, 0x0040, 0x0542, 0x0040, 0x0582, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0040, 0x04C2, ++- 0x0040, 0x0402, 0x0040, 0x0442, 0x0040, 0x0482, +++0x0001, 0x0000, 0x005D, 0x0001, 0x0001, 0x005E, 0x003C, 0x005F, 0x003B, +++ 0x009B, 0x005D, 0x00D6, 0x005B, 0x0133, 0x005D, 0x018E, 0x0001, 0x01EB, +++ 0x0062, 0x01EC, 0x0062, 0x024E, 0x0062, 0x02B0, 0x0062, 0x0312, 0x0062, +++ 0x0374, 0x0062, 0x03D6, 0x005D, 0x0438, 0x005D, 0x0495, 0x005D, 0x04F2, +++ 0x003C, 0x054F, 0x003C, 0x058B, 0x003C, 0x05C7, 0x003C, 0x0603, 0x003C, +++ 0x063F, 0x003C, 0x067B, 0x005D, 0x06B7, 0x005D, 0x0714, 0x005D, 0x0771, +++ 0x003B, 0x07CE, 0x003B, 0x0809, 0x0039, 0x0844, 0x0062, 0x087D, 0x0062, +++ 0x08DF, 0x0062, 0x0941, 0x005D, 0x09A3, 0x005D, 0x0A00, 0x005D, 0x0A5D, +++ 0x005A, 0x0ABA, 0x005A, 0x0B14, 0x005A, 0x0B6E, 0x005D, 0x0BC8, 0x005D, +++ 0x0C25, 0x0001, 0x0C82, 0x005D, 0x0C83, 0x005D, 0x0CE0, 0x005D, 0x0D3D, +++ 0x005D, 0x0D9A, 0x005D, 0x0DF7, 0x005D, 0x0E54, 0x005D, 0x0EB1, 0x005D, +++ 0x0F0E, 0x005D, 0x0F6B, 0x003A, 0x0FC8, 0x003C, 0x1002, 0x003C, 0x103E, +++ 0x005D, 0x107A, 0x005D, 0x10D7, 0x005D, 0x1134, 0x005D, 0x1191, 0x005D, +++ 0x11EE, 0x005D, 0x124B, 0x005D, 0x12A8, 0x005D, 0x1305, 0x005D, 0x1362, ++ }; ++ ++ static const s16 anim_84_values[] = { ++- 0x0000, 0x00AB, 0x00AA, 0x00A7, 0x00A3, 0x009F, 0x0099, 0x0092, ++- 0x008B, 0x0084, 0x007C, 0x0073, 0x0068, 0x005B, 0x004E, 0x0043, ++- 0x0039, 0x0032, 0x002F, 0x002D, 0x002E, 0x002F, 0x0031, 0x0033, ++- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++- 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, ++- 0x0035, 0xFFFF, 0xFFFE, 0xFFFB, 0xFFF6, 0xFFF0, 0xFFEA, 0xFFE2, ++- 0xFFD9, 0xFFD0, 0xFFC7, 0xFFBB, 0xFFAC, 0xFF9B, 0xFF8A, 0xFF7A, ++- 0xFF6D, 0xFF63, 0xFF5D, 0xFF5A, 0xFF58, 0xFF57, 0xFF58, 0xFF58, ++- 0xFF59, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, ++- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, ++- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, ++- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, ++- 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF5A, ++- 0xFF5A, 0x3FFF, 0xFE50, 0xFE40, 0xFE17, 0xFDE1, 0xFDAC, 0xFD83, ++- 0xFD73, 0xFD87, 0xFDCD, 0xFE50, 0xFF66, 0x0122, 0x0333, 0x0543, ++- 0x0700, 0x0816, 0x0899, 0x08DF, 0x08F3, 0x08E3, 0x08BA, 0x0885, ++- 0x084F, 0x0826, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, ++- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, ++- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, ++- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, ++- 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, ++- 0x0816, 0x0816, 0xF9B4, 0xF9DB, 0xFA3C, 0xFABB, 0xFB39, 0xFB9A, ++- 0xFBC1, 0xFB91, 0xFAEB, 0xF9B4, 0xF722, 0xF302, 0xEE1C, 0xE937, ++- 0xE517, 0xE285, 0xE14D, 0xE0A8, 0xE078, 0xE09E, 0xE100, 0xE17E, ++- 0xE1FC, 0xE25E, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, ++- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, ++- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, ++- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, ++- 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, 0xE285, ++- 0xE285, 0xE285, 0xF845, 0xF85D, 0xF898, 0xF8E4, 0xF931, 0xF96C, ++- 0xF984, 0xF966, 0xF902, 0xF845, 0xF6B5, 0xF434, 0xF13A, 0xEE40, ++- 0xEBBF, 0xEA2F, 0xE972, 0xE90D, 0xE8F0, 0xE907, 0xE943, 0xE98F, ++- 0xE9DC, 0xEA17, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, ++- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, ++- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, ++- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, ++- 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, 0xEA2F, ++- 0xEA2F, 0xEA2F, 0xE4CB, 0xE3E1, 0xE352, 0xE310, 0xE30D, 0xE33B, ++- 0xE38C, 0xE3F4, 0xE462, 0xE4CB, 0xE552, 0xE61A, 0xE714, 0xE82D, ++- 0xE956, 0xEA7F, 0xEBC9, 0xED4F, 0xEEF8, 0xF0A8, 0xF245, 0xF3B4, ++- 0xF4DB, 0xF5A0, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, ++- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, ++- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, ++- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, ++- 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, 0xF5E7, ++- 0xF5E7, 0xF5E7, 0x896F, 0x8A49, 0x8B9F, 0x8D40, 0x8EFB, 0x909E, ++- 0x91F8, 0x92D8, 0x930B, 0x9262, 0x8FF5, 0x8B93, 0x861C, 0x8071, ++- 0x7B72, 0x7800, 0x75CB, 0x73EC, 0x725E, 0x711B, 0x701E, 0x6F62, ++- 0x6EE3, 0x6E9A, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, ++- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, ++- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, ++- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, ++- 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, 0x6E83, ++- 0x6E83, 0x6E83, 0xA3B0, 0xA309, 0xA3C2, 0xA581, 0xA7EE, 0xAAAE, ++- 0xAD69, 0xAFC6, 0xB16B, 0xB1FE, 0xB0F8, 0xAE7A, 0xAB26, 0xA7A1, ++- 0xA490, 0xA296, 0xA187, 0xA0C0, 0xA036, 0x9FDF, 0x9FB0, 0x9F9E, ++- 0x9F9F, 0x9FA7, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, ++- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, ++- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, ++- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, ++- 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, 0x9FAC, ++- 0x9FAC, 0x9FAC, 0x384A, 0x37DB, 0x36B9, 0x351E, 0x3344, 0x3163, ++- 0x2FB7, 0x2E77, 0x2DDF, 0x2E27, 0x3005, 0x338F, 0x380F, 0x3CD2, ++- 0x4120, 0x4446, 0x468F, 0x48BB, 0x4AC0, 0x4C92, 0x4E27, 0x4F75, ++- 0x5070, 0x510E, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, ++- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, ++- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, ++- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, ++- 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, 0x5146, ++- 0x5146, 0x5146, 0x0BDE, 0x0A32, 0x0973, 0x096A, 0x09DD, 0x0A97, ++- 0x0B5E, 0x0BFD, 0x0C3A, 0x0BDE, 0x0AC6, 0x0918, 0x070C, 0x04DA, ++- 0x02B9, 0x00E0, 0xFF1F, 0xFD30, 0xFB2C, 0xF930, 0xF755, 0xF5B5, ++- 0xF46C, 0xF393, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, ++- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, ++- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, ++- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, ++- 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, 0xF345, ++- 0xF345, 0xF345, 0x04C8, 0x0445, 0x0386, 0x02B4, 0x01F6, 0x0172, ++- 0x0151, 0x01BA, 0x02D5, 0x04C8, 0x08E3, 0x0F81, 0x1757, 0x1F1D, ++- 0x2588, 0x294E, 0x2AB3, 0x2B00, 0x2A74, 0x294F, 0x27D1, 0x2638, ++- 0x24C6, 0x23B9, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, ++- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, ++- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, ++- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, ++- 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, 0x2351, ++- 0x2351, 0x2351, 0xFA2D, 0xFA60, 0xFA9F, 0xFADE, 0xFB14, 0xFB35, ++- 0xFB3A, 0xFB16, 0xFABF, 0xFA2D, 0xF925, 0xF795, 0xF5AA, 0xF392, ++- 0xF17A, 0xEF8F, 0xED9D, 0xEB66, 0xE90C, 0xE6B1, 0xE477, 0xE281, ++- 0xE0F0, 0xDFE6, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, ++- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, ++- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, ++- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, ++- 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, 0xDF86, ++- 0xDF86, 0xDF86, 0xF09C, 0xF145, 0xF19F, 0xF1BA, 0xF1A5, 0xF170, ++- 0xF12B, 0xF0E6, 0xF0B1, 0xF09C, 0xF085, 0xF052, 0xF01F, 0xF008, ++- 0xF029, 0xF09C, 0xF175, 0xF2A1, 0xF402, 0xF57D, 0xF6F3, 0xF849, ++- 0xF961, 0xFA1E, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, ++- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, ++- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, ++- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, ++- 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, 0xFA63, ++- 0xFA63, 0xFA63, 0x12E8, 0x1350, 0x13AD, 0x1401, 0x144E, 0x1494, ++- 0x14D6, 0x1515, 0x1552, 0x1590, 0x15D4, 0x161C, 0x165E, 0x168F, ++- 0x16A3, 0x1690, 0x1651, 0x15EE, 0x1574, 0x14EC, 0x1464, 0x13E6, ++- 0x137D, 0x1336, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, ++- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, ++- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, ++- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, ++- 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, 0x131C, ++- 0x131C, 0x131C, 0x0693, 0x0694, 0x07E5, 0x0A22, 0x0CE5, 0x0FC7, ++- 0x1262, 0x1452, 0x1531, 0x1497, 0x1145, 0x0B1F, 0x0373, 0xFB95, ++- 0xF4D4, 0xF080, 0xEE3E, 0xECBC, 0xEBD9, 0xEB72, 0xEB69, 0xEB9B, ++- 0xEBE7, 0xEC2D, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, ++- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, ++- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, ++- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, ++- 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, 0xEC4C, ++- 0xEC4C, 0xEC4C, 0xCABB, 0xCBF3, 0xCD03, 0xCDF1, 0xCEC7, 0xCF8D, ++- 0xD04C, 0xD10C, 0xD1D7, 0xD2B4, 0xD3A3, 0xD499, 0xD593, 0xD68F, ++- 0xD787, 0xD879, 0xD97D, 0xDAA1, 0xDBD7, 0xDD0B, 0xDE2D, 0xDF2D, ++- 0xDFF8, 0xE07F, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, ++- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, ++- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, ++- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, ++- 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, 0xE0B0, ++- 0xE0B0, 0xE0B0, 0x0000, 0x0002, 0x0007, 0x000E, 0x0016, 0x0020, ++- 0x0029, 0x0032, 0x0039, 0x003F, 0x0043, 0x0046, 0x0048, 0x0048, ++- 0x0045, 0x003F, 0x0033, 0x0023, 0x000F, 0xFFFC, 0xFFE8, 0xFFD5, ++- 0xFFC6, 0xFFBC, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, ++- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, ++- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, ++- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, ++- 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, 0xFFB8, ++- 0xFFB8, 0xFFB8, 0xFF30, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF35, ++- 0xFF36, 0xFF38, 0xFF39, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, ++- 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF3B, 0xFF3B, 0xFF3C, 0xFF3C, ++- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, ++- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, ++- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, ++- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, ++- 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, 0xFF3D, ++- 0xFF3D, 0xFF3D, 0xC9D8, 0xC96E, 0xC871, 0xC705, 0xC54E, 0xC36F, ++- 0xC18D, 0xBFCB, 0xBE4D, 0xBD36, 0xBC62, 0xBBAC, 0xBB3F, 0xBB41, ++- 0xBBDB, 0xBD36, 0xBF8B, 0xC2C4, 0xC690, 0xCAA1, 0xCEA7, 0xD253, ++- 0xD554, 0xD75C, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, ++- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, ++- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, ++- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, ++- 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, 0xD81B, ++- 0xD81B, 0xD81B, 0x1E4A, 0x1FB6, 0x231D, 0x27F8, 0x2DBF, 0x33E9, ++- 0x39EE, 0x3F46, 0x4369, 0x45CF, 0x45F1, 0x4401, 0x408D, 0x3C24, ++- 0x3753, 0x32A9, 0x2D8E, 0x275D, 0x2088, 0x1983, 0x12C1, 0x0CB6, ++- 0x07D7, 0x0495, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, ++- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, ++- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, ++- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, ++- 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, 0x0366, ++- 0x0366, 0x0366, 0x1B09, 0x1A7E, 0x1933, 0x1753, 0x150A, 0x1281, ++- 0x0FE4, 0x0D5E, 0x0B18, 0x093E, 0x07A8, 0x0625, 0x04D2, 0x03CE, ++- 0x0334, 0x0324, 0x03AB, 0x04AA, 0x05FD, 0x0781, 0x090F, 0x0A85, ++- 0x0BBD, 0x0C93, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, ++- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, ++- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, ++- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, ++- 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, 0x0CE2, ++- 0x0CE2, 0x0CE2, 0x1144, 0x1142, 0x113D, 0x1136, 0x1131, 0x112E, ++- 0x1130, 0x1139, 0x114B, 0x1168, 0x11AB, 0x121A, 0x1299, 0x130B, ++- 0x1354, 0x1357, 0x1310, 0x1299, 0x1200, 0x1154, 0x10A5, 0x1003, ++- 0x0F7C, 0x0F20, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, ++- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, ++- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, ++- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, ++- 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, 0x0EFE, ++- 0x0EFE, 0x0EFE, 0xAC44, 0xAB52, 0xA915, 0xA5D5, 0xA1D9, 0x9D68, ++- 0x98CC, 0x944C, 0x902F, 0x8CBE, 0x898A, 0x8631, 0x8314, 0x8092, ++- 0x7F0A, 0x7EDC, 0x8026, 0x828C, 0x85B8, 0x8953, 0x8D08, 0x9080, ++- 0x9364, 0x9560, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, ++- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, ++- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, ++- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, ++- 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, 0x961D, ++- 0x961D, 0x961D, 0x0000, 0x0008, 0x000D, 0x000E, 0x000D, 0x000A, ++- 0x0007, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0xFFFC, 0xFFFA, 0xFFF9, 0xFFFA, 0xFFFB, ++- 0xFFFD, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0xBF40, 0xBF38, 0xBF34, 0xBF33, 0xBF34, 0xBF36, ++- 0xBF39, 0xBF3D, 0xBF3F, 0xBF40, 0xBF1C, 0xBECB, 0xBE7B, 0xBE57, ++- 0xBE8A, 0xBF40, 0xC098, 0xC273, 0xC4A2, 0xC6FA, 0xC94B, 0xCB67, ++- 0xCD22, 0xCE4E, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, ++- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, ++- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, ++- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, ++- 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, 0xCEBC, ++- 0xCEBC, 0xCEBC, 0x2537, 0x266B, 0x2950, 0x2D6B, 0x3244, 0x3760, ++- 0x3C47, 0x407F, 0x438F, 0x44FE, 0x440B, 0x40C9, 0x3BFE, 0x3671, ++- 0x30E6, 0x2C24, 0x279F, 0x227D, 0x1D0D, 0x179B, 0x1277, 0x0DF0, ++- 0x0A53, 0x07EE, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, ++- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, ++- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, ++- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, ++- 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, 0x0710, ++- 0x0710, 0x0710, 0xD64A, 0xD74E, 0xD9B7, 0xDD32, 0xE167, 0xE602, ++- 0xEAAD, 0xEF13, 0xF2DD, 0xF5B7, 0xF789, 0xF893, 0xF903, 0xF906, ++- 0xF8CA, 0xF87B, 0xF803, 0xF73E, 0xF644, 0xF52E, 0xF413, 0xF30D, ++- 0xF234, 0xF1A0, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, ++- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, ++- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, ++- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, ++- 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, 0xF169, ++- 0xF169, 0xF169, 0xEC41, 0xEC5A, 0xEC97, 0xECEE, 0xED56, 0xEDC4, ++- 0xEE30, 0xEE8F, 0xEEDA, 0xEF05, 0xEEF4, 0xEEA8, 0xEE41, 0xEDE0, ++- 0xEDA5, 0xEDB1, 0xEE09, 0xEE92, 0xEF3C, 0xEFF8, 0xF0B5, 0xF163, ++- 0xF1F3, 0xF255, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, ++- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, ++- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, ++- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, ++- 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, 0xF279, ++- 0xF279, 0xF279, 0xB59E, 0xB448, 0xB119, 0xAC80, 0xA6ED, 0xA0CE, ++- 0x9A92, 0x94A9, 0x8F81, 0x8B8A, 0x88B4, 0x869F, 0x8540, 0x848B, ++- 0x8477, 0x84F7, 0x8634, 0x8835, 0x8ABC, 0x8D8A, 0x9061, 0x9303, ++- 0x9532, 0x96AE, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, ++- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, ++- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, ++- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, ++- 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, 0x973B, ++- 0x973B, 0x973B, 0x9524, 0x5D21, 0x475E, 0xBF5F, 0x90BE, 0x7987, ++- 0x4B8C, 0xBF5F, 0x0015, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, ++- 0x0016, 0x0016, 0x0016, 0x0015, 0x0017, 0x001C, 0x0021, 0x0023, ++- 0x0020, 0x0015, 0x0003, 0xFFEC, 0xFFD0, 0xFFB1, 0xFF93, 0xFF75, ++- 0xFF5A, 0xFF44, 0xFF35, 0xFF2C, 0xFF2A, 0xFF2B, 0xFF30, 0xFF36, ++- 0xFF3C, 0xFF41, 0xFF42, 0xFF3E, 0xFF35, 0xFF26, 0xFF16, 0xFF05, ++- 0xFEF2, 0xFEDD, 0xFEC8, 0xFEB2, 0xFE9C, 0xFE85, 0xFE6D, 0xFE56, ++- 0xFE3F, 0xFE28, 0xFE12, 0xFDFC, 0xFDE8, 0xFDD4, 0xFDC2, 0xFDB1, ++- 0xFDA2, 0xFD95, 0xFD89, 0xFD80, 0xFD7A, 0xFD75, 0xFD72, 0xFD71, ++- 0xFD71, 0xFD73, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, ++- 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4C, 0xFD4B, 0xFD4B, 0xFD4A, ++- 0xFD4B, 0xFD4C, 0xFD4F, 0xFD52, 0xFD56, 0xFD5A, 0xFD5E, 0xFD62, ++- 0xFD65, 0xFD68, 0xFD6A, 0xFD6B, 0xFD69, 0xFD65, 0xFD61, 0xFD5D, ++- 0xFD5A, 0xFD5A, 0xFD5B, 0xFD61, 0xFD6A, 0xFD78, 0xFD86, 0xFD97, ++- 0xFDA8, 0xFDBB, 0xFDCF, 0xFDE3, 0xFDF8, 0xFE0E, 0xFE23, 0xFE39, ++- 0xFE4E, 0xFE63, 0xFE78, 0xFE8C, 0xFE9F, 0xFEB0, 0xFEC1, 0xFECF, ++- 0xFEDD, 0xFEE8, 0xFEF1, 0xFEF8, 0xFEFC, 0xFEFE, 0xFEFF, 0xFEFD, ++- 0xFEF9, 0xFEF4, 0xF588, 0xF577, 0xF56E, 0xF56C, 0xF56E, 0xF573, ++- 0xF57A, 0xF580, 0xF586, 0xF588, 0xF568, 0xF522, 0xF4DC, 0xF4BC, ++- 0xF4E9, 0xF588, 0xF6A1, 0xF811, 0xF9BE, 0xFB8D, 0xFD64, 0xFF29, ++- 0x00C0, 0x0210, 0x0300, 0x0379, 0x038E, 0x0359, 0x02F7, 0x0283, ++- 0x0219, 0x01D5, 0x01D2, 0x022C, 0x0300, 0x042D, 0x0581, 0x06F6, ++- 0x088A, 0x0A37, 0x0BF9, 0x0DCD, 0x0FAD, 0x1197, 0x1385, 0x1574, ++- 0x175F, 0x1942, 0x1B19, 0x1CE0, 0x1E93, 0x202D, 0x21AB, 0x2307, ++- 0x243E, 0x254C, 0x262D, 0x26DC, 0x2757, 0x27A3, 0x27C2, 0x27BA, ++- 0x278D, 0x2740, 0xFD9F, 0xFDCE, 0xFE05, 0xFE42, 0xFE83, 0xFEC4, ++- 0xFF03, 0xFF3E, 0xFF71, 0xFF9B, 0xFFB7, 0xFFC5, 0xFFCA, 0xFFC8, ++- 0xFFC2, 0xFFBE, 0xFFB9, 0xFFB0, 0xFFA4, 0xFF98, 0xFF8B, 0xFF7F, ++- 0xFF75, 0xFF6F, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, ++- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, ++- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, ++- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, ++- 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, 0xFF6C, ++- 0xFF6C, 0xFF6C, 0x04A4, 0x0441, 0x03D0, 0x0356, 0x02D7, 0x0259, ++- 0x01DF, 0x0170, 0x0110, 0x00C4, 0x0098, 0x008F, 0x009C, 0x00B3, ++- 0x00C9, 0x00D2, 0x00CF, 0x00C9, 0x00C3, 0x00BC, 0x00B4, 0x00AE, ++- 0x00A8, 0x00A4, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, ++- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, ++- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, ++- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, ++- 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, 0x00A3, ++- 0x00A3, 0x00A3, 0x0FC6, 0x113B, 0x128D, 0x13C1, 0x14E0, 0x15F1, ++- 0x16FA, 0x1803, 0x1913, 0x1A30, 0x1B99, 0x1D52, 0x1F0B, 0x2075, ++- 0x2140, 0x211E, 0x1FF6, 0x1E0E, 0x1BA3, 0x18F1, 0x1635, 0x13AB, ++- 0x1190, 0x1020, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, ++- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, ++- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, ++- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, ++- 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, 0x0F98, ++- 0x0F98, 0x0F98, 0x40A1, 0x40C8, 0x4129, 0x41A8, 0x4227, 0x4288, ++- 0x42AF, 0x427E, 0x41D9, 0x40A1, 0x3E0E, 0x39EC, 0x3504, 0x301D, ++- 0x2BFB, 0x2968, 0x2830, 0x278B, 0x275A, 0x2781, 0x27E2, 0x2861, ++- 0x28E0, 0x2941, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, ++- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, ++- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, ++- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, ++- 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, 0x2968, ++- 0x2968, 0x2968, +++ 0x0000, 0x00BD, 0x00BD, 0x00BD, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, +++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, +++ 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BE, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, +++ 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00BF, 0x00C2, +++ 0x00C9, 0x00D2, 0x00DB, 0x00E1, 0x00E4, 0x00DD, 0x00C9, 0x00AD, 0x008E, +++ 0x006E, 0x0052, 0x003F, 0x0037, 0xFFFF, 0xC005, 0xC005, 0xC005, 0xC005, +++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, 0xC016, 0xC022, +++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, +++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, 0xC08C, 0xC0C1, +++ 0xC0FF, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, 0xC380, 0xC3EF, +++ 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, 0xC778, 0xC7E0, +++ 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CC, 0xCA02, 0xCA2C, 0xCA4C, +++ 0xCA5F, 0xCA66, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, 0x38E3, +++ 0x38E3, 0x38E3, 0x38E3, 0x38E4, 0x38E5, 0x38E7, 0x38E7, 0x38E7, 0x38E7, +++ 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, 0x38E7, +++ 0x38E7, 0x38E8, 0x38EA, 0x38EE, 0x38F2, 0x38F8, 0x38FF, 0x3907, 0x3910, +++ 0x391A, 0x3924, 0x392F, 0x393A, 0x3946, 0x3953, 0x395F, 0x396C, 0x3979, +++ 0x3986, 0x3992, 0x399F, 0x39AB, 0x39B7, 0x39C3, 0x39CE, 0x39D8, 0x39E2, +++ 0x39EB, 0x39F2, 0x39F9, 0x39FF, 0x3A04, 0x3A08, 0x3A0A, 0xC005, 0xC005, +++ 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC005, 0xC00A, +++ 0xC016, 0xC022, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, +++ 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC027, 0xC02E, 0xC041, 0xC061, +++ 0xC08C, 0xC0C1, 0xC100, 0xC147, 0xC197, 0xC1ED, 0xC24A, 0xC2AD, 0xC315, +++ 0xC380, 0xC3EF, 0xC460, 0xC4D3, 0xC547, 0xC5BA, 0xC62D, 0xC69E, 0xC70D, +++ 0xC778, 0xC7E0, 0xC843, 0xC8A0, 0xC8F7, 0xC946, 0xC98E, 0xC9CD, 0xCA02, +++ 0xCA2C, 0xCA4C, 0xCA5F, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, +++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, +++ 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCA66, 0xCB55, 0xCDF2, 0xD1F4, 0xD716, +++ 0xDD0F, 0xE396, 0xEA66, 0xF135, 0xF7BD, 0xFDB6, 0x02D8, 0x06DB, 0x0978, +++ 0x0A67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x40A1, 0xF721, 0xF709, 0xF6F2, +++ 0xF6DB, 0xF6C5, 0xF6B0, 0xF69B, 0xF687, 0xF674, 0xF662, 0xF650, 0xF640, +++ 0xF630, 0xF621, 0xF613, 0xF606, 0xF5FA, 0xF5F0, 0xF5E6, 0xF5DE, 0xF5D6, +++ 0xF5D0, 0xF5CC, 0xF5C8, 0xF5C6, 0xF5C5, 0xF5CD, 0xF5E4, 0xF609, 0xF63C, +++ 0xF67A, 0xF6C4, 0xF719, 0xF776, 0xF7DD, 0xF84A, 0xF8BF, 0xF939, 0xF9B8, +++ 0xFA3A, 0xFAC0, 0xFB47, 0xFBCF, 0xFC57, 0xFCDF, 0xFD64, 0xFDE7, 0xFE66, +++ 0xFEE0, 0xFF54, 0xFFC2, 0x0029, 0x0087, 0x00DB, 0x0125, 0x0164, 0x0196, +++ 0x01BB, 0x01D2, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, +++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, +++ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01F8, 0x024B, 0x02CA, 0x036F, 0x042F, +++ 0x0504, 0x05E3, 0x06C5, 0x07A2, 0x0870, 0x0928, 0x09C0, 0x0A27, 0x0A4E, +++ 0x0A4C, 0x0A47, 0x0A41, 0x0A3A, 0x0A35, 0x01F4, 0x01F9, 0x01FF, 0x0204, +++ 0x0209, 0x020E, 0x0213, 0x0218, 0x021C, 0x0221, 0x0225, 0x0229, 0x022D, +++ 0x0230, 0x0234, 0x0237, 0x023A, 0x023C, 0x023F, 0x0241, 0x0242, 0x0244, +++ 0x0245, 0x0246, 0x0246, 0x0247, 0x0245, 0x0240, 0x0239, 0x022E, 0x0221, +++ 0x0212, 0x0200, 0x01ED, 0x01D8, 0x01C1, 0x01A9, 0x018F, 0x0175, 0x015A, +++ 0x013E, 0x0122, 0x0106, 0x00EA, 0x00CE, 0x00B2, 0x0097, 0x007D, 0x0063, +++ 0x004B, 0x0034, 0x001F, 0x000C, 0xFFF9, 0xFFEA, 0xFFDD, 0xFFD3, 0xFFCB, +++ 0xFFC6, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, +++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, 0xFFC4, +++ 0xFFC4, 0xFFC4, 0xFFC4, 0xFF37, 0xFDB2, 0xFB68, 0xF88D, 0xF554, 0xF1F1, +++ 0xEE97, 0xEB7A, 0xE8CE, 0xE6C5, 0xE593, 0xE516, 0xE4E9, 0xE4DD, 0xE4CB, +++ 0xE4AF, 0xE48F, 0xE471, 0xE45B, 0x1040, 0x1040, 0x1040, 0x1040, 0x1040, +++ 0x1040, 0x1040, 0x1040, 0x1040, 0x103F, 0x103F, 0x103F, 0x103E, 0x103D, +++ 0x103D, 0x103C, 0x103B, 0x103A, 0x1039, 0x1038, 0x1036, 0x1035, 0x1033, +++ 0x1031, 0x102F, 0x102D, 0x1023, 0x100A, 0x0FE4, 0x0FB1, 0x0F72, 0x0F28, +++ 0x0ED4, 0x0E77, 0x0E12, 0x0DA5, 0x0D32, 0x0CB9, 0x0C3C, 0x0BBC, 0x0B39, +++ 0x0AB4, 0x0A2E, 0x09A8, 0x0923, 0x08A0, 0x0820, 0x07A3, 0x072C, 0x06BA, +++ 0x064E, 0x05EA, 0x058E, 0x053B, 0x04F3, 0x04B6, 0x0484, 0x0460, 0x0449, +++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, +++ 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, 0x0442, +++ 0x0442, 0x0442, 0x0442, 0x0445, 0x044B, 0x0458, 0x046D, 0x048D, 0x04B9, +++ 0x04F4, 0x053F, 0x059D, 0x0611, 0x07A3, 0x0A0A, 0x0B48, 0x0AEB, 0x0A01, +++ 0x08D1, 0x07A1, 0x06B8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, +++ 0xE8C8, 0xE8C8, 0xE8C8, 0xE8C8, 0xE8CA, 0xE8CE, 0xE8D3, 0xE8D4, 0xE8D4, +++ 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, 0xE8D4, +++ 0xE8D4, 0xE8D4, 0xE8EA, 0xE92B, 0xE993, 0xEA20, 0xEAD1, 0xEBA3, 0xEC93, +++ 0xED9F, 0xEEC5, 0xF003, 0xF155, 0xF2BB, 0xF430, 0xF5B4, 0xF743, 0xF8DC, +++ 0xFA7B, 0xFC1F, 0xFDC5, 0xFF6B, 0x0110, 0x02AF, 0x0446, 0x05D5, 0x0757, +++ 0x08CA, 0x0A2E, 0x0B7E, 0x0CB9, 0x0DDC, 0x0EE5, 0x0FD2, 0x10A0, 0x114D, +++ 0x11DE, 0x125A, 0x12C3, 0x131B, 0x1362, 0x139C, 0x13C8, 0x13EA, 0x1402, +++ 0x1412, 0x141C, 0x1421, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, 0x1423, +++ 0x1423, 0x1401, 0x139C, 0x12F4, 0x1208, 0x10DA, 0x0F68, 0x0DB3, 0x0BBC, +++ 0x0982, 0x0706, 0x0447, 0x015F, 0xFECD, 0xFD2A, 0xFC58, 0xFBCC, 0xFB76, +++ 0xFB4B, 0xFB3B, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, +++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, +++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, +++ 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF56, 0xFF57, 0xFF57, +++ 0xFF57, 0xFF58, 0xFF58, 0xFF59, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, +++ 0xFF5E, 0xFF60, 0xFF61, 0xFF63, 0xFF65, 0xFF67, 0xFF6A, 0xFF6C, 0xFF6F, +++ 0xFF72, 0xFF75, 0xFF79, 0xFF7C, 0xFF80, 0xFF84, 0xFF89, 0xFF8E, 0xFF98, +++ 0xFFAC, 0xFFC9, 0xFFEC, 0x0015, 0x0040, 0x006C, 0x0098, 0x00C2, 0x00E8, +++ 0x0109, 0x0122, 0x0133, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, +++ 0x0109, 0x0085, 0xFFBE, 0xFEC5, 0xFDAB, 0xFC81, 0xFB57, 0xFA40, 0xF94A, +++ 0xF889, 0xF80C, 0xF7D7, 0xF7B8, 0xF770, 0xF6D2, 0xF5F4, 0xF501, 0xF420, +++ 0xF37B, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, 0xF006, +++ 0xF006, 0xF006, 0xF007, 0xF00A, 0xF00C, 0xF00D, 0xF00D, 0xF00D, 0xF00D, +++ 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, 0xF00D, +++ 0xF014, 0xF028, 0xF048, 0xF074, 0xF0AA, 0xF0EA, 0xF133, 0xF184, 0xF1DD, +++ 0xF23D, 0xF2A2, 0xF30C, 0xF37A, 0xF3EB, 0xF460, 0xF4D5, 0xF54C, 0xF5C3, +++ 0xF639, 0xF6AD, 0xF71F, 0xF78E, 0xF7F9, 0xF85F, 0xF8C0, 0xF91A, 0xF96D, +++ 0xF9B8, 0xF9FA, 0xFA32, 0xFA60, 0xFA82, 0xFA99, 0xFAA2, 0xFAA5, 0xFAA7, +++ 0xFAA9, 0xFAAA, 0xFAAC, 0xFAAD, 0xFAAD, 0xFAAE, 0xFAAE, 0xFAAF, 0xFAAF, +++ 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAAF, 0xFAB9, +++ 0xFADF, 0xFB2B, 0xFBA6, 0xFC5B, 0xFD53, 0xFE98, 0x0036, 0x0235, 0x049F, +++ 0x077E, 0x0AB4, 0x0D7E, 0x0EF0, 0x0F54, 0x0F98, 0x0FC1, 0x0FD6, 0x0FDE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFC, +++ 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFFA, 0xFFFA, +++ 0xFFF9, 0xFFF9, 0xFFF9, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF8, 0xFFF7, 0xFFF7, +++ 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF7, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, +++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, +++ 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFF6, 0xFFC8, 0xFF45, +++ 0xFE7B, 0xFD7A, 0xFC4E, 0xFB06, 0xF9B0, 0xF85A, 0xF713, 0xF5E7, 0xF4E5, +++ 0xF41C, 0xF399, 0xF36A, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003, 0x0003, +++ 0x0003, 0x0003, 0x0003, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, +++ 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +++ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +++ 0x0005, 0x000B, 0x001C, 0x0037, 0x0058, 0x007F, 0x00AA, 0x00D7, 0x0103, +++ 0x012E, 0x0155, 0x0177, 0x0191, 0x01A2, 0x01A8, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC173, 0xC179, 0xC184, 0xC193, +++ 0xC1A6, 0xC1BB, 0xC1D4, 0xC1F0, 0xC20E, 0xC22E, 0xC250, 0xC274, 0xC29A, +++ 0xC2C0, 0xC2E7, 0xC30F, 0xC337, 0xC35F, 0xC387, 0xC3AF, 0xC3D5, 0xC3FA, +++ 0xC41E, 0xC441, 0xC461, 0xC47F, 0xC49B, 0xC4B3, 0xC4C9, 0xC4DC, 0xC4EA, +++ 0xC4F5, 0xC4FC, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, +++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, +++ 0xC4FE, 0xC4FE, 0xC4FE, 0xC4FE, 0xC4F2, 0xC4CE, 0xC498, 0xC453, 0xC402, +++ 0xC3A9, 0xC34D, 0xC2F1, 0xC299, 0xC248, 0xC202, 0xC1CC, 0xC1A9, 0xC19C, +++ 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, 0x0727, +++ 0x0727, 0x0726, 0x0723, 0x0721, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, +++ 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x071F, +++ 0x071B, 0x0715, 0x070D, 0x0703, 0x06F7, 0x06EA, 0x06DB, 0x06CB, 0x06B9, +++ 0x06A7, 0x0693, 0x067F, 0x066A, 0x0655, 0x063F, 0x0629, 0x0614, 0x05FE, +++ 0x05E9, 0x05D4, 0x05C0, 0x05AC, 0x059A, 0x0588, 0x0578, 0x0569, 0x055B, +++ 0x0550, 0x0546, 0x053E, 0x0538, 0x0534, 0x0533, 0xD818, 0xD818, 0xD818, +++ 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD818, 0xD817, 0xD816, +++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, +++ 0xD815, 0xD815, 0xD815, 0xD815, 0xD815, 0xD814, 0xD813, 0xD810, 0xD80D, +++ 0xD808, 0xD803, 0xD7FD, 0xD7F7, 0xD7F0, 0xD7E8, 0xD7E0, 0xD7D8, 0xD7CF, +++ 0xD7C6, 0xD7BD, 0xD7B3, 0xD7AA, 0xD7A0, 0xD797, 0xD78E, 0xD784, 0xD77C, +++ 0xD773, 0xD76B, 0xD763, 0xD75C, 0xD756, 0xD750, 0xD74B, 0xD747, 0xD743, +++ 0xD740, 0xD73F, 0xD73E, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, +++ 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF90, 0xDF8E, 0xDF8C, 0xDF8B, 0xDF8B, +++ 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, 0xDF8B, +++ 0xDF8B, 0xDF8B, 0xDF8A, 0xDF86, 0xDF81, 0xDF7A, 0xDF71, 0xDF66, 0xDF5A, +++ 0xDF4C, 0xDF3E, 0xDF2E, 0xDF1D, 0xDF0B, 0xDEF9, 0xDEE6, 0xDED3, 0xDEC0, +++ 0xDEAC, 0xDE98, 0xDE85, 0xDE72, 0xDE5F, 0xDE4D, 0xDE3B, 0xDE2A, 0xDE1A, +++ 0xDE0C, 0xDDFE, 0xDDF2, 0xDDE7, 0xDDDE, 0xDDD7, 0xDDD2, 0xDDCE, 0xDDCD, +++ 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, 0xE2A9, +++ 0xE2A9, 0xE2AB, 0xE2B1, 0xE2B6, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, +++ 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2B9, 0xE2BC, +++ 0xE2C5, 0xE2D3, 0xE2E7, 0xE2FF, 0xE31C, 0xE33D, 0xE361, 0xE389, 0xE3B4, +++ 0xE3E1, 0xE410, 0xE442, 0xE474, 0xE4A8, 0xE4DD, 0xE512, 0xE547, 0xE57C, +++ 0xE5B0, 0xE5E2, 0xE614, 0xE643, 0xE670, 0xE69B, 0xE6C3, 0xE6E7, 0xE708, +++ 0xE725, 0xE73D, 0xE751, 0xE75F, 0xE768, 0xE76B, 0x0B39, 0x0B39, 0x0B39, +++ 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B39, 0x0B38, 0x0B36, +++ 0x0B34, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, +++ 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B33, 0x0B32, 0x0B2E, 0x0B29, 0x0B21, +++ 0x0B18, 0x0B0D, 0x0B00, 0x0AF2, 0x0AE3, 0x0AD3, 0x0AC1, 0x0AAF, 0x0A9C, +++ 0x0A89, 0x0A75, 0x0A61, 0x0A4D, 0x0A38, 0x0A24, 0x0A11, 0x09FD, 0x09EA, +++ 0x09D8, 0x09C7, 0x09B6, 0x09A7, 0x0999, 0x098D, 0x0982, 0x0978, 0x0971, +++ 0x096B, 0x0968, 0x0967, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80B, +++ 0xA80B, 0xA80B, 0xA80B, 0xA80B, 0xA80E, 0xA814, 0xA81B, 0xA81D, 0xA81D, +++ 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, 0xA81D, +++ 0xA81D, 0xA81D, 0xA821, 0xA82B, 0xA83C, 0xA853, 0xA870, 0xA891, 0xA8B8, +++ 0xA8E2, 0xA911, 0xA942, 0xA977, 0xA9AF, 0xA9E8, 0xAA24, 0xAA60, 0xAA9E, +++ 0xAADC, 0xAB1A, 0xAB57, 0xAB94, 0xABCF, 0xAC09, 0xAC40, 0xAC75, 0xACA7, +++ 0xACD5, 0xAD00, 0xAD26, 0xAD48, 0xAD64, 0xAD7B, 0xAD8C, 0xAD96, 0xAD9A, +++ 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, 0x2532, +++ 0x2532, 0x252F, 0x2528, 0x2521, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, +++ 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251E, 0x251A, +++ 0x250F, 0x24FC, 0x24E3, 0x24C5, 0x24A0, 0x2476, 0x2448, 0x2416, 0x23E0, +++ 0x23A6, 0x236A, 0x232B, 0x22EB, 0x22A9, 0x2267, 0x2223, 0x21E0, 0x219D, +++ 0x215C, 0x211B, 0x20DD, 0x20A1, 0x2067, 0x2031, 0x1FFF, 0x1FD0, 0x1FA7, +++ 0x1F82, 0x1F63, 0x1F4B, 0x1F38, 0x1F2D, 0x1F29, 0x1F29, 0x1F29, 0x1F29, +++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, +++ 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F29, 0x1F53, 0x1FCA, +++ 0x2080, 0x2169, 0x2278, 0x23A0, 0x24D6, 0x260B, 0x2733, 0x2842, 0x292B, +++ 0x29E1, 0x2A58, 0x2A82, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, 0xE074, +++ 0xE074, 0xE074, 0xE074, 0xE074, 0xE077, 0xE07B, 0xE080, 0xE082, 0xE082, +++ 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, 0xE082, +++ 0xE082, 0xE082, 0xE084, 0xE08C, 0xE098, 0xE0A9, 0xE0BE, 0xE0D6, 0xE0F2, +++ 0xE112, 0xE133, 0xE158, 0xE17F, 0xE1A7, 0xE1D1, 0xE1FC, 0xE229, 0xE256, +++ 0xE283, 0xE2B0, 0xE2DD, 0xE309, 0xE335, 0xE35F, 0xE387, 0xE3AE, 0xE3D2, +++ 0xE3F4, 0xE413, 0xE42F, 0xE448, 0xE45D, 0xE46D, 0xE47A, 0xE481, 0xE484, +++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, +++ 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, 0xE484, +++ 0xE484, 0xE461, 0xE402, 0xE36E, 0xE2B2, 0xE1D6, 0xE0E6, 0xDFEC, 0xDEF2, +++ 0xDE02, 0xDD27, 0xDC6A, 0xDBD7, 0xDB77, 0xDB54, 0x04A2, 0x04A2, 0x04A2, +++ 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A2, 0x04A0, 0x049C, +++ 0x0497, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, +++ 0x0495, 0x0495, 0x0495, 0x0495, 0x0495, 0x0493, 0x048C, 0x0481, 0x0471, +++ 0x045E, 0x0447, 0x042E, 0x0411, 0x03F2, 0x03D0, 0x03AC, 0x0387, 0x0360, +++ 0x0338, 0x030F, 0x02E6, 0x02BC, 0x0293, 0x0269, 0x0240, 0x0218, 0x01F2, +++ 0x01CC, 0x01A9, 0x0187, 0x0168, 0x014B, 0x0131, 0x011B, 0x0107, 0x00F8, +++ 0x00ED, 0x00E6, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, +++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00E3, +++ 0x00E3, 0x00E3, 0x00E3, 0x00E3, 0x00DB, 0x00C2, 0x009D, 0x006E, 0x0037, +++ 0xFFFA, 0xFFBB, 0xFF7C, 0xFF3F, 0xFF08, 0xFED9, 0xFEB4, 0xFE9C, 0xFE93, +++ 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, 0xF907, +++ 0xF907, 0xF908, 0xF909, 0xF90A, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, +++ 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90B, 0xF90C, +++ 0xF90E, 0xF911, 0xF916, 0xF91C, 0xF922, 0xF92A, 0xF933, 0xF93C, 0xF946, +++ 0xF951, 0xF95D, 0xF968, 0xF974, 0xF981, 0xF98D, 0xF99A, 0xF9A6, 0xF9B3, +++ 0xF9BF, 0xF9CB, 0xF9D7, 0xF9E2, 0xF9ED, 0xF9F7, 0xFA00, 0xFA09, 0xFA11, +++ 0xFA18, 0xFA1D, 0xFA22, 0xFA26, 0xFA28, 0x0173, 0x0173, 0x0173, 0x0173, +++ 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0172, +++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, +++ 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0172, 0x0171, 0x0170, 0x016F, +++ 0x016D, 0x016C, 0x016A, 0x0168, 0x0166, 0x0164, 0x0161, 0x015F, 0x015C, +++ 0x015A, 0x0157, 0x0155, 0x0152, 0x014F, 0x014D, 0x014A, 0x0148, 0x0146, +++ 0x0143, 0x0141, 0x013F, 0x013D, 0x013C, 0x013A, 0x0139, 0x0138, 0x0138, +++ 0x0137, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, +++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, +++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, +++ 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, 0xC151, +++ 0xC152, 0xC152, 0xC152, 0xC152, 0xC152, 0xC153, 0xC153, 0xC153, 0xC153, +++ 0xC154, 0xC154, 0xC154, 0xC154, 0xC154, 0xC155, 0xC155, 0xC155, 0xC155, +++ 0xC155, 0xC155, 0xC155, 0xC156, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, +++ 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08EE, 0x08ED, 0x08ED, 0x08EC, +++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, +++ 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EC, 0x08EB, 0x08EA, 0x08E9, +++ 0x08E8, 0x08E7, 0x08E6, 0x08E4, 0x08E3, 0x08E1, 0x08E0, 0x08DE, 0x08DD, +++ 0x08DB, 0x08D9, 0x08D8, 0x08D6, 0x08D4, 0x08D3, 0x08D1, 0x08D0, 0x08CE, +++ 0x08CD, 0x08CB, 0x08CA, 0x08C9, 0x08C8, 0x08C8, 0x08C7, 0x08C6, 0x08C6, +++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, +++ 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, 0x08C6, +++ 0x08C6, 0x08C6, 0x0AB9, 0x1032, 0x189D, 0x2369, 0x3003, 0x3DD8, 0x4C57, +++ 0x5AEC, 0x6905, 0x7611, 0x817C, 0x8AA8, 0x90C9, 0x9304, 0x92EA, 0x92A9, +++ 0x9255, 0x9200, 0x91BF, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, +++ 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD4, 0x2AD5, 0x2AD5, 0x2AD5, +++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD5, +++ 0x2AD5, 0x2AD5, 0x2AD5, 0x2AD4, 0x2AD3, 0x2AD2, 0x2AD0, 0x2ACE, 0x2ACC, +++ 0x2ACA, 0x2AC7, 0x2AC5, 0x2AC2, 0x2ABF, 0x2ABB, 0x2AB8, 0x2AB5, 0x2AB1, +++ 0x2AAE, 0x2AAB, 0x2AA7, 0x2AA4, 0x2AA1, 0x2A9D, 0x2A9A, 0x2A97, 0x2A95, +++ 0x2A92, 0x2A90, 0x2A8E, 0x2A8C, 0x2A8A, 0x2A89, 0x2A88, 0x2A88, 0x2A87, +++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, +++ 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, 0x2A87, +++ 0x2A87, 0x2A49, 0x299E, 0x289E, 0x2761, 0x25FE, 0x248D, 0x2326, 0x21E0, +++ 0x20D4, 0x2018, 0x1FC5, 0x1FBA, 0x1FBA, 0x1FAF, 0x1F85, 0x1F41, 0x1EF1, +++ 0x1EA4, 0x1E6B, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, 0xE547, +++ 0xE547, 0xE547, 0xE547, 0xE545, 0xE540, 0xE53C, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, 0xE53A, +++ 0xE60A, 0xE855, 0xEBE8, 0xF08C, 0xF60C, 0xFC34, 0x02CE, 0x09A4, 0x1082, +++ 0x1732, 0x1D7F, 0x2314, 0x271F, 0x28AE, 0x2869, 0x27BC, 0x26DB, 0x25FA, +++ 0x254C, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, 0x22DC, +++ 0x22DC, 0x22DC, 0x22D9, 0x22D3, 0x22CC, 0x22C9, 0x22C9, 0x22C9, 0x22C9, +++ 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, 0x22C9, +++ 0x22C6, 0x22BB, 0x22AA, 0x2293, 0x2276, 0x2254, 0x222D, 0x2201, 0x21D2, +++ 0x219F, 0x2169, 0x2131, 0x20F6, 0x20BA, 0x207C, 0x203E, 0x1FFF, 0x1FC0, +++ 0x1F81, 0x1F44, 0x1F07, 0x1ECD, 0x1E94, 0x1E5E, 0x1E2C, 0x1DFC, 0x1DD1, +++ 0x1DAA, 0x1D88, 0x1D6B, 0x1D54, 0x1D43, 0x1D38, 0x1D34, 0x1D34, 0x1D34, +++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, +++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, +++ 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, 0x1D34, +++ 0x1D34, 0x1D3E, 0x1D51, 0x1D5B, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, +++ 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF683, 0xF685, 0xF687, 0xF688, +++ 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, 0xF688, +++ 0xF688, 0xF688, 0xF688, 0xF689, 0xF68C, 0xF690, 0xF697, 0xF69E, 0xF6A8, +++ 0xF6B2, 0xF6BE, 0xF6CB, 0xF6D9, 0xF6E8, 0xF6F7, 0xF707, 0xF717, 0xF728, +++ 0xF739, 0xF74A, 0xF75B, 0xF76C, 0xF77D, 0xF78E, 0xF79D, 0xF7AD, 0xF7BB, +++ 0xF7C9, 0xF7D6, 0xF7E2, 0xF7ED, 0xF7F6, 0xF7FE, 0xF804, 0xF809, 0xF80C, +++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, +++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, +++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF80D, +++ 0xF80D, 0xF80D, 0xF80D, 0xF80D, 0xF792, 0xF6AF, 0xF634, 0xAB84, 0xAB84, +++ 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB84, 0xAB86, +++ 0xAB8C, 0xAB91, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, +++ 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB93, 0xAB96, 0xAB9F, 0xABAD, +++ 0xABC0, 0xABD7, 0xABF3, 0xAC13, 0xAC36, 0xAC5C, 0xAC86, 0xACB1, 0xACDF, +++ 0xAD0F, 0xAD40, 0xAD72, 0xADA5, 0xADD8, 0xAE0B, 0xAE3E, 0xAE70, 0xAEA1, +++ 0xAED1, 0xAEFF, 0xAF2B, 0xAF54, 0xAF7A, 0xAF9E, 0xAFBD, 0xAFD9, 0xAFF1, +++ 0xB004, 0xB012, 0xB01A, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, +++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, +++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, +++ 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB01D, 0xB035, 0xB062, +++ 0xB07A, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, 0xD607, +++ 0xD607, 0xD607, 0xD60B, 0xD613, 0xD61A, 0xD61E, 0xD61E, 0xD61E, 0xD61E, +++ 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, 0xD61E, +++ 0xD622, 0xD62F, 0xD644, 0xD660, 0xD683, 0xD6AC, 0xD6DB, 0xD70F, 0xD748, +++ 0xD785, 0xD7C6, 0xD80A, 0xD850, 0xD899, 0xD8E3, 0xD92E, 0xD97A, 0xD9C6, +++ 0xDA11, 0xDA5B, 0xDAA4, 0xDAEB, 0xDB2F, 0xDB6F, 0xDBAD, 0xDBE5, 0xDC1A, +++ 0xDC49, 0xDC72, 0xDC95, 0xDCB1, 0xDCC5, 0xDCD2, 0xDCD6, 0xDCD6, 0xDCD6, +++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, +++ 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDCD6, 0xDF85, +++ 0xE6E0, 0xF1DE, 0xFF74, 0x0E9A, 0x1E44, 0x2D69, 0x3B00, 0x45FD, 0x4D58, +++ 0x5007, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, 0x1B82, +++ 0x1B82, 0x1B82, 0x1B7F, 0x1B7A, 0x1B75, 0x1B73, 0x1B73, 0x1B73, 0x1B73, +++ 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, 0x1B73, +++ 0x1B70, 0x1B68, 0x1B5A, 0x1B48, 0x1B31, 0x1B16, 0x1AF7, 0x1AD5, 0x1AB0, +++ 0x1A88, 0x1A5D, 0x1A31, 0x1A03, 0x19D3, 0x19A2, 0x1971, 0x193F, 0x190E, +++ 0x18DC, 0x18AC, 0x187C, 0x184E, 0x1821, 0x17F7, 0x17CF, 0x17A9, 0x1787, +++ 0x1768, 0x174D, 0x1737, 0x1724, 0x1717, 0x170E, 0x170B, 0x170B, 0x170B, +++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, +++ 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x170B, 0x1775, +++ 0x1896, 0x1A45, 0x1C5B, 0x1EAE, 0x2115, 0x2368, 0x257E, 0x272D, 0x284E, +++ 0x28B8, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, +++ 0x0726, 0x0726, 0x0724, 0x0721, 0x071E, 0x071C, 0x071C, 0x071C, 0x071C, +++ 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, +++ 0x071A, 0x0715, 0x070C, 0x0700, 0x06F1, 0x06E0, 0x06CC, 0x06B6, 0x069D, +++ 0x0683, 0x0668, 0x064B, 0x062D, 0x060E, 0x05EE, 0x05CE, 0x05AE, 0x058E, +++ 0x056E, 0x054E, 0x052F, 0x0511, 0x04F4, 0x04D9, 0x04BF, 0x04A6, 0x0490, +++ 0x047C, 0x046B, 0x045C, 0x0450, 0x0447, 0x0442, 0x0440, 0x0440, 0x0440, +++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, +++ 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x0440, 0x04CF, +++ 0x0658, 0x08A3, 0x0B79, 0x0EA2, 0x11E7, 0x1510, 0x17E6, 0x1A31, 0x1BBA, +++ 0x1C49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xBF5E, 0xFED2, +++ 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, 0xFED2, +++ 0xFECF, 0xFEC8, 0xFEC0, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, +++ 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEBD, 0xFEB8, 0xFEAC, +++ 0xFE98, 0xFE7D, 0xFE5B, 0xFE34, 0xFE06, 0xFDD4, 0xFD9D, 0xFD62, 0xFD23, +++ 0xFCE2, 0xFC9E, 0xFC57, 0xFC10, 0xFBC7, 0xFB7E, 0xFB35, 0xFAEC, 0xFAA4, +++ 0xFA5E, 0xFA1A, 0xF9D8, 0xF99A, 0xF95F, 0xF928, 0xF8F5, 0xF8C8, 0xF8A0, +++ 0xF87F, 0xF863, 0xF850, 0xF843, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, +++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, +++ 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF83F, 0xF82C, 0xF7DE, 0xF736, +++ 0xF615, 0xF45A, 0xF1E6, 0xEEB0, 0xEB02, 0xE73E, 0xE3C4, 0xE0F6, 0xDF1C, +++ 0xDE21, 0xDDD8, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, 0xFE61, +++ 0xFE61, 0xFE61, 0xFE61, 0xFE5F, 0xFE5C, 0xFE59, 0xFE57, 0xFE57, 0xFE57, +++ 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, 0xFE57, +++ 0xFE57, 0xFE55, 0xFE50, 0xFE47, 0xFE3B, 0xFE2C, 0xFE1A, 0xFE06, 0xFDEF, +++ 0xFDD6, 0xFDBC, 0xFDA0, 0xFD83, 0xFD64, 0xFD45, 0xFD25, 0xFD04, 0xFCE4, +++ 0xFCC3, 0xFCA2, 0xFC82, 0xFC63, 0xFC44, 0xFC27, 0xFC0B, 0xFBF1, 0xFBD8, +++ 0xFBC2, 0xFBAD, 0xFB9B, 0xFB8C, 0xFB80, 0xFB77, 0xFB72, 0xFB70, 0xFB70, +++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, +++ 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, 0xFB70, +++ 0xFB4C, 0xFAF2, 0xFA7C, 0xFA07, 0xF9AC, 0xF987, 0xF987, 0xF987, 0xF987, +++ 0xF987, 0xF986, 0xF975, 0xF955, 0xF944, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, +++ 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7E, 0xCD7C, 0xCD77, 0xCD73, +++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD71, +++ 0xCD71, 0xCD71, 0xCD71, 0xCD71, 0xCD6E, 0xCD67, 0xCD5B, 0xCD4B, 0xCD37, +++ 0xCD20, 0xCD05, 0xCCE8, 0xCCC7, 0xCCA5, 0xCC80, 0xCC59, 0xCC31, 0xCC08, +++ 0xCBDD, 0xCBB2, 0xCB87, 0xCB5C, 0xCB31, 0xCB07, 0xCADE, 0xCAB6, 0xCA8F, +++ 0xCA6A, 0xCA47, 0xCA27, 0xCA09, 0xC9EF, 0xC9D7, 0xC9C3, 0xC9B3, 0xC9A8, +++ 0xC9A0, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, +++ 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, 0xC99E, +++ 0xC99E, 0xC99E, 0xC99E, 0xCA41, 0xCBE9, 0xCE32, 0xD0B9, 0xD31A, 0xD4F1, +++ 0xD606, 0xD68D, 0xD6C7, 0xD6F5, 0xD759, 0xD814, 0xD8D6, 0xD92F, 0xFF5E, +++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, +++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, +++ 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5E, 0xFF5F, +++ 0xFF5F, 0xFF5F, 0xFF60, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, +++ 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6F, +++ 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF74, 0xFF75, 0xFF76, 0xFF77, +++ 0xFF77, 0xFF77, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, +++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, +++ 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0xFF78, 0x0060, 0x02E2, 0x06B3, +++ 0x0B87, 0x1111, 0x1705, 0x1D1B, 0x231B, 0x28D1, 0x2E07, 0x328B, 0x3623, +++ 0x3885, 0x3961, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, 0x0165, +++ 0x0165, 0x0165, 0x0165, 0x0165, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, +++ 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, +++ 0x0164, 0x0164, 0x0163, 0x0163, 0x0162, 0x0161, 0x015F, 0x015E, 0x015C, +++ 0x015A, 0x0158, 0x0156, 0x0154, 0x0151, 0x014F, 0x014C, 0x014A, 0x0147, +++ 0x0145, 0x0142, 0x0140, 0x013D, 0x013B, 0x0139, 0x0137, 0x0135, 0x0133, +++ 0x0131, 0x012F, 0x012E, 0x012D, 0x012C, 0x012B, 0x012B, 0x012B, 0x012B, +++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, +++ 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, 0x012B, +++ 0x00F5, 0x006E, 0xFFBD, 0xFF0E, 0xFE86, 0xFE50, 0xFFD3, 0x038E, 0x0848, +++ 0x0CCB, 0x0FE1, 0x1144, 0x11C7, 0x11DA, 0x053D, 0x053D, 0x053D, 0x053D, +++ 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x053D, 0x0540, 0x0546, 0x054C, +++ 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, 0x054E, +++ 0x054E, 0x054E, 0x054E, 0x054E, 0x0552, 0x055B, 0x056B, 0x0580, 0x059B, +++ 0x05BA, 0x05DE, 0x0606, 0x0631, 0x0660, 0x0691, 0x06C5, 0x06FB, 0x0732, +++ 0x076B, 0x07A4, 0x07DE, 0x0817, 0x0851, 0x0889, 0x08C1, 0x08F6, 0x092A, +++ 0x095C, 0x098A, 0x09B5, 0x09DD, 0x0A01, 0x0A20, 0x0A3B, 0x0A50, 0x0A60, +++ 0x0A6A, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, +++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, 0x0A6D, +++ 0x0A6D, 0x0A6D, 0x0A6D, 0x0BE3, 0x0FCD, 0x1577, 0x1C2D, 0x233B, 0x29EE, +++ 0x2FB7, 0x34A7, 0x38F3, 0x3CD2, 0x407A, 0x43F7, 0x46A5, 0x47B7, 0xFB48, +++ 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, 0xFB48, +++ 0xFB49, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, +++ 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4B, 0xFB4D, +++ 0xFB4F, 0xFB52, 0xFB56, 0xFB5B, 0xFB60, 0xFB66, 0xFB6C, 0xFB73, 0xFB7A, +++ 0xFB82, 0xFB8A, 0xFB92, 0xFB9A, 0xFBA3, 0xFBAB, 0xFBB4, 0xFBBC, 0xFBC5, +++ 0xFBCD, 0xFBD5, 0xFBDC, 0xFBE4, 0xFBEB, 0xFBF1, 0xFBF7, 0xFBFC, 0xFC01, +++ 0xFC05, 0xFC08, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, +++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, +++ 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFC0C, 0xFB9F, 0xFA6E, 0xF89A, +++ 0xF643, 0xF389, 0xF08F, 0xED74, 0xEA59, 0xE75E, 0xE4A5, 0xE24E, 0xE079, +++ 0xDF48, 0xDEDC, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, 0xF29B, +++ 0xF29B, 0xF29B, 0xF29B, 0xF29C, 0xF29F, 0xF2A1, 0xF2A2, 0xF2A2, 0xF2A2, +++ 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, 0xF2A2, +++ 0xF2A2, 0xF2A4, 0xF2A8, 0xF2AE, 0xF2B7, 0xF2C2, 0xF2CF, 0xF2DE, 0xF2EF, +++ 0xF301, 0xF315, 0xF329, 0xF33F, 0xF356, 0xF36D, 0xF384, 0xF39C, 0xF3B5, +++ 0xF3CD, 0xF3E5, 0xF3FC, 0xF414, 0xF42A, 0xF440, 0xF455, 0xF468, 0xF47A, +++ 0xF48B, 0xF49A, 0xF4A7, 0xF4B2, 0xF4BB, 0xF4C2, 0xF4C6, 0xF4C7, 0xF4C7, +++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, +++ 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, 0xF4C7, +++ 0xF45C, 0xF32F, 0xF161, 0xEF12, 0xEC63, 0xE973, 0xE663, 0xE353, 0xE064, +++ 0xDDB4, 0xDB65, 0xD998, 0xD86B, 0xD800, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, +++ 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C8, 0xC4C7, 0xC4C6, +++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, +++ 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C6, 0xC4C5, 0xC4C3, 0xC4C1, 0xC4BD, 0xC4B8, +++ 0xC4B3, 0xC4AD, 0xC4A6, 0xC49E, 0xC496, 0xC48E, 0xC485, 0xC47B, 0xC472, +++ 0xC468, 0xC45E, 0xC454, 0xC44A, 0xC440, 0xC436, 0xC42D, 0xC423, 0xC41A, +++ 0xC412, 0xC40A, 0xC402, 0xC3FB, 0xC3F5, 0xC3F0, 0xC3EB, 0xC3E8, 0xC3E5, +++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, +++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, 0xC3E3, +++ 0xC3E3, 0xC3E3, 0xC3E3, 0xC435, 0xC51D, 0xC681, 0xC849, 0xCA5B, 0xCC9F, +++ 0xCEFC, 0xD158, 0xD39C, 0xD5AE, 0xD776, 0xD8DA, 0xD9C2, 0xDA15, 0x01B9, +++ 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, 0x01B9, +++ 0x01B9, 0x01B9, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, +++ 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, 0x01B8, +++ 0x01B7, 0x01B6, 0x01B4, 0x01B2, 0x01B0, 0x01AE, 0x01AC, 0x01AA, 0x01A7, +++ 0x01A4, 0x01A1, 0x019E, 0x019B, 0x0198, 0x0195, 0x0192, 0x018F, 0x018C, +++ 0x0189, 0x0186, 0x0183, 0x0180, 0x017E, 0x017B, 0x0179, 0x0177, 0x0176, +++ 0x0174, 0x0173, 0x0172, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, 0xF668, +++ 0xF668, 0xF668, 0xF668, 0xF668, 0xF669, 0xF66B, 0xF66C, 0xF66D, 0xF66D, +++ 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, 0xF66D, +++ 0xF66D, 0xF66D, 0xF66E, 0xF671, 0xF676, 0xF67C, 0xF684, 0xF68E, 0xF698, +++ 0xF6A4, 0xF6B1, 0xF6BF, 0xF6CE, 0xF6DE, 0xF6EE, 0xF6FE, 0xF70F, 0xF721, +++ 0xF732, 0xF743, 0xF754, 0xF765, 0xF776, 0xF786, 0xF796, 0xF7A4, 0xF7B2, +++ 0xF7BF, 0xF7CB, 0xF7D6, 0xF7DF, 0xF7E7, 0xF7EE, 0xF7F2, 0xF7F5, 0xF7F6, +++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, +++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, +++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2A, +++ 0xBF2A, 0xBF2A, 0xBF2A, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2B, 0xBF2C, 0xBF2C, +++ 0xBF2C, 0xBF2D, 0xBF2D, 0xBF2D, 0xBF2E, 0xBF2E, 0xBF2E, 0xBF2F, 0xBF2F, +++ 0xBF2F, 0xBF30, 0xBF30, 0xBF30, 0xBF31, 0xBF31, 0xBF31, 0xBF32, 0xBF32, +++ 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF32, 0xBF33, 0xFCA2, 0xFC9F, 0xFC9E, +++ 0xFC9D, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, +++ 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9C, 0xFC9F, 0xFCA8, 0xFCB7, 0xFCCC, +++ 0xFCE5, 0xFD03, 0xFD25, 0xFD4B, 0xFD74, 0xFDA1, 0xFDD0, 0xFE01, 0xFE34, +++ 0xFE69, 0xFE9F, 0xFED6, 0xFF0D, 0xFF44, 0xFF7B, 0xFFB0, 0xFFE5, 0x0019, +++ 0x004B, 0x007A, 0x00A6, 0x00D0, 0x00F6, 0x0118, 0x0136, 0x014F, 0x0163, +++ 0x0172, 0x017B, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, +++ 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, 0x017F, +++ 0x017F, 0x017F, 0x017F, 0x017F, 0x0176, 0x0143, 0x00C4, 0xFFD2, 0xFE4B, +++ 0xFC0C, 0xF906, 0xF584, 0xF1E8, 0xEE92, 0xEBE5, 0xEA28, 0xE942, 0xE901, +++ 0xFD5F, 0xFD62, 0xFD69, 0xFD72, 0xFD7B, 0xFD82, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, +++ 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD85, 0xFD87, +++ 0xFD8D, 0xFD97, 0xFDA4, 0xFDB4, 0xFDC8, 0xFDDE, 0xFDF6, 0xFE11, 0xFE2E, +++ 0xFE4C, 0xFE6C, 0xFE8E, 0xFEB0, 0xFED3, 0xFEF6, 0xFF1A, 0xFF3E, 0xFF61, +++ 0xFF84, 0xFFA7, 0xFFC8, 0xFFE8, 0x0008, 0x0024, 0x003F, 0x0058, 0x006E, +++ 0x0081, 0x0092, 0x009F, 0x00A9, 0x00AF, 0x00B1, 0x00B1, 0x00B1, 0x00B1, +++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, +++ 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x00B1, 0x0053, 0xFF43, +++ 0xFD8F, 0xFB45, 0xF872, 0xF524, 0xF171, 0xED90, 0xE9C0, 0xE641, 0xE352, +++ 0xE128, 0xDFD6, 0xDF63, 0xBEA9, 0xBF5F, 0xC03F, 0xC129, 0xC1F9, 0xC28F, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, 0xC2C9, +++ 0xC2C9, 0xC2C9, 0xC2C7, 0xC2C0, 0xC2B5, 0xC2A5, 0xC293, 0xC27D, 0xC263, +++ 0xC247, 0xC229, 0xC208, 0xC1E5, 0xC1C0, 0xC19B, 0xC173, 0xC14C, 0xC123, +++ 0xC0FA, 0xC0D2, 0xC0A9, 0xC081, 0xC05A, 0xC034, 0xC010, 0xBFED, 0xBFCC, +++ 0xBFAD, 0xBF91, 0xBF78, 0xBF62, 0xBF4F, 0xBF40, 0xBF35, 0xBF2E, 0xBF2C, +++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, +++ 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, 0xBF2C, +++ 0xBF2C, 0xBFAE, 0xC0F4, 0xC29C, 0xC444, 0xC58A, 0xC60C, 0xC5E5, 0xC586, +++ 0xC515, 0xC4B7, 0xC48F, 0xC4BF, 0xC518, 0xC548, 0xFF8A, 0xFF89, 0xFF88, +++ 0xFF87, 0xFF86, 0xFF86, 0xFF85, 0xFF84, 0xFF84, 0xFF84, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, +++ 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF83, 0xFF84, 0xFF87, 0xFF8B, 0xFF90, +++ 0xFF96, 0xFF9C, 0xFFA1, 0xFFA5, 0xFFA8, 0xFFA9, 0xFFA7, 0xFFA2, 0xFF9A, +++ 0xFF92, 0xFF8A, 0xFF85, 0xFF83, 0xFF83, 0xFF85, 0xFF88, 0xFF8C, 0xFF91, +++ 0xFF95, 0xFF9A, 0xFFA0, 0xFFA5, 0xFFA9, 0xFFAD, 0xFFB1, 0xFFB4, 0xFFB6, +++ 0xFFB8, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, +++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, +++ 0xFFB9, 0xFFB9, 0xFFB9, 0xFFB9, 0x0075, 0x024A, 0x04AB, 0x070C, 0x08E0, +++ 0x099C, 0x08DC, 0x0712, 0x04F0, 0x0327, 0x0267, 0x027F, 0x02AB, 0x02C3, +++ 0x0270, 0x0272, 0x0273, 0x0275, 0x0276, 0x0276, 0x0277, 0x0277, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, +++ 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0278, 0x0277, +++ 0x0274, 0x026E, 0x0268, 0x0262, 0x025B, 0x0255, 0x0250, 0x024C, 0x024B, +++ 0x024D, 0x0254, 0x025D, 0x0266, 0x026F, 0x0276, 0x0278, 0x0278, 0x0276, +++ 0x0274, 0x0271, 0x026D, 0x0268, 0x0262, 0x025B, 0x0254, 0x024B, 0x0242, +++ 0x0238, 0x022F, 0x0226, 0x0220, 0x021B, 0x0219, 0x0219, 0x0219, 0x0219, +++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, +++ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0238, 0x02A7, +++ 0x0382, 0x04E5, 0x06ED, 0x09B5, 0x0D45, 0x114D, 0x1568, 0x1932, 0x1C44, +++ 0x1E52, 0x1F6F, 0x1FC5, 0x0613, 0x05FA, 0x05E4, 0x05D1, 0x05C0, 0x05B1, +++ 0x05A5, 0x059B, 0x0593, 0x058C, 0x0588, 0x0585, 0x0583, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, 0x0582, +++ 0x0582, 0x0582, 0x0599, 0x05D6, 0x0630, 0x069D, 0x0714, 0x078B, 0x07F8, +++ 0x0852, 0x088F, 0x08A5, 0x0879, 0x0806, 0x0769, 0x06BE, 0x0622, 0x05AF, +++ 0x0582, 0x058B, 0x05A6, 0x05D2, 0x060F, 0x065B, 0x06B5, 0x071E, 0x0794, +++ 0x0817, 0x08A5, 0x093E, 0x09D8, 0x0A6A, 0x0AED, 0x0B55, 0x0B9A, 0x0BB4, +++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, +++ 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, 0x0BB4, +++ 0x0BB4, 0x0D09, 0x1060, 0x14BE, 0x1927, 0x1C9F, 0x1E2B, 0x1E57, 0x1E62, +++ 0x1E63, 0x1E6E, 0x1E9A, 0x1F5F, 0x2088, 0x2122, 0x05FC, 0x060F, 0x0620, +++ 0x062F, 0x063C, 0x0643, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, +++ 0x061F, 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, +++ 0x0628, 0x0637, 0x0642, 0x0646, 0x0644, 0x063E, 0x0635, 0x062B, 0x061F, +++ 0x0614, 0x0609, 0x0600, 0x05FA, 0x05F8, 0x05FC, 0x0608, 0x0617, 0x0628, +++ 0x0637, 0x0642, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, +++ 0x0646, 0x0646, 0x0646, 0x0646, 0x0633, 0x05FF, 0x05AE, 0x0547, 0x04CE, +++ 0x044B, 0x03C1, 0x0338, 0x02B4, 0x023C, 0x01D5, 0x0184, 0x014F, 0x013C, +++ 0x1529, 0x14AD, 0x1376, 0x11E3, 0x1050, 0x0F1A, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0ECF, +++ 0x0F56, 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, +++ 0x1529, 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0ECF, 0x0F56, +++ 0x101D, 0x110E, 0x1214, 0x131B, 0x140C, 0x14D3, 0x1559, 0x158B, 0x1529, +++ 0x142B, 0x12D1, 0x1158, 0x0FFD, 0x0F00, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, +++ 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E9E, 0x0E01, 0x0C48, +++ 0x09A4, 0x0644, 0x0256, 0xFE08, 0xF98C, 0xF511, 0xF0C4, 0xECD6, 0xE976, +++ 0xE6D2, 0xE519, 0xE47C, 0xC381, 0xC465, 0xC6A1, 0xC987, 0xCC6E, 0xCEA9, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, +++ 0xC420, 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, +++ 0xCF8D, 0xCF32, 0xCE3A, 0xCCCC, 0xCB10, 0xC92D, 0xC749, 0xC58D, 0xC420, +++ 0xC328, 0xC2CC, 0xC381, 0xC553, 0xC7D1, 0xCA88, 0xCD06, 0xCED8, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, 0xCF8D, +++ 0xCF8D, 0xCF80, 0xCF5C, 0xCF24, 0xCEDC, 0xCE89, 0xCE2E, 0xCDCF, 0xCD71, +++ 0xCD16, 0xCCC2, 0xCC7B, 0xCC43, 0xCC1F, 0xCC12, ++ }; ++ +diff --git a/assets/anims/anim_87.inc.c b/assets/anims/anim_87.inc.c +index 894a15c..a928b5d 100644 +--- a/assets/anims/anim_87.inc.c ++++ b/assets/anims/anim_87.inc.c +@@ -3,7 +3,7 @@ static const struct Animation anim_87[] = { + 189, + 0, + 0, +- 0x32, ++ 37, + ANIMINDEX_NUMPARTS(anim_87_indices), + anim_87_values, + anim_87_indices, +@@ -12,126 +12,140 @@ static const struct Animation anim_87[] = { + + + static const u16 anim_87_indices[] = { +- 0x0001, 0x0000, 0x0032, 0x0001, 0x0001, 0x0033, 0x0001, 0x0000, 0x0001, 0x0034, 0x0001, 0x0000, +- 0x0001, 0x030B, 0x0001, 0x030C, 0x0001, 0x030D, +- 0x0032, 0x0275, 0x0032, 0x02A7, 0x0032, 0x02D9, +- 0x0032, 0x01DF, 0x0032, 0x0211, 0x0032, 0x0243, +- 0x0001, 0x01DB, 0x0001, 0x01DC, 0x0001, 0x01DD, +- 0x0032, 0x0039, 0x0032, 0x006B, 0x0032, 0x009D, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0038, +- 0x0001, 0x0035, 0x0001, 0x0036, 0x0001, 0x0037, +- 0x0001, 0x01D7, 0x0001, 0x01D8, 0x0001, 0x01D9, +- 0x0001, 0x00D3, 0x0001, 0x00D4, 0x0001, 0x00D5, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D2, +- 0x0001, 0x00CF, 0x0001, 0x00D0, 0x0001, 0x00D1, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DA, +- 0x0032, 0x0141, 0x0032, 0x0173, 0x0032, 0x01A5, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x010F, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00DD, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DE, +- 0x0001, 0x00DA, 0x0001, 0x00DB, 0x0001, 0x00DC, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D9, +- 0x0001, 0x00D6, 0x0001, 0x00D7, 0x0001, 0x00D8, ++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, ++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0001, 0x0008, ++ 0x0026, 0x0009, 0x0026, 0x002F, 0x0026, 0x0055, 0x0026, 0x007B, 0x0026, ++ 0x00A1, 0x0026, 0x00C7, 0x0001, 0x00ED, 0x0001, 0x00EE, 0x0001, 0x00EF, ++ 0x0001, 0x00F0, 0x0001, 0x00F1, 0x0001, 0x00F2, 0x0001, 0x00F3, 0x0001, ++ 0x00F4, 0x0001, 0x00F5, 0x0026, 0x00F6, 0x0026, 0x011C, 0x0026, 0x0142, ++ 0x0001, 0x0168, 0x0001, 0x0169, 0x0001, 0x016A, 0x0001, 0x016B, 0x0001, ++ 0x016C, 0x0001, 0x016D, 0x0001, 0x016E, 0x0001, 0x016F, 0x0001, 0x0170, ++ 0x0026, 0x0171, 0x0026, 0x0197, 0x0026, 0x01BD, 0x0001, 0x01E3, 0x0001, ++ 0x01E4, 0x0001, 0x01E5, 0x0026, 0x01E6, 0x0026, 0x020C, 0x0026, 0x0232, ++ 0x0001, 0x0258, 0x0001, 0x0259, 0x0001, 0x025A, 0x0026, 0x025B, 0x0026, ++ 0x0281, 0x0026, 0x02A7, 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, ++ 0x0026, 0x02D0, 0x0026, 0x02F6, 0x0026, 0x031C, 0x0026, 0x0342, 0x0026, ++ 0x0368, 0x0026, 0x038E, 0x0026, 0x03B4, 0x0026, 0x03DA, 0x0026, 0x0400, + }; + + static const s16 anim_87_values[] = { +- 0x0000, 0x0066, 0x0066, 0x0066, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, +- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0066, +- 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, +- 0x0066, 0x0066, 0x0066, 0xFF5A, 0x3FFF, 0xF772, 0xF00D, 0xE2ED, +- 0xC0C8, 0x7347, 0x7389, 0x73BB, 0x73E0, 0x73F7, 0x7402, 0x7403, +- 0x73FA, 0x73E9, 0x73D1, 0x73B3, 0x7390, 0x736B, 0x7343, 0x731A, +- 0x72F1, 0x72CA, 0x72A5, 0x7285, 0x7269, 0x7254, 0x7247, 0x7242, +- 0x7243, 0x7246, 0x724B, 0x7251, 0x7259, 0x7263, 0x726D, 0x7279, +- 0x7286, 0x7293, 0x72A1, 0x72AF, 0x72BD, 0x72CC, 0x72DA, 0x72E8, +- 0x72F6, 0x7303, 0x7310, 0x731B, 0x7326, 0x732F, 0x7338, 0x733E, +- 0x7343, 0x7346, 0x7347, 0x88D4, 0x8871, 0x882F, 0x880A, 0x8800, +- 0x880F, 0x8833, 0x886A, 0x88B1, 0x8905, 0x8964, 0x89CC, 0x8A38, +- 0x8AA7, 0x8B16, 0x8B82, 0x8BE8, 0x8C47, 0x8C9A, 0x8CDF, 0x8D14, +- 0x8D36, 0x8D41, 0x8D3D, 0x8D30, 0x8D1B, 0x8CFE, 0x8CDB, 0x8CB2, +- 0x8C84, 0x8C52, 0x8C1C, 0x8BE2, 0x8BA6, 0x8B69, 0x8B2A, 0x8AEB, +- 0x8AAD, 0x8A6F, 0x8A33, 0x89FA, 0x89C3, 0x8991, 0x8963, 0x893A, +- 0x8917, 0x88FB, 0x88E6, 0x88D8, 0x88D4, 0x5E7C, 0x5E67, 0x5E5B, +- 0x5E58, 0x5E5E, 0x5E6B, 0x5E7E, 0x5E97, 0x5EB4, 0x5ED6, 0x5EFA, +- 0x5F21, 0x5F48, 0x5F70, 0x5F98, 0x5FBE, 0x5FE2, 0x6002, 0x601F, +- 0x6037, 0x6049, 0x6054, 0x6058, 0x6056, 0x6051, 0x6048, 0x603C, +- 0x602D, 0x601C, 0x6009, 0x5FF4, 0x5FDD, 0x5FC5, 0x5FAC, 0x5F92, +- 0x5F77, 0x5F5D, 0x5F43, 0x5F29, 0x5F10, 0x5EF8, 0x5EE1, 0x5ECC, +- 0x5EB8, 0x5EA7, 0x5E98, 0x5E8C, 0x5E84, 0x5E7E, 0x5E7C, 0xF852, +- 0x1329, 0xC27F, 0xC6F6, 0x7A64, 0x3394, 0x0265, 0xFFEF, 0xFF31, +- 0xCD1B, 0x4D24, 0x01C0, 0x089B, 0x9AAE, 0xD266, 0xD25A, 0xD24E, +- 0xD243, 0xD23A, 0xD231, 0xD229, 0xD222, 0xD21C, 0xD217, 0xD213, +- 0xD20F, 0xD20C, 0xD209, 0xD208, 0xD207, 0xD206, 0xD206, 0xD207, +- 0xD208, 0xD20A, 0xD20C, 0xD20E, 0xD211, 0xD214, 0xD217, 0xD21B, +- 0xD21E, 0xD222, 0xD226, 0xD22B, 0xD22F, 0xD233, 0xD238, 0xD23C, +- 0xD241, 0xD245, 0xD249, 0xD24D, 0xD251, 0xD255, 0xD258, 0xD25B, +- 0xD25E, 0xD260, 0xD262, 0xD264, 0xD265, 0xD266, 0xD266, 0x4224, +- 0x4244, 0x4261, 0x427C, 0x4294, 0x42AA, 0x42BD, 0x42CE, 0x42DD, +- 0x42EB, 0x42F6, 0x42FF, 0x4307, 0x430C, 0x4311, 0x4313, 0x4314, +- 0x4314, 0x4313, 0x4310, 0x430C, 0x4307, 0x4301, 0x42FA, 0x42F3, +- 0x42EB, 0x42E2, 0x42D8, 0x42CE, 0x42C4, 0x42B9, 0x42AF, 0x42A4, +- 0x4298, 0x428E, 0x4283, 0x4278, 0x426D, 0x4263, 0x425A, 0x4251, +- 0x4248, 0x4240, 0x4239, 0x4233, 0x422E, 0x422A, 0x4227, 0x4225, +- 0x4224, 0xD9F3, 0xD9F2, 0xD9F1, 0xD9F0, 0xD9EF, 0xD9EE, 0xD9EE, +- 0xD9ED, 0xD9ED, 0xD9EC, 0xD9EC, 0xD9EC, 0xD9EB, 0xD9EB, 0xD9EB, +- 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, +- 0xD9EC, 0xD9EC, 0xD9EC, 0xD9ED, 0xD9ED, 0xD9ED, 0xD9EE, 0xD9EE, +- 0xD9EE, 0xD9EF, 0xD9EF, 0xD9EF, 0xD9F0, 0xD9F0, 0xD9F1, 0xD9F1, +- 0xD9F1, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F3, 0xD9F3, 0xD9F3, +- 0xD9F3, 0xD9F3, 0xD9F3, 0x087E, 0x0877, 0x0872, 0x086C, 0x0867, +- 0x0863, 0x085F, 0x085C, 0x0859, 0x0856, 0x0854, 0x0852, 0x0850, +- 0x084F, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084F, +- 0x0850, 0x0851, 0x0853, 0x0854, 0x0856, 0x0858, 0x085A, 0x085C, +- 0x085E, 0x0860, 0x0862, 0x0864, 0x0866, 0x0869, 0x086B, 0x086D, +- 0x086F, 0x0871, 0x0873, 0x0875, 0x0876, 0x0878, 0x0879, 0x087B, +- 0x087C, 0x087D, 0x087D, 0x087E, 0x087E, 0xC0C7, 0xC0C2, 0xC0BD, +- 0xC0B9, 0xC0B5, 0xC0B2, 0xC0AF, 0xC0AC, 0xC0AA, 0xC0A8, 0xC0A6, +- 0xC0A5, 0xC0A4, 0xC0A3, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, +- 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, 0xC0A9, +- 0xC0AB, 0xC0AC, 0xC0AE, 0xC0B0, 0xC0B1, 0xC0B3, 0xC0B5, 0xC0B6, +- 0xC0B8, 0xC0BA, 0xC0BB, 0xC0BD, 0xC0BE, 0xC0C0, 0xC0C1, 0xC0C2, +- 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, 0xC0C6, 0xC0C6, 0xC0C7, 0x9527, +- 0x5D21, 0x475E, 0xBF5F, 0x90C1, 0x7987, 0x4B8C, 0xBF5F, 0xFC93, +- 0xFCF2, 0xFD46, 0xFD8E, 0xFDCB, 0xFDFF, 0xFE29, 0xFE4B, 0xFE65, +- 0xFE78, 0xFE84, 0xFE8B, 0xFE8C, 0xFE89, 0xFE83, 0xFE79, 0xFE6D, +- 0xFE60, 0xFE51, 0xFE42, 0xFE34, 0xFE26, 0xFE1B, 0xFE12, 0xFE0C, +- 0xFE09, 0xFE08, 0xFE05, 0xFE00, 0xFDF9, 0xFDF1, 0xFDE6, 0xFDDB, +- 0xFDCD, 0xFDBF, 0xFDAF, 0xFD9E, 0xFD8D, 0xFD7A, 0xFD67, 0xFD53, +- 0xFD3E, 0xFD29, 0xFD14, 0xFCFE, 0xFCE8, 0xFCD3, 0xFCBD, 0xFCA8, +- 0xFC93, 0xFCBF, 0xFCD5, 0xFCE8, 0xFCF8, 0xFD07, 0xFD13, 0xFD1D, +- 0xFD26, 0xFD2C, 0xFD32, 0xFD35, 0xFD38, 0xFD39, 0xFD3A, 0xFD39, +- 0xFD38, 0xFD37, 0xFD35, 0xFD32, 0xFD30, 0xFD2D, 0xFD2B, 0xFD29, +- 0xFD27, 0xFD26, 0xFD26, 0xFD25, 0xFD23, 0xFD21, 0xFD1D, 0xFD19, +- 0xFD14, 0xFD0E, 0xFD08, 0xFD01, 0xFCFB, 0xFCF4, 0xFCED, 0xFCE6, +- 0xFCE0, 0xFCD9, 0xFCD3, 0xFCCE, 0xFCC9, 0xFCC5, 0xFCC2, 0xFCBF, +- 0xFCBE, 0xFCBE, 0xFCBF, 0x1A73, 0x1AA2, 0x1AD7, 0x1B12, 0x1B50, +- 0x1B92, 0x1BD8, 0x1C20, 0x1C69, 0x1CB4, 0x1D00, 0x1D4B, 0x1D95, +- 0x1DDE, 0x1E25, 0x1E6A, 0x1EAA, 0x1EE7, 0x1F1F, 0x1F52, 0x1F7E, +- 0x1FA5, 0x1FC3, 0x1FDA, 0x1FE8, 0x1FED, 0x1FE6, 0x1FD0, 0x1FAF, +- 0x1F81, 0x1F4A, 0x1F0A, 0x1EC3, 0x1E76, 0x1E24, 0x1DCE, 0x1D75, +- 0x1D1C, 0x1CC3, 0x1C6C, 0x1C18, 0x1BC7, 0x1B7C, 0x1B38, 0x1AFC, +- 0x1AC9, 0x1AA0, 0x1A84, 0x1A74, 0x1A73, 0x1603, 0x15DB, 0x15AC, +- 0x1577, 0x153E, 0x1500, 0x14BE, 0x1479, 0x1432, 0x13EA, 0x13A0, +- 0x1357, 0x130D, 0x12C5, 0x127F, 0x123B, 0x11FA, 0x11BE, 0x1186, +- 0x1153, 0x1126, 0x1100, 0x10E1, 0x10CA, 0x10BB, 0x10B6, 0x10BD, +- 0x10CE, 0x10EB, 0x1111, 0x1140, 0x1177, 0x11B5, 0x11F8, 0x1240, +- 0x128B, 0x12DA, 0x132A, 0x137A, 0x13CB, 0x141A, 0x1467, 0x14B0, +- 0x14F6, 0x1536, 0x156F, 0x15A2, 0x15CC, 0x15ED, 0x1603, 0xFC95, +- 0xFC77, 0xFC58, 0xFC37, 0xFC16, 0xFBF5, 0xFBD3, 0xFBB1, 0xFB90, +- 0xFB6E, 0xFB4D, 0xFB2D, 0xFB0D, 0xFAEF, 0xFAD2, 0xFAB6, 0xFA9D, +- 0xFA85, 0xFA6F, 0xFA5B, 0xFA4A, 0xFA3B, 0xFA30, 0xFA27, 0xFA22, +- 0xFA20, 0xFA23, 0xFA2B, 0xFA39, 0xFA4B, 0xFA61, 0xFA7A, 0xFA97, +- 0xFAB7, 0xFAD8, 0xFAFC, 0xFB20, 0xFB45, 0xFB6B, 0xFB91, 0xFBB5, +- 0xFBD9, 0xFBFB, 0xFC1B, 0xFC39, 0xFC53, 0xFC6A, 0xFC7D, 0xFC8B, +- 0xFC95, 0x1A0F, 0x1A21, 0x1A2D, 0x1A32, 0x1A32, 0x1A2C, 0x1A21, +- 0x1A12, 0x19FF, 0x19E9, 0x19D0, 0x19B5, 0x1998, 0x197A, 0x195C, +- 0x193D, 0x191F, 0x1902, 0x18E6, 0x18CD, 0x18B5, 0x18A1, 0x1891, +- 0x1884, 0x187C, 0x187A, 0x187B, 0x187E, 0x1884, 0x188C, 0x1896, +- 0x18A2, 0x18AF, 0x18BE, 0x18CE, 0x18E0, 0x18F3, 0x1906, 0x191B, +- 0x1930, 0x1946, 0x195C, 0x1973, 0x198A, 0x19A1, 0x19B8, 0x19CE, +- 0x19E4, 0x19FA, 0x1A0F, 0xB079, 0x3A85, 0xEE75, ++ 0x0000, 0x0037, 0xFFFF, 0xCA66, 0x3A0A, 0x0A67, 0xFFFF, 0x0000, 0x40A1, ++ 0x0A33, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, ++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, ++ 0x0A3E, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, ++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, ++ 0x0A3E, 0x0A33, 0xE452, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, ++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, ++ 0xE439, 0xE446, 0xE44F, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, ++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, ++ 0xE439, 0xE446, 0xE44F, 0xE452, 0x065A, 0x065A, 0x0649, 0x061D, 0x05E1, ++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, ++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0x0649, 0x061D, 0x05E1, ++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, ++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0xFB38, 0xFB38, 0xFB46, ++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, ++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xFB46, ++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, ++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xF33B, ++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, ++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, ++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, ++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, ++ 0xF33B, 0x0FDF, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, ++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, ++ 0x0FF9, 0x0FE6, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, ++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, ++ 0x0FF9, 0x0FE6, 0x0FDF, 0xF36A, 0x01A8, 0xC19C, 0x0533, 0xD73E, 0xDDCD, ++ 0xE76B, 0x0967, 0xAD9A, 0x2A82, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, ++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, ++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, ++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, ++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0xDB54, 0xDB54, 0xDB9B, 0xDC53, ++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, ++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xDB9B, 0xDC53, ++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, ++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xFE93, 0xFE93, ++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, ++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, ++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, ++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, ++ 0xFA28, 0x0137, 0xC156, 0x91A5, 0x1E55, 0x2507, 0x1D5B, 0xF634, 0xB07A, ++ 0x5007, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, ++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, ++ 0x4FEC, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, ++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, ++ 0x4FEC, 0x5007, 0x28B8, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, ++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, ++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, ++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, ++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x1C49, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, ++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, ++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, ++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, ++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0xFFFF, 0xFFFF, 0xBF5E, ++ 0xDDD8, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, ++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, ++ 0xDDDB, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, ++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, ++ 0xDDDB, 0xDDD8, 0xF944, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, ++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, ++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, ++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, ++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xD92F, 0xD92F, 0xD92D, 0xD928, 0xD922, ++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, ++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0xD92D, 0xD928, 0xD922, ++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, ++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0x3961, 0x11DA, 0x47B7, ++ 0xDEDB, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, ++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, ++ 0xDEE8, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, ++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, ++ 0xDEE8, 0xDEDB, 0xD800, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, ++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, ++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, ++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, ++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xDA15, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, ++ 0xD7E2, 0xD72C, 0xD6A8, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, ++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, ++ 0xD7E2, 0xD72C, 0xD6A7, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, ++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0x0172, 0xF7F6, 0xBF33, ++ 0xE901, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, ++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, ++ 0xE900, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, ++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, ++ 0xE900, 0xE901, 0xDF63, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, ++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, ++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, ++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, ++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xC548, 0xC548, 0xC546, 0xC543, 0xC53E, ++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, ++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0xC546, 0xC543, 0xC53E, ++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, ++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0x02C3, 0x02C3, 0x0282, ++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, ++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x0282, ++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, ++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x1FC5, ++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, ++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, ++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, ++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, ++ 0x1FC5, 0x2122, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, ++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, ++ 0x20A1, 0x20FF, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, ++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, ++ 0x20A1, 0x20FF, 0x2122, 0x013C, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, ++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, ++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, ++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, ++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0xE47C, 0xE47C, 0xE510, 0xE69E, ++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, ++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xE510, 0xE69E, ++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, ++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xCC12, 0xCC12, ++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, ++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, ++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, ++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, + }; + +diff --git a/assets/anims/anim_87.inc.c.rej b/assets/anims/anim_87.inc.c.rej +new file mode 100644 +index 0000000..f9e3a95 +--- /dev/null ++++ b/assets/anims/anim_87.inc.c.rej +@@ -0,0 +1,269 @@ ++diff a/assets/anims/anim_87.inc.c b/assets/anims/anim_87.inc.c (rejected hunks) ++@@ -3,7 +3,7 @@ static const struct Animation anim_87[] = { ++ 189, ++ 0, ++ 0, ++- 0x32, +++ 37, ++ ANIMINDEX_NUMPARTS(anim_87_indices), ++ anim_87_values, ++ anim_87_indices, ++@@ -12,126 +12,140 @@ static const struct Animation anim_87[] = { ++ ++ ++ static const u16 anim_87_indices[] = { ++- 0x0001, 0x0000, 0x0032, 0x0001, 0x0001, 0x0033, 0x0001, 0x0000, 0x0001, 0x0034, 0x0001, 0x0000, ++- 0x0001, 0x030B, 0x0001, 0x030C, 0x0001, 0x030D, ++- 0x0032, 0x0275, 0x0032, 0x02A7, 0x0032, 0x02D9, ++- 0x0032, 0x01DF, 0x0032, 0x0211, 0x0032, 0x0243, ++- 0x0001, 0x01DB, 0x0001, 0x01DC, 0x0001, 0x01DD, ++- 0x0032, 0x0039, 0x0032, 0x006B, 0x0032, 0x009D, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0038, ++- 0x0001, 0x0035, 0x0001, 0x0036, 0x0001, 0x0037, ++- 0x0001, 0x01D7, 0x0001, 0x01D8, 0x0001, 0x01D9, ++- 0x0001, 0x00D3, 0x0001, 0x00D4, 0x0001, 0x00D5, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D2, ++- 0x0001, 0x00CF, 0x0001, 0x00D0, 0x0001, 0x00D1, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DA, ++- 0x0032, 0x0141, 0x0032, 0x0173, 0x0032, 0x01A5, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x010F, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0032, 0x00DD, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x01DE, ++- 0x0001, 0x00DA, 0x0001, 0x00DB, 0x0001, 0x00DC, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00D9, ++- 0x0001, 0x00D6, 0x0001, 0x00D7, 0x0001, 0x00D8, +++ 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, +++ 0x0004, 0x0001, 0x0005, 0x0001, 0x0006, 0x0001, 0x0007, 0x0001, 0x0008, +++ 0x0026, 0x0009, 0x0026, 0x002F, 0x0026, 0x0055, 0x0026, 0x007B, 0x0026, +++ 0x00A1, 0x0026, 0x00C7, 0x0001, 0x00ED, 0x0001, 0x00EE, 0x0001, 0x00EF, +++ 0x0001, 0x00F0, 0x0001, 0x00F1, 0x0001, 0x00F2, 0x0001, 0x00F3, 0x0001, +++ 0x00F4, 0x0001, 0x00F5, 0x0026, 0x00F6, 0x0026, 0x011C, 0x0026, 0x0142, +++ 0x0001, 0x0168, 0x0001, 0x0169, 0x0001, 0x016A, 0x0001, 0x016B, 0x0001, +++ 0x016C, 0x0001, 0x016D, 0x0001, 0x016E, 0x0001, 0x016F, 0x0001, 0x0170, +++ 0x0026, 0x0171, 0x0026, 0x0197, 0x0026, 0x01BD, 0x0001, 0x01E3, 0x0001, +++ 0x01E4, 0x0001, 0x01E5, 0x0026, 0x01E6, 0x0026, 0x020C, 0x0026, 0x0232, +++ 0x0001, 0x0258, 0x0001, 0x0259, 0x0001, 0x025A, 0x0026, 0x025B, 0x0026, +++ 0x0281, 0x0026, 0x02A7, 0x0001, 0x02CD, 0x0001, 0x02CE, 0x0001, 0x02CF, +++ 0x0026, 0x02D0, 0x0026, 0x02F6, 0x0026, 0x031C, 0x0026, 0x0342, 0x0026, +++ 0x0368, 0x0026, 0x038E, 0x0026, 0x03B4, 0x0026, 0x03DA, 0x0026, 0x0400, ++ }; ++ ++ static const s16 anim_87_values[] = { ++- 0x0000, 0x0066, 0x0066, 0x0066, 0x0067, 0x0067, 0x0067, 0x0067, ++- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, ++- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, ++- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, ++- 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0066, ++- 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, ++- 0x0066, 0x0066, 0x0066, 0xFF5A, 0x3FFF, 0xF772, 0xF00D, 0xE2ED, ++- 0xC0C8, 0x7347, 0x7389, 0x73BB, 0x73E0, 0x73F7, 0x7402, 0x7403, ++- 0x73FA, 0x73E9, 0x73D1, 0x73B3, 0x7390, 0x736B, 0x7343, 0x731A, ++- 0x72F1, 0x72CA, 0x72A5, 0x7285, 0x7269, 0x7254, 0x7247, 0x7242, ++- 0x7243, 0x7246, 0x724B, 0x7251, 0x7259, 0x7263, 0x726D, 0x7279, ++- 0x7286, 0x7293, 0x72A1, 0x72AF, 0x72BD, 0x72CC, 0x72DA, 0x72E8, ++- 0x72F6, 0x7303, 0x7310, 0x731B, 0x7326, 0x732F, 0x7338, 0x733E, ++- 0x7343, 0x7346, 0x7347, 0x88D4, 0x8871, 0x882F, 0x880A, 0x8800, ++- 0x880F, 0x8833, 0x886A, 0x88B1, 0x8905, 0x8964, 0x89CC, 0x8A38, ++- 0x8AA7, 0x8B16, 0x8B82, 0x8BE8, 0x8C47, 0x8C9A, 0x8CDF, 0x8D14, ++- 0x8D36, 0x8D41, 0x8D3D, 0x8D30, 0x8D1B, 0x8CFE, 0x8CDB, 0x8CB2, ++- 0x8C84, 0x8C52, 0x8C1C, 0x8BE2, 0x8BA6, 0x8B69, 0x8B2A, 0x8AEB, ++- 0x8AAD, 0x8A6F, 0x8A33, 0x89FA, 0x89C3, 0x8991, 0x8963, 0x893A, ++- 0x8917, 0x88FB, 0x88E6, 0x88D8, 0x88D4, 0x5E7C, 0x5E67, 0x5E5B, ++- 0x5E58, 0x5E5E, 0x5E6B, 0x5E7E, 0x5E97, 0x5EB4, 0x5ED6, 0x5EFA, ++- 0x5F21, 0x5F48, 0x5F70, 0x5F98, 0x5FBE, 0x5FE2, 0x6002, 0x601F, ++- 0x6037, 0x6049, 0x6054, 0x6058, 0x6056, 0x6051, 0x6048, 0x603C, ++- 0x602D, 0x601C, 0x6009, 0x5FF4, 0x5FDD, 0x5FC5, 0x5FAC, 0x5F92, ++- 0x5F77, 0x5F5D, 0x5F43, 0x5F29, 0x5F10, 0x5EF8, 0x5EE1, 0x5ECC, ++- 0x5EB8, 0x5EA7, 0x5E98, 0x5E8C, 0x5E84, 0x5E7E, 0x5E7C, 0xF852, ++- 0x1329, 0xC27F, 0xC6F6, 0x7A64, 0x3394, 0x0265, 0xFFEF, 0xFF31, ++- 0xCD1B, 0x4D24, 0x01C0, 0x089B, 0x9AAE, 0xD266, 0xD25A, 0xD24E, ++- 0xD243, 0xD23A, 0xD231, 0xD229, 0xD222, 0xD21C, 0xD217, 0xD213, ++- 0xD20F, 0xD20C, 0xD209, 0xD208, 0xD207, 0xD206, 0xD206, 0xD207, ++- 0xD208, 0xD20A, 0xD20C, 0xD20E, 0xD211, 0xD214, 0xD217, 0xD21B, ++- 0xD21E, 0xD222, 0xD226, 0xD22B, 0xD22F, 0xD233, 0xD238, 0xD23C, ++- 0xD241, 0xD245, 0xD249, 0xD24D, 0xD251, 0xD255, 0xD258, 0xD25B, ++- 0xD25E, 0xD260, 0xD262, 0xD264, 0xD265, 0xD266, 0xD266, 0x4224, ++- 0x4244, 0x4261, 0x427C, 0x4294, 0x42AA, 0x42BD, 0x42CE, 0x42DD, ++- 0x42EB, 0x42F6, 0x42FF, 0x4307, 0x430C, 0x4311, 0x4313, 0x4314, ++- 0x4314, 0x4313, 0x4310, 0x430C, 0x4307, 0x4301, 0x42FA, 0x42F3, ++- 0x42EB, 0x42E2, 0x42D8, 0x42CE, 0x42C4, 0x42B9, 0x42AF, 0x42A4, ++- 0x4298, 0x428E, 0x4283, 0x4278, 0x426D, 0x4263, 0x425A, 0x4251, ++- 0x4248, 0x4240, 0x4239, 0x4233, 0x422E, 0x422A, 0x4227, 0x4225, ++- 0x4224, 0xD9F3, 0xD9F2, 0xD9F1, 0xD9F0, 0xD9EF, 0xD9EE, 0xD9EE, ++- 0xD9ED, 0xD9ED, 0xD9EC, 0xD9EC, 0xD9EC, 0xD9EB, 0xD9EB, 0xD9EB, ++- 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, 0xD9EB, ++- 0xD9EC, 0xD9EC, 0xD9EC, 0xD9ED, 0xD9ED, 0xD9ED, 0xD9EE, 0xD9EE, ++- 0xD9EE, 0xD9EF, 0xD9EF, 0xD9EF, 0xD9F0, 0xD9F0, 0xD9F1, 0xD9F1, ++- 0xD9F1, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F2, 0xD9F3, 0xD9F3, 0xD9F3, ++- 0xD9F3, 0xD9F3, 0xD9F3, 0x087E, 0x0877, 0x0872, 0x086C, 0x0867, ++- 0x0863, 0x085F, 0x085C, 0x0859, 0x0856, 0x0854, 0x0852, 0x0850, ++- 0x084F, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084E, 0x084F, ++- 0x0850, 0x0851, 0x0853, 0x0854, 0x0856, 0x0858, 0x085A, 0x085C, ++- 0x085E, 0x0860, 0x0862, 0x0864, 0x0866, 0x0869, 0x086B, 0x086D, ++- 0x086F, 0x0871, 0x0873, 0x0875, 0x0876, 0x0878, 0x0879, 0x087B, ++- 0x087C, 0x087D, 0x087D, 0x087E, 0x087E, 0xC0C7, 0xC0C2, 0xC0BD, ++- 0xC0B9, 0xC0B5, 0xC0B2, 0xC0AF, 0xC0AC, 0xC0AA, 0xC0A8, 0xC0A6, ++- 0xC0A5, 0xC0A4, 0xC0A3, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, 0xC0A2, ++- 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, 0xC0A9, ++- 0xC0AB, 0xC0AC, 0xC0AE, 0xC0B0, 0xC0B1, 0xC0B3, 0xC0B5, 0xC0B6, ++- 0xC0B8, 0xC0BA, 0xC0BB, 0xC0BD, 0xC0BE, 0xC0C0, 0xC0C1, 0xC0C2, ++- 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, 0xC0C6, 0xC0C6, 0xC0C7, 0x9527, ++- 0x5D21, 0x475E, 0xBF5F, 0x90C1, 0x7987, 0x4B8C, 0xBF5F, 0xFC93, ++- 0xFCF2, 0xFD46, 0xFD8E, 0xFDCB, 0xFDFF, 0xFE29, 0xFE4B, 0xFE65, ++- 0xFE78, 0xFE84, 0xFE8B, 0xFE8C, 0xFE89, 0xFE83, 0xFE79, 0xFE6D, ++- 0xFE60, 0xFE51, 0xFE42, 0xFE34, 0xFE26, 0xFE1B, 0xFE12, 0xFE0C, ++- 0xFE09, 0xFE08, 0xFE05, 0xFE00, 0xFDF9, 0xFDF1, 0xFDE6, 0xFDDB, ++- 0xFDCD, 0xFDBF, 0xFDAF, 0xFD9E, 0xFD8D, 0xFD7A, 0xFD67, 0xFD53, ++- 0xFD3E, 0xFD29, 0xFD14, 0xFCFE, 0xFCE8, 0xFCD3, 0xFCBD, 0xFCA8, ++- 0xFC93, 0xFCBF, 0xFCD5, 0xFCE8, 0xFCF8, 0xFD07, 0xFD13, 0xFD1D, ++- 0xFD26, 0xFD2C, 0xFD32, 0xFD35, 0xFD38, 0xFD39, 0xFD3A, 0xFD39, ++- 0xFD38, 0xFD37, 0xFD35, 0xFD32, 0xFD30, 0xFD2D, 0xFD2B, 0xFD29, ++- 0xFD27, 0xFD26, 0xFD26, 0xFD25, 0xFD23, 0xFD21, 0xFD1D, 0xFD19, ++- 0xFD14, 0xFD0E, 0xFD08, 0xFD01, 0xFCFB, 0xFCF4, 0xFCED, 0xFCE6, ++- 0xFCE0, 0xFCD9, 0xFCD3, 0xFCCE, 0xFCC9, 0xFCC5, 0xFCC2, 0xFCBF, ++- 0xFCBE, 0xFCBE, 0xFCBF, 0x1A73, 0x1AA2, 0x1AD7, 0x1B12, 0x1B50, ++- 0x1B92, 0x1BD8, 0x1C20, 0x1C69, 0x1CB4, 0x1D00, 0x1D4B, 0x1D95, ++- 0x1DDE, 0x1E25, 0x1E6A, 0x1EAA, 0x1EE7, 0x1F1F, 0x1F52, 0x1F7E, ++- 0x1FA5, 0x1FC3, 0x1FDA, 0x1FE8, 0x1FED, 0x1FE6, 0x1FD0, 0x1FAF, ++- 0x1F81, 0x1F4A, 0x1F0A, 0x1EC3, 0x1E76, 0x1E24, 0x1DCE, 0x1D75, ++- 0x1D1C, 0x1CC3, 0x1C6C, 0x1C18, 0x1BC7, 0x1B7C, 0x1B38, 0x1AFC, ++- 0x1AC9, 0x1AA0, 0x1A84, 0x1A74, 0x1A73, 0x1603, 0x15DB, 0x15AC, ++- 0x1577, 0x153E, 0x1500, 0x14BE, 0x1479, 0x1432, 0x13EA, 0x13A0, ++- 0x1357, 0x130D, 0x12C5, 0x127F, 0x123B, 0x11FA, 0x11BE, 0x1186, ++- 0x1153, 0x1126, 0x1100, 0x10E1, 0x10CA, 0x10BB, 0x10B6, 0x10BD, ++- 0x10CE, 0x10EB, 0x1111, 0x1140, 0x1177, 0x11B5, 0x11F8, 0x1240, ++- 0x128B, 0x12DA, 0x132A, 0x137A, 0x13CB, 0x141A, 0x1467, 0x14B0, ++- 0x14F6, 0x1536, 0x156F, 0x15A2, 0x15CC, 0x15ED, 0x1603, 0xFC95, ++- 0xFC77, 0xFC58, 0xFC37, 0xFC16, 0xFBF5, 0xFBD3, 0xFBB1, 0xFB90, ++- 0xFB6E, 0xFB4D, 0xFB2D, 0xFB0D, 0xFAEF, 0xFAD2, 0xFAB6, 0xFA9D, ++- 0xFA85, 0xFA6F, 0xFA5B, 0xFA4A, 0xFA3B, 0xFA30, 0xFA27, 0xFA22, ++- 0xFA20, 0xFA23, 0xFA2B, 0xFA39, 0xFA4B, 0xFA61, 0xFA7A, 0xFA97, ++- 0xFAB7, 0xFAD8, 0xFAFC, 0xFB20, 0xFB45, 0xFB6B, 0xFB91, 0xFBB5, ++- 0xFBD9, 0xFBFB, 0xFC1B, 0xFC39, 0xFC53, 0xFC6A, 0xFC7D, 0xFC8B, ++- 0xFC95, 0x1A0F, 0x1A21, 0x1A2D, 0x1A32, 0x1A32, 0x1A2C, 0x1A21, ++- 0x1A12, 0x19FF, 0x19E9, 0x19D0, 0x19B5, 0x1998, 0x197A, 0x195C, ++- 0x193D, 0x191F, 0x1902, 0x18E6, 0x18CD, 0x18B5, 0x18A1, 0x1891, ++- 0x1884, 0x187C, 0x187A, 0x187B, 0x187E, 0x1884, 0x188C, 0x1896, ++- 0x18A2, 0x18AF, 0x18BE, 0x18CE, 0x18E0, 0x18F3, 0x1906, 0x191B, ++- 0x1930, 0x1946, 0x195C, 0x1973, 0x198A, 0x19A1, 0x19B8, 0x19CE, ++- 0x19E4, 0x19FA, 0x1A0F, 0xB079, 0x3A85, 0xEE75, +++ 0x0000, 0x0037, 0xFFFF, 0xCA66, 0x3A0A, 0x0A67, 0xFFFF, 0x0000, 0x40A1, +++ 0x0A33, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, +++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, +++ 0x0A3E, 0x0A33, 0x0A4E, 0x0A92, 0x0AEF, 0x0B54, 0x0BB1, 0x0BF5, 0x0C10, +++ 0x0C05, 0x0BE6, 0x0BB9, 0x0B81, 0x0B42, 0x0B01, 0x0AC2, 0x0A8A, 0x0A5D, +++ 0x0A3E, 0x0A33, 0xE452, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, +++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, +++ 0xE439, 0xE446, 0xE44F, 0xE452, 0xE44A, 0xE436, 0xE41B, 0xE3FE, 0xE3E3, +++ 0xE3CF, 0xE3C7, 0xE3CB, 0xE3D3, 0xE3E1, 0xE3F1, 0xE403, 0xE416, 0xE428, +++ 0xE439, 0xE446, 0xE44F, 0xE452, 0x065A, 0x065A, 0x0649, 0x061D, 0x05E1, +++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, +++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0x0649, 0x061D, 0x05E1, +++ 0x059F, 0x0563, 0x0537, 0x0526, 0x052D, 0x0541, 0x055E, 0x0583, 0x05AB, +++ 0x05D5, 0x05FD, 0x0622, 0x063F, 0x0653, 0x065A, 0xFB38, 0xFB38, 0xFB46, +++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, +++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xFB46, +++ 0xFB6B, 0xFB9F, 0xFBDB, 0xFC17, 0xFC4B, 0xFC70, 0xFC7E, 0xFC75, 0xFC5C, +++ 0xFC37, 0xFC0B, 0xFBDB, 0xFBAB, 0xFB7F, 0xFB5A, 0xFB41, 0xFB38, 0xF33B, +++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, +++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, +++ 0xF33B, 0xF32F, 0xF311, 0xF2E5, 0xF2B4, 0xF282, 0xF256, 0xF238, 0xF22C, +++ 0xF234, 0xF248, 0xF267, 0xF28B, 0xF2B4, 0xF2DC, 0xF301, 0xF31F, 0xF333, +++ 0xF33B, 0x0FDF, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, +++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, +++ 0x0FF9, 0x0FE6, 0x0FDF, 0x0FE9, 0x1006, 0x102E, 0x105C, 0x108A, 0x10B2, +++ 0x10CE, 0x10D9, 0x10D2, 0x10BF, 0x10A3, 0x1081, 0x105C, 0x1037, 0x1015, +++ 0x0FF9, 0x0FE6, 0x0FDF, 0xF36A, 0x01A8, 0xC19C, 0x0533, 0xD73E, 0xDDCD, +++ 0xE76B, 0x0967, 0xAD9A, 0x2A82, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, +++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, +++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0x2A24, 0x2930, 0x27E3, 0x2678, +++ 0x252B, 0x2438, 0x23D9, 0x2401, 0x246E, 0x2511, 0x25DA, 0x26BA, 0x27A2, +++ 0x2882, 0x294B, 0x29EE, 0x2A5A, 0x2A82, 0xDB54, 0xDB54, 0xDB9B, 0xDC53, +++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, +++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xDB9B, 0xDC53, +++ 0xDD4D, 0xDE5E, 0xDF59, 0xE010, 0xE057, 0xE039, 0xDFE7, 0xDF6D, 0xDED6, +++ 0xDE2D, 0xDD7F, 0xDCD6, 0xDC3F, 0xDBC4, 0xDB72, 0xDB54, 0xFE93, 0xFE93, +++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, +++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, +++ 0xFEAC, 0xFEEE, 0xFF47, 0xFFA8, 0x0002, 0x0043, 0x005C, 0x0052, 0x0034, +++ 0x0009, 0xFFD2, 0xFF96, 0xFF58, 0xFF1C, 0xFEE6, 0xFEBB, 0xFE9E, 0xFE93, +++ 0xFA28, 0x0137, 0xC156, 0x91A5, 0x1E55, 0x2507, 0x1D5B, 0xF634, 0xB07A, +++ 0x5007, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, +++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, +++ 0x4FEC, 0x5007, 0x4FC6, 0x4F1C, 0x4E35, 0x4D38, 0x4C51, 0x4BA7, 0x4B65, +++ 0x4B81, 0x4BCD, 0x4C3E, 0x4CCA, 0x4D66, 0x4E07, 0x4EA3, 0x4F2F, 0x4FA0, +++ 0x4FEC, 0x5007, 0x28B8, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, +++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, +++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x28A4, 0x2872, 0x282D, 0x27E3, 0x279E, +++ 0x276C, 0x2759, 0x2761, 0x2777, 0x2799, 0x27C2, 0x27F0, 0x2820, 0x284E, +++ 0x2877, 0x2899, 0x28AF, 0x28B8, 0x1C49, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, +++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, +++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0x1C1E, 0x1BB0, 0x1B19, +++ 0x1A74, 0x19DE, 0x196F, 0x1944, 0x1956, 0x1988, 0x19D1, 0x1A2D, 0x1A92, +++ 0x1AFB, 0x1B61, 0x1BBC, 0x1C06, 0x1C37, 0x1C49, 0xFFFF, 0xFFFF, 0xBF5E, +++ 0xDDD8, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, +++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, +++ 0xDDDB, 0xDDD8, 0xDDE0, 0xDDF4, 0xDE10, 0xDE2F, 0xDE4B, 0xDE60, 0xDE68, +++ 0xDE64, 0xDE5B, 0xDE4D, 0xDE3C, 0xDE29, 0xDE16, 0xDE03, 0xDDF2, 0xDDE4, +++ 0xDDDB, 0xDDD8, 0xF944, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, +++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, +++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xF954, 0xF97B, 0xF9B1, 0xF9EC, 0xFA22, +++ 0xFA49, 0xFA59, 0xFA52, 0xFA41, 0xFA26, 0xFA06, 0xF9E1, 0xF9BC, 0xF997, +++ 0xF977, 0xF95C, 0xF94B, 0xF944, 0xD92F, 0xD92F, 0xD92D, 0xD928, 0xD922, +++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, +++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0xD92D, 0xD928, 0xD922, +++ 0xD91B, 0xD914, 0xD910, 0xD90E, 0xD90F, 0xD911, 0xD914, 0xD918, 0xD91C, +++ 0xD921, 0xD925, 0xD929, 0xD92C, 0xD92E, 0xD92F, 0x3961, 0x11DA, 0x47B7, +++ 0xDEDB, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, +++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, +++ 0xDEE8, 0xDEDB, 0xDEFA, 0xDF48, 0xDFB4, 0xE029, 0xE094, 0xE0E3, 0xE101, +++ 0xE0F4, 0xE0D1, 0xE09D, 0xE05C, 0xE014, 0xDFC9, 0xDF81, 0xDF40, 0xDF0B, +++ 0xDEE8, 0xDEDB, 0xD800, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, +++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, +++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xD7E8, 0xD7AC, 0xD759, 0xD6FF, 0xD6AC, +++ 0xD670, 0xD659, 0xD662, 0xD67D, 0xD6A6, 0xD6D8, 0xD70F, 0xD749, 0xD780, +++ 0xD7B2, 0xD7DB, 0xD7F6, 0xD800, 0xDA15, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, +++ 0xD7E2, 0xD72C, 0xD6A8, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, +++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0xD9E1, 0xD95D, 0xD8A7, +++ 0xD7E2, 0xD72C, 0xD6A7, 0xD674, 0xD68A, 0xD6C5, 0xD71E, 0xD78B, 0xD805, +++ 0xD884, 0xD8FE, 0xD96B, 0xD9C4, 0xD9FF, 0xDA15, 0x0172, 0xF7F6, 0xBF33, +++ 0xE901, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, +++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, +++ 0xE900, 0xE901, 0xE900, 0xE900, 0xE900, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FE, +++ 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE8FF, 0xE900, 0xE900, 0xE900, 0xE900, +++ 0xE900, 0xE901, 0xDF63, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, +++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, +++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xDF69, 0xDF79, 0xDF8F, 0xDFA7, 0xDFBC, +++ 0xDFCC, 0xDFD2, 0xDFD0, 0xDFC8, 0xDFBE, 0xDFB1, 0xDFA2, 0xDF93, 0xDF85, +++ 0xDF78, 0xDF6D, 0xDF66, 0xDF63, 0xC548, 0xC548, 0xC546, 0xC543, 0xC53E, +++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, +++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0xC546, 0xC543, 0xC53E, +++ 0xC539, 0xC534, 0xC530, 0xC52F, 0xC52F, 0xC531, 0xC533, 0xC536, 0xC539, +++ 0xC53D, 0xC540, 0xC543, 0xC546, 0xC547, 0xC548, 0x02C3, 0x02C3, 0x0282, +++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, +++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x0282, +++ 0x01DC, 0x00FA, 0x0002, 0xFF1E, 0xFE79, 0xFE38, 0xFE53, 0xFE9D, 0xFF0C, +++ 0xFF95, 0x002F, 0x00CD, 0x0166, 0x01EF, 0x025E, 0x02A8, 0x02C3, 0x1FC5, +++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, +++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, +++ 0x1FC5, 0x1F75, 0x1EA7, 0x1D8E, 0x1C5C, 0x1B43, 0x1A76, 0x1A26, 0x1A48, +++ 0x1AA3, 0x1B2D, 0x1BD6, 0x1C94, 0x1D57, 0x1E14, 0x1EBE, 0x1F47, 0x1FA3, +++ 0x1FC5, 0x2122, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, +++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, +++ 0x20A1, 0x20FF, 0x2122, 0x20D0, 0x1FFE, 0x1EDE, 0x1DA5, 0x1C85, 0x1BB3, +++ 0x1B61, 0x1B83, 0x1BE1, 0x1C6E, 0x1D1C, 0x1DDD, 0x1EA5, 0x1F67, 0x2015, +++ 0x20A1, 0x20FF, 0x2122, 0x013C, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, +++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, +++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0x0066, 0xFE26, 0xFAE6, 0xF70C, +++ 0xF2FE, 0xEF23, 0xEBE3, 0xE9A5, 0xE8CE, 0xE9A5, 0xEBE3, 0xEF23, 0xF2FE, +++ 0xF70C, 0xFAE6, 0xFE26, 0x0066, 0x013C, 0xE47C, 0xE47C, 0xE510, 0xE69E, +++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, +++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xE510, 0xE69E, +++ 0xE8DD, 0xEB88, 0xEE56, 0xF100, 0xF33F, 0xF4CD, 0xF561, 0xF4CD, 0xF33F, +++ 0xF100, 0xEE56, 0xEB88, 0xE8DD, 0xE69E, 0xE510, 0xE47C, 0xCC12, 0xCC12, +++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, +++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, +++ 0xCC85, 0xCDBA, 0xCF79, 0xD18B, 0xD3B9, 0xD5CC, 0xD78B, 0xD8C0, 0xD933, +++ 0xD8C0, 0xD78B, 0xD5CC, 0xD3B9, 0xD18B, 0xCF79, 0xCDBA, 0xCC85, 0xCC12, ++ }; ++ +diff --git a/assets/anims/anim_CD.inc.c b/assets/anims/anim_CD.inc.c +index 89172b2..d10bed1 100644 +--- a/assets/anims/anim_CD.inc.c ++++ b/assets/anims/anim_CD.inc.c +@@ -1,9 +1,9 @@ + static const struct Animation anim_CD[] = { +- 1, +- 189, +- 0, +- 0, +- 0x3F, ++ 1, ++ 0, ++ 0, ++ 1, ++ 91, + ANIMINDEX_NUMPARTS(anim_CD_indices), + anim_CD_values, + anim_CD_indices, +@@ -12,352 +12,309 @@ static const struct Animation anim_CD[] = { + + + static const u16 anim_CD_indices[] = { +- 0x003F, 0x0001, 0x003F, 0x0040, 0x003F, 0x007F, 0x0001, 0x0000, 0x0001, 0x00BE, 0x0001, 0x0000, +- 0x003F, 0x0963, 0x003F, 0x09A2, 0x003F, 0x09E1, +- 0x003F, 0x08A6, 0x003F, 0x08E5, 0x003F, 0x0924, +- 0x003F, 0x07E9, 0x003F, 0x0828, 0x003F, 0x0867, +- 0x0001, 0x07E5, 0x0001, 0x07E6, 0x0001, 0x07E7, +- 0x003F, 0x01BB, 0x003F, 0x01FA, 0x003F, 0x0239, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x017C, +- 0x003F, 0x00BF, 0x003F, 0x00FE, 0x003F, 0x013D, +- 0x0001, 0x07A3, 0x0001, 0x07A4, 0x0001, 0x07A5, +- 0x003F, 0x0374, 0x003F, 0x03B3, 0x003F, 0x03F2, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x0335, +- 0x003F, 0x0278, 0x003F, 0x02B7, 0x003F, 0x02F6, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x07A6, +- 0x003F, 0x06E6, 0x003F, 0x0725, 0x003F, 0x0764, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x06A7, +- 0x003F, 0x05EA, 0x003F, 0x0629, 0x003F, 0x0668, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x07E8, +- 0x003F, 0x052D, 0x003F, 0x056C, 0x003F, 0x05AB, +- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x04EE, +- 0x003F, 0x0431, 0x003F, 0x0470, 0x003F, 0x04AF, ++ 0x0001, 0x0000, 0x0029, 0x0001, 0x0001, 0x002A, 0x0029, 0x002B, 0x0033, ++ 0x0054, 0x0013, 0x0087, 0x002C, 0x009A, 0x0032, 0x00C6, 0x0001, 0x00F8, ++ 0x0035, 0x00F9, 0x0035, 0x012E, 0x0036, 0x0163, 0x0029, 0x0199, 0x0029, ++ 0x01C2, 0x0029, 0x01EB, 0x0001, 0x0214, 0x0001, 0x0215, 0x0001, 0x0216, ++ 0x0029, 0x0217, 0x0029, 0x0240, 0x0029, 0x0269, 0x0029, 0x0292, 0x0029, ++ 0x02BB, 0x0029, 0x02E4, 0x0029, 0x030D, 0x0029, 0x0336, 0x0029, 0x035F, ++ 0x001A, 0x0388, 0x001A, 0x03A2, 0x001A, 0x03BC, 0x0029, 0x03D6, 0x0029, ++ 0x03FF, 0x0029, 0x0428, 0x005A, 0x0451, 0x005A, 0x04AB, 0x005A, 0x0505, ++ 0x005C, 0x055F, 0x005C, 0x05BB, 0x005C, 0x0617, 0x0021, 0x0673, 0x0020, ++ 0x0694, 0x0021, 0x06B4, 0x0021, 0x06D5, 0x0021, 0x06F6, 0x0021, 0x0717, ++ 0x0029, 0x0738, 0x0029, 0x0761, 0x0029, 0x078A, 0x0029, 0x07B3, 0x0029, ++ 0x07DC, 0x0029, 0x0805, 0x0032, 0x082E, 0x0030, 0x0860, 0x0001, 0x0890, ++ 0x0029, 0x0891, 0x0029, 0x08BA, 0x0029, 0x08E3, 0x0029, 0x090C, 0x0029, ++ 0x0935, 0x0029, 0x095E, 0x0029, 0x0987, 0x0029, 0x09B0, 0x0029, 0x09D9, + }; + + static const s16 anim_CD_values[] = { +- 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0002, 0x0003, 0x0000, +- 0xFFFA, 0xFFF3, 0xFFE5, 0xFFCB, 0xFFAA, 0xFF8A, 0xFF75, 0xFF75, +- 0xFF79, 0xFF7E, 0xFF82, 0xFF8B, 0xFF9A, 0xFFB5, 0xFFF3, 0xFFFF, +- 0x0000, 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, +- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +- 0x00AA, 0x00A9, 0x00A6, 0x00A2, 0x009F, 0x009C, 0x009C, 0x00B0, +- 0x00C8, 0x00DB, 0x00E5, 0x00EB, 0x00EF, 0x00F2, 0x00F1, 0x00EF, +- 0x00EC, 0x00E7, 0x00DE, 0x00CB, 0x00B7, 0x00AE, 0x00A3, 0x0076, +- 0x007D, 0x0077, 0x0071, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, +- 0x0070, 0x0071, 0x0071, 0x0071, 0x0072, 0x0072, 0x0072, 0x0073, +- 0x0073, 0x0073, 0x0073, 0x0073, 0x0074, 0x0073, 0x0073, 0x0073, +- 0x0073, 0x0073, 0x0073, 0x0072, 0x0072, 0x0072, 0x0072, 0x0071, +- 0x0071, 0x0071, 0x0071, 0x0071, 0x0070, 0x0070, 0x0070, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0004, 0x000A, 0x0014, +- 0x001E, 0x0028, 0x002E, 0x002F, 0x0028, 0x0019, 0x0007, 0xFFF6, +- 0xFFE9, 0xFFE4, 0xFFEC, 0xFFFF, 0x0018, 0x0034, 0x005B, 0x0086, +- 0x00A9, 0x00BC, 0x00BF, 0x00C0, 0x00C2, 0x00C3, 0x00C3, 0x00C3, +- 0x00C3, 0x00C3, 0x00C2, 0x00C2, 0x00C1, 0x00C0, 0x00BF, 0x00BE, +- 0x00BD, 0x00BD, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, +- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, +- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x3FFF, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0012, 0x0044, 0x008D, 0x00E7, 0x0148, 0x01A9, 0x0202, 0x024C, +- 0x027E, 0x0290, 0x027B, 0x0237, 0x01BB, 0x0101, 0x0000, 0xFDFA, +- 0xFA8F, 0xF641, 0xF194, 0xED0C, 0xE92D, 0xE67A, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, +- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, +- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF983, +- 0xF996, 0xF9B3, 0xF9D6, 0xF9FC, 0xFA22, 0xFA45, 0xFA62, 0xFA76, +- 0xFA7D, 0xFA75, 0xFA5A, 0xFA2A, 0xF9E1, 0xF97C, 0xF8B1, 0xF75A, +- 0xF5AA, 0xF3D5, 0xF20F, 0xF08A, 0xEF7C, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, +- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, +- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8E, 0xED96, +- 0xEDA1, 0xEDAE, 0xEDBD, 0xEDCB, 0xEDD9, 0xEDE4, 0xEDEB, 0xEDEE, +- 0xEDEB, 0xEDE1, 0xEDCE, 0xEDB2, 0xED8C, 0xED3E, 0xECBA, 0xEC15, +- 0xEB61, 0xEAB3, 0xEA1E, 0xE9B6, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, +- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xCA4F, 0xCCDE, 0xD36C, 0xDC49, +- 0xE5C8, 0xEE3A, 0xF3F0, 0xF65C, 0xF6A9, 0xF5C1, 0xF48B, 0xF3F0, +- 0xF40B, 0xF441, 0xF469, 0xF45B, 0xF3F0, 0xF348, 0xF29F, 0xF1F3, +- 0xF140, 0xF084, 0xEFBC, 0xEEE6, 0xEDFF, 0xED04, 0xEBF3, 0xEAC9, +- 0xE983, 0xE81F, 0xE413, 0xDE24, 0xD857, 0xD1BA, 0xCAC6, 0xC3F8, +- 0xBDCA, 0xB8B8, 0xB53D, 0xB3D3, 0xB59B, 0xBA9B, 0xC1A7, 0xC994, +- 0xD134, 0xD75C, 0xDAE0, 0xDC7E, 0xDDC0, 0xDEB0, 0xDF55, 0xDFBA, +- 0xDFE7, 0xDFE6, 0xDFBE, 0xDF7A, 0xDF21, 0xDEBE, 0xDE58, 0xDDFA, +- 0xDDAB, 0xDD75, 0xDD62, 0xFB1D, 0xFB8D, 0xFC39, 0xFC27, 0xFA60, +- 0xF5E9, 0xEDCC, 0xDEE3, 0xC966, 0xB168, 0x9AFB, 0x8A34, 0x7F67, +- 0x77E4, 0x7322, 0x709A, 0x6FC7, 0x703C, 0x71C8, 0x743F, 0x7774, +- 0x7B3D, 0x7F6C, 0x83D9, 0x8851, 0x8DBB, 0x948E, 0x9BFE, 0xA341, +- 0xA98B, 0xA98B, 0xB1A9, 0xB96E, 0xC239, 0xCB67, 0xD457, 0xDC66, +- 0xE2F1, 0xE755, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, +- 0xE8F0, 0xE8F0, 0xD2DC, 0xD582, 0xDBEE, 0xE3D8, 0xEAFB, 0xEF0E, +- 0xEDC9, 0xE38C, 0xD18F, 0xBCD5, 0xAA60, 0x9F31, 0x9D39, 0xA120, +- 0xA800, 0xAEEF, 0xB306, 0xB4A0, 0xB5FC, 0xB70A, 0xB7B6, 0xB7F1, +- 0xB7A7, 0xB6C7, 0xB53F, 0xB1FB, 0xACA3, 0xA642, 0x9FE4, 0x9A92, +- 0x9A92, 0xA159, 0xA7D5, 0xAF2D, 0xB6D8, 0xBE4E, 0xC508, 0xCA7F, +- 0xCE29, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, +- 0xCF80, 0xD4B4, 0xD4F4, 0xD5C2, 0xD734, 0xD95D, 0xDC52, 0xE027, +- 0xE5A2, 0xECDD, 0xF4F1, 0xFCF5, 0x0400, 0x0A9B, 0x1160, 0x1785, +- 0x1C3F, 0x1EC2, 0x1F5D, 0x1F01, 0x1DDE, 0x1C23, 0x19FD, 0x179C, +- 0x152D, 0x12E0, 0x1037, 0x0CD9, 0x092D, 0x0596, 0x027B, 0x027B, +- 0xFD63, 0xF883, 0xF2FD, 0xED39, 0xE79C, 0xE28D, 0xDE72, 0xDBB0, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0xFFF7, 0xFFDE, 0xFFB8, 0xFF8B, 0xFF5A, 0xFF28, 0xFEFB, +- 0xFED6, 0xFEBC, 0xFEB3, 0xFEBD, 0xFEE0, 0xFF1F, 0xFF7E, 0x0000, +- 0x009A, 0x0194, 0x036C, 0x06A4, 0x0BBB, 0x1745, 0x2715, 0x318D, +- 0x3284, 0x2F10, 0x2B6E, 0x2BDD, 0x33E4, 0x4074, 0x4BE8, 0x509A, +- 0x4F81, 0x4D72, 0x4A95, 0x4710, 0x430B, 0x3EAD, 0x3A1E, 0x3585, +- 0x3109, 0x2CD1, 0x2906, 0x25CE, 0x2351, 0x21B6, 0x2124, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0xFFF4, 0xFFD2, 0xFFA0, 0xFF62, 0xFF20, 0xFEDE, 0xFEA0, 0xFE6E, +- 0xFE4C, 0xFE3F, 0xFE4E, 0xFE7D, 0xFED1, 0xFF50, 0x0000, 0x011D, +- 0x0307, 0x05F6, 0x0A24, 0x0FC9, 0x1AE9, 0x29B1, 0x339A, 0x3595, +- 0x33F9, 0x3153, 0x3034, 0x318C, 0x33E8, 0x363F, 0x3789, 0x37E9, +- 0x3833, 0x3868, 0x388D, 0x38A2, 0x38AA, 0x38A8, 0x389E, 0x388D, +- 0x3879, 0x3863, 0x384E, 0x383D, 0x3830, 0x382C, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, +- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF544, +- 0xF536, 0xF520, 0xF506, 0xF4EA, 0xF4CE, 0xF4B4, 0xF49F, 0xF491, +- 0xF48B, 0xF491, 0xF4A5, 0xF4C9, 0xF4FF, 0xF549, 0xF5F7, 0xF730, +- 0xF8BE, 0xFA68, 0xFBF8, 0xFDA4, 0xFF6D, 0x00C8, 0x0046, 0xFEA0, +- 0xFE8C, 0x02C3, 0x0F97, 0x2263, 0x336B, 0x3AF6, 0x3A7F, 0x38C8, +- 0x3600, 0x3258, 0x2E02, 0x292E, 0x240E, 0x1ED0, 0x19A8, 0x14C5, +- 0x1057, 0x0C91, 0x09A3, 0x07BC, 0x0710, 0xC7DD, 0xC75C, 0xC650, +- 0xC571, 0xC572, 0xC70A, 0xCAEE, 0xD3CD, 0xE173, 0xF044, 0xFCA3, +- 0xFCA3, 0xFCB5, 0xFCE8, 0xFD34, 0xFD92, 0xFDFC, 0xFE6A, 0xFED6, +- 0xFF39, 0xFF8C, 0xFFC8, 0xFFE6, 0xFFDF, 0xFFAC, 0xFF47, 0xFEA8, +- 0xFDC9, 0xFCA3, 0xF777, 0xED63, 0xE2AB, 0xD70D, 0xC952, 0xBC4D, +- 0xB2CE, 0xAFAA, 0xBED4, 0xDA68, 0xEA6F, 0xEC81, 0xEE34, 0xEF90, +- 0xF09B, 0xF15B, 0xF1D8, 0xF217, 0xF220, 0xF1F9, 0xF1A8, 0xF134, +- 0xF0A3, 0xEFFD, 0xEF48, 0xEE89, 0xEDC9, 0xED0D, 0xEC5B, 0xEBBC, +- 0xEB34, 0xEACB, 0xEA87, 0xEA6F, 0x054B, 0x028E, 0xFB6C, 0xF184, +- 0xE676, 0xDBE2, 0xD368, 0xCD48, 0xC861, 0xC440, 0xC072, 0xC072, +- 0xC29F, 0xC512, 0xC7B7, 0xCA78, 0xCD3F, 0xCFF9, 0xD291, 0xD4F0, +- 0xD703, 0xD8B4, 0xD9EF, 0xDA9D, 0xDA28, 0xD849, 0xD566, 0xD1E7, +- 0xCE30, 0xCAAA, 0xC7BA, 0xC688, 0xC6A9, 0xC6DE, 0xC76E, 0xC8A1, +- 0xCA5F, 0xCC58, 0xCE83, 0xD0D4, 0xD33F, 0xD5B9, 0xD837, 0xDAAD, +- 0xDD12, 0xDF58, 0xE175, 0xE35E, 0xE507, 0xE665, 0xE76E, 0xE814, +- 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, +- 0xE84E, 0xE84E, 0xE84E, 0x2BD6, 0x288C, 0x2079, 0x164D, 0x0CBC, +- 0x0675, 0x062A, 0x10EE, 0x256A, 0x3CAF, 0x4FCD, 0x4FCD, 0x4EDF, +- 0x4DC5, 0x4C8D, 0x4B44, 0x49F8, 0x48B7, 0x478E, 0x468C, 0x45BD, +- 0x4530, 0x44F3, 0x4512, 0x45EB, 0x47AB, 0x4A16, 0x4CF3, 0x5007, +- 0x5316, 0x55E7, 0x59FE, 0x5D4C, 0x60D7, 0x636C, 0x63DA, 0x6299, +- 0x60FD, 0x5F14, 0x5CEB, 0x5A91, 0x5814, 0x5584, 0x52ED, 0x5060, +- 0x4DE9, 0x4B98, 0x497A, 0x479F, 0x4614, 0x44E9, 0x442A, 0x43E8, +- 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, +- 0x43E8, 0x43E8, 0xCCF6, 0xC92A, 0xBF55, 0xB1CA, 0xA2DD, 0x94E2, +- 0x8A2E, 0x8399, 0x7F91, 0x7CCF, 0x7A07, 0x7A07, 0x7C40, 0x7EC0, +- 0x8175, 0x8444, 0x8719, 0x89E1, 0x8C86, 0x8EF2, 0x9111, 0x92CD, +- 0x9411, 0x94C8, 0x944F, 0x925D, 0x8F62, 0x8BCD, 0x880F, 0x8496, +- 0x81D3, 0x82AE, 0x8523, 0x87DF, 0x8A92, 0x8CEC, 0x8F18, 0x916E, +- 0x93E4, 0x9672, 0x990C, 0x9BA9, 0x9E40, 0xA0C5, 0xA331, 0xA579, +- 0xA792, 0xA974, 0xAB14, 0xAC69, 0xAD68, 0xAE09, 0xAE41, 0xAE41, +- 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, +- 0xAE41, 0x0000, 0x0024, 0x0082, 0x00FE, 0x0180, 0x01EE, 0x022D, +- 0x0230, 0x0208, 0x01C9, 0x018B, 0x0164, 0x0155, 0x0150, 0x0151, +- 0x0159, 0x0164, 0x0178, 0x0196, 0x01B7, 0x01D4, 0x01E5, 0x01F8, +- 0x0229, 0x022C, 0x022C, 0x022B, 0x0228, 0x0224, 0x0221, 0x021E, +- 0x021D, 0x021C, 0x021C, 0x021B, 0x021B, 0x021A, 0x021A, 0x021A, +- 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, +- 0x021A, 0x021A, 0x021A, 0x021B, 0x021B, 0x021B, 0x021B, 0x021C, +- 0x021C, 0x021C, 0x021C, 0x021C, 0x021D, 0x021D, 0x021D, 0x021D, +- 0xFF30, 0xFF3E, 0xFF62, 0xFF8E, 0xFFB7, 0xFFD0, 0xFFCD, 0xFF9F, +- 0xFF4B, 0xFEE8, 0xFE8D, 0xFE50, 0xFE34, 0xFE2A, 0xFE2E, 0xFE3C, +- 0xFE50, 0xFE67, 0xFE88, 0xFEBF, 0xFF16, 0x0003, 0x00D4, 0xFFAC, +- 0xFF8B, 0xFF77, 0xFF6D, 0xFF69, 0xFF6B, 0xFF6E, 0xFF71, 0xFF70, +- 0xFF6D, 0xFF6A, 0xFF68, 0xFF67, 0xFF66, 0xFF65, 0xFF65, 0xFF64, +- 0xFF64, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF66, +- 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, +- 0xFF6D, 0xFF6E, 0xFF6E, 0xFF6F, 0xFF6F, 0xFF70, 0xFF70, 0xC9D8, +- 0xC8B6, 0xC5F4, 0xC289, 0xBF6E, 0xBD98, 0xBE00, 0xC203, 0xC91B, +- 0xD169, 0xD90E, 0xDE29, 0xE085, 0xE161, 0xE10F, 0xDFE1, 0xDE29, +- 0xDC17, 0xD91C, 0xD46E, 0xCD46, 0xBAA7, 0xAA38, 0xC071, 0xC2E0, +- 0xC462, 0xC528, 0xC565, 0xC54A, 0xC50C, 0xC4DB, 0xC4EA, 0xC525, +- 0xC554, 0xC579, 0xC595, 0xC5A9, 0xC5B7, 0xC5BF, 0xC5C2, 0xC5C3, +- 0xC5C1, 0xC5BE, 0xC5BC, 0xC5BB, 0xC5B9, 0xC5B4, 0xC5AB, 0xC5A1, +- 0xC594, 0xC585, 0xC575, 0xC564, 0xC553, 0xC541, 0xC530, 0xC520, +- 0xC512, 0xC505, 0xC4FA, 0xC4F2, 0xC4EC, 0xC4EA, 0x1E4A, 0x1FA0, +- 0x22FA, 0x275B, 0x2BC3, 0x2F36, 0x30B6, 0x2F67, 0x2BE5, 0x276B, +- 0x232F, 0x206A, 0x1EA4, 0x1D0C, 0x1C58, 0x1D3B, 0x206A, 0x2810, +- 0x33AB, 0x3FED, 0x4984, 0x4EE3, 0x517C, 0x5287, 0x5300, 0x531F, +- 0x52FA, 0x52A3, 0x522E, 0x51B0, 0x513C, 0x50E6, 0x509F, 0x504D, +- 0x4FF4, 0x4F96, 0x4F36, 0x4ED6, 0x4E7A, 0x4E24, 0x4DD8, 0x4D98, +- 0x4D66, 0x4D46, 0x4D3B, 0x4D43, 0x4D5B, 0x4D81, 0x4DB1, 0x4DEC, +- 0x4E2E, 0x4E76, 0x4EC2, 0x4F10, 0x4F5E, 0x4FAA, 0x4FF2, 0x5035, +- 0x506F, 0x50A0, 0x50C6, 0x50DD, 0x50E6, 0x1B09, 0x1AA1, 0x19A0, +- 0x1858, 0x171C, 0x163E, 0x1610, 0x16F1, 0x18AF, 0x1ACA, 0x1CBF, +- 0x1E0B, 0x1ED7, 0x1F7C, 0x1FBA, 0x1F53, 0x1E0B, 0x1ABB, 0x15AA, +- 0x10B9, 0x0DC9, 0x0EE7, 0x1278, 0x14E6, 0x156A, 0x15AD, 0x15BC, +- 0x15A8, 0x157E, 0x154F, 0x152A, 0x151C, 0x1520, 0x1524, 0x1527, +- 0x152A, 0x152D, 0x152F, 0x1531, 0x1533, 0x1535, 0x1536, 0x1537, +- 0x1538, 0x1538, 0x1537, 0x1537, 0x1536, 0x1534, 0x1533, 0x1531, +- 0x152F, 0x152C, 0x152A, 0x1528, 0x1526, 0x1523, 0x1522, 0x1520, +- 0x151E, 0x151D, 0x151D, 0x151C, 0x1144, 0x11C7, 0x1302, 0x1483, +- 0x15D7, 0x168B, 0x162D, 0x140C, 0x1066, 0x0C29, 0x0846, 0x05AB, +- 0x0454, 0x03A1, 0x0399, 0x0445, 0x05AB, 0x0930, 0x0E9D, 0x138F, +- 0x15A4, 0x118C, 0x09C6, 0x04AC, 0x035E, 0x02A9, 0x026C, 0x0284, +- 0x02CD, 0x0325, 0x0369, 0x0378, 0x035F, 0x0347, 0x0330, 0x031A, +- 0x0305, 0x02F1, 0x02E0, 0x02D0, 0x02C2, 0x02B7, 0x02AF, 0x02AA, +- 0x02A9, 0x02AA, 0x02B0, 0x02B8, 0x02C3, 0x02D0, 0x02DE, 0x02EE, +- 0x02FF, 0x0310, 0x0321, 0x0332, 0x0342, 0x0351, 0x035E, 0x0368, +- 0x0371, 0x0376, 0x0378, 0xAC44, 0xAB62, 0xA93B, 0xA68A, 0xA40C, +- 0xA27D, 0xA299, 0xA55E, 0xAA62, 0xB04C, 0xB5BF, 0xB962, 0xBB64, +- 0xBCAE, 0xBCF5, 0xBBF4, 0xB962, 0xB28C, 0xA804, 0x9E69, 0x9A5A, +- 0xA245, 0xB14F, 0xBB2D, 0xBDAE, 0xBF05, 0xBF75, 0xBF41, 0xBEAC, +- 0xBDFB, 0xBD70, 0xBD50, 0xBD7B, 0xBDA5, 0xBDCE, 0xBDF5, 0xBE1A, +- 0xBE3C, 0xBE5B, 0xBE77, 0xBE8E, 0xBEA1, 0xBEAF, 0xBEB8, 0xBEBB, +- 0xBEB8, 0xBEAF, 0xBEA0, 0xBE8D, 0xBE77, 0xBE5D, 0xBE41, 0xBE24, +- 0xBE05, 0xBDE7, 0xBDCA, 0xBDAE, 0xBD94, 0xBD7E, 0xBD6B, 0xBD5C, +- 0xBD53, 0xBD50, 0x0000, 0xFE3D, 0xF9D4, 0xF419, 0xEE5D, 0xE9F4, +- 0xE831, 0xEDB4, 0xF881, 0x0000, 0x01D9, 0x01F8, 0x012C, 0x003F, +- 0x0000, 0x007B, 0x012B, 0x01F7, 0x02C9, 0x038D, 0x0453, 0x0524, +- 0x05DB, 0x0655, 0x0665, 0x061E, 0x05B8, 0x0525, 0x0475, 0x0410, +- 0x03F8, 0x03E9, 0x03E0, 0x03DE, 0x03E0, 0x03E6, 0x03EE, 0x03F7, +- 0x0400, 0x0408, 0x040E, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, +- 0x0410, 0x0000, 0xFF71, 0xFE0A, 0xFC38, 0xFA65, 0xF8FF, 0xF86F, +- 0xFA30, 0xFD9F, 0x0000, 0x009A, 0x00AB, 0x0070, 0x0023, 0x0000, +- 0x0007, 0x0012, 0x001E, 0x002B, 0x0037, 0x0043, 0x004F, 0x005A, +- 0x0060, 0x005D, 0x0053, 0x004B, 0x0049, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, +- 0xBF40, 0xBEEC, 0xBE45, 0xBDCE, 0xBE0C, 0xBF7F, 0xC2AB, 0xCD35, +- 0xDC97, 0xE517, 0xE3A9, 0xDE6C, 0xD75F, 0xD082, 0xCBD4, 0xC99F, +- 0xC88C, 0xC830, 0xC81C, 0xC7E4, 0xC7A7, 0xC7B0, 0xC7D6, 0xC7F1, +- 0xC7F2, 0xC7F6, 0xC811, 0xC85F, 0xC8C3, 0xC8FE, 0xC90B, 0xC914, +- 0xC918, 0xC91A, 0xC918, 0xC915, 0xC911, 0xC90C, 0xC906, 0xC902, +- 0xC8FF, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, +- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, +- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0x2537, +- 0x24DD, 0x2414, 0x2346, 0x22DA, 0x233A, 0x24CE, 0x2C10, 0x3680, +- 0x3A0D, 0x32D4, 0x2667, 0x18DC, 0x0E4A, 0x0ACA, 0x114F, 0x1F1F, +- 0x2FCC, 0x3EE7, 0x4801, 0x499C, 0x46AC, 0x4170, 0x3C25, 0x3909, +- 0x3B7C, 0x3F1F, 0x3F83, 0x3F0B, 0x3E88, 0x3E40, 0x3DEF, 0x3D97, +- 0x3D3B, 0x3CDE, 0x3C84, 0x3C30, 0x3BE3, 0x3BA3, 0x3B71, 0x3B51, +- 0x3B45, 0x3B5D, 0x3B9C, 0x3BFA, 0x3C6B, 0x3CE7, 0x3D62, 0x3DD4, +- 0x3E31, 0x3E70, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, +- 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0xD64A, 0xD69C, +- 0xD798, 0xD946, 0xDBAF, 0xDED9, 0xE2CF, 0xE86C, 0xEFD6, 0xF803, +- 0xFFE8, 0x067A, 0x0AB1, 0x0C88, 0x0CEC, 0x0C3A, 0x0ACC, 0x0900, +- 0x0730, 0x05B9, 0x040E, 0x01C9, 0xFF83, 0xFDD4, 0xFD34, 0xFD47, +- 0xFD67, 0xFD58, 0xFD4E, 0xFD49, 0xFD46, 0xFD46, 0xFD47, 0xFD4B, +- 0xFD51, 0xFD57, 0xFD5D, 0xFD63, 0xFD68, 0xFD6B, 0xFD6D, 0xFD6E, +- 0xFD6E, 0xFD6E, 0xFD6E, 0xFD6D, 0xFD6C, 0xFD6C, 0xFD6B, 0xFD6B, +- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, +- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xEC41, 0xEC2C, 0xEBE9, +- 0xEB76, 0xEACD, 0xE9E9, 0xE8C8, 0xE6AD, 0xE378, 0xE009, 0xDD41, +- 0xDC00, 0xDD28, 0xE11C, 0xE72D, 0xEE9C, 0xF6AD, 0xFEA1, 0x05BA, +- 0x0B3C, 0x0E2E, 0x0EE0, 0x0E80, 0x0E3D, 0x0DEB, 0x0D18, 0x0C86, +- 0x0C6D, 0x0C77, 0x0C92, 0x0CAE, 0x0CB9, 0x0CB2, 0x0CA6, 0x0C97, +- 0x0C87, 0x0C76, 0x0C66, 0x0C59, 0x0C51, 0x0C4C, 0x0C49, 0x0C49, +- 0x0C49, 0x0C4B, 0x0C4D, 0x0C4F, 0x0C50, 0x0C51, 0x0C51, 0x0C51, +- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, +- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0xB59E, 0xB71E, 0xBAB7, 0xBF0E, +- 0xC2C8, 0xC489, 0xC2F7, 0xBCA3, 0xB259, 0xA616, 0x99D9, 0x8F9F, +- 0x8967, 0x878F, 0x887D, 0x8B38, 0x8EC9, 0x9237, 0x9489, 0x94C8, +- 0x9135, 0x8A64, 0x82DC, 0x7D21, 0x7A6C, 0x7970, 0x78FA, 0x788A, +- 0x7859, 0x7851, 0x785B, 0x7860, 0x785E, 0x7864, 0x786F, 0x787E, +- 0x788D, 0x789C, 0x78A9, 0x78B1, 0x78B4, 0x78B6, 0x78B7, 0x78B6, +- 0x78B5, 0x78B4, 0x78B2, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, +- 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, +- 0x78B1, 0x78B1, 0x78B1, 0x8001, 0x8001, 0x4171, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF60, 0xBF61, 0xBF61, 0xBF61, 0xBF5F, 0xBF5A, 0xBF53, 0xBF4B, +- 0xBF43, 0xBF3D, 0xBF36, 0xBF2F, 0xBF29, 0xBF22, 0xBF1E, 0xBF1C, +- 0xBF1E, 0xBF23, 0xBF34, 0xBF5F, 0xBFA2, 0xBFF0, 0xC047, 0xC0A2, +- 0xC0FF, 0xC15A, 0xC1B0, 0xC1FE, 0xC241, 0xC274, 0xC296, 0xC2A1, +- 0xC28A, 0xC24B, 0xC1ED, 0xC17C, 0xC100, 0xC085, 0xC013, 0xBFB6, +- 0xBF76, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, +- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x8001, 0x8001, 0x4171, +- 0xBF5F, 0x0000, 0xFE18, 0xF962, 0xF363, 0xED9E, 0xE998, 0xE8D4, +- 0xEDB2, 0xF783, 0x0334, 0x0DB7, 0x154D, 0x13F5, 0x11D8, 0x0F19, +- 0x0BDB, 0x0843, 0x0384, 0xFD86, 0xF77C, 0xF29B, 0xF017, 0xF7A3, +- 0x01BC, 0x05F7, 0x0A32, 0x0E41, 0x11F6, 0x1525, 0x17A1, 0x193C, +- 0x19C9, 0x18E0, 0x1660, 0x1286, 0x0D90, 0x07BD, 0x014A, 0xF375, +- 0xE461, 0xDE7B, 0xDCAD, 0xDBD7, 0xDB3C, 0xDAD6, 0xDA9B, 0xDA83, +- 0xDA86, 0xDA9D, 0xDABF, 0xDAF3, 0xDB43, 0xDBAA, 0xDC21, 0xDCA4, +- 0xDD2C, 0xDDB4, 0xDE37, 0xDEAE, 0xDF14, 0xDF65, 0xDF99, 0xDFAB, +- 0x0000, 0x000D, 0x002B, 0x004D, 0x0065, 0x0066, 0x0041, 0xFFDA, +- 0xFF31, 0xFE6B, 0xFDAD, 0xFCE0, 0xFCBE, 0xFCA3, 0xFC9A, 0xFCAB, +- 0xFCE0, 0xFD2B, 0xFD85, 0xFE04, 0xFEBE, 0xFFC8, 0x02C3, 0x056E, +- 0x05E4, 0x0621, 0x0632, 0x0623, 0x0602, 0x05DA, 0x05B9, 0x05AD, +- 0x05AB, 0x05A6, 0x059E, 0x0594, 0x0589, 0x057F, 0x0571, 0x055B, +- 0x056A, 0x0513, 0x040C, 0x02D2, 0x017C, 0x0021, 0xFEDB, 0xFDBF, +- 0xFCE6, 0xFC67, 0xFC34, 0xFC28, 0xFC3F, 0xFC71, 0xFCB8, 0xFD0F, +- 0xFD6F, 0xFDD1, 0xFE2F, 0xFE83, 0xFEC7, 0xFEF5, 0xFF05, 0xFC62, +- 0xFB4A, 0xF885, 0xF4D6, 0xF100, 0xEDC6, 0xEBEB, 0xEC2E, 0xEE26, +- 0xF0D3, 0xF338, 0xF588, 0xF5E9, 0xF635, 0xF64F, 0xF61F, 0xF588, +- 0xF474, 0xF2F4, 0xF12B, 0xEF3D, 0xED4A, 0xEA46, 0xE829, 0xE830, +- 0xE872, 0xE8E5, 0xE97A, 0xEA26, 0xEADD, 0xEB92, 0xEC39, 0xECDE, +- 0xED92, 0xEE51, 0xEF18, 0xEFE2, 0xF0AC, 0xF191, 0xF279, 0xF370, +- 0xF3EA, 0xF3AA, 0xF348, 0xF2CE, 0xF24B, 0xF1CB, 0xF15A, 0xF107, +- 0xF0DD, 0xF0D6, 0xF0E0, 0xF0F9, 0xF11D, 0xF14A, 0xF17D, 0xF1B2, +- 0xF1E7, 0xF219, 0xF245, 0xF268, 0xF27F, 0xF288, 0x0000, 0x0371, +- 0x0BF4, 0x16CE, 0x2145, 0x289E, 0x2A1F, 0x2143, 0x0F5E, 0xFA82, +- 0xE8BA, 0xE305, 0xDF18, 0xDAD6, 0xD701, 0xD45C, 0xD3A9, 0xD72A, +- 0xDE28, 0xE4EB, 0xE7BB, 0xE6BF, 0xE4BF, 0xE1FA, 0xDEAB, 0xDB11, +- 0xD768, 0xD3EE, 0xD0E1, 0xCE7E, 0xCF29, 0xD1FB, 0xD36E, 0xD40A, +- 0xD535, 0xD856, 0xDED2, 0xF03F, 0x0867, 0x1707, 0x1AAC, 0x1CE6, +- 0x1DF4, 0x1E11, 0x1D7B, 0x1C6F, 0x1B2B, 0x19EC, 0x18EE, 0x186F, +- 0x1833, 0x17DA, 0x176A, 0x16E9, 0x165D, 0x15CB, 0x153A, 0x14AF, +- 0x1430, 0x13C3, 0x136E, 0x1336, 0x1323, 0x0000, 0xFFAD, 0xFEDC, +- 0xFDCC, 0xFCBD, 0xFBED, 0xFB9B, 0xFC23, 0xFD65, 0xFEDF, 0x0011, +- 0x0011, 0x01B3, 0x03AC, 0x05A4, 0x0741, 0x082D, 0x07BF, 0x063D, +- 0x04B5, 0x0432, 0x04AD, 0x0564, 0x0649, 0x0751, 0x086E, 0x0993, +- 0x0AB4, 0x0BC5, 0x0CB9, 0x0D85, 0x0DD7, 0x0E2B, 0x0EDB, 0x0F35, +- 0x0E89, 0x0C26, 0x043A, 0xF8D2, 0xF206, 0xF0A6, 0xF000, 0xEFF3, +- 0xF05C, 0xF118, 0xF204, 0xF300, 0xF3E7, 0xF499, 0xF4F1, 0xF50D, +- 0xF51F, 0xF52A, 0xF52F, 0xF52E, 0xF529, 0xF521, 0xF517, 0xF50D, +- 0xF502, 0xF4F9, 0xF4F3, 0xF4F1, 0x0884, 0x09A5, 0x0C7A, 0x1032, +- 0x13F8, 0x16F9, 0x1861, 0x1715, 0x138A, 0x0F4A, 0x0BDD, 0x0BDD, +- 0x08DA, 0x052E, 0x018B, 0xFEA4, 0xFD2A, 0xFE26, 0x0124, 0x04A2, +- 0x071A, 0x087A, 0x09B6, 0x0AD3, 0x0BD5, 0x0CC3, 0x0DA1, 0x0E74, +- 0x0F42, 0x1010, 0x1054, 0x1006, 0x0FF7, 0x1026, 0x1023, 0x0F7E, +- 0x0DC6, 0x08AE, 0x016B, 0xFCD2, 0xFB5D, 0xFA47, 0xF981, 0xF8FD, +- 0xF8AD, 0xF883, 0xF86F, 0xF864, 0xF853, 0xF82F, 0xF803, 0xF7E5, +- 0xF7D3, 0xF7CC, 0xF7CD, 0xF7D5, 0xF7E2, 0xF7F2, 0xF803, 0xF813, +- 0xF821, 0xF82B, 0xF82F, 0x0000, 0x0010, 0x0034, 0x0059, 0x0069, +- 0x0052, 0x0000, 0x003B, 0x00B3, 0xFFA8, 0xFB5A, 0xDF68, 0xC869, +- 0xB1CD, 0x9C4A, 0x8898, 0x766D, 0x652C, 0x54FB, 0x4603, 0x386D, +- 0x2C73, 0x2261, 0x1A7C, 0x150C, 0x1198, 0x0F4A, 0x0DD9, 0x0CFD, +- 0x0C70, 0x0BE8, 0x0B1F, 0x0AA2, 0x0AC9, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, +- 0x0AF8, 0x0AF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0033, 0x0099, +- 0x00E5, 0x00CC, 0x0000, 0xFDC3, 0xFA56, 0xF6F0, 0xF4C8, 0xF4F5, +- 0xF69F, 0xF80F, 0xF8CE, 0xF984, 0xFA33, 0xFAD9, 0xFB78, 0xFC0E, +- 0xFC9B, 0xFD1F, 0xFD76, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, +- 0xFD90, 0x40A1, 0x4107, 0x4202, 0x433D, 0x4462, 0x451E, 0x451C, +- 0x43B9, 0x411E, 0x3E2B, 0x3BBD, 0x3BBD, 0x3BB4, 0x3BA1, 0x3B93, +- 0x3B98, 0x3BBD, 0x3BBF, 0x3BB3, 0x3C32, 0x3DD2, 0x4257, 0x4885, +- 0x4C78, 0x4DB9, 0x4E7C, 0x4EDC, 0x4EF5, 0x4EE3, 0x4EC1, 0x4EAC, +- 0x4EBE, 0x4EC5, 0x4E9F, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, ++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AD, 0x00AF, 0x00B2, 0x00B4, ++ 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, 0x00C7, 0x00C9, 0x00CB, 0x00CD, ++ 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, 0x00C0, 0x00BA, 0x00B5, 0x00B1, ++ 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, ++ 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, 0x00A2, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, ++ 0x3218, 0x30FC, 0x3995, 0x51D5, 0x7769, 0xA7FE, 0xE142, 0x20E3, 0x648D, ++ 0xA9EF, 0xEEB4, 0x308D, 0x6D25, 0xA2A4, 0xD11D, 0xF91E, 0x1B35, 0x37EC, ++ 0x4FD4, 0x6378, 0x7366, 0x802B, 0x8A4A, 0x921A, 0x97E6, 0x9BFA, 0x9EA2, ++ 0xA02A, 0xA0DD, 0xA108, 0x9857, 0x839B, 0x6ADD, 0x5622, 0x4D70, 0x4D77, ++ 0x4D8A, 0x4DA5, 0x4DC6, 0x4DEA, 0x4E0E, 0x4E30, 0x4E4B, 0x4E5D, 0x4E64, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFC7C, ++ 0xF4C4, 0xED0B, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, ++ 0xF384, 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, ++ 0x096B, 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, ++ 0x0DDE, 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, ++ 0x0223, 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, ++ 0x0D87, 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFF, 0x01FD, 0x065D, ++ 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, 0x0901, 0x06BD, 0x045A, ++ 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, 0xFEA1, 0xFED1, 0xFF0A, ++ 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, 0x00D8, 0x0108, 0x012D, ++ 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, 0x00E7, 0x0091, 0x0049, ++ 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, 0x0076, 0x007A, 0x007D, ++ 0x007F, 0x0081, 0x0081, 0x0082, 0x0884, 0x0884, 0x0C6F, 0x150F, 0x1DAE, ++ 0x2199, 0x2199, 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, ++ 0x0564, 0x026D, 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, ++ 0x029D, 0x02E9, 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, ++ 0x0482, 0x0482, 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, ++ 0xFEA1, 0xFEA8, 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, ++ 0xFDD2, 0xFDB9, 0xFDA9, 0xFDA2, 0x0000, 0x0000, 0xFEA3, 0xFBA6, 0xF8A9, ++ 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, 0x1216, 0x1955, ++ 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, 0x1054, 0x0862, ++ 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, 0xC514, 0xC174, ++ 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, 0xF13A, 0xF6EC, ++ 0xFFFF, 0xFFFF, 0x002B, 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, ++ 0x00F5, 0x00CE, 0x0099, 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, ++ 0xFE2B, 0xFDC7, 0xFD6C, 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, ++ 0x0051, 0x0270, 0x0490, 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, ++ 0x069F, 0x02CE, 0xFE3F, 0xFA6E, 0xF8D4, 0xFC61, 0xFC61, 0xFD74, 0xFFD2, ++ 0x0231, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, 0x0185, ++ 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, 0xFF15, ++ 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, 0xFFB0, ++ 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, 0xFE47, ++ 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFB1C, 0x0B49, 0x2EDD, 0xD270, ++ 0xE29C, 0xE29C, 0xE29C, 0xE199, 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, ++ 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, ++ 0x0450, 0x0004, 0xFC31, 0xF8DB, 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, ++ 0xEF74, 0xEF74, 0xEF74, 0xEF74, 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, ++ 0xD2DB, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, ++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, ++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, ++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, ++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xD4B3, 0xD4B3, 0xC63D, 0xA66B, ++ 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, 0xFADF, 0xFE0F, 0x0243, 0x0751, ++ 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, ++ 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, 0xE523, 0xE8D3, 0xEBCF, 0xEE06, ++ 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEA00, 0xDBFF, 0xCB47, 0xBD46, ++ 0xB766, 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, ++ 0xF44D, 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, ++ 0xF4CE, 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, ++ 0xF58A, 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, ++ 0xF5C1, 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0xFE75, ++ 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, 0xF663, 0xF6AF, 0xF714, ++ 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, 0xFBC6, 0xFC97, 0xFD6A, ++ 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, 0x0272, 0x02EE, 0x0354, ++ 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, 0x0905, 0x154B, 0x23F2, ++ 0x3038, 0x4AA2, 0xCA4E, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, ++ 0xE97C, 0xE992, 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, ++ 0xEF07, 0xF016, 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, ++ 0xF8A8, 0xF986, 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, ++ 0xFC3F, 0xFC3F, 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xFFFF, 0xFFFF, ++ 0xFEF0, 0xFC9B, 0xFA46, 0xF937, 0xF937, 0xF937, 0xF920, 0xF8DE, 0xF875, ++ 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, 0xF166, 0xF043, ++ 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, 0xE827, 0xE77A, ++ 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, 0xF137, 0x0B8C, ++ 0x2AFA, 0x454E, 0xD059, 0xF97B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, ++ 0xF50D, 0xF50D, 0xF513, 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, ++ 0xF62A, 0xF66A, 0xF6AC, 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, ++ 0xF88C, 0xF8C7, 0xF8FE, 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, ++ 0xF9A9, 0xF9A9, 0xF9A9, 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xED8B, ++ 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, 0xED0B, ++ 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, 0xF646, ++ 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, 0x01B5, ++ 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, 0xFA5A, ++ 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++ 0x0001, 0x0001, 0xFF5A, 0xFD96, 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, ++ 0xEB34, 0xE970, 0xE8CA, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, ++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, ++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, ++ 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, 0xD02E, 0xD346, 0xD5D2, 0xD78C, ++ 0xD830, 0x054B, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, ++ 0x1FDB, 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, ++ 0xD7A7, 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, ++ 0x428B, 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, ++ 0x18CE, 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2BD6, 0x2BD6, 0x26DD, ++ 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, 0x0E26, 0x1092, 0x13B1, ++ 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, 0x4FF0, 0x4CD2, 0x4A66, ++ 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, 0x53CD, 0x5249, 0x50C6, ++ 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, 0x4D5C, 0x4B71, 0x4928, ++ 0x38C3, 0x3990, 0xCCF5, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, ++ 0xEB39, 0xE9F9, 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, ++ 0xABA7, 0xA28E, 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, ++ 0x1C7F, 0x1A7D, 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, ++ 0x0B86, 0x0B86, 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, ++ 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, 0x0FD7, 0x0FE2, ++ 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, 0x12E9, 0x13D5, ++ 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, 0x1BF2, 0x1813, ++ 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x1086, 0x1A5F, ++ 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, 0x2879, ++ 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, 0x289F, ++ 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, ++ 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, ++ 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B1, 0x28AD, 0x28A7, 0x289F, 0x2897, ++ 0x288E, 0x2885, 0x287C, 0x2875, 0x286F, 0x286B, 0x2869, 0x0000, 0x0000, ++ 0x034A, 0x0A88, 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, ++ 0x0FF9, 0x0DAE, 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, ++ 0x03F7, 0x0A45, 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, ++ 0x1DEF, 0x1C26, 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, ++ 0x0DD1, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, ++ 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, ++ 0x0BBC, 0x0B90, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, ++ 0x0CF7, 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, ++ 0x0BFC, 0x0BBC, 0x0B90, 0x0B80, 0x0B89, 0x0BA3, 0x0BCA, 0x0BFC, 0x0C34, ++ 0x0C6F, 0x0CAA, 0x0CE2, 0x0D13, 0x0D3A, 0x0D54, 0x0D5E, 0xC7DC, 0xC7DC, ++ 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, 0xF004, 0xF0DA, 0xF21D, ++ 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, 0xFDF0, 0xFEC6, 0xFF13, ++ 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, 0xDC50, 0xE73B, 0xF628, ++ 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, 0x247F, 0x29D3, 0x35C0, ++ 0x422D, 0x4902, 0x4AD0, 0x4C43, 0x4D63, 0x4E3C, 0x4ED7, 0x4F3F, 0x4F7E, ++ 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, 0x4ABC, ++ 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, 0x4B5A, 0x4C57, 0x4D53, ++ 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, ++ 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4923, 0x4980, 0x4A0C, 0x4ABC, 0x4B84, ++ 0x4C57, 0x4D2A, 0x4DF2, 0x4EA1, 0x4F2E, 0x4F8A, 0x4FAC, 0xFFFF, 0xFFFF, ++ 0x0015, 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, ++ 0xFF80, 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, ++ 0xF893, 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, ++ 0xF21D, 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, ++ 0x2ABD, 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, ++ 0x6709, 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, ++ 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, ++ 0x6611, 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x669A, ++ 0x6640, 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x64FF, 0x651E, 0x654D, ++ 0x6588, 0x65CB, 0x6611, 0x6658, 0x669A, 0x66D5, 0x6704, 0x6723, 0x672E, ++ 0xFFFF, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, 0x068E, 0x06A4, ++ 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, 0x0C0E, 0x0D1B, ++ 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, 0x159B, 0x1677, ++ 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, 0x192B, 0x192B, ++ 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, 0x0E70, 0x0EFC, ++ 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, 0x1231, ++ 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E12, 0x0E70, ++ 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, ++ 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E07, ++ 0x0E4B, 0x0EB2, 0x0F32, 0x0FC4, 0x105F, 0x10F9, 0x118B, 0x120C, 0x1272, ++ 0x12B6, 0x12CF, 0xF548, 0xF548, 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, ++ 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, ++ 0xE666, 0xE829, 0xE9FD, 0xEBD9, 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, ++ 0xF66D, 0xF7DE, 0xF928, 0xFA43, 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, ++ 0xFC67, 0xFC67, 0xFE37, 0x02C6, 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, ++ 0x1705, 0x175E, 0x17A0, 0x17D0, 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, ++ 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, ++ 0x1613, 0x163B, 0x1676, 0x16BD, 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, ++ 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, ++ 0x1605, 0x160F, 0x162B, 0x1657, 0x168D, 0x16CA, 0x170B, 0x174C, 0x1789, ++ 0x17C0, 0x17EB, 0x1807, 0x1812, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, ++ 0x0057, 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, ++ 0x02D4, 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, ++ 0x05ED, 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, ++ 0x0772, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, 0xFFF9, ++ 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, 0xFFE7, 0xFFE4, 0xFFE0, ++ 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, 0xFFCC, 0xFFC9, 0xFFC7, ++ 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, 0xBF5E, 0xBF5E, 0xBF60, ++ 0xBF67, 0xBF71, 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, ++ 0xC028, 0xC048, 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, ++ 0xC150, 0xC16E, 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, ++ 0xC211, 0xC218, 0xC21A, 0xD649, 0xD649, 0xDA6F, 0xE390, 0xECB0, 0xF0D6, ++ 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, 0xEE3D, 0xED7A, ++ 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, 0xE6CB, 0xE605, ++ 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, 0xE227, 0xE218, ++ 0xEC40, 0xEC40, 0xEDD6, 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, ++ 0xF872, 0xFA77, 0xFCAB, 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, ++ 0x00B3, 0x00AD, 0x00A7, 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, ++ 0x0077, 0x0071, 0x006D, 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59D, 0xB418, ++ 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, 0xB4CB, ++ 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, 0xB745, ++ 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, 0xAEC3, ++ 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, ++ 0x00FB, 0x015D, 0x01C9, 0x023E, 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, ++ 0x0538, 0x05AD, 0x0619, 0x067B, 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, ++ 0x0731, 0x0677, 0x056A, 0x042C, 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, ++ 0xFF91, 0xFF91, 0xFF91, 0xFF82, 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, ++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, ++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, ++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, ++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, ++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x251B, 0x24CD, 0x2450, ++ 0x23AA, 0x22E0, 0x21F7, 0x20F5, 0x1FDE, 0x1EB7, 0x1D87, 0x1C51, 0x1B1B, ++ 0x19EA, 0x18C4, 0x17AD, 0x16AA, 0x15C2, 0x14F8, 0x1452, 0x13D5, 0x1386, ++ 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, 0x14EB, 0x1553, 0x15AB, 0x15E7, ++ 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, 0x1C02, 0x2111, 0x254E, 0x2715, ++ 0x0000, 0x0000, 0xFF75, 0xFDFB, 0xFBC6, 0xF90B, 0xF600, 0xF2DB, 0xEFD0, ++ 0xED15, 0xEAE0, 0xE966, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, ++ 0x0292, 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, ++ 0x0E2C, 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, ++ 0x045B, 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0xFFFF, 0xFF17, 0xFC9B, ++ 0xF8E5, 0xF44E, 0xEF31, 0xE9E6, 0xE4C9, 0xE032, 0xDC7C, 0xDA00, 0xD918, ++ 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, 0xF612, 0xFAF5, 0xFEE9, ++ 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, 0xFE27, 0xFCF8, 0xFBF9, ++ 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, 0xFABD, 0xFA7F, 0xFA4B, ++ 0xFA36, 0xBF3F, 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, ++ 0xC86E, 0xC9FB, 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, ++ 0xC6BD, 0xC4F7, 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, ++ 0xBFCA, 0xC012, 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, ++ 0xC11D, 0xBF09, 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, ++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, ++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, ++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, ++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x2505, ++ 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, ++ 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, 0xCB8B, 0xCD98, 0xD027, 0xD30C, ++ 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, 0xE26C, 0xE3E7, 0xE513, 0xE5F6, ++ 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, 0xE70A, 0xE5F8, 0xE36B, 0xE060, ++ 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1762, 0x1D80, 0x0A66, 0xF74B, 0xF74B, ++ 0xF74B, 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, ++ 0xF58C, 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, ++ 0x07D9, 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, ++ 0x1177, 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC43, ++ 0xB893, 0xD23C, 0xE988, 0xF37A, 0xF37A, 0xF37A, 0xEF6B, 0xE4B8, 0xD598, ++ 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, 0x99ED, 0x9F30, 0xA593, ++ 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, 0xC87D, 0xCA2A, 0xCB49, ++ 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC55, 0xCC05, ++ 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, ++ 0x0013, 0x0020, 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, ++ 0x019C, 0x01FB, 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, ++ 0x0842, 0x0C37, 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, ++ 0x2D6B, 0x2D6B, 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, ++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, 0xFFEE, 0xFFE6, ++ 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, 0xFF35, 0xFF0D, ++ 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, 0xFAB5, 0xF8FE, ++ 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, 0xF2E5, 0xF0C4, ++ 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4A, 0x1E0F, 0x1D66, 0x1C59, ++ 0x1AF4, 0x1942, 0x174E, 0x1523, 0x12CB, 0x1052, 0x0DC4, 0x0B2A, 0x0890, ++ 0x0601, 0x0388, 0x0131, 0xFF04, 0xFD10, 0xFB5E, 0xF9F9, 0xF8ED, 0xF843, ++ 0xF809, 0xF818, 0xF840, 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, ++ 0xF9C2, 0xF9C2, 0xF9C2, 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, ++ 0x0000, 0x0000, 0xFF92, 0xFEA2, 0xFDB3, 0xFD46, 0xFD46, 0xFD46, 0xFD6F, ++ 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, 0x095A, ++ 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, 0x1A9A, ++ 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, 0x1F95, ++ 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFDB7, 0xFA7C, ++ 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, ++ 0xFC59, 0xFE6E, 0x00B6, 0x0325, 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, ++ 0x1312, 0x15A0, 0x180E, 0x1A55, 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, ++ 0x22C4, 0x22FA, 0x22FA, 0x22FA, 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, ++ 0x12D1, 0xC9D7, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, ++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, ++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, ++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, ++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, ++ ++ + }; + +diff --git a/assets/anims/anim_CD.inc.c.rej b/assets/anims/anim_CD.inc.c.rej +new file mode 100644 +index 0000000..d56f73c +--- /dev/null ++++ b/assets/anims/anim_CD.inc.c.rej +@@ -0,0 +1,670 @@ ++diff a/assets/anims/anim_CD.inc.c b/assets/anims/anim_CD.inc.c (rejected hunks) ++@@ -1,9 +1,9 @@ ++ static const struct Animation anim_CD[] = { ++- 1, ++- 189, ++- 0, ++- 0, ++- 0x3F, +++ 1, +++ 0, +++ 0, +++ 1, +++ 91, ++ ANIMINDEX_NUMPARTS(anim_CD_indices), ++ anim_CD_values, ++ anim_CD_indices, ++@@ -12,352 +12,309 @@ static const struct Animation anim_CD[] = { ++ ++ ++ static const u16 anim_CD_indices[] = { ++- 0x003F, 0x0001, 0x003F, 0x0040, 0x003F, 0x007F, 0x0001, 0x0000, 0x0001, 0x00BE, 0x0001, 0x0000, ++- 0x003F, 0x0963, 0x003F, 0x09A2, 0x003F, 0x09E1, ++- 0x003F, 0x08A6, 0x003F, 0x08E5, 0x003F, 0x0924, ++- 0x003F, 0x07E9, 0x003F, 0x0828, 0x003F, 0x0867, ++- 0x0001, 0x07E5, 0x0001, 0x07E6, 0x0001, 0x07E7, ++- 0x003F, 0x01BB, 0x003F, 0x01FA, 0x003F, 0x0239, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x017C, ++- 0x003F, 0x00BF, 0x003F, 0x00FE, 0x003F, 0x013D, ++- 0x0001, 0x07A3, 0x0001, 0x07A4, 0x0001, 0x07A5, ++- 0x003F, 0x0374, 0x003F, 0x03B3, 0x003F, 0x03F2, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x0335, ++- 0x003F, 0x0278, 0x003F, 0x02B7, 0x003F, 0x02F6, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x07A6, ++- 0x003F, 0x06E6, 0x003F, 0x0725, 0x003F, 0x0764, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x06A7, ++- 0x003F, 0x05EA, 0x003F, 0x0629, 0x003F, 0x0668, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x07E8, ++- 0x003F, 0x052D, 0x003F, 0x056C, 0x003F, 0x05AB, ++- 0x0001, 0x0000, 0x0001, 0x0000, 0x003F, 0x04EE, ++- 0x003F, 0x0431, 0x003F, 0x0470, 0x003F, 0x04AF, +++ 0x0001, 0x0000, 0x0029, 0x0001, 0x0001, 0x002A, 0x0029, 0x002B, 0x0033, +++ 0x0054, 0x0013, 0x0087, 0x002C, 0x009A, 0x0032, 0x00C6, 0x0001, 0x00F8, +++ 0x0035, 0x00F9, 0x0035, 0x012E, 0x0036, 0x0163, 0x0029, 0x0199, 0x0029, +++ 0x01C2, 0x0029, 0x01EB, 0x0001, 0x0214, 0x0001, 0x0215, 0x0001, 0x0216, +++ 0x0029, 0x0217, 0x0029, 0x0240, 0x0029, 0x0269, 0x0029, 0x0292, 0x0029, +++ 0x02BB, 0x0029, 0x02E4, 0x0029, 0x030D, 0x0029, 0x0336, 0x0029, 0x035F, +++ 0x001A, 0x0388, 0x001A, 0x03A2, 0x001A, 0x03BC, 0x0029, 0x03D6, 0x0029, +++ 0x03FF, 0x0029, 0x0428, 0x005A, 0x0451, 0x005A, 0x04AB, 0x005A, 0x0505, +++ 0x005C, 0x055F, 0x005C, 0x05BB, 0x005C, 0x0617, 0x0021, 0x0673, 0x0020, +++ 0x0694, 0x0021, 0x06B4, 0x0021, 0x06D5, 0x0021, 0x06F6, 0x0021, 0x0717, +++ 0x0029, 0x0738, 0x0029, 0x0761, 0x0029, 0x078A, 0x0029, 0x07B3, 0x0029, +++ 0x07DC, 0x0029, 0x0805, 0x0032, 0x082E, 0x0030, 0x0860, 0x0001, 0x0890, +++ 0x0029, 0x0891, 0x0029, 0x08BA, 0x0029, 0x08E3, 0x0029, 0x090C, 0x0029, +++ 0x0935, 0x0029, 0x095E, 0x0029, 0x0987, 0x0029, 0x09B0, 0x0029, 0x09D9, ++ }; ++ ++ static const s16 anim_CD_values[] = { ++- 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0002, 0x0003, 0x0000, ++- 0xFFFA, 0xFFF3, 0xFFE5, 0xFFCB, 0xFFAA, 0xFF8A, 0xFF75, 0xFF75, ++- 0xFF79, 0xFF7E, 0xFF82, 0xFF8B, 0xFF9A, 0xFFB5, 0xFFF3, 0xFFFF, ++- 0x0000, 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, ++- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, ++- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, ++- 0x00AA, 0x00A9, 0x00A6, 0x00A2, 0x009F, 0x009C, 0x009C, 0x00B0, ++- 0x00C8, 0x00DB, 0x00E5, 0x00EB, 0x00EF, 0x00F2, 0x00F1, 0x00EF, ++- 0x00EC, 0x00E7, 0x00DE, 0x00CB, 0x00B7, 0x00AE, 0x00A3, 0x0076, ++- 0x007D, 0x0077, 0x0071, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, ++- 0x0070, 0x0071, 0x0071, 0x0071, 0x0072, 0x0072, 0x0072, 0x0073, ++- 0x0073, 0x0073, 0x0073, 0x0073, 0x0074, 0x0073, 0x0073, 0x0073, ++- 0x0073, 0x0073, 0x0073, 0x0072, 0x0072, 0x0072, 0x0072, 0x0071, ++- 0x0071, 0x0071, 0x0071, 0x0071, 0x0070, 0x0070, 0x0070, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0004, 0x000A, 0x0014, ++- 0x001E, 0x0028, 0x002E, 0x002F, 0x0028, 0x0019, 0x0007, 0xFFF6, ++- 0xFFE9, 0xFFE4, 0xFFEC, 0xFFFF, 0x0018, 0x0034, 0x005B, 0x0086, ++- 0x00A9, 0x00BC, 0x00BF, 0x00C0, 0x00C2, 0x00C3, 0x00C3, 0x00C3, ++- 0x00C3, 0x00C3, 0x00C2, 0x00C2, 0x00C1, 0x00C0, 0x00BF, 0x00BE, ++- 0x00BD, 0x00BD, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, ++- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, ++- 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x00BC, 0x3FFF, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0012, 0x0044, 0x008D, 0x00E7, 0x0148, 0x01A9, 0x0202, 0x024C, ++- 0x027E, 0x0290, 0x027B, 0x0237, 0x01BB, 0x0101, 0x0000, 0xFDFA, ++- 0xFA8F, 0xF641, 0xF194, 0xED0C, 0xE92D, 0xE67A, 0xE576, 0xE576, ++- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, ++- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, ++- 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xE576, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, ++- 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF97C, 0xF983, ++- 0xF996, 0xF9B3, 0xF9D6, 0xF9FC, 0xFA22, 0xFA45, 0xFA62, 0xFA76, ++- 0xFA7D, 0xFA75, 0xFA5A, 0xFA2A, 0xF9E1, 0xF97C, 0xF8B1, 0xF75A, ++- 0xF5AA, 0xF3D5, 0xF20F, 0xF08A, 0xEF7C, 0xEF16, 0xEF16, 0xEF16, ++- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, ++- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, ++- 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xEF16, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, ++- 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8C, 0xED8E, 0xED96, ++- 0xEDA1, 0xEDAE, 0xEDBD, 0xEDCB, 0xEDD9, 0xEDE4, 0xEDEB, 0xEDEE, ++- 0xEDEB, 0xEDE1, 0xEDCE, 0xEDB2, 0xED8C, 0xED3E, 0xECBA, 0xEC15, ++- 0xEB61, 0xEAB3, 0xEA1E, 0xE9B6, 0xE98F, 0xE98F, 0xE98F, 0xE98F, ++- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, ++- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xE98F, ++- 0xE98F, 0xE98F, 0xE98F, 0xE98F, 0xCA4F, 0xCCDE, 0xD36C, 0xDC49, ++- 0xE5C8, 0xEE3A, 0xF3F0, 0xF65C, 0xF6A9, 0xF5C1, 0xF48B, 0xF3F0, ++- 0xF40B, 0xF441, 0xF469, 0xF45B, 0xF3F0, 0xF348, 0xF29F, 0xF1F3, ++- 0xF140, 0xF084, 0xEFBC, 0xEEE6, 0xEDFF, 0xED04, 0xEBF3, 0xEAC9, ++- 0xE983, 0xE81F, 0xE413, 0xDE24, 0xD857, 0xD1BA, 0xCAC6, 0xC3F8, ++- 0xBDCA, 0xB8B8, 0xB53D, 0xB3D3, 0xB59B, 0xBA9B, 0xC1A7, 0xC994, ++- 0xD134, 0xD75C, 0xDAE0, 0xDC7E, 0xDDC0, 0xDEB0, 0xDF55, 0xDFBA, ++- 0xDFE7, 0xDFE6, 0xDFBE, 0xDF7A, 0xDF21, 0xDEBE, 0xDE58, 0xDDFA, ++- 0xDDAB, 0xDD75, 0xDD62, 0xFB1D, 0xFB8D, 0xFC39, 0xFC27, 0xFA60, ++- 0xF5E9, 0xEDCC, 0xDEE3, 0xC966, 0xB168, 0x9AFB, 0x8A34, 0x7F67, ++- 0x77E4, 0x7322, 0x709A, 0x6FC7, 0x703C, 0x71C8, 0x743F, 0x7774, ++- 0x7B3D, 0x7F6C, 0x83D9, 0x8851, 0x8DBB, 0x948E, 0x9BFE, 0xA341, ++- 0xA98B, 0xA98B, 0xB1A9, 0xB96E, 0xC239, 0xCB67, 0xD457, 0xDC66, ++- 0xE2F1, 0xE755, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, ++- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, ++- 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, 0xE8F0, ++- 0xE8F0, 0xE8F0, 0xD2DC, 0xD582, 0xDBEE, 0xE3D8, 0xEAFB, 0xEF0E, ++- 0xEDC9, 0xE38C, 0xD18F, 0xBCD5, 0xAA60, 0x9F31, 0x9D39, 0xA120, ++- 0xA800, 0xAEEF, 0xB306, 0xB4A0, 0xB5FC, 0xB70A, 0xB7B6, 0xB7F1, ++- 0xB7A7, 0xB6C7, 0xB53F, 0xB1FB, 0xACA3, 0xA642, 0x9FE4, 0x9A92, ++- 0x9A92, 0xA159, 0xA7D5, 0xAF2D, 0xB6D8, 0xBE4E, 0xC508, 0xCA7F, ++- 0xCE29, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, ++- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, ++- 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, 0xCF80, ++- 0xCF80, 0xD4B4, 0xD4F4, 0xD5C2, 0xD734, 0xD95D, 0xDC52, 0xE027, ++- 0xE5A2, 0xECDD, 0xF4F1, 0xFCF5, 0x0400, 0x0A9B, 0x1160, 0x1785, ++- 0x1C3F, 0x1EC2, 0x1F5D, 0x1F01, 0x1DDE, 0x1C23, 0x19FD, 0x179C, ++- 0x152D, 0x12E0, 0x1037, 0x0CD9, 0x092D, 0x0596, 0x027B, 0x027B, ++- 0xFD63, 0xF883, 0xF2FD, 0xED39, 0xE79C, 0xE28D, 0xDE72, 0xDBB0, ++- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, ++- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, ++- 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, 0xDAAE, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0xFFF7, 0xFFDE, 0xFFB8, 0xFF8B, 0xFF5A, 0xFF28, 0xFEFB, ++- 0xFED6, 0xFEBC, 0xFEB3, 0xFEBD, 0xFEE0, 0xFF1F, 0xFF7E, 0x0000, ++- 0x009A, 0x0194, 0x036C, 0x06A4, 0x0BBB, 0x1745, 0x2715, 0x318D, ++- 0x3284, 0x2F10, 0x2B6E, 0x2BDD, 0x33E4, 0x4074, 0x4BE8, 0x509A, ++- 0x4F81, 0x4D72, 0x4A95, 0x4710, 0x430B, 0x3EAD, 0x3A1E, 0x3585, ++- 0x3109, 0x2CD1, 0x2906, 0x25CE, 0x2351, 0x21B6, 0x2124, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0xFFF4, 0xFFD2, 0xFFA0, 0xFF62, 0xFF20, 0xFEDE, 0xFEA0, 0xFE6E, ++- 0xFE4C, 0xFE3F, 0xFE4E, 0xFE7D, 0xFED1, 0xFF50, 0x0000, 0x011D, ++- 0x0307, 0x05F6, 0x0A24, 0x0FC9, 0x1AE9, 0x29B1, 0x339A, 0x3595, ++- 0x33F9, 0x3153, 0x3034, 0x318C, 0x33E8, 0x363F, 0x3789, 0x37E9, ++- 0x3833, 0x3868, 0x388D, 0x38A2, 0x38AA, 0x38A8, 0x389E, 0x388D, ++- 0x3879, 0x3863, 0x384E, 0x383D, 0x3830, 0x382C, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, ++- 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF549, 0xF544, ++- 0xF536, 0xF520, 0xF506, 0xF4EA, 0xF4CE, 0xF4B4, 0xF49F, 0xF491, ++- 0xF48B, 0xF491, 0xF4A5, 0xF4C9, 0xF4FF, 0xF549, 0xF5F7, 0xF730, ++- 0xF8BE, 0xFA68, 0xFBF8, 0xFDA4, 0xFF6D, 0x00C8, 0x0046, 0xFEA0, ++- 0xFE8C, 0x02C3, 0x0F97, 0x2263, 0x336B, 0x3AF6, 0x3A7F, 0x38C8, ++- 0x3600, 0x3258, 0x2E02, 0x292E, 0x240E, 0x1ED0, 0x19A8, 0x14C5, ++- 0x1057, 0x0C91, 0x09A3, 0x07BC, 0x0710, 0xC7DD, 0xC75C, 0xC650, ++- 0xC571, 0xC572, 0xC70A, 0xCAEE, 0xD3CD, 0xE173, 0xF044, 0xFCA3, ++- 0xFCA3, 0xFCB5, 0xFCE8, 0xFD34, 0xFD92, 0xFDFC, 0xFE6A, 0xFED6, ++- 0xFF39, 0xFF8C, 0xFFC8, 0xFFE6, 0xFFDF, 0xFFAC, 0xFF47, 0xFEA8, ++- 0xFDC9, 0xFCA3, 0xF777, 0xED63, 0xE2AB, 0xD70D, 0xC952, 0xBC4D, ++- 0xB2CE, 0xAFAA, 0xBED4, 0xDA68, 0xEA6F, 0xEC81, 0xEE34, 0xEF90, ++- 0xF09B, 0xF15B, 0xF1D8, 0xF217, 0xF220, 0xF1F9, 0xF1A8, 0xF134, ++- 0xF0A3, 0xEFFD, 0xEF48, 0xEE89, 0xEDC9, 0xED0D, 0xEC5B, 0xEBBC, ++- 0xEB34, 0xEACB, 0xEA87, 0xEA6F, 0x054B, 0x028E, 0xFB6C, 0xF184, ++- 0xE676, 0xDBE2, 0xD368, 0xCD48, 0xC861, 0xC440, 0xC072, 0xC072, ++- 0xC29F, 0xC512, 0xC7B7, 0xCA78, 0xCD3F, 0xCFF9, 0xD291, 0xD4F0, ++- 0xD703, 0xD8B4, 0xD9EF, 0xDA9D, 0xDA28, 0xD849, 0xD566, 0xD1E7, ++- 0xCE30, 0xCAAA, 0xC7BA, 0xC688, 0xC6A9, 0xC6DE, 0xC76E, 0xC8A1, ++- 0xCA5F, 0xCC58, 0xCE83, 0xD0D4, 0xD33F, 0xD5B9, 0xD837, 0xDAAD, ++- 0xDD12, 0xDF58, 0xE175, 0xE35E, 0xE507, 0xE665, 0xE76E, 0xE814, ++- 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, 0xE84E, ++- 0xE84E, 0xE84E, 0xE84E, 0x2BD6, 0x288C, 0x2079, 0x164D, 0x0CBC, ++- 0x0675, 0x062A, 0x10EE, 0x256A, 0x3CAF, 0x4FCD, 0x4FCD, 0x4EDF, ++- 0x4DC5, 0x4C8D, 0x4B44, 0x49F8, 0x48B7, 0x478E, 0x468C, 0x45BD, ++- 0x4530, 0x44F3, 0x4512, 0x45EB, 0x47AB, 0x4A16, 0x4CF3, 0x5007, ++- 0x5316, 0x55E7, 0x59FE, 0x5D4C, 0x60D7, 0x636C, 0x63DA, 0x6299, ++- 0x60FD, 0x5F14, 0x5CEB, 0x5A91, 0x5814, 0x5584, 0x52ED, 0x5060, ++- 0x4DE9, 0x4B98, 0x497A, 0x479F, 0x4614, 0x44E9, 0x442A, 0x43E8, ++- 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, 0x43E8, ++- 0x43E8, 0x43E8, 0xCCF6, 0xC92A, 0xBF55, 0xB1CA, 0xA2DD, 0x94E2, ++- 0x8A2E, 0x8399, 0x7F91, 0x7CCF, 0x7A07, 0x7A07, 0x7C40, 0x7EC0, ++- 0x8175, 0x8444, 0x8719, 0x89E1, 0x8C86, 0x8EF2, 0x9111, 0x92CD, ++- 0x9411, 0x94C8, 0x944F, 0x925D, 0x8F62, 0x8BCD, 0x880F, 0x8496, ++- 0x81D3, 0x82AE, 0x8523, 0x87DF, 0x8A92, 0x8CEC, 0x8F18, 0x916E, ++- 0x93E4, 0x9672, 0x990C, 0x9BA9, 0x9E40, 0xA0C5, 0xA331, 0xA579, ++- 0xA792, 0xA974, 0xAB14, 0xAC69, 0xAD68, 0xAE09, 0xAE41, 0xAE41, ++- 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, 0xAE41, ++- 0xAE41, 0x0000, 0x0024, 0x0082, 0x00FE, 0x0180, 0x01EE, 0x022D, ++- 0x0230, 0x0208, 0x01C9, 0x018B, 0x0164, 0x0155, 0x0150, 0x0151, ++- 0x0159, 0x0164, 0x0178, 0x0196, 0x01B7, 0x01D4, 0x01E5, 0x01F8, ++- 0x0229, 0x022C, 0x022C, 0x022B, 0x0228, 0x0224, 0x0221, 0x021E, ++- 0x021D, 0x021C, 0x021C, 0x021B, 0x021B, 0x021A, 0x021A, 0x021A, ++- 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, 0x021A, ++- 0x021A, 0x021A, 0x021A, 0x021B, 0x021B, 0x021B, 0x021B, 0x021C, ++- 0x021C, 0x021C, 0x021C, 0x021C, 0x021D, 0x021D, 0x021D, 0x021D, ++- 0xFF30, 0xFF3E, 0xFF62, 0xFF8E, 0xFFB7, 0xFFD0, 0xFFCD, 0xFF9F, ++- 0xFF4B, 0xFEE8, 0xFE8D, 0xFE50, 0xFE34, 0xFE2A, 0xFE2E, 0xFE3C, ++- 0xFE50, 0xFE67, 0xFE88, 0xFEBF, 0xFF16, 0x0003, 0x00D4, 0xFFAC, ++- 0xFF8B, 0xFF77, 0xFF6D, 0xFF69, 0xFF6B, 0xFF6E, 0xFF71, 0xFF70, ++- 0xFF6D, 0xFF6A, 0xFF68, 0xFF67, 0xFF66, 0xFF65, 0xFF65, 0xFF64, ++- 0xFF64, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF65, 0xFF66, ++- 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, ++- 0xFF6D, 0xFF6E, 0xFF6E, 0xFF6F, 0xFF6F, 0xFF70, 0xFF70, 0xC9D8, ++- 0xC8B6, 0xC5F4, 0xC289, 0xBF6E, 0xBD98, 0xBE00, 0xC203, 0xC91B, ++- 0xD169, 0xD90E, 0xDE29, 0xE085, 0xE161, 0xE10F, 0xDFE1, 0xDE29, ++- 0xDC17, 0xD91C, 0xD46E, 0xCD46, 0xBAA7, 0xAA38, 0xC071, 0xC2E0, ++- 0xC462, 0xC528, 0xC565, 0xC54A, 0xC50C, 0xC4DB, 0xC4EA, 0xC525, ++- 0xC554, 0xC579, 0xC595, 0xC5A9, 0xC5B7, 0xC5BF, 0xC5C2, 0xC5C3, ++- 0xC5C1, 0xC5BE, 0xC5BC, 0xC5BB, 0xC5B9, 0xC5B4, 0xC5AB, 0xC5A1, ++- 0xC594, 0xC585, 0xC575, 0xC564, 0xC553, 0xC541, 0xC530, 0xC520, ++- 0xC512, 0xC505, 0xC4FA, 0xC4F2, 0xC4EC, 0xC4EA, 0x1E4A, 0x1FA0, ++- 0x22FA, 0x275B, 0x2BC3, 0x2F36, 0x30B6, 0x2F67, 0x2BE5, 0x276B, ++- 0x232F, 0x206A, 0x1EA4, 0x1D0C, 0x1C58, 0x1D3B, 0x206A, 0x2810, ++- 0x33AB, 0x3FED, 0x4984, 0x4EE3, 0x517C, 0x5287, 0x5300, 0x531F, ++- 0x52FA, 0x52A3, 0x522E, 0x51B0, 0x513C, 0x50E6, 0x509F, 0x504D, ++- 0x4FF4, 0x4F96, 0x4F36, 0x4ED6, 0x4E7A, 0x4E24, 0x4DD8, 0x4D98, ++- 0x4D66, 0x4D46, 0x4D3B, 0x4D43, 0x4D5B, 0x4D81, 0x4DB1, 0x4DEC, ++- 0x4E2E, 0x4E76, 0x4EC2, 0x4F10, 0x4F5E, 0x4FAA, 0x4FF2, 0x5035, ++- 0x506F, 0x50A0, 0x50C6, 0x50DD, 0x50E6, 0x1B09, 0x1AA1, 0x19A0, ++- 0x1858, 0x171C, 0x163E, 0x1610, 0x16F1, 0x18AF, 0x1ACA, 0x1CBF, ++- 0x1E0B, 0x1ED7, 0x1F7C, 0x1FBA, 0x1F53, 0x1E0B, 0x1ABB, 0x15AA, ++- 0x10B9, 0x0DC9, 0x0EE7, 0x1278, 0x14E6, 0x156A, 0x15AD, 0x15BC, ++- 0x15A8, 0x157E, 0x154F, 0x152A, 0x151C, 0x1520, 0x1524, 0x1527, ++- 0x152A, 0x152D, 0x152F, 0x1531, 0x1533, 0x1535, 0x1536, 0x1537, ++- 0x1538, 0x1538, 0x1537, 0x1537, 0x1536, 0x1534, 0x1533, 0x1531, ++- 0x152F, 0x152C, 0x152A, 0x1528, 0x1526, 0x1523, 0x1522, 0x1520, ++- 0x151E, 0x151D, 0x151D, 0x151C, 0x1144, 0x11C7, 0x1302, 0x1483, ++- 0x15D7, 0x168B, 0x162D, 0x140C, 0x1066, 0x0C29, 0x0846, 0x05AB, ++- 0x0454, 0x03A1, 0x0399, 0x0445, 0x05AB, 0x0930, 0x0E9D, 0x138F, ++- 0x15A4, 0x118C, 0x09C6, 0x04AC, 0x035E, 0x02A9, 0x026C, 0x0284, ++- 0x02CD, 0x0325, 0x0369, 0x0378, 0x035F, 0x0347, 0x0330, 0x031A, ++- 0x0305, 0x02F1, 0x02E0, 0x02D0, 0x02C2, 0x02B7, 0x02AF, 0x02AA, ++- 0x02A9, 0x02AA, 0x02B0, 0x02B8, 0x02C3, 0x02D0, 0x02DE, 0x02EE, ++- 0x02FF, 0x0310, 0x0321, 0x0332, 0x0342, 0x0351, 0x035E, 0x0368, ++- 0x0371, 0x0376, 0x0378, 0xAC44, 0xAB62, 0xA93B, 0xA68A, 0xA40C, ++- 0xA27D, 0xA299, 0xA55E, 0xAA62, 0xB04C, 0xB5BF, 0xB962, 0xBB64, ++- 0xBCAE, 0xBCF5, 0xBBF4, 0xB962, 0xB28C, 0xA804, 0x9E69, 0x9A5A, ++- 0xA245, 0xB14F, 0xBB2D, 0xBDAE, 0xBF05, 0xBF75, 0xBF41, 0xBEAC, ++- 0xBDFB, 0xBD70, 0xBD50, 0xBD7B, 0xBDA5, 0xBDCE, 0xBDF5, 0xBE1A, ++- 0xBE3C, 0xBE5B, 0xBE77, 0xBE8E, 0xBEA1, 0xBEAF, 0xBEB8, 0xBEBB, ++- 0xBEB8, 0xBEAF, 0xBEA0, 0xBE8D, 0xBE77, 0xBE5D, 0xBE41, 0xBE24, ++- 0xBE05, 0xBDE7, 0xBDCA, 0xBDAE, 0xBD94, 0xBD7E, 0xBD6B, 0xBD5C, ++- 0xBD53, 0xBD50, 0x0000, 0xFE3D, 0xF9D4, 0xF419, 0xEE5D, 0xE9F4, ++- 0xE831, 0xEDB4, 0xF881, 0x0000, 0x01D9, 0x01F8, 0x012C, 0x003F, ++- 0x0000, 0x007B, 0x012B, 0x01F7, 0x02C9, 0x038D, 0x0453, 0x0524, ++- 0x05DB, 0x0655, 0x0665, 0x061E, 0x05B8, 0x0525, 0x0475, 0x0410, ++- 0x03F8, 0x03E9, 0x03E0, 0x03DE, 0x03E0, 0x03E6, 0x03EE, 0x03F7, ++- 0x0400, 0x0408, 0x040E, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, ++- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, ++- 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, ++- 0x0410, 0x0000, 0xFF71, 0xFE0A, 0xFC38, 0xFA65, 0xF8FF, 0xF86F, ++- 0xFA30, 0xFD9F, 0x0000, 0x009A, 0x00AB, 0x0070, 0x0023, 0x0000, ++- 0x0007, 0x0012, 0x001E, 0x002B, 0x0037, 0x0043, 0x004F, 0x005A, ++- 0x0060, 0x005D, 0x0053, 0x004B, 0x0049, 0x0048, 0x0048, 0x0048, ++- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, ++- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, ++- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, ++- 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, ++- 0xBF40, 0xBEEC, 0xBE45, 0xBDCE, 0xBE0C, 0xBF7F, 0xC2AB, 0xCD35, ++- 0xDC97, 0xE517, 0xE3A9, 0xDE6C, 0xD75F, 0xD082, 0xCBD4, 0xC99F, ++- 0xC88C, 0xC830, 0xC81C, 0xC7E4, 0xC7A7, 0xC7B0, 0xC7D6, 0xC7F1, ++- 0xC7F2, 0xC7F6, 0xC811, 0xC85F, 0xC8C3, 0xC8FE, 0xC90B, 0xC914, ++- 0xC918, 0xC91A, 0xC918, 0xC915, 0xC911, 0xC90C, 0xC906, 0xC902, ++- 0xC8FF, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, ++- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, ++- 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0xC8FE, 0x2537, ++- 0x24DD, 0x2414, 0x2346, 0x22DA, 0x233A, 0x24CE, 0x2C10, 0x3680, ++- 0x3A0D, 0x32D4, 0x2667, 0x18DC, 0x0E4A, 0x0ACA, 0x114F, 0x1F1F, ++- 0x2FCC, 0x3EE7, 0x4801, 0x499C, 0x46AC, 0x4170, 0x3C25, 0x3909, ++- 0x3B7C, 0x3F1F, 0x3F83, 0x3F0B, 0x3E88, 0x3E40, 0x3DEF, 0x3D97, ++- 0x3D3B, 0x3CDE, 0x3C84, 0x3C30, 0x3BE3, 0x3BA3, 0x3B71, 0x3B51, ++- 0x3B45, 0x3B5D, 0x3B9C, 0x3BFA, 0x3C6B, 0x3CE7, 0x3D62, 0x3DD4, ++- 0x3E31, 0x3E70, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, ++- 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0x3E88, 0xD64A, 0xD69C, ++- 0xD798, 0xD946, 0xDBAF, 0xDED9, 0xE2CF, 0xE86C, 0xEFD6, 0xF803, ++- 0xFFE8, 0x067A, 0x0AB1, 0x0C88, 0x0CEC, 0x0C3A, 0x0ACC, 0x0900, ++- 0x0730, 0x05B9, 0x040E, 0x01C9, 0xFF83, 0xFDD4, 0xFD34, 0xFD47, ++- 0xFD67, 0xFD58, 0xFD4E, 0xFD49, 0xFD46, 0xFD46, 0xFD47, 0xFD4B, ++- 0xFD51, 0xFD57, 0xFD5D, 0xFD63, 0xFD68, 0xFD6B, 0xFD6D, 0xFD6E, ++- 0xFD6E, 0xFD6E, 0xFD6E, 0xFD6D, 0xFD6C, 0xFD6C, 0xFD6B, 0xFD6B, ++- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, ++- 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xFD6B, 0xEC41, 0xEC2C, 0xEBE9, ++- 0xEB76, 0xEACD, 0xE9E9, 0xE8C8, 0xE6AD, 0xE378, 0xE009, 0xDD41, ++- 0xDC00, 0xDD28, 0xE11C, 0xE72D, 0xEE9C, 0xF6AD, 0xFEA1, 0x05BA, ++- 0x0B3C, 0x0E2E, 0x0EE0, 0x0E80, 0x0E3D, 0x0DEB, 0x0D18, 0x0C86, ++- 0x0C6D, 0x0C77, 0x0C92, 0x0CAE, 0x0CB9, 0x0CB2, 0x0CA6, 0x0C97, ++- 0x0C87, 0x0C76, 0x0C66, 0x0C59, 0x0C51, 0x0C4C, 0x0C49, 0x0C49, ++- 0x0C49, 0x0C4B, 0x0C4D, 0x0C4F, 0x0C50, 0x0C51, 0x0C51, 0x0C51, ++- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0x0C51, ++- 0x0C51, 0x0C51, 0x0C51, 0x0C51, 0xB59E, 0xB71E, 0xBAB7, 0xBF0E, ++- 0xC2C8, 0xC489, 0xC2F7, 0xBCA3, 0xB259, 0xA616, 0x99D9, 0x8F9F, ++- 0x8967, 0x878F, 0x887D, 0x8B38, 0x8EC9, 0x9237, 0x9489, 0x94C8, ++- 0x9135, 0x8A64, 0x82DC, 0x7D21, 0x7A6C, 0x7970, 0x78FA, 0x788A, ++- 0x7859, 0x7851, 0x785B, 0x7860, 0x785E, 0x7864, 0x786F, 0x787E, ++- 0x788D, 0x789C, 0x78A9, 0x78B1, 0x78B4, 0x78B6, 0x78B7, 0x78B6, ++- 0x78B5, 0x78B4, 0x78B2, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, ++- 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, 0x78B1, ++- 0x78B1, 0x78B1, 0x78B1, 0x8001, 0x8001, 0x4171, 0xBF5F, 0xBF5F, ++- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, ++- 0xBF60, 0xBF61, 0xBF61, 0xBF61, 0xBF5F, 0xBF5A, 0xBF53, 0xBF4B, ++- 0xBF43, 0xBF3D, 0xBF36, 0xBF2F, 0xBF29, 0xBF22, 0xBF1E, 0xBF1C, ++- 0xBF1E, 0xBF23, 0xBF34, 0xBF5F, 0xBFA2, 0xBFF0, 0xC047, 0xC0A2, ++- 0xC0FF, 0xC15A, 0xC1B0, 0xC1FE, 0xC241, 0xC274, 0xC296, 0xC2A1, ++- 0xC28A, 0xC24B, 0xC1ED, 0xC17C, 0xC100, 0xC085, 0xC013, 0xBFB6, ++- 0xBF76, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, ++- 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0xBF5F, 0x8001, 0x8001, 0x4171, ++- 0xBF5F, 0x0000, 0xFE18, 0xF962, 0xF363, 0xED9E, 0xE998, 0xE8D4, ++- 0xEDB2, 0xF783, 0x0334, 0x0DB7, 0x154D, 0x13F5, 0x11D8, 0x0F19, ++- 0x0BDB, 0x0843, 0x0384, 0xFD86, 0xF77C, 0xF29B, 0xF017, 0xF7A3, ++- 0x01BC, 0x05F7, 0x0A32, 0x0E41, 0x11F6, 0x1525, 0x17A1, 0x193C, ++- 0x19C9, 0x18E0, 0x1660, 0x1286, 0x0D90, 0x07BD, 0x014A, 0xF375, ++- 0xE461, 0xDE7B, 0xDCAD, 0xDBD7, 0xDB3C, 0xDAD6, 0xDA9B, 0xDA83, ++- 0xDA86, 0xDA9D, 0xDABF, 0xDAF3, 0xDB43, 0xDBAA, 0xDC21, 0xDCA4, ++- 0xDD2C, 0xDDB4, 0xDE37, 0xDEAE, 0xDF14, 0xDF65, 0xDF99, 0xDFAB, ++- 0x0000, 0x000D, 0x002B, 0x004D, 0x0065, 0x0066, 0x0041, 0xFFDA, ++- 0xFF31, 0xFE6B, 0xFDAD, 0xFCE0, 0xFCBE, 0xFCA3, 0xFC9A, 0xFCAB, ++- 0xFCE0, 0xFD2B, 0xFD85, 0xFE04, 0xFEBE, 0xFFC8, 0x02C3, 0x056E, ++- 0x05E4, 0x0621, 0x0632, 0x0623, 0x0602, 0x05DA, 0x05B9, 0x05AD, ++- 0x05AB, 0x05A6, 0x059E, 0x0594, 0x0589, 0x057F, 0x0571, 0x055B, ++- 0x056A, 0x0513, 0x040C, 0x02D2, 0x017C, 0x0021, 0xFEDB, 0xFDBF, ++- 0xFCE6, 0xFC67, 0xFC34, 0xFC28, 0xFC3F, 0xFC71, 0xFCB8, 0xFD0F, ++- 0xFD6F, 0xFDD1, 0xFE2F, 0xFE83, 0xFEC7, 0xFEF5, 0xFF05, 0xFC62, ++- 0xFB4A, 0xF885, 0xF4D6, 0xF100, 0xEDC6, 0xEBEB, 0xEC2E, 0xEE26, ++- 0xF0D3, 0xF338, 0xF588, 0xF5E9, 0xF635, 0xF64F, 0xF61F, 0xF588, ++- 0xF474, 0xF2F4, 0xF12B, 0xEF3D, 0xED4A, 0xEA46, 0xE829, 0xE830, ++- 0xE872, 0xE8E5, 0xE97A, 0xEA26, 0xEADD, 0xEB92, 0xEC39, 0xECDE, ++- 0xED92, 0xEE51, 0xEF18, 0xEFE2, 0xF0AC, 0xF191, 0xF279, 0xF370, ++- 0xF3EA, 0xF3AA, 0xF348, 0xF2CE, 0xF24B, 0xF1CB, 0xF15A, 0xF107, ++- 0xF0DD, 0xF0D6, 0xF0E0, 0xF0F9, 0xF11D, 0xF14A, 0xF17D, 0xF1B2, ++- 0xF1E7, 0xF219, 0xF245, 0xF268, 0xF27F, 0xF288, 0x0000, 0x0371, ++- 0x0BF4, 0x16CE, 0x2145, 0x289E, 0x2A1F, 0x2143, 0x0F5E, 0xFA82, ++- 0xE8BA, 0xE305, 0xDF18, 0xDAD6, 0xD701, 0xD45C, 0xD3A9, 0xD72A, ++- 0xDE28, 0xE4EB, 0xE7BB, 0xE6BF, 0xE4BF, 0xE1FA, 0xDEAB, 0xDB11, ++- 0xD768, 0xD3EE, 0xD0E1, 0xCE7E, 0xCF29, 0xD1FB, 0xD36E, 0xD40A, ++- 0xD535, 0xD856, 0xDED2, 0xF03F, 0x0867, 0x1707, 0x1AAC, 0x1CE6, ++- 0x1DF4, 0x1E11, 0x1D7B, 0x1C6F, 0x1B2B, 0x19EC, 0x18EE, 0x186F, ++- 0x1833, 0x17DA, 0x176A, 0x16E9, 0x165D, 0x15CB, 0x153A, 0x14AF, ++- 0x1430, 0x13C3, 0x136E, 0x1336, 0x1323, 0x0000, 0xFFAD, 0xFEDC, ++- 0xFDCC, 0xFCBD, 0xFBED, 0xFB9B, 0xFC23, 0xFD65, 0xFEDF, 0x0011, ++- 0x0011, 0x01B3, 0x03AC, 0x05A4, 0x0741, 0x082D, 0x07BF, 0x063D, ++- 0x04B5, 0x0432, 0x04AD, 0x0564, 0x0649, 0x0751, 0x086E, 0x0993, ++- 0x0AB4, 0x0BC5, 0x0CB9, 0x0D85, 0x0DD7, 0x0E2B, 0x0EDB, 0x0F35, ++- 0x0E89, 0x0C26, 0x043A, 0xF8D2, 0xF206, 0xF0A6, 0xF000, 0xEFF3, ++- 0xF05C, 0xF118, 0xF204, 0xF300, 0xF3E7, 0xF499, 0xF4F1, 0xF50D, ++- 0xF51F, 0xF52A, 0xF52F, 0xF52E, 0xF529, 0xF521, 0xF517, 0xF50D, ++- 0xF502, 0xF4F9, 0xF4F3, 0xF4F1, 0x0884, 0x09A5, 0x0C7A, 0x1032, ++- 0x13F8, 0x16F9, 0x1861, 0x1715, 0x138A, 0x0F4A, 0x0BDD, 0x0BDD, ++- 0x08DA, 0x052E, 0x018B, 0xFEA4, 0xFD2A, 0xFE26, 0x0124, 0x04A2, ++- 0x071A, 0x087A, 0x09B6, 0x0AD3, 0x0BD5, 0x0CC3, 0x0DA1, 0x0E74, ++- 0x0F42, 0x1010, 0x1054, 0x1006, 0x0FF7, 0x1026, 0x1023, 0x0F7E, ++- 0x0DC6, 0x08AE, 0x016B, 0xFCD2, 0xFB5D, 0xFA47, 0xF981, 0xF8FD, ++- 0xF8AD, 0xF883, 0xF86F, 0xF864, 0xF853, 0xF82F, 0xF803, 0xF7E5, ++- 0xF7D3, 0xF7CC, 0xF7CD, 0xF7D5, 0xF7E2, 0xF7F2, 0xF803, 0xF813, ++- 0xF821, 0xF82B, 0xF82F, 0x0000, 0x0010, 0x0034, 0x0059, 0x0069, ++- 0x0052, 0x0000, 0x003B, 0x00B3, 0xFFA8, 0xFB5A, 0xDF68, 0xC869, ++- 0xB1CD, 0x9C4A, 0x8898, 0x766D, 0x652C, 0x54FB, 0x4603, 0x386D, ++- 0x2C73, 0x2261, 0x1A7C, 0x150C, 0x1198, 0x0F4A, 0x0DD9, 0x0CFD, ++- 0x0C70, 0x0BE8, 0x0B1F, 0x0AA2, 0x0AC9, 0x0AF8, 0x0AF8, 0x0AF8, ++- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, ++- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, ++- 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, 0x0AF8, ++- 0x0AF8, 0x0AF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ++- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0033, 0x0099, ++- 0x00E5, 0x00CC, 0x0000, 0xFDC3, 0xFA56, 0xF6F0, 0xF4C8, 0xF4F5, ++- 0xF69F, 0xF80F, 0xF8CE, 0xF984, 0xFA33, 0xFAD9, 0xFB78, 0xFC0E, ++- 0xFC9B, 0xFD1F, 0xFD76, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++- 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, 0xFD90, ++- 0xFD90, 0x40A1, 0x4107, 0x4202, 0x433D, 0x4462, 0x451E, 0x451C, ++- 0x43B9, 0x411E, 0x3E2B, 0x3BBD, 0x3BBD, 0x3BB4, 0x3BA1, 0x3B93, ++- 0x3B98, 0x3BBD, 0x3BBF, 0x3BB3, 0x3C32, 0x3DD2, 0x4257, 0x4885, ++- 0x4C78, 0x4DB9, 0x4E7C, 0x4EDC, 0x4EF5, 0x4EE3, 0x4EC1, 0x4EAC, ++- 0x4EBE, 0x4EC5, 0x4E9F, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, ++- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, ++- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, ++- 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, 0x4E85, +++0x0000, 0x00AA, 0x00AA, 0x00AA, 0x00AB, 0x00AD, 0x00AF, 0x00B2, 0x00B4, +++ 0x00B7, 0x00BB, 0x00BE, 0x00C1, 0x00C4, 0x00C7, 0x00C9, 0x00CB, 0x00CD, +++ 0x00CE, 0x00CE, 0x00CD, 0x00CA, 0x00C6, 0x00C0, 0x00BA, 0x00B5, 0x00B1, +++ 0x00AD, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, 0x00AC, +++ 0x00AC, 0x00AB, 0x00A9, 0x00A6, 0x00A3, 0x00A2, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x3FFF, 0x3FFF, 0x3EE2, 0x3C1A, 0x387D, 0x34E0, +++ 0x3218, 0x30FC, 0x3995, 0x51D5, 0x7769, 0xA7FE, 0xE142, 0x20E3, 0x648D, +++ 0xA9EF, 0xEEB4, 0x308D, 0x6D25, 0xA2A4, 0xD11D, 0xF91E, 0x1B35, 0x37EC, +++ 0x4FD4, 0x6378, 0x7366, 0x802B, 0x8A4A, 0x921A, 0x97E6, 0x9BFA, 0x9EA2, +++ 0xA02A, 0xA0DD, 0xA108, 0x9857, 0x839B, 0x6ADD, 0x5622, 0x4D70, 0x4D77, +++ 0x4D8A, 0x4DA5, 0x4DC6, 0x4DEA, 0x4E0E, 0x4E30, 0x4E4B, 0x4E5D, 0x4E64, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x40A1, 0x0000, 0x0000, 0xFC7C, +++ 0xF4C4, 0xED0B, 0xE988, 0xE988, 0xE988, 0xEA0D, 0xEB7D, 0xEDAB, 0xF067, +++ 0xF384, 0xF6D3, 0xFA26, 0xFD4F, 0x0020, 0x028D, 0x04AC, 0x0682, 0x0816, +++ 0x096B, 0x0A88, 0x0B71, 0x0C2C, 0x0CBE, 0x0D2B, 0x0D79, 0x0DAE, 0x0DCD, +++ 0x0DDE, 0x0DE4, 0x0DE5, 0x0DE5, 0x0DE5, 0x0DE5, 0x0C87, 0x0946, 0x0564, +++ 0x0223, 0x00C6, 0x04F0, 0x09AF, 0x0ABD, 0x0B9A, 0x0C4C, 0x0CD5, 0x0D3D, +++ 0x0D87, 0x0DB9, 0x0DD7, 0x0DE7, 0x0DED, 0xFFFF, 0xFFFF, 0x01FD, 0x065D, +++ 0x0ABD, 0x0CBA, 0x0CBA, 0x0CBA, 0x0C3C, 0x0AEA, 0x0901, 0x06BD, 0x045A, +++ 0x0216, 0x002D, 0xFEDA, 0xFE5C, 0xFE64, 0xFE7C, 0xFEA1, 0xFED1, 0xFF0A, +++ 0xFF4A, 0xFF8E, 0xFFD4, 0x001B, 0x005F, 0x009F, 0x00D8, 0x0108, 0x012D, +++ 0x0145, 0x014D, 0x014D, 0x014D, 0x014D, 0x012F, 0x00E7, 0x0091, 0x0049, +++ 0x002B, 0x003D, 0x0055, 0x0060, 0x0069, 0x0070, 0x0076, 0x007A, 0x007D, +++ 0x007F, 0x0081, 0x0081, 0x0082, 0x0884, 0x0884, 0x0C6F, 0x150F, 0x1DAE, +++ 0x2199, 0x2199, 0x2199, 0x207E, 0x1D86, 0x193B, 0x1423, 0x0EC8, 0x09B0, +++ 0x0564, 0x026D, 0x0151, 0x015B, 0x0174, 0x019D, 0x01D1, 0x020F, 0x0254, +++ 0x029D, 0x02E9, 0x0336, 0x037F, 0x03C4, 0x0402, 0x0436, 0x045E, 0x0478, +++ 0x0482, 0x0482, 0x0482, 0x0482, 0x03E4, 0x026E, 0x00AF, 0xFF37, 0xFE9A, +++ 0xFEA1, 0xFEA8, 0xFEA2, 0xFE91, 0xFE78, 0xFE59, 0xFE37, 0xFE14, 0xFDF1, +++ 0xFDD2, 0xFDB9, 0xFDA9, 0xFDA2, 0x0000, 0x0000, 0xFEA3, 0xFBA6, 0xF8A9, +++ 0xF74D, 0xF74D, 0xF74D, 0xF8E0, 0xFD19, 0x0337, 0x0A76, 0x1216, 0x1955, +++ 0x1F72, 0x23AB, 0x253E, 0x2444, 0x217A, 0x1D16, 0x174D, 0x1054, 0x0862, +++ 0xFFAB, 0xF666, 0xECD0, 0xE343, 0xDA22, 0xD1CD, 0xCAA8, 0xC514, 0xC174, +++ 0xC029, 0xC029, 0xC029, 0xC029, 0xC5DB, 0xD36F, 0xE3A5, 0xF13A, 0xF6EC, +++ 0xFFFF, 0xFFFF, 0x002B, 0x008B, 0x00EA, 0x0116, 0x0116, 0x0116, 0x010D, +++ 0x00F5, 0x00CE, 0x0099, 0x0059, 0x000E, 0xFFB9, 0xFF5D, 0xFEFA, 0xFE93, +++ 0xFE2B, 0xFDC7, 0xFD6C, 0xFD1C, 0xFCDE, 0xFCB6, 0xFCA7, 0xFD27, 0xFE76, +++ 0x0051, 0x0270, 0x0490, 0x066A, 0x07B9, 0x0838, 0x0838, 0x0838, 0x0838, +++ 0x069F, 0x02CE, 0xFE3F, 0xFA6E, 0xF8D4, 0xFC61, 0xFC61, 0xFD74, 0xFFD2, +++ 0x0231, 0x0344, 0x0344, 0x0344, 0x032B, 0x02E8, 0x0285, 0x020B, 0x0185, +++ 0x00FD, 0x007C, 0x000E, 0xFFBA, 0xFF81, 0xFF56, 0xFF37, 0xFF22, 0xFF15, +++ 0xFF0F, 0xFF0D, 0xFF0C, 0xFF15, 0xFF2B, 0xFF4A, 0xFF6D, 0xFF91, 0xFFB0, +++ 0xFFC6, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFCF, 0xFFA1, 0xFF35, 0xFEB3, 0xFE47, +++ 0xFE1A, 0x0001, 0xFFFE, 0xC170, 0xFB1C, 0xFB1C, 0x0B49, 0x2EDD, 0xD270, +++ 0xE29C, 0xE29C, 0xE29C, 0xE199, 0xDEC1, 0xDA5B, 0xD4B0, 0xCE08, 0xC6AA, +++ 0xBEDF, 0xB6EF, 0xAF22, 0x27B4, 0x20B3, 0x1A20, 0x13FE, 0x0E4F, 0x0914, +++ 0x0450, 0x0004, 0xFC31, 0xF8DB, 0xF604, 0xF3AC, 0xF1D6, 0xF085, 0xEFB8, +++ 0xEF74, 0xEF74, 0xEF74, 0xEF74, 0xF462, 0x0024, 0x0E2C, 0x19ED, 0x1EDB, +++ 0xD2DB, 0xD2DB, 0xDAF3, 0xECC3, 0x816D, 0x7954, 0x7954, 0x7954, 0x7B8E, +++ 0x8183, 0x8A23, 0x945D, 0x9F20, 0xA95A, 0xB1FB, 0xB7F0, 0xBA29, 0xC64C, +++ 0xC79A, 0xC9A2, 0xCC45, 0xCF63, 0xD2DE, 0xD696, 0xDA6D, 0xDE45, 0xE1FD, +++ 0xE578, 0xE896, 0xEB38, 0xED40, 0xEE8F, 0xEF05, 0xEF05, 0xEF05, 0xEF05, +++ 0xEB74, 0xE2F2, 0xD8CB, 0xD049, 0xCCB8, 0xD4B3, 0xD4B3, 0xC63D, 0xA66B, +++ 0x069A, 0xF823, 0xF823, 0xF823, 0xF8D8, 0xFADF, 0xFE0F, 0x0243, 0x0751, +++ 0x0D13, 0x1363, 0x1A18, 0x210C, 0xA81A, 0xAF30, 0xB63B, 0xBD2A, 0xC3ED, +++ 0xCA73, 0xD0AA, 0xD682, 0xDBE9, 0xE0CF, 0xE523, 0xE8D3, 0xEBCF, 0xEE06, +++ 0xEF67, 0xEFE0, 0xEFE0, 0xEFE0, 0xEFE0, 0xEA00, 0xDBFF, 0xCB47, 0xBD46, +++ 0xB766, 0xFFFF, 0xFFFF, 0xFE2B, 0xFA25, 0xF61F, 0xF44B, 0xF44B, 0xF44B, +++ 0xF44D, 0xF452, 0xF45A, 0xF465, 0xF472, 0xF481, 0xF492, 0xF4A5, 0xF4B9, +++ 0xF4CE, 0xF4E4, 0xF4FB, 0xF511, 0xF527, 0xF53D, 0xF552, 0xF566, 0xF579, +++ 0xF58A, 0xF59A, 0xF5A7, 0xF5B2, 0xF5BA, 0xF5BF, 0xF5C1, 0xF5C1, 0xF5C1, +++ 0xF5C1, 0xF060, 0xE38D, 0xD43E, 0xC76B, 0x420A, 0xFFFF, 0xFFFF, 0xFE75, +++ 0xFB11, 0xF7AE, 0xF623, 0xF623, 0xF623, 0xF634, 0xF663, 0xF6AF, 0xF714, +++ 0xF791, 0xF822, 0xF8C4, 0xF975, 0xFA32, 0xFAF9, 0xFBC6, 0xFC97, 0xFD6A, +++ 0xFE3C, 0xFF09, 0xFFD0, 0x008E, 0x013F, 0x01E1, 0x0272, 0x02EE, 0x0354, +++ 0x039F, 0x03CF, 0x03DF, 0x03DF, 0x03DF, 0x03DF, 0x0905, 0x154B, 0x23F2, +++ 0x3038, 0x4AA2, 0xCA4E, 0xCA4E, 0xCF2D, 0xD9E5, 0xE49C, 0xE97C, 0xE97C, +++ 0xE97C, 0xE992, 0xE9D3, 0xEA3A, 0xEAC5, 0xEB6F, 0xEC35, 0xED12, 0xEE04, +++ 0xEF07, 0xF016, 0xF12F, 0xF24D, 0xF36D, 0xF48C, 0xF5A4, 0xF6B4, 0xF7B6, +++ 0xF8A8, 0xF986, 0xFA4C, 0xFAF6, 0xFB80, 0xFBE8, 0xFC29, 0xFC3F, 0xFC3F, +++ 0xFC3F, 0xFC3F, 0xF3B2, 0xDF4E, 0xC6F7, 0xB293, 0x2A07, 0xFFFF, 0xFFFF, +++ 0xFEF0, 0xFC9B, 0xFA46, 0xF937, 0xF937, 0xF937, 0xF920, 0xF8DE, 0xF875, +++ 0xF7E8, 0xF73C, 0xF673, 0xF592, 0xF49D, 0xF396, 0xF283, 0xF166, 0xF043, +++ 0xEF1F, 0xEDFD, 0xECE0, 0xEBCC, 0xEAC6, 0xE9D0, 0xE8EF, 0xE827, 0xE77A, +++ 0xE6EE, 0xE684, 0xE643, 0xE62C, 0xE62C, 0xE62C, 0xE62C, 0xF137, 0x0B8C, +++ 0x2AFA, 0x454E, 0xD059, 0xF97B, 0xF97B, 0xF8CA, 0xF744, 0xF5BE, 0xF50D, +++ 0xF50D, 0xF50D, 0xF513, 0xF523, 0xF53C, 0xF55E, 0xF588, 0xF5B8, 0xF5EF, +++ 0xF62A, 0xF66A, 0xF6AC, 0xF6F1, 0xF738, 0xF77E, 0xF7C5, 0xF80A, 0xF84C, +++ 0xF88C, 0xF8C7, 0xF8FE, 0xF92E, 0xF958, 0xF97A, 0xF993, 0xF9A3, 0xF9A9, +++ 0xF9A9, 0xF9A9, 0xF9A9, 0xF63C, 0xEE10, 0xE44F, 0xDC24, 0xA748, 0xED8B, +++ 0xED8B, 0xED66, 0xED14, 0xECC2, 0xEC9D, 0xEC9D, 0xEC9D, 0xECB9, 0xED0B, +++ 0xED8D, 0xEE3A, 0xEF10, 0xF008, 0xF11E, 0xF24D, 0xF391, 0xF4E6, 0xF646, +++ 0xF7AD, 0xF916, 0xFA7D, 0xFBDD, 0xFD32, 0xFE76, 0xFFA6, 0x00BD, 0x01B5, +++ 0x028A, 0x0338, 0x03BA, 0x040B, 0x0427, 0x0427, 0x0427, 0x0427, 0xFA5A, +++ 0xE2FE, 0xC71D, 0xAFC1, 0x25F6, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, +++ 0x0001, 0x0001, 0xFF5A, 0xFD96, 0xFAFC, 0xF7D4, 0xF465, 0xF0F5, 0xEDCD, +++ 0xEB34, 0xE970, 0xE8CA, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, +++ 0xFFFE, 0x004C, 0x011D, 0x0251, 0x03C8, 0x055F, 0x06F6, 0x086C, 0x09A1, +++ 0x0A72, 0x0ABF, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, 0xC170, +++ 0xC213, 0xC3CE, 0xC65A, 0xC972, 0xCCD0, 0xD02E, 0xD346, 0xD5D2, 0xD78C, +++ 0xD830, 0x054B, 0x054B, 0x09A4, 0x1335, 0x1CC5, 0x211E, 0x211E, 0x211E, +++ 0x1FDB, 0x1C4D, 0x16CE, 0x0FB9, 0x0768, 0xFE35, 0xF47B, 0xEA94, 0xE0DA, +++ 0xD7A7, 0x4F57, 0x4842, 0x42C3, 0x3F35, 0x3DF1, 0x441C, 0x4A46, 0x4826, +++ 0x428B, 0x3A9F, 0x318A, 0x2875, 0x2089, 0x1AEE, 0x18CE, 0x18CE, 0x18CE, +++ 0x18CE, 0x208B, 0x32FE, 0x4903, 0xDB75, 0xE332, 0x2BD6, 0x2BD6, 0x26DD, +++ 0x1BEE, 0x10FF, 0x0C07, 0x0C07, 0x0C07, 0x0C95, 0x0E26, 0x1092, 0x13B1, +++ 0x175B, 0x1B68, 0x1FB2, 0x240F, 0x2858, 0x2C65, 0x4FF0, 0x4CD2, 0x4A66, +++ 0x48D5, 0x4846, 0x4F57, 0x5669, 0x560E, 0x551F, 0x53CD, 0x5249, 0x50C6, +++ 0x4F74, 0x4E85, 0x4E2A, 0x4E2A, 0x4E2A, 0x4E2A, 0x4D5C, 0x4B71, 0x4928, +++ 0x38C3, 0x3990, 0xCCF5, 0xCCF5, 0xD1B0, 0xDC17, 0xE67E, 0xEB39, 0xEB39, +++ 0xEB39, 0xE9F9, 0xE674, 0xE105, 0xDA04, 0xD1CA, 0xC8B1, 0xBF12, 0xB546, +++ 0xABA7, 0xA28E, 0x1A55, 0x1354, 0x0DE4, 0x0A60, 0x0920, 0x1331, 0x1D42, +++ 0x1C7F, 0x1A7D, 0x17A6, 0x1464, 0x1122, 0x0E4B, 0x0C49, 0x0B86, 0x0B86, +++ 0x0B86, 0x0B86, 0x10E6, 0x1DB6, 0x2D02, 0xB9D2, 0xBF32, 0xFFFF, 0xFFFF, +++ 0x0279, 0x07E9, 0x0D59, 0x0FD2, 0x0FD2, 0x0FD2, 0x0FD3, 0x0FD7, 0x0FE2, +++ 0x0FF8, 0x101C, 0x1052, 0x109E, 0x1102, 0x1183, 0x1224, 0x12E9, 0x13D5, +++ 0x156C, 0x17D9, 0x1A9C, 0x1D33, 0x1F20, 0x1FE1, 0x1EC8, 0x1BF2, 0x1813, +++ 0x13DA, 0x0FFB, 0x0D25, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x1086, 0x1A5F, +++ 0x2438, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, 0x2879, +++ 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, 0x289F, +++ 0x28A9, 0x28B0, 0x28B2, 0x28B0, 0x28AB, 0x28A2, 0x2898, 0x288E, 0x2883, +++ 0x2879, 0x2871, 0x286B, 0x2869, 0x286C, 0x2872, 0x287C, 0x2888, 0x2894, +++ 0x289F, 0x28A9, 0x28B0, 0x28B2, 0x28B1, 0x28AD, 0x28A7, 0x289F, 0x2897, +++ 0x288E, 0x2885, 0x287C, 0x2875, 0x286F, 0x286B, 0x2869, 0x0000, 0x0000, +++ 0x034A, 0x0A88, 0x11C5, 0x150F, 0x150F, 0x150F, 0x14AC, 0x139B, 0x11FF, +++ 0x0FF9, 0x0DAE, 0x0B41, 0x08D3, 0x0688, 0x0483, 0x02E6, 0x01D5, 0x0172, +++ 0x03F7, 0x0A45, 0x1276, 0x1AA7, 0x20F4, 0x237A, 0x22F8, 0x21AA, 0x1FE1, +++ 0x1DEF, 0x1C26, 0x1AD7, 0x1A56, 0x1A56, 0x1A56, 0x1A56, 0x1804, 0x12EB, +++ 0x0DD1, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, 0x0CF7, +++ 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, 0x0BFC, +++ 0x0BBC, 0x0B90, 0x0B80, 0x0B8D, 0x0BB1, 0x0BE7, 0x0C28, 0x0C6F, 0x0CB6, +++ 0x0CF7, 0x0D2C, 0x0D50, 0x0D5E, 0x0D4D, 0x0D22, 0x0CE2, 0x0C96, 0x0C47, +++ 0x0BFC, 0x0BBC, 0x0B90, 0x0B80, 0x0B89, 0x0BA3, 0x0BCA, 0x0BFC, 0x0C34, +++ 0x0C6F, 0x0CAA, 0x0CE2, 0x0D13, 0x0D3A, 0x0D54, 0x0D5E, 0xC7DC, 0xC7DC, +++ 0xCE16, 0xDBCA, 0xE97D, 0xEFB7, 0xEFB7, 0xEFB7, 0xF004, 0xF0DA, 0xF21D, +++ 0xF3B2, 0xF57E, 0xF765, 0xF94C, 0xFB18, 0xFCAD, 0xFDF0, 0xFEC6, 0xFF13, +++ 0xFC30, 0xF4F7, 0xEB94, 0xE231, 0xDAF8, 0xD815, 0xDC50, 0xE73B, 0xF628, +++ 0x066C, 0x1559, 0x2043, 0x247F, 0x247F, 0x247F, 0x247F, 0x29D3, 0x35C0, +++ 0x422D, 0x4902, 0x4AD0, 0x4C43, 0x4D63, 0x4E3C, 0x4ED7, 0x4F3F, 0x4F7E, +++ 0x4F9E, 0x4FAA, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, 0x4ABC, +++ 0x49D9, 0x493C, 0x4902, 0x4932, 0x49B3, 0x4A72, 0x4B5A, 0x4C57, 0x4D53, +++ 0x4E3C, 0x4EFB, 0x4F7C, 0x4FAC, 0x4F72, 0x4ED5, 0x4DF2, 0x4CE5, 0x4BC9, +++ 0x4ABC, 0x49D9, 0x493C, 0x4902, 0x4923, 0x4980, 0x4A0C, 0x4ABC, 0x4B84, +++ 0x4C57, 0x4D2A, 0x4DF2, 0x4EA1, 0x4F2E, 0x4F8A, 0x4FAC, 0xFFFF, 0xFFFF, +++ 0x0015, 0x0044, 0x0073, 0x0088, 0x0088, 0x0088, 0x0076, 0x0042, 0xFFEE, +++ 0xFF80, 0xFEF8, 0xFE59, 0xFDA8, 0xFCE7, 0xFC18, 0xFB3F, 0xFA5E, 0xF979, +++ 0xF893, 0xF7AE, 0xF6CD, 0xF5F4, 0xF525, 0xF464, 0xF3B2, 0xF314, 0xF28C, +++ 0xF21D, 0xF1CB, 0xF197, 0xF185, 0xF185, 0xF185, 0xF185, 0xF9FA, 0x0F27, +++ 0x2ABD, 0x466F, 0x5BF1, 0x64F4, 0x658F, 0x660A, 0x666B, 0x66B3, 0x66E7, +++ 0x6709, 0x671F, 0x6729, 0x672D, 0x672E, 0x671A, 0x66E6, 0x669A, 0x6640, +++ 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x6504, 0x6530, 0x656F, 0x65BD, +++ 0x6611, 0x6665, 0x66B3, 0x66F3, 0x671E, 0x672E, 0x671A, 0x66E6, 0x669A, +++ 0x6640, 0x65E2, 0x6588, 0x653C, 0x6508, 0x64F4, 0x64FF, 0x651E, 0x654D, +++ 0x6588, 0x65CB, 0x6611, 0x6658, 0x669A, 0x66D5, 0x6704, 0x6723, 0x672E, +++ 0xFFFF, 0xFFFF, 0x0106, 0x0347, 0x0588, 0x068E, 0x068E, 0x068E, 0x06A4, +++ 0x06E4, 0x074B, 0x07D5, 0x087D, 0x0941, 0x0A1D, 0x0B0D, 0x0C0E, 0x0D1B, +++ 0x0E31, 0x0F4D, 0x106B, 0x1187, 0x129D, 0x13AB, 0x14AB, 0x159B, 0x1677, +++ 0x173B, 0x17E4, 0x186D, 0x18D4, 0x1915, 0x192B, 0x192B, 0x192B, 0x192B, +++ 0x1856, 0x1641, 0x138D, 0x10D8, 0x0EC4, 0x0DEF, 0x0E12, 0x0E70, 0x0EFC, +++ 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, 0x1231, +++ 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E12, 0x0E70, +++ 0x0EFC, 0x0FA6, 0x105F, 0x1117, 0x11C1, 0x124D, 0x12AC, 0x12CF, 0x12A4, +++ 0x1231, 0x118B, 0x10C6, 0x0FF7, 0x0F32, 0x0E8C, 0x0E19, 0x0DEF, 0x0E07, +++ 0x0E4B, 0x0EB2, 0x0F32, 0x0FC4, 0x105F, 0x10F9, 0x118B, 0x120C, 0x1272, +++ 0x12B6, 0x12CF, 0xF548, 0xF548, 0xF183, 0xE939, 0xE0EF, 0xDD2B, 0xDD2B, +++ 0xDD2B, 0xDD50, 0xDDBC, 0xDE68, 0xDF4F, 0xE06A, 0xE1B3, 0xE324, 0xE4B7, +++ 0xE666, 0xE829, 0xE9FD, 0xEBD9, 0xEDB9, 0xEF95, 0xF168, 0xF32C, 0xF4DB, +++ 0xF66D, 0xF7DE, 0xF928, 0xFA43, 0xFB29, 0xFBD6, 0xFC42, 0xFC67, 0xFC67, +++ 0xFC67, 0xFC67, 0xFE37, 0x02C6, 0x08C0, 0x0ED5, 0x13B1, 0x1605, 0x1693, +++ 0x1705, 0x175E, 0x17A0, 0x17D0, 0x17F0, 0x1803, 0x180D, 0x1811, 0x1812, +++ 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, 0x1605, +++ 0x1613, 0x163B, 0x1676, 0x16BD, 0x170B, 0x1759, 0x17A0, 0x17DB, 0x1803, +++ 0x1812, 0x1800, 0x17CF, 0x1789, 0x1737, 0x16DF, 0x168D, 0x1647, 0x1617, +++ 0x1605, 0x160F, 0x162B, 0x1657, 0x168D, 0x16CA, 0x170B, 0x174C, 0x1789, +++ 0x17C0, 0x17EB, 0x1807, 0x1812, 0x0000, 0x0000, 0x0006, 0x0017, 0x0032, +++ 0x0057, 0x0085, 0x00BB, 0x00F8, 0x013B, 0x0185, 0x01D3, 0x0226, 0x027C, +++ 0x02D4, 0x032F, 0x038B, 0x03E7, 0x0443, 0x049E, 0x04F6, 0x054C, 0x059F, +++ 0x05ED, 0x0637, 0x067A, 0x06B7, 0x06ED, 0x071B, 0x0740, 0x075B, 0x076C, +++ 0x0772, 0x0000, 0x0000, 0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, 0xFFF9, +++ 0xFFF7, 0xFFF4, 0xFFF2, 0xFFEF, 0xFFED, 0xFFEA, 0xFFE7, 0xFFE4, 0xFFE0, +++ 0xFFDD, 0xFFDA, 0xFFD7, 0xFFD4, 0xFFD1, 0xFFCF, 0xFFCC, 0xFFC9, 0xFFC7, +++ 0xFFC5, 0xFFC3, 0xFFC2, 0xFFC1, 0xFFC0, 0xFFBF, 0xBF5E, 0xBF5E, 0xBF60, +++ 0xBF67, 0xBF71, 0xBF7E, 0xBF8F, 0xBFA3, 0xBFB9, 0xBFD2, 0xBFED, 0xC00A, +++ 0xC028, 0xC048, 0xC068, 0xC089, 0xC0AB, 0xC0CD, 0xC0EF, 0xC110, 0xC130, +++ 0xC150, 0xC16E, 0xC18B, 0xC1A6, 0xC1BF, 0xC1D5, 0xC1E9, 0xC1FA, 0xC207, +++ 0xC211, 0xC218, 0xC21A, 0xD649, 0xD649, 0xDA6F, 0xE390, 0xECB0, 0xF0D6, +++ 0xF0D6, 0xF0D6, 0xF0BF, 0xF07E, 0xF017, 0xEF91, 0xEEF1, 0xEE3D, 0xED7A, +++ 0xECAD, 0xEBD9, 0xEB00, 0xEA25, 0xE949, 0xE86F, 0xE79A, 0xE6CB, 0xE605, +++ 0xE54B, 0xE49D, 0xE400, 0xE374, 0xE2FD, 0xE29C, 0xE254, 0xE227, 0xE218, +++ 0xEC40, 0xEC40, 0xEDD6, 0xF153, 0xF4D0, 0xF666, 0xF666, 0xF666, 0xF6F8, +++ 0xF872, 0xFA77, 0xFCAB, 0xFEB0, 0x002B, 0x00BE, 0x00BD, 0x00BB, 0x00B7, +++ 0x00B3, 0x00AD, 0x00A7, 0x00A0, 0x0099, 0x0092, 0x008B, 0x0084, 0x007D, +++ 0x0077, 0x0071, 0x006D, 0x0069, 0x0067, 0x0066, 0xB59D, 0xB59D, 0xB418, +++ 0xB0C0, 0xAD67, 0xABE2, 0xABE2, 0xABE2, 0xACB2, 0xAECC, 0xB1AB, 0xB4CB, +++ 0xB7AA, 0xB9C4, 0xBA94, 0xBA77, 0xBA24, 0xB9A2, 0xB8F8, 0xB82C, 0xB745, +++ 0xB64A, 0xB542, 0xB433, 0xB323, 0xB21B, 0xB120, 0xB039, 0xAF6D, 0xAEC3, +++ 0xAE41, 0xADEE, 0xADD1, 0xFFFF, 0xFFFF, 0x000B, 0x002C, 0x0061, 0x00A6, +++ 0x00FB, 0x015D, 0x01C9, 0x023E, 0x02BA, 0x0339, 0x03BB, 0x043D, 0x04BD, +++ 0x0538, 0x05AD, 0x0619, 0x067B, 0x06D0, 0x0715, 0x074A, 0x076B, 0x0776, +++ 0x0731, 0x0677, 0x056A, 0x042C, 0x02DC, 0x019E, 0x0091, 0xFFD6, 0xFF91, +++ 0xFF91, 0xFF91, 0xFF91, 0xFF82, 0xFF5F, 0xFF34, 0xFF11, 0xFF02, 0xFFFF, +++ 0xFFFF, 0x000E, 0x0035, 0x0072, 0x00C5, 0x0128, 0x019C, 0x021C, 0x02A6, +++ 0x0337, 0x03CE, 0x0467, 0x0501, 0x0597, 0x0629, 0x06B3, 0x0733, 0x07A6, +++ 0x080A, 0x085C, 0x089A, 0x08C1, 0x08CF, 0x07FF, 0x05D1, 0x02A9, 0xFEEA, +++ 0xFAFB, 0xF73D, 0xF416, 0xF1E8, 0xF117, 0xF117, 0xF117, 0xF117, 0xF24D, +++ 0xF52F, 0xF8A0, 0xFB83, 0xFCB8, 0x2537, 0x2537, 0x251B, 0x24CD, 0x2450, +++ 0x23AA, 0x22E0, 0x21F7, 0x20F5, 0x1FDE, 0x1EB7, 0x1D87, 0x1C51, 0x1B1B, +++ 0x19EA, 0x18C4, 0x17AD, 0x16AA, 0x15C2, 0x14F8, 0x1452, 0x13D5, 0x1386, +++ 0x136B, 0x1381, 0x13BE, 0x1415, 0x147D, 0x14EB, 0x1553, 0x15AB, 0x15E7, +++ 0x15FE, 0x15FE, 0x15FE, 0x15FE, 0x17C5, 0x1C02, 0x2111, 0x254E, 0x2715, +++ 0x0000, 0x0000, 0xFF75, 0xFDFB, 0xFBC6, 0xF90B, 0xF600, 0xF2DB, 0xEFD0, +++ 0xED15, 0xEAE0, 0xE966, 0xE8DC, 0xE9E9, 0xECCD, 0xF11F, 0xF676, 0xFC69, +++ 0x0292, 0x0885, 0x0DDC, 0x122E, 0x1512, 0x1620, 0x1578, 0x13B8, 0x112E, +++ 0x0E2C, 0x0B02, 0x0800, 0x0576, 0x03B6, 0x030E, 0x030E, 0x030E, 0x030E, +++ 0x045B, 0x0773, 0x0B25, 0x0E3D, 0x0F89, 0xFFFF, 0xFFFF, 0xFF17, 0xFC9B, +++ 0xF8E5, 0xF44E, 0xEF31, 0xE9E6, 0xE4C9, 0xE032, 0xDC7C, 0xDA00, 0xD918, +++ 0xDA0F, 0xDCB4, 0xE0A8, 0xE58B, 0xEAFE, 0xF0A0, 0xF612, 0xFAF5, 0xFEE9, +++ 0x0190, 0x0287, 0x0245, 0x0194, 0x0095, 0xFF65, 0xFE27, 0xFCF8, 0xFBF9, +++ 0xFB48, 0xFB06, 0xFB06, 0xFB06, 0xFB06, 0xFAF1, 0xFABD, 0xFA7F, 0xFA4B, +++ 0xFA36, 0xBF3F, 0xBF3F, 0xBF8E, 0xC064, 0xC1A5, 0xC331, 0xC4EB, 0xC6B5, +++ 0xC86E, 0xC9FB, 0xCB3C, 0xCC12, 0xCC61, 0xCC13, 0xCB3D, 0xC9FF, 0xC875, +++ 0xC6BD, 0xC4F7, 0xC340, 0xC1B5, 0xC077, 0xBFA1, 0xBF53, 0xBF63, 0xBF8D, +++ 0xBFCA, 0xC012, 0xC05E, 0xC0A7, 0xC0E4, 0xC10E, 0xC11D, 0xC11D, 0xC11D, +++ 0xC11D, 0xBF09, 0xBA14, 0xB429, 0xAF34, 0xAD20, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, +++ 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, +++ 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, +++ 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, +++ 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x1B09, 0x1B09, 0x2505, +++ 0x2F01, 0x2D03, 0x2B05, 0x2B05, 0x2B05, 0x26D7, 0x1BD0, 0x0C3A, 0xFA5B, +++ 0xE87D, 0xD8E7, 0xCDE0, 0xC9B2, 0xCA30, 0xCB8B, 0xCD98, 0xD027, 0xD30C, +++ 0xD61A, 0xD923, 0xDBFA, 0xDE79, 0xE09E, 0xE26C, 0xE3E7, 0xE513, 0xE5F6, +++ 0xE692, 0xE6ED, 0xE70A, 0xE70A, 0xE70A, 0xE70A, 0xE5F8, 0xE36B, 0xE060, +++ 0xDDD3, 0xDCC1, 0x1144, 0x1144, 0x1762, 0x1D80, 0x0A66, 0xF74B, 0xF74B, +++ 0xF74B, 0xF735, 0xF6F9, 0xF6A4, 0xF643, 0xF5E2, 0xF58D, 0xF551, 0xF53A, +++ 0xF58C, 0xF671, 0xF7D3, 0xF99C, 0xFBB5, 0xFE07, 0x007D, 0x02FF, 0x0578, +++ 0x07D9, 0x0A15, 0x0C1E, 0x0DE6, 0x0F61, 0x1080, 0x1137, 0x1177, 0x1177, +++ 0x1177, 0x1177, 0x0DD2, 0x0521, 0xFAC2, 0xF211, 0xEE6D, 0xAC43, 0xAC43, +++ 0xB893, 0xD23C, 0xE988, 0xF37A, 0xF37A, 0xF37A, 0xEF6B, 0xE4B8, 0xD598, +++ 0xC442, 0xB2EB, 0xA3CB, 0x9918, 0x9509, 0x965A, 0x99ED, 0x9F30, 0xA593, +++ 0xAC85, 0xB376, 0xB9D3, 0xBF0E, 0xC30C, 0xC627, 0xC87D, 0xCA2A, 0xCB49, +++ 0xCBF8, 0xCC51, 0xCC72, 0xCC77, 0xCC77, 0xCC77, 0xCC77, 0xCC55, 0xCC05, +++ 0xCBA6, 0xCB56, 0xCB35, 0xFFFF, 0xFFFF, 0x0000, 0x0001, 0x0004, 0x000A, +++ 0x0013, 0x0020, 0x0033, 0x004D, 0x006D, 0x0096, 0x00C8, 0x0103, 0x014A, +++ 0x019C, 0x01FB, 0x0267, 0x02E1, 0x036B, 0x0405, 0x04B1, 0x056E, 0x063E, +++ 0x0842, 0x0C37, 0x1189, 0x17A1, 0x1DEC, 0x23D4, 0x28C5, 0x2C28, 0x2D6B, +++ 0x2D6B, 0x2D6B, 0x2D6B, 0x2B38, 0x25FA, 0x1FB8, 0x1A79, 0x1846, 0x0000, +++ 0x0000, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF9, 0xFFF4, 0xFFEE, 0xFFE6, +++ 0xFFDB, 0xFFCE, 0xFFBD, 0xFFAA, 0xFF93, 0xFF78, 0xFF59, 0xFF35, 0xFF0D, +++ 0xFEDF, 0xFEAD, 0xFE74, 0xFE36, 0xFDF2, 0xFD58, 0xFC36, 0xFAB5, 0xF8FE, +++ 0xF73A, 0xF592, 0xF431, 0xF33F, 0xF2E5, 0xF2E5, 0xF2E5, 0xF2E5, 0xF0C4, +++ 0xEBB1, 0xE5A2, 0xE08F, 0xDE6E, 0x1E4A, 0x1E4A, 0x1E0F, 0x1D66, 0x1C59, +++ 0x1AF4, 0x1942, 0x174E, 0x1523, 0x12CB, 0x1052, 0x0DC4, 0x0B2A, 0x0890, +++ 0x0601, 0x0388, 0x0131, 0xFF04, 0xFD10, 0xFB5E, 0xF9F9, 0xF8ED, 0xF843, +++ 0xF809, 0xF818, 0xF840, 0xF87B, 0xF8C0, 0xF90A, 0xF94F, 0xF98A, 0xF9B2, +++ 0xF9C2, 0xF9C2, 0xF9C2, 0xF9C2, 0xF8ED, 0xF6F2, 0xF494, 0xF299, 0xF1C4, +++ 0x0000, 0x0000, 0xFF92, 0xFEA2, 0xFDB3, 0xFD46, 0xFD46, 0xFD46, 0xFD6F, +++ 0xFDE5, 0xFEA3, 0xFFA0, 0x00D8, 0x0241, 0x03D7, 0x0591, 0x076A, 0x095A, +++ 0x0B5B, 0x0D67, 0x0F75, 0x1181, 0x1382, 0x1572, 0x174B, 0x1905, 0x1A9A, +++ 0x1C04, 0x1D3B, 0x1E38, 0x1EF6, 0x1F6C, 0x1F95, 0x1F95, 0x1F95, 0x1F95, +++ 0x2F51, 0x4BA8, 0x5DD7, 0x6532, 0x6692, 0xFF2F, 0xFF2F, 0xFDB7, 0xFA7C, +++ 0xF741, 0xF5CA, 0xF5CA, 0xF5CA, 0xF600, 0xF69C, 0xF795, 0xF8E3, 0xFA7D, +++ 0xFC59, 0xFE6E, 0x00B6, 0x0325, 0x05B2, 0x0856, 0x0B07, 0x0DBD, 0x106E, +++ 0x1312, 0x15A0, 0x180E, 0x1A55, 0x1C6B, 0x1E47, 0x1FE0, 0x212E, 0x2227, +++ 0x22C4, 0x22FA, 0x22FA, 0x22FA, 0x22FA, 0x2411, 0x2528, 0x2067, 0x1792, +++ 0x12D1, 0xC9D7, 0xC9D7, 0xCCAD, 0xD2EB, 0xD929, 0xDBFF, 0xDBFF, 0xDBFF, +++ 0xDBF6, 0xDBDD, 0xDBB4, 0xDB7E, 0xDB3B, 0xDAED, 0xDA96, 0xDA37, 0xD9D2, +++ 0xD967, 0xD8F9, 0xD888, 0xD817, 0xD7A7, 0xD739, 0xD6CE, 0xD669, 0xD60A, +++ 0xD5B3, 0xD565, 0xD522, 0xD4EC, 0xD4C3, 0xD4AA, 0xD4A1, 0xD4A1, 0xD4A1, +++ 0xD4A1, 0xF3E5, 0x132A, 0x0FB1, 0x093D, 0x05C3, +++ +++ ++ }; ++ +diff --git a/bin/cave.c b/bin/cave.c +index a2e358f..56658cd 100644 +--- a/bin/cave.c ++++ b/bin/cave.c +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture cave_09000000[] = { ++ALIGNED8 const u8 cave_09000000[] = { + #include "textures/cave/hmc_textures.00000.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture cave_09001000[] = { ++ALIGNED8 const u8 cave_09001000[] = { + #include "textures/cave/hmc_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture cave_09001800[] = { ++ALIGNED8 const u8 cave_09001800[] = { + #include "textures/cave/hmc_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture cave_09002800[] = { ++ALIGNED8 const u8 cave_09002800[] = { + #include "textures/cave/hmc_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture cave_09003000[] = { ++ALIGNED8 const u8 cave_09003000[] = { + #include "textures/cave/hmc_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture cave_09003800[] = { ++ALIGNED8 const u8 cave_09003800[] = { + #include "textures/cave/hmc_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture cave_09004800[] = { ++ALIGNED8 const u8 cave_09004800[] = { + #include "textures/cave/hmc_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture cave_09005800[] = { ++ALIGNED8 const u8 cave_09005800[] = { + #include "textures/cave/hmc_textures.05800.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture cave_09006800[] = { ++ALIGNED8 const u8 cave_09006800[] = { + #include "textures/cave/hmc_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture cave_09007000[] = { ++ALIGNED8 const u8 cave_09007000[] = { + #include "textures/cave/hmc_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture cave_09007800[] = { ++ALIGNED8 const u8 cave_09007800[] = { + #include "textures/cave/hmc_textures.07800.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture cave_09008800[] = { ++ALIGNED8 const u8 cave_09008800[] = { + #include "textures/cave/hmc_textures.08800.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture cave_09009800[] = { ++ALIGNED8 const u8 cave_09009800[] = { + #include "textures/cave/hmc_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture cave_0900A000[] = { ++ALIGNED8 const u8 cave_0900A000[] = { + #include "textures/cave/hmc_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture cave_0900A800[] = { ++ALIGNED8 const u8 cave_0900A800[] = { + #include "textures/cave/hmc_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture cave_0900B800[] = { ++ALIGNED8 const u8 cave_0900B800[] = { + #include "textures/cave/hmc_textures.0B800.ia16.inc.c" + }; + + // 0x0900C000 +-ALIGNED8 const Texture cave_0900C000[] = { ++ALIGNED8 const u8 cave_0900C000[] = { + #include "textures/cave/hmc_textures.0C000.ia16.inc.c" + }; +diff --git a/bin/cave.c.rej b/bin/cave.c.rej +new file mode 100644 +index 0000000..63fc24b +--- /dev/null ++++ b/bin/cave.c.rej +@@ -0,0 +1,109 @@ ++diff a/bin/cave.c b/bin/cave.c (rejected hunks) ++@@ -1,89 +1,88 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture cave_09000000[] = { +++ALIGNED8 const u8 cave_09000000[] = { ++ #include "textures/cave/hmc_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture cave_09001000[] = { +++ALIGNED8 const u8 cave_09001000[] = { ++ #include "textures/cave/hmc_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture cave_09001800[] = { +++ALIGNED8 const u8 cave_09001800[] = { ++ #include "textures/cave/hmc_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture cave_09002800[] = { +++ALIGNED8 const u8 cave_09002800[] = { ++ #include "textures/cave/hmc_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture cave_09003000[] = { +++ALIGNED8 const u8 cave_09003000[] = { ++ #include "textures/cave/hmc_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture cave_09003800[] = { +++ALIGNED8 const u8 cave_09003800[] = { ++ #include "textures/cave/hmc_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture cave_09004800[] = { +++ALIGNED8 const u8 cave_09004800[] = { ++ #include "textures/cave/hmc_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture cave_09005800[] = { +++ALIGNED8 const u8 cave_09005800[] = { ++ #include "textures/cave/hmc_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture cave_09006800[] = { +++ALIGNED8 const u8 cave_09006800[] = { ++ #include "textures/cave/hmc_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture cave_09007000[] = { +++ALIGNED8 const u8 cave_09007000[] = { ++ #include "textures/cave/hmc_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture cave_09007800[] = { +++ALIGNED8 const u8 cave_09007800[] = { ++ #include "textures/cave/hmc_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture cave_09008800[] = { +++ALIGNED8 const u8 cave_09008800[] = { ++ #include "textures/cave/hmc_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture cave_09009800[] = { +++ALIGNED8 const u8 cave_09009800[] = { ++ #include "textures/cave/hmc_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture cave_0900A000[] = { +++ALIGNED8 const u8 cave_0900A000[] = { ++ #include "textures/cave/hmc_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture cave_0900A800[] = { +++ALIGNED8 const u8 cave_0900A800[] = { ++ #include "textures/cave/hmc_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture cave_0900B800[] = { +++ALIGNED8 const u8 cave_0900B800[] = { ++ #include "textures/cave/hmc_textures.0B800.ia16.inc.c" ++ }; ++ ++ // 0x0900C000 ++-ALIGNED8 const Texture cave_0900C000[] = { +++ALIGNED8 const u8 cave_0900C000[] = { ++ #include "textures/cave/hmc_textures.0C000.ia16.inc.c" ++ }; +diff --git a/bin/debug_level_select.c b/bin/debug_level_select.c +index 345203a..bc79a0b 100644 +--- a/bin/debug_level_select.c ++++ b/bin/debug_level_select.c +@@ -5,8 +5,8 @@ + + // 0x07000000 - 0x07000018 + static const Lights1 debug_level_select_lights_07000000 = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ++ 0x7f, 0x00, 0x00, ++ 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x07000018 - 0x07000108 +@@ -221,8 +221,8 @@ const Gfx debug_level_select_dl_07000858[] = { + + // 0x07000A28 - 0x07000A40 + static const Lights1 debug_level_select_lights_07000A28 = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ++ 0x00, 0x00, 0x7f, ++ 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + ); + + // 0x07000A40 - 0x07000B30 +@@ -404,8 +404,8 @@ const Gfx debug_level_select_dl_07001100[] = { + + // 0x07001288 - 0x070012A0 + static const Lights1 debug_level_select_lights_07001288 = gdSPDefLights1( +- 0x00, 0x56, 0x00, +- 0x00, 0xad, 0x00, 0x00, 0x00, 0x50 ++ 0x00, 0x56, 0x00, ++ 0x00, 0xad, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x070012A0 - 0x07001390 +@@ -640,8 +640,8 @@ const Gfx debug_level_select_dl_07001BA0[] = { + + // 0x07001D98 - 0x07001DB0 + static const Lights1 debug_level_select_lights_07001D98 = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ++ 0x7f, 0x00, 0x00, ++ 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x07001DB0 - 0x07001EA0 +@@ -856,8 +856,8 @@ const Gfx debug_level_select_dl_070025F0[] = { + + // 0x070027C0 - 0x070027D8 + static const Lights1 debug_level_select_lights_070027C0 = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ++ 0x00, 0x00, 0x7f, ++ 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + ); + + // 0x070027D8 - 0x070028C8 +@@ -1131,8 +1131,8 @@ const Gfx debug_level_select_dl_07003258[] = { + + // 0x070034A0 - 0x070034B8 + static const Lights1 debug_level_select_lights_070034A0 = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ++ 0x7f, 0x00, 0x00, ++ 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x070034B8 - 0x070035A8 +@@ -1367,8 +1367,8 @@ const Gfx debug_level_select_dl_07003DB8[] = { + + // 0x07003FB0 - 0x07003FC8 + static const Lights1 debug_level_select_lights_07003FB0 = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ++ 0x00, 0x00, 0x7f, ++ 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + ); + + // 0x07003FC8 - 0x070040B8 +@@ -1603,8 +1603,8 @@ const Gfx debug_level_select_dl_070048C8[] = { + + // 0x07004AC0 - 0x07004AD8 + static const Lights1 debug_level_select_lights_07004AC0 = gdSPDefLights1( +- 0x00, 0x59, 0x00, +- 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50 ++ 0x00, 0x59, 0x00, ++ 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x07004AD8 - 0x07004BC8 +@@ -1878,8 +1878,8 @@ const Gfx debug_level_select_dl_07005558[] = { + + // 0x070057A0 - 0x070057B8 + static const Lights1 debug_level_select_lights_070057A0 = gdSPDefLights1( +- 0x7f, 0x00, 0x00, +- 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 ++ 0x7f, 0x00, 0x00, ++ 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 + ); + + // 0x070057B8 - 0x070058A8 +@@ -1949,8 +1949,8 @@ const Gfx debug_level_select_dl_070059F8[] = { + + // 0x07005A98 - 0x07005AB0 + static const Lights1 debug_level_select_lights_07005A98 = gdSPDefLights1( +- 0x00, 0x00, 0x7f, +- 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 ++ 0x00, 0x00, 0x7f, ++ 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 + ); + + // 0x07005AB0 - 0x07005BA0 +diff --git a/bin/effect.c b/bin/effect.c +index 1b8091b..fd6af43 100644 +--- a/bin/effect.c ++++ b/bin/effect.c +@@ -1,8 +1,5 @@ +-#include +-#include +- +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" + + #include "make_const_nonconst.h" + +@@ -10,27 +7,27 @@ UNUSED static const u64 effect_unused_0 = 0; + + // Flower (Unused) + // 0x0B000008 +-ALIGNED8 static const Texture effect_0B000008[] = { ++ALIGNED8 static const u8 effect_0B000008[] = { + #include "textures/effect/flower.00008.rgba16.inc.c" + }; + + // 0x0B000808 +-ALIGNED8 static const Texture effect_0B000808[] = { ++ALIGNED8 static const u8 effect_0B000808[] = { + #include "textures/effect/flower.00808.rgba16.inc.c" + }; + + // 0x0B001008 +-ALIGNED8 static const Texture effect_0B001008[] = { ++ALIGNED8 static const u8 effect_0B001008[] = { + #include "textures/effect/flower.01008.rgba16.inc.c" + }; + + // 0x0B001808 +-ALIGNED8 static const Texture effect_0B001808[] = { ++ALIGNED8 static const u8 effect_0B001808[] = { + #include "textures/effect/flower.01808.rgba16.inc.c" + }; + + // 0x0B002008 +-const Texture *const flower_bubbles_textures_ptr_0B002008[] = { ++const u8 *const flower_bubbles_textures_ptr_0B002008[] = { + effect_0B000008, + effect_0B000808, + effect_0B001008, +@@ -41,47 +38,47 @@ const Texture *const flower_bubbles_textures_ptr_0B002008[] = { + + // Lava Bubble + // 0x0B002020 +-ALIGNED8 static const Texture effect_0B002020[] = { ++ALIGNED8 static const u8 effect_0B002020[] = { + #include "textures/effect/lava_bubble.02020.rgba16.inc.c" + }; + + // 0x0B002820 +-ALIGNED8 static const Texture effect_0B002820[] = { ++ALIGNED8 static const u8 effect_0B002820[] = { + #include "textures/effect/lava_bubble.02820.rgba16.inc.c" + }; + + // 0x0B003020 +-ALIGNED8 static const Texture effect_0B003020[] = { ++ALIGNED8 static const u8 effect_0B003020[] = { + #include "textures/effect/lava_bubble.03020.rgba16.inc.c" + }; + + // 0x0B003820 +-ALIGNED8 static const Texture effect_0B003820[] = { ++ALIGNED8 static const u8 effect_0B003820[] = { + #include "textures/effect/lava_bubble.03820.rgba16.inc.c" + }; + + // 0x0B004020 +-ALIGNED8 static const Texture effect_0B004020[] = { ++ALIGNED8 static const u8 effect_0B004020[] = { + #include "textures/effect/lava_bubble.04020.rgba16.inc.c" + }; + + // 0x0B004820 +-ALIGNED8 static const Texture effect_0B004820[] = { ++ALIGNED8 static const u8 effect_0B004820[] = { + #include "textures/effect/lava_bubble.04820.rgba16.inc.c" + }; + + // 0x0B005020 +-ALIGNED8 static const Texture effect_0B005020[] = { ++ALIGNED8 static const u8 effect_0B005020[] = { + #include "textures/effect/lava_bubble.05020.rgba16.inc.c" + }; + + // 0x0B005820 +-ALIGNED8 static const Texture effect_0B005820[] = { ++ALIGNED8 static const u8 effect_0B005820[] = { + #include "textures/effect/lava_bubble.05820.rgba16.inc.c" + }; + + // 0x0B006020 +-const Texture *const lava_bubble_ptr_0B006020[] = { ++const u8 *const lava_bubble_ptr_0B006020[] = { + effect_0B002020, + effect_0B002820, + effect_0B003020, +@@ -96,18 +93,18 @@ const Texture *const lava_bubble_ptr_0B006020[] = { + + // Bubble + // 0x0B006048 +-ALIGNED8 static const Texture effect_0B006048[] = { ++ALIGNED8 static const u8 effect_0B006048[] = { + #include "textures/effect/bubble.06048.rgba16.inc.c" + }; + + // 0x0B006848 +-const Texture *const bubble_ptr_0B006848[] = { ++const u8 *const bubble_ptr_0B006848[] = { + effect_0B006048, + }; + + // Tiny Bubble + // 0x0B00684C +-ALIGNED8 const Texture effect_0B00684C[] = { ++ALIGNED8 static const u8 effect_0B00684C[] = { + #include "textures/effect/tiny_bubble.0684C.rgba16.inc.c" + }; + +@@ -137,7 +134,7 @@ const Gfx tiny_bubble_dl_0B006AB0[] = { + }; + + // 0x0B006AD8 +-ALIGNED8 static const Texture effect_0B006AD8[] = { ++ALIGNED8 static const u8 effect_0B006AD8[] = { + #include "textures/effect/tiny_bubble.06AD8.rgba16.inc.c" + }; + +diff --git a/bin/effect.c.rej b/bin/effect.c.rej +new file mode 100644 +index 0000000..eee2ad9 +--- /dev/null ++++ b/bin/effect.c.rej +@@ -0,0 +1,133 @@ ++diff a/bin/effect.c b/bin/effect.c (rejected hunks) ++@@ -1,8 +1,5 @@ ++-#include ++-#include ++- ++-#include "macros.h" ++-#include "types.h" +++#include +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++@@ -10,27 +7,27 @@ UNUSED static const u64 effect_unused_0 = 0; ++ ++ // Flower (Unused) ++ // 0x0B000008 ++-ALIGNED8 static const Texture effect_0B000008[] = { +++ALIGNED8 static const u8 effect_0B000008[] = { ++ #include "textures/effect/flower.00008.rgba16.inc.c" ++ }; ++ ++ // 0x0B000808 ++-ALIGNED8 static const Texture effect_0B000808[] = { +++ALIGNED8 static const u8 effect_0B000808[] = { ++ #include "textures/effect/flower.00808.rgba16.inc.c" ++ }; ++ ++ // 0x0B001008 ++-ALIGNED8 static const Texture effect_0B001008[] = { +++ALIGNED8 static const u8 effect_0B001008[] = { ++ #include "textures/effect/flower.01008.rgba16.inc.c" ++ }; ++ ++ // 0x0B001808 ++-ALIGNED8 static const Texture effect_0B001808[] = { +++ALIGNED8 static const u8 effect_0B001808[] = { ++ #include "textures/effect/flower.01808.rgba16.inc.c" ++ }; ++ ++ // 0x0B002008 ++-const Texture *const flower_bubbles_textures_ptr_0B002008[] = { +++const u8 *const flower_bubbles_textures_ptr_0B002008[] = { ++ effect_0B000008, ++ effect_0B000808, ++ effect_0B001008, ++@@ -41,47 +38,47 @@ const Texture *const flower_bubbles_textures_ptr_0B002008[] = { ++ ++ // Lava Bubble ++ // 0x0B002020 ++-ALIGNED8 static const Texture effect_0B002020[] = { +++ALIGNED8 static const u8 effect_0B002020[] = { ++ #include "textures/effect/lava_bubble.02020.rgba16.inc.c" ++ }; ++ ++ // 0x0B002820 ++-ALIGNED8 static const Texture effect_0B002820[] = { +++ALIGNED8 static const u8 effect_0B002820[] = { ++ #include "textures/effect/lava_bubble.02820.rgba16.inc.c" ++ }; ++ ++ // 0x0B003020 ++-ALIGNED8 static const Texture effect_0B003020[] = { +++ALIGNED8 static const u8 effect_0B003020[] = { ++ #include "textures/effect/lava_bubble.03020.rgba16.inc.c" ++ }; ++ ++ // 0x0B003820 ++-ALIGNED8 static const Texture effect_0B003820[] = { +++ALIGNED8 static const u8 effect_0B003820[] = { ++ #include "textures/effect/lava_bubble.03820.rgba16.inc.c" ++ }; ++ ++ // 0x0B004020 ++-ALIGNED8 static const Texture effect_0B004020[] = { +++ALIGNED8 static const u8 effect_0B004020[] = { ++ #include "textures/effect/lava_bubble.04020.rgba16.inc.c" ++ }; ++ ++ // 0x0B004820 ++-ALIGNED8 static const Texture effect_0B004820[] = { +++ALIGNED8 static const u8 effect_0B004820[] = { ++ #include "textures/effect/lava_bubble.04820.rgba16.inc.c" ++ }; ++ ++ // 0x0B005020 ++-ALIGNED8 static const Texture effect_0B005020[] = { +++ALIGNED8 static const u8 effect_0B005020[] = { ++ #include "textures/effect/lava_bubble.05020.rgba16.inc.c" ++ }; ++ ++ // 0x0B005820 ++-ALIGNED8 static const Texture effect_0B005820[] = { +++ALIGNED8 static const u8 effect_0B005820[] = { ++ #include "textures/effect/lava_bubble.05820.rgba16.inc.c" ++ }; ++ ++ // 0x0B006020 ++-const Texture *const lava_bubble_ptr_0B006020[] = { +++const u8 *const lava_bubble_ptr_0B006020[] = { ++ effect_0B002020, ++ effect_0B002820, ++ effect_0B003020, ++@@ -96,18 +93,18 @@ const Texture *const lava_bubble_ptr_0B006020[] = { ++ ++ // Bubble ++ // 0x0B006048 ++-ALIGNED8 static const Texture effect_0B006048[] = { +++ALIGNED8 static const u8 effect_0B006048[] = { ++ #include "textures/effect/bubble.06048.rgba16.inc.c" ++ }; ++ ++ // 0x0B006848 ++-const Texture *const bubble_ptr_0B006848[] = { +++const u8 *const bubble_ptr_0B006848[] = { ++ effect_0B006048, ++ }; ++ ++ // Tiny Bubble ++ // 0x0B00684C ++-ALIGNED8 const Texture effect_0B00684C[] = { +++ALIGNED8 static const u8 effect_0B00684C[] = { ++ #include "textures/effect/tiny_bubble.0684C.rgba16.inc.c" ++ }; ++ ++@@ -137,7 +134,7 @@ const Gfx tiny_bubble_dl_0B006AB0[] = { ++ }; ++ ++ // 0x0B006AD8 ++-ALIGNED8 static const Texture effect_0B006AD8[] = { +++ALIGNED8 static const u8 effect_0B006AD8[] = { ++ #include "textures/effect/tiny_bubble.06AD8.rgba16.inc.c" ++ }; ++ +diff --git a/bin/eu/translation_de.c b/bin/eu/translation_de.c +index d7c1f59..6be959e 100644 +--- a/bin/eu/translation_de.c ++++ b/bin/eu/translation_de.c +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - Deutsch + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" +diff --git a/bin/eu/translation_de.c.rej b/bin/eu/translation_de.c.rej +new file mode 100644 +index 0000000..b0f6d6c +--- /dev/null ++++ b/bin/eu/translation_de.c.rej +@@ -0,0 +1,9 @@ ++diff a/bin/eu/translation_de.c b/bin/eu/translation_de.c (rejected hunks) ++@@ -1,7 +1,5 @@ ++ // SM64 (EU) Segment 19 - Deutsch ++ ++-#include "macros.h" ++- ++ #include "game/ingame_menu.h" ++ ++ #include "make_const_nonconst.h" +diff --git a/bin/eu/translation_en.c b/bin/eu/translation_en.c +index 9817bc5..e6f2cac 100644 +--- a/bin/eu/translation_en.c ++++ b/bin/eu/translation_en.c +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - English + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" +diff --git a/bin/eu/translation_en.c.rej b/bin/eu/translation_en.c.rej +new file mode 100644 +index 0000000..72e93e4 +--- /dev/null ++++ b/bin/eu/translation_en.c.rej +@@ -0,0 +1,9 @@ ++diff a/bin/eu/translation_en.c b/bin/eu/translation_en.c (rejected hunks) ++@@ -1,7 +1,5 @@ ++ // SM64 (EU) Segment 19 - English ++ ++-#include "macros.h" ++- ++ #include "game/ingame_menu.h" ++ ++ #include "make_const_nonconst.h" +diff --git a/bin/eu/translation_fr.c b/bin/eu/translation_fr.c +index 119839c..ed0d057 100644 +--- a/bin/eu/translation_fr.c ++++ b/bin/eu/translation_fr.c +@@ -1,7 +1,5 @@ + // SM64 (EU) Segment 19 - Français + +-#include "macros.h" +- + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" +diff --git a/bin/eu/translation_fr.c.rej b/bin/eu/translation_fr.c.rej +new file mode 100644 +index 0000000..399eb93 +--- /dev/null ++++ b/bin/eu/translation_fr.c.rej +@@ -0,0 +1,9 @@ ++diff a/bin/eu/translation_fr.c b/bin/eu/translation_fr.c (rejected hunks) ++@@ -1,7 +1,5 @@ ++ // SM64 (EU) Segment 19 - Français ++ ++-#include "macros.h" ++- ++ #include "game/ingame_menu.h" ++ ++ #include "make_const_nonconst.h" +diff --git a/bin/fire.c b/bin/fire.c +index 72e230c..ea0f5ec 100644 +--- a/bin/fire.c ++++ b/bin/fire.c +@@ -1,124 +1,123 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture fire_09000000[] = { ++ALIGNED8 const u8 fire_09000000[] = { + #include "textures/fire/lll_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture fire_09000800[] = { ++ALIGNED8 const u8 fire_09000800[] = { + #include "textures/fire/lll_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture fire_09001000[] = { ++ALIGNED8 const u8 fire_09001000[] = { + #include "textures/fire/lll_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture fire_09001800[] = { ++ALIGNED8 const u8 fire_09001800[] = { + #include "textures/fire/lll_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture fire_09002000[] = { ++ALIGNED8 const u8 fire_09002000[] = { + #include "textures/fire/lll_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture fire_09002800[] = { ++ALIGNED8 const u8 fire_09002800[] = { + #include "textures/fire/lll_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture fire_09003000[] = { ++ALIGNED8 const u8 fire_09003000[] = { + #include "textures/fire/lll_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture fire_09003800[] = { ++ALIGNED8 const u8 fire_09003800[] = { + #include "textures/fire/lll_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture fire_09004000[] = { ++ALIGNED8 const u8 fire_09004000[] = { + #include "textures/fire/lll_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture fire_09004800[] = { ++ALIGNED8 const u8 fire_09004800[] = { + #include "textures/fire/lll_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture fire_09005000[] = { ++ALIGNED8 const u8 fire_09005000[] = { + #include "textures/fire/lll_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture fire_09005800[] = { ++ALIGNED8 const u8 fire_09005800[] = { + #include "textures/fire/lll_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture fire_09006000[] = { ++ALIGNED8 const u8 fire_09006000[] = { + #include "textures/fire/lll_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture fire_09006800[] = { ++ALIGNED8 const u8 fire_09006800[] = { + #include "textures/fire/lll_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture fire_09007000[] = { ++ALIGNED8 const u8 fire_09007000[] = { + #include "textures/fire/lll_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture fire_09007800[] = { ++ALIGNED8 const u8 fire_09007800[] = { + #include "textures/fire/lll_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture fire_09008000[] = { ++ALIGNED8 const u8 fire_09008000[] = { + #include "textures/fire/lll_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture fire_09008800[] = { ++ALIGNED8 const u8 fire_09008800[] = { + #include "textures/fire/lll_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture fire_09009000[] = { ++ALIGNED8 const u8 fire_09009000[] = { + #include "textures/fire/lll_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture fire_09009800[] = { ++ALIGNED8 const u8 fire_09009800[] = { + #include "textures/fire/lll_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture fire_0900A000[] = { ++ALIGNED8 const u8 fire_0900A000[] = { + #include "textures/fire/lll_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture fire_0900A800[] = { ++ALIGNED8 const u8 fire_0900A800[] = { + #include "textures/fire/lll_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture fire_0900B000[] = { ++ALIGNED8 const u8 fire_0900B000[] = { + #include "textures/fire/lll_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture fire_0900B800[] = { ++ALIGNED8 const u8 fire_0900B800[] = { + #include "textures/fire/lll_textures.0B800.rgba16.inc.c" + }; +diff --git a/bin/fire.c.rej b/bin/fire.c.rej +new file mode 100644 +index 0000000..01e7c79 +--- /dev/null ++++ b/bin/fire.c.rej +@@ -0,0 +1,151 @@ ++diff a/bin/fire.c b/bin/fire.c (rejected hunks) ++@@ -1,124 +1,123 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture fire_09000000[] = { +++ALIGNED8 const u8 fire_09000000[] = { ++ #include "textures/fire/lll_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture fire_09000800[] = { +++ALIGNED8 const u8 fire_09000800[] = { ++ #include "textures/fire/lll_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture fire_09001000[] = { +++ALIGNED8 const u8 fire_09001000[] = { ++ #include "textures/fire/lll_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture fire_09001800[] = { +++ALIGNED8 const u8 fire_09001800[] = { ++ #include "textures/fire/lll_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture fire_09002000[] = { +++ALIGNED8 const u8 fire_09002000[] = { ++ #include "textures/fire/lll_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture fire_09002800[] = { +++ALIGNED8 const u8 fire_09002800[] = { ++ #include "textures/fire/lll_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture fire_09003000[] = { +++ALIGNED8 const u8 fire_09003000[] = { ++ #include "textures/fire/lll_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture fire_09003800[] = { +++ALIGNED8 const u8 fire_09003800[] = { ++ #include "textures/fire/lll_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture fire_09004000[] = { +++ALIGNED8 const u8 fire_09004000[] = { ++ #include "textures/fire/lll_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture fire_09004800[] = { +++ALIGNED8 const u8 fire_09004800[] = { ++ #include "textures/fire/lll_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture fire_09005000[] = { +++ALIGNED8 const u8 fire_09005000[] = { ++ #include "textures/fire/lll_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture fire_09005800[] = { +++ALIGNED8 const u8 fire_09005800[] = { ++ #include "textures/fire/lll_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture fire_09006000[] = { +++ALIGNED8 const u8 fire_09006000[] = { ++ #include "textures/fire/lll_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture fire_09006800[] = { +++ALIGNED8 const u8 fire_09006800[] = { ++ #include "textures/fire/lll_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture fire_09007000[] = { +++ALIGNED8 const u8 fire_09007000[] = { ++ #include "textures/fire/lll_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture fire_09007800[] = { +++ALIGNED8 const u8 fire_09007800[] = { ++ #include "textures/fire/lll_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture fire_09008000[] = { +++ALIGNED8 const u8 fire_09008000[] = { ++ #include "textures/fire/lll_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture fire_09008800[] = { +++ALIGNED8 const u8 fire_09008800[] = { ++ #include "textures/fire/lll_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture fire_09009000[] = { +++ALIGNED8 const u8 fire_09009000[] = { ++ #include "textures/fire/lll_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture fire_09009800[] = { +++ALIGNED8 const u8 fire_09009800[] = { ++ #include "textures/fire/lll_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture fire_0900A000[] = { +++ALIGNED8 const u8 fire_0900A000[] = { ++ #include "textures/fire/lll_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture fire_0900A800[] = { +++ALIGNED8 const u8 fire_0900A800[] = { ++ #include "textures/fire/lll_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture fire_0900B000[] = { +++ALIGNED8 const u8 fire_0900B000[] = { ++ #include "textures/fire/lll_textures.0B000.rgba16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture fire_0900B800[] = { +++ALIGNED8 const u8 fire_0900B800[] = { ++ #include "textures/fire/lll_textures.0B800.rgba16.inc.c" ++ }; +diff --git a/bin/generic.c b/bin/generic.c +index c90dea6..4ce3697 100644 +--- a/bin/generic.c ++++ b/bin/generic.c +@@ -1,114 +1,113 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture generic_09000000[] = { ++ALIGNED8 const u8 generic_09000000[] = { + #include "textures/generic/bob_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture generic_09000800[] = { ++ALIGNED8 const u8 generic_09000800[] = { + #include "textures/generic/bob_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture generic_09001000[] = { ++ALIGNED8 const u8 generic_09001000[] = { + #include "textures/generic/bob_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture generic_09001800[] = { ++ALIGNED8 const u8 generic_09001800[] = { + #include "textures/generic/bob_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture generic_09002000[] = { ++ALIGNED8 const u8 generic_09002000[] = { + #include "textures/generic/bob_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture generic_09002800[] = { ++ALIGNED8 const u8 generic_09002800[] = { + #include "textures/generic/bob_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture generic_09003000[] = { ++ALIGNED8 const u8 generic_09003000[] = { + #include "textures/generic/bob_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture generic_09003800[] = { ++ALIGNED8 const u8 generic_09003800[] = { + #include "textures/generic/bob_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture generic_09004000[] = { ++ALIGNED8 const u8 generic_09004000[] = { + #include "textures/generic/bob_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture generic_09004800[] = { ++ALIGNED8 const u8 generic_09004800[] = { + #include "textures/generic/bob_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture generic_09005000[] = { ++ALIGNED8 const u8 generic_09005000[] = { + #include "textures/generic/bob_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture generic_09005800[] = { ++ALIGNED8 const u8 generic_09005800[] = { + #include "textures/generic/bob_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture generic_09006000[] = { ++ALIGNED8 const u8 generic_09006000[] = { + #include "textures/generic/bob_textures.06000.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture generic_09007000[] = { ++ALIGNED8 const u8 generic_09007000[] = { + #include "textures/generic/bob_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture generic_09007800[] = { ++ALIGNED8 const u8 generic_09007800[] = { + #include "textures/generic/bob_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture generic_09008000[] = { ++ALIGNED8 const u8 generic_09008000[] = { + #include "textures/generic/bob_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture generic_09008800[] = { ++ALIGNED8 const u8 generic_09008800[] = { + #include "textures/generic/bob_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture generic_09009000[] = { ++ALIGNED8 const u8 generic_09009000[] = { + #include "textures/generic/bob_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture generic_09009800[] = { ++ALIGNED8 const u8 generic_09009800[] = { + #include "textures/generic/bob_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture generic_0900A000[] = { ++ALIGNED8 const u8 generic_0900A000[] = { + #include "textures/generic/bob_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture generic_0900A800[] = { ++ALIGNED8 const u8 generic_0900A800[] = { + #include "textures/generic/bob_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture generic_0900B000[] = { ++ALIGNED8 const u8 generic_0900B000[] = { + #include "textures/generic/bob_textures.0B000.ia16.inc.c" + }; +diff --git a/bin/generic.c.rej b/bin/generic.c.rej +new file mode 100644 +index 0000000..691c0b8 +--- /dev/null ++++ b/bin/generic.c.rej +@@ -0,0 +1,139 @@ ++diff a/bin/generic.c b/bin/generic.c (rejected hunks) ++@@ -1,114 +1,113 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture generic_09000000[] = { +++ALIGNED8 const u8 generic_09000000[] = { ++ #include "textures/generic/bob_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture generic_09000800[] = { +++ALIGNED8 const u8 generic_09000800[] = { ++ #include "textures/generic/bob_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture generic_09001000[] = { +++ALIGNED8 const u8 generic_09001000[] = { ++ #include "textures/generic/bob_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture generic_09001800[] = { +++ALIGNED8 const u8 generic_09001800[] = { ++ #include "textures/generic/bob_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture generic_09002000[] = { +++ALIGNED8 const u8 generic_09002000[] = { ++ #include "textures/generic/bob_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture generic_09002800[] = { +++ALIGNED8 const u8 generic_09002800[] = { ++ #include "textures/generic/bob_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture generic_09003000[] = { +++ALIGNED8 const u8 generic_09003000[] = { ++ #include "textures/generic/bob_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture generic_09003800[] = { +++ALIGNED8 const u8 generic_09003800[] = { ++ #include "textures/generic/bob_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture generic_09004000[] = { +++ALIGNED8 const u8 generic_09004000[] = { ++ #include "textures/generic/bob_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture generic_09004800[] = { +++ALIGNED8 const u8 generic_09004800[] = { ++ #include "textures/generic/bob_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture generic_09005000[] = { +++ALIGNED8 const u8 generic_09005000[] = { ++ #include "textures/generic/bob_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture generic_09005800[] = { +++ALIGNED8 const u8 generic_09005800[] = { ++ #include "textures/generic/bob_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture generic_09006000[] = { +++ALIGNED8 const u8 generic_09006000[] = { ++ #include "textures/generic/bob_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture generic_09007000[] = { +++ALIGNED8 const u8 generic_09007000[] = { ++ #include "textures/generic/bob_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture generic_09007800[] = { +++ALIGNED8 const u8 generic_09007800[] = { ++ #include "textures/generic/bob_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture generic_09008000[] = { +++ALIGNED8 const u8 generic_09008000[] = { ++ #include "textures/generic/bob_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture generic_09008800[] = { +++ALIGNED8 const u8 generic_09008800[] = { ++ #include "textures/generic/bob_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture generic_09009000[] = { +++ALIGNED8 const u8 generic_09009000[] = { ++ #include "textures/generic/bob_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture generic_09009800[] = { +++ALIGNED8 const u8 generic_09009800[] = { ++ #include "textures/generic/bob_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture generic_0900A000[] = { +++ALIGNED8 const u8 generic_0900A000[] = { ++ #include "textures/generic/bob_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture generic_0900A800[] = { +++ALIGNED8 const u8 generic_0900A800[] = { ++ #include "textures/generic/bob_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture generic_0900B000[] = { +++ALIGNED8 const u8 generic_0900B000[] = { ++ #include "textures/generic/bob_textures.0B000.ia16.inc.c" ++ }; +diff --git a/bin/grass.c b/bin/grass.c +index 2404453..3df488d 100644 +--- a/bin/grass.c ++++ b/bin/grass.c +@@ -1,124 +1,123 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture grass_09000000[] = { ++ALIGNED8 const u8 grass_09000000[] = { + #include "textures/grass/wf_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture grass_09000800[] = { ++ALIGNED8 const u8 grass_09000800[] = { + #include "textures/grass/wf_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture grass_09001000[] = { ++ALIGNED8 const u8 grass_09001000[] = { + #include "textures/grass/wf_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture grass_09001800[] = { ++ALIGNED8 const u8 grass_09001800[] = { + #include "textures/grass/wf_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture grass_09002000[] = { ++ALIGNED8 const u8 grass_09002000[] = { + #include "textures/grass/wf_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture grass_09002800[] = { ++ALIGNED8 const u8 grass_09002800[] = { + #include "textures/grass/wf_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture grass_09003000[] = { ++ALIGNED8 const u8 grass_09003000[] = { + #include "textures/grass/wf_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture grass_09003800[] = { ++ALIGNED8 const u8 grass_09003800[] = { + #include "textures/grass/wf_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture grass_09004000[] = { ++ALIGNED8 const u8 grass_09004000[] = { + #include "textures/grass/wf_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture grass_09004800[] = { ++ALIGNED8 const u8 grass_09004800[] = { + #include "textures/grass/wf_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture grass_09005000[] = { ++ALIGNED8 const u8 grass_09005000[] = { + #include "textures/grass/wf_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture grass_09005800[] = { ++ALIGNED8 const u8 grass_09005800[] = { + #include "textures/grass/wf_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture grass_09006000[] = { ++ALIGNED8 const u8 grass_09006000[] = { + #include "textures/grass/wf_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture grass_09006800[] = { ++ALIGNED8 const u8 grass_09006800[] = { + #include "textures/grass/wf_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture grass_09007000[] = { ++ALIGNED8 const u8 grass_09007000[] = { + #include "textures/grass/wf_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture grass_09007800[] = { ++ALIGNED8 const u8 grass_09007800[] = { + #include "textures/grass/wf_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture grass_09008000[] = { ++ALIGNED8 const u8 grass_09008000[] = { + #include "textures/grass/wf_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture grass_09008800[] = { ++ALIGNED8 const u8 grass_09008800[] = { + #include "textures/grass/wf_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture grass_09009000[] = { ++ALIGNED8 const u8 grass_09009000[] = { + #include "textures/grass/wf_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture grass_09009800[] = { ++ALIGNED8 const u8 grass_09009800[] = { + #include "textures/grass/wf_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture grass_0900A000[] = { ++ALIGNED8 const u8 grass_0900A000[] = { + #include "textures/grass/wf_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture grass_0900A800[] = { ++ALIGNED8 const u8 grass_0900A800[] = { + #include "textures/grass/wf_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture grass_0900B000[] = { ++ALIGNED8 const u8 grass_0900B000[] = { + #include "textures/grass/wf_textures.0B000.ia16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture grass_0900B800[] = { ++ALIGNED8 const u8 grass_0900B800[] = { + #include "textures/grass/wf_textures.0B800.ia16.inc.c" + }; +diff --git a/bin/grass.c.rej b/bin/grass.c.rej +new file mode 100644 +index 0000000..5f3b20b +--- /dev/null ++++ b/bin/grass.c.rej +@@ -0,0 +1,151 @@ ++diff a/bin/grass.c b/bin/grass.c (rejected hunks) ++@@ -1,124 +1,123 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture grass_09000000[] = { +++ALIGNED8 const u8 grass_09000000[] = { ++ #include "textures/grass/wf_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture grass_09000800[] = { +++ALIGNED8 const u8 grass_09000800[] = { ++ #include "textures/grass/wf_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture grass_09001000[] = { +++ALIGNED8 const u8 grass_09001000[] = { ++ #include "textures/grass/wf_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture grass_09001800[] = { +++ALIGNED8 const u8 grass_09001800[] = { ++ #include "textures/grass/wf_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture grass_09002000[] = { +++ALIGNED8 const u8 grass_09002000[] = { ++ #include "textures/grass/wf_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture grass_09002800[] = { +++ALIGNED8 const u8 grass_09002800[] = { ++ #include "textures/grass/wf_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture grass_09003000[] = { +++ALIGNED8 const u8 grass_09003000[] = { ++ #include "textures/grass/wf_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture grass_09003800[] = { +++ALIGNED8 const u8 grass_09003800[] = { ++ #include "textures/grass/wf_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture grass_09004000[] = { +++ALIGNED8 const u8 grass_09004000[] = { ++ #include "textures/grass/wf_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture grass_09004800[] = { +++ALIGNED8 const u8 grass_09004800[] = { ++ #include "textures/grass/wf_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture grass_09005000[] = { +++ALIGNED8 const u8 grass_09005000[] = { ++ #include "textures/grass/wf_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture grass_09005800[] = { +++ALIGNED8 const u8 grass_09005800[] = { ++ #include "textures/grass/wf_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture grass_09006000[] = { +++ALIGNED8 const u8 grass_09006000[] = { ++ #include "textures/grass/wf_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture grass_09006800[] = { +++ALIGNED8 const u8 grass_09006800[] = { ++ #include "textures/grass/wf_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture grass_09007000[] = { +++ALIGNED8 const u8 grass_09007000[] = { ++ #include "textures/grass/wf_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture grass_09007800[] = { +++ALIGNED8 const u8 grass_09007800[] = { ++ #include "textures/grass/wf_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture grass_09008000[] = { +++ALIGNED8 const u8 grass_09008000[] = { ++ #include "textures/grass/wf_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture grass_09008800[] = { +++ALIGNED8 const u8 grass_09008800[] = { ++ #include "textures/grass/wf_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture grass_09009000[] = { +++ALIGNED8 const u8 grass_09009000[] = { ++ #include "textures/grass/wf_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture grass_09009800[] = { +++ALIGNED8 const u8 grass_09009800[] = { ++ #include "textures/grass/wf_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture grass_0900A000[] = { +++ALIGNED8 const u8 grass_0900A000[] = { ++ #include "textures/grass/wf_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture grass_0900A800[] = { +++ALIGNED8 const u8 grass_0900A800[] = { ++ #include "textures/grass/wf_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture grass_0900B000[] = { +++ALIGNED8 const u8 grass_0900B000[] = { ++ #include "textures/grass/wf_textures.0B000.ia16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture grass_0900B800[] = { +++ALIGNED8 const u8 grass_0900B800[] = { ++ #include "textures/grass/wf_textures.0B800.ia16.inc.c" ++ }; +diff --git a/bin/inside.c b/bin/inside.c +index 5fe85a1..d668af3 100644 +--- a/bin/inside.c ++++ b/bin/inside.c +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture inside_09000000[] = { ++ALIGNED8 const u8 inside_09000000[] = { + #include "textures/inside/inside_castle_textures.00000.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture inside_09001000[] = { ++ALIGNED8 const u8 inside_09001000[] = { + #include "textures/inside/inside_castle_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture inside_09002000[] = { ++ALIGNED8 const u8 inside_09002000[] = { + #include "textures/inside/inside_castle_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture inside_09003000[] = { ++ALIGNED8 const u8 inside_09003000[] = { + #include "textures/inside/inside_castle_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture inside_09003800[] = { ++ALIGNED8 const u8 inside_09003800[] = { + #include "textures/inside/inside_castle_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture inside_09004000[] = { ++ALIGNED8 const u8 inside_09004000[] = { + #include "textures/inside/inside_castle_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture inside_09004800[] = { ++ALIGNED8 const u8 inside_09004800[] = { + #include "textures/inside/inside_castle_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture inside_09005000[] = { ++ALIGNED8 const u8 inside_09005000[] = { + #include "textures/inside/inside_castle_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture inside_09005800[] = { ++ALIGNED8 const u8 inside_09005800[] = { + #include "textures/inside/inside_castle_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture inside_09006000[] = { ++ALIGNED8 const u8 inside_09006000[] = { + #include "textures/inside/inside_castle_textures.06000.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture inside_09007000[] = { ++ALIGNED8 const u8 inside_09007000[] = { + #include "textures/inside/inside_castle_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture inside_09008000[] = { ++ALIGNED8 const u8 inside_09008000[] = { + #include "textures/inside/inside_castle_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture inside_09008800[] = { ++ALIGNED8 const u8 inside_09008800[] = { + #include "textures/inside/inside_castle_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture inside_09009000[] = { ++ALIGNED8 const u8 inside_09009000[] = { + #include "textures/inside/inside_castle_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture inside_0900A000[] = { ++ALIGNED8 const u8 inside_0900A000[] = { + #include "textures/inside/inside_castle_textures.0A000.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture inside_0900B000[] = { ++ALIGNED8 const u8 inside_0900B000[] = { + #include "textures/inside/inside_castle_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture inside_0900B800[] = { ++ALIGNED8 const u8 inside_0900B800[] = { + #include "textures/inside/inside_castle_textures.0B800.rgba16.inc.c" + }; +diff --git a/bin/inside.c.rej b/bin/inside.c.rej +new file mode 100644 +index 0000000..03c04da +--- /dev/null ++++ b/bin/inside.c.rej +@@ -0,0 +1,109 @@ ++diff a/bin/inside.c b/bin/inside.c (rejected hunks) ++@@ -1,89 +1,88 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture inside_09000000[] = { +++ALIGNED8 const u8 inside_09000000[] = { ++ #include "textures/inside/inside_castle_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture inside_09001000[] = { +++ALIGNED8 const u8 inside_09001000[] = { ++ #include "textures/inside/inside_castle_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture inside_09002000[] = { +++ALIGNED8 const u8 inside_09002000[] = { ++ #include "textures/inside/inside_castle_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture inside_09003000[] = { +++ALIGNED8 const u8 inside_09003000[] = { ++ #include "textures/inside/inside_castle_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture inside_09003800[] = { +++ALIGNED8 const u8 inside_09003800[] = { ++ #include "textures/inside/inside_castle_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture inside_09004000[] = { +++ALIGNED8 const u8 inside_09004000[] = { ++ #include "textures/inside/inside_castle_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture inside_09004800[] = { +++ALIGNED8 const u8 inside_09004800[] = { ++ #include "textures/inside/inside_castle_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture inside_09005000[] = { +++ALIGNED8 const u8 inside_09005000[] = { ++ #include "textures/inside/inside_castle_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture inside_09005800[] = { +++ALIGNED8 const u8 inside_09005800[] = { ++ #include "textures/inside/inside_castle_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture inside_09006000[] = { +++ALIGNED8 const u8 inside_09006000[] = { ++ #include "textures/inside/inside_castle_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture inside_09007000[] = { +++ALIGNED8 const u8 inside_09007000[] = { ++ #include "textures/inside/inside_castle_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture inside_09008000[] = { +++ALIGNED8 const u8 inside_09008000[] = { ++ #include "textures/inside/inside_castle_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture inside_09008800[] = { +++ALIGNED8 const u8 inside_09008800[] = { ++ #include "textures/inside/inside_castle_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture inside_09009000[] = { +++ALIGNED8 const u8 inside_09009000[] = { ++ #include "textures/inside/inside_castle_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture inside_0900A000[] = { +++ALIGNED8 const u8 inside_0900A000[] = { ++ #include "textures/inside/inside_castle_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture inside_0900B000[] = { +++ALIGNED8 const u8 inside_0900B000[] = { ++ #include "textures/inside/inside_castle_textures.0B000.rgba16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture inside_0900B800[] = { +++ALIGNED8 const u8 inside_0900B800[] = { ++ #include "textures/inside/inside_castle_textures.0B800.rgba16.inc.c" ++ }; +diff --git a/bin/machine.c b/bin/machine.c +index f3f447f..95afb45 100644 +--- a/bin/machine.c ++++ b/bin/machine.c +@@ -1,89 +1,88 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture machine_09000000[] = { ++ALIGNED8 const u8 machine_09000000[] = { + #include "textures/machine/ttc_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture machine_09000800[] = { ++ALIGNED8 const u8 machine_09000800[] = { + #include "textures/machine/ttc_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture machine_09001000[] = { ++ALIGNED8 const u8 machine_09001000[] = { + #include "textures/machine/ttc_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture machine_09001800[] = { ++ALIGNED8 const u8 machine_09001800[] = { + #include "textures/machine/ttc_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture machine_09002000[] = { ++ALIGNED8 const u8 machine_09002000[] = { + #include "textures/machine/ttc_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture machine_09002800[] = { ++ALIGNED8 const u8 machine_09002800[] = { + #include "textures/machine/ttc_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture machine_09003000[] = { ++ALIGNED8 const u8 machine_09003000[] = { + #include "textures/machine/ttc_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture machine_09003800[] = { ++ALIGNED8 const u8 machine_09003800[] = { + #include "textures/machine/ttc_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture machine_09004000[] = { ++ALIGNED8 const u8 machine_09004000[] = { + #include "textures/machine/ttc_textures.04000.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture machine_09005000[] = { ++ALIGNED8 const u8 machine_09005000[] = { + #include "textures/machine/ttc_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture machine_09005800[] = { ++ALIGNED8 const u8 machine_09005800[] = { + #include "textures/machine/ttc_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture machine_09006000[] = { ++ALIGNED8 const u8 machine_09006000[] = { + #include "textures/machine/ttc_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture machine_09006800[] = { ++ALIGNED8 const u8 machine_09006800[] = { + #include "textures/machine/ttc_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture machine_09007000[] = { ++ALIGNED8 const u8 machine_09007000[] = { + #include "textures/machine/ttc_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture machine_09007800[] = { ++ALIGNED8 const u8 machine_09007800[] = { + #include "textures/machine/ttc_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture machine_09008000[] = { ++ALIGNED8 const u8 machine_09008000[] = { + #include "textures/machine/ttc_textures.08000.rgba16.inc.c" + }; + + // 0x09008400 +-ALIGNED8 const Texture machine_09008400[] = { ++ALIGNED8 const u8 machine_09008400[] = { + #include "textures/machine/ttc_textures.08400.rgba16.inc.c" + }; +diff --git a/bin/machine.c.rej b/bin/machine.c.rej +new file mode 100644 +index 0000000..374107e +--- /dev/null ++++ b/bin/machine.c.rej +@@ -0,0 +1,109 @@ ++diff a/bin/machine.c b/bin/machine.c (rejected hunks) ++@@ -1,89 +1,88 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture machine_09000000[] = { +++ALIGNED8 const u8 machine_09000000[] = { ++ #include "textures/machine/ttc_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture machine_09000800[] = { +++ALIGNED8 const u8 machine_09000800[] = { ++ #include "textures/machine/ttc_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture machine_09001000[] = { +++ALIGNED8 const u8 machine_09001000[] = { ++ #include "textures/machine/ttc_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture machine_09001800[] = { +++ALIGNED8 const u8 machine_09001800[] = { ++ #include "textures/machine/ttc_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture machine_09002000[] = { +++ALIGNED8 const u8 machine_09002000[] = { ++ #include "textures/machine/ttc_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture machine_09002800[] = { +++ALIGNED8 const u8 machine_09002800[] = { ++ #include "textures/machine/ttc_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture machine_09003000[] = { +++ALIGNED8 const u8 machine_09003000[] = { ++ #include "textures/machine/ttc_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture machine_09003800[] = { +++ALIGNED8 const u8 machine_09003800[] = { ++ #include "textures/machine/ttc_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture machine_09004000[] = { +++ALIGNED8 const u8 machine_09004000[] = { ++ #include "textures/machine/ttc_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture machine_09005000[] = { +++ALIGNED8 const u8 machine_09005000[] = { ++ #include "textures/machine/ttc_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture machine_09005800[] = { +++ALIGNED8 const u8 machine_09005800[] = { ++ #include "textures/machine/ttc_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture machine_09006000[] = { +++ALIGNED8 const u8 machine_09006000[] = { ++ #include "textures/machine/ttc_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture machine_09006800[] = { +++ALIGNED8 const u8 machine_09006800[] = { ++ #include "textures/machine/ttc_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture machine_09007000[] = { +++ALIGNED8 const u8 machine_09007000[] = { ++ #include "textures/machine/ttc_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture machine_09007800[] = { +++ALIGNED8 const u8 machine_09007800[] = { ++ #include "textures/machine/ttc_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture machine_09008000[] = { +++ALIGNED8 const u8 machine_09008000[] = { ++ #include "textures/machine/ttc_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008400 ++-ALIGNED8 const Texture machine_09008400[] = { +++ALIGNED8 const u8 machine_09008400[] = { ++ #include "textures/machine/ttc_textures.08400.rgba16.inc.c" ++ }; +diff --git a/bin/mountain.c b/bin/mountain.c +index 2f3ae94..8a675c3 100644 +--- a/bin/mountain.c ++++ b/bin/mountain.c +@@ -1,109 +1,108 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture mountain_09000000[] = { ++ALIGNED8 const u8 mountain_09000000[] = { + #include "textures/mountain/ttm_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture mountain_09000800[] = { ++ALIGNED8 const u8 mountain_09000800[] = { + #include "textures/mountain/ttm_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture mountain_09001800[] = { ++ALIGNED8 const u8 mountain_09001800[] = { + #include "textures/mountain/ttm_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture mountain_09002800[] = { ++ALIGNED8 const u8 mountain_09002800[] = { + #include "textures/mountain/ttm_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture mountain_09003000[] = { ++ALIGNED8 const u8 mountain_09003000[] = { + #include "textures/mountain/ttm_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture mountain_09003800[] = { ++ALIGNED8 const u8 mountain_09003800[] = { + #include "textures/mountain/ttm_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture mountain_09004000[] = { ++ALIGNED8 const u8 mountain_09004000[] = { + #include "textures/mountain/ttm_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture mountain_09004800[] = { ++ALIGNED8 const u8 mountain_09004800[] = { + #include "textures/mountain/ttm_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture mountain_09005000[] = { ++ALIGNED8 const u8 mountain_09005000[] = { + #include "textures/mountain/ttm_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture mountain_09005800[] = { ++ALIGNED8 const u8 mountain_09005800[] = { + #include "textures/mountain/ttm_textures.05800.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture mountain_09006800[] = { ++ALIGNED8 const u8 mountain_09006800[] = { + #include "textures/mountain/ttm_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture mountain_09007000[] = { ++ALIGNED8 const u8 mountain_09007000[] = { + #include "textures/mountain/ttm_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture mountain_09007800[] = { ++ALIGNED8 const u8 mountain_09007800[] = { + #include "textures/mountain/ttm_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture mountain_09008000[] = { ++ALIGNED8 const u8 mountain_09008000[] = { + #include "textures/mountain/ttm_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture mountain_09008800[] = { ++ALIGNED8 const u8 mountain_09008800[] = { + #include "textures/mountain/ttm_textures.08800.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture mountain_09009800[] = { ++ALIGNED8 const u8 mountain_09009800[] = { + #include "textures/mountain/ttm_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture mountain_0900A000[] = { ++ALIGNED8 const u8 mountain_0900A000[] = { + #include "textures/mountain/ttm_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture mountain_0900A800[] = { ++ALIGNED8 const u8 mountain_0900A800[] = { + #include "textures/mountain/ttm_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture mountain_0900B000[] = { ++ALIGNED8 const u8 mountain_0900B000[] = { + #include "textures/mountain/ttm_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture mountain_0900B800[] = { ++ALIGNED8 const u8 mountain_0900B800[] = { + #include "textures/mountain/ttm_textures.0B800.rgba16.inc.c" + }; + + // 0x0900C000 +-ALIGNED8 const Texture mountain_0900C000[] = { ++ALIGNED8 const u8 mountain_0900C000[] = { + #include "textures/mountain/ttm_textures.0C000.rgba16.inc.c" + }; +diff --git a/bin/mountain.c.rej b/bin/mountain.c.rej +new file mode 100644 +index 0000000..14f0e97 +--- /dev/null ++++ b/bin/mountain.c.rej +@@ -0,0 +1,133 @@ ++diff a/bin/mountain.c b/bin/mountain.c (rejected hunks) ++@@ -1,109 +1,108 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture mountain_09000000[] = { +++ALIGNED8 const u8 mountain_09000000[] = { ++ #include "textures/mountain/ttm_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture mountain_09000800[] = { +++ALIGNED8 const u8 mountain_09000800[] = { ++ #include "textures/mountain/ttm_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture mountain_09001800[] = { +++ALIGNED8 const u8 mountain_09001800[] = { ++ #include "textures/mountain/ttm_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture mountain_09002800[] = { +++ALIGNED8 const u8 mountain_09002800[] = { ++ #include "textures/mountain/ttm_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture mountain_09003000[] = { +++ALIGNED8 const u8 mountain_09003000[] = { ++ #include "textures/mountain/ttm_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture mountain_09003800[] = { +++ALIGNED8 const u8 mountain_09003800[] = { ++ #include "textures/mountain/ttm_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture mountain_09004000[] = { +++ALIGNED8 const u8 mountain_09004000[] = { ++ #include "textures/mountain/ttm_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture mountain_09004800[] = { +++ALIGNED8 const u8 mountain_09004800[] = { ++ #include "textures/mountain/ttm_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture mountain_09005000[] = { +++ALIGNED8 const u8 mountain_09005000[] = { ++ #include "textures/mountain/ttm_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture mountain_09005800[] = { +++ALIGNED8 const u8 mountain_09005800[] = { ++ #include "textures/mountain/ttm_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture mountain_09006800[] = { +++ALIGNED8 const u8 mountain_09006800[] = { ++ #include "textures/mountain/ttm_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture mountain_09007000[] = { +++ALIGNED8 const u8 mountain_09007000[] = { ++ #include "textures/mountain/ttm_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture mountain_09007800[] = { +++ALIGNED8 const u8 mountain_09007800[] = { ++ #include "textures/mountain/ttm_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture mountain_09008000[] = { +++ALIGNED8 const u8 mountain_09008000[] = { ++ #include "textures/mountain/ttm_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture mountain_09008800[] = { +++ALIGNED8 const u8 mountain_09008800[] = { ++ #include "textures/mountain/ttm_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture mountain_09009800[] = { +++ALIGNED8 const u8 mountain_09009800[] = { ++ #include "textures/mountain/ttm_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture mountain_0900A000[] = { +++ALIGNED8 const u8 mountain_0900A000[] = { ++ #include "textures/mountain/ttm_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture mountain_0900A800[] = { +++ALIGNED8 const u8 mountain_0900A800[] = { ++ #include "textures/mountain/ttm_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture mountain_0900B000[] = { +++ALIGNED8 const u8 mountain_0900B000[] = { ++ #include "textures/mountain/ttm_textures.0B000.rgba16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture mountain_0900B800[] = { +++ALIGNED8 const u8 mountain_0900B800[] = { ++ #include "textures/mountain/ttm_textures.0B800.rgba16.inc.c" ++ }; ++ ++ // 0x0900C000 ++-ALIGNED8 const Texture mountain_0900C000[] = { +++ALIGNED8 const u8 mountain_0900C000[] = { ++ #include "textures/mountain/ttm_textures.0C000.rgba16.inc.c" ++ }; +diff --git a/bin/outside.c b/bin/outside.c +index 50cae36..8de8513 100644 +--- a/bin/outside.c ++++ b/bin/outside.c +@@ -1,109 +1,109 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture outside_09000000[] = { ++ALIGNED8 const u8 outside_09000000[] = { + #include "textures/outside/castle_grounds_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture outside_09000800[] = { ++ALIGNED8 const u8 outside_09000800[] = { + #include "textures/outside/castle_grounds_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture outside_09001000[] = { ++ALIGNED8 const u8 outside_09001000[] = { + #include "textures/outside/castle_grounds_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture outside_09002000[] = { ++ALIGNED8 const u8 outside_09002000[] = { + #include "textures/outside/castle_grounds_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture outside_09003000[] = { ++ALIGNED8 const u8 outside_09003000[] = { + #include "textures/outside/castle_grounds_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture outside_09003800[] = { ++ALIGNED8 const u8 outside_09003800[] = { + #include "textures/outside/castle_grounds_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture outside_09004000[] = { ++ALIGNED8 const u8 outside_09004000[] = { + #include "textures/outside/castle_grounds_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture outside_09004800[] = { ++ALIGNED8 const u8 outside_09004800[] = { + #include "textures/outside/castle_grounds_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture outside_09005800[] = { ++ALIGNED8 const u8 outside_09005800[] = { + #include "textures/outside/castle_grounds_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture outside_09006000[] = { ++ALIGNED8 const u8 outside_09006000[] = { + #include "textures/outside/castle_grounds_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture outside_09006800[] = { ++ALIGNED8 const u8 outside_09006800[] = { + #include "textures/outside/castle_grounds_textures.06800.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture outside_09007800[] = { ++ALIGNED8 const u8 outside_09007800[] = { + #include "textures/outside/castle_grounds_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture outside_09008000[] = { ++ALIGNED8 const u8 outside_09008000[] = { + #include "textures/outside/castle_grounds_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture outside_09008800[] = { ++ALIGNED8 const u8 outside_09008800[] = { + #include "textures/outside/castle_grounds_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture outside_09009000[] = { ++ALIGNED8 const u8 outside_09009000[] = { + #include "textures/outside/castle_grounds_textures.09000.rgba16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture outside_09009800[] = { ++ALIGNED8 const u8 outside_09009800[] = { + #include "textures/outside/castle_grounds_textures.09800.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture outside_0900A000[] = { ++ALIGNED8 const u8 outside_0900A000[] = { + #include "textures/outside/castle_grounds_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture outside_0900A800[] = { ++ALIGNED8 const u8 outside_0900A800[] = { + #include "textures/outside/castle_grounds_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture outside_0900B000[] = { ++ALIGNED8 const u8 outside_0900B000[] = { + #include "textures/outside/castle_grounds_textures.0B000.rgba16.inc.c" + }; + + // 0x0900B400 +-ALIGNED8 const Texture outside_0900B400[] = { ++ALIGNED8 const u8 outside_0900B400[] = { + #include "textures/outside/castle_grounds_textures.0B400.rgba16.inc.c" + }; + + // 0x0900BC00 +-ALIGNED8 const Texture outside_0900BC00[] = { ++ALIGNED8 const u8 outside_0900BC00[] = { + #include "textures/outside/castle_grounds_textures.0BC00.ia16.inc.c" + }; ++ +diff --git a/bin/outside.c.rej b/bin/outside.c.rej +new file mode 100644 +index 0000000..2f45b3a +--- /dev/null ++++ b/bin/outside.c.rej +@@ -0,0 +1,134 @@ ++diff a/bin/outside.c b/bin/outside.c (rejected hunks) ++@@ -1,109 +1,109 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture outside_09000000[] = { +++ALIGNED8 const u8 outside_09000000[] = { ++ #include "textures/outside/castle_grounds_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture outside_09000800[] = { +++ALIGNED8 const u8 outside_09000800[] = { ++ #include "textures/outside/castle_grounds_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture outside_09001000[] = { +++ALIGNED8 const u8 outside_09001000[] = { ++ #include "textures/outside/castle_grounds_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture outside_09002000[] = { +++ALIGNED8 const u8 outside_09002000[] = { ++ #include "textures/outside/castle_grounds_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture outside_09003000[] = { +++ALIGNED8 const u8 outside_09003000[] = { ++ #include "textures/outside/castle_grounds_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture outside_09003800[] = { +++ALIGNED8 const u8 outside_09003800[] = { ++ #include "textures/outside/castle_grounds_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture outside_09004000[] = { +++ALIGNED8 const u8 outside_09004000[] = { ++ #include "textures/outside/castle_grounds_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture outside_09004800[] = { +++ALIGNED8 const u8 outside_09004800[] = { ++ #include "textures/outside/castle_grounds_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture outside_09005800[] = { +++ALIGNED8 const u8 outside_09005800[] = { ++ #include "textures/outside/castle_grounds_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture outside_09006000[] = { +++ALIGNED8 const u8 outside_09006000[] = { ++ #include "textures/outside/castle_grounds_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture outside_09006800[] = { +++ALIGNED8 const u8 outside_09006800[] = { ++ #include "textures/outside/castle_grounds_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture outside_09007800[] = { +++ALIGNED8 const u8 outside_09007800[] = { ++ #include "textures/outside/castle_grounds_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture outside_09008000[] = { +++ALIGNED8 const u8 outside_09008000[] = { ++ #include "textures/outside/castle_grounds_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture outside_09008800[] = { +++ALIGNED8 const u8 outside_09008800[] = { ++ #include "textures/outside/castle_grounds_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture outside_09009000[] = { +++ALIGNED8 const u8 outside_09009000[] = { ++ #include "textures/outside/castle_grounds_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture outside_09009800[] = { +++ALIGNED8 const u8 outside_09009800[] = { ++ #include "textures/outside/castle_grounds_textures.09800.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture outside_0900A000[] = { +++ALIGNED8 const u8 outside_0900A000[] = { ++ #include "textures/outside/castle_grounds_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture outside_0900A800[] = { +++ALIGNED8 const u8 outside_0900A800[] = { ++ #include "textures/outside/castle_grounds_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture outside_0900B000[] = { +++ALIGNED8 const u8 outside_0900B000[] = { ++ #include "textures/outside/castle_grounds_textures.0B000.rgba16.inc.c" ++ }; ++ ++ // 0x0900B400 ++-ALIGNED8 const Texture outside_0900B400[] = { +++ALIGNED8 const u8 outside_0900B400[] = { ++ #include "textures/outside/castle_grounds_textures.0B400.rgba16.inc.c" ++ }; ++ ++ // 0x0900BC00 ++-ALIGNED8 const Texture outside_0900BC00[] = { +++ALIGNED8 const u8 outside_0900BC00[] = { ++ #include "textures/outside/castle_grounds_textures.0BC00.ia16.inc.c" ++ }; +++ +diff --git a/bin/segment2.c b/bin/segment2.c +index eb2bdb3..ca536e5 100644 +--- a/bin/segment2.c ++++ b/bin/segment2.c +@@ -1,1811 +1,1807 @@ +-#include +-#include +- +-#include "config.h" +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" + #include "game/ingame_menu.h" + + #include "make_const_nonconst.h" + +-// SM64 (US/JP/EU/SH) Segment 02 ++// SM64 (US/JP/EU) Segment 02 + +-ALIGNED8 static const Texture texture_hud_char_0[] = { ++ALIGNED8 static const u8 texture_hud_char_0[] = { + #include "textures/segment2/segment2.00000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_1[] = { ++ALIGNED8 static const u8 texture_hud_char_1[] = { + #include "textures/segment2/segment2.00200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_2[] = { ++ALIGNED8 static const u8 texture_hud_char_2[] = { + #include "textures/segment2/segment2.00400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_3[] = { ++ALIGNED8 static const u8 texture_hud_char_3[] = { + #include "textures/segment2/segment2.00600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_4[] = { ++ALIGNED8 static const u8 texture_hud_char_4[] = { + #include "textures/segment2/segment2.00800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_5[] = { ++ALIGNED8 static const u8 texture_hud_char_5[] = { + #include "textures/segment2/segment2.00A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_6[] = { ++ALIGNED8 static const u8 texture_hud_char_6[] = { + #include "textures/segment2/segment2.00C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_7[] = { ++ALIGNED8 static const u8 texture_hud_char_7[] = { + #include "textures/segment2/segment2.00E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_8[] = { ++ALIGNED8 static const u8 texture_hud_char_8[] = { + #include "textures/segment2/segment2.01000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_9[] = { ++ALIGNED8 static const u8 texture_hud_char_9[] = { + #include "textures/segment2/segment2.01200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_A[] = { ++ALIGNED8 static const u8 texture_hud_char_A[] = { + #include "textures/segment2/segment2.01400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_B[] = { ++ALIGNED8 static const u8 texture_hud_char_B[] = { + #include "textures/segment2/segment2.01600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_C[] = { ++ALIGNED8 static const u8 texture_hud_char_C[] = { + #include "textures/segment2/segment2.01800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_D[] = { ++ALIGNED8 static const u8 texture_hud_char_D[] = { + #include "textures/segment2/segment2.01A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_E[] = { ++ALIGNED8 static const u8 texture_hud_char_E[] = { + #include "textures/segment2/segment2.01C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_F[] = { ++ALIGNED8 static const u8 texture_hud_char_F[] = { + #include "textures/segment2/segment2.01E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_G[] = { ++ALIGNED8 static const u8 texture_hud_char_G[] = { + #include "textures/segment2/segment2.02000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_H[] = { ++ALIGNED8 static const u8 texture_hud_char_H[] = { + #include "textures/segment2/segment2.02200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_I[] = { ++ALIGNED8 static const u8 texture_hud_char_I[] = { + #include "textures/segment2/segment2.02400.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_J[] = { ++ALIGNED8 static const u8 texture_hud_char_J[] = { + #include "textures/segment2/segment2.02600.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_K[] = { ++ALIGNED8 static const u8 texture_hud_char_K[] = { + #include "textures/segment2/segment2.02800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_L[] = { ++ALIGNED8 static const u8 texture_hud_char_L[] = { + #include "textures/segment2/segment2.02A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_M[] = { ++ALIGNED8 static const u8 texture_hud_char_M[] = { + #include "textures/segment2/segment2.02C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_N[] = { ++ALIGNED8 static const u8 texture_hud_char_N[] = { + #include "textures/segment2/segment2.02E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_O[] = { ++ALIGNED8 static const u8 texture_hud_char_O[] = { + #include "textures/segment2/segment2.03000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_P[] = { ++ALIGNED8 static const u8 texture_hud_char_P[] = { + #include "textures/segment2/segment2.03200.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_Q[] = { ++ALIGNED8 static const u8 texture_hud_char_Q[] = { + #include "textures/segment2/segment2.03400.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_R[] = { ++ALIGNED8 static const u8 texture_hud_char_R[] = { + #include "textures/segment2/segment2.03600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_S[] = { ++ALIGNED8 static const u8 texture_hud_char_S[] = { + #include "textures/segment2/segment2.03800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_T[] = { ++ALIGNED8 static const u8 texture_hud_char_T[] = { + #include "textures/segment2/segment2.03A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_U[] = { ++ALIGNED8 static const u8 texture_hud_char_U[] = { + #include "textures/segment2/segment2.03C00.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_V[] = { ++ALIGNED8 static const u8 texture_hud_char_V[] = { + #include "textures/segment2/segment2.03E00.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_W[] = { ++ALIGNED8 static const u8 texture_hud_char_W[] = { + #include "textures/segment2/segment2.04000.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_X[] = { ++ALIGNED8 static const u8 texture_hud_char_X[] = { + #include "textures/segment2/segment2.04200.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_Y[] = { ++ALIGNED8 static const u8 texture_hud_char_Y[] = { + #include "textures/segment2/segment2.04400.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_Z[] = { ++ALIGNED8 static const u8 texture_hud_char_Z[] = { + #include "textures/segment2/segment2.04600.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_apostrophe[] = { ++ALIGNED8 static const u8 texture_hud_char_apostrophe[] = { + #include "textures/segment2/segment2.04800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_double_quote[] = { ++ALIGNED8 static const u8 texture_hud_char_double_quote[] = { + #include "textures/segment2/segment2.04A00.rgba16.inc.c" + }; + + #ifdef VERSION_EU +-ALIGNED8 static const Texture texture_hud_char_umlaut[] = { ++ALIGNED8 static const u8 texture_hud_char_umlaut[] = { + #include "textures/segment2/segment2.umlaut.rgba16.inc.c"// EU ¨ + }; + #endif + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_exclamation[] = { ++ALIGNED8 static const u8 texture_hud_char_exclamation[] = { + #include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP ! + }; + +-ALIGNED8 static const Texture texture_hud_char_double_exclamation[] = { ++ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = { + #include "textures/segment2/segment2.04E00.rgba16.inc.c"// JP !! + }; + +-ALIGNED8 static const Texture texture_hud_char_question[] = { ++ALIGNED8 static const u8 texture_hud_char_question[] = { + #include "textures/segment2/segment2.05000.rgba16.inc.c"// JP ? + }; + +-ALIGNED8 static const Texture texture_hud_char_ampersand[] = { ++ALIGNED8 static const u8 texture_hud_char_ampersand[] = { + #include "textures/segment2/segment2.05200.rgba16.inc.c"// JP & + }; + +-ALIGNED8 static const Texture texture_hud_char_percent[] = { ++ALIGNED8 static const u8 texture_hud_char_percent[] = { + #include "textures/segment2/segment2.05400.rgba16.inc.c"// JP % + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_multiply[] = { ++ALIGNED8 static const u8 texture_hud_char_multiply[] = { + #include "textures/segment2/segment2.05600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_coin[] = { ++ALIGNED8 static const u8 texture_hud_char_coin[] = { + #include "textures/segment2/segment2.05800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_mario_head[] = { ++ALIGNED8 static const u8 texture_hud_char_mario_head[] = { + #include "textures/segment2/segment2.05A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_star[] = { ++ALIGNED8 static const u8 texture_hud_char_star[] = { + #include "textures/segment2/segment2.05C00.rgba16.inc.c" + }; + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_decimal_point[] = { ++ALIGNED8 static const u8 texture_hud_char_decimal_point[] = { + #include "textures/segment2/segment2.05E00.rgba16.inc.c" + }; + #endif + + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_hud_char_beta_key[] = { ++ALIGNED8 static const u8 texture_hud_char_beta_key[] = { + #include "textures/segment2/segment2.06000.rgba16.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_credits_char_3[] = { ++ALIGNED8 static const u8 texture_credits_char_3[] = { + #include "textures/segment2/segment2.06200.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_4[] = { ++ALIGNED8 static const u8 texture_credits_char_4[] = { + #include "textures/segment2/segment2.06280.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_6[] = { ++ALIGNED8 static const u8 texture_credits_char_6[] = { + #include "textures/segment2/segment2.06300.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_A[] = { ++ALIGNED8 static const u8 texture_credits_char_A[] = { + #include "textures/segment2/segment2.06380.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_B[] = { ++ALIGNED8 static const u8 texture_credits_char_B[] = { + #include "textures/segment2/segment2.06400.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_C[] = { ++ALIGNED8 static const u8 texture_credits_char_C[] = { + #include "textures/segment2/segment2.06480.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_D[] = { ++ALIGNED8 static const u8 texture_credits_char_D[] = { + #include "textures/segment2/segment2.06500.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_E[] = { ++ALIGNED8 static const u8 texture_credits_char_E[] = { + #include "textures/segment2/segment2.06580.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_F[] = { ++ALIGNED8 static const u8 texture_credits_char_F[] = { + #include "textures/segment2/segment2.06600.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_G[] = { ++ALIGNED8 static const u8 texture_credits_char_G[] = { + #include "textures/segment2/segment2.06680.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_H[] = { ++ALIGNED8 static const u8 texture_credits_char_H[] = { + #include "textures/segment2/segment2.06700.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_I[] = { ++ALIGNED8 static const u8 texture_credits_char_I[] = { + #include "textures/segment2/segment2.06780.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_J[] = { ++ALIGNED8 static const u8 texture_credits_char_J[] = { + #include "textures/segment2/segment2.06800.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_K[] = { ++ALIGNED8 static const u8 texture_credits_char_K[] = { + #include "textures/segment2/segment2.06880.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_L[] = { ++ALIGNED8 static const u8 texture_credits_char_L[] = { + #include "textures/segment2/segment2.06900.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_M[] = { ++ALIGNED8 static const u8 texture_credits_char_M[] = { + #include "textures/segment2/segment2.06980.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_N[] = { ++ALIGNED8 static const u8 texture_credits_char_N[] = { + #include "textures/segment2/segment2.06A00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_O[] = { ++ALIGNED8 static const u8 texture_credits_char_O[] = { + #include "textures/segment2/segment2.06A80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_P[] = { ++ALIGNED8 static const u8 texture_credits_char_P[] = { + #include "textures/segment2/segment2.06B00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Q[] = { ++ALIGNED8 static const u8 texture_credits_char_Q[] = { + #include "textures/segment2/segment2.06B80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_R[] = { ++ALIGNED8 static const u8 texture_credits_char_R[] = { + #include "textures/segment2/segment2.06C00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_S[] = { ++ALIGNED8 static const u8 texture_credits_char_S[] = { + #include "textures/segment2/segment2.06C80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_T[] = { ++ALIGNED8 static const u8 texture_credits_char_T[] = { + #include "textures/segment2/segment2.06D00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_U[] = { ++ALIGNED8 static const u8 texture_credits_char_U[] = { + #include "textures/segment2/segment2.06D80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_V[] = { ++ALIGNED8 static const u8 texture_credits_char_V[] = { + #include "textures/segment2/segment2.06E00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_W[] = { ++ALIGNED8 static const u8 texture_credits_char_W[] = { + #include "textures/segment2/segment2.06E80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_X[] = { ++ALIGNED8 static const u8 texture_credits_char_X[] = { + #include "textures/segment2/segment2.06F00.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Y[] = { ++ALIGNED8 static const u8 texture_credits_char_Y[] = { + #include "textures/segment2/segment2.06F80.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_Z[] = { ++ALIGNED8 static const u8 texture_credits_char_Z[] = { + #include "textures/segment2/segment2.07000.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_credits_char_period[] = { ++ALIGNED8 static const u8 texture_credits_char_period[] = { + #include "textures/segment2/segment2.07080.rgba16.inc.c" + }; + + // JP Small Font + #if defined(VERSION_JP) || defined(VERSION_SH) +-ALIGNED8 static const Texture texture_font_char_jp_0[] = { ++ALIGNED8 static const u8 texture_font_char_jp_0[] = { + #include "textures/segment2/segment2.07100.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_1[] = { ++ALIGNED8 static const u8 texture_font_char_jp_1[] = { + #include "textures/segment2/segment2.07110.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_2[] = { ++ALIGNED8 static const u8 texture_font_char_jp_2[] = { + #include "textures/segment2/segment2.07120.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_3[] = { ++ALIGNED8 static const u8 texture_font_char_jp_3[] = { + #include "textures/segment2/segment2.07130.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_4[] = { ++ALIGNED8 static const u8 texture_font_char_jp_4[] = { + #include "textures/segment2/segment2.07140.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_5[] = { ++ALIGNED8 static const u8 texture_font_char_jp_5[] = { + #include "textures/segment2/segment2.07150.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_6[] = { ++ALIGNED8 static const u8 texture_font_char_jp_6[] = { + #include "textures/segment2/segment2.07160.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_7[] = { ++ALIGNED8 static const u8 texture_font_char_jp_7[] = { + #include "textures/segment2/segment2.07170.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_8[] = { ++ALIGNED8 static const u8 texture_font_char_jp_8[] = { + #include "textures/segment2/segment2.07180.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_9[] = { ++ALIGNED8 static const u8 texture_font_char_jp_9[] = { + #include "textures/segment2/segment2.07190.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_A[] = { ++ALIGNED8 static const u8 texture_font_char_jp_A[] = { + #include "textures/segment2/segment2.071A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_B[] = { ++ALIGNED8 static const u8 texture_font_char_jp_B[] = { + #include "textures/segment2/segment2.071B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_C[] = { ++ALIGNED8 static const u8 texture_font_char_jp_C[] = { + #include "textures/segment2/segment2.071C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_D[] = { ++ALIGNED8 static const u8 texture_font_char_jp_D[] = { + #include "textures/segment2/segment2.071D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_E[] = { ++ALIGNED8 static const u8 texture_font_char_jp_E[] = { + #include "textures/segment2/segment2.071E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_F[] = { ++ALIGNED8 static const u8 texture_font_char_jp_F[] = { + #include "textures/segment2/segment2.071F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_G[] = { ++ALIGNED8 static const u8 texture_font_char_jp_G[] = { + #include "textures/segment2/segment2.07200.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_H[] = { ++ALIGNED8 static const u8 texture_font_char_jp_H[] = { + #include "textures/segment2/segment2.07210.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_I[] = { ++ALIGNED8 static const u8 texture_font_char_jp_I[] = { + #include "textures/segment2/segment2.07220.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_J[] = { ++ALIGNED8 static const u8 texture_font_char_jp_J[] = { + #include "textures/segment2/segment2.07230.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_K[] = { ++ALIGNED8 static const u8 texture_font_char_jp_K[] = { + #include "textures/segment2/segment2.07240.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_L[] = { ++ALIGNED8 static const u8 texture_font_char_jp_L[] = { + #include "textures/segment2/segment2.07250.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_M[] = { ++ALIGNED8 static const u8 texture_font_char_jp_M[] = { + #include "textures/segment2/segment2.07260.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_N[] = { ++ALIGNED8 static const u8 texture_font_char_jp_N[] = { + #include "textures/segment2/segment2.07270.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_O[] = { ++ALIGNED8 static const u8 texture_font_char_jp_O[] = { + #include "textures/segment2/segment2.07280.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_P[] = { ++ALIGNED8 static const u8 texture_font_char_jp_P[] = { + #include "textures/segment2/segment2.07290.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Q[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Q[] = { + #include "textures/segment2/segment2.072A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_R[] = { ++ALIGNED8 static const u8 texture_font_char_jp_R[] = { + #include "textures/segment2/segment2.072B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_S[] = { ++ALIGNED8 static const u8 texture_font_char_jp_S[] = { + #include "textures/segment2/segment2.072C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_T[] = { ++ALIGNED8 static const u8 texture_font_char_jp_T[] = { + #include "textures/segment2/segment2.072D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_U[] = { ++ALIGNED8 static const u8 texture_font_char_jp_U[] = { + #include "textures/segment2/segment2.072E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_V[] = { ++ALIGNED8 static const u8 texture_font_char_jp_V[] = { + #include "textures/segment2/segment2.072F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_W[] = { ++ALIGNED8 static const u8 texture_font_char_jp_W[] = { + #include "textures/segment2/segment2.07300.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_X[] = { ++ALIGNED8 static const u8 texture_font_char_jp_X[] = { + #include "textures/segment2/segment2.07310.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Y[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Y[] = { + #include "textures/segment2/segment2.07320.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_Z[] = { ++ALIGNED8 static const u8 texture_font_char_jp_Z[] = { + #include "textures/segment2/segment2.07330.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_long_vowel[] = { ++ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = { + #include "textures/segment2/segment2.07340.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = { + #include "textures/segment2/segment2.07350.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_dakuten[] = { ++ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = { + #include "textures/segment2/segment2.07360.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_handakuten[] = { ++ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = { + #include "textures/segment2/segment2.07370.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_percent[] = { ++ALIGNED8 static const u8 texture_font_char_jp_percent[] = { + #include "textures/segment2/segment2.07380.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_question[] = { ++ALIGNED8 static const u8 texture_font_char_jp_question[] = { + #include "textures/segment2/segment2.07390.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = { + #include "textures/segment2/segment2.073A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = { + #include "textures/segment2/segment2.073B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = { + #include "textures/segment2/segment2.073C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = { + #include "textures/segment2/segment2.073D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_coin[] = { ++ALIGNED8 static const u8 texture_font_char_jp_coin[] = { + #include "textures/segment2/segment2.073E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_jp_multiply[] = { + #include "textures/segment2/segment2.073F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = { + #include "textures/segment2/segment2.07400.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = { + #include "textures/segment2/segment2.07410.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = { + #include "textures/segment2/segment2.07420.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = { + #include "textures/segment2/segment2.07430.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = { + #include "textures/segment2/segment2.07440.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_c[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = { + #include "textures/segment2/segment2.07450.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = { + #include "textures/segment2/segment2.07460.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ka[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = { + #include "textures/segment2/segment2.07470.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ki[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = { + #include "textures/segment2/segment2.07480.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ku[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = { + #include "textures/segment2/segment2.07490.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ke[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = { + #include "textures/segment2/segment2.074A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ko[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = { + #include "textures/segment2/segment2.074B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_sa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = { + #include "textures/segment2/segment2.074C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_shi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = { + #include "textures/segment2/segment2.074D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_su[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = { + #include "textures/segment2/segment2.074E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_se[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = { + #include "textures/segment2/segment2.074F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_so[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = { + #include "textures/segment2/segment2.07500.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ta[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = { + #include "textures/segment2/segment2.07510.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_chi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = { + #include "textures/segment2/segment2.07520.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = { + #include "textures/segment2/segment2.07530.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_te[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = { + #include "textures/segment2/segment2.07540.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_to[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = { + #include "textures/segment2/segment2.07550.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_na[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = { + #include "textures/segment2/segment2.07560.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ni[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = { + #include "textures/segment2/segment2.07570.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_nu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = { + #include "textures/segment2/segment2.07580.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ne[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = { + #include "textures/segment2/segment2.07590.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_no[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = { + #include "textures/segment2/segment2.075A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ha[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = { + #include "textures/segment2/segment2.075B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = { + #include "textures/segment2/segment2.075C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = { + #include "textures/segment2/segment2.075D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_he[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = { + #include "textures/segment2/segment2.075E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ho[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = { + #include "textures/segment2/segment2.075F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = { + #include "textures/segment2/segment2.07600.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = { + #include "textures/segment2/segment2.07610.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = { + #include "textures/segment2/segment2.07620.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_me[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = { + #include "textures/segment2/segment2.07630.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = { + #include "textures/segment2/segment2.07640.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = { + #include "textures/segment2/segment2.07650.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = { + #include "textures/segment2/segment2.07660.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = { + #include "textures/segment2/segment2.07670.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ra[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = { + #include "textures/segment2/segment2.07680.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ri[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = { + #include "textures/segment2/segment2.07690.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ru[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = { + #include "textures/segment2/segment2.076A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_re[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = { + #include "textures/segment2/segment2.076B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ro[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = { + #include "textures/segment2/segment2.076C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = { + #include "textures/segment2/segment2.076D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = { + #include "textures/segment2/segment2.076E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_n[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = { + #include "textures/segment2/segment2.076F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = { + #include "textures/segment2/segment2.07700.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = { + #include "textures/segment2/segment2.07710.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = { + #include "textures/segment2/segment2.07720.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = { + #include "textures/segment2/segment2.07730.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = { + #include "textures/segment2/segment2.07740.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = { + #include "textures/segment2/segment2.07750.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = { + #include "textures/segment2/segment2.07760.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = { + #include "textures/segment2/segment2.07770.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = { + #include "textures/segment2/segment2.07780.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = { + #include "textures/segment2/segment2.07790.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_comma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_comma[] = { + #include "textures/segment2/segment2.077A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = { + #include "textures/segment2/segment2.077B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = { + #include "textures/segment2/segment2.077C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = { + #include "textures/segment2/segment2.077D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = { + #include "textures/segment2/segment2.077E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = { + #include "textures/segment2/segment2.077F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ka[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = { + #include "textures/segment2/segment2.07800.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ki[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = { + #include "textures/segment2/segment2.07810.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ku[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = { + #include "textures/segment2/segment2.07820.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ke[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = { + #include "textures/segment2/segment2.07830.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ko[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = { + #include "textures/segment2/segment2.07840.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_sa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = { + #include "textures/segment2/segment2.07850.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_shi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = { + #include "textures/segment2/segment2.07860.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_su[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = { + #include "textures/segment2/segment2.07870.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_se[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = { + #include "textures/segment2/segment2.07880.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_so[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = { + #include "textures/segment2/segment2.07890.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ta[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = { + #include "textures/segment2/segment2.078A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_chi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = { + #include "textures/segment2/segment2.078B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = { + #include "textures/segment2/segment2.078C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_te[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = { + #include "textures/segment2/segment2.078D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_to[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = { + #include "textures/segment2/segment2.078E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_na[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = { + #include "textures/segment2/segment2.078F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ni[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = { + #include "textures/segment2/segment2.07900.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_nu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = { + #include "textures/segment2/segment2.07910.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ne[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = { + #include "textures/segment2/segment2.07920.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_no[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = { + #include "textures/segment2/segment2.07930.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ha[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = { + #include "textures/segment2/segment2.07940.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_hi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = { + #include "textures/segment2/segment2.07950.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_hu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = { + #include "textures/segment2/segment2.07960.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_he[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = { + #include "textures/segment2/segment2.07970.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ho[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = { + #include "textures/segment2/segment2.07980.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ma[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = { + #include "textures/segment2/segment2.07990.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mi[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = { + #include "textures/segment2/segment2.079A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = { + #include "textures/segment2/segment2.079B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_me[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = { + #include "textures/segment2/segment2.079C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_mo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = { + #include "textures/segment2/segment2.079D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = { + #include "textures/segment2/segment2.079E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = { + #include "textures/segment2/segment2.079F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = { + #include "textures/segment2/segment2.07A00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ra[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = { + #include "textures/segment2/segment2.07A10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ri[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = { + #include "textures/segment2/segment2.07A20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ru[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = { + #include "textures/segment2/segment2.07A30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_re[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = { + #include "textures/segment2/segment2.07A40.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_ro[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = { + #include "textures/segment2/segment2.07A50.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_wa[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = { + #include "textures/segment2/segment2.07A60.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_n[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = { + #include "textures/segment2/segment2.07A70.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_e[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = { + #include "textures/segment2/segment2.07A80.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_tsu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = { + #include "textures/segment2/segment2.07A90.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_ya[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = { + #include "textures/segment2/segment2.07AA0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yu[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = { + #include "textures/segment2/segment2.07AB0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yo[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = { + #include "textures/segment2/segment2.07AC0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_a[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = { + #include "textures/segment2/segment2.07AD0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_i[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = { + #include "textures/segment2/segment2.07AE0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_u[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = { + #include "textures/segment2/segment2.07AF0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_o[] = { ++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = { + #include "textures/segment2/segment2.07B00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_open[] = { ++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = { + #include "textures/segment2/segment2.07B10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_close[] = { ++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = { + #include "textures/segment2/segment2.07B20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_wave_dash[] = { ++ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = { + #include "textures/segment2/segment2.07B30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_jp_ellipsis[] = { ++ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = { + #include "textures/segment2/segment2.07B40.ia1.inc.c" + }; + + // EU Small Font + #elif defined(VERSION_EU) + +-ALIGNED8 static const Texture texture_font_char_eu_0[] = { ++ALIGNED8 static const u8 texture_font_char_eu_0[] = { + #include "textures/segment2/font_graphics.05F00.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_1[] = { ++ALIGNED8 static const u8 texture_font_char_eu_1[] = { + #include "textures/segment2/font_graphics.05F10.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_2[] = { ++ALIGNED8 static const u8 texture_font_char_eu_2[] = { + #include "textures/segment2/font_graphics.05F20.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_3[] = { ++ALIGNED8 static const u8 texture_font_char_eu_3[] = { + #include "textures/segment2/font_graphics.05F30.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_4[] = { ++ALIGNED8 static const u8 texture_font_char_eu_4[] = { + #include "textures/segment2/font_graphics.05F40.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_5[] = { ++ALIGNED8 static const u8 texture_font_char_eu_5[] = { + #include "textures/segment2/font_graphics.05F50.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_6[] = { ++ALIGNED8 static const u8 texture_font_char_eu_6[] = { + #include "textures/segment2/font_graphics.05F60.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_7[] = { ++ALIGNED8 static const u8 texture_font_char_eu_7[] = { + #include "textures/segment2/font_graphics.05F70.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_8[] = { ++ALIGNED8 static const u8 texture_font_char_eu_8[] = { + #include "textures/segment2/font_graphics.05F80.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_9[] = { ++ALIGNED8 static const u8 texture_font_char_eu_9[] = { + #include "textures/segment2/font_graphics.05F90.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_A[] = { ++ALIGNED8 static const u8 texture_font_char_eu_A[] = { + #include "textures/segment2/font_graphics.05FA0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_B[] = { ++ALIGNED8 static const u8 texture_font_char_eu_B[] = { + #include "textures/segment2/font_graphics.05FB0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_C[] = { ++ALIGNED8 static const u8 texture_font_char_eu_C[] = { + #include "textures/segment2/font_graphics.05FC0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_D[] = { ++ALIGNED8 static const u8 texture_font_char_eu_D[] = { + #include "textures/segment2/font_graphics.05FD0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_E[] = { ++ALIGNED8 static const u8 texture_font_char_eu_E[] = { + #include "textures/segment2/font_graphics.05FE0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_F[] = { ++ALIGNED8 static const u8 texture_font_char_eu_F[] = { + #include "textures/segment2/font_graphics.05FF0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_G[] = { ++ALIGNED8 static const u8 texture_font_char_eu_G[] = { + #include "textures/segment2/font_graphics.06000.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_H[] = { ++ALIGNED8 static const u8 texture_font_char_eu_H[] = { + #include "textures/segment2/font_graphics.06010.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_I[] = { ++ALIGNED8 static const u8 texture_font_char_eu_I[] = { + #include "textures/segment2/font_graphics.06020.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_J[] = { ++ALIGNED8 static const u8 texture_font_char_eu_J[] = { + #include "textures/segment2/font_graphics.06030.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_K[] = { ++ALIGNED8 static const u8 texture_font_char_eu_K[] = { + #include "textures/segment2/font_graphics.06040.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_L[] = { ++ALIGNED8 static const u8 texture_font_char_eu_L[] = { + #include "textures/segment2/font_graphics.06050.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_M[] = { ++ALIGNED8 static const u8 texture_font_char_eu_M[] = { + #include "textures/segment2/font_graphics.06060.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_N[] = { ++ALIGNED8 static const u8 texture_font_char_eu_N[] = { + #include "textures/segment2/font_graphics.06070.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_O[] = { ++ALIGNED8 static const u8 texture_font_char_eu_O[] = { + #include "textures/segment2/font_graphics.06080.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_P[] = { ++ALIGNED8 static const u8 texture_font_char_eu_P[] = { + #include "textures/segment2/font_graphics.06090.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Q[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Q[] = { + #include "textures/segment2/font_graphics.060A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_R[] = { ++ALIGNED8 static const u8 texture_font_char_eu_R[] = { + #include "textures/segment2/font_graphics.060B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_S[] = { ++ALIGNED8 static const u8 texture_font_char_eu_S[] = { + #include "textures/segment2/font_graphics.060C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_T[] = { ++ALIGNED8 static const u8 texture_font_char_eu_T[] = { + #include "textures/segment2/font_graphics.060D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_U[] = { ++ALIGNED8 static const u8 texture_font_char_eu_U[] = { + #include "textures/segment2/font_graphics.060E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_V[] = { ++ALIGNED8 static const u8 texture_font_char_eu_V[] = { + #include "textures/segment2/font_graphics.060F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_W[] = { ++ALIGNED8 static const u8 texture_font_char_eu_W[] = { + #include "textures/segment2/font_graphics.06100.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_X[] = { ++ALIGNED8 static const u8 texture_font_char_eu_X[] = { + #include "textures/segment2/font_graphics.06110.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Y[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Y[] = { + #include "textures/segment2/font_graphics.06120.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Z[] = { + #include "textures/segment2/font_graphics.06130.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_a[] = { ++ALIGNED8 static const u8 texture_font_char_eu_a[] = { + #include "textures/segment2/font_graphics.06140.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_b[] = { ++ALIGNED8 static const u8 texture_font_char_eu_b[] = { + #include "textures/segment2/font_graphics.06150.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_c[] = { ++ALIGNED8 static const u8 texture_font_char_eu_c[] = { + #include "textures/segment2/font_graphics.06160.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_d[] = { ++ALIGNED8 static const u8 texture_font_char_eu_d[] = { + #include "textures/segment2/font_graphics.06170.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_e[] = { ++ALIGNED8 static const u8 texture_font_char_eu_e[] = { + #include "textures/segment2/font_graphics.06180.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_f[] = { ++ALIGNED8 static const u8 texture_font_char_eu_f[] = { + #include "textures/segment2/font_graphics.06190.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_g[] = { ++ALIGNED8 static const u8 texture_font_char_eu_g[] = { + #include "textures/segment2/font_graphics.061A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_h[] = { ++ALIGNED8 static const u8 texture_font_char_eu_h[] = { + #include "textures/segment2/font_graphics.061B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_i[] = { ++ALIGNED8 static const u8 texture_font_char_eu_i[] = { + #include "textures/segment2/font_graphics.061C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_j[] = { ++ALIGNED8 static const u8 texture_font_char_eu_j[] = { + #include "textures/segment2/font_graphics.061D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_k[] = { ++ALIGNED8 static const u8 texture_font_char_eu_k[] = { + #include "textures/segment2/font_graphics.061E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_l[] = { ++ALIGNED8 static const u8 texture_font_char_eu_l[] = { + #include "textures/segment2/font_graphics.061F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_m[] = { ++ALIGNED8 static const u8 texture_font_char_eu_m[] = { + #include "textures/segment2/font_graphics.06200.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_n[] = { ++ALIGNED8 static const u8 texture_font_char_eu_n[] = { + #include "textures/segment2/font_graphics.06210.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_o[] = { ++ALIGNED8 static const u8 texture_font_char_eu_o[] = { + #include "textures/segment2/font_graphics.06220.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_p[] = { ++ALIGNED8 static const u8 texture_font_char_eu_p[] = { + #include "textures/segment2/font_graphics.06230.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_q[] = { ++ALIGNED8 static const u8 texture_font_char_eu_q[] = { + #include "textures/segment2/font_graphics.06240.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_r[] = { ++ALIGNED8 static const u8 texture_font_char_eu_r[] = { + #include "textures/segment2/font_graphics.06250.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_s[] = { ++ALIGNED8 static const u8 texture_font_char_eu_s[] = { + #include "textures/segment2/font_graphics.06260.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_t[] = { ++ALIGNED8 static const u8 texture_font_char_eu_t[] = { + #include "textures/segment2/font_graphics.06270.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_u[] = { ++ALIGNED8 static const u8 texture_font_char_eu_u[] = { + #include "textures/segment2/font_graphics.06280.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_v[] = { ++ALIGNED8 static const u8 texture_font_char_eu_v[] = { + #include "textures/segment2/font_graphics.06290.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_w[] = { ++ALIGNED8 static const u8 texture_font_char_eu_w[] = { + #include "textures/segment2/font_graphics.062A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_x[] = { ++ALIGNED8 static const u8 texture_font_char_eu_x[] = { + #include "textures/segment2/font_graphics.062B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_y[] = { ++ALIGNED8 static const u8 texture_font_char_eu_y[] = { + #include "textures/segment2/font_graphics.062C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_z[] = { + #include "textures/segment2/font_graphics.062D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = { + #include "textures/segment2/font_graphics.062E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_ampersand[] = { ++ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = { + #include "textures/segment2/font_graphics.062F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = { + #include "textures/segment2/font_graphics.06300.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_coin[] = { ++ALIGNED8 static const u8 texture_font_char_eu_coin[] = { + #include "textures/segment2/font_graphics.06310.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_eu_multiply[] = { + #include "textures/segment2/font_graphics.06320.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = { + #include "textures/segment2/font_graphics.06330.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = { + #include "textures/segment2/font_graphics.06340.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = { + #include "textures/segment2/font_graphics.06350.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_tilde[] = { ++ALIGNED8 static const u8 texture_font_char_eu_tilde[] = { + #include "textures/segment2/font_graphics.06360.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_period[] = { ++ALIGNED8 static const u8 texture_font_char_eu_period[] = { + #include "textures/segment2/font_graphics.06370.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_percent[] = { ++ALIGNED8 static const u8 texture_font_char_eu_percent[] = { + #include "textures/segment2/font_graphics.06380.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = { + #include "textures/segment2/font_graphics.06390.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_comma[] = { ++ALIGNED8 static const u8 texture_font_char_eu_comma[] = { + #include "textures/segment2/font_graphics.063A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_apostrophe[] = { ++ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = { + #include "textures/segment2/font_graphics.063B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_question[] = { ++ALIGNED8 static const u8 texture_font_char_eu_question[] = { + #include "textures/segment2/font_graphics.063C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = { + #include "textures/segment2/font_graphics.063D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = { + #include "textures/segment2/font_graphics.063E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_double_quote_open[] = { ++ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = { + #include "textures/segment2/font_graphics.063F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_double_quote_close[] = { ++ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = { + #include "textures/segment2/font_graphics.06400.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_colon[] = { ++ALIGNED8 static const u8 texture_font_char_eu_colon[] = { + #include "textures/segment2/font_graphics.06410.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_EU_slash[] = { ++ALIGNED8 static const u8 texture_font_char_EU_slash[] = { + #include "textures/segment2/font_graphics.06420.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_A[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_A[] = { + #include "textures/segment2/font_graphics.06430.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_B[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_B[] = { + #include "textures/segment2/font_graphics.06440.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C[] = { + #include "textures/segment2/font_graphics.06450.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_Z[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = { + #include "textures/segment2/font_graphics.06460.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_R[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_R[] = { + #include "textures/segment2/font_graphics.06470.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_up[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = { + #include "textures/segment2/font_graphics.06480.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_down[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = { + #include "textures/segment2/font_graphics.06490.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_left[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = { + #include "textures/segment2/font_graphics.064A0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_button_C_right[] = { ++ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = { + #include "textures/segment2/font_graphics.064B0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_umlaut[] = { ++ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = { + #include "textures/segment2/font_graphics.064C0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_circumflex[] = { ++ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = { + #include "textures/segment2/font_graphics.064D0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_grave[] = { ++ALIGNED8 static const u8 texture_font_char_eu_grave[] = { + #include "textures/segment2/font_graphics.064E0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_acute[] = { ++ALIGNED8 static const u8 texture_font_char_eu_acute[] = { + #include "textures/segment2/font_graphics.064F0.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_cedilla[] = { ++ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = { + #include "textures/segment2/font_graphics.06500.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_unknown[] = { ++ALIGNED8 static const u8 texture_font_char_eu_unknown[] = { + #include "textures/segment2/font_graphics.06510.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_Cedilla[] = { ++ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = { + #include "textures/segment2/font_graphics.06520.ia1.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_eu_eszeet[] = { ++ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = { + #include "textures/segment2/font_graphics.06530.ia1.inc.c" + }; + + // US Small Font + #else +-ALIGNED8 static const Texture texture_font_char_us_0[] = { ++ALIGNED8 static const u8 texture_font_char_us_0[] = { + #include "textures/segment2/font_graphics.05900.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_1[] = { ++ALIGNED8 static const u8 texture_font_char_us_1[] = { + #include "textures/segment2/font_graphics.05940.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_2[] = { ++ALIGNED8 static const u8 texture_font_char_us_2[] = { + #include "textures/segment2/font_graphics.05980.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_3[] = { ++ALIGNED8 static const u8 texture_font_char_us_3[] = { + #include "textures/segment2/font_graphics.059C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_4[] = { ++ALIGNED8 static const u8 texture_font_char_us_4[] = { + #include "textures/segment2/font_graphics.05A00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_5[] = { ++ALIGNED8 static const u8 texture_font_char_us_5[] = { + #include "textures/segment2/font_graphics.05A40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_6[] = { ++ALIGNED8 static const u8 texture_font_char_us_6[] = { + #include "textures/segment2/font_graphics.05A80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_7[] = { ++ALIGNED8 static const u8 texture_font_char_us_7[] = { + #include "textures/segment2/font_graphics.05AC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_8[] = { ++ALIGNED8 static const u8 texture_font_char_us_8[] = { + #include "textures/segment2/font_graphics.05B00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_9[] = { ++ALIGNED8 static const u8 texture_font_char_us_9[] = { + #include "textures/segment2/font_graphics.05B40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_A[] = { ++ALIGNED8 static const u8 texture_font_char_us_A[] = { + #include "textures/segment2/font_graphics.05B80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_B[] = { ++ALIGNED8 static const u8 texture_font_char_us_B[] = { + #include "textures/segment2/font_graphics.05BC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_C[] = { ++ALIGNED8 static const u8 texture_font_char_us_C[] = { + #include "textures/segment2/font_graphics.05C00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_D[] = { ++ALIGNED8 static const u8 texture_font_char_us_D[] = { + #include "textures/segment2/font_graphics.05C40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_E[] = { ++ALIGNED8 static const u8 texture_font_char_us_E[] = { + #include "textures/segment2/font_graphics.05C80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_F[] = { ++ALIGNED8 static const u8 texture_font_char_us_F[] = { + #include "textures/segment2/font_graphics.05CC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_G[] = { ++ALIGNED8 static const u8 texture_font_char_us_G[] = { + #include "textures/segment2/font_graphics.05D00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_H[] = { ++ALIGNED8 static const u8 texture_font_char_us_H[] = { + #include "textures/segment2/font_graphics.05D40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_I[] = { ++ALIGNED8 static const u8 texture_font_char_us_I[] = { + #include "textures/segment2/font_graphics.05D80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_J[] = { ++ALIGNED8 static const u8 texture_font_char_us_J[] = { + #include "textures/segment2/font_graphics.05DC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_K[] = { ++ALIGNED8 static const u8 texture_font_char_us_K[] = { + #include "textures/segment2/font_graphics.05E00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_L[] = { ++ALIGNED8 static const u8 texture_font_char_us_L[] = { + #include "textures/segment2/font_graphics.05E40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_M[] = { ++ALIGNED8 static const u8 texture_font_char_us_M[] = { + #include "textures/segment2/font_graphics.05E80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_N[] = { ++ALIGNED8 static const u8 texture_font_char_us_N[] = { + #include "textures/segment2/font_graphics.05EC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_O[] = { ++ALIGNED8 static const u8 texture_font_char_us_O[] = { + #include "textures/segment2/font_graphics.05F00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_P[] = { ++ALIGNED8 static const u8 texture_font_char_us_P[] = { + #include "textures/segment2/font_graphics.05F40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Q[] = { ++ALIGNED8 static const u8 texture_font_char_us_Q[] = { + #include "textures/segment2/font_graphics.05F80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_R[] = { ++ALIGNED8 static const u8 texture_font_char_us_R[] = { + #include "textures/segment2/font_graphics.05FC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_S[] = { ++ALIGNED8 static const u8 texture_font_char_us_S[] = { + #include "textures/segment2/font_graphics.06000.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_T[] = { ++ALIGNED8 static const u8 texture_font_char_us_T[] = { + #include "textures/segment2/font_graphics.06040.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_U[] = { ++ALIGNED8 static const u8 texture_font_char_us_U[] = { + #include "textures/segment2/font_graphics.06080.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_V[] = { ++ALIGNED8 static const u8 texture_font_char_us_V[] = { + #include "textures/segment2/font_graphics.060C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_W[] = { ++ALIGNED8 static const u8 texture_font_char_us_W[] = { + #include "textures/segment2/font_graphics.06100.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_X[] = { ++ALIGNED8 static const u8 texture_font_char_us_X[] = { + #include "textures/segment2/font_graphics.06140.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Y[] = { ++ALIGNED8 static const u8 texture_font_char_us_Y[] = { + #include "textures/segment2/font_graphics.06180.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_Z[] = { ++ALIGNED8 static const u8 texture_font_char_us_Z[] = { + #include "textures/segment2/font_graphics.061C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_a[] = { ++ALIGNED8 static const u8 texture_font_char_us_a[] = { + #include "textures/segment2/font_graphics.06200.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_b[] = { ++ALIGNED8 static const u8 texture_font_char_us_b[] = { + #include "textures/segment2/font_graphics.06240.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_c[] = { ++ALIGNED8 static const u8 texture_font_char_us_c[] = { + #include "textures/segment2/font_graphics.06280.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_d[] = { ++ALIGNED8 static const u8 texture_font_char_us_d[] = { + #include "textures/segment2/font_graphics.062C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_e[] = { ++ALIGNED8 static const u8 texture_font_char_us_e[] = { + #include "textures/segment2/font_graphics.06300.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_f[] = { ++ALIGNED8 static const u8 texture_font_char_us_f[] = { + #include "textures/segment2/font_graphics.06340.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_g[] = { ++ALIGNED8 static const u8 texture_font_char_us_g[] = { + #include "textures/segment2/font_graphics.06380.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_h[] = { ++ALIGNED8 static const u8 texture_font_char_us_h[] = { + #include "textures/segment2/font_graphics.063C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_i[] = { ++ALIGNED8 static const u8 texture_font_char_us_i[] = { + #include "textures/segment2/font_graphics.06400.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_j[] = { ++ALIGNED8 static const u8 texture_font_char_us_j[] = { + #include "textures/segment2/font_graphics.06440.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_k[] = { ++ALIGNED8 static const u8 texture_font_char_us_k[] = { + #include "textures/segment2/font_graphics.06480.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_l[] = { ++ALIGNED8 static const u8 texture_font_char_us_l[] = { + #include "textures/segment2/font_graphics.064C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_m[] = { ++ALIGNED8 static const u8 texture_font_char_us_m[] = { + #include "textures/segment2/font_graphics.06500.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_n[] = { ++ALIGNED8 static const u8 texture_font_char_us_n[] = { + #include "textures/segment2/font_graphics.06540.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_o[] = { ++ALIGNED8 static const u8 texture_font_char_us_o[] = { + #include "textures/segment2/font_graphics.06580.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_p[] = { ++ALIGNED8 static const u8 texture_font_char_us_p[] = { + #include "textures/segment2/font_graphics.065C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_q[] = { ++ALIGNED8 static const u8 texture_font_char_us_q[] = { + #include "textures/segment2/font_graphics.06600.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_r[] = { ++ALIGNED8 static const u8 texture_font_char_us_r[] = { + #include "textures/segment2/font_graphics.06640.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_s[] = { ++ALIGNED8 static const u8 texture_font_char_us_s[] = { + #include "textures/segment2/font_graphics.06680.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_t[] = { ++ALIGNED8 static const u8 texture_font_char_us_t[] = { + #include "textures/segment2/font_graphics.066C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_u[] = { ++ALIGNED8 static const u8 texture_font_char_us_u[] = { + #include "textures/segment2/font_graphics.06700.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_v[] = { ++ALIGNED8 static const u8 texture_font_char_us_v[] = { + #include "textures/segment2/font_graphics.06740.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_w[] = { ++ALIGNED8 static const u8 texture_font_char_us_w[] = { + #include "textures/segment2/font_graphics.06780.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_x[] = { ++ALIGNED8 static const u8 texture_font_char_us_x[] = { + #include "textures/segment2/font_graphics.067C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_y[] = { ++ALIGNED8 static const u8 texture_font_char_us_y[] = { + #include "textures/segment2/font_graphics.06800.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_z[] = { ++ALIGNED8 static const u8 texture_font_char_us_z[] = { + #include "textures/segment2/font_graphics.06840.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_left_right_arrow[] = { ++ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = { + #include "textures/segment2/font_graphics.06880.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_exclamation[] = { ++ALIGNED8 static const u8 texture_font_char_us_exclamation[] = { + #include "textures/segment2/font_graphics.068C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_coin[] = { ++ALIGNED8 static const u8 texture_font_char_us_coin[] = { + #include "textures/segment2/font_graphics.06900.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_multiply[] = { ++ALIGNED8 static const u8 texture_font_char_us_multiply[] = { + #include "textures/segment2/font_graphics.06940.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = { + #include "textures/segment2/font_graphics.06980.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_close_open_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = { + #include "textures/segment2/font_graphics.069C0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_close_parentheses[] = { ++ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = { + #include "textures/segment2/font_graphics.06A00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_tilde[] = { ++ALIGNED8 static const u8 texture_font_char_us_tilde[] = { + #include "textures/segment2/font_graphics.06A40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_period[] = { ++ALIGNED8 static const u8 texture_font_char_us_period[] = { + #include "textures/segment2/font_graphics.06A80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_percent[] = { ++ALIGNED8 static const u8 texture_font_char_us_percent[] = { + #include "textures/segment2/font_graphics.06AC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_interpunct[] = { ++ALIGNED8 static const u8 texture_font_char_us_interpunct[] = { + #include "textures/segment2/font_graphics.06B00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_comma[] = { ++ALIGNED8 static const u8 texture_font_char_us_comma[] = { + #include "textures/segment2/font_graphics.06B40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_apostrophe[] = { ++ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = { + #include "textures/segment2/font_graphics.06B80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_question[] = { ++ALIGNED8 static const u8 texture_font_char_us_question[] = { + #include "textures/segment2/font_graphics.06BC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_star_filled[] = { ++ALIGNED8 static const u8 texture_font_char_us_star_filled[] = { + #include "textures/segment2/font_graphics.06C00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_star_hollow[] = { ++ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = { + #include "textures/segment2/font_graphics.06C40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_double_quote_open[] = { ++ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = { + #include "textures/segment2/font_graphics.06C80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_double_quote_close[] = { ++ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = { + #include "textures/segment2/font_graphics.06CC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_ellipsis[] = { ++ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = { + #include "textures/segment2/font_graphics.06D00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_slash[] = { ++ALIGNED8 static const u8 texture_font_char_us_slash[] = { + #include "textures/segment2/font_graphics.06D40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_ampersand[] = { ++ALIGNED8 static const u8 texture_font_char_us_ampersand[] = { + #include "textures/segment2/font_graphics.06D80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_A[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_A[] = { + #include "textures/segment2/font_graphics.06DC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_B[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_B[] = { + #include "textures/segment2/font_graphics.06E00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C[] = { + #include "textures/segment2/font_graphics.06E40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_Z[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_Z[] = { + #include "textures/segment2/font_graphics.06E80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_R[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_R[] = { + #include "textures/segment2/font_graphics.06EC0.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_up[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = { + #include "textures/segment2/font_graphics.06F00.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_down[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = { + #include "textures/segment2/font_graphics.06F40.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_left[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = { + #include "textures/segment2/font_graphics.06F80.ia4.inc.c" + }; + +-ALIGNED8 static const Texture texture_font_char_us_button_C_right[] = { ++ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = { + #include "textures/segment2/font_graphics.06FC0.ia4.inc.c" + }; + #endif + +-ALIGNED8 static const Texture texture_hud_char_camera[] = { ++ALIGNED8 static const u8 texture_hud_char_camera[] = { + #include "textures/segment2/segment2.07B50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_lakitu[] = { ++ALIGNED8 static const u8 texture_hud_char_lakitu[] = { + #include "textures/segment2/segment2.07D50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_no_camera[] = { ++ALIGNED8 static const u8 texture_hud_char_no_camera[] = { + #include "textures/segment2/segment2.07F50.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_arrow_up[] = { ++ALIGNED8 static const u8 texture_hud_char_arrow_up[] = { + #include "textures/segment2/segment2.08150.rgba16.inc.c" + }; + +-ALIGNED8 static const Texture texture_hud_char_arrow_down[] = { ++ALIGNED8 static const u8 texture_hud_char_arrow_down[] = { + #include "textures/segment2/segment2.081D0.rgba16.inc.c" + }; + + // Main HUD print table 0x02008250-0x02008337 +-const Texture *const main_hud_lut[] = { ++const u8 *const main_hud_lut[] = { + #ifdef VERSION_EU + texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, + texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, +@@ -1858,7 +1854,7 @@ const Texture *const main_hud_lut[] = { + }; + + // Main small font print table 0x02008338-0x02008737 +-const Texture *const main_font_lut[] = { ++const u8 *const main_font_lut[] = { + #ifdef VERSION_EU // EU Font Table + texture_font_char_eu_0, texture_font_char_eu_1, texture_font_char_eu_2, texture_font_char_eu_3, + texture_font_char_eu_4, texture_font_char_eu_5, texture_font_char_eu_6, texture_font_char_eu_7, +@@ -2060,7 +2056,7 @@ const Texture *const main_font_lut[] = { + }; + + // credits font LUT 0x02008738-0x020087CB +-const Texture *const main_credits_font_lut[] = { ++const u8 *const main_credits_font_lut[] = { + 0x0, 0x0, 0x0, texture_credits_char_3, + texture_credits_char_4, 0x0, texture_credits_char_6, 0x0, + 0x0, 0x0, texture_credits_char_A, texture_credits_char_B, +@@ -2074,7 +2070,7 @@ const Texture *const main_credits_font_lut[] = { + }; + + // HUD camera table 0x020087CC-0x020087E3 +-const Texture *const main_hud_camera_lut[] = { ++const u8 *const main_hud_camera_lut[] = { + texture_hud_char_camera, texture_hud_char_mario_head, texture_hud_char_lakitu, texture_hud_char_no_camera, + texture_hud_char_arrow_up, texture_hud_char_arrow_down, + }; +@@ -2097,12 +2093,10 @@ const Gfx dl_hud_img_begin[] = { + gsDPSetTexturePersp(G_TP_NONE), + gsDPSetAlphaCompare(G_AC_THRESHOLD), + gsDPSetBlendColor(255, 255, 255, 255), +-#if defined(VERSION_EU) || defined(VERSION_SH) +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +-#endif + #ifdef VERSION_EU ++ gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), + gsDPSetTextureFilter(G_TF_POINT), +-#elif defined(VERSION_JP) || defined(VERSION_US) ++#else + gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), + #endif + gsSPEndDisplayList(), +@@ -2126,9 +2120,9 @@ const Gfx dl_hud_img_end[] = { + gsDPSetAlphaCompare(G_AC_NONE), + #ifdef VERSION_EU + gsDPSetTextureFilter(G_TF_BILERP), +-#endif + gsDPSetCycleType(G_CYC_1CYCLE), +-#if defined(VERSION_JP) || defined(VERSION_US) ++#else ++ gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + #endif + gsSPEndDisplayList(), +@@ -2189,16 +2183,16 @@ const Gfx dl_draw_text_bg_box[] = { + #ifndef VERSION_EU + // 0x0200EE28 - 0x0200EE68 + static const Vtx vertex_ia8_char[] = { +-#if defined(VERSION_JP) || defined(VERSION_SH) +- {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, +- {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, +-#else ++#ifndef VERSION_JP + {{{ 0, 0, 0}, 0, { 0, 256}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 8, 16, 0}, 0, { 480, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}}, ++#else ++ {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + #endif + }; + // !EU +@@ -2453,47 +2447,47 @@ const Gfx dl_billboard_num_9[] = { + gsSPEndDisplayList(), + }; + +-ALIGNED8 static const Texture texture_shadow_quarter_circle[] = { ++ALIGNED8 static const u8 texture_shadow_quarter_circle[] = { + #include "textures/segment2/shadow_quarter_circle.ia8.inc.c" + }; + +-ALIGNED8 static const Texture texture_shadow_quarter_square[] = { ++ALIGNED8 static const u8 texture_shadow_quarter_square[] = { + #include "textures/segment2/shadow_quarter_square.ia8.inc.c" + }; + +-const Texture texture_transition_star_half[] = { ++ALIGNED8 const u8 texture_transition_star_half[] = { + #include "textures/segment2/segment2.0F458.ia8.inc.c" + }; + +-const Texture texture_transition_circle_half[] = { ++ALIGNED8 const u8 texture_transition_circle_half[] = { + #include "textures/segment2/segment2.0FC58.ia8.inc.c" + }; + +-const Texture texture_transition_mario[] = { ++ALIGNED8 const u8 texture_transition_mario[] = { + #include "textures/segment2/segment2.10458.ia8.inc.c" + }; + +-const Texture texture_transition_bowser_half[] = { ++ALIGNED8 const u8 texture_transition_bowser_half[] = { + #include "textures/segment2/segment2.11458.ia8.inc.c" + }; + +-const Texture texture_waterbox_water[] = { ++ALIGNED8 const u8 texture_waterbox_water[] = { + #include "textures/segment2/segment2.11C58.rgba16.inc.c" + }; + +-const Texture texture_waterbox_jrb_water[] = { ++ALIGNED8 const u8 texture_waterbox_jrb_water[] = { + #include "textures/segment2/segment2.12458.rgba16.inc.c" + }; + +-const Texture texture_waterbox_unknown_water[] = { ++ALIGNED8 const u8 texture_waterbox_unknown_water[] = { + #include "textures/segment2/segment2.12C58.rgba16.inc.c" + }; + +-const Texture texture_waterbox_mist[] = { ++ALIGNED8 const u8 texture_waterbox_mist[] = { + #include "textures/segment2/segment2.13458.ia16.inc.c" + }; + +-const Texture texture_waterbox_lava[] = { ++ALIGNED8 const u8 texture_waterbox_lava[] = { + #include "textures/segment2/segment2.13C58.rgba16.inc.c" + }; + +@@ -2691,7 +2685,7 @@ const Gfx dl_waterbox_end[] = { + }; + + // 0x02014838 - 0x02014878 +-ALIGNED8 static const Texture texture_ia8_up_arrow[] = { ++ALIGNED8 static const u8 texture_ia8_up_arrow[] = { + #include "textures/segment2/segment2.14838.ia8.inc.c" + }; + +diff --git a/bin/segment2.c.rej b/bin/segment2.c.rej +new file mode 100644 +index 0000000..4dcf8a7 +--- /dev/null ++++ b/bin/segment2.c.rej +@@ -0,0 +1,2404 @@ ++diff a/bin/segment2.c b/bin/segment2.c (rejected hunks) ++@@ -1,1811 +1,1807 @@ ++-#include ++-#include ++- ++-#include "config.h" ++-#include "macros.h" ++-#include "types.h" +++#include +++#include "sm64.h" ++ #include "game/ingame_menu.h" ++ ++ #include "make_const_nonconst.h" ++ ++-// SM64 (US/JP/EU/SH) Segment 02 +++// SM64 (US/JP/EU) Segment 02 ++ ++-ALIGNED8 static const Texture texture_hud_char_0[] = { +++ALIGNED8 static const u8 texture_hud_char_0[] = { ++ #include "textures/segment2/segment2.00000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_1[] = { +++ALIGNED8 static const u8 texture_hud_char_1[] = { ++ #include "textures/segment2/segment2.00200.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_2[] = { +++ALIGNED8 static const u8 texture_hud_char_2[] = { ++ #include "textures/segment2/segment2.00400.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_3[] = { +++ALIGNED8 static const u8 texture_hud_char_3[] = { ++ #include "textures/segment2/segment2.00600.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_4[] = { +++ALIGNED8 static const u8 texture_hud_char_4[] = { ++ #include "textures/segment2/segment2.00800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_5[] = { +++ALIGNED8 static const u8 texture_hud_char_5[] = { ++ #include "textures/segment2/segment2.00A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_6[] = { +++ALIGNED8 static const u8 texture_hud_char_6[] = { ++ #include "textures/segment2/segment2.00C00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_7[] = { +++ALIGNED8 static const u8 texture_hud_char_7[] = { ++ #include "textures/segment2/segment2.00E00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_8[] = { +++ALIGNED8 static const u8 texture_hud_char_8[] = { ++ #include "textures/segment2/segment2.01000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_9[] = { +++ALIGNED8 static const u8 texture_hud_char_9[] = { ++ #include "textures/segment2/segment2.01200.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_A[] = { +++ALIGNED8 static const u8 texture_hud_char_A[] = { ++ #include "textures/segment2/segment2.01400.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_B[] = { +++ALIGNED8 static const u8 texture_hud_char_B[] = { ++ #include "textures/segment2/segment2.01600.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_C[] = { +++ALIGNED8 static const u8 texture_hud_char_C[] = { ++ #include "textures/segment2/segment2.01800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_D[] = { +++ALIGNED8 static const u8 texture_hud_char_D[] = { ++ #include "textures/segment2/segment2.01A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_E[] = { +++ALIGNED8 static const u8 texture_hud_char_E[] = { ++ #include "textures/segment2/segment2.01C00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_F[] = { +++ALIGNED8 static const u8 texture_hud_char_F[] = { ++ #include "textures/segment2/segment2.01E00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_G[] = { +++ALIGNED8 static const u8 texture_hud_char_G[] = { ++ #include "textures/segment2/segment2.02000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_H[] = { +++ALIGNED8 static const u8 texture_hud_char_H[] = { ++ #include "textures/segment2/segment2.02200.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_I[] = { +++ALIGNED8 static const u8 texture_hud_char_I[] = { ++ #include "textures/segment2/segment2.02400.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_J[] = { +++ALIGNED8 static const u8 texture_hud_char_J[] = { ++ #include "textures/segment2/segment2.02600.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_K[] = { +++ALIGNED8 static const u8 texture_hud_char_K[] = { ++ #include "textures/segment2/segment2.02800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_L[] = { +++ALIGNED8 static const u8 texture_hud_char_L[] = { ++ #include "textures/segment2/segment2.02A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_M[] = { +++ALIGNED8 static const u8 texture_hud_char_M[] = { ++ #include "textures/segment2/segment2.02C00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_N[] = { +++ALIGNED8 static const u8 texture_hud_char_N[] = { ++ #include "textures/segment2/segment2.02E00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_O[] = { +++ALIGNED8 static const u8 texture_hud_char_O[] = { ++ #include "textures/segment2/segment2.03000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_P[] = { +++ALIGNED8 static const u8 texture_hud_char_P[] = { ++ #include "textures/segment2/segment2.03200.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_Q[] = { +++ALIGNED8 static const u8 texture_hud_char_Q[] = { ++ #include "textures/segment2/segment2.03400.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_R[] = { +++ALIGNED8 static const u8 texture_hud_char_R[] = { ++ #include "textures/segment2/segment2.03600.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_S[] = { +++ALIGNED8 static const u8 texture_hud_char_S[] = { ++ #include "textures/segment2/segment2.03800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_T[] = { +++ALIGNED8 static const u8 texture_hud_char_T[] = { ++ #include "textures/segment2/segment2.03A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_U[] = { +++ALIGNED8 static const u8 texture_hud_char_U[] = { ++ #include "textures/segment2/segment2.03C00.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_V[] = { +++ALIGNED8 static const u8 texture_hud_char_V[] = { ++ #include "textures/segment2/segment2.03E00.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_W[] = { +++ALIGNED8 static const u8 texture_hud_char_W[] = { ++ #include "textures/segment2/segment2.04000.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_X[] = { +++ALIGNED8 static const u8 texture_hud_char_X[] = { ++ #include "textures/segment2/segment2.04200.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_Y[] = { +++ALIGNED8 static const u8 texture_hud_char_Y[] = { ++ #include "textures/segment2/segment2.04400.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_Z[] = { +++ALIGNED8 static const u8 texture_hud_char_Z[] = { ++ #include "textures/segment2/segment2.04600.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_apostrophe[] = { +++ALIGNED8 static const u8 texture_hud_char_apostrophe[] = { ++ #include "textures/segment2/segment2.04800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_double_quote[] = { +++ALIGNED8 static const u8 texture_hud_char_double_quote[] = { ++ #include "textures/segment2/segment2.04A00.rgba16.inc.c" ++ }; ++ ++ #ifdef VERSION_EU ++-ALIGNED8 static const Texture texture_hud_char_umlaut[] = { +++ALIGNED8 static const u8 texture_hud_char_umlaut[] = { ++ #include "textures/segment2/segment2.umlaut.rgba16.inc.c"// EU ¨ ++ }; ++ #endif ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_exclamation[] = { +++ALIGNED8 static const u8 texture_hud_char_exclamation[] = { ++ #include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP ! ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_double_exclamation[] = { +++ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = { ++ #include "textures/segment2/segment2.04E00.rgba16.inc.c"// JP !! ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_question[] = { +++ALIGNED8 static const u8 texture_hud_char_question[] = { ++ #include "textures/segment2/segment2.05000.rgba16.inc.c"// JP ? ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_ampersand[] = { +++ALIGNED8 static const u8 texture_hud_char_ampersand[] = { ++ #include "textures/segment2/segment2.05200.rgba16.inc.c"// JP & ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_percent[] = { +++ALIGNED8 static const u8 texture_hud_char_percent[] = { ++ #include "textures/segment2/segment2.05400.rgba16.inc.c"// JP % ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_multiply[] = { +++ALIGNED8 static const u8 texture_hud_char_multiply[] = { ++ #include "textures/segment2/segment2.05600.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_coin[] = { +++ALIGNED8 static const u8 texture_hud_char_coin[] = { ++ #include "textures/segment2/segment2.05800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_mario_head[] = { +++ALIGNED8 static const u8 texture_hud_char_mario_head[] = { ++ #include "textures/segment2/segment2.05A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_star[] = { +++ALIGNED8 static const u8 texture_hud_char_star[] = { ++ #include "textures/segment2/segment2.05C00.rgba16.inc.c" ++ }; ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_decimal_point[] = { +++ALIGNED8 static const u8 texture_hud_char_decimal_point[] = { ++ #include "textures/segment2/segment2.05E00.rgba16.inc.c" ++ }; ++ #endif ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_hud_char_beta_key[] = { +++ALIGNED8 static const u8 texture_hud_char_beta_key[] = { ++ #include "textures/segment2/segment2.06000.rgba16.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_credits_char_3[] = { +++ALIGNED8 static const u8 texture_credits_char_3[] = { ++ #include "textures/segment2/segment2.06200.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_4[] = { +++ALIGNED8 static const u8 texture_credits_char_4[] = { ++ #include "textures/segment2/segment2.06280.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_6[] = { +++ALIGNED8 static const u8 texture_credits_char_6[] = { ++ #include "textures/segment2/segment2.06300.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_A[] = { +++ALIGNED8 static const u8 texture_credits_char_A[] = { ++ #include "textures/segment2/segment2.06380.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_B[] = { +++ALIGNED8 static const u8 texture_credits_char_B[] = { ++ #include "textures/segment2/segment2.06400.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_C[] = { +++ALIGNED8 static const u8 texture_credits_char_C[] = { ++ #include "textures/segment2/segment2.06480.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_D[] = { +++ALIGNED8 static const u8 texture_credits_char_D[] = { ++ #include "textures/segment2/segment2.06500.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_E[] = { +++ALIGNED8 static const u8 texture_credits_char_E[] = { ++ #include "textures/segment2/segment2.06580.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_F[] = { +++ALIGNED8 static const u8 texture_credits_char_F[] = { ++ #include "textures/segment2/segment2.06600.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_G[] = { +++ALIGNED8 static const u8 texture_credits_char_G[] = { ++ #include "textures/segment2/segment2.06680.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_H[] = { +++ALIGNED8 static const u8 texture_credits_char_H[] = { ++ #include "textures/segment2/segment2.06700.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_I[] = { +++ALIGNED8 static const u8 texture_credits_char_I[] = { ++ #include "textures/segment2/segment2.06780.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_J[] = { +++ALIGNED8 static const u8 texture_credits_char_J[] = { ++ #include "textures/segment2/segment2.06800.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_K[] = { +++ALIGNED8 static const u8 texture_credits_char_K[] = { ++ #include "textures/segment2/segment2.06880.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_L[] = { +++ALIGNED8 static const u8 texture_credits_char_L[] = { ++ #include "textures/segment2/segment2.06900.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_M[] = { +++ALIGNED8 static const u8 texture_credits_char_M[] = { ++ #include "textures/segment2/segment2.06980.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_N[] = { +++ALIGNED8 static const u8 texture_credits_char_N[] = { ++ #include "textures/segment2/segment2.06A00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_O[] = { +++ALIGNED8 static const u8 texture_credits_char_O[] = { ++ #include "textures/segment2/segment2.06A80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_P[] = { +++ALIGNED8 static const u8 texture_credits_char_P[] = { ++ #include "textures/segment2/segment2.06B00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_Q[] = { +++ALIGNED8 static const u8 texture_credits_char_Q[] = { ++ #include "textures/segment2/segment2.06B80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_R[] = { +++ALIGNED8 static const u8 texture_credits_char_R[] = { ++ #include "textures/segment2/segment2.06C00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_S[] = { +++ALIGNED8 static const u8 texture_credits_char_S[] = { ++ #include "textures/segment2/segment2.06C80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_T[] = { +++ALIGNED8 static const u8 texture_credits_char_T[] = { ++ #include "textures/segment2/segment2.06D00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_U[] = { +++ALIGNED8 static const u8 texture_credits_char_U[] = { ++ #include "textures/segment2/segment2.06D80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_V[] = { +++ALIGNED8 static const u8 texture_credits_char_V[] = { ++ #include "textures/segment2/segment2.06E00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_W[] = { +++ALIGNED8 static const u8 texture_credits_char_W[] = { ++ #include "textures/segment2/segment2.06E80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_X[] = { +++ALIGNED8 static const u8 texture_credits_char_X[] = { ++ #include "textures/segment2/segment2.06F00.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_Y[] = { +++ALIGNED8 static const u8 texture_credits_char_Y[] = { ++ #include "textures/segment2/segment2.06F80.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_Z[] = { +++ALIGNED8 static const u8 texture_credits_char_Z[] = { ++ #include "textures/segment2/segment2.07000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_credits_char_period[] = { +++ALIGNED8 static const u8 texture_credits_char_period[] = { ++ #include "textures/segment2/segment2.07080.rgba16.inc.c" ++ }; ++ ++ // JP Small Font ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++-ALIGNED8 static const Texture texture_font_char_jp_0[] = { +++ALIGNED8 static const u8 texture_font_char_jp_0[] = { ++ #include "textures/segment2/segment2.07100.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_1[] = { +++ALIGNED8 static const u8 texture_font_char_jp_1[] = { ++ #include "textures/segment2/segment2.07110.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_2[] = { +++ALIGNED8 static const u8 texture_font_char_jp_2[] = { ++ #include "textures/segment2/segment2.07120.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_3[] = { +++ALIGNED8 static const u8 texture_font_char_jp_3[] = { ++ #include "textures/segment2/segment2.07130.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_4[] = { +++ALIGNED8 static const u8 texture_font_char_jp_4[] = { ++ #include "textures/segment2/segment2.07140.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_5[] = { +++ALIGNED8 static const u8 texture_font_char_jp_5[] = { ++ #include "textures/segment2/segment2.07150.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_6[] = { +++ALIGNED8 static const u8 texture_font_char_jp_6[] = { ++ #include "textures/segment2/segment2.07160.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_7[] = { +++ALIGNED8 static const u8 texture_font_char_jp_7[] = { ++ #include "textures/segment2/segment2.07170.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_8[] = { +++ALIGNED8 static const u8 texture_font_char_jp_8[] = { ++ #include "textures/segment2/segment2.07180.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_9[] = { +++ALIGNED8 static const u8 texture_font_char_jp_9[] = { ++ #include "textures/segment2/segment2.07190.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_A[] = { +++ALIGNED8 static const u8 texture_font_char_jp_A[] = { ++ #include "textures/segment2/segment2.071A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_B[] = { +++ALIGNED8 static const u8 texture_font_char_jp_B[] = { ++ #include "textures/segment2/segment2.071B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_C[] = { +++ALIGNED8 static const u8 texture_font_char_jp_C[] = { ++ #include "textures/segment2/segment2.071C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_D[] = { +++ALIGNED8 static const u8 texture_font_char_jp_D[] = { ++ #include "textures/segment2/segment2.071D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_E[] = { +++ALIGNED8 static const u8 texture_font_char_jp_E[] = { ++ #include "textures/segment2/segment2.071E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_F[] = { +++ALIGNED8 static const u8 texture_font_char_jp_F[] = { ++ #include "textures/segment2/segment2.071F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_G[] = { +++ALIGNED8 static const u8 texture_font_char_jp_G[] = { ++ #include "textures/segment2/segment2.07200.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_H[] = { +++ALIGNED8 static const u8 texture_font_char_jp_H[] = { ++ #include "textures/segment2/segment2.07210.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_I[] = { +++ALIGNED8 static const u8 texture_font_char_jp_I[] = { ++ #include "textures/segment2/segment2.07220.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_J[] = { +++ALIGNED8 static const u8 texture_font_char_jp_J[] = { ++ #include "textures/segment2/segment2.07230.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_K[] = { +++ALIGNED8 static const u8 texture_font_char_jp_K[] = { ++ #include "textures/segment2/segment2.07240.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_L[] = { +++ALIGNED8 static const u8 texture_font_char_jp_L[] = { ++ #include "textures/segment2/segment2.07250.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_M[] = { +++ALIGNED8 static const u8 texture_font_char_jp_M[] = { ++ #include "textures/segment2/segment2.07260.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_N[] = { +++ALIGNED8 static const u8 texture_font_char_jp_N[] = { ++ #include "textures/segment2/segment2.07270.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_O[] = { +++ALIGNED8 static const u8 texture_font_char_jp_O[] = { ++ #include "textures/segment2/segment2.07280.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_P[] = { +++ALIGNED8 static const u8 texture_font_char_jp_P[] = { ++ #include "textures/segment2/segment2.07290.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_Q[] = { +++ALIGNED8 static const u8 texture_font_char_jp_Q[] = { ++ #include "textures/segment2/segment2.072A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_R[] = { +++ALIGNED8 static const u8 texture_font_char_jp_R[] = { ++ #include "textures/segment2/segment2.072B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_S[] = { +++ALIGNED8 static const u8 texture_font_char_jp_S[] = { ++ #include "textures/segment2/segment2.072C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_T[] = { +++ALIGNED8 static const u8 texture_font_char_jp_T[] = { ++ #include "textures/segment2/segment2.072D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_U[] = { +++ALIGNED8 static const u8 texture_font_char_jp_U[] = { ++ #include "textures/segment2/segment2.072E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_V[] = { +++ALIGNED8 static const u8 texture_font_char_jp_V[] = { ++ #include "textures/segment2/segment2.072F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_W[] = { +++ALIGNED8 static const u8 texture_font_char_jp_W[] = { ++ #include "textures/segment2/segment2.07300.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_X[] = { +++ALIGNED8 static const u8 texture_font_char_jp_X[] = { ++ #include "textures/segment2/segment2.07310.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_Y[] = { +++ALIGNED8 static const u8 texture_font_char_jp_Y[] = { ++ #include "textures/segment2/segment2.07320.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_Z[] = { +++ALIGNED8 static const u8 texture_font_char_jp_Z[] = { ++ #include "textures/segment2/segment2.07330.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_long_vowel[] = { +++ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = { ++ #include "textures/segment2/segment2.07340.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_exclamation[] = { +++ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = { ++ #include "textures/segment2/segment2.07350.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_dakuten[] = { +++ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = { ++ #include "textures/segment2/segment2.07360.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_handakuten[] = { +++ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = { ++ #include "textures/segment2/segment2.07370.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_percent[] = { +++ALIGNED8 static const u8 texture_font_char_jp_percent[] = { ++ #include "textures/segment2/segment2.07380.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_question[] = { +++ALIGNED8 static const u8 texture_font_char_jp_question[] = { ++ #include "textures/segment2/segment2.07390.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_left_right_arrow[] = { +++ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = { ++ #include "textures/segment2/segment2.073A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = { ++ #include "textures/segment2/segment2.073B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_close_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = { ++ #include "textures/segment2/segment2.073C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_close_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = { ++ #include "textures/segment2/segment2.073D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_coin[] = { +++ALIGNED8 static const u8 texture_font_char_jp_coin[] = { ++ #include "textures/segment2/segment2.073E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_multiply[] = { +++ALIGNED8 static const u8 texture_font_char_jp_multiply[] = { ++ #include "textures/segment2/segment2.073F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_star_filled[] = { +++ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = { ++ #include "textures/segment2/segment2.07400.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_star_hollow[] = { +++ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = { ++ #include "textures/segment2/segment2.07410.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_a[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = { ++ #include "textures/segment2/segment2.07420.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_i[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = { ++ #include "textures/segment2/segment2.07430.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_u[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = { ++ #include "textures/segment2/segment2.07440.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_c[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = { ++ #include "textures/segment2/segment2.07450.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_o[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = { ++ #include "textures/segment2/segment2.07460.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ka[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = { ++ #include "textures/segment2/segment2.07470.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ki[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = { ++ #include "textures/segment2/segment2.07480.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ku[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = { ++ #include "textures/segment2/segment2.07490.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ke[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = { ++ #include "textures/segment2/segment2.074A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ko[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = { ++ #include "textures/segment2/segment2.074B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_sa[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = { ++ #include "textures/segment2/segment2.074C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_shi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = { ++ #include "textures/segment2/segment2.074D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_su[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = { ++ #include "textures/segment2/segment2.074E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_se[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = { ++ #include "textures/segment2/segment2.074F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_so[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = { ++ #include "textures/segment2/segment2.07500.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ta[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = { ++ #include "textures/segment2/segment2.07510.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_chi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = { ++ #include "textures/segment2/segment2.07520.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_tsu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = { ++ #include "textures/segment2/segment2.07530.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_te[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = { ++ #include "textures/segment2/segment2.07540.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_to[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = { ++ #include "textures/segment2/segment2.07550.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_na[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = { ++ #include "textures/segment2/segment2.07560.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ni[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = { ++ #include "textures/segment2/segment2.07570.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_nu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = { ++ #include "textures/segment2/segment2.07580.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ne[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = { ++ #include "textures/segment2/segment2.07590.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_no[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = { ++ #include "textures/segment2/segment2.075A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ha[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = { ++ #include "textures/segment2/segment2.075B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = { ++ #include "textures/segment2/segment2.075C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_hu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = { ++ #include "textures/segment2/segment2.075D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_he[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = { ++ #include "textures/segment2/segment2.075E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ho[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = { ++ #include "textures/segment2/segment2.075F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ma[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = { ++ #include "textures/segment2/segment2.07600.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = { ++ #include "textures/segment2/segment2.07610.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = { ++ #include "textures/segment2/segment2.07620.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_me[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = { ++ #include "textures/segment2/segment2.07630.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_mo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = { ++ #include "textures/segment2/segment2.07640.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ya[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = { ++ #include "textures/segment2/segment2.07650.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = { ++ #include "textures/segment2/segment2.07660.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_yo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = { ++ #include "textures/segment2/segment2.07670.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ra[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = { ++ #include "textures/segment2/segment2.07680.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ri[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = { ++ #include "textures/segment2/segment2.07690.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ru[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = { ++ #include "textures/segment2/segment2.076A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_re[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = { ++ #include "textures/segment2/segment2.076B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_ro[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = { ++ #include "textures/segment2/segment2.076C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wa[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = { ++ #include "textures/segment2/segment2.076D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_wo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = { ++ #include "textures/segment2/segment2.076E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_n[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = { ++ #include "textures/segment2/segment2.076F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_e[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = { ++ #include "textures/segment2/segment2.07700.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_tsu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = { ++ #include "textures/segment2/segment2.07710.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_ya[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = { ++ #include "textures/segment2/segment2.07720.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = { ++ #include "textures/segment2/segment2.07730.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_yo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = { ++ #include "textures/segment2/segment2.07740.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_a[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = { ++ #include "textures/segment2/segment2.07750.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_i[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = { ++ #include "textures/segment2/segment2.07760.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_o[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = { ++ #include "textures/segment2/segment2.07770.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_hiragana_small_u[] = { +++ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = { ++ #include "textures/segment2/segment2.07780.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_interpunct[] = { +++ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = { ++ #include "textures/segment2/segment2.07790.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_comma[] = { +++ALIGNED8 static const u8 texture_font_char_jp_comma[] = { ++ #include "textures/segment2/segment2.077A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_a[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = { ++ #include "textures/segment2/segment2.077B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_i[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = { ++ #include "textures/segment2/segment2.077C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_u[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = { ++ #include "textures/segment2/segment2.077D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_e[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = { ++ #include "textures/segment2/segment2.077E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_o[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = { ++ #include "textures/segment2/segment2.077F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ka[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = { ++ #include "textures/segment2/segment2.07800.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ki[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = { ++ #include "textures/segment2/segment2.07810.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ku[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = { ++ #include "textures/segment2/segment2.07820.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ke[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = { ++ #include "textures/segment2/segment2.07830.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ko[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = { ++ #include "textures/segment2/segment2.07840.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_sa[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = { ++ #include "textures/segment2/segment2.07850.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_shi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = { ++ #include "textures/segment2/segment2.07860.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_su[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = { ++ #include "textures/segment2/segment2.07870.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_se[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = { ++ #include "textures/segment2/segment2.07880.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_so[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = { ++ #include "textures/segment2/segment2.07890.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ta[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = { ++ #include "textures/segment2/segment2.078A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_chi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = { ++ #include "textures/segment2/segment2.078B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_tsu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = { ++ #include "textures/segment2/segment2.078C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_te[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = { ++ #include "textures/segment2/segment2.078D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_to[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = { ++ #include "textures/segment2/segment2.078E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_na[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = { ++ #include "textures/segment2/segment2.078F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ni[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = { ++ #include "textures/segment2/segment2.07900.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_nu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = { ++ #include "textures/segment2/segment2.07910.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ne[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = { ++ #include "textures/segment2/segment2.07920.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_no[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = { ++ #include "textures/segment2/segment2.07930.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ha[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = { ++ #include "textures/segment2/segment2.07940.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_hi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = { ++ #include "textures/segment2/segment2.07950.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_hu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = { ++ #include "textures/segment2/segment2.07960.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_he[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = { ++ #include "textures/segment2/segment2.07970.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ho[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = { ++ #include "textures/segment2/segment2.07980.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ma[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = { ++ #include "textures/segment2/segment2.07990.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_mi[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = { ++ #include "textures/segment2/segment2.079A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_mu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = { ++ #include "textures/segment2/segment2.079B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_me[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = { ++ #include "textures/segment2/segment2.079C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_mo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = { ++ #include "textures/segment2/segment2.079D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ya[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = { ++ #include "textures/segment2/segment2.079E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_yu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = { ++ #include "textures/segment2/segment2.079F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_yo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = { ++ #include "textures/segment2/segment2.07A00.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ra[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = { ++ #include "textures/segment2/segment2.07A10.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ri[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = { ++ #include "textures/segment2/segment2.07A20.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ru[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = { ++ #include "textures/segment2/segment2.07A30.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_re[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = { ++ #include "textures/segment2/segment2.07A40.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_ro[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = { ++ #include "textures/segment2/segment2.07A50.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_wa[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = { ++ #include "textures/segment2/segment2.07A60.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_n[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = { ++ #include "textures/segment2/segment2.07A70.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_e[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = { ++ #include "textures/segment2/segment2.07A80.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_tsu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = { ++ #include "textures/segment2/segment2.07A90.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_ya[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = { ++ #include "textures/segment2/segment2.07AA0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yu[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = { ++ #include "textures/segment2/segment2.07AB0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_yo[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = { ++ #include "textures/segment2/segment2.07AC0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_a[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = { ++ #include "textures/segment2/segment2.07AD0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_i[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = { ++ #include "textures/segment2/segment2.07AE0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_u[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = { ++ #include "textures/segment2/segment2.07AF0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_katakana_small_o[] = { +++ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = { ++ #include "textures/segment2/segment2.07B00.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_open[] = { +++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = { ++ #include "textures/segment2/segment2.07B10.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_double_quotation_close[] = { +++ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = { ++ #include "textures/segment2/segment2.07B20.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_wave_dash[] = { +++ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = { ++ #include "textures/segment2/segment2.07B30.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_jp_ellipsis[] = { +++ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = { ++ #include "textures/segment2/segment2.07B40.ia1.inc.c" ++ }; ++ ++ // EU Small Font ++ #elif defined(VERSION_EU) ++ ++-ALIGNED8 static const Texture texture_font_char_eu_0[] = { +++ALIGNED8 static const u8 texture_font_char_eu_0[] = { ++ #include "textures/segment2/font_graphics.05F00.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_1[] = { +++ALIGNED8 static const u8 texture_font_char_eu_1[] = { ++ #include "textures/segment2/font_graphics.05F10.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_2[] = { +++ALIGNED8 static const u8 texture_font_char_eu_2[] = { ++ #include "textures/segment2/font_graphics.05F20.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_3[] = { +++ALIGNED8 static const u8 texture_font_char_eu_3[] = { ++ #include "textures/segment2/font_graphics.05F30.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_4[] = { +++ALIGNED8 static const u8 texture_font_char_eu_4[] = { ++ #include "textures/segment2/font_graphics.05F40.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_5[] = { +++ALIGNED8 static const u8 texture_font_char_eu_5[] = { ++ #include "textures/segment2/font_graphics.05F50.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_6[] = { +++ALIGNED8 static const u8 texture_font_char_eu_6[] = { ++ #include "textures/segment2/font_graphics.05F60.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_7[] = { +++ALIGNED8 static const u8 texture_font_char_eu_7[] = { ++ #include "textures/segment2/font_graphics.05F70.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_8[] = { +++ALIGNED8 static const u8 texture_font_char_eu_8[] = { ++ #include "textures/segment2/font_graphics.05F80.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_9[] = { +++ALIGNED8 static const u8 texture_font_char_eu_9[] = { ++ #include "textures/segment2/font_graphics.05F90.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_A[] = { +++ALIGNED8 static const u8 texture_font_char_eu_A[] = { ++ #include "textures/segment2/font_graphics.05FA0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_B[] = { +++ALIGNED8 static const u8 texture_font_char_eu_B[] = { ++ #include "textures/segment2/font_graphics.05FB0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_C[] = { +++ALIGNED8 static const u8 texture_font_char_eu_C[] = { ++ #include "textures/segment2/font_graphics.05FC0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_D[] = { +++ALIGNED8 static const u8 texture_font_char_eu_D[] = { ++ #include "textures/segment2/font_graphics.05FD0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_E[] = { +++ALIGNED8 static const u8 texture_font_char_eu_E[] = { ++ #include "textures/segment2/font_graphics.05FE0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_F[] = { +++ALIGNED8 static const u8 texture_font_char_eu_F[] = { ++ #include "textures/segment2/font_graphics.05FF0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_G[] = { +++ALIGNED8 static const u8 texture_font_char_eu_G[] = { ++ #include "textures/segment2/font_graphics.06000.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_H[] = { +++ALIGNED8 static const u8 texture_font_char_eu_H[] = { ++ #include "textures/segment2/font_graphics.06010.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_I[] = { +++ALIGNED8 static const u8 texture_font_char_eu_I[] = { ++ #include "textures/segment2/font_graphics.06020.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_J[] = { +++ALIGNED8 static const u8 texture_font_char_eu_J[] = { ++ #include "textures/segment2/font_graphics.06030.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_K[] = { +++ALIGNED8 static const u8 texture_font_char_eu_K[] = { ++ #include "textures/segment2/font_graphics.06040.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_L[] = { +++ALIGNED8 static const u8 texture_font_char_eu_L[] = { ++ #include "textures/segment2/font_graphics.06050.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_M[] = { +++ALIGNED8 static const u8 texture_font_char_eu_M[] = { ++ #include "textures/segment2/font_graphics.06060.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_N[] = { +++ALIGNED8 static const u8 texture_font_char_eu_N[] = { ++ #include "textures/segment2/font_graphics.06070.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_O[] = { +++ALIGNED8 static const u8 texture_font_char_eu_O[] = { ++ #include "textures/segment2/font_graphics.06080.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_P[] = { +++ALIGNED8 static const u8 texture_font_char_eu_P[] = { ++ #include "textures/segment2/font_graphics.06090.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_Q[] = { +++ALIGNED8 static const u8 texture_font_char_eu_Q[] = { ++ #include "textures/segment2/font_graphics.060A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_R[] = { +++ALIGNED8 static const u8 texture_font_char_eu_R[] = { ++ #include "textures/segment2/font_graphics.060B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_S[] = { +++ALIGNED8 static const u8 texture_font_char_eu_S[] = { ++ #include "textures/segment2/font_graphics.060C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_T[] = { +++ALIGNED8 static const u8 texture_font_char_eu_T[] = { ++ #include "textures/segment2/font_graphics.060D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_U[] = { +++ALIGNED8 static const u8 texture_font_char_eu_U[] = { ++ #include "textures/segment2/font_graphics.060E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_V[] = { +++ALIGNED8 static const u8 texture_font_char_eu_V[] = { ++ #include "textures/segment2/font_graphics.060F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_W[] = { +++ALIGNED8 static const u8 texture_font_char_eu_W[] = { ++ #include "textures/segment2/font_graphics.06100.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_X[] = { +++ALIGNED8 static const u8 texture_font_char_eu_X[] = { ++ #include "textures/segment2/font_graphics.06110.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_Y[] = { +++ALIGNED8 static const u8 texture_font_char_eu_Y[] = { ++ #include "textures/segment2/font_graphics.06120.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_Z[] = { +++ALIGNED8 static const u8 texture_font_char_eu_Z[] = { ++ #include "textures/segment2/font_graphics.06130.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_a[] = { +++ALIGNED8 static const u8 texture_font_char_eu_a[] = { ++ #include "textures/segment2/font_graphics.06140.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_b[] = { +++ALIGNED8 static const u8 texture_font_char_eu_b[] = { ++ #include "textures/segment2/font_graphics.06150.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_c[] = { +++ALIGNED8 static const u8 texture_font_char_eu_c[] = { ++ #include "textures/segment2/font_graphics.06160.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_d[] = { +++ALIGNED8 static const u8 texture_font_char_eu_d[] = { ++ #include "textures/segment2/font_graphics.06170.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_e[] = { +++ALIGNED8 static const u8 texture_font_char_eu_e[] = { ++ #include "textures/segment2/font_graphics.06180.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_f[] = { +++ALIGNED8 static const u8 texture_font_char_eu_f[] = { ++ #include "textures/segment2/font_graphics.06190.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_g[] = { +++ALIGNED8 static const u8 texture_font_char_eu_g[] = { ++ #include "textures/segment2/font_graphics.061A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_h[] = { +++ALIGNED8 static const u8 texture_font_char_eu_h[] = { ++ #include "textures/segment2/font_graphics.061B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_i[] = { +++ALIGNED8 static const u8 texture_font_char_eu_i[] = { ++ #include "textures/segment2/font_graphics.061C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_j[] = { +++ALIGNED8 static const u8 texture_font_char_eu_j[] = { ++ #include "textures/segment2/font_graphics.061D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_k[] = { +++ALIGNED8 static const u8 texture_font_char_eu_k[] = { ++ #include "textures/segment2/font_graphics.061E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_l[] = { +++ALIGNED8 static const u8 texture_font_char_eu_l[] = { ++ #include "textures/segment2/font_graphics.061F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_m[] = { +++ALIGNED8 static const u8 texture_font_char_eu_m[] = { ++ #include "textures/segment2/font_graphics.06200.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_n[] = { +++ALIGNED8 static const u8 texture_font_char_eu_n[] = { ++ #include "textures/segment2/font_graphics.06210.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_o[] = { +++ALIGNED8 static const u8 texture_font_char_eu_o[] = { ++ #include "textures/segment2/font_graphics.06220.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_p[] = { +++ALIGNED8 static const u8 texture_font_char_eu_p[] = { ++ #include "textures/segment2/font_graphics.06230.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_q[] = { +++ALIGNED8 static const u8 texture_font_char_eu_q[] = { ++ #include "textures/segment2/font_graphics.06240.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_r[] = { +++ALIGNED8 static const u8 texture_font_char_eu_r[] = { ++ #include "textures/segment2/font_graphics.06250.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_s[] = { +++ALIGNED8 static const u8 texture_font_char_eu_s[] = { ++ #include "textures/segment2/font_graphics.06260.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_t[] = { +++ALIGNED8 static const u8 texture_font_char_eu_t[] = { ++ #include "textures/segment2/font_graphics.06270.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_u[] = { +++ALIGNED8 static const u8 texture_font_char_eu_u[] = { ++ #include "textures/segment2/font_graphics.06280.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_v[] = { +++ALIGNED8 static const u8 texture_font_char_eu_v[] = { ++ #include "textures/segment2/font_graphics.06290.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_w[] = { +++ALIGNED8 static const u8 texture_font_char_eu_w[] = { ++ #include "textures/segment2/font_graphics.062A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_x[] = { +++ALIGNED8 static const u8 texture_font_char_eu_x[] = { ++ #include "textures/segment2/font_graphics.062B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_y[] = { +++ALIGNED8 static const u8 texture_font_char_eu_y[] = { ++ #include "textures/segment2/font_graphics.062C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_z[] = { +++ALIGNED8 static const u8 texture_font_char_eu_z[] = { ++ #include "textures/segment2/font_graphics.062D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_left_right_arrow[] = { +++ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = { ++ #include "textures/segment2/font_graphics.062E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_ampersand[] = { +++ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = { ++ #include "textures/segment2/font_graphics.062F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_exclamation[] = { +++ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = { ++ #include "textures/segment2/font_graphics.06300.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_coin[] = { +++ALIGNED8 static const u8 texture_font_char_eu_coin[] = { ++ #include "textures/segment2/font_graphics.06310.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_multiply[] = { +++ALIGNED8 static const u8 texture_font_char_eu_multiply[] = { ++ #include "textures/segment2/font_graphics.06320.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = { ++ #include "textures/segment2/font_graphics.06330.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_close_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = { ++ #include "textures/segment2/font_graphics.06340.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_close_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = { ++ #include "textures/segment2/font_graphics.06350.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_tilde[] = { +++ALIGNED8 static const u8 texture_font_char_eu_tilde[] = { ++ #include "textures/segment2/font_graphics.06360.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_period[] = { +++ALIGNED8 static const u8 texture_font_char_eu_period[] = { ++ #include "textures/segment2/font_graphics.06370.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_percent[] = { +++ALIGNED8 static const u8 texture_font_char_eu_percent[] = { ++ #include "textures/segment2/font_graphics.06380.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_interpunct[] = { +++ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = { ++ #include "textures/segment2/font_graphics.06390.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_comma[] = { +++ALIGNED8 static const u8 texture_font_char_eu_comma[] = { ++ #include "textures/segment2/font_graphics.063A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_apostrophe[] = { +++ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = { ++ #include "textures/segment2/font_graphics.063B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_question[] = { +++ALIGNED8 static const u8 texture_font_char_eu_question[] = { ++ #include "textures/segment2/font_graphics.063C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_star_filled[] = { +++ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = { ++ #include "textures/segment2/font_graphics.063D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_star_hollow[] = { +++ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = { ++ #include "textures/segment2/font_graphics.063E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_double_quote_open[] = { +++ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = { ++ #include "textures/segment2/font_graphics.063F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_double_quote_close[] = { +++ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = { ++ #include "textures/segment2/font_graphics.06400.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_colon[] = { +++ALIGNED8 static const u8 texture_font_char_eu_colon[] = { ++ #include "textures/segment2/font_graphics.06410.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_EU_slash[] = { +++ALIGNED8 static const u8 texture_font_char_EU_slash[] = { ++ #include "textures/segment2/font_graphics.06420.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_A[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_A[] = { ++ #include "textures/segment2/font_graphics.06430.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_B[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_B[] = { ++ #include "textures/segment2/font_graphics.06440.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_C[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_C[] = { ++ #include "textures/segment2/font_graphics.06450.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_Z[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = { ++ #include "textures/segment2/font_graphics.06460.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_R[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_R[] = { ++ #include "textures/segment2/font_graphics.06470.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_C_up[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = { ++ #include "textures/segment2/font_graphics.06480.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_C_down[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = { ++ #include "textures/segment2/font_graphics.06490.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_C_left[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = { ++ #include "textures/segment2/font_graphics.064A0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_button_C_right[] = { +++ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = { ++ #include "textures/segment2/font_graphics.064B0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_umlaut[] = { +++ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = { ++ #include "textures/segment2/font_graphics.064C0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_circumflex[] = { +++ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = { ++ #include "textures/segment2/font_graphics.064D0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_grave[] = { +++ALIGNED8 static const u8 texture_font_char_eu_grave[] = { ++ #include "textures/segment2/font_graphics.064E0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_acute[] = { +++ALIGNED8 static const u8 texture_font_char_eu_acute[] = { ++ #include "textures/segment2/font_graphics.064F0.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_cedilla[] = { +++ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = { ++ #include "textures/segment2/font_graphics.06500.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_unknown[] = { +++ALIGNED8 static const u8 texture_font_char_eu_unknown[] = { ++ #include "textures/segment2/font_graphics.06510.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_Cedilla[] = { +++ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = { ++ #include "textures/segment2/font_graphics.06520.ia1.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_eu_eszeet[] = { +++ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = { ++ #include "textures/segment2/font_graphics.06530.ia1.inc.c" ++ }; ++ ++ // US Small Font ++ #else ++-ALIGNED8 static const Texture texture_font_char_us_0[] = { +++ALIGNED8 static const u8 texture_font_char_us_0[] = { ++ #include "textures/segment2/font_graphics.05900.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_1[] = { +++ALIGNED8 static const u8 texture_font_char_us_1[] = { ++ #include "textures/segment2/font_graphics.05940.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_2[] = { +++ALIGNED8 static const u8 texture_font_char_us_2[] = { ++ #include "textures/segment2/font_graphics.05980.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_3[] = { +++ALIGNED8 static const u8 texture_font_char_us_3[] = { ++ #include "textures/segment2/font_graphics.059C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_4[] = { +++ALIGNED8 static const u8 texture_font_char_us_4[] = { ++ #include "textures/segment2/font_graphics.05A00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_5[] = { +++ALIGNED8 static const u8 texture_font_char_us_5[] = { ++ #include "textures/segment2/font_graphics.05A40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_6[] = { +++ALIGNED8 static const u8 texture_font_char_us_6[] = { ++ #include "textures/segment2/font_graphics.05A80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_7[] = { +++ALIGNED8 static const u8 texture_font_char_us_7[] = { ++ #include "textures/segment2/font_graphics.05AC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_8[] = { +++ALIGNED8 static const u8 texture_font_char_us_8[] = { ++ #include "textures/segment2/font_graphics.05B00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_9[] = { +++ALIGNED8 static const u8 texture_font_char_us_9[] = { ++ #include "textures/segment2/font_graphics.05B40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_A[] = { +++ALIGNED8 static const u8 texture_font_char_us_A[] = { ++ #include "textures/segment2/font_graphics.05B80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_B[] = { +++ALIGNED8 static const u8 texture_font_char_us_B[] = { ++ #include "textures/segment2/font_graphics.05BC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_C[] = { +++ALIGNED8 static const u8 texture_font_char_us_C[] = { ++ #include "textures/segment2/font_graphics.05C00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_D[] = { +++ALIGNED8 static const u8 texture_font_char_us_D[] = { ++ #include "textures/segment2/font_graphics.05C40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_E[] = { +++ALIGNED8 static const u8 texture_font_char_us_E[] = { ++ #include "textures/segment2/font_graphics.05C80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_F[] = { +++ALIGNED8 static const u8 texture_font_char_us_F[] = { ++ #include "textures/segment2/font_graphics.05CC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_G[] = { +++ALIGNED8 static const u8 texture_font_char_us_G[] = { ++ #include "textures/segment2/font_graphics.05D00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_H[] = { +++ALIGNED8 static const u8 texture_font_char_us_H[] = { ++ #include "textures/segment2/font_graphics.05D40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_I[] = { +++ALIGNED8 static const u8 texture_font_char_us_I[] = { ++ #include "textures/segment2/font_graphics.05D80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_J[] = { +++ALIGNED8 static const u8 texture_font_char_us_J[] = { ++ #include "textures/segment2/font_graphics.05DC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_K[] = { +++ALIGNED8 static const u8 texture_font_char_us_K[] = { ++ #include "textures/segment2/font_graphics.05E00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_L[] = { +++ALIGNED8 static const u8 texture_font_char_us_L[] = { ++ #include "textures/segment2/font_graphics.05E40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_M[] = { +++ALIGNED8 static const u8 texture_font_char_us_M[] = { ++ #include "textures/segment2/font_graphics.05E80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_N[] = { +++ALIGNED8 static const u8 texture_font_char_us_N[] = { ++ #include "textures/segment2/font_graphics.05EC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_O[] = { +++ALIGNED8 static const u8 texture_font_char_us_O[] = { ++ #include "textures/segment2/font_graphics.05F00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_P[] = { +++ALIGNED8 static const u8 texture_font_char_us_P[] = { ++ #include "textures/segment2/font_graphics.05F40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_Q[] = { +++ALIGNED8 static const u8 texture_font_char_us_Q[] = { ++ #include "textures/segment2/font_graphics.05F80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_R[] = { +++ALIGNED8 static const u8 texture_font_char_us_R[] = { ++ #include "textures/segment2/font_graphics.05FC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_S[] = { +++ALIGNED8 static const u8 texture_font_char_us_S[] = { ++ #include "textures/segment2/font_graphics.06000.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_T[] = { +++ALIGNED8 static const u8 texture_font_char_us_T[] = { ++ #include "textures/segment2/font_graphics.06040.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_U[] = { +++ALIGNED8 static const u8 texture_font_char_us_U[] = { ++ #include "textures/segment2/font_graphics.06080.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_V[] = { +++ALIGNED8 static const u8 texture_font_char_us_V[] = { ++ #include "textures/segment2/font_graphics.060C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_W[] = { +++ALIGNED8 static const u8 texture_font_char_us_W[] = { ++ #include "textures/segment2/font_graphics.06100.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_X[] = { +++ALIGNED8 static const u8 texture_font_char_us_X[] = { ++ #include "textures/segment2/font_graphics.06140.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_Y[] = { +++ALIGNED8 static const u8 texture_font_char_us_Y[] = { ++ #include "textures/segment2/font_graphics.06180.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_Z[] = { +++ALIGNED8 static const u8 texture_font_char_us_Z[] = { ++ #include "textures/segment2/font_graphics.061C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_a[] = { +++ALIGNED8 static const u8 texture_font_char_us_a[] = { ++ #include "textures/segment2/font_graphics.06200.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_b[] = { +++ALIGNED8 static const u8 texture_font_char_us_b[] = { ++ #include "textures/segment2/font_graphics.06240.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_c[] = { +++ALIGNED8 static const u8 texture_font_char_us_c[] = { ++ #include "textures/segment2/font_graphics.06280.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_d[] = { +++ALIGNED8 static const u8 texture_font_char_us_d[] = { ++ #include "textures/segment2/font_graphics.062C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_e[] = { +++ALIGNED8 static const u8 texture_font_char_us_e[] = { ++ #include "textures/segment2/font_graphics.06300.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_f[] = { +++ALIGNED8 static const u8 texture_font_char_us_f[] = { ++ #include "textures/segment2/font_graphics.06340.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_g[] = { +++ALIGNED8 static const u8 texture_font_char_us_g[] = { ++ #include "textures/segment2/font_graphics.06380.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_h[] = { +++ALIGNED8 static const u8 texture_font_char_us_h[] = { ++ #include "textures/segment2/font_graphics.063C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_i[] = { +++ALIGNED8 static const u8 texture_font_char_us_i[] = { ++ #include "textures/segment2/font_graphics.06400.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_j[] = { +++ALIGNED8 static const u8 texture_font_char_us_j[] = { ++ #include "textures/segment2/font_graphics.06440.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_k[] = { +++ALIGNED8 static const u8 texture_font_char_us_k[] = { ++ #include "textures/segment2/font_graphics.06480.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_l[] = { +++ALIGNED8 static const u8 texture_font_char_us_l[] = { ++ #include "textures/segment2/font_graphics.064C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_m[] = { +++ALIGNED8 static const u8 texture_font_char_us_m[] = { ++ #include "textures/segment2/font_graphics.06500.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_n[] = { +++ALIGNED8 static const u8 texture_font_char_us_n[] = { ++ #include "textures/segment2/font_graphics.06540.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_o[] = { +++ALIGNED8 static const u8 texture_font_char_us_o[] = { ++ #include "textures/segment2/font_graphics.06580.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_p[] = { +++ALIGNED8 static const u8 texture_font_char_us_p[] = { ++ #include "textures/segment2/font_graphics.065C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_q[] = { +++ALIGNED8 static const u8 texture_font_char_us_q[] = { ++ #include "textures/segment2/font_graphics.06600.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_r[] = { +++ALIGNED8 static const u8 texture_font_char_us_r[] = { ++ #include "textures/segment2/font_graphics.06640.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_s[] = { +++ALIGNED8 static const u8 texture_font_char_us_s[] = { ++ #include "textures/segment2/font_graphics.06680.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_t[] = { +++ALIGNED8 static const u8 texture_font_char_us_t[] = { ++ #include "textures/segment2/font_graphics.066C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_u[] = { +++ALIGNED8 static const u8 texture_font_char_us_u[] = { ++ #include "textures/segment2/font_graphics.06700.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_v[] = { +++ALIGNED8 static const u8 texture_font_char_us_v[] = { ++ #include "textures/segment2/font_graphics.06740.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_w[] = { +++ALIGNED8 static const u8 texture_font_char_us_w[] = { ++ #include "textures/segment2/font_graphics.06780.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_x[] = { +++ALIGNED8 static const u8 texture_font_char_us_x[] = { ++ #include "textures/segment2/font_graphics.067C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_y[] = { +++ALIGNED8 static const u8 texture_font_char_us_y[] = { ++ #include "textures/segment2/font_graphics.06800.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_z[] = { +++ALIGNED8 static const u8 texture_font_char_us_z[] = { ++ #include "textures/segment2/font_graphics.06840.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_left_right_arrow[] = { +++ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = { ++ #include "textures/segment2/font_graphics.06880.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_exclamation[] = { +++ALIGNED8 static const u8 texture_font_char_us_exclamation[] = { ++ #include "textures/segment2/font_graphics.068C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_coin[] = { +++ALIGNED8 static const u8 texture_font_char_us_coin[] = { ++ #include "textures/segment2/font_graphics.06900.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_multiply[] = { +++ALIGNED8 static const u8 texture_font_char_us_multiply[] = { ++ #include "textures/segment2/font_graphics.06940.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = { ++ #include "textures/segment2/font_graphics.06980.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_close_open_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = { ++ #include "textures/segment2/font_graphics.069C0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_close_parentheses[] = { +++ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = { ++ #include "textures/segment2/font_graphics.06A00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_tilde[] = { +++ALIGNED8 static const u8 texture_font_char_us_tilde[] = { ++ #include "textures/segment2/font_graphics.06A40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_period[] = { +++ALIGNED8 static const u8 texture_font_char_us_period[] = { ++ #include "textures/segment2/font_graphics.06A80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_percent[] = { +++ALIGNED8 static const u8 texture_font_char_us_percent[] = { ++ #include "textures/segment2/font_graphics.06AC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_interpunct[] = { +++ALIGNED8 static const u8 texture_font_char_us_interpunct[] = { ++ #include "textures/segment2/font_graphics.06B00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_comma[] = { +++ALIGNED8 static const u8 texture_font_char_us_comma[] = { ++ #include "textures/segment2/font_graphics.06B40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_apostrophe[] = { +++ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = { ++ #include "textures/segment2/font_graphics.06B80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_question[] = { +++ALIGNED8 static const u8 texture_font_char_us_question[] = { ++ #include "textures/segment2/font_graphics.06BC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_star_filled[] = { +++ALIGNED8 static const u8 texture_font_char_us_star_filled[] = { ++ #include "textures/segment2/font_graphics.06C00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_star_hollow[] = { +++ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = { ++ #include "textures/segment2/font_graphics.06C40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_double_quote_open[] = { +++ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = { ++ #include "textures/segment2/font_graphics.06C80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_double_quote_close[] = { +++ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = { ++ #include "textures/segment2/font_graphics.06CC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_ellipsis[] = { +++ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = { ++ #include "textures/segment2/font_graphics.06D00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_slash[] = { +++ALIGNED8 static const u8 texture_font_char_us_slash[] = { ++ #include "textures/segment2/font_graphics.06D40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_ampersand[] = { +++ALIGNED8 static const u8 texture_font_char_us_ampersand[] = { ++ #include "textures/segment2/font_graphics.06D80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_A[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_A[] = { ++ #include "textures/segment2/font_graphics.06DC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_B[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_B[] = { ++ #include "textures/segment2/font_graphics.06E00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_C[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_C[] = { ++ #include "textures/segment2/font_graphics.06E40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_Z[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_Z[] = { ++ #include "textures/segment2/font_graphics.06E80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_R[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_R[] = { ++ #include "textures/segment2/font_graphics.06EC0.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_C_up[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = { ++ #include "textures/segment2/font_graphics.06F00.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_C_down[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = { ++ #include "textures/segment2/font_graphics.06F40.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_C_left[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = { ++ #include "textures/segment2/font_graphics.06F80.ia4.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_font_char_us_button_C_right[] = { +++ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = { ++ #include "textures/segment2/font_graphics.06FC0.ia4.inc.c" ++ }; ++ #endif ++ ++-ALIGNED8 static const Texture texture_hud_char_camera[] = { +++ALIGNED8 static const u8 texture_hud_char_camera[] = { ++ #include "textures/segment2/segment2.07B50.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_lakitu[] = { +++ALIGNED8 static const u8 texture_hud_char_lakitu[] = { ++ #include "textures/segment2/segment2.07D50.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_no_camera[] = { +++ALIGNED8 static const u8 texture_hud_char_no_camera[] = { ++ #include "textures/segment2/segment2.07F50.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_arrow_up[] = { +++ALIGNED8 static const u8 texture_hud_char_arrow_up[] = { ++ #include "textures/segment2/segment2.08150.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_hud_char_arrow_down[] = { +++ALIGNED8 static const u8 texture_hud_char_arrow_down[] = { ++ #include "textures/segment2/segment2.081D0.rgba16.inc.c" ++ }; ++ ++ // Main HUD print table 0x02008250-0x02008337 ++-const Texture *const main_hud_lut[] = { +++const u8 *const main_hud_lut[] = { ++ #ifdef VERSION_EU ++ texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, ++ texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, ++@@ -1858,7 +1854,7 @@ const Texture *const main_hud_lut[] = { ++ }; ++ ++ // Main small font print table 0x02008338-0x02008737 ++-const Texture *const main_font_lut[] = { +++const u8 *const main_font_lut[] = { ++ #ifdef VERSION_EU // EU Font Table ++ texture_font_char_eu_0, texture_font_char_eu_1, texture_font_char_eu_2, texture_font_char_eu_3, ++ texture_font_char_eu_4, texture_font_char_eu_5, texture_font_char_eu_6, texture_font_char_eu_7, ++@@ -2060,7 +2056,7 @@ const Texture *const main_font_lut[] = { ++ }; ++ ++ // credits font LUT 0x02008738-0x020087CB ++-const Texture *const main_credits_font_lut[] = { +++const u8 *const main_credits_font_lut[] = { ++ 0x0, 0x0, 0x0, texture_credits_char_3, ++ texture_credits_char_4, 0x0, texture_credits_char_6, 0x0, ++ 0x0, 0x0, texture_credits_char_A, texture_credits_char_B, ++@@ -2074,7 +2070,7 @@ const Texture *const main_credits_font_lut[] = { ++ }; ++ ++ // HUD camera table 0x020087CC-0x020087E3 ++-const Texture *const main_hud_camera_lut[] = { +++const u8 *const main_hud_camera_lut[] = { ++ texture_hud_char_camera, texture_hud_char_mario_head, texture_hud_char_lakitu, texture_hud_char_no_camera, ++ texture_hud_char_arrow_up, texture_hud_char_arrow_down, ++ }; ++@@ -2097,12 +2093,10 @@ const Gfx dl_hud_img_begin[] = { ++ gsDPSetTexturePersp(G_TP_NONE), ++ gsDPSetAlphaCompare(G_AC_THRESHOLD), ++ gsDPSetBlendColor(255, 255, 255, 255), ++-#if defined(VERSION_EU) || defined(VERSION_SH) ++- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), ++-#endif ++ #ifdef VERSION_EU +++ gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), ++ gsDPSetTextureFilter(G_TF_POINT), ++-#elif defined(VERSION_JP) || defined(VERSION_US) +++#else ++ gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), ++ #endif ++ gsSPEndDisplayList(), ++@@ -2126,9 +2120,9 @@ const Gfx dl_hud_img_end[] = { ++ gsDPSetAlphaCompare(G_AC_NONE), ++ #ifdef VERSION_EU ++ gsDPSetTextureFilter(G_TF_BILERP), ++-#endif ++ gsDPSetCycleType(G_CYC_1CYCLE), ++-#if defined(VERSION_JP) || defined(VERSION_US) +++#else +++ gsDPSetCycleType(G_CYC_1CYCLE), ++ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), ++ #endif ++ gsSPEndDisplayList(), ++@@ -2189,16 +2183,16 @@ const Gfx dl_draw_text_bg_box[] = { ++ #ifndef VERSION_EU ++ // 0x0200EE28 - 0x0200EE68 ++ static const Vtx vertex_ia8_char[] = { ++-#if defined(VERSION_JP) || defined(VERSION_SH) ++- {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++- {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++-#else +++#ifndef VERSION_JP ++ {{{ 0, 0, 0}, 0, { 0, 256}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 8, 16, 0}, 0, { 480, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ {{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}}, +++#else +++ {{{ 0, 0, 0}, 0, { 0, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ 8, 0, 0}, 0, { 512, 1024}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}}, +++ {{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ #endif ++ }; ++ // !EU ++@@ -2453,47 +2447,47 @@ const Gfx dl_billboard_num_9[] = { ++ gsSPEndDisplayList(), ++ }; ++ ++-ALIGNED8 static const Texture texture_shadow_quarter_circle[] = { +++ALIGNED8 static const u8 texture_shadow_quarter_circle[] = { ++ #include "textures/segment2/shadow_quarter_circle.ia8.inc.c" ++ }; ++ ++-ALIGNED8 static const Texture texture_shadow_quarter_square[] = { +++ALIGNED8 static const u8 texture_shadow_quarter_square[] = { ++ #include "textures/segment2/shadow_quarter_square.ia8.inc.c" ++ }; ++ ++-const Texture texture_transition_star_half[] = { +++ALIGNED8 const u8 texture_transition_star_half[] = { ++ #include "textures/segment2/segment2.0F458.ia8.inc.c" ++ }; ++ ++-const Texture texture_transition_circle_half[] = { +++ALIGNED8 const u8 texture_transition_circle_half[] = { ++ #include "textures/segment2/segment2.0FC58.ia8.inc.c" ++ }; ++ ++-const Texture texture_transition_mario[] = { +++ALIGNED8 const u8 texture_transition_mario[] = { ++ #include "textures/segment2/segment2.10458.ia8.inc.c" ++ }; ++ ++-const Texture texture_transition_bowser_half[] = { +++ALIGNED8 const u8 texture_transition_bowser_half[] = { ++ #include "textures/segment2/segment2.11458.ia8.inc.c" ++ }; ++ ++-const Texture texture_waterbox_water[] = { +++ALIGNED8 const u8 texture_waterbox_water[] = { ++ #include "textures/segment2/segment2.11C58.rgba16.inc.c" ++ }; ++ ++-const Texture texture_waterbox_jrb_water[] = { +++ALIGNED8 const u8 texture_waterbox_jrb_water[] = { ++ #include "textures/segment2/segment2.12458.rgba16.inc.c" ++ }; ++ ++-const Texture texture_waterbox_unknown_water[] = { +++ALIGNED8 const u8 texture_waterbox_unknown_water[] = { ++ #include "textures/segment2/segment2.12C58.rgba16.inc.c" ++ }; ++ ++-const Texture texture_waterbox_mist[] = { +++ALIGNED8 const u8 texture_waterbox_mist[] = { ++ #include "textures/segment2/segment2.13458.ia16.inc.c" ++ }; ++ ++-const Texture texture_waterbox_lava[] = { +++ALIGNED8 const u8 texture_waterbox_lava[] = { ++ #include "textures/segment2/segment2.13C58.rgba16.inc.c" ++ }; ++ ++@@ -2691,7 +2685,7 @@ const Gfx dl_waterbox_end[] = { ++ }; ++ ++ // 0x02014838 - 0x02014878 ++-ALIGNED8 static const Texture texture_ia8_up_arrow[] = { +++ALIGNED8 static const u8 texture_ia8_up_arrow[] = { ++ #include "textures/segment2/segment2.14838.ia8.inc.c" ++ }; ++ +diff --git a/bin/sky.c b/bin/sky.c +index 48c0783..861f776 100644 +--- a/bin/sky.c ++++ b/bin/sky.c +@@ -1,78 +1,77 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture sky_09000000[] = { ++ALIGNED8 const u8 sky_09000000[] = { + #include "textures/sky/rr_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture sky_09000800[] = { ++ALIGNED8 const u8 sky_09000800[] = { + #include "textures/sky/rr_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture sky_09001000[] = { ++ALIGNED8 const u8 sky_09001000[] = { + #include "textures/sky/rr_textures.01000.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture sky_09001800[] = { ++ALIGNED8 const u8 sky_09001800[] = { + #include "textures/sky/rr_textures.01800.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture sky_09002000[] = { ++ALIGNED8 const u8 sky_09002000[] = { + #include "textures/sky/rr_textures.02000.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture sky_09003000[] = { ++ALIGNED8 const u8 sky_09003000[] = { + #include "textures/sky/rr_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture sky_09003800[] = { ++ALIGNED8 const u8 sky_09003800[] = { + #include "textures/sky/rr_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture sky_09004800[] = { ++ALIGNED8 const u8 sky_09004800[] = { + #include "textures/sky/rr_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture sky_09005000[] = { ++ALIGNED8 const u8 sky_09005000[] = { + #include "textures/sky/rr_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture sky_09005800[] = { ++ALIGNED8 const u8 sky_09005800[] = { + #include "textures/sky/rr_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture sky_09006000[] = { ++ALIGNED8 const u8 sky_09006000[] = { + #include "textures/sky/rr_textures.06000.rgba16.inc.c" + }; + +-ALIGNED8 const Texture texture_metal_hole[] = { ++ALIGNED8 const u8 texture_metal_hole[] = { + #include "textures/sky/metal_hole.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture sky_09007000[] = { ++ALIGNED8 const u8 sky_09007000[] = { + #include "textures/sky/rr_textures.07000.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture sky_09007800[] = { ++ALIGNED8 const u8 sky_09007800[] = { + #include "textures/sky/rr_textures.07800.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture sky_09008000[] = { ++ALIGNED8 const u8 sky_09008000[] = { + #include "textures/sky/rr_textures.08000.rgba16.inc.c" + }; +diff --git a/bin/sky.c.rej b/bin/sky.c.rej +new file mode 100644 +index 0000000..ba8eea4 +--- /dev/null ++++ b/bin/sky.c.rej +@@ -0,0 +1,96 @@ ++diff a/bin/sky.c b/bin/sky.c (rejected hunks) ++@@ -1,78 +1,77 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture sky_09000000[] = { +++ALIGNED8 const u8 sky_09000000[] = { ++ #include "textures/sky/rr_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture sky_09000800[] = { +++ALIGNED8 const u8 sky_09000800[] = { ++ #include "textures/sky/rr_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture sky_09001000[] = { +++ALIGNED8 const u8 sky_09001000[] = { ++ #include "textures/sky/rr_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture sky_09001800[] = { +++ALIGNED8 const u8 sky_09001800[] = { ++ #include "textures/sky/rr_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture sky_09002000[] = { +++ALIGNED8 const u8 sky_09002000[] = { ++ #include "textures/sky/rr_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture sky_09003000[] = { +++ALIGNED8 const u8 sky_09003000[] = { ++ #include "textures/sky/rr_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture sky_09003800[] = { +++ALIGNED8 const u8 sky_09003800[] = { ++ #include "textures/sky/rr_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture sky_09004800[] = { +++ALIGNED8 const u8 sky_09004800[] = { ++ #include "textures/sky/rr_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture sky_09005000[] = { +++ALIGNED8 const u8 sky_09005000[] = { ++ #include "textures/sky/rr_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture sky_09005800[] = { +++ALIGNED8 const u8 sky_09005800[] = { ++ #include "textures/sky/rr_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture sky_09006000[] = { +++ALIGNED8 const u8 sky_09006000[] = { ++ #include "textures/sky/rr_textures.06000.rgba16.inc.c" ++ }; ++ ++-ALIGNED8 const Texture texture_metal_hole[] = { +++ALIGNED8 const u8 texture_metal_hole[] = { ++ #include "textures/sky/metal_hole.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture sky_09007000[] = { +++ALIGNED8 const u8 sky_09007000[] = { ++ #include "textures/sky/rr_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture sky_09007800[] = { +++ALIGNED8 const u8 sky_09007800[] = { ++ #include "textures/sky/rr_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture sky_09008000[] = { +++ALIGNED8 const u8 sky_09008000[] = { ++ #include "textures/sky/rr_textures.08000.rgba16.inc.c" ++ }; +diff --git a/bin/snow.c b/bin/snow.c +index f89ebe0..5e8999f 100644 +--- a/bin/snow.c ++++ b/bin/snow.c +@@ -1,94 +1,93 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture snow_09000000[] = { ++ALIGNED8 const u8 snow_09000000[] = { + #include "textures/snow/ccm_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture snow_09000800[] = { ++ALIGNED8 const u8 snow_09000800[] = { + #include "textures/snow/ccm_textures.00800.rgba16.inc.c" + }; + + // 0x09001000 +-ALIGNED8 const Texture snow_09001000[] = { ++ALIGNED8 const u8 snow_09001000[] = { + #include "textures/snow/ccm_textures.01000.rgba16.inc.c" + }; + + // 0x09002000 +-ALIGNED8 const Texture snow_09002000[] = { ++ALIGNED8 const u8 snow_09002000[] = { + #include "textures/snow/ccm_textures.02000.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture snow_09002800[] = { ++ALIGNED8 const u8 snow_09002800[] = { + #include "textures/snow/ccm_textures.02800.rgba16.inc.c" + }; + + // 0x09003000 +-ALIGNED8 const Texture snow_09003000[] = { ++ALIGNED8 const u8 snow_09003000[] = { + #include "textures/snow/ccm_textures.03000.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture snow_09003800[] = { ++ALIGNED8 const u8 snow_09003800[] = { + #include "textures/snow/ccm_textures.03800.rgba16.inc.c" + }; + + // 0x09004000 +-ALIGNED8 const Texture snow_09004000[] = { ++ALIGNED8 const u8 snow_09004000[] = { + #include "textures/snow/ccm_textures.04000.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture snow_09004800[] = { ++ALIGNED8 const u8 snow_09004800[] = { + #include "textures/snow/ccm_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture snow_09005000[] = { ++ALIGNED8 const u8 snow_09005000[] = { + #include "textures/snow/ccm_textures.05000.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture snow_09005800[] = { ++ALIGNED8 const u8 snow_09005800[] = { + #include "textures/snow/ccm_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture snow_09006000[] = { ++ALIGNED8 const u8 snow_09006000[] = { + #include "textures/snow/ccm_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture snow_09006800[] = { ++ALIGNED8 const u8 snow_09006800[] = { + #include "textures/snow/ccm_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture snow_09007000[] = { ++ALIGNED8 const u8 snow_09007000[] = { + #include "textures/snow/ccm_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture snow_09008000[] = { ++ALIGNED8 const u8 snow_09008000[] = { + #include "textures/snow/ccm_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture snow_09008800[] = { ++ALIGNED8 const u8 snow_09008800[] = { + #include "textures/snow/ccm_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture snow_09009000[] = { ++ALIGNED8 const u8 snow_09009000[] = { + #include "textures/snow/ccm_textures.09000.ia16.inc.c" + }; + + // 0x09009800 +-ALIGNED8 const Texture snow_09009800[] = { ++ALIGNED8 const u8 snow_09009800[] = { + #include "textures/snow/ccm_textures.09800.ia16.inc.c" + }; +diff --git a/bin/snow.c.rej b/bin/snow.c.rej +new file mode 100644 +index 0000000..8573e93 +--- /dev/null ++++ b/bin/snow.c.rej +@@ -0,0 +1,115 @@ ++diff a/bin/snow.c b/bin/snow.c (rejected hunks) ++@@ -1,94 +1,93 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture snow_09000000[] = { +++ALIGNED8 const u8 snow_09000000[] = { ++ #include "textures/snow/ccm_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture snow_09000800[] = { +++ALIGNED8 const u8 snow_09000800[] = { ++ #include "textures/snow/ccm_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001000 ++-ALIGNED8 const Texture snow_09001000[] = { +++ALIGNED8 const u8 snow_09001000[] = { ++ #include "textures/snow/ccm_textures.01000.rgba16.inc.c" ++ }; ++ ++ // 0x09002000 ++-ALIGNED8 const Texture snow_09002000[] = { +++ALIGNED8 const u8 snow_09002000[] = { ++ #include "textures/snow/ccm_textures.02000.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture snow_09002800[] = { +++ALIGNED8 const u8 snow_09002800[] = { ++ #include "textures/snow/ccm_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003000 ++-ALIGNED8 const Texture snow_09003000[] = { +++ALIGNED8 const u8 snow_09003000[] = { ++ #include "textures/snow/ccm_textures.03000.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture snow_09003800[] = { +++ALIGNED8 const u8 snow_09003800[] = { ++ #include "textures/snow/ccm_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004000 ++-ALIGNED8 const Texture snow_09004000[] = { +++ALIGNED8 const u8 snow_09004000[] = { ++ #include "textures/snow/ccm_textures.04000.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture snow_09004800[] = { +++ALIGNED8 const u8 snow_09004800[] = { ++ #include "textures/snow/ccm_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture snow_09005000[] = { +++ALIGNED8 const u8 snow_09005000[] = { ++ #include "textures/snow/ccm_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture snow_09005800[] = { +++ALIGNED8 const u8 snow_09005800[] = { ++ #include "textures/snow/ccm_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture snow_09006000[] = { +++ALIGNED8 const u8 snow_09006000[] = { ++ #include "textures/snow/ccm_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture snow_09006800[] = { +++ALIGNED8 const u8 snow_09006800[] = { ++ #include "textures/snow/ccm_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture snow_09007000[] = { +++ALIGNED8 const u8 snow_09007000[] = { ++ #include "textures/snow/ccm_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture snow_09008000[] = { +++ALIGNED8 const u8 snow_09008000[] = { ++ #include "textures/snow/ccm_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture snow_09008800[] = { +++ALIGNED8 const u8 snow_09008800[] = { ++ #include "textures/snow/ccm_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture snow_09009000[] = { +++ALIGNED8 const u8 snow_09009000[] = { ++ #include "textures/snow/ccm_textures.09000.ia16.inc.c" ++ }; ++ ++ // 0x09009800 ++-ALIGNED8 const Texture snow_09009800[] = { +++ALIGNED8 const u8 snow_09009800[] = { ++ #include "textures/snow/ccm_textures.09800.ia16.inc.c" ++ }; +diff --git a/bin/spooky.c b/bin/spooky.c +index c861670..391519e 100644 +--- a/bin/spooky.c ++++ b/bin/spooky.c +@@ -1,90 +1,89 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture spooky_09000000[] = { ++ALIGNED8 const u8 spooky_09000000[] = { + #include "textures/spooky/bbh_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture spooky_09000800[] = { ++ALIGNED8 const u8 spooky_09000800[] = { + #include "textures/spooky/bbh_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture spooky_09001800[] = { ++ALIGNED8 const u8 spooky_09001800[] = { + #include "textures/spooky/bbh_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture spooky_09002800[] = { ++ALIGNED8 const u8 spooky_09002800[] = { + #include "textures/spooky/bbh_textures.02800.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture spooky_09003800[] = { ++ALIGNED8 const u8 spooky_09003800[] = { + #include "textures/spooky/bbh_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture spooky_09004800[] = { ++ALIGNED8 const u8 spooky_09004800[] = { + #include "textures/spooky/bbh_textures.04800.rgba16.inc.c" + }; + + // 0x09005000 +-ALIGNED8 const Texture spooky_09005000[] = { ++ALIGNED8 const u8 spooky_09005000[] = { + #include "textures/spooky/bbh_textures.05000.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture spooky_09006000[] = { ++ALIGNED8 const u8 spooky_09006000[] = { + #include "textures/spooky/bbh_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture spooky_09006800[] = { ++ALIGNED8 const u8 spooky_09006800[] = { + #include "textures/spooky/bbh_textures.06800.rgba16.inc.c" + }; + + // 0x09007000 +-ALIGNED8 const Texture spooky_09007000[] = { ++ALIGNED8 const u8 spooky_09007000[] = { + #include "textures/spooky/bbh_textures.07000.rgba16.inc.c" + }; + + // 0x09008000 +-ALIGNED8 const Texture spooky_09008000[] = { ++ALIGNED8 const u8 spooky_09008000[] = { + #include "textures/spooky/bbh_textures.08000.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture spooky_09008800[] = { ++ALIGNED8 const u8 spooky_09008800[] = { + #include "textures/spooky/bbh_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture spooky_09009000[] = { ++ALIGNED8 const u8 spooky_09009000[] = { + #include "textures/spooky/bbh_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture spooky_0900A000[] = { ++ALIGNED8 const u8 spooky_0900A000[] = { + #include "textures/spooky/bbh_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture spooky_0900A800[] = { ++ALIGNED8 const u8 spooky_0900A800[] = { + #include "textures/spooky/bbh_textures.0A800.ia16.inc.c" + }; + + // 0x0900B000 +-ALIGNED8 const Texture spooky_0900B000[] = { ++ALIGNED8 const u8 spooky_0900B000[] = { + #include "textures/spooky/bbh_textures.0B000.ia16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture spooky_0900B800[] = { ++ALIGNED8 const u8 spooky_0900B800[] = { + #include "textures/spooky/bbh_textures.0B800.ia16.inc.c" + }; + +diff --git a/bin/spooky.c.rej b/bin/spooky.c.rej +new file mode 100644 +index 0000000..3ae2ead +--- /dev/null ++++ b/bin/spooky.c.rej +@@ -0,0 +1,110 @@ ++diff a/bin/spooky.c b/bin/spooky.c (rejected hunks) ++@@ -1,90 +1,89 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture spooky_09000000[] = { +++ALIGNED8 const u8 spooky_09000000[] = { ++ #include "textures/spooky/bbh_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture spooky_09000800[] = { +++ALIGNED8 const u8 spooky_09000800[] = { ++ #include "textures/spooky/bbh_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture spooky_09001800[] = { +++ALIGNED8 const u8 spooky_09001800[] = { ++ #include "textures/spooky/bbh_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture spooky_09002800[] = { +++ALIGNED8 const u8 spooky_09002800[] = { ++ #include "textures/spooky/bbh_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture spooky_09003800[] = { +++ALIGNED8 const u8 spooky_09003800[] = { ++ #include "textures/spooky/bbh_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture spooky_09004800[] = { +++ALIGNED8 const u8 spooky_09004800[] = { ++ #include "textures/spooky/bbh_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005000 ++-ALIGNED8 const Texture spooky_09005000[] = { +++ALIGNED8 const u8 spooky_09005000[] = { ++ #include "textures/spooky/bbh_textures.05000.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture spooky_09006000[] = { +++ALIGNED8 const u8 spooky_09006000[] = { ++ #include "textures/spooky/bbh_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture spooky_09006800[] = { +++ALIGNED8 const u8 spooky_09006800[] = { ++ #include "textures/spooky/bbh_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007000 ++-ALIGNED8 const Texture spooky_09007000[] = { +++ALIGNED8 const u8 spooky_09007000[] = { ++ #include "textures/spooky/bbh_textures.07000.rgba16.inc.c" ++ }; ++ ++ // 0x09008000 ++-ALIGNED8 const Texture spooky_09008000[] = { +++ALIGNED8 const u8 spooky_09008000[] = { ++ #include "textures/spooky/bbh_textures.08000.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture spooky_09008800[] = { +++ALIGNED8 const u8 spooky_09008800[] = { ++ #include "textures/spooky/bbh_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture spooky_09009000[] = { +++ALIGNED8 const u8 spooky_09009000[] = { ++ #include "textures/spooky/bbh_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture spooky_0900A000[] = { +++ALIGNED8 const u8 spooky_0900A000[] = { ++ #include "textures/spooky/bbh_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture spooky_0900A800[] = { +++ALIGNED8 const u8 spooky_0900A800[] = { ++ #include "textures/spooky/bbh_textures.0A800.ia16.inc.c" ++ }; ++ ++ // 0x0900B000 ++-ALIGNED8 const Texture spooky_0900B000[] = { +++ALIGNED8 const u8 spooky_0900B000[] = { ++ #include "textures/spooky/bbh_textures.0B000.ia16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture spooky_0900B800[] = { +++ALIGNED8 const u8 spooky_0900B800[] = { ++ #include "textures/spooky/bbh_textures.0B800.ia16.inc.c" ++ }; ++ +diff --git a/bin/title_screen_bg.c b/bin/title_screen_bg.c +index d6deb09..e63233a 100644 +--- a/bin/title_screen_bg.c ++++ b/bin/title_screen_bg.c +@@ -72,94 +72,53 @@ const Gfx title_screen_bg_dl_0A000190[] = { + }; + + // 0x0A0001C0 +-ALIGNED8 static const Texture title_texture_0A0001C0[] = { ++ALIGNED8 static const u8 title_texture_0A0001C0[] = { + #include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c" + }; + + // 0x0A000E40 +-ALIGNED8 static const Texture title_texture_0A000E40[] = { ++ALIGNED8 static const u8 title_texture_0A000E40[] = { + #include "textures/title_screen_bg/title_screen_bg.00E40.rgba16.inc.c" + }; + + // 0x0A001AC0 +-ALIGNED8 static const Texture title_texture_0A001AC0[] = { ++ALIGNED8 static const u8 title_texture_0A001AC0[] = { + #include "textures/title_screen_bg/title_screen_bg.01AC0.rgba16.inc.c" + }; + + // 0x0A002740 +-ALIGNED8 static const Texture title_texture_0A002740[] = { ++ALIGNED8 static const u8 title_texture_0A002740[] = { + #include "textures/title_screen_bg/title_screen_bg.02740.rgba16.inc.c" + }; + + // 0x0A0033C0 +-ALIGNED8 static const Texture title_texture_0A0033C0[] = { ++ALIGNED8 static const u8 title_texture_0A0033C0[] = { + #include "textures/title_screen_bg/title_screen_bg.033C0.rgba16.inc.c" + }; + + // 0x0A004040 +-ALIGNED8 static const Texture title_texture_0A004040[] = { ++ALIGNED8 static const u8 title_texture_0A004040[] = { + #include "textures/title_screen_bg/title_screen_bg.04040.rgba16.inc.c" + }; + + // 0x0A004CC0 +-ALIGNED8 static const Texture title_texture_0A004CC0[] = { ++ALIGNED8 static const u8 title_texture_0A004CC0[] = { + #include "textures/title_screen_bg/title_screen_bg.04CC0.rgba16.inc.c" + }; + + // 0x0A005940 +-ALIGNED8 static const Texture title_texture_0A005940[] = { ++ALIGNED8 static const u8 title_texture_0A005940[] = { + #include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c" + }; + + // 0x0A0065C0 +-const Texture *const mario_title_texture_table[] = { ++const u8 *const mario_title_texture_table[] = { + title_texture_0A0001C0, title_texture_0A000E40, title_texture_0A001AC0, title_texture_0A002740, + }; + + // 0x0A0065D0 +-const Texture *const game_over_texture_table[] = { ++const u8 *const game_over_texture_table[] = { + title_texture_0A0033C0, title_texture_0A004040, title_texture_0A004CC0, title_texture_0A005940, + }; + + UNUSED static const u64 title_screen_bg_unused_0 = 0; +- +-#ifdef VERSION_SH +-const Gfx title_screen_bg_dl_0A0065E8[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_COPY), +- gsDPSetTexturePersp(G_TP_NONE), +- gsDPSetTextureFilter(G_TF_POINT), +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +- gsSPEndDisplayList(), +-}; +- +-const Gfx title_screen_bg_dl_0A006618[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_1CYCLE), +- gsDPSetTexturePersp(G_TP_PERSP), +- gsDPSetTextureFilter(G_TF_BILERP), +- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), +- gsSPEndDisplayList(), +-}; +- +-ALIGNED8 static const u8 title_texture_rumble_pak[] = { +-#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c" +-}; +- +-const Gfx title_screen_bg_dl_0A007548[] = { +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_COPY), +- gsDPSetTexturePersp(G_TP_NONE), +- gsDPSetTextureFilter(G_TF_POINT), +- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), +- gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239), +- gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD), +- gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10), +- gsDPPipeSync(), +- gsDPSetCycleType(G_CYC_1CYCLE), +- gsDPSetTexturePersp(G_TP_PERSP), +- gsDPSetTextureFilter(G_TF_BILERP), +- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), +- gsSPEndDisplayList(), +-}; +-#endif +diff --git a/bin/title_screen_bg.c.rej b/bin/title_screen_bg.c.rej +new file mode 100644 +index 0000000..6d85a31 +--- /dev/null ++++ b/bin/title_screen_bg.c.rej +@@ -0,0 +1,106 @@ ++diff a/bin/title_screen_bg.c b/bin/title_screen_bg.c (rejected hunks) ++@@ -72,94 +72,53 @@ const Gfx title_screen_bg_dl_0A000190[] = { ++ }; ++ ++ // 0x0A0001C0 ++-ALIGNED8 static const Texture title_texture_0A0001C0[] = { +++ALIGNED8 static const u8 title_texture_0A0001C0[] = { ++ #include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c" ++ }; ++ ++ // 0x0A000E40 ++-ALIGNED8 static const Texture title_texture_0A000E40[] = { +++ALIGNED8 static const u8 title_texture_0A000E40[] = { ++ #include "textures/title_screen_bg/title_screen_bg.00E40.rgba16.inc.c" ++ }; ++ ++ // 0x0A001AC0 ++-ALIGNED8 static const Texture title_texture_0A001AC0[] = { +++ALIGNED8 static const u8 title_texture_0A001AC0[] = { ++ #include "textures/title_screen_bg/title_screen_bg.01AC0.rgba16.inc.c" ++ }; ++ ++ // 0x0A002740 ++-ALIGNED8 static const Texture title_texture_0A002740[] = { +++ALIGNED8 static const u8 title_texture_0A002740[] = { ++ #include "textures/title_screen_bg/title_screen_bg.02740.rgba16.inc.c" ++ }; ++ ++ // 0x0A0033C0 ++-ALIGNED8 static const Texture title_texture_0A0033C0[] = { +++ALIGNED8 static const u8 title_texture_0A0033C0[] = { ++ #include "textures/title_screen_bg/title_screen_bg.033C0.rgba16.inc.c" ++ }; ++ ++ // 0x0A004040 ++-ALIGNED8 static const Texture title_texture_0A004040[] = { +++ALIGNED8 static const u8 title_texture_0A004040[] = { ++ #include "textures/title_screen_bg/title_screen_bg.04040.rgba16.inc.c" ++ }; ++ ++ // 0x0A004CC0 ++-ALIGNED8 static const Texture title_texture_0A004CC0[] = { +++ALIGNED8 static const u8 title_texture_0A004CC0[] = { ++ #include "textures/title_screen_bg/title_screen_bg.04CC0.rgba16.inc.c" ++ }; ++ ++ // 0x0A005940 ++-ALIGNED8 static const Texture title_texture_0A005940[] = { +++ALIGNED8 static const u8 title_texture_0A005940[] = { ++ #include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c" ++ }; ++ ++ // 0x0A0065C0 ++-const Texture *const mario_title_texture_table[] = { +++const u8 *const mario_title_texture_table[] = { ++ title_texture_0A0001C0, title_texture_0A000E40, title_texture_0A001AC0, title_texture_0A002740, ++ }; ++ ++ // 0x0A0065D0 ++-const Texture *const game_over_texture_table[] = { +++const u8 *const game_over_texture_table[] = { ++ title_texture_0A0033C0, title_texture_0A004040, title_texture_0A004CC0, title_texture_0A005940, ++ }; ++ ++ UNUSED static const u64 title_screen_bg_unused_0 = 0; ++- ++-#ifdef VERSION_SH ++-const Gfx title_screen_bg_dl_0A0065E8[] = { ++- gsDPPipeSync(), ++- gsDPSetCycleType(G_CYC_COPY), ++- gsDPSetTexturePersp(G_TP_NONE), ++- gsDPSetTextureFilter(G_TF_POINT), ++- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), ++- gsSPEndDisplayList(), ++-}; ++- ++-const Gfx title_screen_bg_dl_0A006618[] = { ++- gsDPPipeSync(), ++- gsDPSetCycleType(G_CYC_1CYCLE), ++- gsDPSetTexturePersp(G_TP_PERSP), ++- gsDPSetTextureFilter(G_TF_BILERP), ++- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), ++- gsSPEndDisplayList(), ++-}; ++- ++-ALIGNED8 static const u8 title_texture_rumble_pak[] = { ++-#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c" ++-}; ++- ++-const Gfx title_screen_bg_dl_0A007548[] = { ++- gsDPPipeSync(), ++- gsDPSetCycleType(G_CYC_COPY), ++- gsDPSetTexturePersp(G_TP_NONE), ++- gsDPSetTextureFilter(G_TF_POINT), ++- gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2), ++- gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239), ++- gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD), ++- gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10), ++- gsDPPipeSync(), ++- gsDPSetCycleType(G_CYC_1CYCLE), ++- gsDPSetTexturePersp(G_TP_PERSP), ++- gsDPSetTextureFilter(G_TF_BILERP), ++- gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), ++- gsSPEndDisplayList(), ++-}; ++-#endif +diff --git a/bin/water.c b/bin/water.c +index ce612c9..a958891 100644 +--- a/bin/water.c ++++ b/bin/water.c +@@ -1,79 +1,78 @@ +-#include "macros.h" +-#include "types.h" ++#include "sm64.h" + + #include "make_const_nonconst.h" + + // 0x09000000 +-ALIGNED8 const Texture water_09000000[] = { ++ALIGNED8 const u8 water_09000000[] = { + #include "textures/water/jrb_textures.00000.rgba16.inc.c" + }; + + // 0x09000800 +-ALIGNED8 const Texture water_09000800[] = { ++ALIGNED8 const u8 water_09000800[] = { + #include "textures/water/jrb_textures.00800.rgba16.inc.c" + }; + + // 0x09001800 +-ALIGNED8 const Texture water_09001800[] = { ++ALIGNED8 const u8 water_09001800[] = { + #include "textures/water/jrb_textures.01800.rgba16.inc.c" + }; + + // 0x09002800 +-ALIGNED8 const Texture water_09002800[] = { ++ALIGNED8 const u8 water_09002800[] = { + #include "textures/water/jrb_textures.02800.rgba16.inc.c" + }; + + // 0x09003800 +-ALIGNED8 const Texture water_09003800[] = { ++ALIGNED8 const u8 water_09003800[] = { + #include "textures/water/jrb_textures.03800.rgba16.inc.c" + }; + + // 0x09004800 +-ALIGNED8 const Texture water_09004800[] = { ++ALIGNED8 const u8 water_09004800[] = { + #include "textures/water/jrb_textures.04800.rgba16.inc.c" + }; + + // 0x09005800 +-ALIGNED8 const Texture water_09005800[] = { ++ALIGNED8 const u8 water_09005800[] = { + #include "textures/water/jrb_textures.05800.rgba16.inc.c" + }; + + // 0x09006000 +-ALIGNED8 const Texture water_09006000[] = { ++ALIGNED8 const u8 water_09006000[] = { + #include "textures/water/jrb_textures.06000.rgba16.inc.c" + }; + + // 0x09006800 +-ALIGNED8 const Texture water_09006800[] = { ++ALIGNED8 const u8 water_09006800[] = { + #include "textures/water/jrb_textures.06800.rgba16.inc.c" + }; + + // 0x09007800 +-ALIGNED8 const Texture water_09007800[] = { ++ALIGNED8 const u8 water_09007800[] = { + #include "textures/water/jrb_textures.07800.rgba16.inc.c" + }; + + // 0x09008800 +-ALIGNED8 const Texture water_09008800[] = { ++ALIGNED8 const u8 water_09008800[] = { + #include "textures/water/jrb_textures.08800.rgba16.inc.c" + }; + + // 0x09009000 +-ALIGNED8 const Texture water_09009000[] = { ++ALIGNED8 const u8 water_09009000[] = { + #include "textures/water/jrb_textures.09000.rgba16.inc.c" + }; + + // 0x0900A000 +-ALIGNED8 const Texture water_0900A000[] = { ++ALIGNED8 const u8 water_0900A000[] = { + #include "textures/water/jrb_textures.0A000.rgba16.inc.c" + }; + + // 0x0900A800 +-ALIGNED8 const Texture water_0900A800[] = { ++ALIGNED8 const u8 water_0900A800[] = { + #include "textures/water/jrb_textures.0A800.rgba16.inc.c" + }; + + // 0x0900B800 +-ALIGNED8 const Texture water_0900B800[] = { ++ALIGNED8 const u8 water_0900B800[] = { + #include "textures/water/jrb_textures.0B800.rgba16.inc.c" + }; +diff --git a/bin/water.c.rej b/bin/water.c.rej +new file mode 100644 +index 0000000..fe43e87 +--- /dev/null ++++ b/bin/water.c.rej +@@ -0,0 +1,97 @@ ++diff a/bin/water.c b/bin/water.c (rejected hunks) ++@@ -1,79 +1,78 @@ ++-#include "macros.h" ++-#include "types.h" +++#include "sm64.h" ++ ++ #include "make_const_nonconst.h" ++ ++ // 0x09000000 ++-ALIGNED8 const Texture water_09000000[] = { +++ALIGNED8 const u8 water_09000000[] = { ++ #include "textures/water/jrb_textures.00000.rgba16.inc.c" ++ }; ++ ++ // 0x09000800 ++-ALIGNED8 const Texture water_09000800[] = { +++ALIGNED8 const u8 water_09000800[] = { ++ #include "textures/water/jrb_textures.00800.rgba16.inc.c" ++ }; ++ ++ // 0x09001800 ++-ALIGNED8 const Texture water_09001800[] = { +++ALIGNED8 const u8 water_09001800[] = { ++ #include "textures/water/jrb_textures.01800.rgba16.inc.c" ++ }; ++ ++ // 0x09002800 ++-ALIGNED8 const Texture water_09002800[] = { +++ALIGNED8 const u8 water_09002800[] = { ++ #include "textures/water/jrb_textures.02800.rgba16.inc.c" ++ }; ++ ++ // 0x09003800 ++-ALIGNED8 const Texture water_09003800[] = { +++ALIGNED8 const u8 water_09003800[] = { ++ #include "textures/water/jrb_textures.03800.rgba16.inc.c" ++ }; ++ ++ // 0x09004800 ++-ALIGNED8 const Texture water_09004800[] = { +++ALIGNED8 const u8 water_09004800[] = { ++ #include "textures/water/jrb_textures.04800.rgba16.inc.c" ++ }; ++ ++ // 0x09005800 ++-ALIGNED8 const Texture water_09005800[] = { +++ALIGNED8 const u8 water_09005800[] = { ++ #include "textures/water/jrb_textures.05800.rgba16.inc.c" ++ }; ++ ++ // 0x09006000 ++-ALIGNED8 const Texture water_09006000[] = { +++ALIGNED8 const u8 water_09006000[] = { ++ #include "textures/water/jrb_textures.06000.rgba16.inc.c" ++ }; ++ ++ // 0x09006800 ++-ALIGNED8 const Texture water_09006800[] = { +++ALIGNED8 const u8 water_09006800[] = { ++ #include "textures/water/jrb_textures.06800.rgba16.inc.c" ++ }; ++ ++ // 0x09007800 ++-ALIGNED8 const Texture water_09007800[] = { +++ALIGNED8 const u8 water_09007800[] = { ++ #include "textures/water/jrb_textures.07800.rgba16.inc.c" ++ }; ++ ++ // 0x09008800 ++-ALIGNED8 const Texture water_09008800[] = { +++ALIGNED8 const u8 water_09008800[] = { ++ #include "textures/water/jrb_textures.08800.rgba16.inc.c" ++ }; ++ ++ // 0x09009000 ++-ALIGNED8 const Texture water_09009000[] = { +++ALIGNED8 const u8 water_09009000[] = { ++ #include "textures/water/jrb_textures.09000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A000 ++-ALIGNED8 const Texture water_0900A000[] = { +++ALIGNED8 const u8 water_0900A000[] = { ++ #include "textures/water/jrb_textures.0A000.rgba16.inc.c" ++ }; ++ ++ // 0x0900A800 ++-ALIGNED8 const Texture water_0900A800[] = { +++ALIGNED8 const u8 water_0900A800[] = { ++ #include "textures/water/jrb_textures.0A800.rgba16.inc.c" ++ }; ++ ++ // 0x0900B800 ++-ALIGNED8 const Texture water_0900B800[] = { +++ALIGNED8 const u8 water_0900B800[] = { ++ #include "textures/water/jrb_textures.0B800.rgba16.inc.c" ++ }; +diff --git a/data/behavior_data.c b/data/behavior_data.c +index 9d11492..14b666a 100644 +--- a/data/behavior_data.c ++++ b/data/behavior_data.c +@@ -1748,7 +1748,7 @@ const BehaviorScript bhvBreakableBox[] = { + CALL_NATIVE(bhv_init_room), + BEGIN_LOOP(), + CALL_NATIVE(bhv_breakable_box_loop), +- CALL_NATIVE(load_object_collision_model), ++ + END_LOOP(), + BREAK(), + }; +@@ -3229,6 +3229,41 @@ const BehaviorScript bhvSparkleParticleSpawner[] = { + DEACTIVATE(), + }; + ++const BehaviorScript bhvSonicTrailParticleSpawner[] = { ++ BEGIN(OBJ_LIST_DEFAULT), ++ PARENT_BIT_CLEAR(oActiveParticleFlags, ACTIVE_PARTICLE_SONIC_TRAIL), ++ BEGIN(OBJ_LIST_UNIMPORTANT), ++ BILLBOARD(), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ SET_FLOAT(oGraphYOffset, 39), ++ SET_RANDOM_FLOAT(oMarioParticleFlags, /*Minimum*/ -0, /*Range*/ 0), ++ SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oMarioParticleFlags), ++ SET_INT(oAnimState, -1), ++ BEGIN_REPEAT(6), ++ ADD_INT(oAnimState, 1), ++ END_REPEAT(), ++ DEACTIVATE(), ++}; ++ ++ ++const BehaviorScript bhvSonicTrailParticleSpawnerRolling[] = { ++ BEGIN(OBJ_LIST_DEFAULT), ++ PARENT_BIT_CLEAR(oActiveParticleFlags, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING), ++ BEGIN(OBJ_LIST_UNIMPORTANT), ++ BILLBOARD(), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ SET_FLOAT(oGraphYOffset, 50), ++ SET_RANDOM_FLOAT(oMarioParticleFlags, /*Minimum*/ -0, /*Range*/ 0), ++ SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oMarioParticleFlags), ++ SET_INT(oAnimState, -1), ++ BEGIN_REPEAT(6), ++ ADD_INT(oAnimState, 1), ++ END_REPEAT(), ++ DEACTIVATE(), ++}; ++ ++ ++ + const BehaviorScript bhvScuttlebug[] = { + BEGIN(OBJ_LIST_GENACTOR), + OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), +@@ -6106,4 +6141,36 @@ const BehaviorScript bhvIntroScene[] = { + END_LOOP(), + }; + ++const BehaviorScript bhvReticle[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ BILLBOARD(), ++ SET_HOME(), ++ CALL_NATIVE(bhv_reticle_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_reticle_update), ++ END_LOOP(), ++}; ++ ++const BehaviorScript bhvEmeraldCircle[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ SET_HOME(), ++ CALL_NATIVE(bhv_emerald_circle_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_emerald_circle_loop), ++ END_LOOP(), ++}; ++ + ++/* ++const BehaviorScript bhvOrangeNumber[] = { ++ BEGIN(OBJ_LIST_LEVEL), ++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), ++ BILLBOARD(), ++ SET_HOME(), ++ CALL_NATIVE(bhv_orange_number_init), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_orange_number_loop), ++ END_LOOP(), ++};*/ +\ No newline at end of file +diff --git a/data/behavior_data.c.rej b/data/behavior_data.c.rej +new file mode 100644 +index 0000000..ca19862 +--- /dev/null ++++ b/data/behavior_data.c.rej +@@ -0,0 +1,48 @@ ++diff a/data/behavior_data.c b/data/behavior_data.c (rejected hunks) ++@@ -1748,7 +1748,7 @@ const BehaviorScript bhvBreakableBox[] = { ++ CALL_NATIVE(bhv_init_room), ++ BEGIN_LOOP(), ++ CALL_NATIVE(bhv_breakable_box_loop), ++- CALL_NATIVE(load_object_collision_model), +++ ++ END_LOOP(), ++ BREAK(), ++ }; ++@@ -6106,4 +6139,36 @@ const BehaviorScript bhvIntroScene[] = { ++ END_LOOP(), ++ }; ++ +++const BehaviorScript bhvReticle[] = { +++ BEGIN(OBJ_LIST_LEVEL), +++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), +++ BILLBOARD(), +++ SET_HOME(), +++ CALL_NATIVE(bhv_reticle_init), +++ BEGIN_LOOP(), +++ CALL_NATIVE(bhv_reticle_update), +++ END_LOOP(), +++}; ++ +++const BehaviorScript bhvEmeraldCircle[] = { +++ BEGIN(OBJ_LIST_LEVEL), +++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), +++ SET_HOME(), +++ CALL_NATIVE(bhv_emerald_circle_init), +++ BEGIN_LOOP(), +++ CALL_NATIVE(bhv_emerald_circle_loop), +++ END_LOOP(), +++}; +++ +++ +++/* +++const BehaviorScript bhvOrangeNumber[] = { +++ BEGIN(OBJ_LIST_LEVEL), +++ OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), +++ BILLBOARD(), +++ SET_HOME(), +++ CALL_NATIVE(bhv_orange_number_init), +++ BEGIN_LOOP(), +++ CALL_NATIVE(bhv_orange_number_loop), +++ END_LOOP(), +++};*/ ++\ No newline at end of file +diff --git a/include/behavior_data.h b/include/behavior_data.h +index 7acb330..92c60b9 100644 +--- a/include/behavior_data.h ++++ b/include/behavior_data.h +@@ -279,6 +279,8 @@ extern const BehaviorScript bhvTree[]; + extern const BehaviorScript bhvSparkle[]; + extern const BehaviorScript bhvSparkleSpawn[]; + extern const BehaviorScript bhvSparkleParticleSpawner[]; ++extern const BehaviorScript bhvSonicTrailParticleSpawner[]; ++extern const BehaviorScript bhvSonicTrailParticleSpawnerRolling[]; + extern const BehaviorScript bhvSomeGfx[]; + extern const BehaviorScript bhvScuttlebug[]; + extern const BehaviorScript bhvScuttlebugSpawn[]; +@@ -542,5 +544,7 @@ extern const BehaviorScript bhvEndBirds1[]; + extern const BehaviorScript bhvEndBirds2[]; + extern const BehaviorScript bhvIntroScene[]; + extern const BehaviorScript bhvUnusedFakeStar[]; ++extern const BehaviorScript bhvReticle[]; ++extern const BehaviorScript bhvEmeraldCircle[]; + + #endif // BEHAVIOR_DATA_H +diff --git a/include/behavior_data.h.rej b/include/behavior_data.h.rej +new file mode 100644 +index 0000000..a81ee9d +--- /dev/null ++++ b/include/behavior_data.h.rej +@@ -0,0 +1,18 @@ ++diff a/include/behavior_data.h b/include/behavior_data.h (rejected hunks) ++@@ -279,6 +279,8 @@ extern const BehaviorScript bhvTree[]; ++ extern const BehaviorScript bhvSparkle[]; ++ extern const BehaviorScript bhvSparkleSpawn[]; ++ extern const BehaviorScript bhvSparkleParticleSpawner[]; +++extern const BehaviorScript bhvSonicTrailParticleSpawner[]; +++extern const BehaviorScript bhvSonicTrailParticleSpawnerRolling[]; ++ extern const BehaviorScript bhvSomeGfx[]; ++ extern const BehaviorScript bhvScuttlebug[]; ++ extern const BehaviorScript bhvScuttlebugSpawn[]; ++@@ -542,5 +544,7 @@ extern const BehaviorScript bhvEndBirds1[]; ++ extern const BehaviorScript bhvEndBirds2[]; ++ extern const BehaviorScript bhvIntroScene[]; ++ extern const BehaviorScript bhvUnusedFakeStar[]; +++extern const BehaviorScript bhvReticle[]; +++extern const BehaviorScript bhvEmeraldCircle[]; ++ ++ #endif // BEHAVIOR_DATA_H +diff --git a/include/config.h b/include/config.h +index 211a086..d1eb721 100644 +--- a/include/config.h ++++ b/include/config.h +@@ -30,9 +30,9 @@ + // Border Height Define for NTSC Versions + #ifdef TARGET_N64 + #ifndef VERSION_EU +-#define BORDER_HEIGHT 8 ++#define BORDER_HEIGHT 0 + #else +-#define BORDER_HEIGHT 1 ++#define BORDER_HEIGHT 0 + #endif + #else + // What's the point of having a border? +diff --git a/include/config.h.rej b/include/config.h.rej +new file mode 100644 +index 0000000..5740aaa +--- /dev/null ++++ b/include/config.h.rej +@@ -0,0 +1,13 @@ ++diff a/include/config.h b/include/config.h (rejected hunks) ++@@ -30,9 +30,9 @@ ++ // Border Height Define for NTSC Versions ++ #ifdef TARGET_N64 ++ #ifndef VERSION_EU ++-#define BORDER_HEIGHT 8 +++#define BORDER_HEIGHT 0 ++ #else ++-#define BORDER_HEIGHT 1 +++#define BORDER_HEIGHT 0 ++ #endif ++ #else ++ // What's the point of having a border? +diff --git a/include/mario_animation_ids.h b/include/mario_animation_ids.h +index 1d22d3d..a8b6b0d 100644 +--- a/include/mario_animation_ids.h ++++ b/include/mario_animation_ids.h +@@ -61,7 +61,7 @@ enum MarioAnimID + /* 0x35 */ MARIO_ANIM_HANG_ON_CEILING, + /* 0x36 */ MARIO_ANIM_PUT_CAP_ON, + /* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, +- /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused ++ /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused SHADOW SKATE + /* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND, + /* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING, + /* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, +diff --git a/include/mario_animation_ids.h.rej b/include/mario_animation_ids.h.rej +new file mode 100644 +index 0000000..5e45fbd +--- /dev/null ++++ b/include/mario_animation_ids.h.rej +@@ -0,0 +1,10 @@ ++diff a/include/mario_animation_ids.h b/include/mario_animation_ids.h (rejected hunks) ++@@ -61,7 +61,7 @@ enum MarioAnimID ++ /* 0x35 */ MARIO_ANIM_HANG_ON_CEILING, ++ /* 0x36 */ MARIO_ANIM_PUT_CAP_ON, ++ /* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, ++- /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused +++ /* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused SHADOW SKATE ++ /* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND, ++ /* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING, ++ /* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, +diff --git a/include/model_ids.h b/include/model_ids.h +index 1cd0a25..8d84c4d 100644 +--- a/include/model_ids.h ++++ b/include/model_ids.h +@@ -23,8 +23,20 @@ + + /* Global models that are loaded for every level */ + +-#define MODEL_MARIO 0x01 // mario_geo +-#define MODEL_LUIGI 0x02 // unused ++#define MODEL_MARIO 0x01 // mario_geo ++#define MODEL_LUIGI 0x02 // unused ++#define MODEL_WATER_BOMB 0xE2 // water_bomb_geo ++#define MODEL_WATER_BOMB_SHADOW 0xE3 // water_bomb_shadow_geo ++#define MODEL_SONIC_BALL 0xE4 // sonic_ball_geo ++#define MODEL_SONIC_TRAIL 0xE5 // sonic_trail_geo ++#define MODEL_SUPER_SONIC 0xE6 // sonic_trail_geo ++#define MODEL_SUPER_BALL 0xE7 // sonic_trail_geo ++#define MODEL_SUPER_TRAIL 0xE8 // sonic_trail_geo ++#define MODEL_RETICLE 0xE9 // sonic_trail_geo ++#define MODEL_EMERALD 0xF0 // sonic_trail_geo ++#define MODEL_EMERALD_CIRCLE 0xF1 // sonic_trail_geo ++ ++ + + /* Various static level geometry, the geo layout differs but terrain object presets treat them the same.*/ + +@@ -347,8 +359,7 @@ + #define MODEL_BULLY_BOSS 0x57 // bully_boss_geo + + // group 3 +-#define MODEL_WATER_BOMB 0x54 // water_bomb_geo +-#define MODEL_WATER_BOMB_SHADOW 0x55 // water_bomb_shadow_geo ++ + #define MODEL_KING_BOBOMB 0x56 // king_bobomb_geo + + // group 4 +@@ -492,7 +503,7 @@ + // find me + // find me + // find me +-#define MODEL_BURN_SMOKE_UNUSED 0x9C // burn_smoke_geo - unused & duplicated ++ + // find me + #define MODEL_WHITE_PARTICLE_DL 0x9E // white_particle_dl + #define MODEL_SAND_DUST 0x9F // sand_seg3_dl_0302BCD0 +diff --git a/include/model_ids.h.rej b/include/model_ids.h.rej +new file mode 100644 +index 0000000..f9d35e0 +--- /dev/null ++++ b/include/model_ids.h.rej +@@ -0,0 +1,43 @@ ++diff a/include/model_ids.h b/include/model_ids.h (rejected hunks) ++@@ -23,8 +23,20 @@ ++ ++ /* Global models that are loaded for every level */ ++ ++-#define MODEL_MARIO 0x01 // mario_geo ++-#define MODEL_LUIGI 0x02 // unused +++#define MODEL_MARIO 0x01 // mario_geo +++#define MODEL_LUIGI 0x02 // unused +++#define MODEL_WATER_BOMB 0xE2 // water_bomb_geo +++#define MODEL_WATER_BOMB_SHADOW 0xE3 // water_bomb_shadow_geo +++#define MODEL_SONIC_BALL 0xE4 // sonic_ball_geo +++#define MODEL_SONIC_TRAIL 0xE5 // sonic_trail_geo +++#define MODEL_SUPER_SONIC 0xE6 // sonic_trail_geo +++#define MODEL_SUPER_BALL 0xE7 // sonic_trail_geo +++#define MODEL_SUPER_TRAIL 0xE8 // sonic_trail_geo +++#define MODEL_RETICLE 0xE9 // sonic_trail_geo +++#define MODEL_EMERALD 0xF0 // sonic_trail_geo +++#define MODEL_EMERALD_CIRCLE 0xF1 // sonic_trail_geo +++ +++ ++ ++ /* Various static level geometry, the geo layout differs but terrain object presets treat them the same.*/ ++ ++@@ -347,8 +359,7 @@ ++ #define MODEL_BULLY_BOSS 0x57 // bully_boss_geo ++ ++ // group 3 ++-#define MODEL_WATER_BOMB 0x54 // water_bomb_geo ++-#define MODEL_WATER_BOMB_SHADOW 0x55 // water_bomb_shadow_geo +++ ++ #define MODEL_KING_BOBOMB 0x56 // king_bobomb_geo ++ ++ // group 4 ++@@ -492,7 +503,7 @@ ++ // find me ++ // find me ++ // find me ++-#define MODEL_BURN_SMOKE_UNUSED 0x9C // burn_smoke_geo - unused & duplicated +++ ++ // find me ++ #define MODEL_WHITE_PARTICLE_DL 0x9E // white_particle_dl ++ #define MODEL_SAND_DUST 0x9F // sand_seg3_dl_0302BCD0 +diff --git a/include/object_constants.h b/include/object_constants.h +index 95f5ce5..b45df55 100644 +--- a/include/object_constants.h ++++ b/include/object_constants.h +@@ -118,6 +118,10 @@ + #define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000 + #define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000 + #define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000 ++#define ACTIVE_PARTICLE_SONIC_TRAIL (1 << 20) // 0x00120000 ++#define ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING (1 << 21) // 0x00120000 ++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) ++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) + + /* oAction */ + #define OBJ_ACT_LAVA_DEATH 100 +@@ -680,7 +684,7 @@ + #define UKIKI_ANIM_STATE_EYE_CLOSED 1 + #define UKIKI_ANIM_STATE_CAP_ON 2 + +- /* oUkikiHasCap */ ++ /* oUkikiHasHat */ + #define UKIKI_CAP_ON 1 + + /* Ukiki Cage Star */ +diff --git a/include/object_constants.h.rej b/include/object_constants.h.rej +new file mode 100644 +index 0000000..7d57ab6 +--- /dev/null ++++ b/include/object_constants.h.rej +@@ -0,0 +1,21 @@ ++diff a/include/object_constants.h b/include/object_constants.h (rejected hunks) ++@@ -118,6 +118,10 @@ ++ #define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000 ++ #define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000 ++ #define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000 +++#define ACTIVE_PARTICLE_SONIC_TRAIL (1 << 20) // 0x00120000 +++#define ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING (1 << 21) // 0x00120000 +++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) +++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) ++ ++ /* oAction */ ++ #define OBJ_ACT_LAVA_DEATH 100 ++@@ -680,7 +684,7 @@ ++ #define UKIKI_ANIM_STATE_EYE_CLOSED 1 ++ #define UKIKI_ANIM_STATE_CAP_ON 2 ++ ++- /* oUkikiHasCap */ +++ /* oUkikiHasHat */ ++ #define UKIKI_CAP_ON 1 ++ ++ /* Ukiki Cage Star */ +diff --git a/include/object_fields.h b/include/object_fields.h +index 89939cc..858d4d3 100644 +--- a/include/object_fields.h ++++ b/include/object_fields.h +@@ -164,6 +164,8 @@ + #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22) + #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22) + #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22) ++#define /*0x110*/ oSuperTimer OBJECT_FIELD_S32(0x1E) ++ + + /* 1-Up Hidden */ + #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B) +@@ -1157,4 +1159,5 @@ + #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D) + #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E) + ++ + #endif // OBJECT_FIELDS_H +diff --git a/include/object_fields.h.rej b/include/object_fields.h.rej +new file mode 100644 +index 0000000..bec6cea +--- /dev/null ++++ b/include/object_fields.h.rej +@@ -0,0 +1,16 @@ ++diff a/include/object_fields.h b/include/object_fields.h (rejected hunks) ++@@ -164,6 +164,8 @@ ++ #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22) ++ #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22) ++ #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22) +++#define /*0x110*/ oSuperTimer OBJECT_FIELD_S32(0x1E) +++ ++ ++ /* 1-Up Hidden */ ++ #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B) ++@@ -1157,4 +1159,5 @@ ++ #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D) ++ #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E) ++ +++ ++ #endif // OBJECT_FIELDS_H +diff --git a/include/segments.h b/include/segments.h +index a8c1bf9..0faa6dc 100644 +--- a/include/segments.h ++++ b/include/segments.h +@@ -11,6 +11,7 @@ + * linker script syntax. + */ + ++#define USE_EXT_RAM + #ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */ + + #define SEG_POOL_START 0x8005C000 +diff --git a/include/segments.h.rej b/include/segments.h.rej +new file mode 100644 +index 0000000..c67ab7e +--- /dev/null ++++ b/include/segments.h.rej +@@ -0,0 +1,9 @@ ++diff a/include/segments.h b/include/segments.h (rejected hunks) ++@@ -11,6 +11,7 @@ ++ * linker script syntax. ++ */ ++ +++#define USE_EXT_RAM ++ #ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */ ++ ++ #define SEG_POOL_START 0x8005C000 +diff --git a/include/seq_ids.h b/include/seq_ids.h +index 0aec73d..f53b31e 100644 +--- a/include/seq_ids.h ++++ b/include/seq_ids.h +@@ -42,6 +42,9 @@ enum SeqId { + SEQ_EVENT_CUTSCENE_ENDING, // 0x20 + SEQ_MENU_FILE_SELECT, // 0x21 + SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP) ++ SEQ_DROWN, // 0x23 ++SEQ_SUPER, ++SEQ_EMERALD, + SEQ_COUNT + }; + +diff --git a/include/seq_ids.h.rej b/include/seq_ids.h.rej +new file mode 100644 +index 0000000..92660de +--- /dev/null ++++ b/include/seq_ids.h.rej +@@ -0,0 +1,11 @@ ++diff a/include/seq_ids.h b/include/seq_ids.h (rejected hunks) ++@@ -42,6 +42,9 @@ enum SeqId { ++ SEQ_EVENT_CUTSCENE_ENDING, // 0x20 ++ SEQ_MENU_FILE_SELECT, // 0x21 ++ SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP) +++ SEQ_DROWN, // 0x23 +++SEQ_SUPER, +++SEQ_EMERALD, ++ SEQ_COUNT ++ }; ++ +diff --git a/include/sm64.h b/include/sm64.h +index 34bfec2..9b0befd 100644 +--- a/include/sm64.h ++++ b/include/sm64.h +@@ -108,6 +108,10 @@ + #define PARTICLE_BREATH /* 0x00020000 */ (1 << 17) + #define PARTICLE_TRIANGLE /* 0x00040000 */ (1 << 18) + #define PARTICLE_19 /* 0x00080000 */ (1 << 19) ++#define PARTICLE_SONIC_TRAIL /* 0x00120000 */ (1 << 20) ++#define PARTICLE_SONIC_TRAIL_ROLLING /* 0x00160000 */ (1 << 21) ++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) ++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) + + #define MODEL_STATE_NOISE_ALPHA 0x180 + #define MODEL_STATE_METAL 0x200 +@@ -121,6 +125,8 @@ + #define MARIO_METAL_SHOCK 0x00000040 + #define MARIO_TELEPORTING 0x00000080 + #define MARIO_UNKNOWN_08 0x00000100 ++#define MARIO_IS_SUPER 0x00000200 ++#define MARIO_IS_SHADOW 0x00000400 + #define MARIO_UNKNOWN_13 0x00002000 + #define MARIO_ACTION_SOUND_PLAYED 0x00010000 + #define MARIO_MARIO_SOUND_PLAYED 0x00020000 +@@ -132,8 +138,7 @@ + #define MARIO_UNKNOWN_30 0x40000000 + #define MARIO_UNKNOWN_31 0x80000000 + +-#define MARIO_SPECIAL_CAPS (MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP) +-#define MARIO_CAPS (MARIO_NORMAL_CAP | MARIO_SPECIAL_CAPS) ++#define MARIO_CAP_FLAGS 0x0000001F + + #define ACT_ID_MASK 0x000001FF + +@@ -184,7 +189,6 @@ + #define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_IN_QUICKSAND 0x0002020D // (0x00D | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) +-#define ACT_UNKNOWN_0002020E 0x0002020E // (0x00E | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) + #define ACT_CROUCHING 0x0C008220 // (0x020 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_START_CROUCHING 0x0C008221 // (0x021 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) + #define ACT_STOP_CROUCHING 0x0C008222 // (0x022 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) +@@ -298,6 +302,7 @@ + #define ACT_GETTING_BLOWN 0x010208B8 // (0x0B8 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) + #define ACT_THROWN_FORWARD 0x010208BD // (0x0BD | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) + #define ACT_THROWN_BACKWARD 0x010208BE // (0x0BE | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) ++#define ACT_TRANSFORM 0x010208BF + + // group 0x0C0: submerged actions + #define ACT_WATER_IDLE 0x380022C0 // (0x0C0 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT) +@@ -416,6 +421,8 @@ + #define ACT_PICKING_UP_BOWSER 0x00000390 // (0x190 | ACT_FLAG_STATIONARY) + #define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY) + #define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY) ++#define ACT_SPINDASH 0x00000393 ++ + + /* + this input mask is unused by the controller, +diff --git a/include/sm64.h.rej b/include/sm64.h.rej +new file mode 100644 +index 0000000..6bf029d +--- /dev/null ++++ b/include/sm64.h.rej +@@ -0,0 +1,56 @@ ++diff a/include/sm64.h b/include/sm64.h (rejected hunks) ++@@ -108,6 +108,10 @@ ++ #define PARTICLE_BREATH /* 0x00020000 */ (1 << 17) ++ #define PARTICLE_TRIANGLE /* 0x00040000 */ (1 << 18) ++ #define PARTICLE_19 /* 0x00080000 */ (1 << 19) +++#define PARTICLE_SONIC_TRAIL /* 0x00120000 */ (1 << 20) +++#define PARTICLE_SONIC_TRAIL_ROLLING /* 0x00160000 */ (1 << 21) +++#define PARTICLE_SUPER_TRAIL /* 0x00120000 */ (1 << 22) +++#define PARTICLE_SUPER_TRAIL_ROLLING /* 0x00160000 */ (1 << 23) ++ ++ #define MODEL_STATE_NOISE_ALPHA 0x180 ++ #define MODEL_STATE_METAL 0x200 ++@@ -121,6 +125,8 @@ ++ #define MARIO_METAL_SHOCK 0x00000040 ++ #define MARIO_TELEPORTING 0x00000080 ++ #define MARIO_UNKNOWN_08 0x00000100 +++#define MARIO_IS_SUPER 0x00000200 +++#define MARIO_IS_SHADOW 0x00000400 ++ #define MARIO_UNKNOWN_13 0x00002000 ++ #define MARIO_ACTION_SOUND_PLAYED 0x00010000 ++ #define MARIO_MARIO_SOUND_PLAYED 0x00020000 ++@@ -132,8 +138,7 @@ ++ #define MARIO_UNKNOWN_30 0x40000000 ++ #define MARIO_UNKNOWN_31 0x80000000 ++ ++-#define MARIO_SPECIAL_CAPS (MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP) ++-#define MARIO_CAPS (MARIO_NORMAL_CAP | MARIO_SPECIAL_CAPS) +++#define MARIO_CAP_FLAGS 0x0000001F ++ ++ #define ACT_ID_MASK 0x000001FF ++ ++@@ -184,7 +189,6 @@ ++ #define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) ++ #define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) ++ #define ACT_IN_QUICKSAND 0x0002020D // (0x00D | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) ++-#define ACT_UNKNOWN_0002020E 0x0002020E // (0x00E | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE) ++ #define ACT_CROUCHING 0x0C008220 // (0x020 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) ++ #define ACT_START_CROUCHING 0x0C008221 // (0x021 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) ++ #define ACT_STOP_CROUCHING 0x0C008222 // (0x022 | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) ++@@ -298,6 +302,7 @@ ++ #define ACT_GETTING_BLOWN 0x010208B8 // (0x0B8 | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) ++ #define ACT_THROWN_FORWARD 0x010208BD // (0x0BD | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) ++ #define ACT_THROWN_BACKWARD 0x010208BE // (0x0BE | ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) +++#define ACT_TRANSFORM 0x010208BF ++ ++ // group 0x0C0: submerged actions ++ #define ACT_WATER_IDLE 0x380022C0 // (0x0C0 | ACT_FLAG_STATIONARY | ACT_FLAG_SWIMMING | ACT_FLAG_PAUSE_EXIT | ACT_FLAG_SWIMMING_OR_FLYING | ACT_FLAG_WATER_OR_TEXT) ++@@ -416,6 +421,8 @@ ++ #define ACT_PICKING_UP_BOWSER 0x00000390 // (0x190 | ACT_FLAG_STATIONARY) ++ #define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY) ++ #define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY) +++#define ACT_SPINDASH 0x00000393 +++ ++ ++ /* ++ this input mask is unused by the controller, +diff --git a/include/sounds.h b/include/sounds.h +index a734a10..80ba365 100644 +--- a/include/sounds.h ++++ b/include/sounds.h +@@ -216,7 +216,7 @@ + #define SOUND_MARIO_PUNCH_YAH /* 0x241E8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_PUNCH_HOO /* 0x241F8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_MAMA_MIA /* 0x24208080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x20, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) +-#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, 0) // unused ++#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_GROUND_POUND_WAH /* 0x24228080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x22, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_DROWNING /* 0x2423F080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x23, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + #define SOUND_MARIO_PUNCH_WAH /* 0x24248080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x24, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) +@@ -264,6 +264,7 @@ + #define SOUND_GENERAL_WALL_EXPLOSION /* 0x300F0080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0F, 0x00, SOUND_DISCRETE) + #define SOUND_GENERAL_COIN /* 0x38118080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x11, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_COIN_WATER /* 0x38128080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x12, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified ++#define SOUND_GENERAL_RINGLOSS SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x15, 0x15, SOUND_DISCRETE) //coinwater duplicate + #define SOUND_GENERAL_SHORT_STAR /* 0x30160090 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x16, 0x00, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_BIG_CLOCK /* 0x30170080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x17, 0x00, SOUND_DISCRETE) // unverified + #define SOUND_GENERAL_LOUD_POUND /* 0x30180000 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x18, 0x00, 0) // _TERRAIN?, unverified, unused +diff --git a/include/sounds.h.rej b/include/sounds.h.rej +new file mode 100644 +index 0000000..25ae6b7 +--- /dev/null ++++ b/include/sounds.h.rej +@@ -0,0 +1,18 @@ ++diff a/include/sounds.h b/include/sounds.h (rejected hunks) ++@@ -216,7 +216,7 @@ ++ #define SOUND_MARIO_PUNCH_YAH /* 0x241E8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++ #define SOUND_MARIO_PUNCH_HOO /* 0x241F8080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x1F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++ #define SOUND_MARIO_MAMA_MIA /* 0x24208080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x20, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++-#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, 0) // unused +++#define SOUND_MARIO_OKEY_DOKEY /* 0x20210000 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x21, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++ #define SOUND_MARIO_GROUND_POUND_WAH /* 0x24228080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x22, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++ #define SOUND_MARIO_DROWNING /* 0x2423F080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x23, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++ #define SOUND_MARIO_PUNCH_WAH /* 0x24248080 */ SOUND_ARG_LOAD(SOUND_BANK_VOICE, 0x24, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) ++@@ -264,6 +264,7 @@ ++ #define SOUND_GENERAL_WALL_EXPLOSION /* 0x300F0080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0F, 0x00, SOUND_DISCRETE) ++ #define SOUND_GENERAL_COIN /* 0x38118080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x11, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified ++ #define SOUND_GENERAL_COIN_WATER /* 0x38128080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x12, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) // unverified +++#define SOUND_GENERAL_RINGLOSS SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x15, 0x15, SOUND_DISCRETE) //coinwater duplicate ++ #define SOUND_GENERAL_SHORT_STAR /* 0x30160090 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x16, 0x00, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) // unverified ++ #define SOUND_GENERAL_BIG_CLOCK /* 0x30170080 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x17, 0x00, SOUND_DISCRETE) // unverified ++ #define SOUND_GENERAL_LOUD_POUND /* 0x30180000 */ SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x18, 0x00, 0) // _TERRAIN?, unverified, unused +diff --git a/include/text_strings.h.in b/include/text_strings.h.in +index 749179b..690592b 100644 +--- a/include/text_strings.h.in ++++ b/include/text_strings.h.in +@@ -3,6 +3,10 @@ + + #include "text_menu_strings.h" + ++#ifdef EXT_OPTIONS_MENU ++#include "text_options_strings.h" ++#endif ++ + /** + * Global Symbols + */ +@@ -23,6 +27,8 @@ + + // Ingame Menu + #define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses ++#define TEXT_HEALTH_MARIO _("[B] Health: Mario") ++#define TEXT_HEALTH_SONIC _("[B] Health: Sonic") + #define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses + + #if defined(VERSION_JP) || defined(VERSION_SH) +@@ -90,6 +96,7 @@ + #define TEXT_COURSE _("コース") + #define TEXT_MYSCORE _("マイスコア") + #define TEXT_CONTINUE _("つづけて マリオする?") ++#define TEXT_EXIT_GAME _("ゲームをしゅうりょうする") + #define TEXT_EXIT_COURSE _("コースからでる?") + #define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ") + +@@ -107,6 +114,7 @@ + // Save Options + #define TEXT_SAVE_AND_CONTINUE _("セーブしてつづける?") + #define TEXT_SAVE_AND_QUIT _("セーブしておわる?") ++#define TEXT_SAVE_EXIT_GAME _("ゲームをやめる?") + #define TEXT_CONTINUE_WITHOUT_SAVING _("セーブしないでつづける?") + + /** +@@ -136,10 +144,15 @@ + #define TEXT_COPY_FILE _("COPY FILE") + #define TEXT_ERASE_FILE _("ERASE FILE") + #define TEXT_SOUND_SELECT _("SOUND SELECT") +-#define TEXT_FILE_MARIO_A _("MARIO A") +-#define TEXT_FILE_MARIO_B _("MARIO B") +-#define TEXT_FILE_MARIO_C _("MARIO C") +-#define TEXT_FILE_MARIO_D _("MARIO D") ++#define TEXT_FILE_MARIO_A _("SONIC A") ++#define TEXT_FILE_MARIO_B _("SONIC B") ++#define TEXT_FILE_MARIO_C _("SONIC C") ++#define TEXT_FILE_MARIO_D _("SONIC D") ++ ++#define TEXT_MARIO_HEALTH_FILE _("Z HEALTH MARIO") ++#define TEXT_SONIC_HEALTH_FILE _("Z HEALTH SONIC") ++ ++ + + // Menu Options + #define TEXT_SCORE _("SCORE") +@@ -179,7 +192,7 @@ + #define TEXT_SURE _("SURE?") + #define TEXT_YES _("YES") + #define TEXT_NO _("NO") +-#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED") ++#define TEXT_FILE_MARIO_A_JUST_ERASED _("SONIC A JUST ERASED") + + /** + * Menus Text (Pause, Course Completed) +@@ -189,12 +202,13 @@ + #define TEXT_MYSCORE _("MYSCORE") + #define TEXT_CONTINUE _("CONTINUE") + #define TEXT_EXIT_COURSE _("EXIT COURSE") ++#define TEXT_EXIT_GAME _("EXIT GAME") + #ifndef VERSION_EU // "R" text is different in EU + #define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R") + #endif + + // Camera Options +-#define TEXT_LAKITU_MARIO _("LAKITU + MARIO") ++#define TEXT_LAKITU_MARIO _("LAKITU + SONIC") + #define TEXT_LAKITU_STOP _("LAKITU + STOP") + #define TEXT_NORMAL_UPCLOSE __("(NORMAL)(UP-CLOSE)") + #define TEXT_NORMAL_FIXED __("(NORMAL)(FIXED)") +@@ -207,20 +221,21 @@ + // Save Options + #define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE") + #define TEXT_SAVE_AND_QUIT _("SAVE & QUIT") ++#define TEXT_SAVE_EXIT_GAME _("SAVE & EXIT GAME") + #define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE") + + /** + * Ending Peach cutscene text. + */ +-#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!") ++#define TEXT_FILE_MARIO_EXCLAMATION _("Sonic!") + #define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...") + #define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!") +-#define TEXT_THANK_YOU_MARIO __("Thank you, Mario!") ++#define TEXT_THANK_YOU_MARIO __("Thank you, Sonic!") + #define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...") + #define TEXT_LISTEN_EVERYBODY _("Listen, everybody,") + #define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...") +-#define TEXT_FOR_MARIO _("...for Mario...") +-#define TEXT_FILE_MARIO_QUESTION _("Mario!") ++#define TEXT_FOR_MARIO _("...for Sonic...") ++#define TEXT_FILE_MARIO_QUESTION _("Sonic!") + + #endif + +@@ -333,12 +348,14 @@ + #define TEXT_MY_SCORE_FR _("MON SCORE") + #define TEXT_CONTINUE_FR _("CONTINUER") + #define TEXT_EXIT_COURSE_FR _("QUITTER NIVEAU") ++#define TEXT_EXIT_GAME_FR _("QUITTER JEU") + #define TEXT_CAMERA_ANGLE_R_FR _("RÉGLAGE CAMÉRA AVEC [R]") + // German + #define TEXT_COURSE_DE _("KURS") + #define TEXT_MY_SCORE_DE _("LEISTUNG") + #define TEXT_CONTINUE_DE _("WEITER") + #define TEXT_EXIT_COURSE_DE _("KURS VERLASSEN") ++#define TEXT_EXIT_GAME_DE _("SPIEL VERLASSEN") + #define TEXT_CAMERA_ANGLE_R_DE _("KAMERA MIT [R] VERSTELLEN") + + // Camera Options +@@ -361,10 +378,12 @@ + // French + #define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER") + #define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER") ++#define TEXT_SAVE_EXIT_GAME_FR _("SAUVEGARDER & QUITTER JEU") + #define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER") + // German + #define TEXT_SAVE_AND_CONTINUE_DE _("SPEICHERN & WEITER") + #define TEXT_SAVE_AND_QUIT_DE _("SPEICHERN & ENDE") ++#define TEXT_SAVE_EXIT_GAME_DE _("SPEICHERN & SPIEL VERLASSEN") + #define TEXT_CONTINUE_WITHOUT_SAVING_DE _("WEITER OHNE ZU SPEICHERN") + + /** +diff --git a/include/text_strings.h.in.rej b/include/text_strings.h.in.rej +new file mode 100644 +index 0000000..ac4423f +--- /dev/null ++++ b/include/text_strings.h.in.rej +@@ -0,0 +1,135 @@ ++diff a/include/text_strings.h.in b/include/text_strings.h.in (rejected hunks) ++@@ -3,6 +3,10 @@ ++ ++ #include "text_menu_strings.h" ++ +++#ifdef EXT_OPTIONS_MENU +++#include "text_options_strings.h" +++#endif +++ ++ /** ++ * Global Symbols ++ */ ++@@ -23,6 +27,8 @@ ++ ++ // Ingame Menu ++ #define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses +++#define TEXT_HEALTH_MARIO _("[B] Health: Mario") +++#define TEXT_HEALTH_SONIC _("[B] Health: Sonic") ++ #define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++@@ -90,6 +96,7 @@ ++ #define TEXT_COURSE _("コース") ++ #define TEXT_MYSCORE _("マイスコア") ++ #define TEXT_CONTINUE _("つづけて マリオする?") +++#define TEXT_EXIT_GAME _("ゲームをしゅうりょうする") ++ #define TEXT_EXIT_COURSE _("コースからでる?") ++ #define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ") ++ ++@@ -107,6 +114,7 @@ ++ // Save Options ++ #define TEXT_SAVE_AND_CONTINUE _("セーブしてつづける?") ++ #define TEXT_SAVE_AND_QUIT _("セーブしておわる?") +++#define TEXT_SAVE_EXIT_GAME _("ゲームをやめる?") ++ #define TEXT_CONTINUE_WITHOUT_SAVING _("セーブしないでつづける?") ++ ++ /** ++@@ -136,10 +144,15 @@ ++ #define TEXT_COPY_FILE _("COPY FILE") ++ #define TEXT_ERASE_FILE _("ERASE FILE") ++ #define TEXT_SOUND_SELECT _("SOUND SELECT") ++-#define TEXT_FILE_MARIO_A _("MARIO A") ++-#define TEXT_FILE_MARIO_B _("MARIO B") ++-#define TEXT_FILE_MARIO_C _("MARIO C") ++-#define TEXT_FILE_MARIO_D _("MARIO D") +++#define TEXT_FILE_MARIO_A _("SONIC A") +++#define TEXT_FILE_MARIO_B _("SONIC B") +++#define TEXT_FILE_MARIO_C _("SONIC C") +++#define TEXT_FILE_MARIO_D _("SONIC D") +++ +++#define TEXT_MARIO_HEALTH_FILE _("Z HEALTH MARIO") +++#define TEXT_SONIC_HEALTH_FILE _("Z HEALTH SONIC") +++ +++ ++ ++ // Menu Options ++ #define TEXT_SCORE _("SCORE") ++@@ -179,7 +192,7 @@ ++ #define TEXT_SURE _("SURE?") ++ #define TEXT_YES _("YES") ++ #define TEXT_NO _("NO") ++-#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED") +++#define TEXT_FILE_MARIO_A_JUST_ERASED _("SONIC A JUST ERASED") ++ ++ /** ++ * Menus Text (Pause, Course Completed) ++@@ -189,12 +202,13 @@ ++ #define TEXT_MYSCORE _("MYSCORE") ++ #define TEXT_CONTINUE _("CONTINUE") ++ #define TEXT_EXIT_COURSE _("EXIT COURSE") +++#define TEXT_EXIT_GAME _("EXIT GAME") ++ #ifndef VERSION_EU // "R" text is different in EU ++ #define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R") ++ #endif ++ ++ // Camera Options ++-#define TEXT_LAKITU_MARIO _("LAKITU + MARIO") +++#define TEXT_LAKITU_MARIO _("LAKITU + SONIC") ++ #define TEXT_LAKITU_STOP _("LAKITU + STOP") ++ #define TEXT_NORMAL_UPCLOSE __("(NORMAL)(UP-CLOSE)") ++ #define TEXT_NORMAL_FIXED __("(NORMAL)(FIXED)") ++@@ -207,20 +221,21 @@ ++ // Save Options ++ #define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE") ++ #define TEXT_SAVE_AND_QUIT _("SAVE & QUIT") +++#define TEXT_SAVE_EXIT_GAME _("SAVE & EXIT GAME") ++ #define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE") ++ ++ /** ++ * Ending Peach cutscene text. ++ */ ++-#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!") +++#define TEXT_FILE_MARIO_EXCLAMATION _("Sonic!") ++ #define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...") ++ #define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!") ++-#define TEXT_THANK_YOU_MARIO __("Thank you, Mario!") +++#define TEXT_THANK_YOU_MARIO __("Thank you, Sonic!") ++ #define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...") ++ #define TEXT_LISTEN_EVERYBODY _("Listen, everybody,") ++ #define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...") ++-#define TEXT_FOR_MARIO _("...for Mario...") ++-#define TEXT_FILE_MARIO_QUESTION _("Mario!") +++#define TEXT_FOR_MARIO _("...for Sonic...") +++#define TEXT_FILE_MARIO_QUESTION _("Sonic!") ++ ++ #endif ++ ++@@ -333,12 +348,14 @@ ++ #define TEXT_MY_SCORE_FR _("MON SCORE") ++ #define TEXT_CONTINUE_FR _("CONTINUER") ++ #define TEXT_EXIT_COURSE_FR _("QUITTER NIVEAU") +++#define TEXT_EXIT_GAME_FR _("QUITTER JEU") ++ #define TEXT_CAMERA_ANGLE_R_FR _("RÉGLAGE CAMÉRA AVEC [R]") ++ // German ++ #define TEXT_COURSE_DE _("KURS") ++ #define TEXT_MY_SCORE_DE _("LEISTUNG") ++ #define TEXT_CONTINUE_DE _("WEITER") ++ #define TEXT_EXIT_COURSE_DE _("KURS VERLASSEN") +++#define TEXT_EXIT_GAME_DE _("SPIEL VERLASSEN") ++ #define TEXT_CAMERA_ANGLE_R_DE _("KAMERA MIT [R] VERSTELLEN") ++ ++ // Camera Options ++@@ -361,10 +378,12 @@ ++ // French ++ #define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER") ++ #define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER") +++#define TEXT_SAVE_EXIT_GAME_FR _("SAUVEGARDER & QUITTER JEU") ++ #define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER") ++ // German ++ #define TEXT_SAVE_AND_CONTINUE_DE _("SPEICHERN & WEITER") ++ #define TEXT_SAVE_AND_QUIT_DE _("SPEICHERN & ENDE") +++#define TEXT_SAVE_EXIT_GAME_DE _("SPEICHERN & SPIEL VERLASSEN") ++ #define TEXT_CONTINUE_WITHOUT_SAVING_DE _("WEITER OHNE ZU SPEICHERN") ++ ++ /** +diff --git a/include/types.h b/include/types.h +index c6e801e..dbdf150 100644 +--- a/include/types.h ++++ b/include/types.h +@@ -109,7 +109,7 @@ struct GraphNode + /*0x10*/ struct GraphNode *children; + }; + +-struct AnimInfo ++struct AnimInfo + { + /*0x00 0x38*/ s16 animID; + /*0x02 0x3A*/ s16 animYTrans; +@@ -154,6 +154,7 @@ struct Object + /*0x074*/ s16 activeFlags; + /*0x076*/ s16 numCollidedObjs; + /*0x078*/ struct Object *collidedObjs[4]; ++ //struct Object* ReticleTarget; + /*0x088*/ + union + { +@@ -284,6 +285,9 @@ struct MarioAnimation + + struct MarioState + { ++ ++ ++ + /*0x00*/ u16 unk00; + /*0x02*/ u16 input; + /*0x04*/ u32 flags; +@@ -307,6 +311,7 @@ struct MarioState + /*0x3A*/ s16 twirlYaw; + /*0x3C*/ Vec3f pos; + /*0x48*/ Vec3f vel; ++ f32 isSuper; + /*0x54*/ f32 forwardVel; + /*0x58*/ f32 slideVelX; + /*0x5C*/ f32 slideVelZ; +@@ -318,6 +323,7 @@ struct MarioState + /*0x74*/ s16 floorAngle; + /*0x76*/ s16 waterLevel; + /*0x78*/ struct Object *interactObj; ++ struct Object* homingObj; + /*0x7C*/ struct Object *heldObj; + /*0x80*/ struct Object *usedObj; + /*0x84*/ struct Object *riddenObj; +@@ -333,9 +339,14 @@ struct MarioState + /*0xAA*/ s16 numStars; + /*0xAC*/ s8 numKeys; // Unused key mechanic + /*0xAD*/ s8 numLives; ++ u8 coinstartotal; ++ s32 drownTimer; ++ s32 gasTimer; ++ s32 coinTimer; + /*0xAE*/ s16 health; + /*0xB0*/ s16 unkB0; + /*0xB2*/ u8 hurtCounter; ++ u8 hasEmerald; + /*0xB3*/ u8 healCounter; + /*0xB4*/ u8 squishTimer; + /*0xB5*/ u8 fadeWarpOpacity; +@@ -344,6 +355,7 @@ struct MarioState + /*0xBC*/ f32 peakHeight; + /*0xC0*/ f32 quicksandDepth; + /*0xC4*/ f32 unkC4; ++ + }; + + #endif // TYPES_H +diff --git a/include/types.h.rej b/include/types.h.rej +new file mode 100644 +index 0000000..0ef9d83 +--- /dev/null ++++ b/include/types.h.rej +@@ -0,0 +1,67 @@ ++diff a/include/types.h b/include/types.h (rejected hunks) ++@@ -109,7 +109,7 @@ struct GraphNode ++ /*0x10*/ struct GraphNode *children; ++ }; ++ ++-struct AnimInfo +++struct AnimInfo ++ { ++ /*0x00 0x38*/ s16 animID; ++ /*0x02 0x3A*/ s16 animYTrans; ++@@ -154,6 +154,7 @@ struct Object ++ /*0x074*/ s16 activeFlags; ++ /*0x076*/ s16 numCollidedObjs; ++ /*0x078*/ struct Object *collidedObjs[4]; +++ //struct Object* ReticleTarget; ++ /*0x088*/ ++ union ++ { ++@@ -284,6 +285,9 @@ struct MarioAnimation ++ ++ struct MarioState ++ { +++ +++ +++ ++ /*0x00*/ u16 unk00; ++ /*0x02*/ u16 input; ++ /*0x04*/ u32 flags; ++@@ -307,6 +311,7 @@ struct MarioState ++ /*0x3A*/ s16 twirlYaw; ++ /*0x3C*/ Vec3f pos; ++ /*0x48*/ Vec3f vel; +++ f32 isSuper; ++ /*0x54*/ f32 forwardVel; ++ /*0x58*/ f32 slideVelX; ++ /*0x5C*/ f32 slideVelZ; ++@@ -318,6 +323,7 @@ struct MarioState ++ /*0x74*/ s16 floorAngle; ++ /*0x76*/ s16 waterLevel; ++ /*0x78*/ struct Object *interactObj; +++ struct Object* homingObj; ++ /*0x7C*/ struct Object *heldObj; ++ /*0x80*/ struct Object *usedObj; ++ /*0x84*/ struct Object *riddenObj; ++@@ -333,9 +339,14 @@ struct MarioState ++ /*0xAA*/ s16 numStars; ++ /*0xAC*/ s8 numKeys; // Unused key mechanic ++ /*0xAD*/ s8 numLives; +++ u8 coinstartotal; +++ s32 drownTimer; +++ s32 gasTimer; +++ s32 coinTimer; ++ /*0xAE*/ s16 health; ++ /*0xB0*/ s16 unkB0; ++ /*0xB2*/ u8 hurtCounter; +++ u8 hasEmerald; ++ /*0xB3*/ u8 healCounter; ++ /*0xB4*/ u8 squishTimer; ++ /*0xB5*/ u8 fadeWarpOpacity; ++@@ -344,6 +355,7 @@ struct MarioState ++ /*0xBC*/ f32 peakHeight; ++ /*0xC0*/ f32 quicksandDepth; ++ /*0xC4*/ f32 unkC4; +++ ++ }; ++ ++ #endif // TYPES_H +diff --git a/levels/castle_grounds/area_1/collision.inc.c b/levels/castle_grounds/area_1/collision.inc.c +new file mode 100644 +index 0000000..d8ebd45 +--- /dev/null ++++ b/levels/castle_grounds/area_1/collision.inc.c +@@ -0,0 +1,363 @@ ++const Collision castle_grounds_area_1_collision[] = { ++ COL_INIT(), ++ COL_VERTEX_INIT(123), ++ COL_VERTEX(400, 100, -400), ++ COL_VERTEX(-400, 100, -400), ++ COL_VERTEX(-400, 100, 400), ++ COL_VERTEX(400, 100, 400), ++ COL_VERTEX(-400, -100, 400), ++ COL_VERTEX(400, -100, 400), ++ COL_VERTEX(617, 295, 788), ++ COL_VERTEX(-409, 295, 788), ++ COL_VERTEX(-400, -100, -400), ++ COL_VERTEX(400, -100, -400), ++ COL_VERTEX(-409, 552, 788), ++ COL_VERTEX(-142, 819, 1065), ++ COL_VERTEX(-142, 1075, 1065), ++ COL_VERTEX(617, 552, 788), ++ COL_VERTEX(883, 819, 1065), ++ COL_VERTEX(883, 819, 1374), ++ COL_VERTEX(-142, 819, 1374), ++ COL_VERTEX(883, 1075, 1065), ++ COL_VERTEX(-486, -14, -4725), ++ COL_VERTEX(-486, 93, -4725), ++ COL_VERTEX(-486, 93, -5753), ++ COL_VERTEX(-486, -14, -5753), ++ COL_VERTEX(542, 93, -5753), ++ COL_VERTEX(542, -14, -5753), ++ COL_VERTEX(542, 93, -4725), ++ COL_VERTEX(542, -14, -4725), ++ COL_VERTEX(1115, 1282, 1693), ++ COL_VERTEX(90, 1282, 1693), ++ COL_VERTEX(883, 1075, 1374), ++ COL_VERTEX(-142, 1075, 1374), ++ COL_VERTEX(1115, 1539, 1693), ++ COL_VERTEX(90, 1539, 1693), ++ COL_VERTEX(382, 1982, 1836), ++ COL_VERTEX(1407, 1982, 1836), ++ COL_VERTEX(379, 2517, 1794), ++ COL_VERTEX(1403, 2469, 1787), ++ COL_VERTEX(382, 1725, 1836), ++ COL_VERTEX(1407, 1725, 1836), ++ COL_VERTEX(1410, 2591, 2012), ++ COL_VERTEX(1391, 2766, 1148), ++ COL_VERTEX(1398, 2889, 1373), ++ COL_VERTEX(386, 2639, 2019), ++ COL_VERTEX(374, 2937, 1380), ++ COL_VERTEX(367, 2814, 1155), ++ COL_VERTEX(-3542, -774, 521), ++ COL_VERTEX(-3542, -450, 521), ++ COL_VERTEX(-3542, -450, -5020), ++ COL_VERTEX(-3542, -774, -5020), ++ COL_VERTEX(3598, -450, -5020), ++ COL_VERTEX(3598, -774, -5020), ++ COL_VERTEX(3598, -450, 521), ++ COL_VERTEX(3598, -774, 521), ++ COL_VERTEX(139, -450, 521), ++ COL_VERTEX(-2, -1601, 2129), ++ COL_VERTEX(3598, -1601, 2129), ++ COL_VERTEX(-3542, -1925, 2129), ++ COL_VERTEX(3598, -1925, 2129), ++ COL_VERTEX(3598, -4285, 3492), ++ COL_VERTEX(-3542, -4285, 3492), ++ COL_VERTEX(-3542, -1601, 2129), ++ COL_VERTEX(-3542, -3961, 3492), ++ COL_VERTEX(-69, -3961, 3492), ++ COL_VERTEX(3598, -3961, 3492), ++ COL_VERTEX(-3092, -651, -5000), ++ COL_VERTEX(-3092, -451, -5000), ++ COL_VERTEX(-3092, -451, -6456), ++ COL_VERTEX(-3092, -651, -6456), ++ COL_VERTEX(-2345, -451, -6456), ++ COL_VERTEX(-2157, -311, -6876), ++ COL_VERTEX(-2903, -311, -6876), ++ COL_VERTEX(-2345, -651, -6456), ++ COL_VERTEX(-2345, -451, -5000), ++ COL_VERTEX(-2345, -651, -5000), ++ COL_VERTEX(-1980, -26, -7182), ++ COL_VERTEX(-2726, -26, -7182), ++ COL_VERTEX(-2903, -511, -6876), ++ COL_VERTEX(-2157, -511, -6876), ++ COL_VERTEX(-1980, -226, -7182), ++ COL_VERTEX(-1769, 261, -7543), ++ COL_VERTEX(-1769, 261, -7343), ++ COL_VERTEX(-2726, -226, -7182), ++ COL_VERTEX(-2515, 261, -7543), ++ COL_VERTEX(-2319, 557, -7543), ++ COL_VERTEX(-1572, 557, -7543), ++ COL_VERTEX(-2515, 261, -7343), ++ COL_VERTEX(-2319, 557, -7343), ++ COL_VERTEX(-1572, 557, -7343), ++ COL_VERTEX(-1484, 970, -7145), ++ COL_VERTEX(-2230, 970, -7145), ++ COL_VERTEX(-1484, 970, -7345), ++ COL_VERTEX(-1484, 1325, -6839), ++ COL_VERTEX(-1484, 1125, -6839), ++ COL_VERTEX(-2230, 970, -7345), ++ COL_VERTEX(-2230, 1125, -6839), ++ COL_VERTEX(-1484, 1125, -6227), ++ COL_VERTEX(-2230, 1125, -6227), ++ COL_VERTEX(-2230, 1325, -6839), ++ COL_VERTEX(-1484, 1004, -5969), ++ COL_VERTEX(-2230, 1004, -5969), ++ COL_VERTEX(-2230, 1325, -6227), ++ COL_VERTEX(-1484, 1325, -6227), ++ COL_VERTEX(-1484, 1004, -5769), ++ COL_VERTEX(-1484, 607, -5555), ++ COL_VERTEX(-1484, 607, -5755), ++ COL_VERTEX(-2230, 1004, -5769), ++ COL_VERTEX(-2230, 607, -5755), ++ COL_VERTEX(-1276, 277, -5755), ++ COL_VERTEX(-2022, 277, -5755), ++ COL_VERTEX(-2230, 607, -5555), ++ COL_VERTEX(-2022, 277, -5555), ++ COL_VERTEX(-1951, -78, -5959), ++ COL_VERTEX(-1951, -278, -5959), ++ COL_VERTEX(-1276, 277, -5555), ++ COL_VERTEX(-1205, -78, -5959), ++ COL_VERTEX(-1205, -278, -5959), ++ COL_VERTEX(-1182, -538, -6238), ++ COL_VERTEX(-1182, -338, -6238), ++ COL_VERTEX(-1928, -338, -6238), ++ COL_VERTEX(-1134, -338, -8589), ++ COL_VERTEX(-1880, -338, -8589), ++ COL_VERTEX(-1928, -538, -6238), ++ COL_VERTEX(-1880, -538, -8589), ++ COL_VERTEX(-1134, -538, -8589), ++ COL_TRI_INIT(SURFACE_DEFAULT, 226), ++ COL_TRI(0, 1, 2), ++ COL_TRI(0, 2, 3), ++ COL_TRI(4, 5, 6), ++ COL_TRI(4, 6, 7), ++ COL_TRI(4, 2, 1), ++ COL_TRI(4, 1, 8), ++ COL_TRI(8, 9, 5), ++ COL_TRI(8, 5, 4), ++ COL_TRI(9, 0, 3), ++ COL_TRI(9, 3, 5), ++ COL_TRI(8, 1, 0), ++ COL_TRI(8, 0, 9), ++ COL_TRI(10, 7, 11), ++ COL_TRI(10, 11, 12), ++ COL_TRI(3, 2, 10), ++ COL_TRI(3, 10, 13), ++ COL_TRI(5, 3, 13), ++ COL_TRI(5, 13, 6), ++ COL_TRI(2, 4, 7), ++ COL_TRI(2, 7, 10), ++ COL_TRI(11, 14, 15), ++ COL_TRI(11, 15, 16), ++ COL_TRI(7, 6, 14), ++ COL_TRI(7, 14, 11), ++ COL_TRI(6, 13, 17), ++ COL_TRI(6, 17, 14), ++ COL_TRI(13, 10, 12), ++ COL_TRI(13, 12, 17), ++ COL_TRI(18, 19, 20), ++ COL_TRI(18, 20, 21), ++ COL_TRI(21, 20, 22), ++ COL_TRI(21, 22, 23), ++ COL_TRI(23, 22, 24), ++ COL_TRI(23, 24, 25), ++ COL_TRI(25, 24, 19), ++ COL_TRI(25, 19, 18), ++ COL_TRI(21, 23, 25), ++ COL_TRI(21, 25, 18), ++ COL_TRI(22, 20, 19), ++ COL_TRI(22, 19, 24), ++ COL_TRI(16, 15, 26), ++ COL_TRI(16, 26, 27), ++ COL_TRI(14, 17, 28), ++ COL_TRI(14, 28, 15), ++ COL_TRI(17, 12, 29), ++ COL_TRI(17, 29, 28), ++ COL_TRI(12, 11, 16), ++ COL_TRI(12, 16, 29), ++ COL_TRI(30, 31, 32), ++ COL_TRI(30, 32, 33), ++ COL_TRI(15, 28, 30), ++ COL_TRI(15, 30, 26), ++ COL_TRI(28, 29, 31), ++ COL_TRI(28, 31, 30), ++ COL_TRI(29, 16, 27), ++ COL_TRI(29, 27, 31), ++ COL_TRI(33, 32, 34), ++ COL_TRI(33, 34, 35), ++ COL_TRI(31, 27, 36), ++ COL_TRI(31, 36, 32), ++ COL_TRI(27, 26, 37), ++ COL_TRI(27, 37, 36), ++ COL_TRI(26, 30, 33), ++ COL_TRI(26, 33, 37), ++ COL_TRI(38, 35, 39), ++ COL_TRI(38, 39, 40), ++ COL_TRI(32, 36, 41), ++ COL_TRI(32, 41, 34), ++ COL_TRI(36, 37, 38), ++ COL_TRI(36, 38, 41), ++ COL_TRI(37, 33, 38), ++ COL_TRI(33, 35, 38), ++ COL_TRI(41, 38, 40), ++ COL_TRI(41, 40, 42), ++ COL_TRI(40, 43, 42), ++ COL_TRI(40, 39, 43), ++ COL_TRI(35, 34, 43), ++ COL_TRI(35, 43, 39), ++ COL_TRI(34, 41, 42), ++ COL_TRI(34, 42, 43), ++ COL_TRI(44, 45, 46), ++ COL_TRI(44, 46, 47), ++ COL_TRI(47, 46, 48), ++ COL_TRI(47, 48, 49), ++ COL_TRI(49, 48, 50), ++ COL_TRI(49, 50, 51), ++ COL_TRI(50, 52, 53), ++ COL_TRI(50, 53, 54), ++ COL_TRI(47, 49, 51), ++ COL_TRI(47, 51, 44), ++ COL_TRI(50, 48, 46), ++ COL_TRI(46, 45, 52), ++ COL_TRI(46, 52, 50), ++ COL_TRI(55, 56, 57), ++ COL_TRI(55, 57, 58), ++ COL_TRI(51, 50, 54), ++ COL_TRI(51, 54, 56), ++ COL_TRI(45, 44, 55), ++ COL_TRI(45, 55, 59), ++ COL_TRI(44, 51, 56), ++ COL_TRI(44, 56, 55), ++ COL_TRI(59, 55, 58), ++ COL_TRI(59, 58, 60), ++ COL_TRI(54, 53, 61), ++ COL_TRI(54, 61, 62), ++ COL_TRI(56, 54, 62), ++ COL_TRI(56, 62, 57), ++ COL_TRI(61, 60, 58), ++ COL_TRI(58, 57, 62), ++ COL_TRI(58, 62, 61), ++ COL_TRI(63, 64, 65), ++ COL_TRI(63, 65, 66), ++ COL_TRI(65, 67, 68), ++ COL_TRI(65, 68, 69), ++ COL_TRI(70, 67, 71), ++ COL_TRI(70, 71, 72), ++ COL_TRI(72, 71, 64), ++ COL_TRI(72, 64, 63), ++ COL_TRI(66, 70, 72), ++ COL_TRI(66, 72, 63), ++ COL_TRI(67, 65, 64), ++ COL_TRI(67, 64, 71), ++ COL_TRI(69, 68, 73), ++ COL_TRI(69, 73, 74), ++ COL_TRI(66, 65, 69), ++ COL_TRI(66, 69, 75), ++ COL_TRI(67, 70, 76), ++ COL_TRI(67, 76, 68), ++ COL_TRI(70, 66, 75), ++ COL_TRI(70, 75, 76), ++ COL_TRI(73, 77, 78), ++ COL_TRI(73, 78, 79), ++ COL_TRI(75, 69, 74), ++ COL_TRI(75, 74, 80), ++ COL_TRI(68, 76, 77), ++ COL_TRI(68, 77, 73), ++ COL_TRI(76, 75, 80), ++ COL_TRI(76, 80, 77), ++ COL_TRI(78, 81, 82), ++ COL_TRI(78, 82, 83), ++ COL_TRI(77, 80, 81), ++ COL_TRI(77, 81, 78), ++ COL_TRI(74, 73, 79), ++ COL_TRI(74, 79, 84), ++ COL_TRI(80, 74, 84), ++ COL_TRI(80, 84, 81), ++ COL_TRI(85, 86, 87), ++ COL_TRI(85, 87, 88), ++ COL_TRI(84, 79, 86), ++ COL_TRI(84, 86, 85), ++ COL_TRI(81, 84, 85), ++ COL_TRI(81, 85, 82), ++ COL_TRI(79, 78, 83), ++ COL_TRI(79, 83, 86), ++ COL_TRI(87, 89, 90), ++ COL_TRI(87, 90, 91), ++ COL_TRI(82, 85, 88), ++ COL_TRI(82, 88, 92), ++ COL_TRI(86, 83, 89), ++ COL_TRI(86, 89, 87), ++ COL_TRI(83, 82, 92), ++ COL_TRI(83, 92, 89), ++ COL_TRI(93, 91, 94), ++ COL_TRI(93, 94, 95), ++ COL_TRI(89, 92, 96), ++ COL_TRI(89, 96, 90), ++ COL_TRI(88, 87, 91), ++ COL_TRI(88, 91, 93), ++ COL_TRI(92, 88, 93), ++ COL_TRI(92, 93, 96), ++ COL_TRI(95, 94, 97), ++ COL_TRI(95, 97, 98), ++ COL_TRI(96, 93, 95), ++ COL_TRI(96, 95, 99), ++ COL_TRI(91, 90, 100), ++ COL_TRI(91, 100, 94), ++ COL_TRI(90, 96, 99), ++ COL_TRI(90, 99, 100), ++ COL_TRI(97, 101, 102), ++ COL_TRI(97, 102, 103), ++ COL_TRI(99, 95, 98), ++ COL_TRI(99, 98, 104), ++ COL_TRI(94, 100, 101), ++ COL_TRI(94, 101, 97), ++ COL_TRI(100, 99, 104), ++ COL_TRI(100, 104, 101), ++ COL_TRI(105, 103, 106), ++ COL_TRI(105, 106, 107), ++ COL_TRI(101, 104, 108), ++ COL_TRI(101, 108, 102), ++ COL_TRI(98, 97, 103), ++ COL_TRI(98, 103, 105), ++ COL_TRI(104, 98, 105), ++ COL_TRI(104, 105, 108), ++ COL_TRI(109, 107, 110), ++ COL_TRI(109, 110, 111), ++ COL_TRI(108, 105, 107), ++ COL_TRI(108, 107, 109), ++ COL_TRI(103, 102, 112), ++ COL_TRI(103, 112, 106), ++ COL_TRI(102, 108, 109), ++ COL_TRI(102, 109, 112), ++ COL_TRI(113, 114, 115), ++ COL_TRI(113, 115, 116), ++ COL_TRI(106, 112, 114), ++ COL_TRI(106, 114, 113), ++ COL_TRI(112, 109, 111), ++ COL_TRI(112, 111, 114), ++ COL_TRI(107, 106, 113), ++ COL_TRI(107, 113, 110), ++ COL_TRI(117, 116, 118), ++ COL_TRI(117, 118, 119), ++ COL_TRI(114, 111, 120), ++ COL_TRI(114, 120, 115), ++ COL_TRI(110, 113, 116), ++ COL_TRI(110, 116, 117), ++ COL_TRI(111, 110, 117), ++ COL_TRI(111, 117, 120), ++ COL_TRI(121, 119, 118), ++ COL_TRI(121, 118, 122), ++ COL_TRI(120, 117, 119), ++ COL_TRI(120, 119, 121), ++ COL_TRI(116, 115, 122), ++ COL_TRI(116, 122, 118), ++ COL_TRI(115, 120, 121), ++ COL_TRI(115, 121, 122), ++ COL_TRI_INIT(SURFACE_VERY_SLIPPERY, 4), ++ COL_TRI(61, 53, 59), ++ COL_TRI(61, 59, 60), ++ COL_TRI(53, 52, 45), ++ COL_TRI(53, 45, 59), ++ COL_TRI_STOP(), ++ COL_WATER_BOX_INIT(1), ++ COL_WATER_BOX(0x00, -6164, 2651, 2691, 9059, -2755), ++ COL_END() ++}; +diff --git a/levels/castle_grounds/area_1/geo.inc.c b/levels/castle_grounds/area_1/geo.inc.c +new file mode 100644 +index 0000000..b6fb1cf +--- /dev/null ++++ b/levels/castle_grounds/area_1/geo.inc.c +@@ -0,0 +1,39 @@ ++#include "src/game/envfx_snow.h" ++ ++const GeoLayout castle_grounds_area_1_geo[] = { ++ GEO_NODE_START(), ++ GEO_OPEN_NODE(), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, castle_grounds_dl_Cube_mesh), ++ GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 28, -612, -2665, castle_grounds_dl_Cube_001_mesh), ++ GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -964, 100, -5075, castle_grounds_dl_loop_mesh), ++ GEO_TRANSLATE_NODE_WITH_DL(5, -1737, -2755, 5855, castle_grounds_dl_Water_Box_Mesh_mesh_layer_5), ++ GEO_CLOSE_NODE(), ++ GEO_RETURN(), ++}; ++const GeoLayout castle_grounds_area_1[] = { ++ GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2), ++ GEO_OPEN_NODE(), ++ GEO_ZBUFFER(0), ++ GEO_OPEN_NODE(), ++ GEO_NODE_ORTHO(100.0000), ++ GEO_OPEN_NODE(), ++ GEO_BACKGROUND(BACKGROUND_PURPLE_SKY, geo_skybox_main), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ZBUFFER(1), ++ GEO_OPEN_NODE(), ++ GEO_CAMERA_FRUSTUM_WITH_FUNC(45.0000, 100, 30000, geo_camera_fov), ++ GEO_OPEN_NODE(), ++ GEO_CAMERA(CAMERA_MODE_8_DIRECTIONS, 0, 0, 0, 0, -100, 0, geo_camera_main), ++ GEO_OPEN_NODE(), ++ GEO_BRANCH(1, castle_grounds_area_1_geo), ++ GEO_RENDER_OBJ(), ++ GEO_ASM(ENVFX_MODE_NONE, geo_envfx_main), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_DISPLAY_LIST(5, castle_grounds_dl_material_revert_render_settings), ++ GEO_DISPLAY_LIST(LAYER_OPAQUE, castle_grounds_dl_material_revert_render_settings), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++}; +diff --git a/levels/castle_grounds/area_1/macro.inc.c b/levels/castle_grounds/area_1/macro.inc.c +new file mode 100644 +index 0000000..c28274b +--- /dev/null ++++ b/levels/castle_grounds/area_1/macro.inc.c +@@ -0,0 +1,4 @@ ++const MacroObject castle_grounds_area_1_macro_objs[] = { ++ MACRO_OBJECT_END(), ++}; ++ +diff --git a/levels/castle_grounds/area_1/spline.inc.c b/levels/castle_grounds/area_1/spline.inc.c +new file mode 100644 +index 0000000..e69de29 +diff --git a/levels/castle_grounds/geo.inc.c b/levels/castle_grounds/geo.inc.c +new file mode 100644 +index 0000000..af9c4fa +--- /dev/null ++++ b/levels/castle_grounds/geo.inc.c +@@ -0,0 +1 @@ ++#include "levels/castle_grounds/area_1/geo.inc.c" +diff --git a/levels/castle_grounds/header.inc.h b/levels/castle_grounds/header.inc.h +new file mode 100644 +index 0000000..439a3d5 +--- /dev/null ++++ b/levels/castle_grounds/header.inc.h +@@ -0,0 +1,34 @@ ++extern const GeoLayout castle_grounds_area_1_geo[]; ++extern const GeoLayout castle_grounds_area_1[]; ++extern const Collision castle_grounds_area_1_collision[]; ++extern const MacroObject castle_grounds_area_1_macro_objs[]; ++extern Lights1 castle_grounds_dl_ground_lights; ++extern Lights1 castle_grounds_dl_floor_lights; ++extern Lights1 castle_grounds_dl_slippery_lights; ++extern Lights1 castle_grounds_dl_water_001_layer5_area1_lights; ++extern u8 castle_grounds_dl_rocktextso_rgba16[]; ++extern u8 castle_grounds_dl_testwater_ia8[]; ++extern Vtx castle_grounds_dl_Cube_mesh_vtx_cull[8]; ++extern Vtx castle_grounds_dl_Cube_mesh_vtx_0[160]; ++extern Gfx castle_grounds_dl_Cube_mesh_tri_0[]; ++extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_cull[8]; ++extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_0[60]; ++extern Gfx castle_grounds_dl_Cube_001_mesh_tri_0[]; ++extern Vtx castle_grounds_dl_Cube_001_mesh_vtx_1[8]; ++extern Gfx castle_grounds_dl_Cube_001_mesh_tri_1[]; ++extern Vtx castle_grounds_dl_loop_mesh_vtx_cull[8]; ++extern Vtx castle_grounds_dl_loop_mesh_vtx_0[228]; ++extern Gfx castle_grounds_dl_loop_mesh_tri_0[]; ++extern Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull[8]; ++extern Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0[4]; ++extern Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0[]; ++extern Gfx mat_castle_grounds_dl_ground[]; ++extern Gfx mat_castle_grounds_dl_floor[]; ++extern Gfx mat_castle_grounds_dl_slippery[]; ++extern Gfx mat_castle_grounds_dl_water_001_layer5_area1[]; ++extern Gfx mat_revert_castle_grounds_dl_water_001_layer5_area1[]; ++extern Gfx castle_grounds_dl_Cube_mesh[]; ++extern Gfx castle_grounds_dl_Cube_001_mesh[]; ++extern Gfx castle_grounds_dl_loop_mesh[]; ++extern Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5[]; ++extern Gfx castle_grounds_dl_material_revert_render_settings[]; +diff --git a/levels/castle_grounds/leveldata.inc.c b/levels/castle_grounds/leveldata.inc.c +new file mode 100644 +index 0000000..b68feba +--- /dev/null ++++ b/levels/castle_grounds/leveldata.inc.c +@@ -0,0 +1,5 @@ ++#include "levels/castle_grounds/texture_include.inc.c" ++#include "levels/castle_grounds/area_1/collision.inc.c" ++#include "levels/castle_grounds/area_1/macro.inc.c" ++#include "levels/castle_grounds/area_1/spline.inc.c" ++#include "levels/castle_grounds/model.inc.c" +diff --git a/levels/castle_grounds/model.inc.c b/levels/castle_grounds/model.inc.c +new file mode 100644 +index 0000000..6bfbe6a +--- /dev/null ++++ b/levels/castle_grounds/model.inc.c +@@ -0,0 +1,806 @@ ++Lights1 castle_grounds_dl_ground_lights = gdSPDefLights1( ++ 0x4B, 0x7F, 0x4A, ++ 0x97, 0xFE, 0x95, 0x28, 0x28, 0x28); ++ ++Lights1 castle_grounds_dl_floor_lights = gdSPDefLights1( ++ 0x7F, 0x79, 0x79, ++ 0xFE, 0xF2, 0xF2, 0x28, 0x28, 0x28); ++ ++Lights1 castle_grounds_dl_slippery_lights = gdSPDefLights1( ++ 0x19, 0x7F, 0x7C, ++ 0x32, 0xFE, 0xF8, 0x28, 0x28, 0x28); ++ ++Lights1 castle_grounds_dl_water_001_layer5_area1_lights = gdSPDefLights1( ++ 0x19, 0x50, 0x7F, ++ 0x33, 0xA0, 0xFE, 0x28, 0x28, 0x28); ++ ++Vtx castle_grounds_dl_Cube_mesh_vtx_cull[8] = { ++ {{{-486, -100, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-486, -100, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-486, 2937, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-486, 2937, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{1410, -100, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{1410, -100, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{1410, 2937, 2019},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{1410, 2937, -5753},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++}; ++ ++Vtx castle_grounds_dl_Cube_mesh_vtx_0[160] = { ++ {{{400, 100, -400},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-400, 100, -400},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-400, 100, 400},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{400, 100, 400},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-400, -100, 400},0, {112, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{400, -100, 400},0, {368, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{617, 295, 788},0, {368, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{-409, 295, 788},0, {112, 240},{0x0, 0xA7, 0x5B, 0xFF}}}, ++ {{{-400, -100, 400},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-400, 100, 400},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-400, 100, -400},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-400, -100, -400},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-400, -100, -400},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{400, -100, -400},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{400, -100, 400},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-400, -100, 400},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{400, -100, -400},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{400, 100, -400},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{400, 100, 400},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{400, -100, 400},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-400, -100, -400},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-400, 100, -400},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{400, 100, -400},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{400, -100, -400},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-409, 552, 788},0, {624, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, ++ {{{-409, 295, 788},0, {368, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, ++ {{{-142, 819, 1065},0, {368, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, ++ {{{-142, 1075, 1065},0, {624, 1008},{0xA4, 0x0, 0x58, 0xFF}}}, ++ {{{400, 100, 400},0, {624, 240},{0x0, 0x53, 0xA0, 0xFF}}}, ++ {{{-400, 100, 400},0, {880, 240},{0x0, 0x53, 0xA0, 0xFF}}}, ++ {{{-409, 552, 788},0, {880, 240},{0x0, 0x53, 0xA0, 0xFF}}}, ++ {{{617, 552, 788},0, {624, 240},{0x0, 0x53, 0xA0, 0xFF}}}, ++ {{{400, -100, 400},0, {368, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, ++ {{{400, 100, 400},0, {624, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, ++ {{{617, 552, 788},0, {624, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, ++ {{{617, 295, 788},0, {368, 240},{0x6F, 0x0, 0xC2, 0xFF}}}, ++ {{{-400, 100, 400},0, {624, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, ++ {{{-400, -100, 400},0, {368, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, ++ {{{-409, 295, 788},0, {368, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, ++ {{{-409, 552, 788},0, {624, 1008},{0x81, 0x0, 0xFD, 0xFF}}}, ++ {{{-142, 819, 1065},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{883, 819, 1065},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{883, 819, 1374},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-142, 819, 1374},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-409, 295, 788},0, {112, 240},{0x0, 0xC5, 0x71, 0xFF}}}, ++ {{{617, 295, 788},0, {368, 240},{0x0, 0xC5, 0x71, 0xFF}}}, ++ {{{883, 819, 1065},0, {368, 240},{0x0, 0xC5, 0x71, 0xFF}}}, ++ {{{-142, 819, 1065},0, {112, 240},{0x0, 0xC5, 0x71, 0xFF}}}, ++ {{{617, 295, 788},0, {368, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, ++ {{{617, 552, 788},0, {624, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, ++ {{{883, 1075, 1065},0, {624, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, ++ {{{883, 819, 1065},0, {368, 240},{0x5C, 0x0, 0xA8, 0xFF}}}, ++ {{{617, 552, 788},0, {624, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, ++ {{{-409, 552, 788},0, {880, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, ++ {{{-142, 1075, 1065},0, {880, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, ++ {{{883, 1075, 1065},0, {624, 240},{0x0, 0x3B, 0x8F, 0xFF}}}, ++ {{{-486, -14, -4725},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-486, 93, -4725},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-486, 93, -5753},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-486, -14, -5753},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-486, -14, -5753},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-486, 93, -5753},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{542, 93, -5753},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{542, -14, -5753},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{542, -14, -5753},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{542, 93, -5753},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{542, 93, -4725},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{542, -14, -4725},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{542, -14, -4725},0, {368, 240},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{542, 93, -4725},0, {624, 240},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-486, 93, -4725},0, {624, -16},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-486, -14, -4725},0, {368, -16},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-486, -14, -5753},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{542, -14, -5753},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{542, -14, -4725},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-486, -14, -4725},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{542, 93, -5753},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-486, 93, -5753},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-486, 93, -4725},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{542, 93, -4725},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-142, 819, 1374},0, {112, 240},{0x0, 0xB8, 0x69, 0xFF}}}, ++ {{{883, 819, 1374},0, {368, 240},{0x0, 0xB8, 0x69, 0xFF}}}, ++ {{{1115, 1282, 1693},0, {368, 240},{0x0, 0xB8, 0x69, 0xFF}}}, ++ {{{90, 1282, 1693},0, {112, 240},{0x0, 0xB8, 0x69, 0xFF}}}, ++ {{{883, 819, 1065},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{883, 1075, 1065},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{883, 1075, 1374},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{883, 819, 1374},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{883, 1075, 1065},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-142, 1075, 1065},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-142, 1075, 1374},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{883, 1075, 1374},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-142, 1075, 1065},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-142, 819, 1065},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-142, 819, 1374},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-142, 1075, 1374},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{1115, 1539, 1693},0, {624, 240},{0x0, 0x27, 0x87, 0xFF}}}, ++ {{{90, 1539, 1693},0, {880, 240},{0x0, 0x27, 0x87, 0xFF}}}, ++ {{{382, 1982, 1836},0, {880, 240},{0x0, 0x27, 0x87, 0xFF}}}, ++ {{{1407, 1982, 1836},0, {624, 240},{0x0, 0x27, 0x87, 0xFF}}}, ++ {{{883, 819, 1374},0, {368, 240},{0x67, 0x0, 0xB5, 0xFF}}}, ++ {{{883, 1075, 1374},0, {624, 240},{0x67, 0x0, 0xB5, 0xFF}}}, ++ {{{1115, 1539, 1693},0, {624, 240},{0x67, 0x0, 0xB5, 0xFF}}}, ++ {{{1115, 1282, 1693},0, {368, 240},{0x67, 0x0, 0xB5, 0xFF}}}, ++ {{{883, 1075, 1374},0, {624, 240},{0x0, 0x48, 0x97, 0xFF}}}, ++ {{{-142, 1075, 1374},0, {880, 240},{0x0, 0x48, 0x97, 0xFF}}}, ++ {{{90, 1539, 1693},0, {880, 240},{0x0, 0x48, 0x97, 0xFF}}}, ++ {{{1115, 1539, 1693},0, {624, 240},{0x0, 0x48, 0x97, 0xFF}}}, ++ {{{-142, 1075, 1374},0, {624, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, ++ {{{-142, 819, 1374},0, {368, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, ++ {{{90, 1282, 1693},0, {368, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, ++ {{{90, 1539, 1693},0, {624, 1008},{0x99, 0x0, 0x4B, 0xFF}}}, ++ {{{1407, 1982, 1836},0, {624, 240},{0x0, 0xF5, 0x81, 0xFF}}}, ++ {{{382, 1982, 1836},0, {880, 240},{0x0, 0xF5, 0x81, 0xFF}}}, ++ {{{379, 2517, 1794},0, {880, 240},{0x0, 0xF5, 0x81, 0xFF}}}, ++ {{{1403, 2469, 1787},0, {624, 240},{0x0, 0xF5, 0x81, 0xFF}}}, ++ {{{90, 1539, 1693},0, {624, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, ++ {{{90, 1282, 1693},0, {368, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, ++ {{{382, 1725, 1836},0, {368, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, ++ {{{382, 1982, 1836},0, {624, 1008},{0xC8, 0x0, 0x72, 0xFF}}}, ++ {{{90, 1282, 1693},0, {112, 240},{0x0, 0xD9, 0x79, 0xFF}}}, ++ {{{1115, 1282, 1693},0, {368, 240},{0x0, 0xD9, 0x79, 0xFF}}}, ++ {{{1407, 1725, 1836},0, {368, 240},{0x0, 0xD9, 0x79, 0xFF}}}, ++ {{{382, 1725, 1836},0, {112, 240},{0x0, 0xD9, 0x79, 0xFF}}}, ++ {{{1115, 1282, 1693},0, {368, 240},{0x38, 0x0, 0x8E, 0xFF}}}, ++ {{{1115, 1539, 1693},0, {624, 240},{0x38, 0x0, 0x8E, 0xFF}}}, ++ {{{1407, 1982, 1836},0, {624, 240},{0x38, 0x0, 0x8E, 0xFF}}}, ++ {{{1407, 1725, 1836},0, {368, 240},{0x38, 0x0, 0x8E, 0xFF}}}, ++ {{{1410, 2591, 2012},0, {368, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, ++ {{{1403, 2469, 1787},0, {624, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, ++ {{{1391, 2766, 1148},0, {624, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, ++ {{{1398, 2889, 1373},0, {368, 240},{0x7F, 0xFF, 0xFD, 0xFF}}}, ++ {{{382, 1982, 1836},0, {624, 1008},{0x81, 0x0, 0x3, 0xFF}}}, ++ {{{382, 1725, 1836},0, {368, 1008},{0x81, 0x0, 0x3, 0xFF}}}, ++ {{{386, 2639, 2019},0, {368, 1008},{0x81, 0x0, 0x3, 0xFF}}}, ++ {{{379, 2517, 1794},0, {624, 1008},{0x81, 0x0, 0x3, 0xFF}}}, ++ {{{382, 1725, 1836},0, {112, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, ++ {{{1407, 1725, 1836},0, {368, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, ++ {{{1410, 2591, 2012},0, {368, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, ++ {{{386, 2639, 2019},0, {112, 240},{0x0, 0xE7, 0x7D, 0xFF}}}, ++ {{{1407, 1725, 1836},0, {368, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, ++ {{{1407, 1982, 1836},0, {624, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, ++ {{{1410, 2591, 2012},0, {368, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, ++ {{{1403, 2469, 1787},0, {624, 240},{0x7F, 0x0, 0xFD, 0xFF}}}, ++ {{{386, 2639, 2019},0, {112, 240},{0x5, 0x73, 0x35, 0xFF}}}, ++ {{{1410, 2591, 2012},0, {368, 240},{0x5, 0x73, 0x35, 0xFF}}}, ++ {{{1398, 2889, 1373},0, {368, 240},{0x5, 0x73, 0x35, 0xFF}}}, ++ {{{374, 2937, 1380},0, {112, 240},{0x5, 0x73, 0x35, 0xFF}}}, ++ {{{1398, 2889, 1373},0, {368, 240},{0x4, 0x6F, 0xC3, 0xFF}}}, ++ {{{367, 2814, 1155},0, {624, -16},{0x4, 0x6F, 0xC3, 0xFF}}}, ++ {{{374, 2937, 1380},0, {368, -16},{0x4, 0x6F, 0xC3, 0xFF}}}, ++ {{{1391, 2766, 1148},0, {624, 240},{0x4, 0x6F, 0xC3, 0xFF}}}, ++ {{{1403, 2469, 1787},0, {624, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, ++ {{{379, 2517, 1794},0, {880, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, ++ {{{367, 2814, 1155},0, {880, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, ++ {{{1391, 2766, 1148},0, {624, 240},{0xFB, 0x8D, 0xCB, 0xFF}}}, ++ {{{379, 2517, 1794},0, {624, 1008},{0x81, 0x1, 0x3, 0xFF}}}, ++ {{{386, 2639, 2019},0, {368, 1008},{0x81, 0x1, 0x3, 0xFF}}}, ++ {{{374, 2937, 1380},0, {368, 1008},{0x81, 0x1, 0x3, 0xFF}}}, ++ {{{367, 2814, 1155},0, {624, 1008},{0x81, 0x1, 0x3, 0xFF}}}, ++}; ++ ++Gfx castle_grounds_dl_Cube_mesh_tri_0[] = { ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 0, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 32, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 64, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 96, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_0 + 128, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 13, 15, 14, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 23, 21, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx castle_grounds_dl_Cube_001_mesh_vtx_cull[8] = { ++ {{{-3570, -3672, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-3570, -3672, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-3570, 162, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-3570, 162, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{3570, -3672, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{3570, -3672, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{3570, 162, 6157},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{3570, 162, -2355},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++}; ++ ++Vtx castle_grounds_dl_Cube_001_mesh_vtx_0[60] = { ++ {{{-3570, -162, 3186},0, {-11977, 24765},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, 162, 3186},0, {-11977, -22749},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, 162, -2355},0, {9091, -22749},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -162, -2355},0, {9091, 24765},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -162, -2355},0, {-21018, 24765},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-3570, 162, -2355},0, {-21018, -22749},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{3570, 162, -2355},0, {19942, -22749},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{3570, -162, -2355},0, {19942, 24765},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{3570, -162, -2355},0, {-9123, 24765},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, 162, -2355},0, {-9123, -22749},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, 162, 3186},0, {11945, -22749},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -162, 3186},0, {11945, 24765},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, 162, 3186},0, {-8080, -6070},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{111, 162, 3186},0, {11120, -6070},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{-30, -989, 4794},0, {11120, 7480},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{3570, -989, 4794},0, {-8080, 7480},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{-3570, -162, -2355},0, {-21018, -9224},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{3570, -162, -2355},0, {19942, -9224},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{3570, -162, 3186},0, {19942, 15214},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-3570, -162, 3186},0, {-21018, 15214},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{3570, 162, 3186},0, {-19974, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{3570, 162, -2355},0, {-19974, -9224},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-3570, 162, -2355},0, {20986, -9224},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{111, 162, 3186},0, {-133, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-3570, 162, 3186},0, {20986, 15214},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-3570, -1313, 4794},0, {-21018, -30559},{0x0, 0xC0, 0x92, 0xFF}}}, ++ {{{3570, -1313, 4794},0, {19942, -30559},{0x0, 0xC0, 0x92, 0xFF}}}, ++ {{{3570, -3672, 6157},0, {19942, 315663},{0x0, 0xC0, 0x92, 0xFF}}}, ++ {{{-3570, -3672, 6157},0, {-21018, 315663},{0x0, 0xC0, 0x92, 0xFF}}}, ++ {{{3570, -162, 3186},0, {11945, 17597},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, 162, 3186},0, {11945, -29917},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -989, 4794},0, {18058, 139016},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -162, 3186},0, {11945, 17597},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -989, 4794},0, {18058, 139016},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -1313, 4794},0, {18058, 186529},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, 162, 3186},0, {-11977, -29917},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -162, 3186},0, {-11977, 17597},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -1313, 4794},0, {-18090, 186529},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -989, 4794},0, {-18090, 139016},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -162, 3186},0, {-21018, -30531},{0x0, 0x99, 0xB6, 0xFF}}}, ++ {{{3570, -162, 3186},0, {19942, -30531},{0x0, 0x99, 0xB6, 0xFF}}}, ++ {{{3570, -1313, 4794},0, {19942, 138401},{0x0, 0x99, 0xB6, 0xFF}}}, ++ {{{-3570, -1313, 4794},0, {-21018, 138401},{0x0, 0x99, 0xB6, 0xFF}}}, ++ {{{-3570, -989, 4794},0, {-18090, -29944},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -1313, 4794},0, {-18090, 17569},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -3672, 6157},0, {-23271, 363791},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-3570, -3349, 6157},0, {-23271, 316277},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -989, 4794},0, {-19974, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-97, -3349, 6157},0, {1065, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{3570, -3349, 6157},0, {-19974, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-30, -989, 4794},0, {680, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{3570, -1313, 4794},0, {18058, 17569},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -989, 4794},0, {18058, -29944},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -3349, 6157},0, {23239, 316277},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{3570, -3672, 6157},0, {23239, 363791},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-97, -3349, 6157},0, {1065, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-3570, -3349, 6157},0, {20986, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-3570, -3672, 6157},0, {20986, 30991},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{3570, -3349, 6157},0, {-19974, -16523},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{3570, -3672, 6157},0, {-19974, 30991},{0x0, 0x0, 0x7F, 0xFF}}}, ++}; ++ ++Gfx castle_grounds_dl_Cube_001_mesh_tri_0[] = { ++ gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_0 + 0, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 22, 23, 20, 0), ++ gsSP2Triangles(22, 24, 23, 0, 25, 26, 27, 0), ++ gsSP2Triangles(25, 27, 28, 0, 29, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_0 + 32, 28, 0), ++ gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0), ++ gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0), ++ gsSP2Triangles(7, 9, 10, 0, 11, 12, 13, 0), ++ gsSP2Triangles(11, 13, 14, 0, 15, 16, 17, 0), ++ gsSP2Triangles(15, 18, 16, 0, 19, 20, 21, 0), ++ gsSP2Triangles(19, 21, 22, 0, 23, 24, 25, 0), ++ gsSP2Triangles(25, 26, 23, 0, 25, 27, 26, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx castle_grounds_dl_Cube_001_mesh_vtx_1[8] = { ++ {{{-97, -3349, 6157},0, {1065, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-30, -989, 4794},0, {680, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-3570, -989, 4794},0, {20986, -29944},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-3570, -3349, 6157},0, {20986, 316277},{0x0, 0x40, 0x6E, 0xFF}}}, ++ {{{-30, -989, 4794},0, {680, 139016},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{111, 162, 3186},0, {-133, -29917},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{-3570, 162, 3186},0, {20986, -29917},{0x0, 0x67, 0x4A, 0xFF}}}, ++ {{{-3570, -989, 4794},0, {20986, 139016},{0x0, 0x67, 0x4A, 0xFF}}}, ++}; ++ ++Gfx castle_grounds_dl_Cube_001_mesh_tri_1[] = { ++ gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_1 + 0, 8, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx castle_grounds_dl_loop_mesh_vtx_cull[8] = { ++ {{{-2128, -751, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-2128, -751, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-2128, 1225, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-2128, 1225, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-170, -751, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-170, -751, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-170, 1225, 76},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-170, 1225, -3513},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++}; ++ ++Vtx castle_grounds_dl_loop_mesh_vtx_0[228] = { ++ {{{-2128, -751, 76},0, {368, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-2128, -551, 76},0, {624, 1008},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-2128, -551, -1381},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-2128, -751, -1381},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-2128, -551, -1381},0, {880, 496},{0x0, 0x79, 0x28, 0xFF}}}, ++ {{{-1382, -551, -1381},0, {624, 496},{0x0, 0x79, 0x28, 0xFF}}}, ++ {{{-1193, -411, -1801},0, {624, 496},{0x0, 0x79, 0x28, 0xFF}}}, ++ {{{-1939, -411, -1801},0, {880, 496},{0x0, 0x79, 0x28, 0xFF}}}, ++ {{{-1382, -751, -1381},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-1382, -551, -1381},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-1382, -551, 76},0, {624, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-1382, -751, 76},0, {368, 240},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-1382, -751, 76},0, {368, 240},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-1382, -551, 76},0, {624, 240},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-2128, -551, 76},0, {624, -16},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-2128, -751, 76},0, {368, -16},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-2128, -751, -1381},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-1382, -751, -1381},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-1382, -751, 76},0, {368, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-2128, -751, 76},0, {112, 240},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-1382, -551, -1381},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-2128, -551, -1381},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-2128, -551, 76},0, {880, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-1382, -551, 76},0, {624, 240},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-1939, -411, -1801},0, {880, 496},{0x0, 0x5D, 0x57, 0xFF}}}, ++ {{{-1193, -411, -1801},0, {624, 496},{0x0, 0x5D, 0x57, 0xFF}}}, ++ {{{-1016, -126, -2106},0, {624, 496},{0x0, 0x5D, 0x57, 0xFF}}}, ++ {{{-1763, -126, -2106},0, {880, 496},{0x0, 0x5D, 0x57, 0xFF}}}, ++ {{{-2128, -751, -1381},0, {368, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, ++ {{{-2128, -551, -1381},0, {624, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, ++ {{{-1939, -411, -1801},0, {624, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, ++ {{{-1939, -611, -1801},0, {368, 752},{0x8C, 0x0, 0xCC, 0xFF}}}, ++ {{{-1382, -551, -1381},0, {624, 496},{0x74, 0x0, 0x34, 0xFF}}}, ++ {{{-1382, -751, -1381},0, {368, 496},{0x74, 0x0, 0x34, 0xFF}}}, ++ {{{-1193, -611, -1801},0, {368, 496},{0x74, 0x0, 0x34, 0xFF}}}, ++ {{{-1193, -411, -1801},0, {624, 496},{0x74, 0x0, 0x34, 0xFF}}}, ++ {{{-1382, -751, -1381},0, {368, 496},{0x0, 0x87, 0xD8, 0xFF}}}, ++ {{{-2128, -751, -1381},0, {112, 496},{0x0, 0x87, 0xD8, 0xFF}}}, ++ {{{-1939, -611, -1801},0, {112, 496},{0x0, 0x87, 0xD8, 0xFF}}}, ++ {{{-1193, -611, -1801},0, {368, 496},{0x0, 0x87, 0xD8, 0xFF}}}, ++ {{{-1016, -126, -2106},0, {624, 496},{0x74, 0xDB, 0x25, 0xFF}}}, ++ {{{-1016, -326, -2106},0, {368, 496},{0x74, 0xDB, 0x25, 0xFF}}}, ++ {{{-806, 161, -2468},0, {368, 496},{0x74, 0xDB, 0x25, 0xFF}}}, ++ {{{-806, 161, -2268},0, {624, 496},{0x74, 0xDB, 0x25, 0xFF}}}, ++ {{{-1939, -611, -1801},0, {368, 752},{0x92, 0x0, 0xC0, 0xFF}}}, ++ {{{-1939, -411, -1801},0, {624, 752},{0x92, 0x0, 0xC0, 0xFF}}}, ++ {{{-1763, -126, -2106},0, {624, 752},{0x92, 0x0, 0xC0, 0xFF}}}, ++ {{{-1763, -326, -2106},0, {368, 752},{0x92, 0x0, 0xC0, 0xFF}}}, ++ {{{-1193, -411, -1801},0, {624, 496},{0x6E, 0x0, 0x40, 0xFF}}}, ++ {{{-1193, -611, -1801},0, {368, 496},{0x6E, 0x0, 0x40, 0xFF}}}, ++ {{{-1016, -326, -2106},0, {368, 496},{0x6E, 0x0, 0x40, 0xFF}}}, ++ {{{-1016, -126, -2106},0, {624, 496},{0x6E, 0x0, 0x40, 0xFF}}}, ++ {{{-1193, -611, -1801},0, {368, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, ++ {{{-1939, -611, -1801},0, {112, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, ++ {{{-1763, -326, -2106},0, {112, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, ++ {{{-1016, -326, -2106},0, {368, 496},{0x0, 0xA3, 0xA9, 0xFF}}}, ++ {{{-806, 161, -2468},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-1552, 161, -2468},0, {112, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-1355, 457, -2468},0, {112, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-609, 457, -2468},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-1016, -326, -2106},0, {368, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, ++ {{{-1763, -326, -2106},0, {112, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, ++ {{{-1552, 161, -2468},0, {112, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, ++ {{{-806, 161, -2468},0, {368, 496},{0x0, 0xB4, 0x9A, 0xFF}}}, ++ {{{-1763, -126, -2106},0, {880, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, ++ {{{-1016, -126, -2106},0, {624, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, ++ {{{-806, 161, -2268},0, {624, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, ++ {{{-1552, 161, -2268},0, {880, 496},{0x0, 0x3E, 0x6F, 0xFF}}}, ++ {{{-1763, -326, -2106},0, {368, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, ++ {{{-1763, -126, -2106},0, {624, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, ++ {{{-1552, 161, -2268},0, {624, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, ++ {{{-1552, 161, -2468},0, {368, 752},{0x8C, 0x25, 0xDB, 0xFF}}}, ++ {{{-1355, 457, -2268},0, {880, 496},{0x0, 0xC9, 0x73, 0xFF}}}, ++ {{{-609, 457, -2268},0, {624, 496},{0x0, 0xC9, 0x73, 0xFF}}}, ++ {{{-520, 870, -2070},0, {624, 496},{0x0, 0xC9, 0x73, 0xFF}}}, ++ {{{-1266, 870, -2070},0, {880, 496},{0x0, 0xC9, 0x73, 0xFF}}}, ++ {{{-1552, 161, -2268},0, {880, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-806, 161, -2268},0, {624, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-609, 457, -2268},0, {624, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-1355, 457, -2268},0, {880, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-1552, 161, -2468},0, {368, 752},{0x96, 0x46, 0x0, 0xFF}}}, ++ {{{-1552, 161, -2268},0, {624, 752},{0x96, 0x46, 0x0, 0xFF}}}, ++ {{{-1355, 457, -2268},0, {624, 752},{0x96, 0x46, 0x0, 0xFF}}}, ++ {{{-1355, 457, -2468},0, {368, 752},{0x96, 0x46, 0x0, 0xFF}}}, ++ {{{-806, 161, -2268},0, {624, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, ++ {{{-806, 161, -2468},0, {368, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, ++ {{{-609, 457, -2468},0, {368, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, ++ {{{-609, 457, -2268},0, {624, 496},{0x6A, 0xBA, 0x0, 0xFF}}}, ++ {{{-520, 870, -2070},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 870, -2270},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 1225, -1764},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 1025, -1764},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 1225, -1152},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 1025, -1152},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 904, -694},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 904, -894},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 904, -894},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 904, -694},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 507, -480},0, {368, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 507, -680},0, {624, 496},{0x7F, 0x0, 0x0, 0xFF}}}, ++ {{{-1355, 457, -2468},0, {368, 752},{0x84, 0x1A, 0x0, 0xFF}}}, ++ {{{-1355, 457, -2268},0, {624, 752},{0x84, 0x1A, 0x0, 0xFF}}}, ++ {{{-1266, 870, -2070},0, {624, 752},{0x84, 0x1A, 0x0, 0xFF}}}, ++ {{{-1266, 870, -2270},0, {368, 752},{0x84, 0x1A, 0x0, 0xFF}}}, ++ {{{-609, 457, -2268},0, {624, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, ++ {{{-609, 457, -2468},0, {368, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, ++ {{{-520, 870, -2270},0, {368, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, ++ {{{-520, 870, -2070},0, {624, 496},{0x7C, 0xE6, 0x0, 0xFF}}}, ++ {{{-609, 457, -2468},0, {368, 496},{0x0, 0x37, 0x8D, 0xFF}}}, ++ {{{-1355, 457, -2468},0, {112, 496},{0x0, 0x37, 0x8D, 0xFF}}}, ++ {{{-1266, 870, -2270},0, {112, 496},{0x0, 0x37, 0x8D, 0xFF}}}, ++ {{{-520, 870, -2270},0, {368, 496},{0x0, 0x37, 0x8D, 0xFF}}}, ++ {{{-1266, 1025, -1764},0, {880, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-520, 1025, -1764},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-520, 1025, -1152},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1152},0, {880, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-520, 870, -2270},0, {368, 496},{0x0, 0x68, 0xB7, 0xFF}}}, ++ {{{-1266, 870, -2270},0, {112, 496},{0x0, 0x68, 0xB7, 0xFF}}}, ++ {{{-1266, 1225, -1764},0, {112, 496},{0x0, 0x68, 0xB7, 0xFF}}}, ++ {{{-520, 1225, -1764},0, {368, 496},{0x0, 0x68, 0xB7, 0xFF}}}, ++ {{{-1266, 870, -2070},0, {880, 496},{0x0, 0x8E, 0x39, 0xFF}}}, ++ {{{-520, 870, -2070},0, {624, 496},{0x0, 0x8E, 0x39, 0xFF}}}, ++ {{{-520, 1025, -1764},0, {624, 496},{0x0, 0x8E, 0x39, 0xFF}}}, ++ {{{-1266, 1025, -1764},0, {880, 496},{0x0, 0x8E, 0x39, 0xFF}}}, ++ {{{-1266, 870, -2270},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 870, -2070},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1764},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1764},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1764},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1764},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1152},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1152},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1152},0, {880, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, ++ {{{-520, 1025, -1152},0, {624, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, ++ {{{-520, 904, -894},0, {624, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, ++ {{{-1266, 904, -894},0, {880, 496},{0x0, 0x8D, 0xCA, 0xFF}}}, ++ {{{-520, 1225, -1764},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1764},0, {112, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1152},0, {112, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-520, 1225, -1152},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-1266, 1225, -1152},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 1025, -1152},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 904, -894},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 904, -694},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-520, 1225, -1152},0, {368, 496},{0x0, 0x68, 0x49, 0xFF}}}, ++ {{{-1266, 1225, -1152},0, {112, 496},{0x0, 0x68, 0x49, 0xFF}}}, ++ {{{-1266, 904, -694},0, {112, 496},{0x0, 0x68, 0x49, 0xFF}}}, ++ {{{-520, 904, -694},0, {368, 496},{0x0, 0x68, 0x49, 0xFF}}}, ++ {{{-1266, 507, -680},0, {880, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-520, 507, -680},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-312, 177, -680},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-1058, 177, -680},0, {880, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-520, 904, -694},0, {368, 496},{0x0, 0x3C, 0x70, 0xFF}}}, ++ {{{-1266, 904, -694},0, {112, 496},{0x0, 0x3C, 0x70, 0xFF}}}, ++ {{{-1266, 507, -480},0, {112, 496},{0x0, 0x3C, 0x70, 0xFF}}}, ++ {{{-520, 507, -480},0, {368, 496},{0x0, 0x3C, 0x70, 0xFF}}}, ++ {{{-1266, 904, -894},0, {880, 496},{0x0, 0xC4, 0x90, 0xFF}}}, ++ {{{-520, 904, -894},0, {624, 496},{0x0, 0xC4, 0x90, 0xFF}}}, ++ {{{-520, 507, -680},0, {624, 496},{0x0, 0xC4, 0x90, 0xFF}}}, ++ {{{-1266, 507, -680},0, {880, 496},{0x0, 0xC4, 0x90, 0xFF}}}, ++ {{{-1266, 904, -694},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 904, -894},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 507, -680},0, {624, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1266, 507, -480},0, {368, 752},{0x81, 0x0, 0x0, 0xFF}}}, ++ {{{-1058, 177, -480},0, {368, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, ++ {{{-1058, 177, -680},0, {624, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, ++ {{{-987, -178, -884},0, {624, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, ++ {{{-987, -378, -884},0, {368, 752},{0x82, 0xF5, 0xF5, 0xFF}}}, ++ {{{-1266, 507, -480},0, {368, 752},{0x95, 0xBC, 0x0, 0xFF}}}, ++ {{{-1266, 507, -680},0, {624, 752},{0x95, 0xBC, 0x0, 0xFF}}}, ++ {{{-1058, 177, -680},0, {624, 752},{0x95, 0xBC, 0x0, 0xFF}}}, ++ {{{-1058, 177, -480},0, {368, 752},{0x95, 0xBC, 0x0, 0xFF}}}, ++ {{{-520, 507, -680},0, {624, 496},{0x6B, 0x44, 0x0, 0xFF}}}, ++ {{{-520, 507, -480},0, {368, 496},{0x6B, 0x44, 0x0, 0xFF}}}, ++ {{{-312, 177, -480},0, {368, 496},{0x6B, 0x44, 0x0, 0xFF}}}, ++ {{{-312, 177, -680},0, {624, 496},{0x6B, 0x44, 0x0, 0xFF}}}, ++ {{{-520, 507, -480},0, {368, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-1266, 507, -480},0, {112, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-1058, 177, -480},0, {112, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-312, 177, -480},0, {368, 496},{0x0, 0x0, 0x7F, 0xFF}}}, ++ {{{-241, -178, -884},0, {624, 496},{0x7F, 0x0, 0xA, 0xFF}}}, ++ {{{-241, -378, -884},0, {368, 496},{0x7F, 0x0, 0xA, 0xFF}}}, ++ {{{-218, -638, -1163},0, {368, 496},{0x7F, 0x0, 0xA, 0xFF}}}, ++ {{{-218, -438, -1163},0, {624, 496},{0x7F, 0x0, 0xA, 0xFF}}}, ++ {{{-312, 177, -680},0, {624, 496},{0x7E, 0xB, 0xB, 0xFF}}}, ++ {{{-312, 177, -480},0, {368, 496},{0x7E, 0xB, 0xB, 0xFF}}}, ++ {{{-241, -378, -884},0, {368, 496},{0x7E, 0xB, 0xB, 0xFF}}}, ++ {{{-241, -178, -884},0, {624, 496},{0x7E, 0xB, 0xB, 0xFF}}}, ++ {{{-312, 177, -480},0, {368, 496},{0x0, 0xB5, 0x67, 0xFF}}}, ++ {{{-1058, 177, -480},0, {112, 496},{0x0, 0xB5, 0x67, 0xFF}}}, ++ {{{-987, -378, -884},0, {112, 496},{0x0, 0xB5, 0x67, 0xFF}}}, ++ {{{-241, -378, -884},0, {368, 496},{0x0, 0xB5, 0x67, 0xFF}}}, ++ {{{-1058, 177, -680},0, {880, 496},{0x0, 0x3F, 0x92, 0xFF}}}, ++ {{{-312, 177, -680},0, {624, 496},{0x0, 0x3F, 0x92, 0xFF}}}, ++ {{{-241, -178, -884},0, {624, 496},{0x0, 0x3F, 0x92, 0xFF}}}, ++ {{{-987, -178, -884},0, {880, 496},{0x0, 0x3F, 0x92, 0xFF}}}, ++ {{{-965, -438, -1163},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-218, -438, -1163},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-170, -438, -3513},0, {624, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-917, -438, -3513},0, {880, 496},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-241, -378, -884},0, {368, 496},{0x0, 0xA3, 0x57, 0xFF}}}, ++ {{{-987, -378, -884},0, {112, 496},{0x0, 0xA3, 0x57, 0xFF}}}, ++ {{{-965, -638, -1163},0, {112, 496},{0x0, 0xA3, 0x57, 0xFF}}}, ++ {{{-218, -638, -1163},0, {368, 496},{0x0, 0xA3, 0x57, 0xFF}}}, ++ {{{-987, -178, -884},0, {880, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, ++ {{{-241, -178, -884},0, {624, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, ++ {{{-218, -438, -1163},0, {624, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, ++ {{{-965, -438, -1163},0, {880, 496},{0x0, 0x5D, 0xA9, 0xFF}}}, ++ {{{-987, -378, -884},0, {368, 752},{0x81, 0x0, 0xF6, 0xFF}}}, ++ {{{-987, -178, -884},0, {624, 752},{0x81, 0x0, 0xF6, 0xFF}}}, ++ {{{-965, -438, -1163},0, {624, 752},{0x81, 0x0, 0xF6, 0xFF}}}, ++ {{{-965, -638, -1163},0, {368, 752},{0x81, 0x0, 0xF6, 0xFF}}}, ++ {{{-917, -638, -3513},0, {368, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-917, -438, -3513},0, {624, 752},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-170, -438, -3513},0, {624, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-170, -638, -3513},0, {368, 496},{0x0, 0x0, 0x81, 0xFF}}}, ++ {{{-965, -638, -1163},0, {368, 752},{0x81, 0x0, 0xFE, 0xFF}}}, ++ {{{-965, -438, -1163},0, {624, 752},{0x81, 0x0, 0xFE, 0xFF}}}, ++ {{{-917, -438, -3513},0, {624, 752},{0x81, 0x0, 0xFE, 0xFF}}}, ++ {{{-917, -638, -3513},0, {368, 752},{0x81, 0x0, 0xFE, 0xFF}}}, ++ {{{-218, -438, -1163},0, {624, 496},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{-218, -638, -1163},0, {368, 496},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{-170, -638, -3513},0, {368, 496},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{-170, -438, -3513},0, {624, 496},{0x7F, 0x0, 0x2, 0xFF}}}, ++ {{{-218, -638, -1163},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-965, -638, -1163},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-917, -638, -3513},0, {112, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++ {{{-170, -638, -3513},0, {368, 496},{0x0, 0x81, 0x0, 0xFF}}}, ++}; ++ ++Gfx castle_grounds_dl_loop_mesh_tri_0[] = { ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 0, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 32, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 64, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(27, 26, 28, 0, 27, 28, 29, 0), ++ gsSP2Triangles(29, 28, 30, 0, 29, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 96, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 128, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 160, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 192, 32, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), ++ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), ++ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), ++ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), ++ gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0), ++ gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), ++ gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_0 + 224, 4, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull[8] = { ++ {{{-4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{-4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{4428, 0, 3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++ {{{4428, 0, -3204},0, {-16, -16},{0x0, 0x0, 0x0, 0x0}}}, ++}; ++ ++Vtx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0[4] = { ++ {{{-4428, 0, 3204},0, {-1901, 2893},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{4428, 0, 3204},0, {2893, 2893},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{4428, 0, -3204},0, {2893, -1901},{0x0, 0x7F, 0x0, 0xFF}}}, ++ {{{-4428, 0, -3204},0, {-1901, -1901},{0x0, 0x7F, 0x0, 0xFF}}}, ++}; ++ ++Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0[] = { ++ gsSPVertex(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_0 + 0, 4, 0), ++ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_castle_grounds_dl_ground[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(castle_grounds_dl_ground_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_castle_grounds_dl_floor[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, castle_grounds_dl_rocktextso_rgba16), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 1023, 256), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsSPSetLights1(castle_grounds_dl_floor_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_castle_grounds_dl_slippery[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(castle_grounds_dl_slippery_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_castle_grounds_dl_water_001_layer5_area1[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), ++ gsDPSetFogColor(0, 0, 0, 255), ++ gsSPFogPosition(970, 1000), ++ gsSPSetGeometryMode(G_FOG), ++ gsSPClearGeometryMode(G_CULL_BACK), ++ gsDPSetCycleType(G_CYC_2CYCLE), ++ gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsDPTileSync(), ++ gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_8b_LOAD_BLOCK, 1, castle_grounds_dl_testwater_ia8), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPLoadSync(), ++ gsDPLoadBlock(7, 0, 0, 511, 512), ++ gsDPPipeSync(), ++ gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), ++ gsDPSetTileSize(0, 0, 0, 124, 124), ++ gsDPSetPrimColor(0, 0, 45, 185, 254, 255), ++ gsSPSetLights1(castle_grounds_dl_water_001_layer5_area1_lights), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx mat_revert_castle_grounds_dl_water_001_layer5_area1[] = { ++ gsDPPipeSync(), ++ gsSPClearGeometryMode(G_FOG), ++ gsSPSetGeometryMode(G_CULL_BACK), ++ gsDPSetCycleType(G_CYC_1CYCLE), ++ gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx castle_grounds_dl_Cube_mesh[] = { ++ gsSPClearGeometryMode(G_LIGHTING), ++ gsSPVertex(castle_grounds_dl_Cube_mesh_vtx_cull + 0, 8, 0), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPCullDisplayList(0, 7), ++ gsSPDisplayList(mat_castle_grounds_dl_ground), ++ gsSPDisplayList(castle_grounds_dl_Cube_mesh_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx castle_grounds_dl_Cube_001_mesh[] = { ++ gsSPClearGeometryMode(G_LIGHTING), ++ gsSPVertex(castle_grounds_dl_Cube_001_mesh_vtx_cull + 0, 8, 0), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPCullDisplayList(0, 7), ++ gsSPDisplayList(mat_castle_grounds_dl_floor), ++ gsSPDisplayList(castle_grounds_dl_Cube_001_mesh_tri_0), ++ gsSPDisplayList(mat_castle_grounds_dl_slippery), ++ gsSPDisplayList(castle_grounds_dl_Cube_001_mesh_tri_1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx castle_grounds_dl_loop_mesh[] = { ++ gsSPClearGeometryMode(G_LIGHTING), ++ gsSPVertex(castle_grounds_dl_loop_mesh_vtx_cull + 0, 8, 0), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPCullDisplayList(0, 7), ++ gsSPDisplayList(mat_castle_grounds_dl_ground), ++ gsSPDisplayList(castle_grounds_dl_loop_mesh_tri_0), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx castle_grounds_dl_Water_Box_Mesh_mesh_layer_5[] = { ++ gsSPClearGeometryMode(G_LIGHTING), ++ gsSPVertex(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_vtx_cull + 0, 8, 0), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPCullDisplayList(0, 7), ++ gsSPDisplayList(mat_castle_grounds_dl_water_001_layer5_area1), ++ gsSPDisplayList(castle_grounds_dl_Water_Box_Mesh_mesh_layer_5_tri_0), ++ gsSPDisplayList(mat_revert_castle_grounds_dl_water_001_layer5_area1), ++ gsSPEndDisplayList(), ++}; ++ ++Gfx castle_grounds_dl_material_revert_render_settings[] = { ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsDPSetEnvColor(255, 255, 255, 255), ++ gsDPSetAlphaCompare(G_AC_NONE), ++ gsSPEndDisplayList(), ++}; ++ +diff --git a/levels/castle_grounds/texture_include.inc.c b/levels/castle_grounds/texture_include.inc.c +new file mode 100644 +index 0000000..7ff1671 +--- /dev/null ++++ b/levels/castle_grounds/texture_include.inc.c +@@ -0,0 +1,10 @@ ++Gfx castle_grounds_dl_rocktextso_rgba16_aligner[] = {gsSPEndDisplayList()}; ++u8 castle_grounds_dl_rocktextso_rgba16[] = { ++ #include "levels/castle_grounds/rocktextso.rgba16.inc.c" ++}; ++ ++Gfx castle_grounds_dl_testwater_ia8_aligner[] = {gsSPEndDisplayList()}; ++u8 castle_grounds_dl_testwater_ia8[] = { ++ #include "levels/castle_grounds/testwater.ia8.inc.c" ++}; ++ +diff --git a/levels/course_defines.h b/levels/course_defines.h +index 600cead..5f64f56 100644 +--- a/levels/course_defines.h ++++ b/levels/course_defines.h +@@ -10,30 +10,30 @@ + * 3: Bowser keys and the grand star + * 4: Default, used for 100 coin stars, 8 red coin stars in bowser levels, and secret stars + */ +-DEFINE_COURSE(COURSE_NONE, 0x44444440) // (0) Course Hub (Castle Grounds) +-DEFINE_COURSE(COURSE_BOB, 0x00022240) // (1) Bob Omb Battlefield +-DEFINE_COURSE(COURSE_WF, 0x00002040) // (2) Whomp's Fortress +-DEFINE_COURSE(COURSE_JRB, 0x22222240) // (3) Jolly Rodger's Bay +-DEFINE_COURSE(COURSE_CCM, 0x00220040) // (4) Cool Cool Mountain +-DEFINE_COURSE(COURSE_BBH, 0x22222240) // (5) Big Boo's Haunt +-DEFINE_COURSE(COURSE_HMC, 0x22222240) // (6) Hazy Maze Cave +-DEFINE_COURSE(COURSE_LLL, 0x21212140) // (7) Lethal Lava Land +-DEFINE_COURSE(COURSE_SSL, 0x20222240) // (8) Shifting Sand Land +-DEFINE_COURSE(COURSE_DDD, 0x22222240) // (9) Dire Dire Docks +-DEFINE_COURSE(COURSE_SL, 0x02020240) // (10) Snowman's Land +-DEFINE_COURSE(COURSE_WDW, 0x22102240) // (11) Wet Dry World +-DEFINE_COURSE(COURSE_TTM, 0x00000040) // (12) Tall Tall Mountain +-DEFINE_COURSE(COURSE_THI, 0x11112140) // (13) Tiny Huge Island +-DEFINE_COURSE(COURSE_TTC, 0x22222240) // (14) Tick Tock Clock +-DEFINE_COURSE(COURSE_RR, 0x00000040) // (15) Rainbow Ride ++DEFINE_COURSE(COURSE_NONE, 0x44444440) // (0) Course Hub (Castle Grounds) ++DEFINE_COURSE(COURSE_BOB, 0x00022240) // (1) Bob Omb Battlefield ++DEFINE_COURSE(COURSE_WF, 0x00002040) // (2) Whomp's Fortress ++DEFINE_COURSE(COURSE_JRB, 0x22222240) // (3) Jolly Rodger's Bay ++DEFINE_COURSE(COURSE_CCM, 0x00220040) // (4) Cool Cool Mountain ++DEFINE_COURSE(COURSE_BBH, 0x22222240) // (5) Big Boo's Haunt ++DEFINE_COURSE(COURSE_HMC, 0x22222240) // (6) Hazy Maze Cave ++DEFINE_COURSE(COURSE_LLL, 0x21212140) // (7) Lethal Lava Land ++DEFINE_COURSE(COURSE_SSL, 0x20222240) // (8) Shifting Sand Land ++DEFINE_COURSE(COURSE_DDD, 0x22222240) // (9) Dire Dire Docks ++DEFINE_COURSE(COURSE_SL, 0x02020240) // (10) Snowman's Land ++DEFINE_COURSE(COURSE_WDW, 0x22102240) // (11) Wet Dry World ++DEFINE_COURSE(COURSE_TTM, 0x00000040) // (12) Tall Tall Mountain ++DEFINE_COURSE(COURSE_THI, 0x11112140) // (13) Tiny Huge Island ++DEFINE_COURSE(COURSE_TTC, 0x22222240) // (14) Tick Tock Clock ++DEFINE_COURSE(COURSE_RR, 0x00000040) // (15) Rainbow Ride + DEFINE_COURSES_END() +-DEFINE_BONUS_COURSE(COURSE_BITDW, 0x34444440) // (16) Bowser in the Dark World +-DEFINE_BONUS_COURSE(COURSE_BITFS, 0x34444440) // (17) Bowser in the Fire Sea +-DEFINE_BONUS_COURSE(COURSE_BITS, 0x34444440) // (18) Bowser in the Sky +-DEFINE_BONUS_COURSE(COURSE_PSS, 0x24444440) // (19) Princess's Secret Slide +-DEFINE_BONUS_COURSE(COURSE_COTMC, 0x44444440) // (20) Cavern of the Metal Cap +-DEFINE_BONUS_COURSE(COURSE_TOTWC, 0x04444440) // (21) Tower of the Wing Cap +-DEFINE_BONUS_COURSE(COURSE_VCUTM, 0x24444440) // (22) Vanish Cap Under the Moat +-DEFINE_BONUS_COURSE(COURSE_WMOTR, 0x04444440) // (23) Winged Mario over the Rainbow +-DEFINE_BONUS_COURSE(COURSE_SA, 0x24444440) // (24) Secret Aquarium ++DEFINE_BONUS_COURSE(COURSE_BITDW, 0x34444440) // (16) Bowser in the Dark World ++DEFINE_BONUS_COURSE(COURSE_BITFS, 0x34444440) // (17) Bowser in the Fire Sea ++DEFINE_BONUS_COURSE(COURSE_BITS, 0x34444440) // (18) Bowser in the Sky ++DEFINE_BONUS_COURSE(COURSE_PSS, 0x24444440) // (19) Princess's Secret Slide ++DEFINE_BONUS_COURSE(COURSE_COTMC, 0x44444440) // (20) Cavern of the Metal Cap ++DEFINE_BONUS_COURSE(COURSE_TOTWC, 0x04444440) // (21) Tower of the Wing Cap ++DEFINE_BONUS_COURSE(COURSE_VCUTM, 0x24444440) // (22) Vanish Cap Under the Moat ++DEFINE_BONUS_COURSE(COURSE_WMOTR, 0x04444440) // (23) Winged Mario over the Rainbow ++DEFINE_BONUS_COURSE(COURSE_SA, 0x24444440) // (24) Secret Aquarium + DEFINE_BONUS_COURSE(COURSE_CAKE_END, 0x44444440) // (25) The End (Cake Scene) +diff --git a/levels/ending/cake.png b/levels/ending/cake.png +new file mode 100644 +index 0000000000000000000000000000000000000000..0b0beb7d0fc516adf2b2bc47d19d492286fc8c30 +GIT binary patch +literal 45563 +zcmafaWl*ItlQr&cgS!px?(XgmgI(O6!JPpHcXxNcaB+8s!QFLm`R3iN{q@z>RytBS +zsdTCk0;ji20uk4wjjX`>zw$O;%A7_5dCYor`QRBd!$;j1){(LR7QUU>3&x_nDtTN}E1C0@p0_q+mb`cGf`&0Ify0FMF%Eq`$RlTSfhX-jn$ +zf+ki1c2L%@we)`izGXK#{7;Z>{(FpNAoqXpCRWJq|H6Oa?M(d#x0?iW{LdVgKVZE6 +z3;+M7_`mS~U4+t-;1e^{S1x;m*u_|34!5rNtsn3w?}nrkhEn#8$pwERs0f- +zCH3WhFIQo}mQZ;T$LinUR08gfFs=ahZG-ohqZRCg_3IValb|oJ`ZoDXSa7i*lYXma +z4({;_Ov}~EPk`XVZwNT +zP!U{7K05o3?Mi`+TGqm?zj>^;diJJ42I-=S)kaJ%M!R$_d+PaxoxbO-IkxzrSf(@c +zyHQm??QUCP;0Z2*x$Lj=E;~E&^=zP&)VrMn>CNUdB63l8q(Xb$sbejY$KNr|xAcft +zzP~{e8g&bRfqC8C{!W*kbM7A}zeTdXX}%HYXNq=!sEFeAEAv}lGFo7q*c>thR}1oy +zBV;~|D(@=9^Z8L`$Mb2BNws@h@!Xv*F&~mQJpU{PrkzJ7DLw|65uGK3$cHJAX(-}X +zTjcL%uo~C$eLThCTTVu}Lk;VFbwsCX;a}n~_^X+y>cr+hK~qhUF^DvkM(gOq@Uwj4 +zckoR$RCA`(+vHm;U9q-JHEO`}%VoN}Kr`+())-POoB=s%S|lTur5?$c-4&-53O+86 +z`I5Hk*g;+3?QG);bGu2(2aI5XwaCxZKbzqTG#beLgW5h7Eu&ER`nrKpsEN&teu +z$=@k@EOwOJEDo~;Cq=wv!s5qlKJy?OlA~CjOL~rwDLM#x)>(8Gw&!6^s;zK=Fc!jG +zaodP%{#jEr+#xFRB*lSJ&Km0gBm1OA7(IQb+lZM_&IL;$XZ(Ej?xEC4s3~QuKu;oT +zdiP?tg`=4Vlh6xB=W#_ZTE@%#sLTzx9)OLyjFe*FBe(yqTVyPx;O#Rt#I1{L7X=g> +zoart2iBJs`TeWDa#wxf8R;CubA7WtDjo#1<72}MI;>P@#EnO=(nr)`RT5KLAfnK6E +zk?GiCkW%R?#s0yA)M)i2*!2xhw^?6*rpXv`?nTxvN7B5q;+C3vmolR*`KVW-QmL;Z +z9ly0s6=LxjuVHl1P~#ac4+zo=ZGEGDlL#!BsITI$s6seuH^fVLcZ(XQ_j&iWhIuIw +zE8}O^B@Z4$P@!Ck38QVLV(Hn>K!^ExL+078l)$UhxtsAaUmmHPBuIv2qvIKc#P$%l +z!bPy@IF{uL>vMOy_$OLrlMhMs;}<0JRXnr^P^H&pt;zyL{)%ub&WzY+abj_aujAf? +zRJA|eq@Cghf3l)|wr87wG~X|d#TMSB@kK*=5>Ljs$c;5bUwKF)Z|6IR2i&P$LJ5^e +zL_SPOLn*@E2%kxtZFW8f6orC~6p*zB?KmZ)xYX*nnoD{zuu>FmE)%5U;HCm0942Xc +z$S}%FH3O5YQ!~^EKzzK#~nCgTm{%)7G2apwm^qf3HtJ8 +z4fayZSMP4CUO5;j14Y+UCe+dc&R)0}hi1ING#JCGygDgtc04Bh@?&}6?Ch;bbT)F~ +zX!)?Z1rh8r#ca0l$IW59xKVFX_FGY8^}BFfTW*_NoHWh&Xkw8({F2f-rDo#~!-~Nb +zES}jd^4XEH!N_M3{@CW=_ETj`b7gZ(lnw@dXMk5FC`6W-rUz)fhVrm;GlTmWpD$P@ +z^Tn-4t%NE325&1X +zvO9zHtJ3IGf=d0NWAIq1snNJlTs!p(Ul&1tGUW&=BSm!&ez0AEw!Q>$pBdA@ +z+ZKe>MF*`?e+<0kd4;j`l=<39ejzD9x*j|HJ{S(kV|O<1$)s({Kov+@77+=UikoJ+ +z(yvB-5Z}RoJQNm(6jl+-I_Dl6E#xe|vZcbMx%n=4smI4=;;om#x&UE3pn>={&DDJ= +z>ZnCrX)1bX32YcwF1=uo&vk}snqZxx;gae4oKz|g7?BE +zVtK&~XPk;$hf%66g~ukI7E`Cw76I383B9D&cMu+tFw8@i`#J-COZ|MgHfF}SS=x5R +ze#qolvelKYIh<8QVv-`-wT_{h*FQJO0rO)|daN-32lkYni{_BRLhk^$E3~k>kCc%n +zRgEnMkwQ$9nhLAe0kToe?JP0O_WdD@VXzbIl$bi@s?b0zo#Ed>@Cm6qJU0Q#HXcu8rwoT+B#SH4J+Eb(PB?&fEAA)0(CEDs`l71w}4J{P>KDlAiZxTE5 +z@C>bF(?LxZ-vZN4Rpu* +z`;C-W_Pr4mjicZ}@hcG|oc46(?rEZ&Xd<3^@5rlId?0W~yro$s97iiw);%rM%wzGy +zQ^0m<);A$2gTf@jIe73)hgSlw2kN=5AENM+DvTVHhr3Ct_VhR;Tx-N=SB?hTQ>NCk +zh;JTz7+&?^d{*vXeIhY*V8Ca3yCgme$TRm?&ct4rD!*Q-rb~R_*WaTULTgJrx~)o$n@@v@5B0lBVrA9 +z!swYwULu8(*6~k}gN(kaBsvzAI$nBfB@}|CzKOE{u9f%q7qb(IrUB_}K35*~G&P-f +zZFjcOlSuLs8(4o5C~+Yqmb_He=+R%+aGOcT`?CZ)R@7g_CN1l%=@1*iP#L(yYtG +zXzTXI<5mo9zfKY@mzIpFa))IvU8}AOY(p127q_1j0@Y&K6k;~AZk;_y4eNrb=cgv4 +zpa|{|=YVe^@6^@)y-rdZA#VVkxi3GLRYS1LMzUiqz=oYF>i^y)MpxvvmJ0f@06mQ` +z#~W6nmo&!NXNNU~LLdcKAZ#W9qw2j-X~I`s6(2dY7Gb%fBHM9lvLv4TWcyJ|T{!~u +zXixO3vi5Cr(}^Y)+1P0Nu42PxBT-+;9eb1jX@>9F9!lOik +zgI;JZ9~L(Vc0@qY77WxwE5O)G*h%u>nZT>D!Tgkutzg=z1gvQ3h@LUk%Bx$2|A3f__%(hTd$H7Z1Me1z_f2O+*d3fHE0wqcLz +zwX#G(&z9Y&X`AW<3>7U~m093n9A7sSjGI>K%ujp#>0yifUh=t?0O=D;4ds+wphoMU +z5uG+$FH5lJHhxcT`OrOq<-}^a?x2>RfROq3$1PnLW$|fE8}{?2(308#pWo7IVylax +z!<%03Qu1U<$d*XQH#=ZMYlXHU>((+-=`W=Pn0x|o?wHRv%`8+N{-1l}hLqzbR=5M_ +ziU2q`Zl=12b#Q5$b6%t$t*7t@;k5Pt{6qkn`p7+51R0n*G}3uc?@MNZcKKs^O}v(9 +z|pJQ!r9SuNG|Ih*_;@$ZvgxS__VdIXI7TPEGaPe>-OJ +z-~h~6ZyHKP^Qo@;ib{W+urbxMsMJ=Y>2jRkO{e?ZMEi3SDsxwfJrEGJH|v2+j(o=tIrr3qV@O;$x-d5yt(=-X^K~@F=9E2j}pmxpg=|lEV|1 +zZav-|x)Y&?A_HEKH{Cb?!fU}@qDz)fti8a0MB)&?bdjOUV9H$V=queM{gg%NsVmXP +zdY8_}L^N?e^VJSdRRa1F@wS}$ds}>_=R`B0J2#&dg=ZM}<-^#cAOJBulgD6%Ie42&_{v|9pOCoOn^^kER_A_5J#mw}FWZ>??Ta5L^Lvup;6}m{v3; +z62#P>D(?YZPPV|0ghLktJeH+_q+h3M7!mx5^18r09o@Z0B=wF{@az2I&!1twsPeOvA_*;z_2ESKx@&pD?$%`_cC~6Y8}!=(Q}U +z%s@R-jXX4*g^k)@S~m>mXLU +z7o1zssq%UosztwEXQMd4IFzny4+Hu*avsA)mUei}IpEyICn@64dL|KAu-6bhd@T23 +zSQ+0}T!w7vj**k7|Gwnch3>-2xWZ%K9wy^@+3v#%j+mZ!nUoUPXq-|~$_cncd;{^F +zxGpfiZWX)f65aY+_o~VDp)U8;2JpZ&i_0|HcullKuDM5%cfwrN-x?7h$dnUZp3+B< +z`~^2Ocj_MfXJoo+TfUrH)btaTxKlC`P;BAiYyO7Fa%9{~tuw0DUU#vnrM!=5i%pK! +z#*;#|*u^#pUC&^$R!^1e2Hi@Vy6{@6X};||D0;;HMKK%j*L?%Zc-|y>0|qpAEAJ(U +z+Cz<;3Uk>~J(v-V+Vi5j=^tY(&v*zW-z)#8uX~Xl#Q%Wlo~`M!vkoDCkQT?a@$fn! +z(oq+NvYEywEf*5ScIPW+^oLgKP9rl&sU;JwjuWC+fzZb!W!^KHTkfUCTU{jpxGsyl +zb9P>Zd<0z7;~b_Rf0WuBW4Fk892U14+(2!J99lhB_bM#Wn3lCA*SpL&0({f;vUTU_ +zY5pUx9e%V9WEK*L)sQc3Xt@jj#tRY{@zc@uoo};tj+CwK?jmHVr73|g@XG(1_;m+qbN75HGX?n7s +zKWTPMj54Vy@+blvom7KWklIT&-CmuYHdRn#^l^%i8eeCjujpV +zZG=1DVd+KvNiQ7+3;3eD0M&7^=a9~`>P~K2=OVL{xEEUXtD#A7a?14pI&nan9(#r8 +zTd^0G__F%)G@YZ4sqaEb7L{SUm$TCt^uCajGb+xbiKpXD@<@=pzxw29=yE^AIB`8o +z<(e1r#Ve}?LQQL8iKalk3ro4GItDa9kZ^0YGm0%Vf=_jzN)1(9d3jZ2MKGm9QuMl& +z9S~-F!J4mEl_mtNGq4iHXHj7T0uDozFS@kk +zJk6n)IFAN`T4P#hk0YiYGR;{1${W@1`pv0;zIF~3l6>0>HA+y>MoM1$hDl4lNv?qN +zSL^la4Y$ws$ZpnG-g9aSADN<@4IktFv14Au%5KosO>nGhq739;wO@JjQHP_$LB}<4 +zK5fae^d(aP6f}BeSQfY3Ys&ukn#2uk|dam9Cxftol`tQj33AiUC~Avxw#q6R&a&_>n;L45v>|SO;+Z=;69cLi|ro +z+HZdG^e!mh4$z-SyUNTFQAq=%Q>eJg&z0!m8c22nRP6U;7uB+#jrYm0T|_?`C!j71 +ztw)0Kb +z*^pL7hj#_G2IlW8F-z$vc$Fv)EpRT%A;6K<7c@{^Xt&TEWZe3ZZct2MvgTa699gTf +zPbi8NZ8iYLQAeDYwbdO83;xx$nM*;&^7-0M>K`3r{vW)~amy~~5c{0XB~&FuU097A +z;8SE>V5S#fGhj3Nk^ZVd?a-)oeaCrPX}qefm2UL_Bf;CBwcY2!hrc@Bp2rYpTz7{U +zw*s7#x>~poh+6dMFiZ$gqTo1k%&TNiRrprXwLQ_s+Skimbg-e!*?!91pH?7)`?3XX +z&S4B_FP~`8Ox*rkvT3Ybc$#ym)euG&xrABy_9DjLP0gQM~L1Jv%B*g{s4( +zvpj-m)61YJtc{fD#}E-3EeK;}MihgYsA{91a-`+n8GCSA{7zSXQ{v~>jKYt^Nm!HMRwA#?L}e^OP_bzSl&b +zA2y%7p$w;&x9&Dbz~pP+G!6Z1n|BmH4#6-RiX6$6T?Hk>=)7zTV6A_97)3`i~)P8+E(l_d}byIr|eY?ez?mB(6)N&dw*_)%drG%fX|#b`tooHjDC +zz=36+5+W;%m=rd +zdU@f=&UXiNrP2%436l$wT^uiq-IJpBxHT1W7aKJ)6&Aw9u=S2nVxATWsweWlN?(C0 +zgG}RSq6SO%llBlkZO%Ilu@1O`<46n@Vqvm8oe0rLXB{aoze^9M#mZ62PXPs6iqB5C +zViQl=3iG9ev`=>8LNS?{)~*R6vc6(Z!5AZ&>~fiQ7hpWtpsWth0uT2S8N`i2U@V}pUQ*Ez$c@v0L!4fj=BlKvb^Jt +zU)M>%PihxGr?o=4K&S+Zr4c^0fJykESaP%pr?ZVgaraEf%DiPxtwJgBa+yOHY&|jg +zOr1W!Nq%uxYG-5`JN0-;(OGo4eWQV8pyz#@T!t&ata{kV7?Oja{h&;ZEGtg`YrBH) +zF}7Bh`@2VbRxonGf~re4Yzw$&6+sh(nNlUEdnSfpNf%@go`94J7T&b2pG^VTfzg0^ +z)I@hmxpcS>WcW@)iscXn|q|8!!T~m5rcU1 +zXlZ3@B;MFBX>+p*Qhh#asa&khtpytg@}0Xnmsy20Db!oBao?{RP01GVjCAlFd0FBto{s1cvAQ6)e;+QtxO@&xN{UJWg{m|w!>d*Pt|GX3 +zA4Xi_C_El)qh0myV8zQBp3vVF#|Z8B9#emeEQF!2j$#vEeLu+97T9u4unZYN5kvLs +z=QfiWkj>NI-$22_J(5D-Maa8nzXudF +z3iv?&JUJhE9(MI4rSW*#iYY^9SFZPrT1uTq@n7Hw`iraOQr~bV%{-vRBo4Mx)_@O@ +zu`wa%Vl-=q#J%jr1L)OUFUELHQdk?_COA#NSUnBB=Gtet?R&DWAd>y?E<!7nD2`ixb}c1H5TZagMah76`1hT6zy +zT4GRdf2vLL`+H~c^Tua#Y$BLdTBXXs+dj?rig&7^NIFB;9O +z{nNcoW>K04Jd@$xZ&bPljhRf`gvF^RNOV6IjnB0>4Zf69xXhya!1>Km^oz`uno2y~ +zFi`BV^7uK=RjhsRR6+Da3KFqBgV1Vrj6g!+k%(DMP!3AoT+^KjcWC0q(NzA+Lj$LmkL&5b}Y;n{PBjQZ+UD6H1*+TUCJtFly+io?vq +zgN}`EMn+z0ECn|hZRw5}GLb^;MazR1E+7XD4vpg26Pe#N{^3a@Ppdy2 +z;)FlDI<2m(mFDTFV@E3hIW}OvUI`-W0Xj>e?t&9E`&&Y|egEnZi{Z{ibPGpj7=3Kw8 +zMM={5GUlu-Jv3Sdrr_rjbXcx=3et3aBj +zagIU#dJu5J(&ZU?qKqfwr6-g|~O+PHEa^UI0f@-9L3 +zfMi33)7v`oaL{X*h2LbarE#b3uMz*_Oxg?-6ztVoPL61~L>I_$casDTCeA9@#=iRA +zmUp7s%iBYqr1;sj7Wa=w8mdg!2{mUXv4aRI{EfTzgG-Y$J~$gvGW|(QlMiV_w%{#@ +z>S({06jj#BXg0Cu_Tr`K7QBHynqz7S?;`j;Rz)OlwPAE|G(ea`&a{OUptTsjvB+Y~ +z7t7;%k_Izyh8DQg(o^2DiH(b^_8UG01a5!aqb>j!$;VBp)X=`dy!RG3cMM6|N5@Ej +zpi_0w72)LN?I$WBjX$xGzkM8q^zL9k@wGo{Hq!C#9eU&*gsD@g+Bc!W20R +zflRTs%n2hv@1IAvKL=im=MHcaRpXDH8V<^_>|f)sqFBoaaz42Xu%m5Jkh6&4zlj!(X#39^YtRyjGE>1t))eVn+sgJZ5gZW-e5gDLrW&IBq!1S28^?4%T +z>07hVgXd~j=LBl+8)w``vgg)^>*Umw^PJIP&ts0?`@u|~>sKRQf`(v*4v{mMb2+7M +zOQ_m0=B(jU6>ZT}o9IeJ_>Fwc?xIEtV|WZ!gjK^OZ^t2Gu{r<{yA8>ih!W=M^#>ymYjzVz!N7CoTL>J+gW@z`p4xAY&|mz_;hu7=t?U^rjW+|6>3nSdvBw<*c;Z{YTE^d-!Jjm%z8S +zxLboKD!v%eFZ_{j9)N%y1ef)g!*_UdQJIC9_ro@$y=Xy%NmEWwgFO{9C!zEmw04~w +zS5`=5I-_w}?oiNZPfOO=G&@m6)CO68HI4_-bzcpJ-+Tl|-Unj{hLRdns)-T`=1(4IMPkkYtNl +zJLx3g?+OJLQ&vc}#F&fh%FCFt8&SO`1t@x*Io|Dga&Kwpw)GG~;AzX}-A1licxtFr3Zwt2szg +zJ1yoB0xTrZ@Y?yuMIu&kVsT;PTF}yjSSppkdoUg3ZAo>w%Sul)jGpB}YR~tU9_y%} +zfiR(#gHMt7{E>L(H3l*>vx>_)(J3B_;+z!R{kFbNbW^LRc=KBrg7){;Rz$1L1&n0o +z`pOv9*@wcPUA>@le#4`l&wzV`?c+-ln|qKkFoyZ7Z{dBH#Nk%>J*0Pf40^QZh49*I +zm)y4Z8U6D@xy|czm3wsogL>lRZCK2b(4?+4g~utW1zZ9FpBBKhqF*T0(`B8T&TcT; +zd^?9wRixJ6J2--U#a2-K_ACF(t=XVbDWHDKW_-&Y+>7rD&4Jct)h}=?f2S0WaMywe +z^om8aA~_k7^Sj3+%2^kFp*&OFx6Pbq)y-@zIa8!oN^Zkd7qBD7*@-YgJlIIQ+AazL +zVp5cI9$ZmXH4ngXnE&7}*_8XOm9@frb$4vc-C8;Cu +z2K{)zA-FYm#UGGVm;KfDeo!TRL{zhXb0qN8BWU*V6fjt|cHaH=0J!>EGTx_1GuqMq +z`8Qy%f4Hk*$GO^+yskN0L^l9w?S?_kCeAsgCFa!n!mmxN#Y=&vN5zw3tRkY#!n +z_h+nm7EZrq6(gG0*f5N-7paKjj#CgxX6@$#-j*S|&v!qWxY;YXDt==aYdaAxyM~90 +z6gxiRBk6t@FdjtI5_*v#%!pOyMBfI@|u?stug +zUabf|^!6~N3!ZApBVIu;q(wA`f&dUVEv)Z+qWUE)QG5mRA1jIE&c~VgbZ#oMtLriN +zpULOKMM!pF!w&9{CqgGm~K|OZ(a7cbAR$8YckNo`uXg;z2E!#z$~7M +zF^q~<Jj5h$m|TY%{K&SgrJ!|HiIX@Pj +zgF=DZJ^o$W=0Goz`Bu;@=0sWl9?Y7z>Bo4c7lpd#`PQ1=s#wyudcue$_>@)=jsDx| +z)^j?o&%)X3Uk(tBe}-{K#Pt@a9cwz1j9iP~pbB|aXC*nPpZwGbB?RzVJ68UPJ|nEk +z!vmXRH02k)5wgS+p$BdAhNuk_lD9nKw_kd-|(JETJNWz(oJ~SY_gSWt!-^daukoBDr|w&E}tpkaJ=IRw*wE>MBGHv*3P=hHgA_rFVjFb3`egvlAP1Nck&bk +zS|)|?n}sTe+3TXEXkWVw*yWc&&y%w~wW9@^fJ@baBU_vV9zk~%vOyHb?c4`9Zvoz_ +zM~WP#*4(7Cr;YoW%N8Ft-og6b(pO4L=j(Y8Z4SuUHAr~?VJO6q5H!x#JoDh03~!)I +zxy04_p*#Pq{t&$MnYut4K0V-&+J8AeEguxSWEa8CpVnS~&p@y-Gm8M(|JW3H`r8W4 +zgIJV(qj#Ha6?zw4==1kC9{&}>dz!Ep%rdX1u1B4Ye>dg(Ny?{d?%M~6=I=_CB1Nzm +z)E~qzY)5m54|`1#dxTJ>xxeO6Sm>=-oC9yeP{o`xjWn3PUC?Khr(qM}v5-%dDfbF} +zI?-jGAC;PazOhR+Cu8G@Wh3nLJx-t+hRRkMr3v8Kx&-fgU+|#6FDL&2vRZ|b<{Vfon}kI-Y2EctAINuqtDM6b7sHzo6Dz;vgQnmOf +zrcI{9nRb<~pwyLox8)EO7!WT@9c*g!G}yJJ+Kn3oF~{9cPH-oH!Jdr$?;iGk^j5y& +zW%_l;<1(RAkPWZ7h1gRSV77g3*j|egB8W8kr(yf-^Fr6+yXDD*Z&VdS0(D9RJA^sE +zKWaI`#|`0MD((Iu&VH{9#7!v7I*c02`XzAz$UI3Ba-A;B^(sokdUHGbvPh7bJZa#u +zukc<-z?(L2r&BQdSD*3mpywCo*Q0IS&Fm(`{rv^dJ7c1*cf8G*udgDE;(a{gh~?Uk +zWH&0|LEre$UUcxi;g7UcL`xL=f&Q^qL?FW=iJ{?dk?*-czJW^|D2)8d1B49sAvX4c +z2CP?|*(&tvF!pNY8qMeQ$_iem+!Trde}_zzo*oQtlVNN#rZ{|lC=bn_sC8k-5etsi +z|9BtxcoymB1QtRpVEle)R-&OYEUV1^_foJT((Lx0Xo$d|Jghx5a`a#jycH!H)KxE& +z!61^0qrdw`%_ZUY(UVunM55zNO&IsdsU6{9z8iJ2yHi}*f(||T$lyu=hYD*80onDy59bCN28+x<#!0> +zcarUq?iUE*Ca=&<`m|@y?e@{5u(#*BudLpo7~wPLry*{hRwsxi6EEHmF3;_j33U5W +z^!gqhV-_)WB@YAVAcS4L*2K+ih-}$v7&HF#%EAsWUPBdv^E~+gu_3Nx9Wng3&vBWh +z%|~Fz$F(GgZrE#$amxzvg>fK@s3)-iOOGm&E(4r{Wb`iCndXwcO)7Al5!%a=QYSgI +zN2{?D#RFTcb*xX7%pZ!?VuSR0qu3o~HnbL9Vp(~4`4&zm@sS6ua5hMv->HCEb;k%b +zwqlki?7p8vK_NN;j3~L*s*3}+Pd1fnI)Q8Lj5ITmN_I+jFSueQZ&iZr#39$}rJyOD +z$oTMnQ8qZf8-`1II%1GEQ>Pg7aUvm)*OlbS|G+Ap-zRxLjoJD37q{2#h%nSn-bbH6 +zK*K#u*_F;tm#|+OMTRG{%U&&*t2EsGh*ufIP0|)>M<Sr2<_C1uH+e?F(jAhYDEvs97vGP#X}bBxKoS88XiJw#=qFypTqz`zN=!H +zaGS49W`ZA$kIM=rs&WgF1qMMMBFCb>N*@F<w4U#M{}VwNNtUSfg98(K?eqmDwI_ +zN}0bcm#~r`fr}I`%do% +zSX<<%3Wk`ox0s0pWUYL=2Q}35%ZS!EV3td&lpS?tvxtPak8G&Xic|yU>7cm+3)eu+ +zz=CBPlXj=Hxf#+u_4DFPdU{ita=f+CcLTaSzzDdryaW9B^)jSD$(#aFL^xYC=pM{c +z;S}s|k1wmFKK~c@SLW}0V+K_}n)CiKRX9_A;!u=G*tSZt{m=B{kcSz_j6R5Cy()>! +z1}58T>SJ%a+a%iHB`e;I^Tanrld}x0zf3GbU&037P?(H9jARi4fed|mB^whmT%8iS +z;j8w0^^$1We=CdoW0*mR%wTCCy?zd|=7i!@795<%ox|hLWZ$bViz6H*P>Q_yOO@Zf +z@63G+i8pM#fE&K++3{M}D>Z%ZyL$Jd-gNKl@KeIR@68bv&)G9DE$>ZTN$BRB!3ob! +zD)%8$J5?8fywOOm(9p{v;vM5pK~ZyeADPKg%7FF)S(KPdDCZ_M+NdCJDmq#rRFQ|f +zior0Fs;@g^<2=6@SsT+|#+l3fG?-z2ke%!X{(BzJ;F+t_)thSo1A*P{+a)`DoG(*0 +z&2R^=fFK1VhV~Nd>*->2_;3A@KGuMkeM3%~RwatqYB@I2?(o3{#IV$*+{VX~ER`;y +z@Msh3mO)#Ql27pEd>eT%ng#F&xG-|@(O+aGk}~m(0L;op%KmS`(qOBRD+V2ktj+8( +zuP(>lN6p=GwnO+8x$vXojuf|$TW@$~vEZ1ZSV?X(zbU^{o`TV9vTmHu>Oas;6XZ*a +z826P^X;ZPFT^*SJ4hgPX_3RV=kpA3JJeAM4lmcdh{lpd6A0WiH-Zh1lIzjA>1OL +z_ZJ;t0V`kMb%HOSoikBqoLrZqQ015fE|do=7=#wKRsHuYUq^dnY>`u@N@r8}xBfO( +zR9YdG3m27TSgd>MDL{rBE!PrnXqF9cgXTTg +z>47%EbODQFB$V;%C}F9E(??b;)s~Y~3p)|fA?boBq=P#G6<5C!>-m-7eXgX7x8p;g +z&e%Umefx|3v*;j;aNGBn-Ot>W&na!5&-tqE$KOw`2Q$6X6@P_y2!yu}7wg^;%6`5& +zx;~5wd{fRo82pp%S}VaSxsuNyJ3HCf+&R3o9}u5*^+x*A`%I!b1-r{@Nh%+fkzqc& +z7MNPyG^c0zqhWvzK0c%6Cskr(EbJ=T!oysRZ)Q^N-GkJ)xYa)b`eocQ84GSN +zMv?j~Osm0m6_xv)W+cU}5|lXqon8o!x(6EAc;GJ-g_dn&*$@t&OL*sRk!xh612-H* +z#Fkl1j9dznbnvXahOzvYL%jT{%Oqtra&-$*%gZcd?AEQ~bvtM50Wnp1eW4SfH7ROd +z(veY6S=8o$G!`3v@hP|odZJu^mm=M5Et9^HS>z0fu!2J)-}@==J8h<>t}bc6&#FJ$ +zzA4P(XEt$l*JeQUReYn%1C`+h~LQLbA4m)W4=P& +z0hoo9P=4Xa%YY=)lZ01YH7$-^`DX6~2ag0HX~{Se84Q8O%ph8sMKUQ>X(H%rx;zgwxl;l|Jw}hvTg_$RcoS^;gtm2O%?P+>7 +zDiYFfkuxYyWIa+0Y~J2woN?)Q{7QHd`r?y5K3?z`Z2d}I#9f)~?BVNi_PhifFvqBPf?-V3qSu+aw(MW^<|6^}IZhEkm7ci^-U +zw~V56qrSCTpS|pVZSuS8hdHl8E%27g=lv?lrcya1WJR?i7|cwv5ituB;a(f}^+z8? +z(+IVO;HBrBmNdt`K#-S^i>UU&BQ%%t>OmF1$RU#@wazV+g42Ux1*fMc@`?YMNYitJ +z+c9BF!JH!7#8-Y;t~KV8$5|Y5z8Djj8iQBuq1VnA^^e)dv~HC2QkJ3?r59u8X$c^N +zb0$QSE{JEP&#)|!WZpw*)+msW+Xb(TZo$ip-{F&L?jYdCh=S+XU0bHhQjL&tT?Z<1 +z?QwcUijXG6y4zz$O0vee2<-0<1)eO#cX@=_(n|#KKq`c$H06O|`c^9$+}!HifzXES +z=Mj%t3r;Z+8t22^2>#X>WBCQmh`q;a2!v(?4K-ECV9l1Q^Pwhd2ON90+kVnsTo!cs +zzDrtm+_Z%9Z+WBET?x!c#}oehO|E)n$kU&r&BPkuo+dD*lFSnA_ucBmql=*?hX|(Y +zlZa0b6v|3%fNx@oq}zCS=llyz=pC)|lR^IcT%e;-jyNYOd=}UoC7|5$_S9SvD--PFTx4~521jbU9IQb-U0b1xj&hlJa0Yyn3tRv +z1Fir)7Ao6NA37_kT3EELj1tdZh5k&8Q`@lu;L|d-8W*;t!~@wq5W-7D{o&rsUWDd6 +z(kmLst_g|W4?+t?gMm!*LyxQ#N@$V^T%0FIY>89a%F++5O?R$cM1S;@3XCS3PaY|1 +z5=gMWujZ9MQhsv%Eq`kxDk271I1y?U;!Un19wB|GIso@%ZP +zw6w1fwI{kr=2)Y)X)%nH&iqXuDk|e^pF*kLcn@#JXl5`POG~)9F*HrIo47)Z!M3;k +z6Dlfv&5pG{K|h#||3jG&j@&=gF!~l9%8{)3f78nak=t?6|-mh_*+e!&qRT2wS!sqwCiR{k!RPcUA#Xr=UEyX6u5Dxfps~ +z<^G^9Y1|L(4!(a6^HyR#^;p5A;zrAKB=;aZ^b63UNx_-C+E_4OOLD?54OJz96IHa& +z6`!N(=U+#d_%(XpV0M=Jy89FW$>@3TzvUEWpqlODe>sJvXKzQ7kd3pap1Lr(>1A6h +zDM@T-XU~%_HMM``*MVl0I#DhH6S(?|-}#X>vsu$#J$M(ov7o&zlQ~FzZ@JI!ly4tx)ghXWkh`zA4>Z +zEqFRDX78n=^G!^=w?7HUe;s(D*OHeh-=850gD!f4CJi5movsBUH$u0d?HP1t=7@Ut +z=?>~Z8&{9$U<@7Ph88%spi#*)2f~iMzRgp>I45hi$^?FP9uq2^L=y5|wapxJtgF$6V +z;bmJU*l?mqKk8xCE$u%4_r+^>6!SzdpEsNB4VLd5UKJq%z +z+`t7f0y!$Y&=Q@KW(1lL$d-DI+dedYOeHA!KzM~QfFo>o(io8Ao2nbaa*i2xDAu+_IHjvG7;~K^_p7C~s?u3J +z>T5Ijk)ZUf(tgA8G3{_q%@y5ecRw+S{iyedPcu@2*GKQ_>iT8tD;s+A`S#ZK)HqfD +z&9o10j(;l-B8}Pb2o?yn)^u^X8Pt-xKk|*|=Zs*eXy_EXN70)JcUV|p*yjGh%#+tG +ztYf_`Mba+*7Z3kPXY+HjPz-vz$mm|XTn#7IWH4^jo+yv1sTGu$t5ILLj{Oe>q?*;W +zQwV!S*}PZ6%wua@9Pb3QR_hT~*+*R*fGKC6^*0W(VtK6Z^bKCj9ukRNE+3m3Ie2zt +z28IPKZZPQLxt(ubdOwJh@BfiMv34+Zq6k4P6l8ZO3$r^D^@yVN2&S-@btd{Xq7?~= +zU*PffDXkD^i6ssCpU8$cxje95Yceaz^a8SslqGAv*$~QTv#sMkxJ{{t0ysF-RWZ6T +zO~l_B^@27OV7%H7#c0g_y}al@@}E~q6ylIR?y3bD(%;QZl?+n5XXYuYDp>&=El#LuM@*(qk2*Sm`@UCA%pW(r!6)K``e;{gI}rw-NmJgZUE5T4 +z!l0`wc@Pl@;&G3uY}=VcJHBKxhetH?NMcV;XV*1|6^LM1n3?2>Sy*Fl4R2aI2pEPW +zHb&T@L&;ayfZ%dsg2om{8%fZyLu)LWO&Oiah5N0_1@G10{2Y6k@&HJK!TlCtS5atd +z2H9wm;$a1i*|h~aFdS`#VWpS{*9{{j)ObXZ7buVjy~S8RH>(jo_}Kl{N}gCQof;O3 +z0a^7^`Jw)Wx<1Hs1DXJ) +z2Y_ftDiG-cPIgN)`g1~J5M;S3RbP(3&XgBH38y<@xPNkI4@<@{e&A7-c%cyx@D9*J +ztux(VrM6MM%BrIE&J}Y+oKjcl68{q?n-p3OWP7)xhRE_km6X9^>|FT~Gv#yOeMC1y +z$ayjst4^c*$RAu0zcT6ruSzdgnBGmxYX{YFSGsX0y(^(wc&j*j0euAhc~b189pI|nO*?bn+P3{`%4O^G>gjh0yztA|Jyd4eZ8=#kr$Y_&>Ccpv~-1zNyahgpV*L=s35vqRE1g0%Ccx@fpzsN`)JgI5uM8(PCuy1QSK)RX1V5WB8Q1a;-ikj2p{gx<=i!;)p%GPZ@^m6Iln+n +z9;ZjSPG#rm=ZBI2Ppt!OICMln2`oFM%F;=8s8VzUzyqKo;oqV*$;JM_6MDWbBHh#i +zs->8)Cv3(fuuNHhCb!?yhVBNAAY^?5X0Y6HSzWaKkg7gyM#B>Qf85C!ZopmIA=+-Ukh>LK2sUoLHwU>bA7;E +z_~%38_+|yf8xAtECOKAw6iqaB?b<}i;q-CgNADH^Q65fy=9M3>jx`BE;rq%gS=8lX +zxSqod^;O?Vq+*z2OVY?Oen9M-e^>S|`P(gS{Xbj)*>`>8ixC~BqXg*vk6-ap +zLq1(wq@?wqVaW+pK6Wo6&(hs3H`M{TBUI+d6Bz4Ow5^Tl{|{_HlfR%P +zo)gQ6uui=vaKUzF(F=oh%62rG6^!CG7&B-sLZqhu(gyF!^kSSS`y2SRlQ(DuEdIYTrBW!j7gJ4XAi37-beHJq#K+^>6?U1%& +zTJ07l={d_?2V9vYtW130SLCOrj5Vo3H-p~};nN9p1Ria{=Xz~Iwn%}eiHK1W-~z7Z +z9s*k`#A0|>&#)Xq7>0C{lsL+rC}#$=BP#@P3fa?x1aSX@1$q*&5w4O;#D!J|gLC;m +zE>WK_{9+in6d@o8TA;2YSjXRbuFgEdGBPL80%z-%VZPHQPoIT!V48^! +zAl*!IBAXM2fiq>ZoM_2cImmO8tuFD(a_RJFs3%kcJp*J(LfFbZhoA^blBIrwK@_)W +zwPTD3S+7SJueumO6ZUyQ6UJZzvR*=-QA?XpfI~bq&F&uNISG5`79fq40uo@9YpY<-X%rVEN3Ahw&*OxR(y`8Fq&=x5bJTH3WVIVjI5_=Dx +z?R#c((<3vA<~d>T5OKWIcW7k(=043T+e9prAy!#8AxMBI#5nGTK>BgHp}2j#8oK7! +zZSlPn#$?Q;NrFE46l)vL(kjHc6|l3qO1ip6){gsL;vf(LN-@rWZMI4CGa6FRtYRv+rbqORnO=s +z7~c&~m8Z5gNN^fl=$jB{Ns0;F1Bnz(+RZ?jF7nk2uoE)_ylWnQVRO6cCO=e&vyy;& +zPhz_1{^c$J6tP8NFV8i3_mu{NeUkTlwO_9lge?eSh&lr;$3iZdFX|Z(u*{}x@E|$s +z8j=f~Ws@#3=WwTBM>g5kO=vmc?|GSMc`VHo2$l6rU4K|{n!rdavYXTT&Buwn#uoVR +zjC(nY>*wIyI*)(mVdA(=w6;o^IqzvJ1rr9OKJ3M6!4v5qxH?nPUXNTYi;GKC19Zpb +zhuA)Mm!}EjIhi^wVs&lVbE|H{WyuAic*&W<4NRnwz=K{3Oh^M*7JWa4kifM_9Kcq#!u3@3=L>j|rmKTWLK_lxD? +z=!g9LHc7Wj_p_fQKU4KI6|`^)By`Eb3xuAV?FE!OB+?Ujti8r^3d?y4!7|~Qm^^_v +z>!OmomOp_K_8o4U&^_l5_d&!;KgZj6EzEaVuM`ng7cs9Wn<0nP4pwiBVCT;;()@&qIske7Nh1U_~n6#xEG*;$(pO4Vky +z_&Uv@*M+3(iTfB;@%;@lLU9aEtjgzXfExD|zez+8C{do!6(N@{=#EQA@{*yz4g=in +z5pyQ$k^tipyv%k^`?Kr))`H^YIBuVTwC4hhflod5B-zq3$pb3{D=RE+Zeqh6i?|r9 +zzL2^~w!K~o0R(xEEX!!OJ2g8xcQ$rwR3pgT{|k^Xz=|N+bDJY9c6>^jqy$j}ea$g1 +zxzPKlHT6!o#35>! +zHx&U@k|g1&w2QO`C9$n4dD=rHAlcq@)``earTlX1W|1*U_6+d$i+4V7S1cLo3gW1^ +zQ*G<>RiG<2fqJ_F{097+L_jqLWV|FY1E3YrV%!-FU%v421jvP4$Wysb0p##Jv +zKD)E{;9u?oJo(5<_~VX{Yp}}#q0PFLIMtHX+XiC_{^5X0k%!mcqT4MT4)m!|HvK}v +z$51n}HbIh8!k{?6#_eh#DXEn-%R)}84{`jrvqGFQj02|cYZ;m+#u%|av@-N5yzM;b +zDJ6~=>lRGVh*C5WI@?}zwW~^M=C0k@B*iI!Z=8^aOi8(Rh}*r^b=vd#HQe6TxAMck +zVy>@=Z~jlN_ahN1eMAJ4k8{-ta8eIMuWq4#W&o+w +zGIw>VBU)SR^Np0UDv@enG@1#T5c>uzo}EtIipM9#8Teo=xk7YHc`}P_a#psik4gL7 +zak%Oexc39ErXyXUTU#_-w+V`2Bqqh1%8Zvd;XmyeU*901KfZ^?dDB#6 +zf~-G#Mm1w{YTfH~`B;vbvS_2l#Tt0qc-F%(;`<&K`d@zZ8xN|L2RIWib0&no;#VoR +z&SZN`sowWl;=D|4l7chHqc&~Eq+D#biz>*%by7uc-oTr;l+vs=-~Iu&yTv=HXO*l{ +zbt~Xq?J6h5Pt{-6Ps--wJ^SBpU&NyybBWs9D49#|d5G}Scuy~u%YMVeCB9j|5dOBIoV +zv$`maTKAd|ZW!a9gA4Q$7%5y^g9Wy2>?<@z%Z`jL#wt&Lt{c92N^W4;7#bt`@xzh; +z%wePS9b=rhm@<6#4P?bjf~-rw#XcO!ougcT(}4TZ`Yg5iGRL=~FlNPyU^QXptgY0j +zttnMegfP|UUCOG%$FTwA1Rn$)CQ6>jsZNbtgo`u2P-;^S-3ypo#RSVVHBkmI{-Wks +zrJ-V)Ajf59)~JGs?Q5wWUMqv51k!Z`fAI)I)L9*3=8GGl>~`q;zbvHbR3TR=5PdWF +zd3{xXVRs+}i;Niugxv(MJrcrMO!KGf;avDapqCA#OQg-}?uU`f;JNXE+c=RlRr;fU +zLrFWP-8<5xOG#xpd~R<5bSbjsY042ysx#k%-G3`<}mAESH7B>_E#P7 +zQX^OjBg3?3W3DM&WAtZARHg&ZDl>`9Hh6lha#lx_SN2zZ39F?pJUBKS_8!lW^ +zrUMT;v9Uc-8}Zb_cLqMTIPrsnox)b`iP%%`(bak}2wN^+{M_Tm9kIpSHB@h6<|0$G +znsI`MSlfQ>@SfqUtGhkJ_Nt<6Viv{j8Rl91NaxY1al(i@N<6hqlT*aRv2reQ^MUQc +zN-Mr)quzskO&RY=@j&Q9YZk5GgA$vM>{A`qH|nZ|D`#sD(Hl=*01jvsHsIC!!v(ZcBHwg}Zm8ctG;- +zh-|gQR(FIY1Q?ci;&mw-*ZMJta}6$-4eF1PTFynU=6T0behYYicS*ZoCYeHJ71Zl~6bdUC|hjjY&g#so!ukL|z5UHz`k7ETAI6qy>_v2E=7 +zP5b?~D;VTj;Lo!c>@!{GUs3?XyZa?RcSo3~Vn}m}b~lhh3pTm7K9U@%iL%=f-h59g +zifIneBGqWR7O0u#IZrML7stv~D@w_^nno8Yt~Q@O;c_*IdypY!iUXKp14mXz}0Q~ez;FlG=qXq9D3hr=VRPM*-bJAd?cJ!(chru_zu +z2fPUCDy^lcqVXOpo^bsGK`d#!L&qIuJOCq7bct!H3%FG{8)9t1`shejTIbd-w^eF$ +zr{rhd{Xkkp^jk^$kIV4dpt)#7LqZFT;~w7y{LR1Cn?LTzae#P$+)A3YaAymK#%hfS +zb8yVf*cgy-jf4$^8-fkBW1EMXHM9}5-U=H7G1Vr*#yyD +z0STA*a7EFPc=&{tL@}O=tINi@tmAE!eyPpqMr*0aSUG_o-(ykSIzUwioz=nNrn9z6c!ht(i>tva +z-a{VIl2J1(bdoxzD2zvUn08hPskEkDyY^z;Vqaj^IOfyX(^o@2{&mmNUU_ED)J~Nm +zwJGI-kfs3TX_ +zzoLNWyk(Rgu>nWGI*a$d&e9^Jk2^FD&8p5}ti^O)MZRR+OFsvUwI&m)b=+v}oIKZ^ +z0ZeCBzf+$e@H{@NztGF`rEkXjVafI${cN!81w!i%qPY#_t_(S5yk49CXy*~)GIa82 +z6i<(*eC^YecG(1DEl1FJdtCa&ph^%Sx_ZDl +zt)nqvTm@!TI1I~W9BrMAUIL#8sjQZWf}G>_%t&E)AwwHb4qyCK9s4hw +z_0kBdkAyH{W_$Lt#apJ5>i~*B6*Nf0fH$wPUG1WZRHqLsr*XWRiz_)#4M&@azV0-> +zERUJ2npO=5i&&45vC7bA1*WRjOZ89H(ztdMQk=+1A-rOt!sLwf-~2U4;z`CwseC&V +zYGbA3j5a0S6ORT3O&KTB@J1muc`E>)^zmBBPj|<{Yz5~nDOKmYNM?U_t_%ukmKu{4 +zL3{Q1gksN+xukXUEx3~sR9Y00*;u=211y@h^8vgHN?DZ{BVMaQvG@SCo|~?-#FQ{O +zVI#N@YS+5V{Rmkgk*`cI;Ohx^7u#DJe;=cj=ySJc_Y9b?dCsIaUD>;r1|=#9Pq+fUac^4mCB{EV_rJT$Ea3Ij&OAa +zhjGc2+N?U`VdSD@jIr%B)?x9Y=*kCTl{hhj`#24(M*TIxkj) +z>vVe2$F6cB&DoimiW0Trf1|>FF40>s-rrB;Y1OH<(o9#5o)iJC)W$fWxgaTHwLvJy +zTaI9kb_KKG!Q!=ijI{AKH~Ohiw2-C>b{Vb3JCAf#bg*J`c9nscvrQ?do{n?&x9H-% +zP@}G!iU?QH)%nPzME5if^Ea2Yy4nYA7+0tQFJQ^a0#42Tt;Ve!ajU?89f+?ta2Uph1A1)EE8(2hY;h|&8-XtLnBi=~N5C1u +zIUyz`JNxLpO8=_imaB~M5Nk&&RN=!R?yy<#7y?xU0uj`mUFpR{z6Cq89^g02de150 +zovTfneB|s|s(jcOYa`29Pw8ysvG#`aIaV&_Fk-#MbgrshOU3qzHjPSj3ASQ?z+G%e_cc}a7niLu5RZy3MtDZt@GRIp^V$s~boSV& +zSO6*`NLiJ%raIOs5H7BXG1iebs11s&3z7FhgbQCeb|{#;VTDe}V|6kkl+Hg|O3pZ@ +zt*_0FarNHjzy}06dR%KV$nmnQly2s%Zu#Ci*qscy9`vEus7DVmPL;*bd5pJ+ +zRm2GzEpeJaBbqYeEXF#-S!^3EI?*G@>9>IQcR$L=?d^cEfts_FqwAOmK7`|jTofJF +z*@!s{Z1O_R^$f1J$_>1)!}nPYzFIp|qVidk;}%U1QE`?RHr2F|Tj98Y2uNK20?sZo-Q6a3qY*WNm5lm8wcksp{C7 +zbIu)KxQ_bd*WKks9X~6nb;6}`!b)kQW2|OjpOS%kLB(aBgI*Lv^w=aQbHAZAE{bA? +z0UbxU*q{X_Z?T=l=G?ma^?hHA`4sM0zr3?Nq|8OGhs`V=>iY8ztunQ;u)4kjL#mTL +zfWvabcFE}4Syd|Sz<^8e7V&n-j9iLU<J#-l#Wv(=7k1Xs?#Q#6LCli=k-AL^-ba6%u5<%0q^!v1n%h78h;P}XwMT}raTa$NDC5Yq-NMxd6+MN<+6bJp7S%*f={R-p +z$k2CHX6C$V7M*1vvw5^_5~e1se!pQ)uAL<7L+m`@t^H$XK44a+Dbn?!*=OqFTRT5T +zzPm%-zpr3Cw2V@gKorM``1Via>nnnvC;D3_x{?@40%`@{)QX9jB2BhFDLz=z?|)C$ +zHpL<YT}$#|gl5H~(+$A030q +zym-!WJE0J@aL3YyN=l`2KX=jj`?h$}^c;8>Ev|gPL=X??*~UY)*~=KQ%E4BbDE$ +zn#ilsLVf>%@c99pp^SMM2SXM54vCqNm7JBhyF=doE51aM<~nsT9AHeioKKgOvq!5~ +zZ!zzF#s?265yz1j^D?AAOGK$EB`Uq!@J;v*)yyzfoOP|%bY6rcjzcPSP@+md8FRh~ +z6iTZKUV>K@a?9>4N0md-f(qzZ5NTMlYjy%oup-b27T5euR?j{B>9>IQ_dKMzaLrOr +zDrw<<&Js_jZa05VTCI=q@ti3sky0jHY)-WF%6fkTIvtanjoyG!qKs!j^7;2CUho&S +zAWk{bZN6pbJb8CZck!y?Fk^(_Kq-Y$GZ!~E@ckQT(&wfmhKq}tH@$L+w-jd*D5&YeJo?4hyAdYoO}#T(u#qh_i$-vf1R&P?PsI2c +zaj%x?mW36Ss}l8f|9vHQOGn>dlH>hyHBJ!FMe|lrsX;vDgfkvlGIO)~VL5HMtq2P1 +zM_k>5S+2||Bq^)2zBG%+1Txi()m4(ev@+*w!tZ|d0nd9^=V{yYW5tjf!MF%&1yjnZ +z6<<%c)3Wxw0U^%^xiwCdQ+4@@8Rt5T$jRu>N!I2X6{H*kTc2*o{@n??{-tG+(+FHv +zg6Os%q$KInK)(vl>r&5zKoc$em|)jlh~Raf~FCix5t4zbZLKG<_z1 +z9vNdKCZ)f)0^4IG;IMSsbCA2`%r#Zcbiwi}H?ICYt9aCLpWMp2DvxeN>WpuGz=hCC +z357H*l#w!y#CLze1KA3a^+@o@3R@4ax9~yhl);#x7sjjvD-0iQ>+Gquh$!AwnuuFX +z1e8)0He~)@Nm0Py%omWkJ$YWxNTn< +z0>fh(?SACu&A;Qj9#=dc}lU`bH09g$khJd4~ycf{hvd_zt%3+J&sN +zDB~J#RmO^tn%P;TT3?#n){$n$6nXCtOR)P;Zh19W2*Mce7~+WPNZ<9SSc*3sh8?&2 +zj|_JmH#e^)OvwWM*OYNzi<&Rlbxy!$)8=4XC)1i! +z{|5I$-k(tNIADArY_FL1JJPVj_1BH2VVa+70j4Uql*grc5I@~6!YL;%t;2LwgL(Jq +zNVk}!kH!gH)uCe?>-bUUnNlXU5^WyIS{D22|DQWj@-vQNR-^`}7axCH$InYOht?R8 +z-5#8@?qPku(swXSFkh3bu&V*d32>-F1BaC9f${bh|8FguGg5_nO1q9@Wh5_6{SKeskHT +zNLtXNCak`IIK@b+f)iq}Zq>m*trcuFgF>0s*=lPVeQhf5 +zzix^5b_;S=%0BWhmv3Mb>b=@qN*YM2NKQ=yFXOCj_Kd4dJp;NY)(tB^j9f@5lXGSq +z6UEgV+Br*}A|L+vmcv+2{wYV8>Six9zN?CJf-{z@n>WZjn|L-g@RBrC)9*J8!yW1H5x2SFD3@VsOJbfeCR28|5GR7IC%Xgo0==FV_Q?v_SwaKpD}PKYf6uop +z?0$e7kM$kH5Rcbt#oV816wl+J&tnvM(eHaMHTb0|gFNan^&wDD^l%_}X-xr3IkW&b +zOpjLB15_31)zgJcouWvYwAR4l;(5R7Z&FV=eFDyQ2BB;RERMh^e16~NB4w{c6cJ?(L%QD_H +z-i>7INJGS1#j8Wpgh(wx*QL;LZ#EIg*6OXDC_^by%O`cHD+mT}4Tn#ks^pP@v|2=S +ziKc*emOgkkSKnd7^#bVYS(o-H4xT1u{4_EZA#5FPI8>P{*JC!0GVUpNKSLKV;c^xD +z7TBC=tWy^w)w?!v=2hOZ8F%%ny2$S;WhMoS#Ht&Wa`nfxGa=R*`etA~myW|YJ`s+N +zQbE-q=&>A^qR#{>`9;C(#)j$UK%BTv@YfR@q%U +zG6b_~JT>RI1&=i=MXDMtb+x~~mZ10R?$S0hl+Fi+;pd~=xERQhi7IS;3-68_({J**{8_jFgN?BOiYJ8S6aTn{UxPVmBK!D*M}yjTX^it;2^N +zaUPXdji6g+H3tU1K!|6&cAkF6lv`ATGM*iiq?CHJ51k0W*K-|Za35Ubj+ +zb0-P=FdXP(q~zvzk(FYl{u>xO!R9uWH)Z&6w>1dID<~Zthr@x8KR4mULh;S3!AVWinS+=d=LesV +zR9cSlRCQ*LyrqbB6EQ~A2D-~@#+cDu=)(q&V1r}x=64uhPxOaj1nV#oC~B8r;5+4G +z9TRamZr-Dr< +zWvuGcBl#=duVGcQCi<*-qxcc1d&`Hn?|Ad>2j2hT +zC#IpWx!JP0*)V*%UxLx)%_aS&=i`s>`Qz@-eCxkunj+KGP$n^8LA*nACMT_azE)5# +zgjl0un4Ufq4A5mTR!FK$ZRWOMuwp609^y~~->m*@Y|Xk64u=CaWHIh$9ze +zDvCwxq*NTS-r@Tm#VwW%MjRnn_R~8K_f;9Uw9Lz&yH}mZV&f<{I%^rn5n;rnvGTrr +z-w4K+&{bPPv~~tdsdkH?*f#!Dg&-A|&w`zWdoNs$$IO?`)+uE@9TrPPPntXSFtU4p +z%hl^E?mpfTTX(Y*B{qDl6lHU>MMT)Wzh!%~Wg0&7u)9Crwp^v0uHW2nab5kv_CN2r +zyxH>e{d=x|xZ$Vof5dhU=RNT-R#~v%mxhowK~0gPskUfGKQ~59Jwg1CE4rVbshsUf +z359mA>=ArOfa$lC;hvl)@_tt@sd^ps@#CcC2dZw5;-0w-MT;JT( +zELAyTbI#J)D)+Pu{x3a@#n72Y{%4PZ-PbAi{_7S1?R#R3#Oc)H&b9G|lv~5xHVQ<; +zkdD(fE6cv~1It&HUy;mVxF;3I_WD~yELk)AyL&{0*RNmWtZSB^X~_pn3o5b3oTC`0 +zw9%JwEoW;PIgBHBhmmp0T)gV&RI6R02%`$N$#Y{ph{1(dBzCj}qHfYQ +zT4kPit$?l67Jy(Gt-v@TzGGAn8%T^y`7}znVPyY7xq5xY&u`xyv!fMWYMdiny&|tl +z+i%|7Fy1|!CfioHesjaaZcmDlyAQYg+yDFT4Eq6XbE!YPe+$4L|K)8R$x@CpvO>+m +zRvllbioEh54sTZ!nP-~51sDumPN%m*vtpZAKol4cdpd7HrP7dMCJqOXVVP%58B{DW +zE53{rJjNKTtF)j_I=on7s;S%%BOmr3_+cv)(=YLO8k;0o3%W%rgcCx*2hTW;3`4aw +zINTq&_LkSzTO{;N%T^hkRCltOJ<=9}7mHZIxYIrHXgcksW|aBmnCou=?{8>YbiTum +zRh&`~oOg7-Yc2LnoMJ6|QAP_^GujHtMZ8knLQP0RLel~3M$}sl<3PB6O-~g{ygwYs +zn&|r;-?6q=r1~y18;Bt2TxC5J-;yeAO!EpnmG)$sW27DL*<=W +zcQlUnT`j4sv*eUXO}|YLd`BIddTK4UcAGovR(9irahBK!TEpRiI7MFha2!w23580U}G`R+(W1~!{*<&lLBGb^6V@>*S;%r7xlJg=!1U#|GM +z#Wuab*5Oa8gqzn8HkIBYphjwINOBwOso2}*I*?Ol9QOEWXnrUT>0HI0#Sr?y{b5)F +z$9<0casLx#8S#*0%q;K{3@YR#v|b +zZ~!j>5sRpW*BkbqZV8(!V$48B6)r+RY=06Z^z1$5)UrBiR@Zq?=!IeU$e(V1!d`ov +zc+wbu5yL_ZT=oHL;p6VU&Bn{Jp+zj-RrQMb9gV}t;c!4u!sZg$?JzMn;Jj_>rZqHb +zEtO2t)3M`5J~qKF!US@;t=-Q!Ro6Z_W^iLpE3)q~eZ5{8PxsfC44($J-}$AX5FbXa +zzq=-4ZEQ>o +z-gjUuqxZORB9bb;s|u46^Heh&J@cw)rEPZA;?l=Vl8!7@_Q}VIE(8pI;W(NT=_{pZ +zX{238i4(?FH(_Hus>+lmY_Pa&N#il)9CPOF?K{5PY}xiV$FT$NS;l7o>Un6+o(pr1-yUIV;sRqX*YZw +z>}F#fsbpi-Hl1{O@heRtl6K04-K-`PGW)|V8JJ=wcwakHPn3U)K!qw(l4{q`0-bdZ +zA1vM~KYaWHx5FLo%GaRK3)%_k5Fyur`{&TR>#k01JdEQK5c>WC>$@ZNGk2X8?hp6m +zRL!z|*AzRpm&omo+%mtSiYXa}jM(PEAVBC=8C%1*mSA^DxVc7)GTkdvj#%p|n_ntE +zH!FG1A^|xm`;Q-&46kM=jj-%%c-Y_Wx%uJdgwB&~!kaNO>fGPS|iDbdS>T^#?2{}@%#~8<99JwC`w1aqAZ349U7V=z>wNw6Ann?SB3wKiq%fZ0DaG!T5%Jyn|1a0;4 +zxmFrPloJ${1*fyVHYS`^c6YaYyZgYMjCpYaTqAJ!}mQhj^st|zQY*BmzDgx)Gnl=H30Nob@}T< +z6%Az>Iw7Up6ikllCyy8k!0n&k^TWG}w{;<~`STT;l)ibh>NIip@s8{7Zz!$w`uN8W +zyng!~um9~kKK!?Ll%$kgC?yfc$l>=}3dv!(M_hhXNv7Bn~t4ivMxSrkx +zVjP)bHH_a}UO~Bn4b^y^w4$5LANwdYYWO-kt^c$E&wFXXrZT+CR7Xosaj9BPETd$r +z#^N{*I80MnQPTdvpnHZmaeedpc)*_pxY-inh|kp^=dHzhgOSAU?w0raJI0(CQMmGz +zkowfa33eOk^&4{hOddzd$^*bkrMGBfz{`mM)5?V^#ud3&@jehPx5W6FaDC0#Ul2aL +z$ByG7OkA1`t81B)mlz2`vmv5d#=B~ss0jHNK@qFj~{sR=if6PM(#fBjv%@bhP#39{_Q)Aas2W6 +z548i`S$_9F|1-m`no>{NWY62IX9ecu!MfM#3wL%T;=3rJ5FdeBVHHSo=io$iEt-&WNU+givoPvj8tTfqDO<#8B4 +za@B7z5;*ZWP$*iO2~@S91I`p+mBW}IkH~ZnBV=kxwAtR&u3B5U$0;*eOjE3LbRsw} +zSZgp+h||D_-5s}w2hz$sTCRJL_~K`A)Y4OIN68N--y1S`64p6#tbb!_89kS@;w|y8 +zUnLbsN`d!PLFRIM&4Yi1+kM1}V2pwN9)__7KIdw-bMqRuudBp+P9O%+g7bl>L;YP5 +ztnVH*=yK7MlJ@-HGc+(92Cl!mSu&q-Kd^g$Tg`TIE6so2(}lp{_O3pMHp)s-?tk79 +z$B{h5<@x6<@o;;nu$%2xrPgd+=#Xa6YMh6+|6ZpeXpE4zf2ii`VhG07ENyc|&Y3t2 +z^sm3ey!oLmvb-D&IptbTuhv+~31?-Yvdo9qs9Lk@rq?IdVZ^Oen1M;_R7CG9^LRF7 +zT0tngQQ3`q{O+EucWnAV9|9o+N+Zl`s?8P6inF0&oC+l$P(2)-={QsKk}s69|D;jx +zR~_)a-@oVb{+652^G$!nMYvq13rsP!iIEGWQ|mZgnjP1qoT}UsQUjRvtt^n*u`)Ap +zS#VYmS1B&W0VR>9f!qCoySst=)q*u5bp0jbJ0`jN;%BjQ!1z2oDr-MHL|%L7d~HY= +zsZE%fkLCMNC6HuyA}G21TR`&&Tye48LLVsOq4M{>`yFZb3AA8B51Y$&GR)mpzbtTz +zBjC}ZWNXkSi#6|)hlc?H_U~^O?Ct%3dxtT?#~o8Ule5_5fHhrRTfN+D3 +zJ6snq;>nUxK35s6q8MXv-t+4E3fbSC@&V^;FIcz=@HssSd;n3EpU240W5kqu`e3;7 +z9l?7-=Lx>U^bY7K4f?pdy{y%+e0a4{)9Edp*#yhTDkM|yt +zir%`;;X2DQW3aXl(Bp}>zJXO#k~5XeL`f6VI1=MX{5&$nR5Q6kHAHrG0rmYw%c@!x +z)FcsKdR!>T{T+6SkBxqwV3EuX>72ERNuGn{M-G}eM;Z<_BQdrLR-!eNap1oFZlyB3 +zp2wK4RGp{QCY4?wB_PV5bJN__m&`(vUqj7ulB{^R)6C5=nDJ5x`V^0)n6iq6Jq +z$IR(O`u+3*l@gaglyh#f|9P3^1%nM6(s01}zI|5Hf?lPEnCqLWYbUe3Qx#z_Mq6+_ +zVjQ)4P^Os!D84n+MqCp@5O-{%S#Rr5a?4hYsm4x!5J%cx!S0@VIpdU)e%HfqHnd0KUnUy!X>^X^3cc_ZD|(X=?FMZ_GLvS%7I +zNekLGv3F7pM;7(f*&W@TY@(W=6|&ag@i|6{Rs)il3r-dL9G(~gUGR9{Jp%6a7ch*+ +zVZ=@^9i~S~pQ1|Wd!}I^Y_0%9il^*Y6(}h}iIveWhbkv^`MNGxciEhVMi}>)?xF_H +zMbc=_J8Q_UnZ!MLv5lx$P)T}P?HD;JVdr4B?zTRn7nPT34#vnA)__@_yR1YDK$O^k;aPSeH|ecJDK)6ZSg&!|Y?piFts@Qt +zp|*c8IfGH04>-B2S#pZFCU8)oay74e4!gtSPOm~dL`)Rud%n5;h8*)EC{QaET^Yl# +z4v2=e4w*V`Cc=$3Pb6w*?tYv#apozDr+RDVw}AJ*{n2fF?eu3>*;{F&IC}g$DvWsn +z>gS)ENvQ?6gDO)E&l;SZ&zt%#(0PZqubQ#-)9*8VLBCB^Vbo==_B0wC1N#v|DHz)! +z5|_D6A>phewo`vz`)L|+!DBBsL`9DQaD_R{*DIVgE1qt~ +znrE`TXSx>UpCjn~y1TT_E}jM`SQUKnrLoTPH%}!ZM(7)n +z*;|iTd!!(>%0gpP*zmJCk32tSrcZ5jQ+Z>3-xgo0?(g%iZ@-kYk{MYrtGG8wYL+E>+*xX@qh(idNcV+uP6dG=+mbk0fXPwzY@H +zEZr_M7WVif%h`O>I{3|g4s)U|Wquwx6;oX+&W{HOSKuyi8>+&L0RD;-rIYy(K%l#5 +zSzase3m~q}XydRsH386*g@p~5q;bGqhQ*5m!1++AG;_wgT9fmfL)du6yLkGX>qgf7 +zz%)#}>I0#Bg)-tLdh~koG8(&F-198@S>Km`ZhFeEyQH;iJj>Ec +z;F7-CPSmk7EmhvTOxiY9T?n?+U$#z`F60T1T+AZWiK*0+s~2#NahjOYSfATjtgYp( +zN`4v>S+5%})%lQ@f}UAr5Q3($Ds!NuacCwgx&(D;PWDA19qw>jhr76@7=w=YRc^fB +zuJrRfs&&&QgeFR`^4(an23Z2T&LrSYmLO&pRD7+lTYV@h +z*0z#pXYKLPN?b9dSSLG9eAO|Om0!cm4+KN!Y?BZxHLG(Mm@rX>drV4jalOLyE-Mjz +zyr&#)tGkHrs;=D%3Xvl%;0!;7;5(-Kdt4eZov#!V2i8`6c}C8(pjk244n#%33on;7N#H2$RxsSvtF3$BupGvhdr$yGzo%W3&= +zhC_zX6UXt{fa-ilisM4%nk@(^WA)GwOKROomg%}W3guFw-0v{`bU!#|chp +zIAMD&j`yx&RjpyN(v&+kSmtZp46?PAq^UhmoG|Qa&FzMZba}^92OXxQzfo@e4V4a6JB3Mc@JT#^edz+(}J_DgxFQA@yh-a7g^ylML +z1vGr;>5Q))AX>;JpTH*NL@h`jt?Ms_C6On~?5{b%eN_Q(pz6svEJDPooGb@5ik23@ +z%+t$7RQN>o0GNZ_e1fijE&zv@?(sQ?$=5#-Wzdln6DHT@2^N@I0BBPIPK3zwU5jgb +zi8fKYFprC+%)|bGF&1q&p=oUSb!@GZRS||;On+5_oDDD?C~<`Nu?mO!zIGXBy|iOq +zFxQh51(6Qbff!@Uuw*3_^-@;AGa#L|jOVPReaS)dae1}DEXob1pjJ`92TH8Gz}dc$R^p2h +zN}AZ~{c25*92ia(Ud*vBP>yA9_XJ=(PE&&;o?oWkc1^4COF_&00|VRF69j+N0dLPe +z9#=`bTCuGf{2DH#HR#n7z8t^CsrmEIy0Wr(;siau-b<(7(_cO?aFC%!Oa=CzpVVI4 +zKOau(Mi?Ft6mO)?tESqaQ!N-%wac8$oBYH;zGj?Ju_+St6UGnF^$<1~+trSxW*820 +z`v$}=znfIaNr{aRYz4$xTpuW^BrUKe&K9uVFP&UX$MLiNvafJMn+mDPlALe`=j`s- +z9F)*1Cz=2NAOJ~3K~&SG#1k9H8mSImbE8VD=x5f16^HSb?adA0a>MX2ASL5!n +zzru7E6p_lEnyW+BKu{ov{c=X9G?ilW`~hP86`L^P3Xj{4_i>eIFLCZ +zfQ@rd``X^Gsz3GXHJ0O)6fk{+H=Qu;-0F^SHE*I;c!SR9w}2+bb--~6SS +z8m$C^ikCZd`>dy9GiZXqa0Q7 +z@OoIiaOn#1Gai?<2PbE*zgvDVTIxkuA}U0}unV$>#FSfKT(a9H9(sHkUvhYpq5N#S +zUmV9;4PtzHymVeR;~%cKY3rTpp!qz)J-tlUq;vix?n?yN5j;-dPHel7S(={zoOr*V +z`BDjPd6G5SVUdqm3Jc`?vCgX+WmXK^!Nq7Cy2H;}66L-QIU41Wq@rt#54Fa^r3END +zy@pLh*ZDqWV^x;iXmyRihn(NZ)YYRMuAXJ)Ex2i@yO?8{3cyfme<;YKY#51)$y9KH +z34d#E=-b@p4rkyw>wmuEj4i>650RFQY-x_O^Q2cVLAPF(b +z%(s`S(Z+vpFtq_Sl0z#CO$i|?#@~Hfyk%rU`_RO>>r0y=GqprayP2beo}x($pq+rVY-nTYtz&+*P +z9j~>*&o)n-g`F9?&vN$g346fLMk~Hnj_mlvH(YxmGRzb0OhT=Yl0j&vZMe|3UmTt} +z#i0|Xr7Bp-`raSj3~&^n9$B~@)9xP%bE>BHv&u^M +zw>8;iMW1|Gcc!yNS|jXi8iyA`>Ci>Vk7+i{U=$FXQDd92-4#&Q@S|__r_ggoJUzzI +zy@Gs}4D~6)1=K#!vU7B9ETnPb7EpNTIiL4Y7wk8zmcNX!&oV?|pI&^RvgMqsf! +zq`34DMO*E-B1yCJ&R}OgTY7y`)^MH5d;F&QW=MCt%dO6@{)5$BHHfg_N2PGeaCV5( +zP$P=VoSIqwN1mvgdGtp&MOt?iz|`u=Wx3++ +ziRR&xjpH&&?h~`kbUFKIEB%nNYkCgPd>?vReXPS0sjQi6W1;Y%bo}q|YaLzHjxU!M +zeaSHXaVAwiPyL!ffV2F0Nk@k3Fvp&A+X+Eg>a3X8pIN+2^5&$*TY}>sayA=NL`uhQx%iPBSpu@o?aYdleO?7%R=a_x||jdx5zRH2*d58oo}U2EdBcp+$CmZ?$}EKxAqgyO7IX_$Orh1s58|bt)%^BPn8!v!sQ5r+_-I$UV3O>W)AxV+1Wzfk`4zZ +zeM{Xpf7a~hm4C#8uNYTBY30mw@4kW3Z>4ip@MCgy9(;)H +z23WFbHa{J%(}`)oUD*%)6Ak20y@A=U0p2JCjjbx95G;$<4ChfhDzr6z;DZ-!`fDmc +z!zpiCK88p%QZ9Br7tc%)W|=>dXpJN9>PWeukLy{J*Rsaa$K<=M{1PwBZ^RlB?WmaN +zx#b(BDT}R(X-lzHaaC#7k(bfLmkr-1XKI$UlIUMjIr$d!^)+(b>Gs42BSTWyq;>J> +z*=-`twNXbSoSa-y8+n)>%G&=;O#LDYc1Ida#rw*bF)v^TCx!0SPc17Ih3$Ndk1lr7 +zcs$uDK^=7>k`Q!2v@G=#g|1Tn>!&kG^BCME{r)%v!6SReXWW-ZWKR$8DA?Xl`0t=O +zroJb^r!7Smx&${0mW1J-*5-j*G;%(=hLB9>w|#=2xmPa)J!V_vEhw2_J;bJTM{$!* +zDk&?y+F|5l*<9vIFCxo^iA5|z +z8|e`SB1ic{V{T0^T2uov5muaUB@%;Fpe4SRct+mWg|wP;=m^CZpT2V(8cH&mv*3a< +z-O$YD49AEO(SP-^7WRnWppr +zo)WIBNtfGYYM@JOD77Ev7On3e9>RYPUVTcUrolf=c(HN0kCI-m|MeKiyyv9{3M|e@ +z=+}tXT?ACuv*=KMLOX)FN08(*Lsx~T#wN0KD2MN)``mz~WbYE-uJCVjqz$@wmOK=9 +z7P-VhmNpGQW0Orqv3iK$;=}uwDBinmB#32rso||=D@Hl)xnTF41}3#WauV@3jSMT) +z9mxVTMvwYKNKLz96N)#tvIP6iCMU%XplESa!?Jv~Hz>i0tj48n2jY4WMSg=Ta6iDv +zx@0&~@4m}$EMxBsm7cWqJ#FqhE!UzqwMAi%$%-!Tu*=OD@&!lUT12kB)}OM0q@($J +zz}n3X;zL$yMPOBTdJKy74Duoj)WjO$wb +zBDT)Ig?^cAUgZELSe$0rx2(V9fuo(&nSVm1ASm%!q5Y&hnSwlIy5KUV9+QjNs&E6T +z6C9OSdZ2lVcHv3QjlC$hucGb2+y#Qnw)OSF+>y?9IHk(my(RLx2dduEdpNjcgFg|K +z&Bwb0(CMI7LTF`Wq}O9D>2tG0n0V2`Dr8x&OYz*&LvsfrHsMlSb~1W-)4D?V5)g?D +zW9N5fg;RCD2p?Qz>h@VJ{1XVVpA+4R5V$=-NQctEP8?wslP;uD8SujW3L84>@74|4BP!N`RDxK+1&BqFL;DOkUVZ!W&iGxK*&xUB1p`|Sir*J(#bYcLyW!8|u&e)XNDJB9kYi^I1qFezSJ)li@6o5?5G@^E +zS~_8^vQr<;+ZOF|xNv{2``iQ&;O`Fym*{XV@{K>Y#NNEPz}{+MLZw76lqy@J|G4jG +zBH~|d4bLVWl*r&AWYcOhf?&8MIdyjwata@2?s@U|jLV&47cv?Pd<0hO)tNhqHJjkf +ztZq#L;BTLZx8QQ9WY`fXU9uD_4HVK1&DXEAGjkTfJqdrM+rGd>S=sd<%fe5FY8}-` +zHZ1_o-bUJ$n$C~~a-a)A>u!`gyIDyz)tIR2gQ;4hynQavYH|~XaTv6$Jn6k5UfNQU +z(ChsPINdxP5%mD&NN@RnuN(!=SpPXP0VXaR80`YSMKEwq(WWIRonnr&4$2X?UZL)w +zG@%!Yr&}&VVBHdEXgHvCZ@3-WdO(srPQw!?N#GO%VU;LWOVLaL&y7@la9;H=}Jcv}3!UnfaV00ZnP-|0Y0H?YeqJos<8 +zZ{b}C30$G0oxuYoPL5oQlo-nJ?q`9d!5t8Qrd&rt=Zz0ef_R*pK&_gOKpY +zA!cE+mJmU_Sv>AKD<+Wm{gpp#Z-I+kBHjj!Kxr-NL-!el;9Wh`FBU%KLR~GY*a)*%VnVk~;g0MSJ_uJh&ZJ0~$12O(^cZJ_s#iUq1) +z#wx7CFdaE80fG$S@N67C@6i%GQBlrAh*Nk(rbPc1uudn+XKeGPGDd7cf7^~gyPHR{ +zQ)jG;s7tyDOT?YqO?D`e-hhRGy!FOkWB1P +z$KZ{VvsenZZ~MA+0(J33L>tE54dXIi@GK29T<_Q53CSc4eJ|>BL_Q?VdSE#$cC)S> +zENgz>PG?Y$o=7Gvod*N#u_5b;-x|evn?^X)B8+xe&>yVu6`89MUEh$tO$=8RX7Mz> +zEzsfO)bqAB3x&nv@|pG(#~Nc_1gT*rWi-Z#JB-&2nOS~(RS5|iL#5i_kes}7c3^hG +z09Y)m0Dl|S(~Ps$op$M-Q?*LQqgZ-@XkJcamb@Bkmf2hnWOuB{VNjfSxS +zGQ(3AA3aAD)*Y9V1%}-!7gWei6wZ&-2$N#oG?YaVh-1dzmOk4M +z-l2U;#~6S$`CE?W-wOA45!th6wfrQuqrqty#ur!SL0y$l*JkMv*__h4^;R^hPLFiY +zWC@!(c_z6DzaLvtfrzb)QqR~dL3Q9S3-W*~dJ%v7*Si6CRoR`T@AC+(O(lmZPhY!` +zVfC%Gbqf-N#c;VfBrvG4Q4{KX@FlkPa{#QKP$CvSKQv3CcWVf`&tb&ceqz?$rbAq) +zVP;hK({&G)(?_);yqCPHzgl#ZF7bv;|Ae~~>Rs~@(~=l_R8y +zt3FidcBKXLmDo{8f}FJooJB0k4JT^Ds}2x_o-VO!`~FTS=jcq6pdx{uD!$%HX8AR) +zwo+uc*GfOBFjRCErnZi*QGWrY=1LQq#^o;y;i$d1mCowE+Q00&KR(Wm?sHNyG1&ya +zKvo`P{_ZsV$?h4&%c)F5Q^IkiV}?N+RHCp^`O;##(TE>wn!-duT&2i1%mmX(OX>`y +znSaK;W}Ur~MvW}gm(#Y^iEyC+grH=$Z%MS4yqj#$-SyikgGkj)VJjS%F{u-@a+Xxn +z!qDZhr~KT2cvqQO^!(37C@9%{A%85(fs`vApiV={z05fvQ-SCT)iz3?OnUwmCD68s +zvB;Y6130}$V=@1vOBwZQ06U2w*tYJ4}S2`u5{FqU*6nZ-byv;-((T#0`TtVFkSb5*M +zNG2Fn@N#V^q5Og*CEYP&G}!X3UMe#Oo`0}@Z258e(pIJ@8|b}7Sh!PfA<6M!u%pjR +z8xh7I&5bpq2E)$2#ZY#HjC^;P&IE!>1m57!(QIqKe(u&Nul}tDom}=ArK?>X-W?pA +zLisbT*tmg+GF8+%l!>Ud{bi(t1(A)@x9CJG^=tK%7sjg_ctkKRII2vH8k+_+!XOEF +zfLnAONU7YQ809x0>&dBslD}g9eNINoosv0lhbY0l4i4$87Ukfaf8z0e<||u$q=?R4 +zwVP?(1}IIWt$<#NLX{jy2*c585*JA3jLSXHfj!u~$o5_=-3P-O_z^O{|e`Pq{wpun6C{=*C6gwgkir +zSEEji{1htC=;44*Ti1^`)kc|gPpvqAA+%K|t*R(p0n#Xmjp61b99efJkPyvBF5OLp +zSOEm$*uF-y(>NGu{pfVpDzApt940SHyNH}9J=xMIx(uc!B2FIFNd$dJO>Nf1Fvkl< +zC2Y`>8;*7&+xwuYrjl-FnS8 +z4WEWFO#aP&EG4fdk4dMtRLMw}G}Fh6e@TTMsJ!)QQKz8Wa`u1^jDhx`M9N#SuES%Q +zm|^*$po{zP0#h{IA~0mA~o^*`=&W2sPk_hk5X@ +z8fyHHu=+bHQ~uEj4~3fc%iZ%oP}Dz{Rg2HGy2@==KvKiFYu;UC{H?uAmyby|#o3=q +zV%9T7j8gusCnZc4+0J09;5YD4g|laG%5vE`hDUw}ZrRKFo*y(3bR(48B5COAaXEuO +z*R!W+a$Mg$ks$^Az91+bv?AQ;fSZ_aH9+j_VcU6rs71`>##KdTB)l}nrZ}35IG^*b +zjgc54jDN%qP!15|18?5hUw5Tb3*YsIVti^lR7KfIEA(XDoY}mzmX@Xk?;eawJ6{=4 +zC~duWWP2Q_l>&1!2`H!u?8{{V4-td}O-$DNc3+edv{o9HDtfH0;GKA +zTdc185k_h#?t +z*>UH*GCiZ%s<-HCi`_gsJKn1T8x%BGm{%(GtgLIa@?aSAIRJ$7DXhs;vI1fdRsXpZ +zZ*ErbRu}iBnB^aCn%8*9vB0k3^`48o3+fQNmiYW02VK2LQXT$aQ3HANCx)$hL6_Vx +z{a3kRm-Bx6mcD`ZpKx^<^Tl-;b#ipZ#a*KWlDchTa2CVHdJw24_$zpyt}fg5c3246 +zNaEm~^5IQFw5mQ6%?Bx_JbSpGfJHZCRGKzjlRbCdQPR`s^g;$&R`!Zwcj`N2SPDJU +zAI9wcaY`*n{iEJ*hd5A{48|-<;fs~U+d_r+?2Hzlm&@H+KKciR(JAH)_erxh>b{u9i&PZmi-4A`v>A5|x1XzyZuF&ks +zm_#-dA8bQFIyz9I2`HZP(|V0#s}kyW@SniJ*zltoa|7l(#J#)v;az7Vku7GEsTw!@&46FD2c_!u7mDN +z|C)#>hV@t~UDq_G8VExg#|~UWNB%tzP29%|9vAbYEG$83zdRpxJF7<7yzQJq`u2u^ +zcJVQ#kRvv=)>~O!i^`XOph9m>Q#ad5UCTqj_i^_L%m`Cn_VK)Q_Uwc?j!DodR@NDN +zf?N2TT~3y;)tp3~u9m*>Dr!2?_yN_4kbA*Vjg-MLxgz*tf +zTsl-M%hRcF5;O6YC-H#nT|mMQyAXI`e|Q9nG}@a~F=O4X`9D{Sq@TKHa7e)_~u4o7!#9TU@DH_MXZvxHp0?~ +z(TLY`+V0qUdP9n;9x>waFfV19gDRzh?Df6mi@*B!)!7dV`zMTmmAV2aVvRg=O<326r0 +z`AIU&XP>Rs+JdR=4)am&8rEpxtSoo15^BJN@WZF$VX@FAt)>TZ9S)n%Ah) +zs`0}l7BNZaoqTied4j`FN&%XrcjoDc;@E3iv>%R%W=1|XZgqV;+N??q%=nRo;eH9 +z%x=TtjE^cl-y?ep;hiDQrj~U&@)I6mR(^vv!~DVZm|yNRzcK@R9;x5l0oVHO*tI>d +zk^Xm94v9lOt2g`$uO&&-9DKphpYb9#kUKS>603|O12&ylaxXVz4(9iqxWz}k%I`QW +zKAz11k31k!njEiGU@t4JMyV0rKSM5>oH!j5Hxn()kogr%$S+75UOa$OEKgmS`8uiD +ze8;o;?&t85;Nf|*I{6pz#C%)Ys>(WCeh$i8VD--3ZJrjAHY=O=&f{7EX2; +zNms7OJ5KE|fGc|>o0*+*SQ|=C)UzLKO7n_e6lZo+Cua8%d@2tyRPSrE=S2~4@?D2fu +zEx(@Y2-U*9lH=1-(ZkcEPp#Vdngeafo?dlyFP7N8dpjpTO7e`%TQ9Q0B4qKitCtJdN4=`d2VWhNq>r?EK& +z)c3whU@#lu)`4NQ2omP5w)T^>R+y?d=$Z@}aA((zntuWh(LUrkSATvNQ(M?}(=|@O)-IOP@wwW&cUD^bQ +z&-LB^XFe%xM)=tcOeOo6=%}1r@+y27)WS)NmC5 +z^bWI=dP9b;4{zEYE_%n^;W}F63Ls4_cO#$m;7kFz19TXLHv%xet}jLuBNyL3J^3!9 +z4<{|FF0;AB%df0!UUe!Uz~ebBLN(JO-Y^i#b=5#HSs~dXn#%=M@y7Pl&AErb1n@!4 +z*)lY-E>$wXe#h^ORWCWHnxTo+XqxAN^nJ(@zEv4*VgK;tBCr|c|1z8YIVp=tyYP1p +zB^_!>V=OCw{X{Z#7PSHPD5@Eq77O?q-FE{8{vlbo?a8Bg9#lbyO%6ka54HF +z46EVALdT+q=1opXLC@9epmlRH9P-4JKtH+~oSkCfG`aA^k@TH0P)D{i^N==yK3D@NJ#Y)qBW`B3&brar_x_mz +zC^LFQF&W1Giz)eJVdHseF??5=lsbj(u3nZ-@u!bg$}D%eEppyzjLHHu0vXlgZ%+~d +z(^^tgC$4J_B1poC7q`NBdxTC)pp!cTLy>r%RA_Qr4&-D$Pv*0Iy6cSB>1qcL!P+37xTO_}839f4D$4UAZsDHRhsBnRcLsG!m +zn(&sS;TJGj2QvFaJ5xivxZxu=)Xn=R@R(KO&Q-XYM7dN3{)m06ZUlT+A;iJ>-6D5-*R|5ufG6StFHtgnR) +zH(PaP#T_B4+E{q9gr6C&86Omir2SU!M4;bNl`m=5OIY435u-*?Hm}eJsZ~rMWL8x+ +zSK+l38IF;(k_FQZ!EAFq?z)7Q#zquj(yH;Q!$tEk)=yRPVr2>Pb(9P%tT34VH14{6 +z6QTv5RQ4AFKhC}v{I;DBeIkT%lsFbxEy3T_6{(ZZ9~ed(RWAUeXhgVIalTz2A=e0A +z^eJ}o#Rfx1_k<$7q;@bx67@IQMjqVbMmIs_RSQ4izfh1rT3A})_i4k11p_5OWmKpN +z5-e#?RG{>>29KKjYobl{HQX|q$SR46fi4(G*AaI8(*F=;_h3I +zV0;p`*XXLTdIleFWA^ip6Q_j;wnp*InqvU($le^CvPPdeYCUupmBu@pDrO03yC{=B +zQlYe6S(l+7W|0{-7W6I<*Rr>Ou`5hnHaBe2?vgq^9CUosTM>X}NfNWn)@ah`5=L2Q +zsmuYX3fPkG!e~1he0qnf0&k2^U@Cc`k79Fb-J9 +z0e%f!5WY_V7{3R|t?Zb#_V|!z$G`{FkT}g0*b{nQnm^&7QOK;&66##SYG1Ey^jap5C(i~7Bw;-;um_KcTX=%Iy%6Z1%MaCCc>gNfm3SI9X(N4l};Ryqz5 +z@+mS%R22O__M$94Ureh;t%FbaHihda^gSM;Ia-cXW+kgj9P9_8*Pw}#aGD%VL4>Me +zx(I2gTto(9+4rbm7Hy2?4b02-I(Vmu-G3Ef+mf-EaAAlj-Aj0R9-}z%hc`4%-7jr;-I|lG;0^75w6klRqByrR4DmCE +zt~_$hwg+{t-Ro)qX7Zr71y$)1oUD`&k_c+U^$JznDe6JnLHyuij^)ye%#0z5x%gni^uM2!XRxaxedIr2-2~S7j +z{c~oX-+X=u`K2hFdMWr;ZS>4|zSo-TM3Hd6e82S)a%_irdz9K~?SXy!Tjmw(JHhqQ +zOOPc_CpQ>kGN_U0`8=JU*rI^c0XDT`rQ_cB=hMHhJd2V +z$S<##H_v5CQ20A%XSV?#>bTrj@c~d(8q7u98^rU|8!IiF9a{bUt(d4a+a|AXILkA6 +z#;;ceA@%wZPjAhg4(!>wOov^U2Cq*e9onO;HHLE18?SF2mtm%lzjlx2FqTi7^{T?r +z>favU^6*+_Hr~g%3_~29Df^!`ZGWsV!yJ$bU|+4fv*+a^&USjXytbAp9XO(qzC4Y* +zoY5|yYH163u^rxgsWV^_dbjNM4ZPb}xw$>ny4k*c$^@i$qY@q{Ap!E4Jp4izEP1DFKgEdnY^CNb$+w> +z5PYb0sX9&a@{7GITfuCw@3v^iPFRDrK_eUAej^|k4!IlA0(xVS`%@fW*+N|uNdaAS +z(1cd*IvxJkc74I;#t#9>(B4N@DKE_>eq`g)??HB4g{y1e=hitZCIVWk_6vW_`DPVu +zyk}Dii%0$HdoCQ>H!>gnXt>r|n6et`gMiltrwqq>|2r20X7-(_4eolshYw1pfX^4$ +z&^*}&6D;DmxPv=W$dA)K_pXh5TrxrIS?vIZvBVXRhcr^5qzA#5i+h>OJ0Cy|YrcRF +z-Lu!5ua4Z~Uxa0$uJnhOzlsL8n;xM9FFXnoq5> +z`wNOn^>2R-5R+GG!(o7lo!?#!-UN92o|bO=I|RBnt_A)XY(4l(1-g0=>(&NvLoIy_ +z?&bCvZ?z$6WLhO%!7JaGG8swgLpO8omadHUq^%jK)9YE1yIM|k=e*_9{bT)0_brG_ +zFl9crY{=D{bKI=kvt{b`<85~uGGW@8&iw!B-QQj;wUpgm6+kXmtIi&Wn5YB~;Z9;th@QWE0O87Y_eDKdkkVEcz1%(*SuA`Zs+{5_bW}=2)bs{AoON +zLQb|kz^R>q;&NoOb6s%9@6H5jRsYxatz}Z@$+!lo07LeH9B)`M7Vq$74|B6`(afdI +zvw`E4YptOy*z$D&s#r=2n0@<{@t>d7Z>=fS!gAn72R=NlIy*5BK@$d(K<-97poKM4 +z6JAd7FfqG*!ta#w25rCaVqA5gc=G!*j9ed#y%i5WHG39)xQ6O?C2F5%7oK6%CWG$Y +zr-cp*D*re6>EkiUh9f@&A3kPH+ut|_God5@^MIpGoSL)qDi!N-A3(xLJhiXyE8^+H +zC0w1)Uu6SVw+~?*S94~VM^b+Le$i@kvOEU>>80%X$L@j+UW-3n_U^4EP&S@SuHkUs +z_D8^z3?|zCt>=sM{lk+62B{~jLU(qqY~j(+Z7lHA!{eCb_#+T{JqLMp9J*Xx43lcZ +z@i0e8{dG`>;%74P*X93VIfGcHl|(Au@V=l17*M(dk^gL2*!`!>w2&H|or^j&OU8{! +zrIYUTQu1Q&i^?q5aBzoYjp3v5lWUn7b~0TKFrh>iKAi-ICMz{ww&@;q`w_1?{Ys3_ +zo|B5TdsdH{yl2jeJXKBOZR*=egiD*xEME=A1qA(4>hAwFZhl?T-*EXVI<_K) +zwDxqKpt9MV7k>!@840MWRCT#g-P#DPd-du`b9&w6`#0Ij9KPM<@9tN<-RZ}-!EpV? +zY@z|%`Sd-eN?&3}=uK@=WLWYeP+n?MePue_E(NG&bz8Q>prQdT1EZ042Esc?HcSB7 +zx#OO@a%hiGFONmO%S?Q{fa#gmlFAQ(;B&KE{3hJUs+Lq&)3g~qra*4Tmf8Wk?V69} +zXl4uXcVdN(HH+^6$CeL!9x!*5iThv5LiYU6+I@`f|I!eI`@dxL(GUOG|Bsvhuf1Q@ +a{X0O2>Sn%)%x)9v|~0{_PV + +literal 0 +HcmV?d00001 + +diff --git a/levels/intro/geo.c b/levels/intro/geo.c +index 30a8780..7c007f9 100644 +--- a/levels/intro/geo.c ++++ b/levels/intro/geo.c +@@ -32,13 +32,13 @@ const GeoLayout intro_geo_0002D0[] = { + GEO_OPEN_NODE(), + GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_super_mario_64_logo), ++ GEO_ASM(0, geo_title_screen), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(0), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_tm_copyright), ++ GEO_ASM(0, geo_fade_transition), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_END(), +@@ -52,10 +52,7 @@ const GeoLayout intro_geo_mario_head_regular[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_regular_backdrop), +-#ifdef VERSION_SH +- GEO_ASM(0, geo_intro_face_easter_egg), +-#endif ++ GEO_ASM(0, geo_intro_backdrop), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), +@@ -65,12 +62,6 @@ const GeoLayout intro_geo_mario_head_regular[] = { + GEO_ASM(2, geo_draw_mario_head_goddard), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), +-#ifdef VERSION_SH +- GEO_ZBUFFER(0), +- GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_rumble_pak_graphic), +- GEO_CLOSE_NODE(), +-#endif + GEO_CLOSE_NODE(), + GEO_END(), + }; +@@ -83,10 +74,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_gameover_backdrop), +-#ifdef VERSION_SH +- GEO_ASM(0, geo_intro_face_easter_egg), +-#endif ++ GEO_ASM(0, geo_game_over_tile), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), +@@ -96,12 +84,6 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { + GEO_ASM(3, geo_draw_mario_head_goddard), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), +-#ifdef VERSION_SH +- GEO_ZBUFFER(0), +- GEO_OPEN_NODE(), +- GEO_ASM(1, geo_intro_rumble_pak_graphic), +- GEO_CLOSE_NODE(), +-#endif + GEO_CLOSE_NODE(), + GEO_END(), + }; +@@ -114,7 +96,7 @@ const GeoLayout intro_geo_000414[] = { + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100), + GEO_OPEN_NODE(), +- GEO_ASM(0, geo_intro_regular_backdrop), ++ GEO_ASM(0, geo_intro_backdrop), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), +diff --git a/levels/intro/geo.c.rej b/levels/intro/geo.c.rej +new file mode 100644 +index 0000000..679568b +--- /dev/null ++++ b/levels/intro/geo.c.rej +@@ -0,0 +1,76 @@ ++diff a/levels/intro/geo.c b/levels/intro/geo.c (rejected hunks) ++@@ -32,13 +32,13 @@ const GeoLayout intro_geo_0002D0[] = { ++ GEO_OPEN_NODE(), ++ GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000), ++ GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_super_mario_64_logo), +++ GEO_ASM(0, geo_title_screen), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ZBUFFER(0), ++ GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_tm_copyright), +++ GEO_ASM(0, geo_fade_transition), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++@@ -52,10 +52,7 @@ const GeoLayout intro_geo_mario_head_regular[] = { ++ GEO_OPEN_NODE(), ++ GEO_NODE_ORTHO(100), ++ GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_regular_backdrop), ++-#ifdef VERSION_SH ++- GEO_ASM(0, geo_intro_face_easter_egg), ++-#endif +++ GEO_ASM(0, geo_intro_backdrop), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ZBUFFER(1), ++@@ -65,12 +62,6 @@ const GeoLayout intro_geo_mario_head_regular[] = { ++ GEO_ASM(2, geo_draw_mario_head_goddard), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++-#ifdef VERSION_SH ++- GEO_ZBUFFER(0), ++- GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_rumble_pak_graphic), ++- GEO_CLOSE_NODE(), ++-#endif ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++ }; ++@@ -83,10 +74,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { ++ GEO_OPEN_NODE(), ++ GEO_NODE_ORTHO(100), ++ GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_gameover_backdrop), ++-#ifdef VERSION_SH ++- GEO_ASM(0, geo_intro_face_easter_egg), ++-#endif +++ GEO_ASM(0, geo_game_over_tile), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ZBUFFER(1), ++@@ -96,12 +84,6 @@ const GeoLayout intro_geo_mario_head_dizzy[] = { ++ GEO_ASM(3, geo_draw_mario_head_goddard), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++-#ifdef VERSION_SH ++- GEO_ZBUFFER(0), ++- GEO_OPEN_NODE(), ++- GEO_ASM(1, geo_intro_rumble_pak_graphic), ++- GEO_CLOSE_NODE(), ++-#endif ++ GEO_CLOSE_NODE(), ++ GEO_END(), ++ }; ++@@ -114,7 +96,7 @@ const GeoLayout intro_geo_000414[] = { ++ GEO_OPEN_NODE(), ++ GEO_NODE_ORTHO(100), ++ GEO_OPEN_NODE(), ++- GEO_ASM(0, geo_intro_regular_backdrop), +++ GEO_ASM(0, geo_intro_backdrop), ++ GEO_CLOSE_NODE(), ++ GEO_CLOSE_NODE(), ++ GEO_ZBUFFER(1), +diff --git a/levels/intro/header.h.rej b/levels/intro/header.h.rej +new file mode 100644 +index 0000000..a6074bc +--- /dev/null ++++ b/levels/intro/header.h.rej +@@ -0,0 +1,18 @@ ++diff a/levels/intro/header.h b/levels/intro/header.h (rejected hunks) ++@@ -14,6 +14,16 @@ extern const Gfx intro_seg7_dl_0700B3A0[]; ++ extern const Gfx intro_seg7_dl_0700C6A0[]; ++ extern const f32 intro_seg7_table_0700C790[]; ++ extern const f32 intro_seg7_table_0700C880[]; +++extern Vtx titlesonic_Text_mesh_vtx_0[1426]; +++extern Gfx titlesonic_Text_mesh_tri_0[]; +++extern Vtx titlesonic_Text_mesh_vtx_1[638]; +++extern Gfx titlesonic_Text_mesh_tri_1[]; +++ +++ +++ +++//extern Gfx titlesonic_Text_mesh[]; +++ +++ ++ ++ // script ++ extern const LevelScript level_intro_entry_1[]; +diff --git a/levels/intro/leveldata.c b/levels/intro/leveldata.c +index 7a4474d..dd45a7d 100644 +--- a/levels/intro/leveldata.c ++++ b/levels/intro/leveldata.c +@@ -1,10 +1,3954 @@ +-#include +-#include +- +-#include "macros.h" +-#include "types.h" ++#include ++#include "sm64.h" ++#include "surface_terrains.h" ++#include "moving_texture_macros.h" ++#include "level_misc_macros.h" ++#include "macro_preset_names.h" ++#include "special_preset_names.h" ++#include "textures.h" + + #include "make_const_nonconst.h" ++Lights1 titlesonic_sm64_material_001_lights = gdSPDefLights1( ++ 0x0, 0x0, 0x7F, ++ 0x0, 0x0, 0xFE, 0x28, 0x28, 0x28); ++ ++Lights1 titlesonic_sm64_material_002_lights = gdSPDefLights1( ++ 0x7F, 0x73, 0x0, ++ 0xFE, 0xE6, 0x0, 0x28, 0x28, 0x28); ++ ++Vtx titlesonic_Text_mesh_vtx_0[1426] = { ++ { { { 273, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 273, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 352, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 136, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 158, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 161, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 240, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 201, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 216, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 214, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -386, 171 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -386, 171 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -515, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -515, 201 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -496, 196 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -471, 190 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -431, 181 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -422, 179 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -405, 175 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -386, 171 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -479, 192 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -420, 178 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -420, 178 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -386, 171 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -515, 201 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -481, 193 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -433, 182 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -469, 190 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -402, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -547, -423, 179 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -622, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -567, -434, 182 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -579, -450, 186 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -575, -467, 190 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -517, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -538, -468, 190 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -455, 187 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -431, 181 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -754, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -933, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -945, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -905, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -890, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -844, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -892, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1058, -384, 170 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1017, -420, 178 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1045, -418, 178 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1117, -426, 180 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1064, -424, 179 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1060, -431, 181 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1013, -445, 184 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1002, -473, 191 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1075, -467, 190 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1057, -470, 190 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1110, -514, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1052, -516, 201 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1115, -475, 182 },0,{ -16, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, ++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, ++ { { { -1117, -525, -21 },0,{ -16, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, ++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, ++ { { { -1111, -470, 186 },0,{ -16, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, ++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, ++ { { { -1106, -464, 188 },0,{ -16, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ -16, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, ++ { { { -1117, -426, 180 },0,{ 38, -16 },{ 0xEE, 0x1D, 0x7A, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, ++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, ++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1058, -384, 170 },0,{ 146, -16 },{ 0xFE, 0x30, 0x76, 0xFF } } }, ++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -1007, -387, 171 },0,{ 200, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1017, -420, 178 },0,{ 253, -16 },{ 0x9, 0x11, 0x7E, 0xFF } } }, ++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, ++ { { { -1045, -418, 178 },0,{ 307, -16 },{ 0x2, 0xA, 0x7F, 0xFF } } }, ++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, ++ { { { -1064, -424, 179 },0,{ 361, -16 },{ 0xC, 0x19, 0x7C, 0xFF } } }, ++ { { { -1060, -431, 181 },0,{ 415, -16 },{ 0xA, 0x2C, 0x77, 0xFF } } }, ++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, ++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, ++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1013, -445, 184 },0,{ 523, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, ++ { { { -1002, -473, 191 },0,{ 577, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1016, -504, 198 },0,{ 631, -16 },{ 0xC, 0x10, 0x7D, 0xFF } } }, ++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, ++ { { { -1052, -516, 201 },0,{ 685, -16 },{ 0x3, 0xA, 0x7F, 0xFF } } }, ++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, ++ { { { -1110, -514, 201 },0,{ 739, -16 },{ 0xF6, 0x16, 0x7D, 0xFF } } }, ++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1100, -482, 193 },0,{ 792, -16 },{ 0xF6, 0x2A, 0x78, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, ++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, ++ { { { -1057, -470, 190 },0,{ 900, -16 },{ 0xF5, 0x10, 0x7E, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, ++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, ++ { { { -1075, -467, 190 },0,{ 954, -16 },{ 0xFB, 0xA, 0x7F, 0xFF } } }, ++ { { { -1106, -464, 188 },0,{ 1008, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1101, -459, 188 },0,{ 1008, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, ++ { { { -1111, -470, 186 },0,{ 1008, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, ++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, ++ { { { -1115, -475, 182 },0,{ 1008, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, ++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, ++ { { { -1117, -525, -21 },0,{ 1008, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, ++ { { { -1080, -537, -18 },0,{ 954, 803 },{ 0xE3, 0x88, 0x1E, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, ++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, ++ { { { -1084, -509, -25 },0,{ 846, 803 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, ++ { { { -1116, -512, -24 },0,{ 792, 803 },{ 0xB1, 0x61, 0xEC, 0xFF } } }, ++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, ++ { { { -1139, -584, -7 },0,{ 739, 803 },{ 0x98, 0xBA, 0x14, 0xFF } } }, ++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, ++ { { { -1049, -587, -7 },0,{ 685, 803 },{ 0x13, 0x86, 0x1F, 0xFF } } }, ++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, ++ { { { -1000, -571, -11 },0,{ 631, 803 },{ 0x55, 0xA5, 0x18, 0xFF } } }, ++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, ++ { { { -978, -523, -22 },0,{ 577, 803 },{ 0x7F, 0xFD, 0x3, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, ++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, ++ { { { -1033, -463, -36 },0,{ 469, 803 },{ 0x22, 0x78, 0xE6, 0xFF } } }, ++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, ++ { { { -1046, -461, -36 },0,{ 415, 803 },{ 0x98, 0x47, 0xF0, 0xFF } } }, ++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, ++ { { { -1032, -486, -31 },0,{ 361, 803 },{ 0x8A, 0x2D, 0xF2, 0xFF } } }, ++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, ++ { { { -1042, -489, -30 },0,{ 307, 803 },{ 0x82, 0xF0, 0x4, 0xFF } } }, ++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, ++ { { { -1001, -491, -29 },0,{ 253, 803 },{ 0x4B, 0x9D, 0x1A, 0xFF } } }, ++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -980, -417, -47 },0,{ 200, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, ++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, ++ { { { -1115, -427, -44 },0,{ 92, 803 },{ 0xB1, 0x61, 0xEB, 0xFF } } }, ++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, ++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, ++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, ++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, ++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, ++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, ++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, ++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, ++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, ++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, ++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, ++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, ++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, ++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, ++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, ++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, ++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, ++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, ++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, ++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, ++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, ++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, ++ { { { -1067, -482, 189 },0,{ 900, 394 },{ 0x67, 0xBF, 0x25, 0xFF } } }, ++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, ++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, ++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, ++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, ++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, ++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, ++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, ++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, ++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, ++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, ++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, ++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, ++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, ++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, ++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, ++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, ++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, ++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, ++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, ++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, ++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, ++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, ++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, ++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, ++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, ++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, ++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, ++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, ++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, ++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { -985, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -979, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -974, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -990, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -918, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -865, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -844, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { -865, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, ++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { -918, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, ++ { { { -974, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { -969, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -979, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { -985, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -918, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, ++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { -849, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { -820, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, ++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { -849, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { -848, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, ++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { -987, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, ++ { { { -984, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, ++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { -829, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -855, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { -912, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { -911, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { -911, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { -933, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, ++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { -948, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, ++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { -945, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -905, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, ++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { -890, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, ++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { -892, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, ++ { { { -911, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { -911, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { -911, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { -912, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, ++ { { { -913, -496, -35 },0,{ 880, 1008 },{ 0x7D, 0x9, 0xE9, 0xFF } } }, ++ { { { -913, -495, -35 },0,{ 752, 1008 },{ 0x18, 0x7A, 0xE5, 0xFF } } }, ++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, ++ { { { -918, -501, -34 },0,{ 624, 1008 },{ 0xB8, 0x68, 0xFC, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 496, 803 },{ 0xD2, 0x74, 0xE6, 0xFF } } }, ++ { { { -925, -504, -34 },0,{ 496, 1008 },{ 0x82, 0x13, 0xFE, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, ++ { { { -924, -504, -33 },0,{ 368, 1008 },{ 0xC8, 0x8E, 0x7, 0xFF } } }, ++ { { { -926, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, ++ { { { -925, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, ++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { -904, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, ++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { -909, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, ++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, ++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { -773, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -769, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -784, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -833, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -833, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { -770, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -738, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -696, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -696, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { -754, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, ++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { -791, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, ++ { { { -784, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -791, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -773, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { -769, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -769, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, ++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { -766, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -674, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -674, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -760, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, ++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, ++ { { { -757, -415, -47 },0,{ 291, 803 },{ 0x5D, 0x54, 0xED, 0xFF } } }, ++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -855, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -683, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -683, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -762, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, ++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, ++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -614, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -619, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -685, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -685, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -633, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -626, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -633, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -619, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -614, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -611, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -704, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -707, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -699, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ -16, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -613, -507, 195 },0,{ -16, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, ++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -608, -502, 197 },0,{ -16, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, ++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -622, -449, 185 },0,{ 48, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -603, -402, 174 },0,{ 112, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, ++ { { { -553, -381, 169 },0,{ 176, -16 },{ 0xFD, 0x2F, 0x76, 0xFF } } }, ++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, ++ { { { -523, -431, 181 },0,{ 304, -16 },{ 0x3, 0x13, 0x7E, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -531, -425, 180 },0,{ 368, -16 },{ 0xF9, 0xC, 0x7E, 0xFF } } }, ++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, ++ { { { -547, -423, 179 },0,{ 432, -16 },{ 0x4, 0xB, 0x7E, 0xFF } } }, ++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, ++ { { { -567, -434, 182 },0,{ 496, -16 },{ 0xD, 0xF, 0x7D, 0xFF } } }, ++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, ++ { { { -579, -450, 186 },0,{ 560, -16 },{ 0x12, 0x1A, 0x7B, 0xFF } } }, ++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, ++ { { { -575, -467, 190 },0,{ 624, -16 },{ 0xE, 0x28, 0x78, 0xFF } } }, ++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, ++ { { { -538, -468, 190 },0,{ 752, -16 },{ 0xF6, 0x2E, 0x76, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -523, -455, 187 },0,{ 816, -16 },{ 0x3, 0x28, 0x79, 0xFF } } }, ++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, ++ { { { -502, -511, 200 },0,{ 880, -16 },{ 0xB, 0x17, 0x7C, 0xFF } } }, ++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, ++ { { { -553, -517, 201 },0,{ 944, -16 },{ 0xFD, 0xA, 0x7F, 0xFF } } }, ++ { { { -608, -502, 197 },0,{ 1008, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, ++ { { { -603, -496, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { -613, -507, 195 },0,{ 1008, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, ++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, ++ { { { -617, -512, 191 },0,{ 1008, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, ++ { { { -556, -588, -6 },0,{ 944, 803 },{ 0xEE, 0x86, 0x1F, 0xFF } } }, ++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, ++ { { { -472, -578, -9 },0,{ 880, 803 },{ 0x6C, 0xC0, 0x12, 0xFF } } }, ++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, ++ { { { -514, -470, -34 },0,{ 816, 803 },{ 0x20, 0x78, 0xE7, 0xFF } } }, ++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, ++ { { { -549, -499, -27 },0,{ 752, 803 },{ 0xC2, 0x6D, 0xE9, 0xFF } } }, ++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, ++ { { { -557, -501, -27 },0,{ 688, 803 },{ 0xB, 0x7C, 0xE5, 0xFF } } }, ++ { { { -556, -502, -27 },0,{ 624, 803 },{ 0xB2, 0x61, 0xE9, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, ++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, ++ { { { -552, -499, -27 },0,{ 496, 803 },{ 0x53, 0xA3, 0x18, 0xFF } } }, ++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, ++ { { { -542, -494, -29 },0,{ 432, 803 },{ 0x1A, 0x87, 0x1E, 0xFF } } }, ++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, ++ { { { -540, -494, -29 },0,{ 368, 803 },{ 0xCE, 0x8F, 0x1D, 0xFF } } }, ++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, ++ { { { -512, -518, -23 },0,{ 304, 803 },{ 0x24, 0x8A, 0x1F, 0xFF } } }, ++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -480, -413, -48 },0,{ 240, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -557, -410, -48 },0,{ 176, 803 },{ 0xEA, 0x7A, 0xE5, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, ++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, ++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, ++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, ++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, ++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, ++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, ++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, ++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, ++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, ++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, ++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, ++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, ++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, ++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, ++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, ++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, ++ { { { -484, -523, 198 },0,{ 880, 394 },{ 0x33, 0xFB, 0x74, 0xFF } } }, ++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, ++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, ++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, ++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, ++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, ++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, ++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, ++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, ++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, ++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, ++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, ++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, ++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, ++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, ++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, ++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, ++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, ++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, ++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, ++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, ++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, ++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, ++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, ++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, ++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, ++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, ++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, ++ { { { -283, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -280, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -288, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -294, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -412, -515, 201 },0,{ 69, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -301, -386, 171 },0,{ 240, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -420, 178 },0,{ 325, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -359, -420, 178 },0,{ 411, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -359, -433, 182 },0,{ 496, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -301, -433, 182 },0,{ 581, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -469, 190 },0,{ 667, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -359, -469, 190 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -301, -481, 193 },0,{ 923, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -294, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -301, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -288, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -280, -510, -25 },0,{ 923, 803 },{ 0x36, 0x72, 0xF1, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, ++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, ++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -337, -511, -32 },0,{ 837, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, ++ { { { -341, -489, 185 },0,{ 752, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -338, -539, -18 },0,{ 752, 803 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -280, -539, -18 },0,{ 667, 803 },{ 0x72, 0xCD, 0x17, 0xFF } } }, ++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, ++ { { { -279, -542, -24 },0,{ 667, 1008 },{ 0x7D, 0x5, 0x13, 0xFF } } }, ++ { { { -279, -462, -43 },0,{ 581, 1008 },{ 0x58, 0x5C, 0x7, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, ++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, ++ { { { -337, -493, -36 },0,{ 411, 1008 },{ 0xB0, 0xA1, 0x19, 0xFF } } }, ++ { { { -280, -490, -29 },0,{ 325, 803 },{ 0x37, 0x93, 0x25, 0xFF } } }, ++ { { { -279, -493, -36 },0,{ 325, 1008 },{ 0x0, 0x8B, 0x31, 0xFF } } }, ++ { { { -283, -440, 174 },0,{ 325, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -280, -415, -47 },0,{ 240, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -434, -415, -47 },0,{ 155, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, ++ { { { -346, -470, 186 },0,{ 837, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, ++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, ++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, ++ { { { -341, -417, 168 },0,{ 496, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, ++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, ++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, ++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, ++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -211, -585, -7 },0,{ -16, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -213, -529, 200 },0,{ -16, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -214, -522, 201 },0,{ -16, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, ++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ -16, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, ++ { { { -291, -515, 201 },0,{ 130, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -291, -386, 171 },0,{ 277, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, ++ { { { -216, -386, 171 },0,{ 423, -16 },{ 0x4, 0x2F, 0x76, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -169, -405, 175 },0,{ 569, -16 },{ 0xD, 0x29, 0x78, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, ++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, ++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -169, -496, 196 },0,{ 862, -16 },{ 0xD, 0x11, 0x7D, 0xFF } } }, ++ { { { -214, -522, 201 },0,{ 1008, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, ++ { { { -216, -515, 201 },0,{ 1008, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, ++ { { { -213, -529, 200 },0,{ 1008, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, ++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, ++ { { { -212, -535, 196 },0,{ 1008, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, ++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, ++ { { { -211, -585, -7 },0,{ 1008, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, ++ { { { -152, -561, -13 },0,{ 862, 803 },{ 0x5D, 0xAD, 0x16, 0xFF } } }, ++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, ++ { { { -131, -500, -27 },0,{ 715, 803 },{ 0x7F, 0x1, 0x2, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, ++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, ++ { { { -211, -415, -47 },0,{ 423, 803 },{ 0x19, 0x7A, 0xE6, 0xFF } } }, ++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -312, -415, -47 },0,{ 277, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, ++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, ++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, ++ { { { -140, -452, 182 },0,{ 715, 394 },{ 0x4A, 0x18, 0x64, 0xFF } } }, ++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, ++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, ++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, ++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, ++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, ++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, ++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, ++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, ++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -222, -493, -29 },0,{ -16, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -230, -436, 178 },0,{ -16, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -236, -429, 180 },0,{ -16, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -243, -479, 192 },0,{ 130, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, ++ { { { -228, -479, 192 },0,{ 277, -16 },{ 0xFC, 0x2F, 0x76, 0xFF } } }, ++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, ++ { { { -208, -471, 190 },0,{ 423, -16 },{ 0xF3, 0x29, 0x78, 0xFF } } }, ++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { -208, -431, 181 },0,{ 715, -16 },{ 0xF2, 0x11, 0x7D, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, ++ { { { -228, -422, 179 },0,{ 862, -16 },{ 0xFC, 0xA, 0x7F, 0xFF } } }, ++ { { { -236, -429, 180 },0,{ 1008, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { -243, -422, 179 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, ++ { { { -230, -436, 178 },0,{ 1008, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, ++ { { { -225, -442, 174 },0,{ 1008, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, ++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, ++ { { { -222, -493, -29 },0,{ 1008, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -221, -496, -35 },0,{ 1008, 1008 },{ 0x0, 0x75, 0xCF, 0xFF } } }, ++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, ++ { { { -226, -498, -35 },0,{ 715, 1008 },{ 0xA3, 0xB4, 0x29, 0xFF } } }, ++ { { { -224, -500, -27 },0,{ 569, 803 },{ 0x82, 0xF6, 0xB, 0xFF } } }, ++ { { { -225, -502, -34 },0,{ 569, 1008 },{ 0x88, 0xE2, 0x1C, 0xFF } } }, ++ { { { -221, -453, 177 },0,{ 569, 598 },{ 0x8D, 0xD, 0x35, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, ++ { { { -225, -505, -26 },0,{ 423, 803 },{ 0xA1, 0x53, 0xEF, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -232, -508, -25 },0,{ 277, 803 },{ 0x83, 0xE9, 0x5, 0xFF } } }, ++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, ++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, ++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, ++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, ++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, ++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, ++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, ++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, ++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, ++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, ++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, ++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, ++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, ++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, ++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, ++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, ++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, ++ { { { -72, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -77, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -143, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -143, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -90, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { -83, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -90, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -77, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -72, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { -69, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -161, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -165, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -156, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -64, -493, -29 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -56, -436, 178 },0,{ -16, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, ++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -50, -429, 180 },0,{ -16, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ -16, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -80, -422, 179 },0,{ 112, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -80, -386, 171 },0,{ 240, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 42, -386, 171 },0,{ 368, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 5, -422, 179 },0,{ 624, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 5, -515, 201 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -43, -515, 201 },0,{ 880, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -50, -429, 180 },0,{ 1008, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, ++ { { { -43, -422, 179 },0,{ 1008, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { -56, -436, 178 },0,{ 1008, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, ++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -61, -442, 174 },0,{ 1008, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, ++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -64, -493, -29 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 26, -585, -7 },0,{ 752, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 26, -493, -29 },0,{ 624, 803 },{ 0x59, 0xA9, 0x17, 0xFF } } }, ++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 63, -493, -29 },0,{ 496, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 63, -415, -47 },0,{ 368, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { -101, -415, -47 },0,{ 240, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 18, -436, 178 },0,{ 624, 394 },{ 0x25, 0xF7, 0x79, 0xFF } } }, ++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, ++ { { { 18, -529, 200 },0,{ 752, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, ++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 123, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 126, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 118, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 112, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 52, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 52, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 105, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 112, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 105, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 118, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 123, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 126, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 31, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 39, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { 120, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 127, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 131, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { 116, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, ++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { 136, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, ++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { 188, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, ++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { 241, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 240, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, ++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { 188, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, ++ { { { 131, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, ++ { { { 137, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, ++ { { { 127, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 123, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, ++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { 120, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, ++ { { { 188, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, ++ { { { 285, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, ++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { 257, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, ++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { 188, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, ++ { { { 258, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, ++ { { { 188, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, ++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { 119, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, ++ { { { 122, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, ++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, ++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, ++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, ++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, ++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, ++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, ++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, ++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, ++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, ++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, ++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, ++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, ++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, ++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, ++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, ++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, ++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, ++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, ++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, ++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 194, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { 195, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { 173, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, ++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { 158, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, ++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { 161, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, ++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, ++ { { { 201, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { 216, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, ++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { 214, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, ++ { { { 195, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, ++ { { { 195, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, ++ { { { 194, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, ++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { 194, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 880, 803 },{ 0x98, 0xBA, 0x13, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, ++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 188, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x65, 0xEA, 0xFF } } }, ++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { 180, -503, -26 },0,{ 496, 803 },{ 0x7, 0x7C, 0xE5, 0xFF } } }, ++ { { { 181, -503, -26 },0,{ 368, 803 },{ 0x67, 0x48, 0xF1, 0xFF } } }, ++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { 181, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, ++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, ++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, ++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, ++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, ++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, ++ { { { 193, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, ++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, ++ { { { 202, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, ++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, ++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, ++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, ++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, ++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, ++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, ++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, ++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, ++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, ++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, ++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, ++ { { { 333, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 336, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 328, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 322, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 273, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 273, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { 336, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, ++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 368, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 368, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, ++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 410, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 352, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { 315, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, ++ { { { 322, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 315, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, ++ { { { 328, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { 333, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { 336, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 336, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, ++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, ++ { { { 431, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, ++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 431, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, ++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 346, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 346, -425, -45 },0,{ 394, 803 },{ 0xF7, 0x8D, 0x35, 0xFF } } }, ++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, ++ { { { 349, -415, -47 },0,{ 291, 803 },{ 0x5C, 0x55, 0xED, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 251, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, ++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, ++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, ++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, ++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, ++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, ++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, ++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, ++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, ++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, ++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, ++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, ++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, ++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, ++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, ++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, ++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, ++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, ++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, ++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, ++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, ++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, ++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, ++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, ++}; ++ ++Gfx titlesonic_Text_mesh_tri_0[] = { ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(3, 5, 1, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(5, 8, 9, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(10, 13, 11, 0), ++ gsSP1Triangle(14, 13, 10, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 16, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(5, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 30, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 46, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(12, 9, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 62, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(10, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 78, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 94, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 110, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 126, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 142, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 158, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(12, 11, 10, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(13, 14, 11, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 174, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 190, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 206, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 222, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 238, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 254, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 0, 4, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 270, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 286, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(10, 12, 14, 0), ++ gsSP1Triangle(10, 14, 15, 0), ++ gsSP1Triangle(8, 10, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 302, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 318, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 7, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 334, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 350, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 366, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 382, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 3, 8, 0), ++ gsSP1Triangle(8, 3, 0, 0), ++ gsSP1Triangle(8, 0, 9, 0), ++ gsSP1Triangle(10, 6, 7, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(11, 12, 6, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 398, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(1, 4, 9, 0), ++ gsSP1Triangle(1, 9, 10, 0), ++ gsSP1Triangle(2, 1, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(12, 2, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 413, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 429, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(6, 8, 10, 0), ++ gsSP1Triangle(6, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 445, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(2, 3, 4, 0), ++ gsSP1Triangle(5, 2, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 7, 9, 0), ++ gsSP1Triangle(11, 5, 7, 0), ++ gsSP1Triangle(11, 12, 5, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(14, 13, 11, 0), ++ gsSP1Triangle(14, 11, 15, 0), ++ gsSP1Triangle(15, 11, 9, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 461, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(4, 3, 2, 0), ++ gsSP1Triangle(4, 2, 5, 0), ++ gsSP1Triangle(6, 3, 4, 0), ++ gsSP1Triangle(6, 7, 3, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 477, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(2, 7, 9, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(11, 2, 9, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 493, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 509, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(10, 12, 14, 0), ++ gsSP1Triangle(10, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 525, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 541, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 4, 6, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 557, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(8, 10, 12, 0), ++ gsSP1Triangle(8, 12, 13, 0), ++ gsSP1Triangle(6, 8, 13, 0), ++ gsSP1Triangle(6, 13, 14, 0), ++ gsSP1Triangle(4, 6, 14, 0), ++ gsSP1Triangle(4, 14, 15, 0), ++ gsSP1Triangle(1, 4, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 573, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 589, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 605, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(8, 11, 0, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 621, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 637, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 653, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 669, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 685, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 701, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 717, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 733, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(2, 7, 8, 0), ++ gsSP1Triangle(9, 2, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 749, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 765, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(7, 6, 3, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(12, 13, 10, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 781, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 797, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(0, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(3, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 813, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(6, 3, 7, 0), ++ gsSP1Triangle(7, 3, 8, 0), ++ gsSP1Triangle(3, 0, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 829, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 0, 4, 0), ++ gsSP1Triangle(6, 7, 0, 0), ++ gsSP1Triangle(8, 7, 6, 0), ++ gsSP1Triangle(9, 8, 6, 0), ++ gsSP1Triangle(9, 6, 10, 0), ++ gsSP1Triangle(10, 6, 4, 0), ++ gsSP1Triangle(10, 4, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 845, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(5, 6, 3, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 861, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(6, 8, 10, 0), ++ gsSP1Triangle(6, 10, 11, 0), ++ gsSP1Triangle(4, 6, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 877, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(3, 5, 9, 0), ++ gsSP1Triangle(3, 9, 10, 0), ++ gsSP1Triangle(2, 3, 10, 0), ++ gsSP1Triangle(2, 10, 11, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 893, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 909, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(12, 9, 11, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 925, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 4, 6, 0), ++ gsSP1Triangle(8, 9, 4, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 941, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(1, 4, 6, 0), ++ gsSP1Triangle(1, 6, 7, 0), ++ gsSP1Triangle(2, 1, 7, 0), ++ gsSP1Triangle(2, 7, 8, 0), ++ gsSP1Triangle(9, 2, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 957, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 973, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(5, 8, 7, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 989, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 0, 3, 0), ++ gsSP1Triangle(5, 6, 0, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 7, 5, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(9, 5, 3, 0), ++ gsSP1Triangle(9, 3, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 11, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1005, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(3, 5, 1, 0), ++ gsSP1Triangle(3, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1021, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1037, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(7, 9, 11, 0), ++ gsSP1Triangle(7, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1053, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 3, 5, 0), ++ gsSP1Triangle(7, 8, 3, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(8, 11, 0, 0), ++ gsSP1Triangle(8, 0, 3, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1069, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1085, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1101, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 9, 11, 0), ++ gsSP1Triangle(13, 14, 9, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1117, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(7, 9, 14, 0), ++ gsSP1Triangle(7, 14, 15, 0), ++ gsSP1Triangle(5, 7, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1133, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1149, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 12, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1165, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 0, 3, 0), ++ gsSP1Triangle(5, 6, 0, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(6, 9, 11, 0), ++ gsSP1Triangle(6, 11, 0, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1181, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1197, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(4, 6, 8, 0), ++ gsSP1Triangle(4, 8, 9, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(14, 11, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1213, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 2, 3, 0), ++ gsSP1Triangle(4, 0, 3, 0), ++ gsSP1Triangle(4, 3, 5, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(10, 7, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 7, 10, 0), ++ gsSP1Triangle(12, 6, 7, 0), ++ gsSP1Triangle(13, 6, 12, 0), ++ gsSP1Triangle(14, 13, 12, 0), ++ gsSP1Triangle(14, 12, 15, 0), ++ gsSP1Triangle(15, 12, 10, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1229, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1245, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 3, 5, 0), ++ gsSP1Triangle(6, 5, 7, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1261, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(5, 4, 3, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1277, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(5, 7, 9, 0), ++ gsSP1Triangle(5, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(12, 11, 13, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(12, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1293, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 10, 9, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 10, 11, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1309, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(9, 11, 13, 0), ++ gsSP1Triangle(9, 13, 14, 0), ++ gsSP1Triangle(7, 9, 14, 0), ++ gsSP1Triangle(7, 14, 15, 0), ++ gsSP1Triangle(5, 7, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1325, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(13, 12, 11, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1341, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1357, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(3, 5, 7, 0), ++ gsSP1Triangle(3, 7, 8, 0), ++ gsSP1Triangle(8, 7, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(10, 11, 12, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1373, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSP1Triangle(5, 3, 4, 0), ++ gsSP1Triangle(5, 4, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 11, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1389, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1405, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(2, 3, 5, 0), ++ gsSP1Triangle(2, 5, 6, 0), ++ gsSP1Triangle(7, 2, 6, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(11, 9, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(13, 11, 12, 0), ++ gsSP1Triangle(13, 12, 14, 0), ++ gsSP1Triangle(15, 13, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1421, 5, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 2, 4, 0), ++ gsSPEndDisplayList(), ++}; Vtx titlesonic_Text_mesh_vtx_1[638] = { ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 273, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 410, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 368, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 136, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 241, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 116, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 173, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 158, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 179, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 240, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 188, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 201, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 216, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 214, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 52, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -381, 196 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -80, -381, 196 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, ++ { { { -43, -509, 226 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 5, -509, 226 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -143, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -490, 222 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -465, 216 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -208, -425, 207 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -416, 205 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -169, -399, 201 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -381, 196 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -243, -473, 218 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -414, 204 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -381, 196 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -381, 196 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -412, -509, 226 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -476, 219 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -427, 207 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -301, -463, 215 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -396, 200 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -622, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -567, -428, 207 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -579, -444, 211 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -575, -461, 215 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -553, -511, 227 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -538, -462, 215 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -449, 212 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -523, -425, 207 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -685, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -696, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -738, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -970, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -933, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -927, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -918, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -905, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -890, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -892, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1058, -378, 196 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1017, -414, 204 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1045, -412, 204 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1117, -420, 205 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1064, -418, 205 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1060, -425, 207 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1039, -428, 207 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1013, -439, 210 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1057, -464, 216 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1054, -472, 218 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1110, -508, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { -1052, -510, 227 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, ++ { { { 336, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 273, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 315, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 368, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 410, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 410, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 368, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 241, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 136, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 188, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 214, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 216, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 240, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 201, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 179, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 188, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 116, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 158, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 173, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 52, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 52, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 42, -389, 160 },0,{ 423, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -80, -389, 160 },0,{ 277, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -43, -517, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { 5, -517, 191 },0,{ 862, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -143, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -143, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -291, -517, 191 },0,{ 63, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -169, -498, 186 },0,{ 457, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -228, -481, 182 },0,{ 693, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -243, -481, 182 },0,{ 614, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ 535, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -291, -389, 160 },0,{ 142, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -216, -389, 160 },0,{ 220, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -169, -408, 165 },0,{ 299, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -228, -425, 169 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 378, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -208, -433, 171 },0,{ 929, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 850, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -208, -473, 180 },0,{ 772, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 356, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -422, 168 },0,{ 449, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -389, 160 },0,{ 263, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -412, -389, 160 },0,{ 170, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -412, -517, 191 },0,{ 77, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -435, 171 },0,{ 543, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -471, 180 },0,{ 822, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -435, 171 },0,{ 636, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -471, 180 },0,{ 729, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -359, -484, 183 },0,{ 915, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -553, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -523, -434, 171 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -622, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -567, -436, 172 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -579, -452, 175 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -575, -469, 179 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -559, -477, 181 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -538, -470, 180 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -523, -458, 177 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -553, -519, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -633, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -685, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -685, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -770, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -833, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -738, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -696, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -696, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -738, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -754, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -865, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -970, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -918, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -844, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -892, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -890, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -905, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -918, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -945, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -990, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -948, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -933, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1007, -389, 161 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -398, 163 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1058, -387, 160 },0,{ 155, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 268, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1045, -421, 168 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1117, -428, 170 },0,{ 41, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1064, -426, 169 },0,{ 382, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1060, -433, 171 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1039, -436, 172 },0,{ 496, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1013, -447, 174 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1002, -475, 181 },0,{ 610, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1075, -470, 180 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1057, -472, 180 },0,{ 951, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1100, -484, 183 },0,{ 837, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1110, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1052, -519, 191 },0,{ 724, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ -16, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1117, -428, 170 },0,{ 38, 1008 },{ 0x81, 0x3, 0xFF, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1117, -420, 205 },0,{ 38, -16 },{ 0x81, 0x3, 0xFF, 0xFF } } }, ++ { { { -1101, -398, 163 },0,{ 92, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1101, -390, 198 },0,{ 92, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1058, -387, 160 },0,{ 146, 1008 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, ++ { { { -1058, -378, 196 },0,{ 146, -16 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, ++ { { { -1007, -389, 161 },0,{ 200, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -1017, -414, 204 },0,{ 253, -16 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, ++ { { { -1045, -421, 168 },0,{ 307, 1008 },{ 0xF, 0x85, 0x1D, 0xFF } } }, ++ { { { -1045, -412, 204 },0,{ 307, -16 },{ 0xF, 0x85, 0x1D, 0xFF } } }, ++ { { { -1064, -426, 169 },0,{ 361, 1008 },{ 0x76, 0xD2, 0xB, 0xFF } } }, ++ { { { -1064, -418, 205 },0,{ 361, -16 },{ 0x76, 0xD2, 0xB, 0xFF } } }, ++ { { { -1060, -433, 171 },0,{ 415, 1008 },{ 0x47, 0x66, 0xE8, 0xFF } } }, ++ { { { -1060, -425, 207 },0,{ 415, -16 },{ 0x47, 0x66, 0xE8, 0xFF } } }, ++ { { { -1039, -436, 172 },0,{ 469, 1008 },{ 0x22, 0x77, 0xE4, 0xFF } } }, ++ { { { -1039, -428, 207 },0,{ 469, -16 },{ 0x22, 0x77, 0xE4, 0xFF } } }, ++ { { { -1013, -447, 174 },0,{ 523, 1008 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, ++ { { { -1013, -439, 210 },0,{ 523, -16 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, ++ { { { -1002, -475, 181 },0,{ 577, 1008 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, ++ { { { -1016, -498, 224 },0,{ 631, -16 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, ++ { { { -1052, -519, 191 },0,{ 685, 1008 },{ 0x13, 0x86, 0x1D, 0xFF } } }, ++ { { { -1052, -510, 227 },0,{ 685, -16 },{ 0x13, 0x86, 0x1D, 0xFF } } }, ++ { { { -1110, -517, 191 },0,{ 739, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -1110, -508, 226 },0,{ 739, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -1100, -484, 183 },0,{ 792, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1100, -476, 219 },0,{ 792, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, ++ { { { -1054, -480, 182 },0,{ 846, 1008 },{ 0x94, 0x41, 0xF1, 0xFF } } }, ++ { { { -1054, -472, 218 },0,{ 846, -16 },{ 0x94, 0x42, 0xF1, 0xFF } } }, ++ { { { -1057, -472, 180 },0,{ 900, 1008 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, ++ { { { -1057, -464, 216 },0,{ 900, -16 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, ++ { { { -1075, -470, 180 },0,{ 954, 1008 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, ++ { { { -1101, -453, 213 },0,{ 1008, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -990, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -990, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, ++ { { { -970, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { -970, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { -918, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { -918, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { -865, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { -865, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { -844, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { -865, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { -918, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { -918, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { -969, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -969, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -933, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -933, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { -948, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { -948, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { -945, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -927, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { -905, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { -905, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { -890, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { -890, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { -892, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -892, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { -911, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -911, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -833, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -770, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -770, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { -738, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { -738, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { -738, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -738, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -696, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -696, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -696, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -696, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -754, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { -791, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { -791, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -791, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -685, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -685, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -685, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -685, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -633, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -633, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -633, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -633, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ -16, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -622, -451, 175 },0,{ 48, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -622, -443, 211 },0,{ 48, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -603, -404, 164 },0,{ 112, 1008 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, ++ { { { -603, -396, 200 },0,{ 112, -16 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, ++ { { { -553, -384, 159 },0,{ 176, 1008 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, ++ { { { -553, -375, 195 },0,{ 176, -16 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, ++ { { { -509, -386, 160 },0,{ 240, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -509, -377, 195 },0,{ 240, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { -523, -434, 171 },0,{ 304, 1008 },{ 0x24, 0x89, 0x1C, 0xFF } } }, ++ { { { -523, -425, 207 },0,{ 304, -16 },{ 0x24, 0x89, 0x1C, 0xFF } } }, ++ { { { -531, -427, 169 },0,{ 368, 1008 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, ++ { { { -531, -419, 205 },0,{ 368, -16 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -567, -436, 172 },0,{ 496, 1008 },{ 0x53, 0xA3, 0x16, 0xFF } } }, ++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, ++ { { { -567, -428, 207 },0,{ 496, -16 },{ 0x53, 0xA3, 0x16, 0xFF } } }, ++ { { { -579, -452, 175 },0,{ 560, 1008 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, ++ { { { -579, -444, 211 },0,{ 560, -16 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, ++ { { { -575, -469, 179 },0,{ 624, 1008 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, ++ { { { -575, -461, 215 },0,{ 624, -16 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, ++ { { { -559, -477, 181 },0,{ 688, 1008 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, ++ { { { -559, -468, 217 },0,{ 688, -16 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, ++ { { { -538, -470, 180 },0,{ 752, 1008 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, ++ { { { -538, -462, 215 },0,{ 752, -16 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, ++ { { { -523, -458, 177 },0,{ 816, 1008 },{ 0x20, 0x78, 0xE4, 0xFF } } }, ++ { { { -523, -449, 212 },0,{ 816, -16 },{ 0x20, 0x78, 0xE4, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -553, -519, 191 },0,{ 944, 1008 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, ++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, ++ { { { -553, -511, 227 },0,{ 944, -16 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, ++ { { { -603, -499, 186 },0,{ 1008, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -603, -490, 222 },0,{ 1008, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -412, -517, 191 },0,{ 69, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -412, -509, 226 },0,{ 69, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -412, -389, 160 },0,{ 155, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -412, -381, 196 },0,{ 155, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -389, 160 },0,{ 240, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -381, 196 },0,{ 240, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -422, 168 },0,{ 411, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -414, 204 },0,{ 411, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -435, 171 },0,{ 496, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -359, -427, 207 },0,{ 496, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -435, 171 },0,{ 581, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -427, 207 },0,{ 581, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -471, 180 },0,{ 667, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -463, 215 },0,{ 667, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -471, 180 },0,{ 752, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -359, -463, 215 },0,{ 752, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -359, -484, 183 },0,{ 837, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -359, -476, 219 },0,{ 837, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -301, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -301, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ -16, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -291, -517, 191 },0,{ 130, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -291, -509, 226 },0,{ 130, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -291, -389, 160 },0,{ 277, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -291, -381, 196 },0,{ 277, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -216, -389, 160 },0,{ 423, 1008 },{ 0x19, 0x79, 0xE3, 0xFF } } }, ++ { { { -216, -381, 196 },0,{ 423, -16 },{ 0x19, 0x79, 0xE3, 0xFF } } }, ++ { { { -169, -408, 165 },0,{ 569, 1008 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, ++ { { { -169, -399, 201 },0,{ 569, -16 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -169, -498, 186 },0,{ 862, 1008 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, ++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, ++ { { { -169, -490, 222 },0,{ 862, -16 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, ++ { { { -216, -517, 191 },0,{ 1008, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -216, -509, 226 },0,{ 1008, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ -16, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -243, -481, 182 },0,{ 130, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ -16, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -243, -473, 218 },0,{ 130, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -228, -481, 182 },0,{ 277, 1008 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, ++ { { { -228, -473, 218 },0,{ 277, -16 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, ++ { { { -208, -473, 180 },0,{ 423, 1008 },{ 0xA1, 0x53, 0xED, 0xFF } } }, ++ { { { -208, -465, 216 },0,{ 423, -16 },{ 0xA1, 0x53, 0xED, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -208, -433, 171 },0,{ 715, 1008 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, ++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { -208, -425, 207 },0,{ 715, -16 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, ++ { { { -228, -425, 169 },0,{ 862, 1008 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, ++ { { { -228, -416, 205 },0,{ 862, -16 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, ++ { { { -243, -425, 169 },0,{ 1008, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -243, -416, 205 },0,{ 1008, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -143, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -143, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -143, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -143, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { -90, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { -90, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ -16, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -80, -425, 169 },0,{ 112, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -80, -416, 205 },0,{ 112, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -80, -389, 160 },0,{ 240, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { -80, -381, 196 },0,{ 240, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 42, -389, 160 },0,{ 368, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 42, -381, 196 },0,{ 368, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 42, -425, 169 },0,{ 496, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 42, -416, 205 },0,{ 496, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -517, 191 },0,{ 752, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 5, -509, 226 },0,{ 752, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -517, 191 },0,{ 880, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { -43, -509, 226 },0,{ 880, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -425, 169 },0,{ 1008, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { -43, -416, 205 },0,{ 1008, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 52, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 52, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 52, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 52, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 105, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 105, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 116, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 116, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, ++ { { { 136, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { 136, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, ++ { { { 188, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { 188, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, ++ { { { 241, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { 241, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 240, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, ++ { { { 240, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, ++ { { { 188, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { 188, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, ++ { { { 137, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 137, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 173, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 173, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, ++ { { { 158, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { 158, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 179, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, ++ { { { 179, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, ++ { { { 201, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { 201, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, ++ { { { 216, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { 216, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, ++ { { { 214, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { 214, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, ++ { { { 195, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 195, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, ++ { { { 273, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, ++ { { { 273, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 336, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { 336, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, ++ { { { 368, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { 368, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, ++ { { { 368, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, ++ { { { 368, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, ++ { { { 410, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, ++ { { { 410, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, ++ { { { 410, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 410, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 315, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, ++ { { { 315, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, ++ { { { 315, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, ++ { { { 315, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, ++}; ++ ++Gfx titlesonic_Text_mesh_tri_1[] = { ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 0, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(6, 10, 9, 0), ++ gsSP1Triangle(9, 11, 7, 0), ++ gsSP1Triangle(9, 12, 11, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(11, 12, 14, 0), ++ gsSP1Triangle(11, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 16, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(4, 7, 6, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 10, 8, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(13, 10, 14, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSP1Triangle(15, 14, 3, 0), ++ gsSP1Triangle(3, 14, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 32, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 48, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 6, 7, 0), ++ gsSP1Triangle(7, 6, 8, 0), ++ gsSP1Triangle(8, 6, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(12, 9, 13, 0), ++ gsSP1Triangle(14, 12, 13, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 64, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 0, 2, 0), ++ gsSP1Triangle(3, 4, 0, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 8, 9, 0), ++ gsSP1Triangle(10, 6, 9, 0), ++ gsSP1Triangle(10, 11, 6, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(10, 14, 13, 0), ++ gsSP1Triangle(10, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 80, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 8, 4, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 11, 9, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(12, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 96, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 112, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(1, 4, 2, 0), ++ gsSP1Triangle(1, 5, 4, 0), ++ gsSP1Triangle(6, 5, 1, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(4, 7, 8, 0), ++ gsSP1Triangle(9, 10, 11, 0), ++ gsSP1Triangle(9, 12, 10, 0), ++ gsSP1Triangle(13, 12, 9, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 128, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(4, 5, 7, 0), ++ gsSP1Triangle(7, 5, 8, 0), ++ gsSP1Triangle(8, 5, 9, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(10, 9, 11, 0), ++ gsSP1Triangle(11, 9, 12, 0), ++ gsSP1Triangle(13, 14, 15, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 144, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(11, 10, 7, 0), ++ gsSP1Triangle(12, 10, 11, 0), ++ gsSP1Triangle(13, 10, 12, 0), ++ gsSP1Triangle(13, 14, 10, 0), ++ gsSP1Triangle(15, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 160, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(9, 12, 7, 0), ++ gsSP1Triangle(13, 5, 7, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 174, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(15, 13, 3, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 190, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(11, 9, 8, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 206, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(3, 1, 4, 0), ++ gsSP1Triangle(4, 1, 5, 0), ++ gsSP1Triangle(5, 1, 6, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(8, 5, 7, 0), ++ gsSP1Triangle(9, 5, 8, 0), ++ gsSP1Triangle(10, 9, 8, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(10, 13, 12, 0), ++ gsSP1Triangle(2, 13, 10, 0), ++ gsSP1Triangle(2, 3, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 220, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(2, 1, 3, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 4, 1, 0), ++ gsSP1Triangle(6, 4, 5, 0), ++ gsSP1Triangle(7, 6, 5, 0), ++ gsSP1Triangle(8, 6, 7, 0), ++ gsSP1Triangle(9, 4, 6, 0), ++ gsSP1Triangle(10, 4, 9, 0), ++ gsSP1Triangle(11, 4, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(15, 13, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 236, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 4, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 5, 3, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 10, 12, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 8, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 251, 14, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(7, 5, 4, 0), ++ gsSP1Triangle(8, 7, 4, 0), ++ gsSP1Triangle(9, 7, 8, 0), ++ gsSP1Triangle(9, 8, 10, 0), ++ gsSP1Triangle(10, 8, 11, 0), ++ gsSP1Triangle(9, 12, 7, 0), ++ gsSP1Triangle(13, 5, 7, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 265, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 6, 4, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(7, 10, 9, 0), ++ gsSP1Triangle(7, 11, 10, 0), ++ gsSP1Triangle(9, 10, 12, 0), ++ gsSP1Triangle(12, 10, 13, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(14, 13, 15, 0), ++ gsSP1Triangle(15, 13, 3, 0), ++ gsSP1Triangle(3, 13, 1, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 281, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 1, 0, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(4, 5, 1, 0), ++ gsSP1Triangle(6, 5, 4, 0), ++ gsSP1Triangle(7, 5, 6, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(9, 8, 7, 0), ++ gsSP1Triangle(10, 8, 9, 0), ++ gsSP1Triangle(11, 8, 10, 0), ++ gsSP1Triangle(11, 12, 8, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(11, 14, 13, 0), ++ gsSP1Triangle(15, 14, 11, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 297, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 3, 0, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 313, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 329, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 345, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(3, 4, 5, 0), ++ gsSP1Triangle(3, 6, 4, 0), ++ gsSP1Triangle(6, 7, 4, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 361, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(7, 8, 9, 0), ++ gsSP1Triangle(7, 10, 8, 0), ++ gsSP1Triangle(10, 11, 8, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 377, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(11, 12, 13, 0), ++ gsSP1Triangle(11, 14, 12, 0), ++ gsSP1Triangle(14, 15, 12, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 393, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(4, 5, 3, 0), ++ gsSP1Triangle(4, 6, 5, 0), ++ gsSP1Triangle(6, 7, 5, 0), ++ gsSP1Triangle(6, 8, 7, 0), ++ gsSP1Triangle(8, 9, 7, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSP1Triangle(14, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 409, 15, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(1, 3, 2, 0), ++ gsSP1Triangle(1, 4, 3, 0), ++ gsSP1Triangle(5, 6, 7, 0), ++ gsSP1Triangle(5, 8, 6, 0), ++ gsSP1Triangle(8, 9, 6, 0), ++ gsSP1Triangle(8, 10, 9, 0), ++ gsSP1Triangle(10, 11, 9, 0), ++ gsSP1Triangle(10, 12, 11, 0), ++ gsSP1Triangle(12, 13, 11, 0), ++ gsSP1Triangle(12, 14, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 424, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 440, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 456, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 472, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 488, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 504, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(6, 7, 8, 0), ++ gsSP1Triangle(6, 9, 7, 0), ++ gsSP1Triangle(9, 10, 7, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 520, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 536, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 552, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 568, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(4, 5, 6, 0), ++ gsSP1Triangle(4, 7, 5, 0), ++ gsSP1Triangle(7, 8, 5, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 584, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(8, 9, 10, 0), ++ gsSP1Triangle(8, 11, 9, 0), ++ gsSP1Triangle(11, 12, 9, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 600, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(12, 13, 14, 0), ++ gsSP1Triangle(12, 15, 13, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 616, 16, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSP1Triangle(5, 6, 4, 0), ++ gsSP1Triangle(5, 7, 6, 0), ++ gsSP1Triangle(7, 8, 6, 0), ++ gsSP1Triangle(7, 9, 8, 0), ++ gsSP1Triangle(9, 10, 8, 0), ++ gsSP1Triangle(9, 11, 10, 0), ++ gsSP1Triangle(11, 12, 10, 0), ++ gsSP1Triangle(11, 13, 12, 0), ++ gsSP1Triangle(13, 14, 12, 0), ++ gsSP1Triangle(13, 15, 14, 0), ++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 632, 6, 0), ++ gsSP1Triangle(0, 1, 2, 0), ++ gsSP1Triangle(0, 3, 1, 0), ++ gsSP1Triangle(3, 4, 1, 0), ++ gsSP1Triangle(3, 5, 4, 0), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_titlesonic_sm64_material_001[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(titlesonic_sm64_material_001_lights), ++ gsSPEndDisplayList(), ++}; ++ ++ ++Gfx mat_titlesonic_sm64_material_002[] = { ++ gsDPPipeSync(), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 1), ++ gsSPSetLights1(titlesonic_sm64_material_002_lights), ++ gsSPEndDisplayList(), ++}; ++ ++ + + // 0x07000000 - 0x07000100 + static const Vtx intro_seg7_vertex_07000000[] = { +@@ -2577,12 +6521,12 @@ static const Vtx intro_seg7_vertex_07007DF0[] = { + }; + + // 0x07007EA0 - 0x07007EA2 +-ALIGNED8 static const Texture intro_seg7_texture_07007EA0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_07007EA0[] = { + #include "levels/intro/0.rgba16.inc.c" + }; + + // 0x070086A0 - 0x070086A2 +-ALIGNED8 static const Texture intro_seg7_texture_070086A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_070086A0[] = { + #include "levels/intro/1.rgba16.inc.c" + }; + +@@ -3297,6 +7241,8 @@ static const Gfx intro_seg7_dl_0700ADC0[] = { + gsSPEndDisplayList(), + }; + ++ ++ + // 0x0700B3A0 - 0x0700B420 + const Gfx intro_seg7_dl_0700B3A0[] = { + gsDPPipeSync(), +@@ -3314,7 +7260,17 @@ const Gfx intro_seg7_dl_0700B3A0[] = { + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPDisplayList(intro_seg7_dl_0700ADC0), + gsSPSetGeometryMode(G_LIGHTING), +- gsSPEndDisplayList(), ++ //gsSPEndDisplayList(), ++ gsSPDisplayList(mat_titlesonic_sm64_material_001), ++ gsSPDisplayList(titlesonic_Text_mesh_tri_0), ++ gsSPDisplayList(mat_titlesonic_sm64_material_002), ++ gsSPDisplayList(titlesonic_Text_mesh_tri_1), ++ gsDPPipeSync(), ++ gsSPSetGeometryMode(G_LIGHTING), ++ gsSPClearGeometryMode(G_TEXTURE_GEN), ++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), ++ gsSPTexture(65535, 65535, 0, 0, 0), ++ gsSPEndDisplayList(), + }; + + // 0x0700B420 - 0x0700B460 +@@ -3333,31 +7289,25 @@ static const Vtx intro_seg7_vertex_0700B460[] = { + {{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + }; + +-#if defined(VERSION_EU) || defined(VERSION_SH) ++#ifdef VERSION_EU + // 0x0700B4A0 - 0x0700B4A2 +-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { + #include "levels/intro/2_eu_copyright.rgba16.inc.c" + }; + ++// 0x0700C4A0 - 0x0700D4A0 ++ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { ++#include "levels/intro/3_eu_tm.rgba16.inc.c" ++}; ++ + #else + // 0x0700B4A0 - 0x0700B4A2 +-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { ++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { + #include "levels/intro/2_copyright.rgba16.inc.c" + }; +-#endif + +-#if defined(VERSION_EU) + // 0x0700C4A0 - 0x0700D4A0 + ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { +-#include "levels/intro/3_eu_tm.rgba16.inc.c" +-}; +-#elif defined(VERSION_SH) +-ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { +-#include "levels/intro/3_sh_tm.rgba16.inc.c" +-}; +-#else +-// 0x0700C4A0 - 0x0700D4A0 +-ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = { + #include "levels/intro/3_tm.rgba16.inc.c" + }; + #endif +diff --git a/levels/intro/leveldata.c.rej b/levels/intro/leveldata.c.rej +new file mode 100644 +index 0000000..61c9a01 +--- /dev/null ++++ b/levels/intro/leveldata.c.rej +@@ -0,0 +1,4044 @@ ++diff a/levels/intro/leveldata.c b/levels/intro/leveldata.c (rejected hunks) ++@@ -1,10 +1,3954 @@ ++-#include ++-#include ++- ++-#include "macros.h" ++-#include "types.h" +++#include +++#include "sm64.h" +++#include "surface_terrains.h" +++#include "moving_texture_macros.h" +++#include "level_misc_macros.h" +++#include "macro_preset_names.h" +++#include "special_preset_names.h" +++#include "textures.h" ++ ++ #include "make_const_nonconst.h" +++Lights1 titlesonic_sm64_material_001_lights = gdSPDefLights1( +++ 0x0, 0x0, 0x7F, +++ 0x0, 0x0, 0xFE, 0x28, 0x28, 0x28); +++ +++Lights1 titlesonic_sm64_material_002_lights = gdSPDefLights1( +++ 0x7F, 0x73, 0x0, +++ 0xFE, 0xE6, 0x0, 0x28, 0x28, 0x28); +++ +++Vtx titlesonic_Text_mesh_vtx_0[1426] = { +++ { { { 273, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 336, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 273, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 315, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 315, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 368, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 410, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 352, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 410, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 368, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 136, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 188, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 116, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 158, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 173, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 161, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 137, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 179, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 240, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 188, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 201, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 216, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 262, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 214, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 195, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 241, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 52, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 105, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 52, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 105, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 42, -386, 171 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -80, -386, 171 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { 42, -422, 179 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -80, -422, 179 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -43, -515, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 5, -422, 179 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -43, -422, 179 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 5, -515, 201 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -143, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -90, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -143, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -90, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -169, -496, 196 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -208, -471, 190 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -154, -451, 186 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -202, -451, 186 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -208, -431, 181 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -422, 179 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -169, -405, 175 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -422, 179 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -386, 171 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -386, 171 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -515, 201 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -479, 192 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -479, 192 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -420, 178 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -420, 178 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -386, 171 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -412, -386, 171 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -412, -515, 201 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -481, 193 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -481, 193 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -469, 190 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -433, 182 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -433, 182 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -469, 190 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -402, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -553, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -547, -423, 179 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -622, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -567, -434, 182 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -579, -450, 186 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -575, -467, 190 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -553, -517, 201 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -502, -511, 200 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -496, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -559, -474, 191 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -538, -468, 190 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -523, -455, 187 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -531, -425, 180 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -523, -431, 181 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -509, -383, 170 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -685, -515, 201 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -633, -386, 171 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -685, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -633, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -386, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -515, 201 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -791, -453, 186 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -770, -386, 171 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -791, -515, 201 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -738, -448, 185 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -696, -515, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -754, -515, 201 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -696, -386, 171 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -738, -386, 171 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -970, -401, 174 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -918, -381, 169 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -933, -430, 181 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -990, -449, 185 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -945, -467, 190 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -948, -447, 185 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -969, -497, 197 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -927, -476, 192 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -497, 197 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -918, -517, 202 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -905, -468, 190 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -890, -451, 186 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -844, -449, 185 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -892, -431, 181 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -911, -422, 179 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -399, 174 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1058, -384, 170 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -396, 173 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1017, -420, 178 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1007, -387, 171 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1045, -418, 178 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1117, -426, 180 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1064, -424, 179 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1060, -431, 181 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -459, 188 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1039, -434, 182 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1013, -445, 184 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1002, -473, 191 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1075, -467, 190 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1057, -470, 190 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1054, -478, 192 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1110, -514, 201 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1016, -504, 198 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1100, -482, 193 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1052, -516, 201 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1115, -475, 182 },0,{ -16, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, +++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, +++ { { { -1117, -525, -21 },0,{ -16, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, +++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, +++ { { { -1111, -470, 186 },0,{ -16, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, +++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, +++ { { { -1106, -464, 188 },0,{ -16, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, +++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, +++ { { { -1101, -459, 188 },0,{ -16, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, +++ { { { -1117, -426, 180 },0,{ 38, -16 },{ 0xEE, 0x1D, 0x7A, 0xFF } } }, +++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, +++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, +++ { { { -1101, -396, 173 },0,{ 92, -16 },{ 0xF4, 0x2B, 0x77, 0xFF } } }, +++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, +++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, +++ { { { -1058, -384, 170 },0,{ 146, -16 },{ 0xFE, 0x30, 0x76, 0xFF } } }, +++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, +++ { { { -1007, -387, 171 },0,{ 200, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, +++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, +++ { { { -1017, -420, 178 },0,{ 253, -16 },{ 0x9, 0x11, 0x7E, 0xFF } } }, +++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, +++ { { { -1045, -418, 178 },0,{ 307, -16 },{ 0x2, 0xA, 0x7F, 0xFF } } }, +++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, +++ { { { -1064, -424, 179 },0,{ 361, -16 },{ 0xC, 0x19, 0x7C, 0xFF } } }, +++ { { { -1060, -431, 181 },0,{ 415, -16 },{ 0xA, 0x2C, 0x77, 0xFF } } }, +++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, +++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, +++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, +++ { { { -1039, -434, 182 },0,{ 469, -16 },{ 0x5, 0x2F, 0x76, 0xFF } } }, +++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, +++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, +++ { { { -1013, -445, 184 },0,{ 523, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, +++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, +++ { { { -1002, -473, 191 },0,{ 577, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, +++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, +++ { { { -1016, -504, 198 },0,{ 631, -16 },{ 0xC, 0x10, 0x7D, 0xFF } } }, +++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, +++ { { { -1052, -516, 201 },0,{ 685, -16 },{ 0x3, 0xA, 0x7F, 0xFF } } }, +++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, +++ { { { -1110, -514, 201 },0,{ 739, -16 },{ 0xF6, 0x16, 0x7D, 0xFF } } }, +++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, +++ { { { -1100, -482, 193 },0,{ 792, -16 },{ 0xF6, 0x2A, 0x78, 0xFF } } }, +++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, +++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, +++ { { { -1054, -478, 192 },0,{ 846, -16 },{ 0xF6, 0x24, 0x7A, 0xFF } } }, +++ { { { -1057, -470, 190 },0,{ 900, -16 },{ 0xF5, 0x10, 0x7E, 0xFF } } }, +++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, +++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, +++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, +++ { { { -1075, -467, 190 },0,{ 954, -16 },{ 0xFB, 0xA, 0x7F, 0xFF } } }, +++ { { { -1106, -464, 188 },0,{ 1008, 189 },{ 0xE4, 0xFE, 0x7C, 0xFF } } }, +++ { { { -1101, -459, 188 },0,{ 1008, -16 },{ 0xF4, 0x10, 0x7D, 0xFF } } }, +++ { { { -1111, -470, 186 },0,{ 1008, 394 },{ 0xCE, 0xE2, 0x71, 0xFF } } }, +++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, +++ { { { -1115, -475, 182 },0,{ 1008, 598 },{ 0xB1, 0xB6, 0x42, 0xFF } } }, +++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, +++ { { { -1117, -525, -21 },0,{ 1008, 803 },{ 0xAB, 0xA5, 0x18, 0xFF } } }, +++ { { { -1080, -537, -18 },0,{ 954, 803 },{ 0xE3, 0x88, 0x1E, 0xFF } } }, +++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, +++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, +++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, +++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, +++ { { { -1073, -538, -18 },0,{ 900, 803 },{ 0x63, 0xB3, 0x12, 0xFF } } }, +++ { { { -1084, -509, -25 },0,{ 846, 803 },{ 0x43, 0x69, 0xE7, 0xFF } } }, +++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, +++ { { { -1116, -512, -24 },0,{ 792, 803 },{ 0xB1, 0x61, 0xEC, 0xFF } } }, +++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, +++ { { { -1139, -584, -7 },0,{ 739, 803 },{ 0x98, 0xBA, 0x14, 0xFF } } }, +++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, +++ { { { -1049, -587, -7 },0,{ 685, 803 },{ 0x13, 0x86, 0x1F, 0xFF } } }, +++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, +++ { { { -1000, -571, -11 },0,{ 631, 803 },{ 0x55, 0xA5, 0x18, 0xFF } } }, +++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, +++ { { { -978, -523, -22 },0,{ 577, 803 },{ 0x7F, 0xFD, 0x3, 0xFF } } }, +++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, +++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, +++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, +++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, +++ { { { -996, -478, -32 },0,{ 523, 803 },{ 0x5B, 0x56, 0xEE, 0xFF } } }, +++ { { { -1033, -463, -36 },0,{ 469, 803 },{ 0x22, 0x78, 0xE6, 0xFF } } }, +++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, +++ { { { -1046, -461, -36 },0,{ 415, 803 },{ 0x98, 0x47, 0xF0, 0xFF } } }, +++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, +++ { { { -1032, -486, -31 },0,{ 361, 803 },{ 0x8A, 0x2D, 0xF2, 0xFF } } }, +++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, +++ { { { -1042, -489, -30 },0,{ 307, 803 },{ 0x82, 0xF0, 0x4, 0xFF } } }, +++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, +++ { { { -1001, -491, -29 },0,{ 253, 803 },{ 0x4B, 0x9D, 0x1A, 0xFF } } }, +++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, +++ { { { -980, -417, -47 },0,{ 200, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, +++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, +++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, +++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, +++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, +++ { { { -1060, -413, -48 },0,{ 146, 803 },{ 0xF3, 0x7B, 0xE5, 0xFF } } }, +++ { { { -1115, -427, -44 },0,{ 92, 803 },{ 0xB1, 0x61, 0xEB, 0xFF } } }, +++ { { { -1137, -428, 171 },0,{ 38, 598 },{ 0x8B, 0xE, 0x2F, 0xFF } } }, +++ { { { -1141, -475, -33 },0,{ 38, 803 },{ 0x81, 0x3, 0x1, 0xFF } } }, +++ { { { -1132, -427, 176 },0,{ 38, 394 },{ 0xB7, 0x1A, 0x64, 0xFF } } }, +++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, +++ { { { -1125, -426, 179 },0,{ 38, 189 },{ 0xD7, 0x1D, 0x75, 0xFF } } }, +++ { { { -1105, -390, 170 },0,{ 92, 189 },{ 0xE6, 0x3A, 0x6E, 0xFF } } }, +++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, +++ { { { -1059, -378, 167 },0,{ 146, 189 },{ 0xFC, 0x42, 0x6C, 0xFF } } }, +++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, +++ { { { -998, -381, 168 },0,{ 200, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, +++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, +++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, +++ { { { -1012, -427, 179 },0,{ 253, 189 },{ 0x16, 0xFE, 0x7D, 0xFF } } }, +++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, +++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, +++ { { { -1044, -425, 179 },0,{ 307, 189 },{ 0x4, 0xF8, 0x7F, 0xFF } } }, +++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, +++ { { { -1054, -428, 179 },0,{ 361, 189 },{ 0xD8, 0xD0, 0x6F, 0xFF } } }, +++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, +++ { { { -1055, -425, 179 },0,{ 415, 189 },{ 0xE6, 0x34, 0x71, 0xFF } } }, +++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, +++ { { { -1037, -427, 179 },0,{ 469, 189 },{ 0xB, 0x42, 0x6C, 0xFF } } }, +++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, +++ { { { -1007, -440, 182 },0,{ 523, 189 },{ 0x1D, 0x38, 0x6E, 0xFF } } }, +++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, +++ { { { -994, -473, 190 },0,{ 577, 189 },{ 0x29, 0x1B, 0x75, 0xFF } } }, +++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, +++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, +++ { { { -1011, -510, 199 },0,{ 631, 189 },{ 0x1C, 0xFE, 0x7C, 0xFF } } }, +++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, +++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, +++ { { { -1051, -523, 202 },0,{ 685, 189 },{ 0x6, 0xF4, 0x7E, 0xFF } } }, +++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, +++ { { { -1120, -521, 201 },0,{ 739, 189 },{ 0xE6, 0xA, 0x7C, 0xFF } } }, +++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, +++ { { { -1105, -476, 190 },0,{ 792, 189 },{ 0xE7, 0x3A, 0x6E, 0xFF } } }, +++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, +++ { { { -1064, -472, 190 },0,{ 846, 189 },{ 0x36, 0x55, 0x4D, 0xFF } } }, +++ { { { -1067, -482, 189 },0,{ 900, 394 },{ 0x67, 0xBF, 0x25, 0xFF } } }, +++ { { { -1062, -476, 191 },0,{ 900, 189 },{ 0x21, 0xFF, 0x7B, 0xFF } } }, +++ { { { -1078, -481, 188 },0,{ 954, 394 },{ 0xEF, 0xD0, 0x74, 0xFF } } }, +++ { { { -1077, -474, 190 },0,{ 954, 189 },{ 0xF7, 0xF5, 0x7E, 0xFF } } }, +++ { { { -1079, -487, 185 },0,{ 954, 598 },{ 0xE5, 0x9C, 0x49, 0xFF } } }, +++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, +++ { { { -1073, -467, 185 },0,{ 846, 394 },{ 0x48, 0x68, 0xFD, 0xFF } } }, +++ { { { -1071, -488, 185 },0,{ 900, 598 },{ 0x53, 0xAC, 0x2E, 0xFF } } }, +++ { { { -1080, -464, 179 },0,{ 846, 598 },{ 0x32, 0x75, 0x4, 0xFF } } }, +++ { { { -1109, -471, 186 },0,{ 792, 394 },{ 0xD4, 0x4E, 0x5A, 0xFF } } }, +++ { { { -1113, -467, 180 },0,{ 792, 598 },{ 0xB7, 0x64, 0x1B, 0xFF } } }, +++ { { { -1128, -528, 199 },0,{ 739, 394 },{ 0xD0, 0xF9, 0x75, 0xFF } } }, +++ { { { -1135, -533, 196 },0,{ 739, 598 },{ 0xA2, 0xCB, 0x43, 0xFF } } }, +++ { { { -1051, -530, 200 },0,{ 685, 394 },{ 0xB, 0xCF, 0x75, 0xFF } } }, +++ { { { -1050, -536, 196 },0,{ 685, 598 },{ 0x11, 0x9A, 0x49, 0xFF } } }, +++ { { { -1006, -516, 197 },0,{ 631, 394 },{ 0x32, 0xE2, 0x71, 0xFF } } }, +++ { { { -1003, -521, 193 },0,{ 631, 598 },{ 0x4F, 0xB7, 0x43, 0xFF } } }, +++ { { { -987, -474, 187 },0,{ 577, 394 },{ 0x4A, 0x16, 0x65, 0xFF } } }, +++ { { { -982, -475, 182 },0,{ 577, 598 },{ 0x76, 0x8, 0x2F, 0xFF } } }, +++ { { { -1002, -436, 178 },0,{ 523, 394 },{ 0x35, 0x4A, 0x58, 0xFF } } }, +++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, +++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, +++ { { { -1036, -422, 175 },0,{ 469, 394 },{ 0x14, 0x5E, 0x53, 0xFF } } }, +++ { { { -998, -433, 172 },0,{ 523, 598 },{ 0x54, 0x5B, 0x1C, 0xFF } } }, +++ { { { -1034, -419, 169 },0,{ 469, 598 },{ 0x20, 0x79, 0x16, 0xFF } } }, +++ { { { -1052, -420, 174 },0,{ 415, 394 },{ 0x95, 0x44, 0x5, 0xFF } } }, +++ { { { -1048, -417, 168 },0,{ 415, 598 },{ 0xA6, 0x59, 0x4, 0xFF } } }, +++ { { { -1044, -432, 177 },0,{ 361, 394 },{ 0xA9, 0xA6, 0xEC, 0xFF } } }, +++ { { { -1037, -436, 173 },0,{ 361, 598 },{ 0x95, 0x1E, 0xC3, 0xFF } } }, +++ { { { -1043, -438, 173 },0,{ 307, 598 },{ 0x89, 0xE1, 0x1F, 0xFF } } }, +++ { { { -1043, -432, 177 },0,{ 307, 394 },{ 0xFA, 0xE1, 0x7B, 0xFF } } }, +++ { { { -1007, -434, 177 },0,{ 253, 394 },{ 0x28, 0xE2, 0x75, 0xFF } } }, +++ { { { -1003, -440, 174 },0,{ 253, 598 },{ 0x44, 0xAF, 0x45, 0xFF } } }, +++ { { { -990, -376, 164 },0,{ 200, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, +++ { { { -984, -373, 158 },0,{ 200, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, +++ { { { -1059, -372, 163 },0,{ 146, 394 },{ 0xF8, 0x60, 0x52, 0xFF } } }, +++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, +++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, +++ { { { -1110, -386, 166 },0,{ 92, 394 },{ 0xD1, 0x4F, 0x57, 0xFF } } }, +++ { { { -1060, -369, 157 },0,{ 146, 598 },{ 0xF4, 0x7D, 0x14, 0xFF } } }, +++ { { { -1113, -383, 160 },0,{ 92, 598 },{ 0xB7, 0x64, 0x1A, 0xFF } } }, +++ { { { -983, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, +++ { { { -985, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { -979, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, +++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { -974, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, +++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { -969, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { -990, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, +++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, +++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, +++ { { { -970, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, +++ { { { -918, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, +++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, +++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, +++ { { { -865, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, +++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { -844, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, +++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, +++ { { { -865, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, +++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, +++ { { { -918, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, +++ { { { -974, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, +++ { { { -969, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { -979, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, +++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { -983, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, +++ { { { -985, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { -918, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, +++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, +++ { { { -849, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, +++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, +++ { { { -820, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, +++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, +++ { { { -849, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, +++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, +++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, +++ { { { -848, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, +++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, +++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, +++ { { { -986, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, +++ { { { -918, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, +++ { { { -987, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, +++ { { { -984, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, +++ { { { -918, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, +++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, +++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, +++ { { { -1005, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { -1010, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { -1013, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, +++ { { { -998, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { -975, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, +++ { { { -918, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, +++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, +++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, +++ { { { -860, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, +++ { { { -829, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, +++ { { { -855, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, +++ { { { -836, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { -855, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, +++ { { { -860, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, +++ { { { -918, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { -918, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, +++ { { { -918, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, +++ { { { -852, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, +++ { { { -824, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, +++ { { { -851, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, +++ { { { -918, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, +++ { { { -918, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, +++ { { { -980, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, +++ { { { -912, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, +++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, +++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, +++ { { { -911, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, +++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, +++ { { { -911, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, +++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, +++ { { { -911, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, +++ { { { -933, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, +++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, +++ { { { -948, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, +++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, +++ { { { -945, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, +++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, +++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, +++ { { { -927, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, +++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, +++ { { { -905, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, +++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, +++ { { { -890, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, +++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, +++ { { { -892, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, +++ { { { -911, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, +++ { { { -911, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, +++ { { { -911, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, +++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, +++ { { { -912, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, +++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, +++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ 880, 803 },{ 0xCD, 0x8C, 0x9, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, +++ { { { -913, -496, -35 },0,{ 880, 1008 },{ 0x7D, 0x9, 0xE9, 0xFF } } }, +++ { { { -913, -495, -35 },0,{ 752, 1008 },{ 0x18, 0x7A, 0xE5, 0xFF } } }, +++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, +++ { { { -918, -501, -34 },0,{ 624, 1008 },{ 0xB8, 0x68, 0xFC, 0xFF } } }, +++ { { { -925, -503, -26 },0,{ 496, 803 },{ 0xD2, 0x74, 0xE6, 0xFF } } }, +++ { { { -925, -504, -34 },0,{ 496, 1008 },{ 0x82, 0x13, 0xFE, 0xFF } } }, +++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, +++ { { { -924, -504, -33 },0,{ 368, 1008 },{ 0xC8, 0x8E, 0x7, 0xFF } } }, +++ { { { -926, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, +++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, +++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, +++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, +++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, +++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, +++ { { { -925, -503, -26 },0,{ 368, 803 },{ 0x7D, 0x6, 0xED, 0xFF } } }, +++ { { { -925, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, +++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, +++ { { { -922, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, +++ { { { -920, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, +++ { { { -925, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, +++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, +++ { { { -929, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, +++ { { { -940, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, +++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, +++ { { { -939, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, +++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, +++ { { { -926, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, +++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, +++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { -909, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { -904, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, +++ { { { -913, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, +++ { { { -897, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, +++ { { { -905, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, +++ { { { -899, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, +++ { { { -909, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { -909, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, +++ { { { -912, -494, -29 },0,{ 752, 803 },{ 0x9F, 0x51, 0xEE, 0xFF } } }, +++ { { { -916, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, +++ { { { -918, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x67, 0xF3, 0xFF } } }, +++ { { { -926, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, +++ { { { -934, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, +++ { { { -933, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, +++ { { { -928, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, +++ { { { -929, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, +++ { { { -773, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -769, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -778, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -784, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -791, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -833, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -833, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, +++ { { { -770, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, +++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -738, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -738, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -696, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -696, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, +++ { { { -754, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, +++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, +++ { { { -791, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, +++ { { { -784, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -791, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, +++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, +++ { { { -778, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -773, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, +++ { { { -769, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -769, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, +++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, +++ { { { -766, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, +++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -674, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -674, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -760, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, +++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, +++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, +++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, +++ { { { -760, -422, -45 },0,{ 394, 803 },{ 0xF5, 0x8B, 0x30, 0xFF } } }, +++ { { { -757, -415, -47 },0,{ 291, 803 },{ 0x5D, 0x54, 0xED, 0xFF } } }, +++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -855, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -851, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -855, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -846, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -840, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -840, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, +++ { { { -765, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, +++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, +++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -745, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, +++ { { { -745, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -683, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -689, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -683, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -689, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -762, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, +++ { { { -758, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, +++ { { { -778, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, +++ { { { -784, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, +++ { { { -773, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, +++ { { { -764, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, +++ { { { -678, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -751, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -678, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -756, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -751, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, +++ { { { -756, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x34, 0x74, 0xFF } } }, +++ { { { -762, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, +++ { { { -759, -371, 157 },0,{ 291, 598 },{ 0x4C, 0x61, 0x21, 0xFF } } }, +++ { { { -846, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -851, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -614, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -611, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -619, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -626, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -633, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -685, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -685, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -633, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -626, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -633, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -619, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -614, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -614, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -611, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -611, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { -704, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -707, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -704, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -707, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -699, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -699, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -692, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -692, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -619, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -626, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, +++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, +++ { { { -619, -562, -13 },0,{ -16, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, +++ { { { -617, -512, 191 },0,{ -16, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, +++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, +++ { { { -613, -507, 195 },0,{ -16, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, +++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { -608, -502, 197 },0,{ -16, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, +++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { -603, -496, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { -622, -449, 185 },0,{ 48, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, +++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { -603, -402, 174 },0,{ 112, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, +++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, +++ { { { -553, -381, 169 },0,{ 176, -16 },{ 0xFD, 0x2F, 0x76, 0xFF } } }, +++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, +++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, +++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, +++ { { { -509, -383, 170 },0,{ 240, -16 },{ 0xA, 0x24, 0x79, 0xFF } } }, +++ { { { -523, -431, 181 },0,{ 304, -16 },{ 0x3, 0x13, 0x7E, 0xFF } } }, +++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, +++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, +++ { { { -531, -425, 180 },0,{ 368, -16 },{ 0xF9, 0xC, 0x7E, 0xFF } } }, +++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, +++ { { { -547, -423, 179 },0,{ 432, -16 },{ 0x4, 0xB, 0x7E, 0xFF } } }, +++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, +++ { { { -567, -434, 182 },0,{ 496, -16 },{ 0xD, 0xF, 0x7D, 0xFF } } }, +++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, +++ { { { -579, -450, 186 },0,{ 560, -16 },{ 0x12, 0x1A, 0x7B, 0xFF } } }, +++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, +++ { { { -575, -467, 190 },0,{ 624, -16 },{ 0xE, 0x28, 0x78, 0xFF } } }, +++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, +++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, +++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, +++ { { { -559, -474, 191 },0,{ 688, -16 },{ 0x2, 0x2F, 0x76, 0xFF } } }, +++ { { { -538, -468, 190 },0,{ 752, -16 },{ 0xF6, 0x2E, 0x76, 0xFF } } }, +++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, +++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, +++ { { { -523, -455, 187 },0,{ 816, -16 },{ 0x3, 0x28, 0x79, 0xFF } } }, +++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, +++ { { { -502, -511, 200 },0,{ 880, -16 },{ 0xB, 0x17, 0x7C, 0xFF } } }, +++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, +++ { { { -553, -517, 201 },0,{ 944, -16 },{ 0xFD, 0xA, 0x7F, 0xFF } } }, +++ { { { -608, -502, 197 },0,{ 1008, 189 },{ 0xE3, 0x0, 0x7C, 0xFF } } }, +++ { { { -603, -496, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { -613, -507, 195 },0,{ 1008, 394 },{ 0xCB, 0xE5, 0x70, 0xFF } } }, +++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, +++ { { { -617, -512, 191 },0,{ 1008, 598 },{ 0xAC, 0xBB, 0x41, 0xFF } } }, +++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, +++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, +++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, +++ { { { -619, -562, -13 },0,{ 1008, 803 },{ 0xA5, 0xAA, 0x16, 0xFF } } }, +++ { { { -556, -588, -6 },0,{ 944, 803 },{ 0xEE, 0x86, 0x1F, 0xFF } } }, +++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, +++ { { { -472, -578, -9 },0,{ 880, 803 },{ 0x6C, 0xC0, 0x12, 0xFF } } }, +++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, +++ { { { -514, -470, -34 },0,{ 816, 803 },{ 0x20, 0x78, 0xE7, 0xFF } } }, +++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, +++ { { { -549, -499, -27 },0,{ 752, 803 },{ 0xC2, 0x6D, 0xE9, 0xFF } } }, +++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, +++ { { { -557, -501, -27 },0,{ 688, 803 },{ 0xB, 0x7C, 0xE5, 0xFF } } }, +++ { { { -556, -502, -27 },0,{ 624, 803 },{ 0xB2, 0x61, 0xE9, 0xFF } } }, +++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, +++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, +++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, +++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, +++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, +++ { { { -556, -504, -26 },0,{ 560, 803 },{ 0xE9, 0x86, 0x1D, 0xFF } } }, +++ { { { -552, -499, -27 },0,{ 496, 803 },{ 0x53, 0xA3, 0x18, 0xFF } } }, +++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, +++ { { { -542, -494, -29 },0,{ 432, 803 },{ 0x1A, 0x87, 0x1E, 0xFF } } }, +++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, +++ { { { -540, -494, -29 },0,{ 368, 803 },{ 0xCE, 0x8F, 0x1D, 0xFF } } }, +++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, +++ { { { -512, -518, -23 },0,{ 304, 803 },{ 0x24, 0x8A, 0x1F, 0xFF } } }, +++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, +++ { { { -480, -413, -48 },0,{ 240, 803 },{ 0x67, 0x49, 0xF2, 0xFF } } }, +++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, +++ { { { -557, -410, -48 },0,{ 176, 803 },{ 0xEA, 0x7A, 0xE5, 0xFF } } }, +++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, +++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, +++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { -642, -451, 176 },0,{ 48, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { -619, -435, -42 },0,{ 112, 803 },{ 0xA6, 0x57, 0xEE, 0xFF } } }, +++ { { { -645, -498, -28 },0,{ 48, 803 },{ 0x81, 0x1, 0x2, 0xFF } } }, +++ { { { -636, -450, 181 },0,{ 48, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, +++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, +++ { { { -630, -449, 184 },0,{ 48, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { -608, -397, 172 },0,{ 112, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, +++ { { { -554, -375, 167 },0,{ 176, 189 },{ 0xF9, 0x42, 0x6C, 0xFF } } }, +++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, +++ { { { -499, -377, 167 },0,{ 240, 189 },{ 0x1B, 0x2F, 0x73, 0xFF } } }, +++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, +++ { { { -519, -444, 183 },0,{ 304, 189 },{ 0x8, 0x1, 0x7F, 0xFF } } }, +++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, +++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, +++ { { { -534, -431, 180 },0,{ 368, 189 },{ 0xF3, 0xFE, 0x7E, 0xFF } } }, +++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, +++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, +++ { { { -545, -430, 180 },0,{ 432, 189 },{ 0x7, 0xFB, 0x7F, 0xFF } } }, +++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, +++ { { { -562, -439, 182 },0,{ 496, 189 },{ 0x18, 0x2, 0x7D, 0xFF } } }, +++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, +++ { { { -571, -452, 185 },0,{ 560, 189 },{ 0x1F, 0x17, 0x79, 0xFF } } }, +++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, +++ { { { -569, -462, 187 },0,{ 624, 189 },{ 0x19, 0x30, 0x73, 0xFF } } }, +++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, +++ { { { -559, -467, 189 },0,{ 688, 189 },{ 0x3, 0x3C, 0x70, 0xFF } } }, +++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, +++ { { { -542, -462, 187 },0,{ 752, 189 },{ 0xEE, 0x3B, 0x6F, 0xFF } } }, +++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, +++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, +++ { { { -520, -444, 183 },0,{ 816, 189 },{ 0x8, 0x39, 0x71, 0xFF } } }, +++ { { { -484, -523, 198 },0,{ 880, 394 },{ 0x33, 0xFB, 0x74, 0xFF } } }, +++ { { { -517, -434, 178 },0,{ 816, 394 },{ 0xE, 0x4F, 0x62, 0xFF } } }, +++ { { { -492, -517, 200 },0,{ 880, 189 },{ 0x1C, 0xC, 0x7B, 0xFF } } }, +++ { { { -555, -531, 200 },0,{ 944, 394 },{ 0xF5, 0xCF, 0x75, 0xFF } } }, +++ { { { -554, -524, 202 },0,{ 944, 189 },{ 0xFA, 0xF4, 0x7E, 0xFF } } }, +++ { { { -555, -537, 197 },0,{ 944, 598 },{ 0xEF, 0x9A, 0x49, 0xFF } } }, +++ { { { -477, -528, 194 },0,{ 880, 598 },{ 0x62, 0xD1, 0x42, 0xFF } } }, +++ { { { -515, -427, 171 },0,{ 816, 598 },{ 0x1D, 0x79, 0x1B, 0xFF } } }, +++ { { { -545, -457, 183 },0,{ 752, 394 },{ 0xDD, 0x55, 0x57, 0xFF } } }, +++ { { { -547, -454, 177 },0,{ 752, 598 },{ 0xC7, 0x6E, 0x1C, 0xFF } } }, +++ { { { -558, -461, 184 },0,{ 688, 394 },{ 0x6, 0x5A, 0x59, 0xFF } } }, +++ { { { -557, -457, 178 },0,{ 688, 598 },{ 0xA, 0x7B, 0x1E, 0xFF } } }, +++ { { { -563, -459, 183 },0,{ 624, 394 },{ 0x34, 0x40, 0x60, 0xFF } } }, +++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, +++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, +++ { { { -564, -454, 182 },0,{ 560, 394 },{ 0x41, 0xD, 0x6C, 0xFF } } }, +++ { { { -559, -457, 178 },0,{ 624, 598 },{ 0x25, 0x66, 0x43, 0xFF } } }, +++ { { { -559, -456, 177 },0,{ 560, 598 },{ 0x47, 0xDC, 0x63, 0xFF } } }, +++ { { { -558, -445, 180 },0,{ 496, 394 },{ 0x2F, 0xE3, 0x72, 0xFF } } }, +++ { { { -554, -449, 176 },0,{ 496, 598 },{ 0x4C, 0xB7, 0x48, 0xFF } } }, +++ { { { -544, -437, 178 },0,{ 432, 394 },{ 0xE, 0xD5, 0x77, 0xFF } } }, +++ { { { -543, -444, 175 },0,{ 432, 598 },{ 0x17, 0x9F, 0x4E, 0xFF } } }, +++ { { { -536, -438, 178 },0,{ 368, 394 },{ 0xE5, 0xDA, 0x76, 0xFF } } }, +++ { { { -538, -444, 175 },0,{ 368, 598 },{ 0xD3, 0xA6, 0x4D, 0xFF } } }, +++ { { { -516, -455, 182 },0,{ 304, 394 },{ 0xF, 0xE7, 0x7C, 0xFF } } }, +++ { { { -514, -465, 180 },0,{ 304, 598 },{ 0x20, 0xA1, 0x4F, 0xFF } } }, +++ { { { -491, -372, 163 },0,{ 240, 394 },{ 0x31, 0x3B, 0x65, 0xFF } } }, +++ { { { -484, -369, 157 },0,{ 240, 598 },{ 0x5E, 0x4D, 0x24, 0xFF } } }, +++ { { { -555, -369, 162 },0,{ 176, 394 },{ 0xF3, 0x60, 0x53, 0xFF } } }, +++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, +++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, +++ { { { -613, -393, 168 },0,{ 112, 394 },{ 0xCB, 0x4A, 0x58, 0xFF } } }, +++ { { { -556, -366, 156 },0,{ 176, 598 },{ 0xEB, 0x7C, 0x14, 0xFF } } }, +++ { { { -617, -390, 162 },0,{ 112, 598 },{ 0xAC, 0x5B, 0x1C, 0xFF } } }, +++ { { { -283, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -280, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -288, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -294, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -301, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -412, -515, 201 },0,{ 69, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -412, -386, 171 },0,{ 155, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -301, -386, 171 },0,{ 240, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -301, -420, 178 },0,{ 325, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, +++ { { { -359, -420, 178 },0,{ 411, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -359, -433, 182 },0,{ 496, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, +++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -301, -433, 182 },0,{ 581, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -301, -469, 190 },0,{ 667, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, +++ { { { -359, -469, 190 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -359, -481, 193 },0,{ 837, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, +++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, +++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -301, -481, 193 },0,{ 923, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -294, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -301, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -288, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -283, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -280, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -280, -510, -25 },0,{ 923, 803 },{ 0x36, 0x72, 0xF1, 0xFF } } }, +++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, +++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, +++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, +++ { { { -338, -510, -25 },0,{ 837, 803 },{ 0xC5, 0x6F, 0xEE, 0xFF } } }, +++ { { { -279, -511, -32 },0,{ 923, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, +++ { { { -337, -511, -32 },0,{ 837, 1008 },{ 0x0, 0x7F, 0xF6, 0xFF } } }, +++ { { { -341, -489, 185 },0,{ 752, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, +++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, +++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, +++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -338, -539, -18 },0,{ 752, 803 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { -280, -539, -18 },0,{ 667, 803 },{ 0x72, 0xCD, 0x17, 0xFF } } }, +++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, +++ { { { -279, -542, -24 },0,{ 667, 1008 },{ 0x7D, 0x5, 0x13, 0xFF } } }, +++ { { { -279, -462, -43 },0,{ 581, 1008 },{ 0x58, 0x5C, 0x7, 0xFF } } }, +++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, +++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, +++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, +++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, +++ { { { -337, -462, -43 },0,{ 496, 1008 },{ 0xB0, 0x60, 0xEC, 0xFF } } }, +++ { { { -337, -493, -36 },0,{ 411, 1008 },{ 0xB0, 0xA1, 0x19, 0xFF } } }, +++ { { { -280, -490, -29 },0,{ 325, 803 },{ 0x37, 0x93, 0x25, 0xFF } } }, +++ { { { -279, -493, -36 },0,{ 325, 1008 },{ 0x0, 0x8B, 0x31, 0xFF } } }, +++ { { { -283, -440, 174 },0,{ 325, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, +++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -280, -415, -47 },0,{ 240, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -434, -415, -47 },0,{ 155, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -434, -585, -7 },0,{ 69, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -425, -529, 200 },0,{ 69, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -430, -535, 196 },0,{ 69, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -419, -522, 201 },0,{ 69, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -419, -380, 168 },0,{ 155, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -294, -380, 168 },0,{ 240, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -294, -427, 179 },0,{ 325, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, +++ { { { -352, -427, 179 },0,{ 411, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, +++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, +++ { { { -352, -426, 179 },0,{ 496, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, +++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -294, -426, 179 },0,{ 581, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -294, -476, 191 },0,{ 667, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -346, -483, 189 },0,{ 752, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, +++ { { { -352, -476, 191 },0,{ 752, 189 },{ 0xCA, 0xED, 0x71, 0xFF } } }, +++ { { { -346, -470, 186 },0,{ 837, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, +++ { { { -352, -475, 190 },0,{ 837, 189 },{ 0xCA, 0x43, 0x5D, 0xFF } } }, +++ { { { -288, -470, 186 },0,{ 923, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -294, -475, 190 },0,{ 923, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -283, -466, 180 },0,{ 923, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -341, -466, 180 },0,{ 837, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, +++ { { { -425, -375, 163 },0,{ 155, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -288, -375, 163 },0,{ 240, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -283, -371, 157 },0,{ 240, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -430, -371, 157 },0,{ 155, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -288, -434, 177 },0,{ 325, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -346, -434, 177 },0,{ 411, 394 },{ 0xA3, 0xB4, 0x28, 0xFF } } }, +++ { { { -341, -440, 174 },0,{ 411, 598 },{ 0xB7, 0xA5, 0x32, 0xFF } } }, +++ { { { -341, -417, 168 },0,{ 496, 598 },{ 0xB7, 0x68, 0x5, 0xFF } } }, +++ { { { -346, -421, 174 },0,{ 496, 394 },{ 0xA3, 0x56, 0x1, 0xFF } } }, +++ { { { -283, -417, 168 },0,{ 581, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -288, -421, 174 },0,{ 581, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -283, -489, 185 },0,{ 667, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -288, -483, 189 },0,{ 667, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -280, -461, -36 },0,{ 581, 803 },{ 0x59, 0x5A, 0xFB, 0xFF } } }, +++ { { { -338, -461, -36 },0,{ 496, 803 },{ 0xA3, 0x53, 0xEB, 0xFF } } }, +++ { { { -338, -490, -29 },0,{ 411, 803 },{ 0xA2, 0xAC, 0x12, 0xFF } } }, +++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, +++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -211, -585, -7 },0,{ -16, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, +++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -213, -529, 200 },0,{ -16, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, +++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -212, -535, 196 },0,{ -16, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, +++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -214, -522, 201 },0,{ -16, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, +++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -216, -515, 201 },0,{ -16, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, +++ { { { -291, -515, 201 },0,{ 130, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -291, -386, 171 },0,{ 277, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, +++ { { { -216, -386, 171 },0,{ 423, -16 },{ 0x4, 0x2F, 0x76, 0xFF } } }, +++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, +++ { { { -169, -405, 175 },0,{ 569, -16 },{ 0xD, 0x29, 0x78, 0xFF } } }, +++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, +++ { { { -154, -451, 186 },0,{ 715, -16 },{ 0x13, 0x1D, 0x7A, 0xFF } } }, +++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, +++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { -169, -496, 196 },0,{ 862, -16 },{ 0xD, 0x11, 0x7D, 0xFF } } }, +++ { { { -214, -522, 201 },0,{ 1008, 189 },{ 0x8, 0xF5, 0x7E, 0xFF } } }, +++ { { { -216, -515, 201 },0,{ 1008, -16 },{ 0x4, 0xA, 0x7F, 0xFF } } }, +++ { { { -213, -529, 200 },0,{ 1008, 394 },{ 0xF, 0xCF, 0x74, 0xFF } } }, +++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, +++ { { { -212, -535, 196 },0,{ 1008, 598 },{ 0x17, 0x9B, 0x49, 0xFF } } }, +++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, +++ { { { -211, -585, -7 },0,{ 1008, 803 },{ 0x19, 0x87, 0x1E, 0xFF } } }, +++ { { { -152, -561, -13 },0,{ 862, 803 },{ 0x5D, 0xAD, 0x16, 0xFF } } }, +++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, +++ { { { -131, -500, -27 },0,{ 715, 803 },{ 0x7F, 0x1, 0x2, 0xFF } } }, +++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, +++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, +++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, +++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, +++ { { { -152, -439, -41 },0,{ 569, 803 },{ 0x5D, 0x54, 0xEE, 0xFF } } }, +++ { { { -211, -415, -47 },0,{ 423, 803 },{ 0x19, 0x7A, 0xE6, 0xFF } } }, +++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -312, -415, -47 },0,{ 277, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -309, -535, 196 },0,{ 130, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -312, -585, -7 },0,{ 130, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -304, -529, 200 },0,{ 130, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -298, -522, 201 },0,{ 130, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -298, -380, 168 },0,{ 277, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, +++ { { { -214, -380, 168 },0,{ 423, 189 },{ 0x8, 0x42, 0x6C, 0xFF } } }, +++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, +++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, +++ { { { -164, -401, 173 },0,{ 569, 189 },{ 0x1E, 0x36, 0x6F, 0xFF } } }, +++ { { { -140, -452, 182 },0,{ 715, 394 },{ 0x4A, 0x18, 0x64, 0xFF } } }, +++ { { { -159, -397, 169 },0,{ 569, 394 },{ 0x36, 0x49, 0x59, 0xFF } } }, +++ { { { -146, -451, 185 },0,{ 715, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { -159, -507, 195 },0,{ 862, 394 },{ 0x36, 0xE7, 0x70, 0xFF } } }, +++ { { { -164, -501, 197 },0,{ 862, 189 },{ 0x1E, 0x1, 0x7B, 0xFF } } }, +++ { { { -155, -511, 191 },0,{ 862, 598 },{ 0x56, 0xBD, 0x40, 0xFF } } }, +++ { { { -134, -453, 177 },0,{ 715, 598 },{ 0x76, 0xB, 0x2E, 0xFF } } }, +++ { { { -155, -394, 163 },0,{ 569, 598 },{ 0x56, 0x59, 0x1D, 0xFF } } }, +++ { { { -213, -375, 163 },0,{ 423, 394 },{ 0xF, 0x5F, 0x52, 0xFF } } }, +++ { { { -212, -371, 157 },0,{ 423, 598 },{ 0x17, 0x7B, 0x15, 0xFF } } }, +++ { { { -304, -375, 163 },0,{ 277, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -309, -371, 157 },0,{ 277, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, +++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, +++ { { { -222, -493, -29 },0,{ -16, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, +++ { { { -225, -442, 174 },0,{ -16, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, +++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, +++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, +++ { { { -230, -436, 178 },0,{ -16, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, +++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, +++ { { { -236, -429, 180 },0,{ -16, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, +++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, +++ { { { -243, -422, 179 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -243, -479, 192 },0,{ 130, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, +++ { { { -228, -479, 192 },0,{ 277, -16 },{ 0xFC, 0x2F, 0x76, 0xFF } } }, +++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, +++ { { { -208, -471, 190 },0,{ 423, -16 },{ 0xF3, 0x29, 0x78, 0xFF } } }, +++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, +++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, +++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, +++ { { { -202, -451, 186 },0,{ 569, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, +++ { { { -208, -431, 181 },0,{ 715, -16 },{ 0xF2, 0x11, 0x7D, 0xFF } } }, +++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, +++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, +++ { { { -228, -422, 179 },0,{ 862, -16 },{ 0xFC, 0xA, 0x7F, 0xFF } } }, +++ { { { -236, -429, 180 },0,{ 1008, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, +++ { { { -243, -422, 179 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, +++ { { { -230, -436, 178 },0,{ 1008, 394 },{ 0x4D, 0x46, 0x48, 0xFF } } }, +++ { { { -225, -442, 174 },0,{ 1008, 598 },{ 0x64, 0x4D, 0xB, 0xFF } } }, +++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, +++ { { { -222, -493, -29 },0,{ 1008, 803 },{ 0x37, 0x6D, 0xDD, 0xFF } } }, +++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, +++ { { { -221, -496, -35 },0,{ 1008, 1008 },{ 0x0, 0x75, 0xCF, 0xFF } } }, +++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, +++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, +++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, +++ { { { -233, -496, -35 },0,{ 862, 1008 },{ 0x82, 0xD, 0xFF, 0xFF } } }, +++ { { { -226, -498, -35 },0,{ 715, 1008 },{ 0xA3, 0xB4, 0x29, 0xFF } } }, +++ { { { -224, -500, -27 },0,{ 569, 803 },{ 0x82, 0xF6, 0xB, 0xFF } } }, +++ { { { -225, -502, -34 },0,{ 569, 1008 },{ 0x88, 0xE2, 0x1C, 0xFF } } }, +++ { { { -221, -453, 177 },0,{ 569, 598 },{ 0x8D, 0xD, 0x35, 0xFF } } }, +++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, +++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, +++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, +++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, +++ { { { -225, -505, -26 },0,{ 423, 803 },{ 0xA1, 0x53, 0xEF, 0xFF } } }, +++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, +++ { { { -232, -508, -25 },0,{ 277, 803 },{ 0x83, 0xE9, 0x5, 0xFF } } }, +++ { { { -225, -463, 179 },0,{ 130, 598 },{ 0x64, 0xBF, 0x2C, 0xFF } } }, +++ { { { -222, -508, -25 },0,{ 130, 803 },{ 0x5B, 0xA9, 0x14, 0xFF } } }, +++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, +++ { { { -230, -467, 185 },0,{ 130, 394 },{ 0x4D, 0xE1, 0x60, 0xFF } } }, +++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, +++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, +++ { { { -230, -472, 190 },0,{ 277, 189 },{ 0xF9, 0x3F, 0x6E, 0xFF } } }, +++ { { { -236, -472, 190 },0,{ 130, 189 },{ 0xF, 0x2C, 0x76, 0xFF } } }, +++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, +++ { { { -213, -466, 188 },0,{ 423, 189 },{ 0xE9, 0x31, 0x73, 0xFF } } }, +++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, +++ { { { -209, -451, 185 },0,{ 569, 189 },{ 0xDD, 0x1C, 0x77, 0xFF } } }, +++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, +++ { { { -213, -436, 181 },0,{ 715, 189 },{ 0xE9, 0x8, 0x7D, 0xFF } } }, +++ { { { -231, -436, 178 },0,{ 862, 394 },{ 0xE1, 0xEC, 0x7A, 0xFF } } }, +++ { { { -230, -429, 180 },0,{ 862, 189 },{ 0xF9, 0xF9, 0x7F, 0xFF } } }, +++ { { { -232, -442, 174 },0,{ 862, 598 },{ 0x83, 0x8, 0x16, 0xFF } } }, +++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, +++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, +++ { { { -223, -446, 175 },0,{ 715, 598 },{ 0xAC, 0xC5, 0x4A, 0xFF } } }, +++ { { { -232, -493, -29 },0,{ 862, 803 },{ 0x85, 0x1E, 0xF8, 0xFF } } }, +++ { { { -225, -496, -28 },0,{ 715, 803 },{ 0xA2, 0xB1, 0x1F, 0xFF } } }, +++ { { { -216, -452, 182 },0,{ 569, 394 },{ 0xBA, 0x18, 0x67, 0xFF } } }, +++ { { { -219, -441, 179 },0,{ 715, 394 },{ 0xCF, 0xEE, 0x74, 0xFF } } }, +++ { { { -231, -467, 185 },0,{ 277, 394 },{ 0xE1, 0x48, 0x64, 0xFF } } }, +++ { { { -219, -462, 184 },0,{ 423, 394 },{ 0xCF, 0x44, 0x60, 0xFF } } }, +++ { { { -223, -460, 178 },0,{ 423, 598 },{ 0xAC, 0x56, 0x28, 0xFF } } }, +++ { { { -232, -463, 179 },0,{ 277, 598 },{ 0x83, 0x3, 0x17, 0xFF } } }, +++ { { { -72, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -69, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -77, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -83, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -90, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -143, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -143, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -90, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { -83, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -90, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -77, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -72, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -72, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -69, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { -69, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { -161, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -165, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -161, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -165, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -156, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -156, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -150, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -150, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -77, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { -83, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, +++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -64, -493, -29 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { -61, -442, 174 },0,{ -16, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, +++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -56, -436, 178 },0,{ -16, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, +++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -50, -429, 180 },0,{ -16, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, +++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -43, -422, 179 },0,{ -16, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -80, -422, 179 },0,{ 112, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -80, -386, 171 },0,{ 240, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 42, -386, 171 },0,{ 368, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, +++ { { { 42, -422, 179 },0,{ 496, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 5, -422, 179 },0,{ 624, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, +++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 5, -515, 201 },0,{ 752, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -43, -515, 201 },0,{ 880, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -50, -429, 180 },0,{ 1008, 189 },{ 0xF1, 0xE, 0x7D, 0xFF } } }, +++ { { { -43, -422, 179 },0,{ 1008, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { -56, -436, 178 },0,{ 1008, 394 },{ 0xDB, 0xF7, 0x79, 0xFF } } }, +++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -61, -442, 174 },0,{ 1008, 598 },{ 0xB7, 0xC9, 0x58, 0xFF } } }, +++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -64, -493, -29 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { -64, -585, -7 },0,{ 880, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 26, -585, -7 },0,{ 752, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, +++ { { { 26, -493, -29 },0,{ 624, 803 },{ 0x59, 0xA9, 0x17, 0xFF } } }, +++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 63, -493, -29 },0,{ 496, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { 63, -415, -47 },0,{ 368, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { -101, -415, -47 },0,{ 240, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { -98, -442, 174 },0,{ 112, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { -101, -493, -29 },0,{ 112, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { -93, -436, 178 },0,{ 112, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -87, -429, 180 },0,{ 112, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -87, -380, 168 },0,{ 240, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 49, -380, 168 },0,{ 368, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 49, -429, 180 },0,{ 496, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 18, -436, 178 },0,{ 624, 394 },{ 0x25, 0xF7, 0x79, 0xFF } } }, +++ { { { 12, -429, 180 },0,{ 624, 189 },{ 0xF, 0xE, 0x7D, 0xFF } } }, +++ { { { 18, -529, 200 },0,{ 752, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 12, -522, 201 },0,{ 752, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { -56, -529, 200 },0,{ 880, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { -50, -522, 201 },0,{ 880, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { -61, -535, 196 },0,{ 880, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { 23, -535, 196 },0,{ 752, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, +++ { { { 55, -436, 178 },0,{ 496, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 23, -442, 174 },0,{ 624, 598 },{ 0x49, 0xC9, 0x58, 0xFF } } }, +++ { { { 60, -442, 174 },0,{ 496, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 55, -375, 163 },0,{ 368, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 60, -371, 157 },0,{ 368, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { -93, -375, 163 },0,{ 240, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { -98, -371, 157 },0,{ 240, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 123, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 126, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { 118, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { 112, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 105, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 52, -515, 201 },0,{ 240, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 52, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 105, -386, 171 },0,{ 752, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { 112, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 105, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 118, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 123, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { 126, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 34, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 126, -415, -47 },0,{ 752, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { 31, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { 34, -535, 196 },0,{ 240, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { 31, -585, -7 },0,{ 240, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 39, -529, 200 },0,{ 240, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { 39, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 45, -522, 201 },0,{ 240, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 45, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 118, -375, 163 },0,{ 752, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 112, -380, 168 },0,{ 752, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 123, -371, 157 },0,{ 752, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, +++ { { { 120, -563, -12 },0,{ -16, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { 127, -508, 195 },0,{ -16, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, +++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { 123, -513, 191 },0,{ -16, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { 131, -503, 197 },0,{ -16, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, +++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { 137, -497, 197 },0,{ -16, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { 116, -449, 185 },0,{ 112, -16 },{ 0xED, 0x1D, 0x7A, 0xFF } } }, +++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { 136, -401, 174 },0,{ 240, -16 },{ 0xF3, 0x2A, 0x77, 0xFF } } }, +++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, +++ { { { 188, -381, 169 },0,{ 368, -16 },{ 0x0, 0x2F, 0x76, 0xFF } } }, +++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, +++ { { { 241, -399, 174 },0,{ 496, -16 },{ 0xD, 0x2A, 0x77, 0xFF } } }, +++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, +++ { { { 262, -449, 185 },0,{ 624, -16 },{ 0x12, 0x1D, 0x7A, 0xFF } } }, +++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, +++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { 240, -497, 197 },0,{ 752, -16 },{ 0xD, 0x10, 0x7D, 0xFF } } }, +++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, +++ { { { 188, -517, 202 },0,{ 880, -16 },{ 0x0, 0xB, 0x7F, 0xFF } } }, +++ { { { 131, -503, 197 },0,{ 1008, 189 },{ 0xE3, 0xFF, 0x7C, 0xFF } } }, +++ { { { 137, -497, 197 },0,{ 1008, -16 },{ 0xF3, 0x10, 0x7D, 0xFF } } }, +++ { { { 127, -508, 195 },0,{ 1008, 394 },{ 0xCC, 0xE4, 0x71, 0xFF } } }, +++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { 123, -513, 191 },0,{ 1008, 598 },{ 0xAD, 0xB9, 0x42, 0xFF } } }, +++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, +++ { { { 120, -563, -12 },0,{ 1008, 803 },{ 0xA7, 0xA9, 0x17, 0xFF } } }, +++ { { { 188, -590, -6 },0,{ 880, 803 },{ 0x0, 0x85, 0x1F, 0xFF } } }, +++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, +++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, +++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, +++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, +++ { { { 256, -563, -12 },0,{ 752, 803 },{ 0x58, 0xA8, 0x17, 0xFF } } }, +++ { { { 285, -498, -28 },0,{ 624, 803 },{ 0x7F, 0x0, 0x2, 0xFF } } }, +++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, +++ { { { 257, -432, -43 },0,{ 496, 803 },{ 0x48, 0x67, 0xF1, 0xFF } } }, +++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, +++ { { { 188, -409, -49 },0,{ 368, 803 },{ 0xFE, 0x7E, 0xEF, 0xFF } } }, +++ { { { 258, -433, -50 },0,{ 496, 1008 },{ 0x2A, 0x78, 0xF8, 0xFF } } }, +++ { { { 188, -409, -56 },0,{ 368, 1008 },{ 0xFE, 0x7F, 0xF8, 0xFF } } }, +++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, +++ { { { 119, -435, -50 },0,{ 240, 1008 },{ 0xD3, 0x77, 0xF8, 0xFF } } }, +++ { { { 122, -389, 162 },0,{ 240, 598 },{ 0xAE, 0x5D, 0x1C, 0xFF } } }, +++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, +++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { 96, -451, 176 },0,{ 112, 598 },{ 0x8A, 0xB, 0x2E, 0xFF } } }, +++ { { { 120, -434, -43 },0,{ 240, 803 },{ 0xB6, 0x66, 0xF1, 0xFF } } }, +++ { { { 92, -498, -28 },0,{ 112, 803 },{ 0x81, 0x0, 0x2, 0xFF } } }, +++ { { { 108, -449, 184 },0,{ 112, 189 },{ 0xD7, 0x1C, 0x75, 0xFF } } }, +++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, +++ { { { 101, -450, 181 },0,{ 112, 394 },{ 0xB6, 0x18, 0x64, 0xFF } } }, +++ { { { 131, -396, 172 },0,{ 240, 189 },{ 0xE3, 0x38, 0x6E, 0xFF } } }, +++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, +++ { { { 188, -374, 167 },0,{ 368, 189 },{ 0xFF, 0x44, 0x6B, 0xFF } } }, +++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, +++ { { { 246, -394, 171 },0,{ 496, 189 },{ 0x1C, 0x39, 0x6E, 0xFF } } }, +++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, +++ { { { 270, -449, 184 },0,{ 624, 189 },{ 0x29, 0x1C, 0x75, 0xFF } } }, +++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, +++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, +++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { 246, -503, 197 },0,{ 752, 189 },{ 0x1D, 0xFF, 0x7C, 0xFF } } }, +++ { { { 188, -525, 202 },0,{ 880, 189 },{ 0x0, 0xF4, 0x7E, 0xFF } } }, +++ { { { 188, -532, 201 },0,{ 880, 394 },{ 0x0, 0xCF, 0x75, 0xFF } } }, +++ { { { 250, -508, 195 },0,{ 752, 394 },{ 0x34, 0xE4, 0x71, 0xFF } } }, +++ { { { 188, -539, 197 },0,{ 880, 598 },{ 0x0, 0x99, 0x4A, 0xFF } } }, +++ { { { 254, -513, 191 },0,{ 752, 598 },{ 0x52, 0xB8, 0x42, 0xFF } } }, +++ { { { 276, -450, 181 },0,{ 624, 394 },{ 0x4A, 0x17, 0x64, 0xFF } } }, +++ { { { 282, -451, 176 },0,{ 624, 598 },{ 0x76, 0xA, 0x2F, 0xFF } } }, +++ { { { 251, -390, 167 },0,{ 496, 394 },{ 0x32, 0x4C, 0x58, 0xFF } } }, +++ { { { 254, -387, 161 },0,{ 496, 598 },{ 0x51, 0x5E, 0x1B, 0xFF } } }, +++ { { { 188, -369, 162 },0,{ 368, 394 },{ 0xFF, 0x60, 0x53, 0xFF } } }, +++ { { { 188, -365, 156 },0,{ 368, 598 },{ 0xFE, 0x7D, 0x14, 0xFF } } }, +++ { { { 126, -392, 167 },0,{ 240, 394 },{ 0xCC, 0x4B, 0x58, 0xFF } } }, +++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, +++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, +++ { { { 194, -494, -29 },0,{ -16, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, +++ { { { 194, -443, 175 },0,{ -16, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, +++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, +++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, +++ { { { 194, -437, 178 },0,{ -16, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, +++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, +++ { { { 195, -430, 180 },0,{ -16, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, +++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, +++ { { { 195, -422, 179 },0,{ -16, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, +++ { { { 173, -430, 181 },0,{ 112, -16 },{ 0xB, 0xE, 0x7E, 0xFF } } }, +++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, +++ { { { 158, -447, 185 },0,{ 240, -16 },{ 0x12, 0x18, 0x7B, 0xFF } } }, +++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, +++ { { { 161, -467, 190 },0,{ 368, -16 },{ 0xE, 0x27, 0x78, 0xFF } } }, +++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, +++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, +++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { 179, -476, 192 },0,{ 496, -16 },{ 0x1, 0x2F, 0x76, 0xFF } } }, +++ { { { 201, -468, 190 },0,{ 624, -16 },{ 0xF5, 0x2C, 0x77, 0xFF } } }, +++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, +++ { { { 216, -451, 186 },0,{ 752, -16 },{ 0xEE, 0x22, 0x79, 0xFF } } }, +++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, +++ { { { 214, -431, 181 },0,{ 880, -16 },{ 0xF2, 0x13, 0x7D, 0xFF } } }, +++ { { { 195, -430, 180 },0,{ 1008, 189 },{ 0xFE, 0xFD, 0x7F, 0xFF } } }, +++ { { { 195, -422, 179 },0,{ 1008, -16 },{ 0xFF, 0xB, 0x7F, 0xFF } } }, +++ { { { 194, -437, 178 },0,{ 1008, 394 },{ 0xFC, 0xD7, 0x78, 0xFF } } }, +++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, +++ { { { 194, -443, 175 },0,{ 1008, 598 },{ 0xF9, 0x9F, 0x51, 0xFF } } }, +++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { 194, -494, -29 },0,{ 880, 803 },{ 0x98, 0xBA, 0x13, 0xFF } } }, +++ { { { 194, -494, -29 },0,{ 1008, 803 },{ 0xF9, 0x85, 0x1F, 0xFF } } }, +++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, +++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, +++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { 194, -494, -29 },0,{ 752, 803 },{ 0x86, 0x24, 0xFA, 0xFF } } }, +++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, +++ { { { 188, -500, -27 },0,{ 624, 803 },{ 0xB7, 0x65, 0xEA, 0xFF } } }, +++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, +++ { { { 180, -503, -26 },0,{ 496, 803 },{ 0x7, 0x7C, 0xE5, 0xFF } } }, +++ { { { 181, -503, -26 },0,{ 368, 803 },{ 0x67, 0x48, 0xF1, 0xFF } } }, +++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, +++ { { { 181, -503, -26 },0,{ 240, 803 },{ 0x7A, 0xDE, 0xA, 0xFF } } }, +++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, +++ { { { 184, -447, 175 },0,{ 112, 598 },{ 0x42, 0xB1, 0x4A, 0xFF } } }, +++ { { { 186, -497, -28 },0,{ 112, 803 },{ 0x49, 0x9C, 0x1A, 0xFF } } }, +++ { { { 181, -442, 179 },0,{ 112, 394 },{ 0x29, 0xE0, 0x74, 0xFF } } }, +++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, +++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, +++ { { { 177, -436, 181 },0,{ 112, 189 },{ 0x14, 0x0, 0x7D, 0xFF } } }, +++ { { { 165, -450, 184 },0,{ 240, 189 },{ 0x1F, 0x14, 0x7A, 0xFF } } }, +++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, +++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, +++ { { { 167, -463, 188 },0,{ 368, 189 },{ 0x18, 0x2D, 0x74, 0xFF } } }, +++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, +++ { { { 179, -469, 189 },0,{ 496, 189 },{ 0x2, 0x3C, 0x70, 0xFF } } }, +++ { { { 193, -458, 183 },0,{ 624, 394 },{ 0xD7, 0x50, 0x59, 0xFF } } }, +++ { { { 197, -463, 187 },0,{ 624, 189 },{ 0xEC, 0x38, 0x70, 0xFF } } }, +++ { { { 202, -448, 181 },0,{ 752, 394 },{ 0xBF, 0x2C, 0x64, 0xFF } } }, +++ { { { 209, -449, 184 },0,{ 752, 189 },{ 0xE1, 0x25, 0x76, 0xFF } } }, +++ { { { 201, -440, 179 },0,{ 880, 394 },{ 0xCB, 0xF5, 0x73, 0xFF } } }, +++ { { { 207, -436, 181 },0,{ 880, 189 },{ 0xE8, 0xC, 0x7C, 0xFF } } }, +++ { { { 197, -445, 175 },0,{ 880, 598 },{ 0xA5, 0xCF, 0x4A, 0xFF } } }, +++ { { { 197, -448, 175 },0,{ 752, 598 },{ 0x94, 0x2D, 0x31, 0xFF } } }, +++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, +++ { { { 180, -463, 184 },0,{ 496, 394 },{ 0x4, 0x5A, 0x59, 0xFF } } }, +++ { { { 190, -455, 177 },0,{ 624, 598 },{ 0xBE, 0x68, 0x1F, 0xFF } } }, +++ { { { 180, -459, 178 },0,{ 496, 598 },{ 0x6, 0x7B, 0x1E, 0xFF } } }, +++ { { { 173, -460, 183 },0,{ 368, 394 },{ 0x34, 0x3D, 0x62, 0xFF } } }, +++ { { { 178, -458, 178 },0,{ 368, 598 },{ 0x5B, 0x4D, 0x2C, 0xFF } } }, +++ { { { 172, -452, 182 },0,{ 240, 394 },{ 0x41, 0x7, 0x6D, 0xFF } } }, +++ { { { 177, -455, 177 },0,{ 240, 598 },{ 0x6D, 0xEE, 0x3F, 0xFF } } }, +++ { { { 333, -535, 196 },0,{ -16, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 336, -585, -7 },0,{ -16, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { 328, -529, 200 },0,{ -16, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { 322, -522, 201 },0,{ -16, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 315, -515, 201 },0,{ -16, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 273, -515, 201 },0,{ 86, -16 },{ 0xF6, 0x13, 0x7D, 0xFF } } }, +++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 273, -386, 171 },0,{ 189, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, +++ { { { 336, -386, 171 },0,{ 291, -16 },{ 0x9, 0x2B, 0x77, 0xFF } } }, +++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { 368, -448, 185 },0,{ 394, -16 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 368, -386, 171 },0,{ 496, -16 },{ 0xF6, 0x27, 0x79, 0xFF } } }, +++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 410, -386, 171 },0,{ 598, -16 },{ 0xA, 0x27, 0x79, 0xFF } } }, +++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, +++ { { { 410, -515, 201 },0,{ 701, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 352, -515, 201 },0,{ 803, -16 },{ 0xF7, 0xE, 0x7E, 0xFF } } }, +++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, +++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, +++ { { { 315, -453, 186 },0,{ 906, -16 },{ 0x1, 0x18, 0x7D, 0xFF } } }, +++ { { { 322, -522, 201 },0,{ 1008, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 315, -515, 201 },0,{ 1008, -16 },{ 0xA, 0x13, 0x7D, 0xFF } } }, +++ { { { 328, -529, 200 },0,{ 1008, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, +++ { { { 333, -535, 196 },0,{ 1008, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, +++ { { { 336, -585, -7 },0,{ 1008, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 336, -580, -8 },0,{ 906, 803 },{ 0x21, 0x8A, 0x23, 0xFF } } }, +++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, +++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, +++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 339, -585, -7 },0,{ 803, 803 },{ 0xC1, 0x95, 0x1B, 0xFF } } }, +++ { { { 431, -585, -7 },0,{ 701, 803 },{ 0x5A, 0xAA, 0x17, 0xFF } } }, +++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { 431, -415, -47 },0,{ 598, 803 },{ 0x59, 0x58, 0xEE, 0xFF } } }, +++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 346, -415, -47 },0,{ 496, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, +++ { { { 346, -425, -45 },0,{ 394, 803 },{ 0xF7, 0x8D, 0x35, 0xFF } } }, +++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, +++ { { { 349, -415, -47 },0,{ 291, 803 },{ 0x5C, 0x55, 0xED, 0xFF } } }, +++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 251, -415, -47 },0,{ 189, 803 },{ 0xA7, 0x58, 0xEE, 0xFF } } }, +++ { { { 254, -535, 196 },0,{ 86, 598 },{ 0xAE, 0xBC, 0x44, 0xFF } } }, +++ { { { 251, -585, -7 },0,{ 86, 803 },{ 0xA6, 0xAA, 0x17, 0xFF } } }, +++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { 259, -529, 200 },0,{ 86, 394 },{ 0xD2, 0xEC, 0x75, 0xFF } } }, +++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 266, -522, 201 },0,{ 86, 189 },{ 0xE7, 0x4, 0x7C, 0xFF } } }, +++ { { { 266, -380, 168 },0,{ 189, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, +++ { { { 340, -380, 168 },0,{ 291, 189 },{ 0x15, 0x3C, 0x6E, 0xFF } } }, +++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, +++ { { { 361, -420, 177 },0,{ 394, 189 },{ 0xFF, 0x22, 0x7A, 0xFF } } }, +++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 361, -380, 168 },0,{ 496, 189 },{ 0xE7, 0x35, 0x71, 0xFF } } }, +++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 417, -380, 168 },0,{ 598, 189 },{ 0x19, 0x35, 0x71, 0xFF } } }, +++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, +++ { { { 417, -522, 201 },0,{ 701, 189 },{ 0x19, 0x4, 0x7C, 0xFF } } }, +++ { { { 348, -522, 201 },0,{ 803, 189 },{ 0xEC, 0xFA, 0x7D, 0xFF } } }, +++ { { { 344, -529, 200 },0,{ 803, 394 },{ 0xDC, 0xDB, 0x74, 0xFF } } }, +++ { { { 328, -502, 193 },0,{ 906, 394 },{ 0x5, 0xC, 0x7E, 0xFF } } }, +++ { { { 322, -479, 191 },0,{ 906, 189 },{ 0x2, 0x17, 0x7D, 0xFF } } }, +++ { { { 333, -521, 193 },0,{ 906, 598 },{ 0xE, 0xE9, 0x7C, 0xFF } } }, +++ { { { 341, -535, 196 },0,{ 803, 598 },{ 0xC6, 0xA8, 0x46, 0xFF } } }, +++ { { { 423, -529, 200 },0,{ 701, 394 },{ 0x2E, 0xEC, 0x75, 0xFF } } }, +++ { { { 428, -535, 196 },0,{ 701, 598 },{ 0x52, 0xBC, 0x44, 0xFF } } }, +++ { { { 423, -375, 163 },0,{ 598, 394 },{ 0x2E, 0x45, 0x60, 0xFF } } }, +++ { { { 428, -371, 157 },0,{ 598, 598 },{ 0x53, 0x5B, 0x1F, 0xFF } } }, +++ { { { 354, -375, 163 },0,{ 496, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 349, -371, 157 },0,{ 496, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++ { { { 354, -394, 168 },0,{ 394, 394 },{ 0xFC, 0x2C, 0x77, 0xFF } } }, +++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, +++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, +++ { { { 344, -375, 163 },0,{ 291, 394 },{ 0x26, 0x53, 0x58, 0xFF } } }, +++ { { { 349, -375, 158 },0,{ 394, 598 },{ 0xF9, 0x35, 0x73, 0xFF } } }, +++ { { { 347, -371, 157 },0,{ 291, 598 },{ 0x4B, 0x61, 0x21, 0xFF } } }, +++ { { { 259, -375, 163 },0,{ 189, 394 },{ 0xD2, 0x45, 0x60, 0xFF } } }, +++ { { { 254, -371, 157 },0,{ 189, 598 },{ 0xAD, 0x5B, 0x1F, 0xFF } } }, +++}; +++ +++Gfx titlesonic_Text_mesh_tri_0[] = { +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(3, 5, 1, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(5, 6, 8, 0), +++ gsSP1Triangle(5, 8, 9, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(10, 13, 11, 0), +++ gsSP1Triangle(14, 13, 10, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 16, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(5, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(9, 6, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 30, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 9, 8, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 46, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(12, 9, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 62, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 8, 9, 0), +++ gsSP1Triangle(10, 6, 9, 0), +++ gsSP1Triangle(10, 11, 6, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(10, 14, 13, 0), +++ gsSP1Triangle(10, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 78, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(9, 8, 4, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 94, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(4, 1, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 110, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(1, 4, 2, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(6, 5, 1, 0), +++ gsSP1Triangle(4, 5, 7, 0), +++ gsSP1Triangle(4, 7, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 126, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(4, 5, 7, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 142, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(11, 10, 7, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(13, 10, 12, 0), +++ gsSP1Triangle(13, 14, 10, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 158, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(12, 11, 10, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(13, 14, 11, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 174, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(12, 13, 10, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 190, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 206, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(4, 6, 8, 0), +++ gsSP1Triangle(4, 8, 9, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 11, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 222, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 238, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 254, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 0, 4, 0), +++ gsSP1Triangle(6, 7, 0, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 270, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 286, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(10, 12, 14, 0), +++ gsSP1Triangle(10, 14, 15, 0), +++ gsSP1Triangle(8, 10, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 302, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 318, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 7, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 334, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(3, 6, 4, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(12, 13, 10, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 350, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(9, 11, 13, 0), +++ gsSP1Triangle(9, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 366, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 382, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(7, 3, 8, 0), +++ gsSP1Triangle(8, 3, 0, 0), +++ gsSP1Triangle(8, 0, 9, 0), +++ gsSP1Triangle(10, 6, 7, 0), +++ gsSP1Triangle(10, 11, 6, 0), +++ gsSP1Triangle(11, 12, 6, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 398, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(4, 6, 8, 0), +++ gsSP1Triangle(4, 8, 9, 0), +++ gsSP1Triangle(1, 4, 9, 0), +++ gsSP1Triangle(1, 9, 10, 0), +++ gsSP1Triangle(2, 1, 10, 0), +++ gsSP1Triangle(2, 10, 11, 0), +++ gsSP1Triangle(12, 2, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 413, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 429, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(6, 8, 10, 0), +++ gsSP1Triangle(6, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 445, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(2, 3, 4, 0), +++ gsSP1Triangle(5, 2, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 7, 9, 0), +++ gsSP1Triangle(11, 5, 7, 0), +++ gsSP1Triangle(11, 12, 5, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(14, 13, 11, 0), +++ gsSP1Triangle(14, 11, 15, 0), +++ gsSP1Triangle(15, 11, 9, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 461, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(4, 3, 2, 0), +++ gsSP1Triangle(4, 2, 5, 0), +++ gsSP1Triangle(6, 3, 4, 0), +++ gsSP1Triangle(6, 7, 3, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 477, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(1, 4, 6, 0), +++ gsSP1Triangle(1, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(2, 7, 9, 0), +++ gsSP1Triangle(2, 1, 7, 0), +++ gsSP1Triangle(11, 2, 9, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 493, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 509, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(10, 12, 14, 0), +++ gsSP1Triangle(10, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 525, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 3, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 541, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 4, 6, 0), +++ gsSP1Triangle(8, 9, 4, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 557, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(8, 10, 12, 0), +++ gsSP1Triangle(8, 12, 13, 0), +++ gsSP1Triangle(6, 8, 13, 0), +++ gsSP1Triangle(6, 13, 14, 0), +++ gsSP1Triangle(4, 6, 14, 0), +++ gsSP1Triangle(4, 14, 15, 0), +++ gsSP1Triangle(1, 4, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 573, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 589, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 5, 1, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(7, 9, 11, 0), +++ gsSP1Triangle(7, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 605, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 3, 5, 0), +++ gsSP1Triangle(7, 8, 3, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(10, 11, 8, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(8, 11, 0, 0), +++ gsSP1Triangle(8, 0, 3, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 621, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 637, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 653, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(7, 9, 11, 0), +++ gsSP1Triangle(7, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 669, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(12, 9, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 685, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 701, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 717, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 733, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(1, 4, 6, 0), +++ gsSP1Triangle(1, 6, 7, 0), +++ gsSP1Triangle(2, 1, 7, 0), +++ gsSP1Triangle(2, 7, 8, 0), +++ gsSP1Triangle(9, 2, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 749, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 765, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(3, 6, 4, 0), +++ gsSP1Triangle(7, 6, 3, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(12, 13, 10, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 781, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 797, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(0, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(3, 5, 7, 0), +++ gsSP1Triangle(3, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(13, 10, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(14, 12, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 813, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(6, 3, 7, 0), +++ gsSP1Triangle(7, 3, 8, 0), +++ gsSP1Triangle(3, 0, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(10, 7, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 11, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 829, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 0, 4, 0), +++ gsSP1Triangle(6, 7, 0, 0), +++ gsSP1Triangle(8, 7, 6, 0), +++ gsSP1Triangle(9, 8, 6, 0), +++ gsSP1Triangle(9, 6, 10, 0), +++ gsSP1Triangle(10, 6, 4, 0), +++ gsSP1Triangle(10, 4, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 845, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(5, 6, 3, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 861, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(6, 8, 10, 0), +++ gsSP1Triangle(6, 10, 11, 0), +++ gsSP1Triangle(4, 6, 11, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 877, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(3, 5, 9, 0), +++ gsSP1Triangle(3, 9, 10, 0), +++ gsSP1Triangle(2, 3, 10, 0), +++ gsSP1Triangle(2, 10, 11, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 893, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 909, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(1, 4, 6, 0), +++ gsSP1Triangle(1, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(12, 9, 11, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 925, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 4, 6, 0), +++ gsSP1Triangle(8, 9, 4, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 941, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(1, 4, 6, 0), +++ gsSP1Triangle(1, 6, 7, 0), +++ gsSP1Triangle(2, 1, 7, 0), +++ gsSP1Triangle(2, 7, 8, 0), +++ gsSP1Triangle(9, 2, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 957, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 973, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(3, 5, 7, 0), +++ gsSP1Triangle(5, 8, 7, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(7, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 989, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 0, 3, 0), +++ gsSP1Triangle(5, 6, 0, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 7, 5, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(9, 5, 3, 0), +++ gsSP1Triangle(9, 3, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 11, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1005, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(3, 5, 1, 0), +++ gsSP1Triangle(3, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(9, 11, 13, 0), +++ gsSP1Triangle(9, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1021, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(5, 7, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1037, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 5, 1, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(7, 9, 11, 0), +++ gsSP1Triangle(7, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1053, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 3, 5, 0), +++ gsSP1Triangle(7, 8, 3, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(10, 11, 8, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(8, 11, 0, 0), +++ gsSP1Triangle(8, 0, 3, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1069, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1085, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(5, 7, 9, 0), +++ gsSP1Triangle(5, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1101, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 9, 11, 0), +++ gsSP1Triangle(13, 14, 9, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1117, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(9, 11, 13, 0), +++ gsSP1Triangle(9, 13, 14, 0), +++ gsSP1Triangle(7, 9, 14, 0), +++ gsSP1Triangle(7, 14, 15, 0), +++ gsSP1Triangle(5, 7, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1133, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(7, 10, 8, 0), +++ gsSP1Triangle(11, 10, 7, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1149, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(5, 7, 9, 0), +++ gsSP1Triangle(5, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 12, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1165, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 0, 3, 0), +++ gsSP1Triangle(5, 6, 0, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(6, 9, 11, 0), +++ gsSP1Triangle(6, 11, 0, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1181, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1197, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(4, 6, 8, 0), +++ gsSP1Triangle(4, 8, 9, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(14, 11, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1213, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 2, 3, 0), +++ gsSP1Triangle(4, 0, 3, 0), +++ gsSP1Triangle(4, 3, 5, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(10, 7, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 7, 10, 0), +++ gsSP1Triangle(12, 6, 7, 0), +++ gsSP1Triangle(13, 6, 12, 0), +++ gsSP1Triangle(14, 13, 12, 0), +++ gsSP1Triangle(14, 12, 15, 0), +++ gsSP1Triangle(15, 12, 10, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1229, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(3, 6, 4, 0), +++ gsSP1Triangle(6, 7, 4, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1245, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 3, 5, 0), +++ gsSP1Triangle(6, 5, 7, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1261, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(5, 4, 3, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1277, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(5, 7, 9, 0), +++ gsSP1Triangle(5, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(12, 11, 13, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(12, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1293, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 10, 9, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 10, 11, 0), +++ gsSP1Triangle(13, 14, 10, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1309, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(9, 11, 13, 0), +++ gsSP1Triangle(9, 13, 14, 0), +++ gsSP1Triangle(7, 9, 14, 0), +++ gsSP1Triangle(7, 14, 15, 0), +++ gsSP1Triangle(5, 7, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1325, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(7, 10, 8, 0), +++ gsSP1Triangle(11, 10, 7, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(13, 12, 11, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1341, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1357, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(3, 5, 7, 0), +++ gsSP1Triangle(3, 7, 8, 0), +++ gsSP1Triangle(8, 7, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(10, 11, 12, 0), +++ gsSP1Triangle(13, 10, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1373, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSP1Triangle(5, 3, 4, 0), +++ gsSP1Triangle(5, 4, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 11, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1389, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 5, 1, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1405, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(2, 3, 5, 0), +++ gsSP1Triangle(2, 5, 6, 0), +++ gsSP1Triangle(7, 2, 6, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(11, 9, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(13, 11, 12, 0), +++ gsSP1Triangle(13, 12, 14, 0), +++ gsSP1Triangle(15, 13, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_0 + 1421, 5, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 2, 4, 0), +++ gsSPEndDisplayList(), +++}; Vtx titlesonic_Text_mesh_vtx_1[638] = { +++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, +++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, +++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0x0, 0x81, 0xFF } } }, +++ { { { 273, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 336, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 273, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 315, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 315, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 368, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 410, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 352, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 410, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 368, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 136, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 241, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 188, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 195, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 116, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 173, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 158, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 161, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 137, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 179, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 240, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 188, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 201, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 216, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 262, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 214, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 52, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 105, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 52, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 105, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 42, -381, 196 },0,{ 423, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -80, -381, 196 },0,{ 277, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { 42, -416, 205 },0,{ 569, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -80, -416, 205 },0,{ 130, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x0, 0x7F, 0xFF } } }, +++ { { { -43, -509, 226 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 5, -416, 205 },0,{ 715, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -43, -416, 205 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 5, -509, 226 },0,{ 862, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -143, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -90, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -143, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -90, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -169, -490, 222 },0,{ 457, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -208, -465, 216 },0,{ 772, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -154, -445, 211 },0,{ 378, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -202, -445, 211 },0,{ 850, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -208, -425, 207 },0,{ 929, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -416, 205 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -169, -399, 201 },0,{ 299, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -416, 205 },0,{ 535, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -216, -381, 196 },0,{ 220, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -381, 196 },0,{ 142, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -291, -509, 226 },0,{ 63, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -243, -473, 218 },0,{ 614, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -228, -473, 218 },0,{ 693, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -414, 204 },0,{ 449, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -414, 204 },0,{ 356, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -381, 196 },0,{ 263, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -412, -381, 196 },0,{ 170, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -412, -509, 226 },0,{ 77, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -476, 219 },0,{ 915, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -476, 219 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -463, 215 },0,{ 822, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -427, 207 },0,{ 636, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -359, -427, 207 },0,{ 543, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -301, -463, 215 },0,{ 729, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -396, 200 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -553, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -547, -417, 205 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -622, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -567, -428, 207 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -579, -444, 211 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -575, -461, 215 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -553, -511, 227 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -502, -505, 225 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -603, -490, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -559, -468, 217 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -538, -462, 215 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -523, -449, 212 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -531, -419, 205 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -523, -425, 207 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -509, -377, 195 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -685, -509, 226 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -633, -381, 196 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -685, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -633, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -833, -509, 226 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -791, -447, 212 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -770, -381, 196 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -791, -509, 226 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -738, -442, 211 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -696, -509, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -754, -509, 226 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -696, -381, 196 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -738, -381, 196 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -970, -395, 199 },0,{ 121, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -918, -375, 195 },0,{ 189, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -933, -424, 206 },0,{ 598, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -990, -443, 211 },0,{ 52, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -945, -461, 215 },0,{ 735, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -948, -442, 210 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -969, -491, 222 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -927, -470, 217 },0,{ 803, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -491, 222 },0,{ 394, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -918, -511, 227 },0,{ 462, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -905, -462, 215 },0,{ 871, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -890, -445, 211 },0,{ 940, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -844, -443, 211 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -892, -425, 207 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -911, -416, 205 },0,{ 530, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -865, -393, 199 },0,{ 257, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1058, -378, 196 },0,{ 155, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -390, 198 },0,{ 98, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1017, -414, 204 },0,{ 268, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1007, -381, 196 },0,{ 212, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1045, -412, 204 },0,{ 325, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1117, -420, 205 },0,{ 41, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1064, -418, 205 },0,{ 382, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1060, -425, 207 },0,{ 439, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1101, -453, 213 },0,{ -16, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1039, -428, 207 },0,{ 496, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1013, -439, 210 },0,{ 553, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1002, -467, 216 },0,{ 610, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1075, -461, 215 },0,{ 1008, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1057, -464, 216 },0,{ 951, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1054, -472, 218 },0,{ 894, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1110, -508, 226 },0,{ 780, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1016, -498, 224 },0,{ 667, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1100, -476, 219 },0,{ 837, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { -1052, -510, 227 },0,{ 724, 1008 },{ 0x0, 0x1D, 0x7C, 0xFF } } }, +++ { { { 336, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 273, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 273, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 315, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 368, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 410, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 410, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 368, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 352, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 241, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 136, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 188, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 195, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 262, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 214, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 216, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 240, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 201, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 179, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 188, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 161, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 116, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 158, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 173, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 105, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 52, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 52, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 42, -389, 160 },0,{ 423, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -80, -425, 169 },0,{ 130, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -80, -389, 160 },0,{ 277, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 42, -425, 169 },0,{ 569, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 5, -425, 169 },0,{ 715, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -43, -517, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { 5, -517, 191 },0,{ 862, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -90, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -143, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -143, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -291, -517, 191 },0,{ 63, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -169, -498, 186 },0,{ 457, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -228, -481, 182 },0,{ 693, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -243, -481, 182 },0,{ 614, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -243, -425, 169 },0,{ 535, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -291, -389, 160 },0,{ 142, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -216, -389, 160 },0,{ 220, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -169, -408, 165 },0,{ 299, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -228, -425, 169 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -154, -453, 176 },0,{ 378, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -208, -433, 171 },0,{ 929, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -202, -453, 176 },0,{ 850, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -208, -473, 180 },0,{ 772, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -422, 168 },0,{ 356, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -359, -422, 168 },0,{ 449, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -389, 160 },0,{ 263, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -412, -389, 160 },0,{ 170, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -412, -517, 191 },0,{ 77, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -359, -435, 171 },0,{ 543, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -359, -471, 180 },0,{ 822, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -435, 171 },0,{ 636, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -471, 180 },0,{ 729, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -359, -484, 183 },0,{ 915, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -484, 183 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -553, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -523, -434, 171 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -531, -427, 169 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -509, -386, 160 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -547, -426, 169 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -603, -404, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -622, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -567, -436, 172 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -579, -452, 175 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -575, -469, 179 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -559, -477, 181 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -502, -513, 190 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -538, -470, 180 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -523, -458, 177 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -553, -519, 191 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -633, -389, 160 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -685, -517, 191 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -685, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -770, -389, 160 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -833, -517, 191 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -833, -389, 160 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -791, -456, 176 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -738, -450, 175 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -696, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -696, -389, 160 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -738, -389, 160 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -754, -517, 191 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -865, -402, 163 },0,{ 257, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -970, -403, 164 },0,{ 121, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -918, -384, 159 },0,{ 189, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -911, -424, 169 },0,{ 530, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -844, -451, 175 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -892, -433, 171 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -890, -453, 176 },0,{ 940, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -865, -500, 187 },0,{ 394, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -905, -471, 180 },0,{ 871, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -927, -479, 182 },0,{ 803, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -918, -520, 191 },0,{ 462, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -945, -470, 180 },0,{ 735, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -990, -451, 175 },0,{ 52, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -948, -450, 175 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -933, -432, 171 },0,{ 598, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1007, -389, 161 },0,{ 212, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1101, -398, 163 },0,{ 98, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1058, -387, 160 },0,{ 155, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1017, -422, 168 },0,{ 268, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1045, -421, 168 },0,{ 325, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1117, -428, 170 },0,{ 41, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1064, -426, 169 },0,{ 382, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1060, -433, 171 },0,{ 439, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1039, -436, 172 },0,{ 496, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1013, -447, 174 },0,{ 553, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1002, -475, 181 },0,{ 610, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1075, -470, 180 },0,{ 1008, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1057, -472, 180 },0,{ 951, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1016, -507, 188 },0,{ 667, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1100, -484, 183 },0,{ 837, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1054, -480, 182 },0,{ 894, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1110, -517, 191 },0,{ 780, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1052, -519, 191 },0,{ 724, 1008 },{ 0x0, 0xE3, 0x84, 0xFF } } }, +++ { { { -1101, -453, 213 },0,{ -16, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, +++ { { { -1117, -428, 170 },0,{ 38, 1008 },{ 0x81, 0x3, 0xFF, 0xFF } } }, +++ { { { -1101, -461, 177 },0,{ -16, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, +++ { { { -1117, -420, 205 },0,{ 38, -16 },{ 0x81, 0x3, 0xFF, 0xFF } } }, +++ { { { -1101, -398, 163 },0,{ 92, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, +++ { { { -1101, -390, 198 },0,{ 92, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, +++ { { { -1058, -387, 160 },0,{ 146, 1008 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, +++ { { { -1058, -378, 196 },0,{ 146, -16 },{ 0xF3, 0x7B, 0xE3, 0xFF } } }, +++ { { { -1007, -389, 161 },0,{ 200, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, +++ { { { -1007, -381, 196 },0,{ 200, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -1017, -414, 204 },0,{ 253, -16 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, +++ { { { -1017, -422, 168 },0,{ 253, 1008 },{ 0x4A, 0x9C, 0x18, 0xFF } } }, +++ { { { -1045, -421, 168 },0,{ 307, 1008 },{ 0xF, 0x85, 0x1D, 0xFF } } }, +++ { { { -1045, -412, 204 },0,{ 307, -16 },{ 0xF, 0x85, 0x1D, 0xFF } } }, +++ { { { -1064, -426, 169 },0,{ 361, 1008 },{ 0x76, 0xD2, 0xB, 0xFF } } }, +++ { { { -1064, -418, 205 },0,{ 361, -16 },{ 0x76, 0xD2, 0xB, 0xFF } } }, +++ { { { -1060, -433, 171 },0,{ 415, 1008 },{ 0x47, 0x66, 0xE8, 0xFF } } }, +++ { { { -1060, -425, 207 },0,{ 415, -16 },{ 0x47, 0x66, 0xE8, 0xFF } } }, +++ { { { -1039, -436, 172 },0,{ 469, 1008 },{ 0x22, 0x77, 0xE4, 0xFF } } }, +++ { { { -1039, -428, 207 },0,{ 469, -16 },{ 0x22, 0x77, 0xE4, 0xFF } } }, +++ { { { -1013, -447, 174 },0,{ 523, 1008 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, +++ { { { -1013, -439, 210 },0,{ 523, -16 },{ 0x5B, 0x56, 0xEC, 0xFF } } }, +++ { { { -1002, -475, 181 },0,{ 577, 1008 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, +++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, +++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, +++ { { { -1002, -467, 216 },0,{ 577, -16 },{ 0x7F, 0xFD, 0x1, 0xFF } } }, +++ { { { -1016, -498, 224 },0,{ 631, -16 },{ 0x55, 0xA5, 0x16, 0xFF } } }, +++ { { { -1016, -507, 188 },0,{ 631, 1008 },{ 0x55, 0xA5, 0x16, 0xFF } } }, +++ { { { -1052, -519, 191 },0,{ 685, 1008 },{ 0x13, 0x86, 0x1D, 0xFF } } }, +++ { { { -1052, -510, 227 },0,{ 685, -16 },{ 0x13, 0x86, 0x1D, 0xFF } } }, +++ { { { -1110, -517, 191 },0,{ 739, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { -1110, -508, 226 },0,{ 739, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { -1100, -484, 183 },0,{ 792, 1008 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, +++ { { { -1100, -476, 219 },0,{ 792, -16 },{ 0xB1, 0x60, 0xE9, 0xFF } } }, +++ { { { -1054, -480, 182 },0,{ 846, 1008 },{ 0x94, 0x41, 0xF1, 0xFF } } }, +++ { { { -1054, -472, 218 },0,{ 846, -16 },{ 0x94, 0x42, 0xF1, 0xFF } } }, +++ { { { -1057, -472, 180 },0,{ 900, 1008 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, +++ { { { -1057, -464, 216 },0,{ 900, -16 },{ 0xB2, 0x9F, 0x17, 0xFF } } }, +++ { { { -1075, -470, 180 },0,{ 954, 1008 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, +++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, +++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, +++ { { { -1075, -461, 215 },0,{ 954, -16 },{ 0xE3, 0x88, 0x1C, 0xFF } } }, +++ { { { -1101, -453, 213 },0,{ 1008, -16 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, +++ { { { -1101, -461, 177 },0,{ 1008, 1008 },{ 0xAB, 0xA5, 0x16, 0xFF } } }, +++ { { { -969, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { -990, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -969, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { -990, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, +++ { { { -970, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, +++ { { { -970, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, +++ { { { -918, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, +++ { { { -918, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, +++ { { { -865, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, +++ { { { -865, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, +++ { { { -844, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, +++ { { { -844, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { -865, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, +++ { { { -865, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, +++ { { { -918, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, +++ { { { -918, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, +++ { { { -969, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { -969, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { -911, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { -933, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, +++ { { { -911, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { -933, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, +++ { { { -948, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, +++ { { { -948, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, +++ { { { -945, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, +++ { { { -945, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -927, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, +++ { { { -927, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, +++ { { { -905, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, +++ { { { -905, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, +++ { { { -890, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, +++ { { { -890, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, +++ { { { -892, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { -892, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { -911, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { -911, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { -791, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -833, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -791, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -833, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -833, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -833, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -770, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, +++ { { { -770, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, +++ { { { -738, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, +++ { { { -738, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, +++ { { { -738, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -738, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -696, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -696, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -696, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -696, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -754, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, +++ { { { -754, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { -791, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, +++ { { { -791, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, +++ { { { -791, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -791, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -633, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -685, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -633, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -685, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -685, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -685, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -633, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -633, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -633, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -633, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -603, -490, 222 },0,{ -16, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, +++ { { { -622, -451, 175 },0,{ 48, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -603, -499, 186 },0,{ -16, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, +++ { { { -622, -443, 211 },0,{ 48, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -603, -404, 164 },0,{ 112, 1008 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, +++ { { { -603, -396, 200 },0,{ 112, -16 },{ 0xA5, 0x57, 0xEC, 0xFF } } }, +++ { { { -553, -384, 159 },0,{ 176, 1008 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, +++ { { { -553, -375, 195 },0,{ 176, -16 },{ 0xEA, 0x7A, 0xE3, 0xFF } } }, +++ { { { -509, -386, 160 },0,{ 240, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -509, -377, 195 },0,{ 240, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { -523, -434, 171 },0,{ 304, 1008 },{ 0x24, 0x89, 0x1C, 0xFF } } }, +++ { { { -523, -425, 207 },0,{ 304, -16 },{ 0x24, 0x89, 0x1C, 0xFF } } }, +++ { { { -531, -427, 169 },0,{ 368, 1008 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, +++ { { { -531, -419, 205 },0,{ 368, -16 },{ 0xCE, 0x8E, 0x1B, 0xFF } } }, +++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, +++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, +++ { { { -547, -417, 205 },0,{ 432, -16 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, +++ { { { -567, -436, 172 },0,{ 496, 1008 },{ 0x53, 0xA3, 0x16, 0xFF } } }, +++ { { { -547, -426, 169 },0,{ 432, 1008 },{ 0x1A, 0x87, 0x1D, 0xFF } } }, +++ { { { -567, -428, 207 },0,{ 496, -16 },{ 0x53, 0xA3, 0x16, 0xFF } } }, +++ { { { -579, -452, 175 },0,{ 560, 1008 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, +++ { { { -579, -444, 211 },0,{ 560, -16 },{ 0x7D, 0xE8, 0x6, 0xFF } } }, +++ { { { -575, -469, 179 },0,{ 624, 1008 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, +++ { { { -575, -461, 215 },0,{ 624, -16 },{ 0x64, 0x4C, 0xEE, 0xFF } } }, +++ { { { -559, -477, 181 },0,{ 688, 1008 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, +++ { { { -559, -468, 217 },0,{ 688, -16 },{ 0xB, 0x7B, 0xE3, 0xFF } } }, +++ { { { -538, -470, 180 },0,{ 752, 1008 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, +++ { { { -538, -462, 215 },0,{ 752, -16 },{ 0xC2, 0x6C, 0xE7, 0xFF } } }, +++ { { { -523, -458, 177 },0,{ 816, 1008 },{ 0x20, 0x78, 0xE4, 0xFF } } }, +++ { { { -523, -449, 212 },0,{ 816, -16 },{ 0x20, 0x78, 0xE4, 0xFF } } }, +++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, +++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, +++ { { { -502, -505, 225 },0,{ 880, -16 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, +++ { { { -553, -519, 191 },0,{ 944, 1008 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, +++ { { { -502, -513, 190 },0,{ 880, 1008 },{ 0x6C, 0xBF, 0xF, 0xFF } } }, +++ { { { -553, -511, 227 },0,{ 944, -16 },{ 0xEE, 0x86, 0x1D, 0xFF } } }, +++ { { { -603, -499, 186 },0,{ 1008, 1008 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, +++ { { { -603, -490, 222 },0,{ 1008, -16 },{ 0xA5, 0xAA, 0x14, 0xFF } } }, +++ { { { -301, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -412, -517, 191 },0,{ 69, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -301, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -412, -509, 226 },0,{ 69, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -412, -389, 160 },0,{ 155, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -412, -381, 196 },0,{ 155, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -301, -389, 160 },0,{ 240, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -381, 196 },0,{ 240, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -301, -414, 204 },0,{ 325, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -359, -422, 168 },0,{ 411, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -301, -422, 168 },0,{ 325, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -359, -414, 204 },0,{ 411, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -359, -435, 171 },0,{ 496, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -359, -427, 207 },0,{ 496, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -435, 171 },0,{ 581, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -427, 207 },0,{ 581, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -301, -471, 180 },0,{ 667, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -301, -463, 215 },0,{ 667, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -359, -471, 180 },0,{ 752, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -359, -463, 215 },0,{ 752, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -359, -484, 183 },0,{ 837, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -359, -476, 219 },0,{ 837, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -301, -476, 219 },0,{ 923, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -301, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -301, -484, 183 },0,{ 923, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -301, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -216, -509, 226 },0,{ -16, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, +++ { { { -291, -517, 191 },0,{ 130, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -216, -517, 191 },0,{ -16, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, +++ { { { -291, -509, 226 },0,{ 130, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -291, -389, 160 },0,{ 277, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -291, -381, 196 },0,{ 277, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -216, -389, 160 },0,{ 423, 1008 },{ 0x19, 0x79, 0xE3, 0xFF } } }, +++ { { { -216, -381, 196 },0,{ 423, -16 },{ 0x19, 0x79, 0xE3, 0xFF } } }, +++ { { { -169, -408, 165 },0,{ 569, 1008 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, +++ { { { -169, -399, 201 },0,{ 569, -16 },{ 0x5D, 0x54, 0xEC, 0xFF } } }, +++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, +++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, +++ { { { -154, -445, 211 },0,{ 715, -16 },{ 0x7F, 0x0, 0x0, 0xFF } } }, +++ { { { -169, -498, 186 },0,{ 862, 1008 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, +++ { { { -154, -453, 176 },0,{ 715, 1008 },{ 0x7F, 0x0, 0x0, 0xFF } } }, +++ { { { -169, -490, 222 },0,{ 862, -16 },{ 0x5D, 0xAC, 0x14, 0xFF } } }, +++ { { { -216, -517, 191 },0,{ 1008, 1008 },{ 0x19, 0x87, 0x1D, 0xFF } } }, +++ { { { -216, -509, 226 },0,{ 1008, -16 },{ 0x19, 0x87, 0x1D, 0xFF } } }, +++ { { { -243, -416, 205 },0,{ -16, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -243, -481, 182 },0,{ 130, 1008 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -243, -425, 169 },0,{ -16, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -243, -473, 218 },0,{ 130, -16 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -228, -481, 182 },0,{ 277, 1008 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, +++ { { { -228, -473, 218 },0,{ 277, -16 },{ 0xE7, 0x79, 0xE3, 0xFF } } }, +++ { { { -208, -473, 180 },0,{ 423, 1008 },{ 0xA1, 0x53, 0xED, 0xFF } } }, +++ { { { -208, -465, 216 },0,{ 423, -16 },{ 0xA1, 0x53, 0xED, 0xFF } } }, +++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -202, -445, 211 },0,{ 569, -16 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -208, -433, 171 },0,{ 715, 1008 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, +++ { { { -202, -453, 176 },0,{ 569, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { -208, -425, 207 },0,{ 715, -16 },{ 0xA1, 0xAE, 0x13, 0xFF } } }, +++ { { { -228, -425, 169 },0,{ 862, 1008 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, +++ { { { -228, -416, 205 },0,{ 862, -16 },{ 0xE7, 0x87, 0x1D, 0xFF } } }, +++ { { { -243, -425, 169 },0,{ 1008, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -243, -416, 205 },0,{ 1008, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -90, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -143, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -90, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -143, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -143, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -143, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -90, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { -90, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { -90, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { -90, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -43, -416, 205 },0,{ -16, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -80, -425, 169 },0,{ 112, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -43, -425, 169 },0,{ -16, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -80, -416, 205 },0,{ 112, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -80, -389, 160 },0,{ 240, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { -80, -381, 196 },0,{ 240, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { 42, -389, 160 },0,{ 368, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { 42, -381, 196 },0,{ 368, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { 42, -425, 169 },0,{ 496, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 42, -416, 205 },0,{ 496, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 5, -416, 205 },0,{ 624, -16 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 5, -517, 191 },0,{ 752, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 5, -425, 169 },0,{ 624, 1008 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 5, -509, 226 },0,{ 752, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { -43, -517, 191 },0,{ 880, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { -43, -509, 226 },0,{ 880, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -43, -425, 169 },0,{ 1008, 1008 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { -43, -416, 205 },0,{ 1008, -16 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { 105, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 52, -517, 191 },0,{ 240, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { 105, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 52, -509, 226 },0,{ 240, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { 52, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { 52, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { 105, -381, 196 },0,{ 752, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { 105, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 105, -389, 160 },0,{ 752, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { 105, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 137, -491, 222 },0,{ -16, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { 116, -451, 175 },0,{ 112, 1008 },{ 0x81, 0x0, 0x0, 0xFF } } }, +++ { { { 137, -500, 187 },0,{ -16, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { 116, -443, 211 },0,{ 112, -16 },{ 0x81, 0xFF, 0x0, 0xFF } } }, +++ { { { 136, -403, 164 },0,{ 240, 1008 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, +++ { { { 136, -395, 199 },0,{ 240, -16 },{ 0xA7, 0x59, 0xEB, 0xFF } } }, +++ { { { 188, -384, 159 },0,{ 368, 1008 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, +++ { { { 188, -375, 195 },0,{ 368, -16 },{ 0xFE, 0x7C, 0xE3, 0xFF } } }, +++ { { { 241, -402, 163 },0,{ 496, 1008 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, +++ { { { 241, -393, 199 },0,{ 496, -16 },{ 0x57, 0x5A, 0xEB, 0xFF } } }, +++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { 262, -443, 211 },0,{ 624, -16 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { 240, -500, 187 },0,{ 752, 1008 },{ 0x58, 0xA7, 0x15, 0xFF } } }, +++ { { { 262, -451, 175 },0,{ 624, 1008 },{ 0x7F, 0xFF, 0x0, 0xFF } } }, +++ { { { 240, -491, 222 },0,{ 752, -16 },{ 0x58, 0xA7, 0x15, 0xFF } } }, +++ { { { 188, -520, 191 },0,{ 880, 1008 },{ 0x0, 0x84, 0x1D, 0xFF } } }, +++ { { { 188, -511, 227 },0,{ 880, -16 },{ 0x0, 0x84, 0x1D, 0xFF } } }, +++ { { { 137, -500, 187 },0,{ 1008, 1008 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { 137, -491, 222 },0,{ 1008, -16 },{ 0xA7, 0xA8, 0x15, 0xFF } } }, +++ { { { 195, -416, 205 },0,{ -16, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { 173, -432, 171 },0,{ 112, 1008 },{ 0x49, 0x9B, 0x18, 0xFF } } }, +++ { { { 195, -424, 169 },0,{ -16, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { 173, -424, 206 },0,{ 112, -16 },{ 0x49, 0x9B, 0x18, 0xFF } } }, +++ { { { 158, -450, 175 },0,{ 240, 1008 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, +++ { { { 158, -442, 210 },0,{ 240, -16 },{ 0x7A, 0xDD, 0x8, 0xFF } } }, +++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { 161, -461, 215 },0,{ 368, -16 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { 179, -479, 182 },0,{ 496, 1008 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, +++ { { { 161, -470, 180 },0,{ 368, 1008 },{ 0x67, 0x48, 0xEF, 0xFF } } }, +++ { { { 179, -470, 217 },0,{ 496, -16 },{ 0x7, 0x7B, 0xE3, 0xFF } } }, +++ { { { 201, -471, 180 },0,{ 624, 1008 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, +++ { { { 201, -462, 215 },0,{ 624, -16 },{ 0xB7, 0x65, 0xE8, 0xFF } } }, +++ { { { 216, -453, 176 },0,{ 752, 1008 },{ 0x86, 0x24, 0xF8, 0xFF } } }, +++ { { { 216, -445, 211 },0,{ 752, -16 },{ 0x86, 0x24, 0xF8, 0xFF } } }, +++ { { { 214, -433, 171 },0,{ 880, 1008 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { 214, -425, 207 },0,{ 880, -16 },{ 0x98, 0xB9, 0x11, 0xFF } } }, +++ { { { 195, -424, 169 },0,{ 1008, 1008 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { 195, -416, 205 },0,{ 1008, -16 },{ 0xF9, 0x85, 0x1D, 0xFF } } }, +++ { { { 315, -509, 226 },0,{ -16, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { 315, -517, 191 },0,{ -16, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { 273, -509, 226 },0,{ 86, -16 },{ 0xA6, 0xA8, 0x15, 0xFF } } }, +++ { { { 273, -389, 160 },0,{ 189, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { 273, -517, 191 },0,{ 86, 1008 },{ 0xA6, 0xA9, 0x15, 0xFF } } }, +++ { { { 273, -381, 196 },0,{ 189, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { 336, -389, 160 },0,{ 291, 1008 },{ 0x43, 0x69, 0xE7, 0xFF } } }, +++ { { { 336, -381, 196 },0,{ 291, -16 },{ 0x43, 0x69, 0xE7, 0xFF } } }, +++ { { { 368, -450, 175 },0,{ 394, 1008 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, +++ { { { 368, -442, 211 },0,{ 394, -16 },{ 0xE3, 0x78, 0xE4, 0xFF } } }, +++ { { { 368, -389, 160 },0,{ 496, 1008 },{ 0xA6, 0x58, 0xEB, 0xFF } } }, +++ { { { 368, -381, 196 },0,{ 496, -16 },{ 0xA6, 0x57, 0xEB, 0xFF } } }, +++ { { { 410, -389, 160 },0,{ 598, 1008 },{ 0x5A, 0x58, 0xEB, 0xFF } } }, +++ { { { 410, -381, 196 },0,{ 598, -16 },{ 0x5A, 0x57, 0xEB, 0xFF } } }, +++ { { { 410, -517, 191 },0,{ 701, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 410, -509, 226 },0,{ 701, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { 352, -509, 226 },0,{ 803, -16 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { 315, -456, 176 },0,{ 906, 1008 },{ 0x21, 0x89, 0x1C, 0xFF } } }, +++ { { { 352, -517, 191 },0,{ 803, 1008 },{ 0xC1, 0x95, 0x19, 0xFF } } }, +++ { { { 315, -447, 212 },0,{ 906, -16 },{ 0x21, 0x89, 0x1C, 0xFF } } }, +++ { { { 315, -517, 191 },0,{ 1008, 1008 },{ 0x5A, 0xA9, 0x15, 0xFF } } }, +++ { { { 315, -509, 226 },0,{ 1008, -16 },{ 0x5A, 0xA8, 0x15, 0xFF } } }, +++}; +++ +++Gfx titlesonic_Text_mesh_tri_1[] = { +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 0, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 9, 7, 0), +++ gsSP1Triangle(6, 10, 9, 0), +++ gsSP1Triangle(9, 11, 7, 0), +++ gsSP1Triangle(9, 12, 11, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(11, 12, 14, 0), +++ gsSP1Triangle(11, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 16, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(4, 7, 6, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(11, 10, 8, 0), +++ gsSP1Triangle(9, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(13, 10, 14, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSP1Triangle(15, 14, 3, 0), +++ gsSP1Triangle(3, 14, 1, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 32, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 9, 8, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 48, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 6, 7, 0), +++ gsSP1Triangle(7, 6, 8, 0), +++ gsSP1Triangle(8, 6, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(12, 9, 13, 0), +++ gsSP1Triangle(14, 12, 13, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 64, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 0, 2, 0), +++ gsSP1Triangle(3, 4, 0, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 8, 9, 0), +++ gsSP1Triangle(10, 6, 9, 0), +++ gsSP1Triangle(10, 11, 6, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(10, 14, 13, 0), +++ gsSP1Triangle(10, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 80, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(9, 8, 4, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(12, 11, 9, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(12, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 96, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(4, 1, 5, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 112, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(1, 4, 2, 0), +++ gsSP1Triangle(1, 5, 4, 0), +++ gsSP1Triangle(6, 5, 1, 0), +++ gsSP1Triangle(4, 5, 7, 0), +++ gsSP1Triangle(4, 7, 8, 0), +++ gsSP1Triangle(9, 10, 11, 0), +++ gsSP1Triangle(9, 12, 10, 0), +++ gsSP1Triangle(13, 12, 9, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 128, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(4, 5, 7, 0), +++ gsSP1Triangle(7, 5, 8, 0), +++ gsSP1Triangle(8, 5, 9, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(10, 9, 11, 0), +++ gsSP1Triangle(11, 9, 12, 0), +++ gsSP1Triangle(13, 14, 15, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 144, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(11, 10, 7, 0), +++ gsSP1Triangle(12, 10, 11, 0), +++ gsSP1Triangle(13, 10, 12, 0), +++ gsSP1Triangle(13, 14, 10, 0), +++ gsSP1Triangle(15, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 160, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 5, 4, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(10, 8, 11, 0), +++ gsSP1Triangle(9, 12, 7, 0), +++ gsSP1Triangle(13, 5, 7, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 174, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(7, 11, 10, 0), +++ gsSP1Triangle(9, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSP1Triangle(15, 13, 3, 0), +++ gsSP1Triangle(3, 13, 1, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 190, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 5, 4, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(11, 9, 8, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 13, 12, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 206, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(3, 1, 4, 0), +++ gsSP1Triangle(4, 1, 5, 0), +++ gsSP1Triangle(5, 1, 6, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(8, 5, 7, 0), +++ gsSP1Triangle(9, 5, 8, 0), +++ gsSP1Triangle(10, 9, 8, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(10, 13, 12, 0), +++ gsSP1Triangle(2, 13, 10, 0), +++ gsSP1Triangle(2, 3, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 220, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(2, 1, 3, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(5, 4, 1, 0), +++ gsSP1Triangle(6, 4, 5, 0), +++ gsSP1Triangle(7, 6, 5, 0), +++ gsSP1Triangle(8, 6, 7, 0), +++ gsSP1Triangle(9, 4, 6, 0), +++ gsSP1Triangle(10, 4, 9, 0), +++ gsSP1Triangle(11, 4, 10, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(15, 13, 12, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 236, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 4, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 5, 3, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(11, 10, 12, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(11, 14, 8, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 251, 14, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(7, 5, 4, 0), +++ gsSP1Triangle(8, 7, 4, 0), +++ gsSP1Triangle(9, 7, 8, 0), +++ gsSP1Triangle(9, 8, 10, 0), +++ gsSP1Triangle(10, 8, 11, 0), +++ gsSP1Triangle(9, 12, 7, 0), +++ gsSP1Triangle(13, 5, 7, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 265, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 6, 4, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(7, 10, 9, 0), +++ gsSP1Triangle(7, 11, 10, 0), +++ gsSP1Triangle(9, 10, 12, 0), +++ gsSP1Triangle(12, 10, 13, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(14, 13, 15, 0), +++ gsSP1Triangle(15, 13, 3, 0), +++ gsSP1Triangle(3, 13, 1, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 281, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 1, 0, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(4, 5, 1, 0), +++ gsSP1Triangle(6, 5, 4, 0), +++ gsSP1Triangle(7, 5, 6, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(9, 8, 7, 0), +++ gsSP1Triangle(10, 8, 9, 0), +++ gsSP1Triangle(11, 8, 10, 0), +++ gsSP1Triangle(11, 12, 8, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(11, 14, 13, 0), +++ gsSP1Triangle(15, 14, 11, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 297, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 3, 0, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(5, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 313, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 329, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 345, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(3, 4, 5, 0), +++ gsSP1Triangle(3, 6, 4, 0), +++ gsSP1Triangle(6, 7, 4, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 361, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(7, 8, 9, 0), +++ gsSP1Triangle(7, 10, 8, 0), +++ gsSP1Triangle(10, 11, 8, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 377, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(11, 12, 13, 0), +++ gsSP1Triangle(11, 14, 12, 0), +++ gsSP1Triangle(14, 15, 12, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 393, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(4, 5, 3, 0), +++ gsSP1Triangle(4, 6, 5, 0), +++ gsSP1Triangle(6, 7, 5, 0), +++ gsSP1Triangle(6, 8, 7, 0), +++ gsSP1Triangle(8, 9, 7, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSP1Triangle(14, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 409, 15, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(1, 3, 2, 0), +++ gsSP1Triangle(1, 4, 3, 0), +++ gsSP1Triangle(5, 6, 7, 0), +++ gsSP1Triangle(5, 8, 6, 0), +++ gsSP1Triangle(8, 9, 6, 0), +++ gsSP1Triangle(8, 10, 9, 0), +++ gsSP1Triangle(10, 11, 9, 0), +++ gsSP1Triangle(10, 12, 11, 0), +++ gsSP1Triangle(12, 13, 11, 0), +++ gsSP1Triangle(12, 14, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 424, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 440, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 456, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 472, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 488, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 504, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(6, 7, 8, 0), +++ gsSP1Triangle(6, 9, 7, 0), +++ gsSP1Triangle(9, 10, 7, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 520, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(8, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 536, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 552, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(8, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 568, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(4, 5, 6, 0), +++ gsSP1Triangle(4, 7, 5, 0), +++ gsSP1Triangle(7, 8, 5, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 584, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(8, 9, 10, 0), +++ gsSP1Triangle(8, 11, 9, 0), +++ gsSP1Triangle(11, 12, 9, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 600, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(12, 13, 14, 0), +++ gsSP1Triangle(12, 15, 13, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 616, 16, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSP1Triangle(5, 6, 4, 0), +++ gsSP1Triangle(5, 7, 6, 0), +++ gsSP1Triangle(7, 8, 6, 0), +++ gsSP1Triangle(7, 9, 8, 0), +++ gsSP1Triangle(9, 10, 8, 0), +++ gsSP1Triangle(9, 11, 10, 0), +++ gsSP1Triangle(11, 12, 10, 0), +++ gsSP1Triangle(11, 13, 12, 0), +++ gsSP1Triangle(13, 14, 12, 0), +++ gsSP1Triangle(13, 15, 14, 0), +++ gsSPVertex(titlesonic_Text_mesh_vtx_1 + 632, 6, 0), +++ gsSP1Triangle(0, 1, 2, 0), +++ gsSP1Triangle(0, 3, 1, 0), +++ gsSP1Triangle(3, 4, 1, 0), +++ gsSP1Triangle(3, 5, 4, 0), +++ gsSPEndDisplayList(), +++}; +++ +++ +++Gfx mat_titlesonic_sm64_material_001[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(titlesonic_sm64_material_001_lights), +++ gsSPEndDisplayList(), +++}; +++ +++ +++Gfx mat_titlesonic_sm64_material_002[] = { +++ gsDPPipeSync(), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 1), +++ gsSPSetLights1(titlesonic_sm64_material_002_lights), +++ gsSPEndDisplayList(), +++}; +++ +++ ++ ++ // 0x07000000 - 0x07000100 ++ static const Vtx intro_seg7_vertex_07000000[] = { ++@@ -2577,12 +6521,12 @@ static const Vtx intro_seg7_vertex_07007DF0[] = { ++ }; ++ ++ // 0x07007EA0 - 0x07007EA2 ++-ALIGNED8 static const Texture intro_seg7_texture_07007EA0[] = { +++ALIGNED8 static const u8 intro_seg7_texture_07007EA0[] = { ++ #include "levels/intro/0.rgba16.inc.c" ++ }; ++ ++ // 0x070086A0 - 0x070086A2 ++-ALIGNED8 static const Texture intro_seg7_texture_070086A0[] = { +++ALIGNED8 static const u8 intro_seg7_texture_070086A0[] = { ++ #include "levels/intro/1.rgba16.inc.c" ++ }; ++ ++@@ -3297,6 +7241,8 @@ static const Gfx intro_seg7_dl_0700ADC0[] = { ++ gsSPEndDisplayList(), ++ }; ++ +++ +++ ++ // 0x0700B3A0 - 0x0700B420 ++ const Gfx intro_seg7_dl_0700B3A0[] = { ++ gsDPPipeSync(), ++@@ -3314,7 +7260,17 @@ const Gfx intro_seg7_dl_0700B3A0[] = { ++ gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), ++ gsSPDisplayList(intro_seg7_dl_0700ADC0), ++ gsSPSetGeometryMode(G_LIGHTING), ++- gsSPEndDisplayList(), +++ //gsSPEndDisplayList(), +++ gsSPDisplayList(mat_titlesonic_sm64_material_001), +++ gsSPDisplayList(titlesonic_Text_mesh_tri_0), +++ gsSPDisplayList(mat_titlesonic_sm64_material_002), +++ gsSPDisplayList(titlesonic_Text_mesh_tri_1), +++ gsDPPipeSync(), +++ gsSPSetGeometryMode(G_LIGHTING), +++ gsSPClearGeometryMode(G_TEXTURE_GEN), +++ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), +++ gsSPTexture(65535, 65535, 0, 0, 0), +++ gsSPEndDisplayList(), ++ }; ++ ++ // 0x0700B420 - 0x0700B460 ++@@ -3333,31 +7289,25 @@ static const Vtx intro_seg7_vertex_0700B460[] = { ++ {{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, ++ }; ++ ++-#if defined(VERSION_EU) || defined(VERSION_SH) +++#ifdef VERSION_EU ++ // 0x0700B4A0 - 0x0700B4A2 ++-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { +++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { ++ #include "levels/intro/2_eu_copyright.rgba16.inc.c" ++ }; ++ +++// 0x0700C4A0 - 0x0700D4A0 +++ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { +++#include "levels/intro/3_eu_tm.rgba16.inc.c" +++}; +++ ++ #else ++ // 0x0700B4A0 - 0x0700B4A2 ++-ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = { +++ALIGNED8 static const u8 intro_seg7_texture_0700B4A0[] = { ++ #include "levels/intro/2_copyright.rgba16.inc.c" ++ }; ++-#endif ++ ++-#if defined(VERSION_EU) ++ // 0x0700C4A0 - 0x0700D4A0 ++ ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { ++-#include "levels/intro/3_eu_tm.rgba16.inc.c" ++-}; ++-#elif defined(VERSION_SH) ++-ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = { ++-#include "levels/intro/3_sh_tm.rgba16.inc.c" ++-}; ++-#else ++-// 0x0700C4A0 - 0x0700D4A0 ++-ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = { ++ #include "levels/intro/3_tm.rgba16.inc.c" ++ }; ++ #endif +diff --git a/levels/level_defines.h b/levels/level_defines.h +index c14f252..3d8bc87 100644 +--- a/levels/level_defines.h ++++ b/levels/level_defines.h +@@ -17,41 +17,41 @@ + + // NOTE: Be sure to edit sZoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now. + // TODO: Figure something out for sZoomOutAreaMasks? +-STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) +-DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) +-DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) +-DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) +-DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) +-DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) +-DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) +-DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) +-DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) +-DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) +-DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) +-DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) +-DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) +-DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) +-DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) +-DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) +-DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) +-DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) +-DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) +-DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +-STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) ++DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) ++DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) ++DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) ++DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) ++DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) ++DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) ++DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) ++DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) ++DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) ++DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) ++DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 20000, 0x00, 0x00, 0x00, _, sCamCastleGrounds) ++DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) ++DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) ++DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) ++DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) ++DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) ++DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) ++DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) ++DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) ++DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++STUB_LEVEL("", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) +diff --git a/levels/level_defines.h.rej b/levels/level_defines.h.rej +new file mode 100644 +index 0000000..dd81a9e +--- /dev/null ++++ b/levels/level_defines.h.rej +@@ -0,0 +1,81 @@ ++diff a/levels/level_defines.h b/levels/level_defines.h (rejected hunks) ++@@ -17,41 +17,41 @@ ++ ++ // NOTE: Be sure to edit sZoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now. ++ // TODO: Figure something out for sZoomOutAreaMasks? ++-STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++-DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) ++-DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) ++-DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) ++-DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) ++-DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) ++-DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) ++-DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) ++-DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) ++-DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) ++-DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) ++-DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) ++-DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) ++-DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _) ++-DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) ++-DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) ++-DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) ++-DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) ++-DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) ++-DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) ++-DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) ++-DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) ++-DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) ++-DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) ++-DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) ++-DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) ++-DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) ++-DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++-DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) ++-DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++-DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++-DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) ++-STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +++DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH) +++DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM) +++DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle) +++DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC) +++DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL) +++DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) +++DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL) +++DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) +++DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) +++DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI) +++DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) +++DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR) +++DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 20000, 0x00, 0x00, 0x00, _, sCamCastleGrounds) +++DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) +++DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) +++DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) +++DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) +++DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) +++DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) +++DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) +++DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) +++DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) +++DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) +++DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) +++DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC) +++DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) +++DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +++DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) +++DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +++DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +++DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +++STUB_LEVEL("", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) +diff --git a/levels/menu/main_menu_seg7.01018.rgba16.png b/levels/menu/main_menu_seg7.01018.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..f1aad38f61af579ba2256a80a39867cbe9fc3fb0 +GIT binary patch +literal 4112 +zcmV+r5by7aP)T)xl_+s4S@SxJ`4sR%Fhi%CIZZ|^`Q>YdX;AwgK3C}-M=dth3 +zaP-9`+U){}BFMlAFY+lBh=6v-=h$yU-a0Ay+0%wkej;H19RiG9E`DT)qSb(L-*pAh +zx=f{+1)@}K{9iq~IjV{HfoZi>(WfC3@i5e10=Wofm1Ui!@_Ez{uBoi^{iBPEF= +zW@ln9oNIFYwSaRoMO2`8?;QmW+-C4R+k5Y7t-8!YBI8`bxn#}V*PzjOeH8UFBckV9 +zh5_JuD_YGAQ>}CT@GOm{$N&D%dM?h5vuRz-%?Dz}MLI?23}>)G&B%@K*DquI{_$)OGW&s~8MY3Ur{@H9g0BcAwzlWzC~M-@$+XVi#Zk +z$}|EG(P?3A2WSHY_f#2z(7Etk0E7cbD)$GOg-(Nd{Q|!_H^;9iq6!sF$64t4Gq6QPm7&gN~8B +zalWb<(r#wk4U7EUr;hT+2alosI?aZ~CQW89!z(ApS-i5A$@KvT_AW6zY*%K6YYIP* +z1>jm~rfc^7>*KFBIQ-~ko_}VZ`MEKgH--G>wlZtVbtFs7UFmT8jV3dv&qMtTFqKF8 +zLLT+~{BK1ryv!{?fu|tL!B8Gng)Av}bEeFzuaB^OLle($Q(rW^ac&*2&g^35+(ypL +zO>^P$93T9^6~-&^iZpIkSV4b?U!Qu;u0+NxPmTF_`(%r+{p(p?c(zV+DFcQn4UcnR +zZ^GVfr)gF%ar79RJ~KokU5~NrffA6Ly%#tjqz@|Bbk71j@V%?Ip&wz%Z3Zc?P^;E@gv>F(er8z31vgv?`r>_686 +z*5-uCcej;5C=bsM2!a6V39>wJS_GFbhdlq%S~g8K*}P>5(9F!v^a6RPLFaV1ORc?C +zY40lj@|&0HEH%e3~OU|ElOl;V0wC(cOUTBx~a$;=Oxb^u`JFhmj)%viBC5U +zkjDTaozSU8NW~31L*9RTfi=TzUOQgn7f&ZFER7&1e58`jhXI>gN0Ld-UI=;f>==9Z +zMo!ztP&39^fYv!xcP_5A!R!0`VCq{LEzg}7LKf#&Z&>#=_ic%DEA!N`c@j(3f)d0m05lk_Nq0LZ{5mNc>0#L{WEX+)y@2vJ0N9#Tn!Z~{r0QYu-(VjjS9 +z{rCmJ9k+*k=A$LHPIsVboWI-LlWaB+X$5!QqxrK>D0Xb6S5yHg1(Op#!xfh)tnC+H +zNhhXl+Qc10F>Erirhyd6GVWp`FjYg<7$Os4jKLU#*ROQK90c93{i)^!1YEy8WwcVJ +zzUX6f0R^cG$q2G6W~r4BMK+hcU%?HR6dyV?%(E|E;nal|v_mK;$TG+hP@c2JVZk4M +zNN~dzXB2}Y&0xNk(2N{&6uIB0aR*ah#Kx9j$Y<-i7JGLmt5D&-IS*Fsc`+1XOm|Vg +z@nNbpYPA}Mh>#%uK|k^9dwbpXTNx_UAE`ClG1~ +zyL1nD+JTpJz}J9}82u6Uh9V5@%hTup`|McWJe6{(DiO+q1Tr$xs11uvJSEw=$8hl8 +z7CX1cbUL|0^S*@vDgzmyn+Ck)2=&jk4lz2UGCiG}r(xH6MJLuAdBJ1mVnTf}CCmIg +zEgCMKt@4wfYTk2ukxhF>``RPr?Zvk^bMo8BmWM4&kVX5zPZ3$$0Wta(;`J}_%8?z+ +z@7PGWGKL%oQD@Ito_(Ri?3~2+A&X;#QWUhps}z{1MBIH>#O-@qNZBoZDnQk_c()(W +z?*Of&!p1BILtll8O51$w;fx)7=6LLpd0sw}k|y0cAF{N;&t8!1|AFFj8%oHL5fB22 +zq#y%qF`<0d9PhiSM)O30C!b%SR201bZlBWb*ZIy@eo0W;hLVLYonl*LnU3 +zq_M^?WTX~UmNHcGc-NhRgLl>0xiiA^ElT;MX_}|LY1bbxCO7@?ooaz-6(BT$hPHuJ +z`V@x}E}p-{#d8hf4t;_{0mwLWrpAAKD`NA;jQjs+4?=2$5NsXa%KaaEkeXcJ;dkw0 +zW3$W?KR=7s9v^;SgxAuY#2XHA=*~k-jZF0bXfAbl^za;C`>%*gm&Wji1zD0{C0Hbj +zO^@Rz%Iv+l$&I#yXH&8)ThYdgdX1muvB5LuTBTD&*L&Iqz{esvb9#|uN9VbGsgrkk +zWIkPkLl>6VJ@EqD?4#JzyAk0wC~jsv80Yi*exHJE;5FXl=TClvFZ}cWq5L9yH-DDh +zdv^2X2mYL)!WMikL+3JZh0wpkdv6xpd(So=eSDN!Ervn{sQ@YQGFYe!es`k8o?UgO +zCNiwGD|!Ku)(!-1`sH%i>jI|Q-`0TSMasSpya6@^KLeoc}%nHkCt=0VG=#312)8}&^J9af6e*HaC>jfvUmlSh +zemvx<7e=@=H%yvkd2r64qrv9YW1PE!=MHI_p?pDkv`l0IOm#LFxGRs_%h0A9;UYpp +z7X-U`e_1T(wZe5yCL#+v;u1dStjtj6yIy-J6BMy +zl+lsyQC?%Jgjze-#-NQR(ku^xgIh*K{Z?rA7!gq(gJLN_2p?;84!}SiPuepstrt0X +z_dI|4H`^JTR6T4nS4g`P$crLZ_OIIn>ox`4v^U^8U%klFPjzUvx@k56s~}a7N=Q6N +zEz(aIACFlxL~r|RIlnP|W@~Dgnb}@x?6FF}Oy?k&L276KQ)TTs!J0K5Z!1NXc>^&Z +z%clfYVDk;|iO)zTrx&o<9M-N~R@@-OJGNriZxG!7@e#(RGk*HRnAr=R9@iktAhw{~ +z`DiKSmR%7Wwgi+bYSr#`8I37ds2D?3t5S<<)T%Yt74EwKAP`*;1`!0Pn+-IwDN+?d +z(gvFYAOK%LV7cYigin9gaO+J9xY7As)Fvo+2q~8XF*vMiZDg56`5wEr7uYcEvvw-x +z@FQ(boseXi0PE+4l!YXPc8awgejwg)4^fAX1L&z~DmaGdU8`Ga26lv9FmMmsuwF7e +z6d?=4WLXj71f*c?1~~XYhYvs0VrnW`2B@_G%2T9iO5BbSLgb~i=z(FaCCf6DQYe+s +zZbw*~Q5u%q|4_i82jSFN%a6a8^5o+QwYqj7w3-wWSW}4!Ll20#_ExWk(DYgYVL2RZ +zin4+abc0{iy+U;{rP)YmH3Ni@l!heNZ#9gLCf#kft2#`1!)Do3q)FQI1|gh0 +z(8icnkGi^@o^Wsjnrd~3+M-7xfVL4VwLFAWY`eZiWi) +O0000OX) + +literal 0 +HcmV?d00001 + +diff --git a/levels/menu/script.c b/levels/menu/script.c +index f6db65c..ee739a7 100644 +--- a/levels/menu/script.c ++++ b/levels/menu/script.c +@@ -53,7 +53,7 @@ const LevelScript level_main_menu_entry_1[] = { + SLEEP(/*frames*/ 16), + CLEAR_LEVEL(), + SLEEP_BEFORE_EXIT(/*frames*/ 1), +- SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), ++ SET_REG(LEVEL_CASTLE_GROUNDS), + EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry), + }; + +@@ -72,18 +72,16 @@ const LevelScript level_main_menu_entry_2[] = { + + /*25*/ FREE_LEVEL_POOL(), + /*26*/ LOAD_AREA(/*area*/ 2), +-#ifdef NO_SEGMENTED_MEMORY +- // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not when NO_SEGMENTED_MEMORY is used. +- // lvl_init_act_selector_values_and_stars must be called here otherwise the previous +- // value is retained and causes incorrect drawing during the 16 transition frames. ++ ++ // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not on PC-port. ++ // lvl_init_act_selector_values_and_stars must be called here otherwise the ++ // previous value is retained and causes incorrect drawing during the 16 transition ++ // frames. + CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), +-#endif ++ + /*27*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), + /*29*/ SLEEP(/*frames*/ 16), + /*30*/ SET_MENU_MUSIC(/*seq*/ 0x000D), +-#ifndef NO_SEGMENTED_MEMORY +- /*31*/ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), +-#endif + /*33*/ CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_act_button_actions), + /*35*/ GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_ACT_NUM), + /*36*/ STOP_MUSIC(/*fadeOutTime*/ 0x00BE), +diff --git a/levels/menu/script.c.rej b/levels/menu/script.c.rej +new file mode 100644 +index 0000000..0fa2b28 +--- /dev/null ++++ b/levels/menu/script.c.rej +@@ -0,0 +1,35 @@ ++diff a/levels/menu/script.c b/levels/menu/script.c (rejected hunks) ++@@ -53,7 +53,7 @@ const LevelScript level_main_menu_entry_1[] = { ++ SLEEP(/*frames*/ 16), ++ CLEAR_LEVEL(), ++ SLEEP_BEFORE_EXIT(/*frames*/ 1), ++- SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), +++ SET_REG(LEVEL_CASTLE_GROUNDS), ++ EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry), ++ }; ++ ++@@ -72,18 +72,16 @@ const LevelScript level_main_menu_entry_2[] = { ++ ++ /*25*/ FREE_LEVEL_POOL(), ++ /*26*/ LOAD_AREA(/*area*/ 2), ++-#ifdef NO_SEGMENTED_MEMORY ++- // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not when NO_SEGMENTED_MEMORY is used. ++- // lvl_init_act_selector_values_and_stars must be called here otherwise the previous ++- // value is retained and causes incorrect drawing during the 16 transition frames. +++ +++ // sVisibleStars is set to 0 during FIXED_LOAD above on N64, but not on PC-port. +++ // lvl_init_act_selector_values_and_stars must be called here otherwise the +++ // previous value is retained and causes incorrect drawing during the 16 transition +++ // frames. ++ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), ++-#endif +++ ++ /*27*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), ++ /*29*/ SLEEP(/*frames*/ 16), ++ /*30*/ SET_MENU_MUSIC(/*seq*/ 0x000D), ++-#ifndef NO_SEGMENTED_MEMORY ++- /*31*/ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), ++-#endif ++ /*33*/ CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_act_button_actions), ++ /*35*/ GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_ACT_NUM), ++ /*36*/ STOP_MUSIC(/*fadeOutTime*/ 0x00BE), +diff --git a/levels/scripts.c b/levels/scripts.c +index 3067162..d524b57 100644 +--- a/levels/scripts.c ++++ b/levels/scripts.c +@@ -65,6 +65,17 @@ const LevelScript level_main_scripts_entry[] = { + LOAD_RAW( /*seg*/ 0x16, _common1_geoSegmentRomStart, _common1_geoSegmentRomEnd), + LOAD_RAW( /*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd), + ALLOC_LEVEL_POOL(), ++ ++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL, sonic_ball_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_BALL, super_ball_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_SONIC, super_sonic_geo), ++ // LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL_SHADOW, sonic_ball_shadow_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_TRAIL, sonic_trail_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_TRAIL, super_trail_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD, emerald_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD_CIRCLE, emerald_circle_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_RETICLE, reticle_geo), ++ + LOAD_MODEL_FROM_GEO(MODEL_MARIO, mario_geo), + LOAD_MODEL_FROM_GEO(MODEL_SMOKE, smoke_geo), + LOAD_MODEL_FROM_GEO(MODEL_SPARKLES, sparkles_geo), +@@ -88,7 +99,6 @@ const LevelScript level_main_scripts_entry[] = { + LOAD_MODEL_FROM_GEO(MODEL_SPARKLES_ANIMATION, sparkles_animation_geo), + LOAD_MODEL_FROM_DL( MODEL_SAND_DUST, sand_seg3_dl_0302BCD0, LAYER_ALPHA), + LOAD_MODEL_FROM_GEO(MODEL_BUTTERFLY, butterfly_geo), +- LOAD_MODEL_FROM_GEO(MODEL_BURN_SMOKE_UNUSED, burn_smoke_geo), + LOAD_MODEL_FROM_DL( MODEL_PEBBLE, pebble_seg3_dl_0301CB00, LAYER_ALPHA), + LOAD_MODEL_FROM_GEO(MODEL_MIST, mist_geo), + LOAD_MODEL_FROM_GEO(MODEL_WHITE_PUFF, white_puff_geo), +diff --git a/levels/scripts.c.rej b/levels/scripts.c.rej +new file mode 100644 +index 0000000..7c7d675 +--- /dev/null ++++ b/levels/scripts.c.rej +@@ -0,0 +1,27 @@ ++diff a/levels/scripts.c b/levels/scripts.c (rejected hunks) ++@@ -65,6 +65,17 @@ const LevelScript level_main_scripts_entry[] = { ++ LOAD_RAW( /*seg*/ 0x16, _common1_geoSegmentRomStart, _common1_geoSegmentRomEnd), ++ LOAD_RAW( /*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd), ++ ALLOC_LEVEL_POOL(), +++ +++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL, sonic_ball_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_BALL, super_ball_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_SONIC, super_sonic_geo), +++ // LOAD_MODEL_FROM_GEO(MODEL_SONIC_BALL_SHADOW, sonic_ball_shadow_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_SONIC_TRAIL, sonic_trail_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_SUPER_TRAIL, super_trail_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD, emerald_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_EMERALD_CIRCLE, emerald_circle_geo), +++ LOAD_MODEL_FROM_GEO(MODEL_RETICLE, reticle_geo), +++ ++ LOAD_MODEL_FROM_GEO(MODEL_MARIO, mario_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SMOKE, smoke_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_SPARKLES, sparkles_geo), ++@@ -88,7 +99,6 @@ const LevelScript level_main_scripts_entry[] = { ++ LOAD_MODEL_FROM_GEO(MODEL_SPARKLES_ANIMATION, sparkles_animation_geo), ++ LOAD_MODEL_FROM_DL( MODEL_SAND_DUST, sand_seg3_dl_0302BCD0, LAYER_ALPHA), ++ LOAD_MODEL_FROM_GEO(MODEL_BUTTERFLY, butterfly_geo), ++- LOAD_MODEL_FROM_GEO(MODEL_BURN_SMOKE_UNUSED, burn_smoke_geo), ++ LOAD_MODEL_FROM_DL( MODEL_PEBBLE, pebble_seg3_dl_0301CB00, LAYER_ALPHA), ++ LOAD_MODEL_FROM_GEO(MODEL_MIST, mist_geo), ++ LOAD_MODEL_FROM_GEO(MODEL_WHITE_PUFF, white_puff_geo), +diff --git a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s +index e14928c..4d12129 100644 +--- a/lib/asm/__osExceptionPreamble.s ++++ b/lib/asm/__osExceptionPreamble.s +@@ -18,8 +18,8 @@ + .endif + + glabel __osExceptionPreamble +- lui $k0, %hi(__osException) +- addiu $k0, %lo(__osException) ++ lui $k0, %hi(__crash_handler_entry) ++ addiu $k0, %lo(__crash_handler_entry) + jr $k0 + nop + +diff --git a/lib/asm/__osExceptionPreamble.s.rej b/lib/asm/__osExceptionPreamble.s.rej +new file mode 100644 +index 0000000..edd9425 +--- /dev/null ++++ b/lib/asm/__osExceptionPreamble.s.rej +@@ -0,0 +1,12 @@ ++diff a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s (rejected hunks) ++@@ -18,8 +18,8 @@ ++ .endif ++ ++ glabel __osExceptionPreamble ++- lui $k0, %hi(__osException) ++- addiu $k0, %lo(__osException) +++ lui $k0, %hi(__crash_handler_entry) +++ addiu $k0, %lo(__crash_handler_entry) ++ jr $k0 ++ nop ++ +diff --git a/sm64.ld b/sm64.ld +index f9d769d..40eaaea 100755 +--- a/sm64.ld ++++ b/sm64.ld +@@ -116,6 +116,7 @@ SECTIONS + BUILD_DIR/src/game/rendering_graph_node.o(.text); + BUILD_DIR/src/game/profiler.o(.text); + BUILD_DIR/asm/decompress.o(.text); ++ BUILD_DIR/asm/crash.o(.text); + BUILD_DIR/src/game/camera.o(.text); + BUILD_DIR/src/game/debug_course.o(.text); + BUILD_DIR/src/game/object_list_processor.o(.text); +diff --git a/sm64.ld.rej b/sm64.ld.rej +new file mode 100644 +index 0000000..d0ef111 +--- /dev/null ++++ b/sm64.ld.rej +@@ -0,0 +1,9 @@ ++diff a/sm64.ld b/sm64.ld (rejected hunks) ++@@ -116,6 +116,7 @@ SECTIONS ++ BUILD_DIR/src/game/rendering_graph_node.o(.text); ++ BUILD_DIR/src/game/profiler.o(.text); ++ BUILD_DIR/asm/decompress.o(.text); +++ BUILD_DIR/asm/crash.o(.text); ++ BUILD_DIR/src/game/camera.o(.text); ++ BUILD_DIR/src/game/debug_course.o(.text); ++ BUILD_DIR/src/game/object_list_processor.o(.text); +diff --git a/sound/samples/sfx_mario_peach/desktop.ini b/sound/samples/sfx_mario_peach/desktop.ini +new file mode 100644 +index 0000000..15c0a4e +--- /dev/null ++++ b/sound/samples/sfx_mario_peach/desktop.ini +@@ -0,0 +1,2 @@ ++[LocalizedFileNames] ++0D.aiff=@0D.aiff,0 +diff --git a/sound/sequences.json b/sound/sequences.json +index 1470c97..5ca7725 100644 +--- a/sound/sequences.json ++++ b/sound/sequences.json +@@ -1,38 +1,44 @@ + { +- "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", +- "00_sound_player": ["00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach"], +- "01_cutscene_collect_star": ["22"], +- "02_menu_title_screen": ["11"], +- "03_level_grass": ["22"], +- "04_level_inside_castle": ["0E"], +- "05_level_water": ["13"], +- "06_level_hot": ["0F"], +- "07_level_boss_koopa": ["12"], +- "08_level_snow": ["0B"], +- "09_level_slide": ["0D"], +- "0A_level_spooky": ["10", "21"], +- "0B_event_piranha_plant": ["14_piranha_music_box"], +- "0C_level_underground": ["15"], +- "0D_menu_star_select": ["16_course_start"], +- "0E_event_powerup": ["17"], +- "0F_event_metal_cap": ["18"], +- "10_event_koopa_message": ["12"], +- "11_level_koopa_road": ["19"], +- "12_event_high_score": ["1F"], +- "13_event_merry_go_round": ["21"], +- "14_event_race": ["1A"], +- "15_cutscene_star_spawn": ["0E"], +- "16_event_boss": ["1B"], +- "17_cutscene_collect_key": ["1A"], +- "18_event_endless_stairs": ["1C_endless_stairs"], +- "19_level_boss_koopa_final": ["1D_bowser_organ"], +- "1A_cutscene_credits": ["25"], +- "1B_event_solve_puzzle": ["14_piranha_music_box"], +- "1C_event_toad_message": ["20"], +- "1D_event_peach_message": ["1E"], +- "1E_cutscene_intro": ["1B"], +- "1F_cutscene_victory": ["1A"], +- "20_cutscene_ending": ["23"], +- "21_menu_file_select": ["24"], +- "22_cutscene_lakitu": {"ifdef": ["VERSION_US", "VERSION_EU", "VERSION_SH"], "banks": ["1B"]} ++ "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", ++ "00_sound_player": [ "00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach" ], ++ "01_cutscene_collect_star": [ "22" ], ++ "02_menu_title_screen": [ "11" ], ++ "03_level_grass": [ "22" ], ++ "04_level_inside_castle": [ "0E" ], ++ "05_level_water": [ "13" ], ++ "06_level_hot": [ "0F" ], ++ "07_level_boss_koopa": [ "12" ], ++ "08_level_snow": [ "0B" ], ++ "09_level_slide": [ "0D" ], ++ "0A_level_spooky": [ "10", "21" ], ++ "0B_event_piranha_plant": [ "14_piranha_music_box" ], ++ "0C_level_underground": [ "15" ], ++ "0D_menu_star_select": [ "16_course_start" ], ++ "0E_event_powerup": [ "17" ], ++ "0F_event_metal_cap": [ "18" ], ++ "10_event_koopa_message": [ "12" ], ++ "11_level_koopa_road": [ "19" ], ++ "12_event_high_score": [ "1F" ], ++ "13_event_merry_go_round": [ "21" ], ++ "14_event_race": [ "1A" ], ++ "15_cutscene_star_spawn": [ "0E" ], ++ "16_event_boss": [ "1B" ], ++ "17_cutscene_collect_key": [ "1A" ], ++ "18_event_endless_stairs": [ "1C_endless_stairs" ], ++ "19_level_boss_koopa_final": [ "1D_bowser_organ" ], ++ "1A_cutscene_credits": [ "25" ], ++ "1B_event_solve_puzzle": [ "14_piranha_music_box" ], ++ "1C_event_toad_message": [ "20" ], ++ "1D_event_peach_message": [ "1E" ], ++ "1E_cutscene_intro": [ "1B" ], ++ "1F_cutscene_victory": [ "1A" ], ++ "20_cutscene_ending": [ "23" ], ++ "21_menu_file_select": [ "24" ], ++ "23_drown": [ "13" ], ++ "24_super": [ "17" ], ++ "25_emerald": [ "0E" ], ++ "22_cutscene_lakitu": { ++ "ifdef": [ "VERSION_US", "VERSION_EU" ], ++ "banks": [ "1B" ] ++ } + } +diff --git a/sound/sequences.json.rej b/sound/sequences.json.rej +new file mode 100644 +index 0000000..a39f68f +--- /dev/null ++++ b/sound/sequences.json.rej +@@ -0,0 +1,82 @@ ++diff a/sound/sequences.json b/sound/sequences.json (rejected hunks) ++@@ -1,38 +1,44 @@ ++ { ++- "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", ++- "00_sound_player": ["00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach"], ++- "01_cutscene_collect_star": ["22"], ++- "02_menu_title_screen": ["11"], ++- "03_level_grass": ["22"], ++- "04_level_inside_castle": ["0E"], ++- "05_level_water": ["13"], ++- "06_level_hot": ["0F"], ++- "07_level_boss_koopa": ["12"], ++- "08_level_snow": ["0B"], ++- "09_level_slide": ["0D"], ++- "0A_level_spooky": ["10", "21"], ++- "0B_event_piranha_plant": ["14_piranha_music_box"], ++- "0C_level_underground": ["15"], ++- "0D_menu_star_select": ["16_course_start"], ++- "0E_event_powerup": ["17"], ++- "0F_event_metal_cap": ["18"], ++- "10_event_koopa_message": ["12"], ++- "11_level_koopa_road": ["19"], ++- "12_event_high_score": ["1F"], ++- "13_event_merry_go_round": ["21"], ++- "14_event_race": ["1A"], ++- "15_cutscene_star_spawn": ["0E"], ++- "16_event_boss": ["1B"], ++- "17_cutscene_collect_key": ["1A"], ++- "18_event_endless_stairs": ["1C_endless_stairs"], ++- "19_level_boss_koopa_final": ["1D_bowser_organ"], ++- "1A_cutscene_credits": ["25"], ++- "1B_event_solve_puzzle": ["14_piranha_music_box"], ++- "1C_event_toad_message": ["20"], ++- "1D_event_peach_message": ["1E"], ++- "1E_cutscene_intro": ["1B"], ++- "1F_cutscene_victory": ["1A"], ++- "20_cutscene_ending": ["23"], ++- "21_menu_file_select": ["24"], ++- "22_cutscene_lakitu": {"ifdef": ["VERSION_US", "VERSION_EU", "VERSION_SH"], "banks": ["1B"]} +++ "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", +++ "00_sound_player": [ "00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach" ], +++ "01_cutscene_collect_star": [ "22" ], +++ "02_menu_title_screen": [ "11" ], +++ "03_level_grass": [ "22" ], +++ "04_level_inside_castle": [ "0E" ], +++ "05_level_water": [ "13" ], +++ "06_level_hot": [ "0F" ], +++ "07_level_boss_koopa": [ "12" ], +++ "08_level_snow": [ "0B" ], +++ "09_level_slide": [ "0D" ], +++ "0A_level_spooky": [ "10", "21" ], +++ "0B_event_piranha_plant": [ "14_piranha_music_box" ], +++ "0C_level_underground": [ "15" ], +++ "0D_menu_star_select": [ "16_course_start" ], +++ "0E_event_powerup": [ "17" ], +++ "0F_event_metal_cap": [ "18" ], +++ "10_event_koopa_message": [ "12" ], +++ "11_level_koopa_road": [ "19" ], +++ "12_event_high_score": [ "1F" ], +++ "13_event_merry_go_round": [ "21" ], +++ "14_event_race": [ "1A" ], +++ "15_cutscene_star_spawn": [ "0E" ], +++ "16_event_boss": [ "1B" ], +++ "17_cutscene_collect_key": [ "1A" ], +++ "18_event_endless_stairs": [ "1C_endless_stairs" ], +++ "19_level_boss_koopa_final": [ "1D_bowser_organ" ], +++ "1A_cutscene_credits": [ "25" ], +++ "1B_event_solve_puzzle": [ "14_piranha_music_box" ], +++ "1C_event_toad_message": [ "20" ], +++ "1D_event_peach_message": [ "1E" ], +++ "1E_cutscene_intro": [ "1B" ], +++ "1F_cutscene_victory": [ "1A" ], +++ "20_cutscene_ending": [ "23" ], +++ "21_menu_file_select": [ "24" ], +++ "23_drown": [ "13" ], +++ "24_super": [ "17" ], +++ "25_emerald": [ "0E" ], +++ "22_cutscene_lakitu": { +++ "ifdef": [ "VERSION_US", "VERSION_EU" ], +++ "banks": [ "1B" ] +++ } ++ } +diff --git a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s +index 68502f9..28e6a13 100644 +--- a/sound/sequences/00_sound_player.s ++++ b/sound/sequences/00_sound_player.s +@@ -3,20 +3,9 @@ + .align 0 + sequence_start: + +-.ifdef VERSION_SH +- .set VERSION_EU_SH, 1 +-.endif +-.ifdef VERSION_EU +- .set VERSION_EU_SH, 1 +-.endif +- + seq_setmutebhv 0x60 + seq_setmutescale 0 +-.ifdef VERSION_SH +- seq_setvol 100 +-.else +- seq_setvol 127 +-.endif ++seq_setvol 127 + seq_settempo 120 + seq_initchannels 0x3ff + seq_startchannel 0, .channel0 +@@ -77,7 +66,7 @@ chan_stereoheadseteffects 1 + chan_setdyntable .channel59_table + chan_jump .main_loop_023589 + +-# Main loop for standard, non-continuous sound effects ++ + .main_loop_023589: + chan_delay1 + chan_ioreadval 0 +@@ -91,17 +80,17 @@ chan_iowriteval 5 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until layer 0 finishes or we are told to stop or to play something else ++ + .poll_023589: + chan_delay1 + chan_ioreadval 0 +-chan_bltz .skip_023589 # if we have a signal: +- chan_beqz .force_stop_023589 # told to stop +- chan_jump .start_playing_023589 # told to play something else ++chan_bltz .skip_023589 ++ chan_beqz .force_stop_023589 ++ chan_jump .start_playing_023589 + .skip_023589: + chan_testlayerfinished 0 +-chan_beqz .poll_023589 # if layer 0 hasn't finished, keep polling +-chan_jump .main_loop_023589 # otherwise go back to the main loop ++chan_beqz .poll_023589 ++chan_jump .main_loop_023589 + .force_stop_023589: + chan_freelayer 0 + chan_freelayer 1 +@@ -144,7 +133,7 @@ chan_stereoheadseteffects 1 + chan_setdyntable .channel6_table + chan_jump .main_loop_146 + +-# Main loop for moving, env and air sound effects, which play continuously ++ + .main_loop_146: + chan_delay1 + chan_ioreadval 0 +@@ -159,7 +148,7 @@ chan_iowriteval 5 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until we are told to stop or to play something else ++ + .poll_146: + chan_delay1 + chan_ioreadval 0 +@@ -181,7 +170,7 @@ chan_iowriteval 5 + chan_stereoheadseteffects 1 + chan_setdyntable .channel7_table + +-# Loop for menu sound effects ++ + .main_loop_7: + chan_delay1 + chan_ioreadval 0 +@@ -198,19 +187,19 @@ chan_setpanmix 127 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until layer 0 finishes or we are told to stop or to play something else ++ + .poll_7: + chan_delay1 + chan_ioreadval 0 +-chan_bltz .skip_7 # if we have a signal: +- chan_beqz .force_stop_7 # told to stop ++chan_bltz .skip_7 ++ chan_beqz .force_stop_7 + chan_unreservenotes +- chan_jump .start_playing_7 # told to play something else ++ chan_jump .start_playing_7 + .skip_7: + chan_testlayerfinished 0 +-chan_beqz .poll_7 # if layer 0 hasn't finished, keep polling ++chan_beqz .poll_7 + chan_unreservenotes +-chan_jump .main_loop_7 # otherwise go back to the main loop ++chan_jump .main_loop_7 + .force_stop_7: + chan_freelayer 0 + chan_freelayer 1 +@@ -218,7 +207,7 @@ chan_freelayer 2 + chan_unreservenotes + chan_jump .main_loop_7 + +-# Delay for a number of ticks (1-255) in an interruptible manner. ++ + .delay: + chan_writeseq_nextinstr 0, 1 + chan_loop 20 +@@ -233,15 +222,15 @@ chan_end + chan_setpanmix 127 + chan_setvolscale 127 + chan_setvibratoextent 0 +-chan_ioreadval 1 # IO slots 0-3 are reset to -1 when read; restore the value ++chan_ioreadval 1 + chan_iowriteval 0 +-chan_break # break out of the loop +-chan_break # force the caller to return immediately ++chan_break ++chan_break + chan_end + +-# Set reverb in way that takes area echo level and volume into account. This +-# is done by writing to IO slot 5 and letting get_sound_reverb in external.c +-# do the necessary math. ++ ++ ++ + .set_reverb: + chan_writeseq_nextinstr 0, 1 + chan_setreverb 10 +@@ -988,7 +977,7 @@ layer_portamento 0x81, 42, 255 + layer_note1 37, 0x1e, 105 + layer_end + +-.sound_action_climb_down_tree: # unused ++.sound_action_climb_down_tree: + chan_setbank 0 + chan_setinstr 1 + chan_setlayer 0, .layer_579 +@@ -999,7 +988,7 @@ layer_portamento 0x81, 44, 255 + layer_note1 40, 0xb4, 100 + layer_end + +-.chan_582: # unused ++.chan_582: + chan_setbank 0 + chan_setinstr 2 + chan_setlayer 0, .layer_58A +@@ -1373,7 +1362,7 @@ chan_end + layer_portamento 0x81, 27, 255 + layer_note1 41, 0xb, 127 + layer_somethingon +-layer_transpose -4 ++layer_transpose 252 + layer_portamento 0x85, 32, 255 + layer_note1 44, 0x5, 100 + layer_jump .layer_fn_64A +@@ -1419,7 +1408,7 @@ layer_note1 42, 0x8, 127 + layer_end + + .ifndef VERSION_JP +- .chan_828: # unused ++ .chan_828: + chan_setbank 7 + chan_setinstr 3 + chan_setlayer 0, .layer_83C +@@ -1805,7 +1794,7 @@ chan_end + + .layer_A97: + layer_setinstr 13 +-layer_transpose -12 ++layer_transpose 244 + + .layer_A9B: + layer_somethingon +@@ -2080,11 +2069,11 @@ chan_setlayer 0, .layer_C3C + chan_end + + .layer_C3C: +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + layer_transpose 2 + .endif + layer_portamento 0x82, 41, 127 +-layer_note1 37, 0x14, 127 ++layer_note1 38, 0x14, 127 + layer_end + + .sound_mario_jump_wah: +@@ -2094,7 +2083,7 @@ chan_setlayer 0, .layer_C4C + chan_end + + .layer_C4C: +-layer_transpose -2 ++layer_transpose 254 + .layer_C4E: + layer_note1 38, 0x18, 127 + layer_end +@@ -2106,7 +2095,7 @@ chan_setlayer 0, .layer_C5A + chan_end + + .layer_C5A: +-layer_transpose -2 ++layer_transpose 254 + .layer_C5C: + layer_portamento 0x82, 39, 200 + layer_note1 38, 0x24, 120 +@@ -2119,7 +2108,7 @@ chan_setlayer 0, .layer_C6C + chan_end + + .layer_C6C: +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + layer_transpose 1 + .endif + layer_portamento 0x82, 44, 200 +@@ -2133,7 +2122,7 @@ chan_setlayer 0, .layer_C7C + chan_end + + .layer_C7C: +-layer_transpose -2 ++layer_transpose 254 + layer_somethingon + layer_portamento 0x85, 39, 255 + layer_note1 42, 0x1e, 110 +@@ -2147,9 +2136,9 @@ chan_setlayer 0, .layer_C92 + chan_end + + .layer_C92: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 41, 255 +-layer_note1 38, 0x2b, 115 ++layer_note1 39, 0x2b, 115 + layer_end + + .sound_mario_hrmm: +@@ -2159,8 +2148,8 @@ chan_setlayer 0, .layer_CA4 + chan_end + + .layer_CA4: +-layer_transpose -2 +-layer_note1 44, 0x1e, 110 ++layer_transpose 254 ++layer_note1 39, 0x1e, 110 + layer_end + + .sound_mario_wah2: +@@ -2170,7 +2159,7 @@ chan_setlayer 0, .layer_CB2 + chan_end + + .layer_CB2: +-layer_transpose -3 ++layer_transpose 253 + layer_note1 39, 0x1c, 127 + layer_end + +@@ -2181,7 +2170,7 @@ chan_setlayer 0, .layer_CC0 + chan_end + + .layer_CC0: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 40, 0x30, 110 + layer_end + +@@ -2192,7 +2181,7 @@ chan_setlayer 0, .layer_CCE + chan_end + + .layer_CCE: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 40, 0x44, 105 + layer_end + +@@ -2203,7 +2192,7 @@ chan_setlayer 0, .layer_CDC + chan_end + + .layer_CDC: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 41, 0x30, 120 + layer_end + +@@ -2214,8 +2203,8 @@ chan_setlayer 0, .layer_CEA + chan_end + + .layer_CEA: +-layer_transpose -2 +-layer_note1 38, 0x30, 127 ++layer_transpose 254 ++layer_note1 41, 0x30, 127 + layer_end + + .sound_mario_here_we_go: +@@ -2236,7 +2225,7 @@ chan_setlayer 0, .layer_D09 + chan_end + + .layer_D09: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x7f, 105 + layer_end + +@@ -2247,7 +2236,7 @@ chan_setlayer 0, .layer_D17 + chan_end + + .layer_D17: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x60, 64 + layer_end + +@@ -2258,7 +2247,7 @@ chan_setlayer 0, .layer_D25 + chan_end + + .layer_D25: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x5c, 52 + layer_end + +@@ -2269,8 +2258,8 @@ chan_setlayer 0, .layer_D33 + chan_end + + .layer_D33: +-layer_transpose -2 +-layer_note1 39, 0xaa, 127 ++layer_transpose 254 ++layer_note1 40, 0xaa, 127 + layer_end + + .sound_mario_haha: +@@ -2280,7 +2269,7 @@ chan_setlayer 0, .layer_D42 + chan_end + + .layer_D42: +-layer_transpose -1 ++layer_transpose 255 + layer_note1 39, 0x4d, 120 + layer_end + +@@ -2291,8 +2280,8 @@ chan_setlayer 0, .layer_D50 + chan_end + + .layer_D50: +-layer_transpose -2 +-layer_note1 43, 0x1e, 105 ++layer_transpose 254 ++layer_note1 39, 0x1e, 105 + layer_end + + .sound_mario_on_fire: +@@ -2302,8 +2291,8 @@ chan_setlayer 0, .layer_D5E + chan_end + + .layer_D5E: +-layer_transpose -2 +-layer_note1 39, 0xc8, 127 ++layer_transpose 254 ++layer_note1 41, 0xc8, 127 + layer_end + + .sound_mario_dying: +@@ -2313,7 +2302,7 @@ chan_setlayer 0, .layer_D6D + chan_end + + .layer_D6D: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x8c, 110 + layer_end + +@@ -2324,7 +2313,7 @@ chan_setlayer 0, .layer_D7C + chan_end + + .layer_D7C: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x82, 35, 255 + layer_note1 38, 0x30, 127 + layer_end +@@ -2336,7 +2325,7 @@ chan_setlayer 0, .layer_D8E + chan_end + + .layer_D8E: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x3c, 100 + layer_end + +@@ -2347,7 +2336,7 @@ chan_setlayer 0, .layer_D9C + chan_end + + .layer_D9C: +-layer_transpose -2 ++layer_transpose 254 + layer_delay 0x4 + layer_note1 38, 0x3c, 100 + layer_end +@@ -2359,7 +2348,7 @@ chan_setlayer 0, .layer_DAC + chan_end + + .layer_DAC: +-layer_transpose -2 ++layer_transpose 254 + layer_delay 0x8 + layer_note1 40, 0x3c, 100 + layer_end +@@ -2371,7 +2360,7 @@ chan_setlayer 0, .layer_DBC + chan_end + + .layer_DBC: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x10, 115 + layer_end + +@@ -2382,7 +2371,7 @@ chan_setlayer 0, .layer_DCA + chan_end + + .layer_DCA: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 38, 255 + layer_note1 41, 0x18, 115 + layer_end +@@ -2394,7 +2383,7 @@ chan_setlayer 0, .layer_DDC + chan_end + + .layer_DDC: +-layer_transpose -2 ++layer_transpose 254 + layer_somethingon + layer_portamento 0x85, 38, 255 + layer_note1 41, 0xc, 115 +@@ -2413,7 +2402,7 @@ chan_setlayer 1, .layer_538 + chan_end + + .layer_DFE: +-layer_transpose -2 ++layer_transpose 254 + layer_jump .layer_C5C + + .sound_mario_punch_hoo: +@@ -2428,7 +2417,7 @@ chan_setlayer 1, .layer_548 + chan_end + + .layer_E17: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 42, 255 + layer_note1 38, 0x30, 115 + layer_end +@@ -2441,7 +2430,7 @@ chan_end + + .layer_E29: + layer_portamento 0x81, 38, 255 +-layer_note1 36, 0x8c, 115 ++layer_note1 39, 0x8c, 115 + layer_end + + .sound_mario_okey_dokey: +@@ -2479,7 +2468,7 @@ chan_setlayer 1, .layer_536 + chan_end + + .layer_E62: +-layer_transpose -1 ++layer_transpose 255 + layer_jump .layer_C4E + + .ifndef VERSION_JP +@@ -2520,7 +2509,7 @@ layer_jump .layer_C4E + chan_end + + .layer_E94: +- layer_note1 41, 0x46, 127 ++ layer_note1 39, 0x46, 127 + layer_end + + .sound_mario_game_over: +@@ -2569,22 +2558,10 @@ layer_jump .layer_C4E + chan_end + + .layer_ECF: +- layer_delay 0x4e +- .layer_ED1: +- layer_loop 50 +- layer_call .layer_fn_EE1 +- layer_loopend + layer_setinstr 21 +- layer_note1 39, 0x44c, 127 +- layer_jump .layer_ED1 ++ layer_note1 38, 0x44c, 127 + layer_end + +- .layer_fn_EE1: +- layer_setinstr 21 +- layer_note1 37, 0x53, 127 +- layer_setinstr 15 +- layer_note1 37, 0x4e, 64 +- layer_end + + .sound_mario_so_longa_bowser: + chan_setbank 8 +@@ -2699,7 +2676,7 @@ layer_jump .layer_C4E + layer_end + .endif + +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + .chan_unused_F9A_eu: + chan_setbank 8 + chan_setinstr 0 +@@ -2733,7 +2710,7 @@ sound_ref .sound_general_coin + sound_ref .sound_general_coin_water + sound_ref .sound_general_coin_water + sound_ref .sound_general_coin_water +-sound_ref .sound_general_coin_water ++sound_ref .sound_general_ringloss + sound_ref .sound_general_short_star + sound_ref .sound_general_big_clock + sound_ref .sound_general_loud_pound +@@ -2852,8 +2829,11 @@ sound_ref .sound_general_boat_rock + sound_ref .sound_general_boing2 + sound_ref .sound_general_yoshi_walk + sound_ref .sound_general_enemy_alert1 ++ ++ + .endif + ++ + .sound_general_activate_cap_switch: + chan_setbank 5 + chan_setinstr 7 +@@ -3037,7 +3017,7 @@ chan_setlayer 1, .layer_119D + chan_end + + .layer_119D: +-layer_transpose -12 ++layer_transpose 244 + + .layer_fn_119F: + layer_portamento 0x83, 27, 255 +@@ -3127,6 +3107,18 @@ layer_transpose 23 + layer_call .layer_fn_11E6 + layer_end + ++ ++ ++.sound_general_ringloss: ++chan_setbank 8 ++chan_setinstr 0 ++chan_setlayer 0, .layer_11E7 ++chan_end ++ ++.layer_11E7: ++layer_note1 39, 0xAF, 120 ++layer_end ++ + .sound_general_short_star: + chan_setbank 4 + chan_setinstr 14 +@@ -3408,17 +3400,11 @@ chan_setbank 9 + chan_setinstr 3 + chan_setval 40 + chan_call .set_reverb +-.ifdef VERSION_SH +- chan_setreverb 40 +-.endif + chan_setlayer 0, .layer_141A + chan_end + + .layer_141A: + layer_transpose 24 +-.ifdef VERSION_SH +- layer_note1 51, 0xc, 90 +-.endif + layer_note1 39, 0x4, 90 + layer_note1 51, 0xc, 90 + layer_note1 39, 0x4, 50 +@@ -3586,7 +3572,7 @@ chan_setlayer 0, .layer_1539 + chan_end + + .layer_1537: +-layer_transpose -3 ++layer_transpose 253 + + .layer_1539: + layer_note1 39, 0x6, 120 +@@ -3775,7 +3761,7 @@ layer_end + + .layer_1665: + layer_delay 0x4 +-layer_transpose -12 ++layer_transpose 244 + + .layer_1669: + layer_note1 27, 0x4f, 93 +@@ -3808,7 +3794,7 @@ layer_end + + .layer_16A6: + layer_delay 0x4 +-layer_transpose -12 ++layer_transpose 244 + + .layer_16AA: + layer_note1 46, 0xe, 116 +@@ -3915,7 +3901,7 @@ chan_end + + .layer_1751: + layer_call .layer_fn_1756 +-layer_transpose -4 ++layer_transpose 252 + + .layer_fn_1756: + layer_note1 27, 0x5, 105 +@@ -4056,7 +4042,7 @@ chan_setlayer 0, .layer_1844 + chan_end + + .layer_1844: +-layer_transpose -6 ++layer_transpose 250 + layer_portamento 0x81, 43, 127 + layer_note1 31, 0xfa, 115 + layer_end +@@ -4161,7 +4147,7 @@ layer_end + chan_setlayer 1, .layer_1902 + chan_setlayer 2, .layer_1907 + .else +- .ifdef VERSION_EU_SH ++ .ifdef VERSION_EU + chan_setbank 9 + chan_setinstr 3 + .else +@@ -4302,7 +4288,7 @@ chan_setinstr 5 + chan_end + + .layer_19FE: +-layer_transpose -6 ++layer_transpose 250 + + .layer_1A00: + layer_note1 15, 0xc, 127 +@@ -4357,7 +4343,7 @@ chan_end + .layer_1A44: + layer_transpose 7 + layer_call .layer_fn_1A4B +-layer_transpose -2 ++layer_transpose 254 + + .layer_fn_1A4B: + layer_portamento 0x83, 31, 255 +@@ -4577,7 +4563,7 @@ chan_setlayer 1, .layer_1B8C + chan_end + + .layer_1B8A: +-layer_transpose -12 ++layer_transpose 244 + + .layer_1B8C: + layer_somethingon +@@ -4796,7 +4782,7 @@ chan_setlayer 1, .layer_1D13 + chan_end + + .layer_1D11: +-layer_transpose -6 ++layer_transpose 250 + + .layer_1D13: + layer_somethingon +@@ -4901,7 +4887,7 @@ chan_setlayer 2, .layer_1DE2 + chan_end + + .layer_1DD4: +-layer_transpose -12 ++layer_transpose 244 + layer_somethingon + layer_portamento 0x82, 39, 255 + .layer_1DDB: +@@ -5320,7 +5306,7 @@ chan_end + .layer_2087: + layer_portamento 0x81, 33, 255 + layer_note1 57, 0x4, 127 +-layer_transpose -4 ++layer_transpose 252 + layer_portamento 0x81, 57, 255 + layer_note1 33, 0x6, 127 + layer_delay 0x14 +@@ -5726,7 +5712,7 @@ chan_setlayer 0, .layer_22F3 + chan_end + + .layer_unused_22F1: +-layer_transpose -12 ++layer_transpose 244 + + .layer_22F3: + layer_somethingon +@@ -5745,7 +5731,7 @@ chan_setlayer 0, .layer_230F + chan_end + + .layer_230F: +-layer_transpose -24 ++layer_transpose 232 + layer_somethingon + layer_portamento 0x85, 25, 255 + layer_note1 3, 0xf, 85 +@@ -5762,7 +5748,7 @@ chan_setlayer 0, .layer_232C + chan_end + + .layer_232C: +-layer_transpose -3 ++layer_transpose 253 + layer_somethingon + layer_portamento 0x85, 24, 255 + layer_note1 17, 0xa, 100 +@@ -5943,7 +5929,7 @@ chan_setlayer 0, .layer_2449 + chan_end + + .layer_2449: +-layer_transpose -8 ++layer_transpose 248 + layer_call .layer_fn_244E + + .layer_fn_244E: +@@ -5998,13 +5984,13 @@ chan_setlayer 0, .layer_249F + chan_end + + .layer_249F: +-layer_transpose -5 ++layer_transpose 251 + layer_call .layer_fn_24AF + layer_delay 0xb +-layer_transpose -8 ++layer_transpose 248 + layer_call .layer_fn_24AF + layer_delay 0xa +-layer_transpose -10 ++layer_transpose 246 + + .layer_fn_24AF: + layer_portamento 0x85, 29, 255 +@@ -6021,7 +6007,7 @@ chan_setlayer 0, .layer_24C7 + chan_end + + .layer_24C7: +-layer_transpose -12 ++layer_transpose 244 + layer_portamento 0x85, 25, 255 + layer_note1 39, 0x4, 127 + layer_note1 29, 0x30, 127 +@@ -6564,9 +6550,9 @@ layer_setinstr 15 + .layer_2856: + layer_transpose 6 + layer_call .layer_fn_119F +-layer_transpose -9 ++layer_transpose 247 + layer_call .layer_fn_119F +-layer_transpose -20 ++layer_transpose 236 + layer_jump .layer_fn_119F + + .sound_obj_chuckya_death: +@@ -6639,7 +6625,7 @@ chan_setlayer 0, .layer_28EB + chan_end + + .layer_28EB: +-layer_transpose -2 ++layer_transpose 254 + layer_note0 31, 0xa, 127, 70 + layer_note0 30, 0xb, 127, 70 + layer_note0 29, 0xa, 127, 70 +@@ -7473,11 +7459,11 @@ chan_setlayer 1, .layer_2E9E + chan_end + + .layer_2E9E: +-layer_transpose -12 ++layer_transpose 244 + layer_jump .layer_2EA5 + + .layer_2EA3: +-layer_transpose -24 ++layer_transpose 232 + .layer_2EA5: + layer_call .layer_fn_2EAB + layer_call .layer_fn_2EAB +@@ -7506,13 +7492,7 @@ layer_end + chan_reservenotes 4 + chan_setbank 9 + chan_setinstr 2 +-.ifdef VERSION_SH +- chan_setval 15 +- .set EXIT_PIPE_NOTE_VELOCITY, 106 +-.else +- chan_setval 30 +- .set EXIT_PIPE_NOTE_VELOCITY, 126 +-.endif ++chan_setval 30 + chan_call .set_reverb + chan_setenvelope .envelope_3464 + chan_setdecayrelease 220 +@@ -7528,36 +7508,36 @@ layer_jump .layer_2EF6 + layer_transpose 12 + .layer_2EF6: + layer_portamento 0x85, 15, 128 +-layer_note1 15, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 19, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 31, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 23, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 47, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 25, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 29, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 41, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 49, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY ++layer_note1 15, 0x3, 126 ++layer_note1 19, 0x3, 126 ++layer_note1 22, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 22, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 31, 0x3, 126 ++layer_note1 34, 0x3, 126 ++layer_note1 39, 0x3, 126 ++layer_note1 34, 0x3, 126 ++layer_note1 23, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 30, 0x3, 126 ++layer_note1 35, 0x3, 126 ++layer_note1 30, 0x3, 126 ++layer_note1 35, 0x3, 126 ++layer_note1 39, 0x3, 126 ++layer_note1 42, 0x3, 126 ++layer_note1 47, 0x3, 126 ++layer_note1 42, 0x3, 126 ++layer_note1 25, 0x3, 126 ++layer_note1 29, 0x3, 126 ++layer_note1 32, 0x3, 126 ++layer_note1 37, 0x3, 126 ++layer_note1 32, 0x3, 126 ++layer_note1 37, 0x3, 126 ++layer_note1 41, 0x3, 126 ++layer_note1 44, 0x3, 126 ++layer_note1 49, 0x3, 126 ++layer_note1 44, 0x3, 126 + layer_end + + .sound_menu_bowser_laugh: +@@ -7587,7 +7567,7 @@ chan_setlayer 0, .layer_2F7C + chan_end + + .layer_2F7C: +-layer_transpose -12 ++layer_transpose 244 + layer_portamento 0x83, 3, 255 + layer_note1 15, 0xa, 127 + layer_somethingon +@@ -7621,10 +7601,10 @@ chan_setlayer 1, .layer_2FB9 + chan_end + + .layer_2FB9: +-layer_transpose -24 ++layer_transpose 232 + layer_setpan 24 + layer_call .layer_fn_300D +-layer_transpose -12 ++layer_transpose 244 + layer_setpan 44 + layer_call .layer_fn_300D + layer_transpose 0 +@@ -7674,9 +7654,9 @@ layer_note1 48, 0x2, 20 + layer_end + + .layer_3032: +-layer_transpose -24 ++layer_transpose 232 + layer_call .layer_fn_3072 +-layer_transpose -12 ++layer_transpose 244 + layer_call .layer_fn_3072 + layer_transpose 0 + layer_call .layer_fn_3072 +@@ -7828,33 +7808,26 @@ chan_end + .layer_3146: + layer_delay 0x6 + +- .ifdef VERSION_SH +- .set RED_COIN_NOTE_VELOCITY_SUB, 10 +- .else +- .set RED_COIN_NOTE_VELOCITY_SUB, 0 +- .endif +- + .layer_3148: + layer_call .transpose_by_coin_index +- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 45, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 58, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- ++ layer_note0 46, 0xc, 75, 20 ++ layer_note0 45, 0xc, 75, 20 ++ layer_note0 46, 0xc, 75, 20 ++ layer_note0 58, 0x10, 80, 80 ++ layer_note0 58, 0x10, 45, 80 ++ layer_note0 58, 0x10, 20, 80 ++ layer_note0 58, 0x10, 15, 80 + layer_end + + .layer_3168: + layer_call .transpose_by_coin_index +- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 40, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 53, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++ layer_note0 41, 0xc, 75, 20 ++ layer_note0 40, 0xc, 75, 20 ++ layer_note0 41, 0xc, 75, 20 ++ layer_note0 53, 0x10, 80, 80 ++ layer_note0 53, 0x10, 45, 80 ++ layer_note0 53, 0x10, 20, 80 ++ layer_note0 53, 0x10, 15, 80 + layer_end + + .transpose_by_coin_index: +@@ -8150,11 +8123,7 @@ envelope_goto 2 + .envelope_341C: + envelope_line 25 32760 + envelope_line 60 10000 +-.ifdef VERSION_SH +- envelope_hang +-.else +- envelope_goto 2 +-.endif ++envelope_goto 2 + + .envelope_3428: + envelope_line 1 10000 +diff --git a/sound/sequences/00_sound_player.s.rej b/sound/sequences/00_sound_player.s.rej +new file mode 100644 +index 0000000..8130a4d +--- /dev/null ++++ b/sound/sequences/00_sound_player.s.rej +@@ -0,0 +1,973 @@ ++diff a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s (rejected hunks) ++@@ -3,20 +3,9 @@ ++ .align 0 ++ sequence_start: ++ ++-.ifdef VERSION_SH ++- .set VERSION_EU_SH, 1 ++-.endif ++-.ifdef VERSION_EU ++- .set VERSION_EU_SH, 1 ++-.endif ++- ++ seq_setmutebhv 0x60 ++ seq_setmutescale 0 ++-.ifdef VERSION_SH ++- seq_setvol 100 ++-.else ++- seq_setvol 127 ++-.endif +++seq_setvol 127 ++ seq_settempo 120 ++ seq_initchannels 0x3ff ++ seq_startchannel 0, .channel0 ++@@ -77,7 +66,7 @@ chan_stereoheadseteffects 1 ++ chan_setdyntable .channel59_table ++ chan_jump .main_loop_023589 ++ ++-# Main loop for standard, non-continuous sound effects +++ ++ .main_loop_023589: ++ chan_delay1 ++ chan_ioreadval 0 ++@@ -91,17 +80,17 @@ chan_iowriteval 5 ++ chan_ioreadval 4 ++ chan_dyncall ++ ++-# keep looping until layer 0 finishes or we are told to stop or to play something else +++ ++ .poll_023589: ++ chan_delay1 ++ chan_ioreadval 0 ++-chan_bltz .skip_023589 # if we have a signal: ++- chan_beqz .force_stop_023589 # told to stop ++- chan_jump .start_playing_023589 # told to play something else +++chan_bltz .skip_023589 +++ chan_beqz .force_stop_023589 +++ chan_jump .start_playing_023589 ++ .skip_023589: ++ chan_testlayerfinished 0 ++-chan_beqz .poll_023589 # if layer 0 hasn't finished, keep polling ++-chan_jump .main_loop_023589 # otherwise go back to the main loop +++chan_beqz .poll_023589 +++chan_jump .main_loop_023589 ++ .force_stop_023589: ++ chan_freelayer 0 ++ chan_freelayer 1 ++@@ -144,7 +133,7 @@ chan_stereoheadseteffects 1 ++ chan_setdyntable .channel6_table ++ chan_jump .main_loop_146 ++ ++-# Main loop for moving, env and air sound effects, which play continuously +++ ++ .main_loop_146: ++ chan_delay1 ++ chan_ioreadval 0 ++@@ -159,7 +148,7 @@ chan_iowriteval 5 ++ chan_ioreadval 4 ++ chan_dyncall ++ ++-# keep looping until we are told to stop or to play something else +++ ++ .poll_146: ++ chan_delay1 ++ chan_ioreadval 0 ++@@ -181,7 +170,7 @@ chan_iowriteval 5 ++ chan_stereoheadseteffects 1 ++ chan_setdyntable .channel7_table ++ ++-# Loop for menu sound effects +++ ++ .main_loop_7: ++ chan_delay1 ++ chan_ioreadval 0 ++@@ -198,19 +187,19 @@ chan_setpanmix 127 ++ chan_ioreadval 4 ++ chan_dyncall ++ ++-# keep looping until layer 0 finishes or we are told to stop or to play something else +++ ++ .poll_7: ++ chan_delay1 ++ chan_ioreadval 0 ++-chan_bltz .skip_7 # if we have a signal: ++- chan_beqz .force_stop_7 # told to stop +++chan_bltz .skip_7 +++ chan_beqz .force_stop_7 ++ chan_unreservenotes ++- chan_jump .start_playing_7 # told to play something else +++ chan_jump .start_playing_7 ++ .skip_7: ++ chan_testlayerfinished 0 ++-chan_beqz .poll_7 # if layer 0 hasn't finished, keep polling +++chan_beqz .poll_7 ++ chan_unreservenotes ++-chan_jump .main_loop_7 # otherwise go back to the main loop +++chan_jump .main_loop_7 ++ .force_stop_7: ++ chan_freelayer 0 ++ chan_freelayer 1 ++@@ -218,7 +207,7 @@ chan_freelayer 2 ++ chan_unreservenotes ++ chan_jump .main_loop_7 ++ ++-# Delay for a number of ticks (1-255) in an interruptible manner. +++ ++ .delay: ++ chan_writeseq_nextinstr 0, 1 ++ chan_loop 20 ++@@ -233,15 +222,15 @@ chan_end ++ chan_setpanmix 127 ++ chan_setvolscale 127 ++ chan_setvibratoextent 0 ++-chan_ioreadval 1 # IO slots 0-3 are reset to -1 when read; restore the value +++chan_ioreadval 1 ++ chan_iowriteval 0 ++-chan_break # break out of the loop ++-chan_break # force the caller to return immediately +++chan_break +++chan_break ++ chan_end ++ ++-# Set reverb in way that takes area echo level and volume into account. This ++-# is done by writing to IO slot 5 and letting get_sound_reverb in external.c ++-# do the necessary math. +++ +++ +++ ++ .set_reverb: ++ chan_writeseq_nextinstr 0, 1 ++ chan_setreverb 10 ++@@ -988,7 +977,7 @@ layer_portamento 0x81, 42, 255 ++ layer_note1 37, 0x1e, 105 ++ layer_end ++ ++-.sound_action_climb_down_tree: # unused +++.sound_action_climb_down_tree: ++ chan_setbank 0 ++ chan_setinstr 1 ++ chan_setlayer 0, .layer_579 ++@@ -999,7 +988,7 @@ layer_portamento 0x81, 44, 255 ++ layer_note1 40, 0xb4, 100 ++ layer_end ++ ++-.chan_582: # unused +++.chan_582: ++ chan_setbank 0 ++ chan_setinstr 2 ++ chan_setlayer 0, .layer_58A ++@@ -1373,7 +1362,7 @@ chan_end ++ layer_portamento 0x81, 27, 255 ++ layer_note1 41, 0xb, 127 ++ layer_somethingon ++-layer_transpose -4 +++layer_transpose 252 ++ layer_portamento 0x85, 32, 255 ++ layer_note1 44, 0x5, 100 ++ layer_jump .layer_fn_64A ++@@ -1419,7 +1408,7 @@ layer_note1 42, 0x8, 127 ++ layer_end ++ ++ .ifndef VERSION_JP ++- .chan_828: # unused +++ .chan_828: ++ chan_setbank 7 ++ chan_setinstr 3 ++ chan_setlayer 0, .layer_83C ++@@ -1805,7 +1794,7 @@ chan_end ++ ++ .layer_A97: ++ layer_setinstr 13 ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_A9B: ++ layer_somethingon ++@@ -2080,11 +2069,11 @@ chan_setlayer 0, .layer_C3C ++ chan_end ++ ++ .layer_C3C: ++-.ifdef VERSION_EU_SH +++.ifdef VERSION_EU ++ layer_transpose 2 ++ .endif ++ layer_portamento 0x82, 41, 127 ++-layer_note1 37, 0x14, 127 +++layer_note1 38, 0x14, 127 ++ layer_end ++ ++ .sound_mario_jump_wah: ++@@ -2094,7 +2083,7 @@ chan_setlayer 0, .layer_C4C ++ chan_end ++ ++ .layer_C4C: ++-layer_transpose -2 +++layer_transpose 254 ++ .layer_C4E: ++ layer_note1 38, 0x18, 127 ++ layer_end ++@@ -2106,7 +2095,7 @@ chan_setlayer 0, .layer_C5A ++ chan_end ++ ++ .layer_C5A: ++-layer_transpose -2 +++layer_transpose 254 ++ .layer_C5C: ++ layer_portamento 0x82, 39, 200 ++ layer_note1 38, 0x24, 120 ++@@ -2119,7 +2108,7 @@ chan_setlayer 0, .layer_C6C ++ chan_end ++ ++ .layer_C6C: ++-.ifdef VERSION_EU_SH +++.ifdef VERSION_EU ++ layer_transpose 1 ++ .endif ++ layer_portamento 0x82, 44, 200 ++@@ -2133,7 +2122,7 @@ chan_setlayer 0, .layer_C7C ++ chan_end ++ ++ .layer_C7C: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_somethingon ++ layer_portamento 0x85, 39, 255 ++ layer_note1 42, 0x1e, 110 ++@@ -2147,9 +2136,9 @@ chan_setlayer 0, .layer_C92 ++ chan_end ++ ++ .layer_C92: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_portamento 0x81, 41, 255 ++-layer_note1 38, 0x2b, 115 +++layer_note1 39, 0x2b, 115 ++ layer_end ++ ++ .sound_mario_hrmm: ++@@ -2159,8 +2148,8 @@ chan_setlayer 0, .layer_CA4 ++ chan_end ++ ++ .layer_CA4: ++-layer_transpose -2 ++-layer_note1 44, 0x1e, 110 +++layer_transpose 254 +++layer_note1 39, 0x1e, 110 ++ layer_end ++ ++ .sound_mario_wah2: ++@@ -2170,7 +2159,7 @@ chan_setlayer 0, .layer_CB2 ++ chan_end ++ ++ .layer_CB2: ++-layer_transpose -3 +++layer_transpose 253 ++ layer_note1 39, 0x1c, 127 ++ layer_end ++ ++@@ -2181,7 +2170,7 @@ chan_setlayer 0, .layer_CC0 ++ chan_end ++ ++ .layer_CC0: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 40, 0x30, 110 ++ layer_end ++ ++@@ -2192,7 +2181,7 @@ chan_setlayer 0, .layer_CCE ++ chan_end ++ ++ .layer_CCE: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 40, 0x44, 105 ++ layer_end ++ ++@@ -2203,7 +2192,7 @@ chan_setlayer 0, .layer_CDC ++ chan_end ++ ++ .layer_CDC: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 41, 0x30, 120 ++ layer_end ++ ++@@ -2214,8 +2203,8 @@ chan_setlayer 0, .layer_CEA ++ chan_end ++ ++ .layer_CEA: ++-layer_transpose -2 ++-layer_note1 38, 0x30, 127 +++layer_transpose 254 +++layer_note1 41, 0x30, 127 ++ layer_end ++ ++ .sound_mario_here_we_go: ++@@ -2236,7 +2225,7 @@ chan_setlayer 0, .layer_D09 ++ chan_end ++ ++ .layer_D09: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x7f, 105 ++ layer_end ++ ++@@ -2247,7 +2236,7 @@ chan_setlayer 0, .layer_D17 ++ chan_end ++ ++ .layer_D17: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x60, 64 ++ layer_end ++ ++@@ -2258,7 +2247,7 @@ chan_setlayer 0, .layer_D25 ++ chan_end ++ ++ .layer_D25: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x5c, 52 ++ layer_end ++ ++@@ -2269,8 +2258,8 @@ chan_setlayer 0, .layer_D33 ++ chan_end ++ ++ .layer_D33: ++-layer_transpose -2 ++-layer_note1 39, 0xaa, 127 +++layer_transpose 254 +++layer_note1 40, 0xaa, 127 ++ layer_end ++ ++ .sound_mario_haha: ++@@ -2280,7 +2269,7 @@ chan_setlayer 0, .layer_D42 ++ chan_end ++ ++ .layer_D42: ++-layer_transpose -1 +++layer_transpose 255 ++ layer_note1 39, 0x4d, 120 ++ layer_end ++ ++@@ -2291,8 +2280,8 @@ chan_setlayer 0, .layer_D50 ++ chan_end ++ ++ .layer_D50: ++-layer_transpose -2 ++-layer_note1 43, 0x1e, 105 +++layer_transpose 254 +++layer_note1 39, 0x1e, 105 ++ layer_end ++ ++ .sound_mario_on_fire: ++@@ -2302,8 +2291,8 @@ chan_setlayer 0, .layer_D5E ++ chan_end ++ ++ .layer_D5E: ++-layer_transpose -2 ++-layer_note1 39, 0xc8, 127 +++layer_transpose 254 +++layer_note1 41, 0xc8, 127 ++ layer_end ++ ++ .sound_mario_dying: ++@@ -2313,7 +2302,7 @@ chan_setlayer 0, .layer_D6D ++ chan_end ++ ++ .layer_D6D: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x8c, 110 ++ layer_end ++ ++@@ -2324,7 +2313,7 @@ chan_setlayer 0, .layer_D7C ++ chan_end ++ ++ .layer_D7C: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_portamento 0x82, 35, 255 ++ layer_note1 38, 0x30, 127 ++ layer_end ++@@ -2336,7 +2325,7 @@ chan_setlayer 0, .layer_D8E ++ chan_end ++ ++ .layer_D8E: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x3c, 100 ++ layer_end ++ ++@@ -2347,7 +2336,7 @@ chan_setlayer 0, .layer_D9C ++ chan_end ++ ++ .layer_D9C: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_delay 0x4 ++ layer_note1 38, 0x3c, 100 ++ layer_end ++@@ -2359,7 +2348,7 @@ chan_setlayer 0, .layer_DAC ++ chan_end ++ ++ .layer_DAC: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_delay 0x8 ++ layer_note1 40, 0x3c, 100 ++ layer_end ++@@ -2371,7 +2360,7 @@ chan_setlayer 0, .layer_DBC ++ chan_end ++ ++ .layer_DBC: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note1 39, 0x10, 115 ++ layer_end ++ ++@@ -2382,7 +2371,7 @@ chan_setlayer 0, .layer_DCA ++ chan_end ++ ++ .layer_DCA: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_portamento 0x81, 38, 255 ++ layer_note1 41, 0x18, 115 ++ layer_end ++@@ -2394,7 +2383,7 @@ chan_setlayer 0, .layer_DDC ++ chan_end ++ ++ .layer_DDC: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_somethingon ++ layer_portamento 0x85, 38, 255 ++ layer_note1 41, 0xc, 115 ++@@ -2413,7 +2402,7 @@ chan_setlayer 1, .layer_538 ++ chan_end ++ ++ .layer_DFE: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_jump .layer_C5C ++ ++ .sound_mario_punch_hoo: ++@@ -2428,7 +2417,7 @@ chan_setlayer 1, .layer_548 ++ chan_end ++ ++ .layer_E17: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_portamento 0x81, 42, 255 ++ layer_note1 38, 0x30, 115 ++ layer_end ++@@ -2441,7 +2430,7 @@ chan_end ++ ++ .layer_E29: ++ layer_portamento 0x81, 38, 255 ++-layer_note1 36, 0x8c, 115 +++layer_note1 39, 0x8c, 115 ++ layer_end ++ ++ .sound_mario_okey_dokey: ++@@ -2479,7 +2468,7 @@ chan_setlayer 1, .layer_536 ++ chan_end ++ ++ .layer_E62: ++-layer_transpose -1 +++layer_transpose 255 ++ layer_jump .layer_C4E ++ ++ .ifndef VERSION_JP ++@@ -2520,7 +2509,7 @@ layer_jump .layer_C4E ++ chan_end ++ ++ .layer_E94: ++- layer_note1 41, 0x46, 127 +++ layer_note1 39, 0x46, 127 ++ layer_end ++ ++ .sound_mario_game_over: ++@@ -2569,22 +2558,10 @@ layer_jump .layer_C4E ++ chan_end ++ ++ .layer_ECF: ++- layer_delay 0x4e ++- .layer_ED1: ++- layer_loop 50 ++- layer_call .layer_fn_EE1 ++- layer_loopend ++ layer_setinstr 21 ++- layer_note1 39, 0x44c, 127 ++- layer_jump .layer_ED1 +++ layer_note1 38, 0x44c, 127 ++ layer_end ++ ++- .layer_fn_EE1: ++- layer_setinstr 21 ++- layer_note1 37, 0x53, 127 ++- layer_setinstr 15 ++- layer_note1 37, 0x4e, 64 ++- layer_end ++ ++ .sound_mario_so_longa_bowser: ++ chan_setbank 8 ++@@ -2699,7 +2676,7 @@ layer_jump .layer_C4E ++ layer_end ++ .endif ++ ++-.ifdef VERSION_EU_SH +++.ifdef VERSION_EU ++ .chan_unused_F9A_eu: ++ chan_setbank 8 ++ chan_setinstr 0 ++@@ -2733,7 +2710,7 @@ sound_ref .sound_general_coin ++ sound_ref .sound_general_coin_water ++ sound_ref .sound_general_coin_water ++ sound_ref .sound_general_coin_water ++-sound_ref .sound_general_coin_water +++sound_ref .sound_general_ringloss ++ sound_ref .sound_general_short_star ++ sound_ref .sound_general_big_clock ++ sound_ref .sound_general_loud_pound ++@@ -2852,8 +2829,11 @@ sound_ref .sound_general_boat_rock ++ sound_ref .sound_general_boing2 ++ sound_ref .sound_general_yoshi_walk ++ sound_ref .sound_general_enemy_alert1 +++ +++ ++ .endif ++ +++ ++ .sound_general_activate_cap_switch: ++ chan_setbank 5 ++ chan_setinstr 7 ++@@ -3037,7 +3017,7 @@ chan_setlayer 1, .layer_119D ++ chan_end ++ ++ .layer_119D: ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_fn_119F: ++ layer_portamento 0x83, 27, 255 ++@@ -3127,6 +3107,18 @@ layer_transpose 23 ++ layer_call .layer_fn_11E6 ++ layer_end ++ +++ +++ +++.sound_general_ringloss: +++chan_setbank 8 +++chan_setinstr 0 +++chan_setlayer 0, .layer_11E7 +++chan_end +++ +++.layer_11E7: +++layer_note1 39, 0xAF, 120 +++layer_end +++ ++ .sound_general_short_star: ++ chan_setbank 4 ++ chan_setinstr 14 ++@@ -3408,17 +3400,11 @@ chan_setbank 9 ++ chan_setinstr 3 ++ chan_setval 40 ++ chan_call .set_reverb ++-.ifdef VERSION_SH ++- chan_setreverb 40 ++-.endif ++ chan_setlayer 0, .layer_141A ++ chan_end ++ ++ .layer_141A: ++ layer_transpose 24 ++-.ifdef VERSION_SH ++- layer_note1 51, 0xc, 90 ++-.endif ++ layer_note1 39, 0x4, 90 ++ layer_note1 51, 0xc, 90 ++ layer_note1 39, 0x4, 50 ++@@ -3586,7 +3572,7 @@ chan_setlayer 0, .layer_1539 ++ chan_end ++ ++ .layer_1537: ++-layer_transpose -3 +++layer_transpose 253 ++ ++ .layer_1539: ++ layer_note1 39, 0x6, 120 ++@@ -3775,7 +3761,7 @@ layer_end ++ ++ .layer_1665: ++ layer_delay 0x4 ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_1669: ++ layer_note1 27, 0x4f, 93 ++@@ -3808,7 +3794,7 @@ layer_end ++ ++ .layer_16A6: ++ layer_delay 0x4 ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_16AA: ++ layer_note1 46, 0xe, 116 ++@@ -3915,7 +3901,7 @@ chan_end ++ ++ .layer_1751: ++ layer_call .layer_fn_1756 ++-layer_transpose -4 +++layer_transpose 252 ++ ++ .layer_fn_1756: ++ layer_note1 27, 0x5, 105 ++@@ -4056,7 +4042,7 @@ chan_setlayer 0, .layer_1844 ++ chan_end ++ ++ .layer_1844: ++-layer_transpose -6 +++layer_transpose 250 ++ layer_portamento 0x81, 43, 127 ++ layer_note1 31, 0xfa, 115 ++ layer_end ++@@ -4161,7 +4147,7 @@ layer_end ++ chan_setlayer 1, .layer_1902 ++ chan_setlayer 2, .layer_1907 ++ .else ++- .ifdef VERSION_EU_SH +++ .ifdef VERSION_EU ++ chan_setbank 9 ++ chan_setinstr 3 ++ .else ++@@ -4302,7 +4288,7 @@ chan_setinstr 5 ++ chan_end ++ ++ .layer_19FE: ++-layer_transpose -6 +++layer_transpose 250 ++ ++ .layer_1A00: ++ layer_note1 15, 0xc, 127 ++@@ -4357,7 +4343,7 @@ chan_end ++ .layer_1A44: ++ layer_transpose 7 ++ layer_call .layer_fn_1A4B ++-layer_transpose -2 +++layer_transpose 254 ++ ++ .layer_fn_1A4B: ++ layer_portamento 0x83, 31, 255 ++@@ -4577,7 +4563,7 @@ chan_setlayer 1, .layer_1B8C ++ chan_end ++ ++ .layer_1B8A: ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_1B8C: ++ layer_somethingon ++@@ -4796,7 +4782,7 @@ chan_setlayer 1, .layer_1D13 ++ chan_end ++ ++ .layer_1D11: ++-layer_transpose -6 +++layer_transpose 250 ++ ++ .layer_1D13: ++ layer_somethingon ++@@ -4901,7 +4887,7 @@ chan_setlayer 2, .layer_1DE2 ++ chan_end ++ ++ .layer_1DD4: ++-layer_transpose -12 +++layer_transpose 244 ++ layer_somethingon ++ layer_portamento 0x82, 39, 255 ++ .layer_1DDB: ++@@ -5320,7 +5306,7 @@ chan_end ++ .layer_2087: ++ layer_portamento 0x81, 33, 255 ++ layer_note1 57, 0x4, 127 ++-layer_transpose -4 +++layer_transpose 252 ++ layer_portamento 0x81, 57, 255 ++ layer_note1 33, 0x6, 127 ++ layer_delay 0x14 ++@@ -5726,7 +5712,7 @@ chan_setlayer 0, .layer_22F3 ++ chan_end ++ ++ .layer_unused_22F1: ++-layer_transpose -12 +++layer_transpose 244 ++ ++ .layer_22F3: ++ layer_somethingon ++@@ -5745,7 +5731,7 @@ chan_setlayer 0, .layer_230F ++ chan_end ++ ++ .layer_230F: ++-layer_transpose -24 +++layer_transpose 232 ++ layer_somethingon ++ layer_portamento 0x85, 25, 255 ++ layer_note1 3, 0xf, 85 ++@@ -5762,7 +5748,7 @@ chan_setlayer 0, .layer_232C ++ chan_end ++ ++ .layer_232C: ++-layer_transpose -3 +++layer_transpose 253 ++ layer_somethingon ++ layer_portamento 0x85, 24, 255 ++ layer_note1 17, 0xa, 100 ++@@ -5943,7 +5929,7 @@ chan_setlayer 0, .layer_2449 ++ chan_end ++ ++ .layer_2449: ++-layer_transpose -8 +++layer_transpose 248 ++ layer_call .layer_fn_244E ++ ++ .layer_fn_244E: ++@@ -5998,13 +5984,13 @@ chan_setlayer 0, .layer_249F ++ chan_end ++ ++ .layer_249F: ++-layer_transpose -5 +++layer_transpose 251 ++ layer_call .layer_fn_24AF ++ layer_delay 0xb ++-layer_transpose -8 +++layer_transpose 248 ++ layer_call .layer_fn_24AF ++ layer_delay 0xa ++-layer_transpose -10 +++layer_transpose 246 ++ ++ .layer_fn_24AF: ++ layer_portamento 0x85, 29, 255 ++@@ -6021,7 +6007,7 @@ chan_setlayer 0, .layer_24C7 ++ chan_end ++ ++ .layer_24C7: ++-layer_transpose -12 +++layer_transpose 244 ++ layer_portamento 0x85, 25, 255 ++ layer_note1 39, 0x4, 127 ++ layer_note1 29, 0x30, 127 ++@@ -6564,9 +6550,9 @@ layer_setinstr 15 ++ .layer_2856: ++ layer_transpose 6 ++ layer_call .layer_fn_119F ++-layer_transpose -9 +++layer_transpose 247 ++ layer_call .layer_fn_119F ++-layer_transpose -20 +++layer_transpose 236 ++ layer_jump .layer_fn_119F ++ ++ .sound_obj_chuckya_death: ++@@ -6639,7 +6625,7 @@ chan_setlayer 0, .layer_28EB ++ chan_end ++ ++ .layer_28EB: ++-layer_transpose -2 +++layer_transpose 254 ++ layer_note0 31, 0xa, 127, 70 ++ layer_note0 30, 0xb, 127, 70 ++ layer_note0 29, 0xa, 127, 70 ++@@ -7473,11 +7459,11 @@ chan_setlayer 1, .layer_2E9E ++ chan_end ++ ++ .layer_2E9E: ++-layer_transpose -12 +++layer_transpose 244 ++ layer_jump .layer_2EA5 ++ ++ .layer_2EA3: ++-layer_transpose -24 +++layer_transpose 232 ++ .layer_2EA5: ++ layer_call .layer_fn_2EAB ++ layer_call .layer_fn_2EAB ++@@ -7506,13 +7492,7 @@ layer_end ++ chan_reservenotes 4 ++ chan_setbank 9 ++ chan_setinstr 2 ++-.ifdef VERSION_SH ++- chan_setval 15 ++- .set EXIT_PIPE_NOTE_VELOCITY, 106 ++-.else ++- chan_setval 30 ++- .set EXIT_PIPE_NOTE_VELOCITY, 126 ++-.endif +++chan_setval 30 ++ chan_call .set_reverb ++ chan_setenvelope .envelope_3464 ++ chan_setdecayrelease 220 ++@@ -7528,36 +7508,36 @@ layer_jump .layer_2EF6 ++ layer_transpose 12 ++ .layer_2EF6: ++ layer_portamento 0x85, 15, 128 ++-layer_note1 15, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 19, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 31, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 23, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 47, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 25, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 29, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 41, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 49, 0x3, EXIT_PIPE_NOTE_VELOCITY ++-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY +++layer_note1 15, 0x3, 126 +++layer_note1 19, 0x3, 126 +++layer_note1 22, 0x3, 126 +++layer_note1 27, 0x3, 126 +++layer_note1 22, 0x3, 126 +++layer_note1 27, 0x3, 126 +++layer_note1 31, 0x3, 126 +++layer_note1 34, 0x3, 126 +++layer_note1 39, 0x3, 126 +++layer_note1 34, 0x3, 126 +++layer_note1 23, 0x3, 126 +++layer_note1 27, 0x3, 126 +++layer_note1 30, 0x3, 126 +++layer_note1 35, 0x3, 126 +++layer_note1 30, 0x3, 126 +++layer_note1 35, 0x3, 126 +++layer_note1 39, 0x3, 126 +++layer_note1 42, 0x3, 126 +++layer_note1 47, 0x3, 126 +++layer_note1 42, 0x3, 126 +++layer_note1 25, 0x3, 126 +++layer_note1 29, 0x3, 126 +++layer_note1 32, 0x3, 126 +++layer_note1 37, 0x3, 126 +++layer_note1 32, 0x3, 126 +++layer_note1 37, 0x3, 126 +++layer_note1 41, 0x3, 126 +++layer_note1 44, 0x3, 126 +++layer_note1 49, 0x3, 126 +++layer_note1 44, 0x3, 126 ++ layer_end ++ ++ .sound_menu_bowser_laugh: ++@@ -7587,7 +7567,7 @@ chan_setlayer 0, .layer_2F7C ++ chan_end ++ ++ .layer_2F7C: ++-layer_transpose -12 +++layer_transpose 244 ++ layer_portamento 0x83, 3, 255 ++ layer_note1 15, 0xa, 127 ++ layer_somethingon ++@@ -7621,10 +7601,10 @@ chan_setlayer 1, .layer_2FB9 ++ chan_end ++ ++ .layer_2FB9: ++-layer_transpose -24 +++layer_transpose 232 ++ layer_setpan 24 ++ layer_call .layer_fn_300D ++-layer_transpose -12 +++layer_transpose 244 ++ layer_setpan 44 ++ layer_call .layer_fn_300D ++ layer_transpose 0 ++@@ -7674,9 +7654,9 @@ layer_note1 48, 0x2, 20 ++ layer_end ++ ++ .layer_3032: ++-layer_transpose -24 +++layer_transpose 232 ++ layer_call .layer_fn_3072 ++-layer_transpose -12 +++layer_transpose 244 ++ layer_call .layer_fn_3072 ++ layer_transpose 0 ++ layer_call .layer_fn_3072 ++@@ -7828,33 +7808,26 @@ chan_end ++ .layer_3146: ++ layer_delay 0x6 ++ ++- .ifdef VERSION_SH ++- .set RED_COIN_NOTE_VELOCITY_SUB, 10 ++- .else ++- .set RED_COIN_NOTE_VELOCITY_SUB, 0 ++- .endif ++- ++ .layer_3148: ++ layer_call .transpose_by_coin_index ++- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 45, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 58, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 58, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 58, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 58, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- +++ layer_note0 46, 0xc, 75, 20 +++ layer_note0 45, 0xc, 75, 20 +++ layer_note0 46, 0xc, 75, 20 +++ layer_note0 58, 0x10, 80, 80 +++ layer_note0 58, 0x10, 45, 80 +++ layer_note0 58, 0x10, 20, 80 +++ layer_note0 58, 0x10, 15, 80 ++ layer_end ++ ++ .layer_3168: ++ layer_call .transpose_by_coin_index ++- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 40, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 ++- layer_note0 53, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 53, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 53, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++- layer_note0 53, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 +++ layer_note0 41, 0xc, 75, 20 +++ layer_note0 40, 0xc, 75, 20 +++ layer_note0 41, 0xc, 75, 20 +++ layer_note0 53, 0x10, 80, 80 +++ layer_note0 53, 0x10, 45, 80 +++ layer_note0 53, 0x10, 20, 80 +++ layer_note0 53, 0x10, 15, 80 ++ layer_end ++ ++ .transpose_by_coin_index: ++@@ -8150,11 +8123,7 @@ envelope_goto 2 ++ .envelope_341C: ++ envelope_line 25 32760 ++ envelope_line 60 10000 ++-.ifdef VERSION_SH ++- envelope_hang ++-.else ++- envelope_goto 2 ++-.endif +++envelope_goto 2 ++ ++ .envelope_3428: ++ envelope_line 1 10000 +diff --git a/sound/sequences/us/23_drown.m64 b/sound/sequences/us/23_drown.m64 +new file mode 100644 +index 0000000000000000000000000000000000000000..22e90430fbc17cbcb3298ccea3f4fb7783345c64 +GIT binary patch +literal 1796 +zcmd5+KWrOi6#o)m&UWL(CSXdCMJ>nZP8poxPDr$aPlUxos#vbXX>5L)knjtqvq8oD*lVQ;D6UvH#Vm}K7Hdz8o3YzCPa%<3$!rntpfZI;is +zS#8LAK6Z{5TdbPAD7!UynIz{nIM?RfYJ#gt2E(c*_-y*k1ZR+c97}M%#rdYJN(1|H +zf(0^&H(4PVgO`T4!TGkV3M=Sogk^Iz{x?5h;B?s~j5rqqdbp~HEfA)P!NrSm)apEk +z5XyF;b4IH82_KhVVh@$=4MJQN;$PmAHn~D>yD8EX>OORT`LK_@31KfRD +zFCbvR>;;~5B2V|h8jCL#195IaQR`VBtQ`F`sXRC(JiZG#V9Jxmjd+P3OiGU{d%94#aV+7ilQ!;DkQaJzW%YAZgeKD@#94NZ$_%pm&q{Tj)omFB%mc5Z)q?KgvV+ +zFpceF^%v;g2Qh-&E*chy>5b*yeM#p|hbH|0)g&}95M^QpGjDPl +zwq$~03?dN>%>Ob8U-N?ziIQRrdOV1*jhZwR)4EH5pq9kG +zduKv$iiXB0ZQ3kLGXWA)C0H|P)dC$flhO{vKSTRt?S{0Kpb3rYJg#Eu1UY!-jSQoBde9P|1NddcXZhI#xuUuhCTDIbggCV*K2d1vDvjrw(p$S +zy6@_93s5?rn}C{Q@ua@5vEA^(hS;cPGivU$?3ZhD6PYE=YTBpf=F{Wx7n1BiEIM2> +zJ5tlAWc-clh;I!Ht!CPqJCnnnV`-1&S*>cf6jw)C&D*Rdt}uV|c+Oa62T!!-=Ce!g +zQw`sov2~rI`|neq^{s=FGtA$bdnT9x_lZD-yO3~#Hd`R1~|51H=+<~yzV?t=;+ +zSMfDlvQA|!>!9~p)gU!zG@+GcBdtmOxqEXH*>QL8y*o2MJtwxjaJTUc8Wwh!VqpD<$X+*uM-;>INKq|Tv_myC)A?*mR6n2z +zL1xT!MYRbggqc3`NK`wd3pX=uraP)1)&vP$%k!hC@v<%yMa9VNXM(e4?phO|N@n9*JOgdx0Y2vGW(CLCtM>)8Jt-ftH*?!3;O*I(D+ynfAPnlUGg +z>y)s^Xy1iLMb@P-Bw@RV=W_*V?KWaX%Nv1`BYNx>MT@qN1Vdz!s!t|`mkO1 +zzL)miqh@YD#e63-z7xZ~lUfXYldiQq&F%WiVza8tDthDiuovwGmCfxa4pC2NTUEvI +z$Eiip4aYVA?1;Y=qFkeP`zf7k9Pz!K@$K1nRVOcB6z<8*59Z!W<=!94olfQS@!a6r +z16K$C=`hi#gE`BymWJYosoW^oZ3nInarVpi|D?9>t?h{O$=XL}cL+tx^K|Xb<0+c# +ztsOl1giw6a3(9vze1pR`E$ACg`*l +zoE;@a#d^r{G&-{`%M*`sTCW|dEL8CJd_Oh+;?f(|M1o!1WG@`OLG$Rl>Za?h$Csz5 +z-qun(^tc^*0xmPla|bz!!SNg!yvrfn4K`!1o`lx}EAIV~mX?bL^-vsSb +zJ9Hta8YL;Nmx4`t$qs!URB8B17I!1EukDa!hXp&lOs-2_!frc!vs~AU*##1p#R1a} +zui(E1InbL2oea68n`N;V{JY8A4wwtK)GPf343 +zy3LoWN|tdY+%MvB_g2V(&H0K%$RY{3Zr~Cb2yBN)o6DP`pePG=c*A1nS5Qz=(-opkJL0OT+v}t)IMK2U3Q8y=_F(ri+f~r=s!<|8q +znNmZ>LbfZh*x_EXE(LV>w$lzbK!@dZYw~$8pyjDbL=P{6HU4XmR|Ke0q>{2viNll}U+iu9*c@%0l&lPn*_$lN=7W+)nCPhccOH_=zWYyQB +zT9oLW73ad~N+JhPHYu965HNZmbdpL$Rp!|kgYOiUll)QM2I!3NOLAR5LlklktAPzykIR&s6+&ZO9VRdiRcflM7*;^N;Z)a +zYz(XidA*fTx(i1K3yF9)j}3k#nmVdealM&n*npn;7(P|~oTJEA)~ArT3Nf*!qm&Rg +zn2A*nT;U$?<$k~zqDY7xP_xmZ5_++cC6p6mSmU6h8q#7dt%4 +zVbI0EP6t-$Y`G_hV9@DqNv)hxI*2&(l}@9h2>8&<$w5h=OF$y|{jT2ixMYe0915z|31t8aJ +zNrgdzwHEh4()pB>Od%*5=G0;=uLeOEhy&C>sizhLeh8c6by&;`)pa+FULlA&Ex0eeVgs?hCSO>Ac +zq6;nj63-6+H|fYD9DdbN%!HW|nF;L8^Sw-90$r7u-s8TsVcDm4Irpow6M!#-{sDKM0GE}%-oQO3|bRm1|$2IEGF +z-$}f^5!L`e&_(rKCN+r34hIz}~3Oj`Frl`KPEGb&9ThzN09UoJ-iEJw|yF{&gE9Rh< +zw5J^k>j +f&n(kblTbI5FxiNEW+NuzCX=p`GF=e_?w6<1hnM+hTY_4*!YB*JO7A$4OQ?9kYLhBIE)-s@E +zrNib5kYoi!QeLHkPf4PpYf(jm9$ZjewL(N&yrNZGqM|_^BFb|h$CRf+Yge(>jy$dH +znOa*@w05Ov?TFXf9;LN4RBKnL){X$J?cQ2j-L!VOY3*>-+HRv&%4H65n@WX)u|&mG +VW66q{#tkQdHvfB2|F_ZLKL8w~mAC)^ + +literal 0 +HcmV?d00001 + +diff --git a/src/audio/external.c b/src/audio/external.c +index eb5c3d7..4d9dbe6 100644 +--- a/src/audio/external.c ++++ b/src/audio/external.c +@@ -312,6 +312,9 @@ u8 sBackgroundMusicDefaultVolume[] = { + 70, // SEQ_EVENT_CUTSCENE_ENDING + 65, // SEQ_MENU_FILE_SELECT + 0, // SEQ_EVENT_CUTSCENE_LAKITU (not in JP) ++ 75, ++ 65, ++ 70, + }; + + STATIC_ASSERT(ARRAY_COUNT(sBackgroundMusicDefaultVolume) == SEQ_COUNT, +diff --git a/src/audio/external.c.rej b/src/audio/external.c.rej +new file mode 100644 +index 0000000..09a51c9 +--- /dev/null ++++ b/src/audio/external.c.rej +@@ -0,0 +1,11 @@ ++diff a/src/audio/external.c b/src/audio/external.c (rejected hunks) ++@@ -312,6 +312,9 @@ u8 sBackgroundMusicDefaultVolume[] = { ++ 70, // SEQ_EVENT_CUTSCENE_ENDING ++ 65, // SEQ_MENU_FILE_SELECT ++ 0, // SEQ_EVENT_CUTSCENE_LAKITU (not in JP) +++ 75, +++ 65, +++ 70, ++ }; ++ ++ STATIC_ASSERT(ARRAY_COUNT(sBackgroundMusicDefaultVolume) == SEQ_COUNT, +diff --git a/src/audio/external.h b/src/audio/external.h +index ea33ceb..fc81a61 100644 +--- a/src/audio/external.h ++++ b/src/audio/external.h +@@ -59,6 +59,7 @@ void play_peachs_jingle(void); + void play_puzzle_jingle(void); + void play_star_fanfare(void); + void play_power_star_jingle(u8 arg0); ++void play_emerald_jingle(u8 arg0); + void play_race_fanfare(void); + void play_toads_jingle(void); + void sound_reset(u8 presetId); +diff --git a/src/audio/external.h.rej b/src/audio/external.h.rej +new file mode 100644 +index 0000000..ca432f1 +--- /dev/null ++++ b/src/audio/external.h.rej +@@ -0,0 +1,9 @@ ++diff a/src/audio/external.h b/src/audio/external.h (rejected hunks) ++@@ -59,6 +59,7 @@ void play_peachs_jingle(void); ++ void play_puzzle_jingle(void); ++ void play_star_fanfare(void); ++ void play_power_star_jingle(u8 arg0); +++void play_emerald_jingle(u8 arg0); ++ void play_race_fanfare(void); ++ void play_toads_jingle(void); ++ void sound_reset(u8 presetId); +diff --git a/src/game/behavior_actions.h b/src/game/behavior_actions.h +index d068492..d043a3a 100644 +--- a/src/game/behavior_actions.h ++++ b/src/game/behavior_actions.h +@@ -3,6 +3,7 @@ + + void spawn_mist_particles_variable(s32 count, s32 offsetY, f32 size); + void bhv_spawn_star_no_level_exit(u32); ++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col); + void bhv_star_door_loop_2(void); + void spawn_triangle_break_particles(s16 numTris, s16 triModel, f32 triSize, s16 triAnimState); + +@@ -551,6 +552,10 @@ void bhv_intro_scene_loop(void); + void bhv_dust_smoke_loop(void); + void bhv_yoshi_loop(void); + void bhv_volcano_trap_loop(void); ++void bhv_reticle_init(void); ++void bhv_reticle_update(void); ++void bhv_emerald_circle_init(void); ++void bhv_emerald_circle_loop(void); + + Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); + +diff --git a/src/game/behavior_actions.h.rej b/src/game/behavior_actions.h.rej +new file mode 100644 +index 0000000..8c565ac +--- /dev/null ++++ b/src/game/behavior_actions.h.rej +@@ -0,0 +1,20 @@ ++diff a/src/game/behavior_actions.h b/src/game/behavior_actions.h (rejected hunks) ++@@ -3,6 +3,7 @@ ++ ++ void spawn_mist_particles_variable(s32 count, s32 offsetY, f32 size); ++ void bhv_spawn_star_no_level_exit(u32); +++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col); ++ void bhv_star_door_loop_2(void); ++ void spawn_triangle_break_particles(s16 numTris, s16 triModel, f32 triSize, s16 triAnimState); ++ ++@@ -551,6 +552,10 @@ void bhv_intro_scene_loop(void); ++ void bhv_dust_smoke_loop(void); ++ void bhv_yoshi_loop(void); ++ void bhv_volcano_trap_loop(void); +++void bhv_reticle_init(void); +++void bhv_reticle_update(void); +++void bhv_emerald_circle_init(void); +++void bhv_emerald_circle_loop(void); ++ ++ Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); ++ +diff --git a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c +index 32c0189..0c9da5e 100644 +--- a/src/game/behaviors/boo.inc.c ++++ b/src/game/behaviors/boo.inc.c +@@ -357,7 +357,11 @@ static void boo_chase_mario(f32 a0, s16 a1, f32 a2) { + } + + cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, a2); +- ++ //boo sonic fix ++ if (o->oForwardVel >= 10.0f) ++ { ++ o->oForwardVel = 10.0f; ++ } + if (o->oForwardVel != 0.0f) { + boo_oscillate(FALSE); + } +diff --git a/src/game/behaviors/boo.inc.c.rej b/src/game/behaviors/boo.inc.c.rej +new file mode 100644 +index 0000000..999e018 +--- /dev/null ++++ b/src/game/behaviors/boo.inc.c.rej +@@ -0,0 +1,14 @@ ++diff a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c (rejected hunks) ++@@ -357,7 +357,11 @@ static void boo_chase_mario(f32 a0, s16 a1, f32 a2) { ++ } ++ ++ cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, a2); ++- +++ //boo sonic fix +++ if (o->oForwardVel >= 10.0f) +++ { +++ o->oForwardVel = 10.0f; +++ } ++ if (o->oForwardVel != 0.0f) { ++ boo_oscillate(FALSE); ++ } +diff --git a/src/game/behaviors/breakable_box.inc.c b/src/game/behaviors/breakable_box.inc.c +index f46954c..52426d6 100644 +--- a/src/game/behaviors/breakable_box.inc.c ++++ b/src/game/behaviors/breakable_box.inc.c +@@ -1,6 +1,27 @@ + // breakable_box.c.inc ++struct ObjectHitbox sBreakableBoxHitboxSlide = { ++ /* interactType: */ INTERACT_BREAKABLE, ++ /* downOffset: */ 20, ++ /* damageOrCoinValue: */ 0, ++ /* health: */ 1, ++ /* numLootCoins: */ 0, ++ /* radius: */ 150, ++ /* height: */ 200, ++ /* hurtboxRadius: */ 150, ++ /* hurtboxHeight: */ 200, ++}; + + void bhv_breakable_box_loop(void) { ++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) ++ { ++ ++ load_object_collision_model(); ++ } ++ else if (gMarioState->forwardVel < 20.0f) ++ { ++ load_object_collision_model(); ++ } ++ + obj_set_hitbox(o, &sBreakableBoxHitbox); + cur_obj_set_model(MODEL_BREAKABLE_BOX_SMALL); + if (o->oTimer == 0) +diff --git a/src/game/behaviors/breakable_box.inc.c.rej b/src/game/behaviors/breakable_box.inc.c.rej +new file mode 100644 +index 0000000..e001d81 +--- /dev/null ++++ b/src/game/behaviors/breakable_box.inc.c.rej +@@ -0,0 +1,29 @@ ++diff a/src/game/behaviors/breakable_box.inc.c b/src/game/behaviors/breakable_box.inc.c (rejected hunks) ++@@ -1,6 +1,27 @@ ++ // breakable_box.c.inc +++struct ObjectHitbox sBreakableBoxHitboxSlide = { +++ /* interactType: */ INTERACT_BREAKABLE, +++ /* downOffset: */ 20, +++ /* damageOrCoinValue: */ 0, +++ /* health: */ 1, +++ /* numLootCoins: */ 0, +++ /* radius: */ 150, +++ /* height: */ 200, +++ /* hurtboxRadius: */ 150, +++ /* hurtboxHeight: */ 200, +++}; ++ ++ void bhv_breakable_box_loop(void) { +++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) +++ { +++ +++ load_object_collision_model(); +++ } +++ else if (gMarioState->forwardVel < 20.0f) +++ { +++ load_object_collision_model(); +++ } +++ ++ obj_set_hitbox(o, &sBreakableBoxHitbox); ++ cur_obj_set_model(MODEL_BREAKABLE_BOX_SMALL); ++ if (o->oTimer == 0) +diff --git a/src/game/behaviors/celebration_star.inc.c b/src/game/behaviors/celebration_star.inc.c +index 85f8964..986c62c 100644 +--- a/src/game/behaviors/celebration_star.inc.c ++++ b/src/game/behaviors/celebration_star.inc.c +@@ -1,6 +1,8 @@ + // celebration_star.c.inc + + void bhv_celebration_star_init(void) { ++ u8 curcoinstar; ++ curcoinstar = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); + o->oHomeX = gMarioObject->header.gfx.pos[0]; + o->oPosY = gMarioObject->header.gfx.pos[1] + 30.0f; + o->oHomeZ = gMarioObject->header.gfx.pos[2]; +@@ -14,11 +16,28 @@ void bhv_celebration_star_init(void) { + cur_obj_scale(0.1f); + o->oCelebStarUnkF4 = 1; + } else { +- o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; +- o->oFaceAnglePitch = 0; +- o->oFaceAngleRoll = 0; +- cur_obj_scale(0.4f); +- o->oCelebStarUnkF4 = 0; ++ if (curcoinstar != gMarioState->hasEmerald && gMarioState->coinstartotal < 8) ++ { ++ ++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_EMERALD]; ++ o->oAnimState = gMarioState->coinstartotal - 1; ++ o->oFaceAnglePitch = 0; ++ o->oFaceAngleRoll = 0; ++ cur_obj_scale(0.4f); ++ o->oCelebStarUnkF4 = 0; ++ gMarioState->hasEmerald = curcoinstar; ++ } ++ else ++ { ++ ++ ++ ++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; ++ o->oFaceAnglePitch = 0; ++ o->oFaceAngleRoll = 0; ++ cur_obj_scale(0.4f); ++ o->oCelebStarUnkF4 = 0; ++ } + } + #else + o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; +diff --git a/src/game/behaviors/celebration_star.inc.c.rej b/src/game/behaviors/celebration_star.inc.c.rej +new file mode 100644 +index 0000000..877528e +--- /dev/null ++++ b/src/game/behaviors/celebration_star.inc.c.rej +@@ -0,0 +1,44 @@ ++diff a/src/game/behaviors/celebration_star.inc.c b/src/game/behaviors/celebration_star.inc.c (rejected hunks) ++@@ -1,6 +1,8 @@ ++ // celebration_star.c.inc ++ ++ void bhv_celebration_star_init(void) { +++ u8 curcoinstar; +++ curcoinstar = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); ++ o->oHomeX = gMarioObject->header.gfx.pos[0]; ++ o->oPosY = gMarioObject->header.gfx.pos[1] + 30.0f; ++ o->oHomeZ = gMarioObject->header.gfx.pos[2]; ++@@ -14,11 +16,28 @@ void bhv_celebration_star_init(void) { ++ cur_obj_scale(0.1f); ++ o->oCelebStarUnkF4 = 1; ++ } else { ++- o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; ++- o->oFaceAnglePitch = 0; ++- o->oFaceAngleRoll = 0; ++- cur_obj_scale(0.4f); ++- o->oCelebStarUnkF4 = 0; +++ if (curcoinstar != gMarioState->hasEmerald && gMarioState->coinstartotal < 8) +++ { +++ +++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_EMERALD]; +++ o->oAnimState = gMarioState->coinstartotal - 1; +++ o->oFaceAnglePitch = 0; +++ o->oFaceAngleRoll = 0; +++ cur_obj_scale(0.4f); +++ o->oCelebStarUnkF4 = 0; +++ gMarioState->hasEmerald = curcoinstar; +++ } +++ else +++ { +++ +++ +++ +++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; +++ o->oFaceAnglePitch = 0; +++ o->oFaceAngleRoll = 0; +++ cur_obj_scale(0.4f); +++ o->oCelebStarUnkF4 = 0; +++ } ++ } ++ #else ++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; +diff --git a/src/game/behaviors/emerald_circle.inc.c b/src/game/behaviors/emerald_circle.inc.c +new file mode 100644 +index 0000000..94ff137 +--- /dev/null ++++ b/src/game/behaviors/emerald_circle.inc.c +@@ -0,0 +1,40 @@ ++ ++ ++ ++void bhv_emerald_circle_init(void) { ++ o->header.gfx.scale[0] = 0.1f; ++ o->header.gfx.scale[1] = 0.1f; ++ o->header.gfx.scale[2] = 0.1f; ++ o->oTimer = 0; ++} ++ ++void bhv_emerald_circle_loop(void) { ++ o->oFaceAngleYaw += 0x900; ++ ++ if (o->oTimer < 20) ++ { ++ cur_obj_play_sound_1(SOUND_ENV_STAR); ++ } ++ if (o->oTimer < 30) ++ { ++ ++ if (o->header.gfx.scale[1] <= 0.8f) ++ { ++ o->header.gfx.scale[0] += 0.05f * o->oTimer; ++ o->header.gfx.scale[1] += 0.05f * o->oTimer; ++ o->header.gfx.scale[2] += 0.05f * o->oTimer; ++ } ++ } ++ else ++ { ++ o->header.gfx.scale[0] -= 0.1f; ++ o->header.gfx.scale[1] -= 0.1f; ++ o->header.gfx.scale[2] -= 0.1f; ++ if (o->header.gfx.scale[1] <= 0.3f) ++ { ++ mark_obj_for_deletion(o); ++ } ++ } ++} ++ ++ +diff --git a/src/game/behaviors/goomba.inc.c b/src/game/behaviors/goomba.inc.c +index 2dab2fe..30f622d 100644 +--- a/src/game/behaviors/goomba.inc.c ++++ b/src/game/behaviors/goomba.inc.c +@@ -140,8 +140,7 @@ static void goomba_begin_jump(void) { + */ + static void mark_goomba_as_dead(void) { + if (o->parentObj != o) { +- set_object_respawn_info_bits(o->parentObj, +- (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); ++ set_object_respawn_info_bits(o->parentObj,(o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); + + o->parentObj->oBehParams = + o->parentObj->oBehParams | (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) << 6; +diff --git a/src/game/behaviors/goomba.inc.c.rej b/src/game/behaviors/goomba.inc.c.rej +new file mode 100644 +index 0000000..a69401f +--- /dev/null ++++ b/src/game/behaviors/goomba.inc.c.rej +@@ -0,0 +1,11 @@ ++diff a/src/game/behaviors/goomba.inc.c b/src/game/behaviors/goomba.inc.c (rejected hunks) ++@@ -140,8 +140,7 @@ static void goomba_begin_jump(void) { ++ */ ++ static void mark_goomba_as_dead(void) { ++ if (o->parentObj != o) { ++- set_object_respawn_info_bits(o->parentObj, ++- (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); +++ set_object_respawn_info_bits(o->parentObj,(o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); ++ ++ o->parentObj->oBehParams = ++ o->parentObj->oBehParams | (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) << 6; +diff --git a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c +index 46d7ffc..7f91e89 100644 +--- a/src/game/behaviors/klepto.inc.c ++++ b/src/game/behaviors/klepto.inc.c +@@ -81,11 +81,9 @@ void bhv_klepto_init(void) { + o->oKleptoStartPosY = o->oPosY; + o->oKleptoStartPosZ = o->oPosZ; + +- if (save_file_get_flags() & SAVE_FLAG_CAP_ON_KLEPTO) { +- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; +- } else { ++ + o->oAction = KLEPTO_ACT_WAIT_FOR_MARIO; +- } ++ + } + } + +@@ -241,9 +239,7 @@ static void klepto_act_dive_at_mario(void) { + if (gMarioStates[0].action != ACT_SLEEPING + && !(gMarioStates[0].action & (ACT_FLAG_SHORT_HITBOX | ACT_FLAG_BUTT_OR_STOMACH_SLIDE)) + && o->oDistanceToMario < 200.0f && dy > 50.0f && dy < 90.0f) { +- if (mario_lose_cap_to_enemy(1)) { +- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; +- } ++ + } + } + } +diff --git a/src/game/behaviors/klepto.inc.c.rej b/src/game/behaviors/klepto.inc.c.rej +new file mode 100644 +index 0000000..57addf9 +--- /dev/null ++++ b/src/game/behaviors/klepto.inc.c.rej +@@ -0,0 +1,26 @@ ++diff a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c (rejected hunks) ++@@ -81,11 +81,9 @@ void bhv_klepto_init(void) { ++ o->oKleptoStartPosY = o->oPosY; ++ o->oKleptoStartPosZ = o->oPosZ; ++ ++- if (save_file_get_flags() & SAVE_FLAG_CAP_ON_KLEPTO) { ++- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; ++- } else { +++ ++ o->oAction = KLEPTO_ACT_WAIT_FOR_MARIO; ++- } +++ ++ } ++ } ++ ++@@ -241,9 +239,7 @@ static void klepto_act_dive_at_mario(void) { ++ if (gMarioStates[0].action != ACT_SLEEPING ++ && !(gMarioStates[0].action & (ACT_FLAG_SHORT_HITBOX | ACT_FLAG_BUTT_OR_STOMACH_SLIDE)) ++ && o->oDistanceToMario < 200.0f && dy > 50.0f && dy < 90.0f) { ++- if (mario_lose_cap_to_enemy(1)) { ++- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; ++- } +++ ++ } ++ } ++ } +diff --git a/src/game/behaviors/reticle.inc.c b/src/game/behaviors/reticle.inc.c +new file mode 100644 +index 0000000..faec5c7 +--- /dev/null ++++ b/src/game/behaviors/reticle.inc.c +@@ -0,0 +1,42 @@ ++ ++ ++void bhv_reticle_init(void) { ++ o->oHomeX = o->oPosX; ++ o->oHomeY = o->oPosY; ++ o->oHomeZ = o->oPosZ; ++ o->oGravity = 0; ++ o->oFriction = 1.0; ++ o->oBuoyancy = 1.0; ++ o->header.gfx.scale[1] = 2.0f; ++ o->parentObj = gMarioState->homingObj; ++} ++ ++void bhv_reticle_update(void) { ++ ++ if (gMarioState->homingObj != NULL) ++ { ++ o->header.gfx.scale[1] -= 0.2f; ++ o->oPosX = gMarioState->homingObj->oPosX; ++ o->oPosY = gMarioState->homingObj->oPosY; ++ o->oPosZ = gMarioState->homingObj->oPosZ; ++ if (o->header.gfx.scale[1] <= 0.9f) ++ { ++ o->header.gfx.scale[1] = 0.9f; ++ } ++ cur_obj_scale(o->header.gfx.scale[1]); ++ } ++ else ++ { ++ obj_mark_for_deletion(o); ++ } ++ if (o->parentObj != gMarioState->homingObj) ++ { ++ obj_mark_for_deletion(o); ++ } ++ ++ if (!(gMarioState->action & ACT_FLAG_AIR)) ++ { ++ obj_mark_for_deletion(o); ++ } ++} ++ +diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c +index b660870..46f2c0a 100644 +--- a/src/game/behaviors/sparkle_spawn_star.inc.c ++++ b/src/game/behaviors/sparkle_spawn_star.inc.c +@@ -111,7 +111,18 @@ void bhv_spawned_star_loop(void) { + } + + void bhv_spawn_star_no_level_exit(u32 sp20) { ++ + struct Object *sp1C = spawn_object(o, MODEL_STAR, bhvSpawnedStarNoLevelExit); ++ ++ sp1C->oBehParams = sp20 << 24; ++ sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; ++ obj_set_angle(sp1C, 0, 0, 0); ++} ++ ++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col) { ++ ++ struct Object* sp1C = spawn_object(o, MODEL_EMERALD, bhvSpawnedStarNoLevelExit); ++ sp1C->oAnimState = col; + sp1C->oBehParams = sp20 << 24; + sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; + obj_set_angle(sp1C, 0, 0, 0); +diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c.rej b/src/game/behaviors/sparkle_spawn_star.inc.c.rej +new file mode 100644 +index 0000000..5d7a373 +--- /dev/null ++++ b/src/game/behaviors/sparkle_spawn_star.inc.c.rej +@@ -0,0 +1,20 @@ ++diff a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c (rejected hunks) ++@@ -111,7 +111,18 @@ void bhv_spawned_star_loop(void) { ++ } ++ ++ void bhv_spawn_star_no_level_exit(u32 sp20) { +++ ++ struct Object *sp1C = spawn_object(o, MODEL_STAR, bhvSpawnedStarNoLevelExit); +++ +++ sp1C->oBehParams = sp20 << 24; +++ sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; +++ obj_set_angle(sp1C, 0, 0, 0); +++} +++ +++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col) { +++ +++ struct Object* sp1C = spawn_object(o, MODEL_EMERALD, bhvSpawnedStarNoLevelExit); +++ sp1C->oAnimState = col; ++ sp1C->oBehParams = sp20 << 24; ++ sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; ++ obj_set_angle(sp1C, 0, 0, 0); +diff --git a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c +index 9a194a5..b09a679 100644 +--- a/src/game/behaviors/spawn_star.inc.c ++++ b/src/game/behaviors/spawn_star.inc.c +@@ -15,6 +15,8 @@ static struct ObjectHitbox sCollectStarHitbox = { + void bhv_collect_star_init(void) { + s8 starId; + u8 currentLevelStarFlags; ++ ++ + + starId = (o->oBehParams >> 24) & 0xFF; + currentLevelStarFlags = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1); +diff --git a/src/game/behaviors/spawn_star.inc.c.rej b/src/game/behaviors/spawn_star.inc.c.rej +new file mode 100644 +index 0000000..b87b81e +--- /dev/null ++++ b/src/game/behaviors/spawn_star.inc.c.rej +@@ -0,0 +1,10 @@ ++diff a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c (rejected hunks) ++@@ -15,6 +15,8 @@ static struct ObjectHitbox sCollectStarHitbox = { ++ void bhv_collect_star_init(void) { ++ s8 starId; ++ u8 currentLevelStarFlags; +++ +++ ++ ++ starId = (o->oBehParams >> 24) & 0xFF; ++ currentLevelStarFlags = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1); +diff --git a/src/game/behaviors/switch_hidden_objects.inc.c b/src/game/behaviors/switch_hidden_objects.inc.c +index e159700..5524d91 100644 +--- a/src/game/behaviors/switch_hidden_objects.inc.c ++++ b/src/game/behaviors/switch_hidden_objects.inc.c +@@ -58,7 +58,15 @@ void hidden_breakable_box_actions(void) { + o->oAction++; + cur_obj_play_sound_2(SOUND_GENERAL_BREAK_BOX); + } +- load_object_collision_model(); ++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) ++ { ++ ++ load_object_collision_model(); ++ } ++ else if (gMarioState->forwardVel < 20.0f) ++ { ++ load_object_collision_model(); ++ } + } else { + cur_obj_become_intangible(); + cur_obj_disable_rendering(); +diff --git a/src/game/behaviors/switch_hidden_objects.inc.c.rej b/src/game/behaviors/switch_hidden_objects.inc.c.rej +new file mode 100644 +index 0000000..634102b +--- /dev/null ++++ b/src/game/behaviors/switch_hidden_objects.inc.c.rej +@@ -0,0 +1,18 @@ ++diff a/src/game/behaviors/switch_hidden_objects.inc.c b/src/game/behaviors/switch_hidden_objects.inc.c (rejected hunks) ++@@ -58,7 +58,15 @@ void hidden_breakable_box_actions(void) { ++ o->oAction++; ++ cur_obj_play_sound_2(SOUND_GENERAL_BREAK_BOX); ++ } ++- load_object_collision_model(); +++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) +++ { +++ +++ load_object_collision_model(); +++ } +++ else if (gMarioState->forwardVel < 20.0f) +++ { +++ load_object_collision_model(); +++ } ++ } else { ++ cur_obj_become_intangible(); ++ cur_obj_disable_rendering(); +diff --git a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c +index 2e6ce83..1c3795c 100644 +--- a/src/game/behaviors/ukiki.inc.c ++++ b/src/game/behaviors/ukiki.inc.c +@@ -28,9 +28,7 @@ void handle_cap_ukiki_reset(void) { + */ + s32 is_cap_ukiki_and_mario_has_normal_cap_on_head(void) { + if (o->oBehParams2ndByte == UKIKI_CAP) { +- if (does_mario_have_normal_cap_on_head(gMarioState)) { +- return TRUE; +- } ++ + } + + return FALSE; +diff --git a/src/game/behaviors/ukiki.inc.c.rej b/src/game/behaviors/ukiki.inc.c.rej +new file mode 100644 +index 0000000..bff3c8b +--- /dev/null ++++ b/src/game/behaviors/ukiki.inc.c.rej +@@ -0,0 +1,12 @@ ++diff a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c (rejected hunks) ++@@ -28,9 +28,7 @@ void handle_cap_ukiki_reset(void) { ++ */ ++ s32 is_cap_ukiki_and_mario_has_normal_cap_on_head(void) { ++ if (o->oBehParams2ndByte == UKIKI_CAP) { ++- if (does_mario_have_normal_cap_on_head(gMarioState)) { ++- return TRUE; ++- } +++ ++ } ++ ++ return FALSE; +diff --git a/src/game/camera.c b/src/game/camera.c +index 2ae110c..d6e6d01 100644 +--- a/src/game/camera.c ++++ b/src/game/camera.c +@@ -6364,6 +6364,9 @@ struct CameraTrigger sCamBBH[] = { + * + * Each table is terminated with NULL_TRIGGER + */ ++struct CameraTrigger sCamCastleGrounds[] = { ++ NULL_TRIGGER ++}; + struct CameraTrigger *sCameraTriggers[LEVEL_COUNT + 1] = { + NULL, + #include "levels/level_defines.h" +@@ -10798,26 +10801,26 @@ u8 sDanceCutsceneIndexTable[][4] = { + * and if the result is non-zero, the camera will zoom out. + */ + u8 sZoomOutAreaMasks[] = { +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // BBH | CCM +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // CASTLE_INSIDE | HMC +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SSL | BOB +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SL | WDW +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,1,0,0), // JRB | THI +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // TTC | RR +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // CASTLE_GROUNDS | BITDW +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // VCUTM | BITFS +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // SA | BITS +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // LLL | DDD +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // WF | ENDING +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // COURTYARD | PSS +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // COTMC | TOTWC +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // BOWSER_1 | WMOTR +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // Unused | BOWSER_2 +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // BOWSER_3 | Unused +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // TTM | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // BBH | CCM ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // CASTLE_INSIDE | HMC ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SSL | BOB ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SL | WDW ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 1, 0, 0), // JRB | THI ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // TTC | RR ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // CASTLE_GROUNDS | BITDW ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // VCUTM | BITFS ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // SA | BITS ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // LLL | DDD ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // WF | ENDING ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // COURTYARD | PSS ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // COTMC | TOTWC ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // BOWSER_1 | WMOTR ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // Unused | BOWSER_2 ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // BOWSER_3 | Unused ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // TTM | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused + }; + + STATIC_ASSERT(ARRAY_COUNT(sZoomOutAreaMasks) - 1 == LEVEL_MAX / 2, "Make sure you edit sZoomOutAreaMasks when adding / removing courses."); +diff --git a/src/game/camera.c.rej b/src/game/camera.c.rej +new file mode 100644 +index 0000000..63ea4e2 +--- /dev/null ++++ b/src/game/camera.c.rej +@@ -0,0 +1,58 @@ ++diff a/src/game/camera.c b/src/game/camera.c (rejected hunks) ++@@ -6364,6 +6364,9 @@ struct CameraTrigger sCamBBH[] = { ++ * ++ * Each table is terminated with NULL_TRIGGER ++ */ +++struct CameraTrigger sCamCastleGrounds[] = { +++ NULL_TRIGGER +++}; ++ struct CameraTrigger *sCameraTriggers[LEVEL_COUNT + 1] = { ++ NULL, ++ #include "levels/level_defines.h" ++@@ -10798,26 +10801,26 @@ u8 sDanceCutsceneIndexTable[][4] = { ++ * and if the result is non-zero, the camera will zoom out. ++ */ ++ u8 sZoomOutAreaMasks[] = { ++- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused ++- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // BBH | CCM ++- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // CASTLE_INSIDE | HMC ++- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SSL | BOB ++- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SL | WDW ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,1,0,0), // JRB | THI ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // TTC | RR ++- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // CASTLE_GROUNDS | BITDW ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // VCUTM | BITFS ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // SA | BITS ++- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // LLL | DDD ++- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // WF | ENDING ++- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // COURTYARD | PSS ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // COTMC | TOTWC ++- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // BOWSER_1 | WMOTR ++- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // Unused | BOWSER_2 ++- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // BOWSER_3 | Unused ++- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // TTM | Unused ++- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // BBH | CCM +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // CASTLE_INSIDE | HMC +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SSL | BOB +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SL | WDW +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 1, 0, 0), // JRB | THI +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // TTC | RR +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // CASTLE_GROUNDS | BITDW +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // VCUTM | BITFS +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // SA | BITS +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // LLL | DDD +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // WF | ENDING +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // COURTYARD | PSS +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // COTMC | TOTWC +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // BOWSER_1 | WMOTR +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // Unused | BOWSER_2 +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // BOWSER_3 | Unused +++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // TTM | Unused +++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused ++ }; ++ ++ STATIC_ASSERT(ARRAY_COUNT(sZoomOutAreaMasks) - 1 == LEVEL_MAX / 2, "Make sure you edit sZoomOutAreaMasks when adding / removing courses."); +diff --git a/src/game/crash.c b/src/game/crash.c +new file mode 100644 +index 0000000..716adfb +--- /dev/null ++++ b/src/game/crash.c +@@ -0,0 +1,260 @@ ++/* SM64 Crash Handler */ ++ ++#include ++ ++#include "crash.h" ++ ++extern u32 exceptionRegContext[]; ++ ++extern char *pAssertFile; ++extern int nAssertLine; ++extern char *pAssertExpression; ++extern int nAssertStopProgram; ++ ++u16 fbFillColor = 0xFFFF; ++u16 fbShadeColor = 0x0000; ++u16 *fbAddress = NULL; ++ ++extern u8 crashFont[]; ++ ++const char *szErrCodes[] = { ++ "INTERRUPT", ++ "TLB MOD", ++ "UNMAPPED LOAD ADDR", ++ "UNMAPPED STORE ADDR", ++ "BAD LOAD ADDR", ++ "BAD STORE ADDR", ++ "BUS ERR ON INSTR FETCH", ++ "BUS ERR ON LOADSTORE", ++ "SYSCALL", ++ "BREAKPOINT", ++ "UNKNOWN INSTR", ++ "COP UNUSABLE", ++ "ARITHMETIC OVERFLOW", ++ "TRAP EXC", ++ "VIRTUAL COHERENCY INSTR", ++ "FLOAT EXC", ++}; ++ ++const char *szGPRegisters1[] = { "R0", "AT", "V0", "V1", "A0", "A1", "A2", "A3", ++ "T0", "T1", "T2", "T3", "T4", "T5", "T6", NULL }; ++ ++const char *szGPRegisters2[] = { "T7", "S0", "S1", "S2", "S3", "S4", ++ "S5", "S6", "S7", "T8", "T9", /*"K0", "K1",*/ ++ "GP", "SP", "FP", "RA", NULL }; ++ ++int crash_strlen(char *str) { ++ int len = 0; ++ while (*str++) { ++ len++; ++ } ++ return len; ++} ++ ++void show_crash_screen_and_hang(void) { ++ u32 cause; ++ u32 epc; ++ u8 errno; ++ ++ fb_set_address((void *) (*(u32 *) 0xA4400004 | 0x80000000)); // replace me ++ ++ cause = cop0_get_cause(); ++ epc = cop0_get_epc(); ++ ++ errno = (cause >> 2) & 0x1F; ++ ++ if (nAssertStopProgram == 0) { ++ fbFillColor = 0x6253; ++ fb_fill(10, 10, 300, 220); ++ ++ fb_print_str(80, 20, "AN ERROR HAS OCCURRED!"); ++ fb_print_int_hex(80, 30, errno, 8); ++ fb_print_str(95, 30, szErrCodes[errno]); ++ ++ if (errno >= 2 && errno <= 5) { ++ /* ++ 2 UNMAPPED LOAD ADDR ++ 3 UNMAPPED STORE ADDR ++ 4 BAD LOAD ADDR ++ 5 BAD STORE ADDR ++ */ ++ u32 badvaddr = cop0_get_badvaddr(); ++ ++ fb_print_str(145, 50, "VA"); ++ fb_print_int_hex(160, 50, badvaddr, 32); ++ } ++ } else { ++ int afterFileX; ++ int exprBoxWidth; ++ fbFillColor = 0x5263; ++ fb_fill(10, 10, 300, 220); ++ ++ fb_print_str(80, 20, "ASSERTION FAILED!"); ++ ++ afterFileX = fb_print_str(80, 30, pAssertFile); ++ fb_print_str(afterFileX, 30, ":"); ++ fb_print_uint(afterFileX + 5, 30, nAssertLine); ++ ++ exprBoxWidth = (crash_strlen(pAssertExpression) * 5) + 2; ++ fbFillColor = 0x0001; ++ fb_fill(80 - 1, 40 - 1, exprBoxWidth, 10); ++ fb_print_str(80, 40, pAssertExpression); ++ } ++ ++ fb_print_str(80, 50, "PC"); ++ fb_print_int_hex(95, 50, epc, 32); ++ ++ fb_print_gpr_states(80, 70, szGPRegisters1, &exceptionRegContext[6 + 0]); ++ fb_print_gpr_states(145, 70, szGPRegisters2, &exceptionRegContext[6 + 15 * 2]); ++ ++ fb_swap(); ++ osWritebackDCacheAll(); ++ ++ while (1) // hang forever ++ { ++ UNUSED volatile int t = 0; // keep pj64 happy ++ } ++} ++ ++u8 ascii_to_idx(char c) { ++ return c - 0x20; ++} ++ ++void fb_set_address(void *address) { ++ fbAddress = (u16 *) address; ++} ++ ++void fb_swap() { ++ // update VI frame buffer register ++ // todo other registers ++ *(u32 *) (0xA4400004) = (u32) fbAddress & 0x00FFFFFF; ++} ++ ++void fb_fill(int baseX, int baseY, int width, int height) { ++ int y, x; ++ ++ for (y = baseY; y < baseY + height; y++) { ++ for (x = baseX; x < baseX + width; x++) { ++ fbAddress[y * 320 + x] = fbFillColor; ++ } ++ } ++} ++ ++void fb_draw_char(int x, int y, u8 idx) { ++ u16 *out = &fbAddress[y * 320 + x]; ++ const u8 *in = &crashFont[idx * 3]; ++ int nbyte; ++ int nrow; ++ int ncol; ++ ++ for (nbyte = 0; nbyte < 3; nbyte++) { ++ u8 curbyte = in[nbyte]; ++ for (nrow = 0; nrow < 2; nrow++) { ++ for (ncol = 0; ncol < 4; ncol++) { ++ u8 px = curbyte & (1 << (7 - (nrow * 4 + ncol))); ++ if (px != 0) { ++ out[ncol] = fbFillColor; ++ } ++ } ++ out += 320; ++ } ++ } ++} ++ ++void fb_draw_char_shaded(int x, int y, u8 idx) { ++ fbFillColor = 0x0001; ++ fb_draw_char(x - 1, y + 1, idx); ++ ++ fbFillColor = 0xFFFF; ++ fb_draw_char(x, y, idx); ++} ++ ++int fb_print_str(int x, int y, const char *str) { ++ while (1) { ++ int yoffs = 0; ++ u8 idx; ++ char c = *str++; ++ ++ if (c == '\0') { ++ break; ++ } ++ ++ if (c == ' ') { ++ x += 5; ++ continue; ++ } ++ ++ switch (c) { ++ case 'j': ++ case 'g': ++ case 'p': ++ case 'q': ++ case 'y': ++ case 'Q': ++ yoffs = 1; ++ break; ++ case ',': ++ yoffs = 2; ++ break; ++ } ++ ++ idx = ascii_to_idx(c); ++ fb_draw_char_shaded(x, y + yoffs, idx); ++ x += 5; ++ } ++ ++ return x; ++} ++ ++void fb_print_int_hex(int x, int y, u32 value, int nbits) { ++ nbits -= 4; ++ ++ while (nbits >= 0) { ++ int nib = ((value >> nbits) & 0xF); ++ u8 idx; ++ ++ if (nib > 9) { ++ idx = ('A' - 0x20) + (nib - 0xa); ++ } else { ++ idx = ('0' - 0x20) + nib; ++ } ++ ++ fb_draw_char_shaded(x, y, idx); ++ x += 5; ++ ++ nbits -= 4; ++ } ++} ++ ++int fb_print_uint(int x, int y, u32 value) { ++ int nchars = 0; ++ ++ int v = value; ++ int i; ++ while (v /= 10) { ++ nchars++; ++ } ++ ++ x += nchars * 5; ++ ++ for (i = nchars; i >= 0; i--) { ++ fb_draw_char_shaded(x, y, ('0' - 0x20) + (value % 10)); ++ value /= 10; ++ x -= 5; ++ } ++ ++ return (x + nchars * 5); ++} ++ ++void fb_print_gpr_states(int x, int y, const char *regNames[], u32 *regContext) { ++ int i; ++ for (i = 0;; i++) { ++ if (regNames[i] == NULL) { ++ break; ++ } ++ ++ fb_print_str(x, y, regNames[i]); ++ fb_print_int_hex(x + 15, y, regContext[i * 2 + 1], 32); ++ y += 10; ++ } ++} +diff --git a/src/game/crash.h b/src/game/crash.h +new file mode 100644 +index 0000000..1386930 +--- /dev/null ++++ b/src/game/crash.h +@@ -0,0 +1,28 @@ ++#ifndef _CRASH_H_ ++#define _CRASH_H_ ++ ++#include ++ ++#define CRASH_SCREEN_INCLUDED 1 ++ ++extern u32 cop0_get_cause(void); ++extern u32 cop0_get_epc(void); ++extern u32 cop0_get_badvaddr(void); ++ ++extern void _n64_assert(const char* pFile, int nLine, const char *pExpression, int nStopProgram); ++ ++extern u8 __crash_handler_entry[]; ++ ++void show_crash_screen_and_hang(void); ++u8 ascii_to_idx(char c); ++void fb_set_address(void *address); ++void fb_swap(void); ++void fb_fill(int baseX, int baseY, int width, int height); ++void fb_draw_char(int x, int y, u8 idx); ++void fb_draw_char_shaded(int x, int y, u8 idx); ++int fb_print_str(int x, int y, const char *str); ++int fb_print_uint(int x, int y, u32 value); ++void fb_print_int_hex(int x, int y, u32 value, int nbits); ++void fb_print_gpr_states(int x, int y, const char* regStrs[], u32 *regContext); ++ ++#endif /* _CRASH_H_ */ +diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c +index 8190f88..9213eac 100644 +--- a/src/game/ingame_menu.c ++++ b/src/game/ingame_menu.c +@@ -22,6 +22,7 @@ + #include "sm64.h" + #include "text_strings.h" + #include "types.h" ++#include "macros.h" + + u16 gDialogColorFadeTimer; + s8 gLastDialogLineNum; +@@ -1656,6 +1657,7 @@ s16 gCutsceneMsgDuration = -1; + s16 gCutsceneMsgTimer = 0; + s8 gDialogCameraAngleIndex = CAM_SELECTION_MARIO; + s8 gDialogCourseActNum = 1; ++s8 gDialogHealthSystem = MARIO_HEALTH; + + #if defined(VERSION_JP) || defined(VERSION_SH) + #define DIAG_VAL1 20 +@@ -2596,8 +2598,32 @@ s32 gCourseDoneMenuTimer = 0; + s32 gCourseCompleteCoins = 0; + s8 gHudFlash = 0; + ++void change_dialog_mario_health(void) { ++ ++ if (gPlayer3Controller->buttonPressed & B_BUTTON) ++ { ++ play_sound(SOUND_MENU_CHANGE_SELECT, gGlobalSoundSource); ++ if (gDialogHealthSystem == SONIC_HEALTH) { ++ gDialogHealthSystem = MARIO_HEALTH; ++ } ++ else ++ { ++ gDialogHealthSystem = SONIC_HEALTH; ++ } ++ } ++} ++ ++ ++ ++ + s16 render_pause_courses_and_castle(void) { + s16 num; ++ ++ u8 textHealthMario[] = { TEXT_HEALTH_MARIO }; ++ u8 textHealthSonic[] = { TEXT_HEALTH_SONIC }; ++ ++ ++ change_dialog_mario_health(); + + #ifdef VERSION_EU + gInGameLanguage = eu_get_language(); +@@ -2635,7 +2661,7 @@ s16 render_pause_courses_and_castle(void) { + if (gPlayer3Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON)) + #else + if (gPlayer3Controller->buttonPressed & A_BUTTON +- || gPlayer3Controller->buttonPressed & START_BUTTON) ++ || gPlayer3Controller->buttonPressed & START_BUTTON) + #endif + { + level_set_transition(0, NULL); +@@ -2662,7 +2688,7 @@ s16 render_pause_courses_and_castle(void) { + if (gPlayer3Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON)) + #else + if (gPlayer3Controller->buttonPressed & A_BUTTON +- || gPlayer3Controller->buttonPressed & START_BUTTON) ++ || gPlayer3Controller->buttonPressed & START_BUTTON) + #endif + { + level_set_transition(0, NULL); +@@ -2679,6 +2705,19 @@ s16 render_pause_courses_and_castle(void) { + gDialogTextAlpha += 25; + } + ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); ++ print_generic_string(25, 170, textHealthMario); ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); ++ ++ } ++ if (gDialogHealthSystem == SONIC_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); ++ print_generic_string(25, 170, textHealthSonic); ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); ++ ++ } ++ + return 0; + } + +diff --git a/src/game/ingame_menu.c.rej b/src/game/ingame_menu.c.rej +new file mode 100644 +index 0000000..b25282a +--- /dev/null ++++ b/src/game/ingame_menu.c.rej +@@ -0,0 +1,70 @@ ++diff a/src/game/ingame_menu.c b/src/game/ingame_menu.c (rejected hunks) ++@@ -22,6 +22,7 @@ ++ #include "sm64.h" ++ #include "text_strings.h" ++ #include "types.h" +++#include "macros.h" ++ ++ u16 gDialogColorFadeTimer; ++ s8 gLastDialogLineNum; ++@@ -1656,6 +1657,7 @@ s16 gCutsceneMsgDuration = -1; ++ s16 gCutsceneMsgTimer = 0; ++ s8 gDialogCameraAngleIndex = CAM_SELECTION_MARIO; ++ s8 gDialogCourseActNum = 1; +++s8 gDialogHealthSystem = MARIO_HEALTH; ++ ++ #if defined(VERSION_JP) || defined(VERSION_SH) ++ #define DIAG_VAL1 20 ++@@ -2596,8 +2598,32 @@ s32 gCourseDoneMenuTimer = 0; ++ s32 gCourseCompleteCoins = 0; ++ s8 gHudFlash = 0; ++ +++void change_dialog_mario_health(void) { +++ +++ if (gPlayer3Controller->buttonPressed & B_BUTTON) +++ { +++ play_sound(SOUND_MENU_CHANGE_SELECT, gGlobalSoundSource); +++ if (gDialogHealthSystem == SONIC_HEALTH) { +++ gDialogHealthSystem = MARIO_HEALTH; +++ } +++ else +++ { +++ gDialogHealthSystem = SONIC_HEALTH; +++ } +++ } +++} +++ +++ +++ +++ ++ s16 render_pause_courses_and_castle(void) { ++ s16 num; +++ +++ u8 textHealthMario[] = { TEXT_HEALTH_MARIO }; +++ u8 textHealthSonic[] = { TEXT_HEALTH_SONIC }; +++ +++ +++ change_dialog_mario_health(); ++ ++ #ifdef VERSION_EU ++ gInGameLanguage = eu_get_language(); ++@@ -2679,6 +2705,19 @@ s16 render_pause_courses_and_castle(void) { ++ gDialogTextAlpha += 25; ++ } ++ +++ if (gDialogHealthSystem == MARIO_HEALTH) { +++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); +++ print_generic_string(25, 170, textHealthMario); +++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); +++ +++ } +++ if (gDialogHealthSystem == SONIC_HEALTH) { +++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); +++ print_generic_string(25, 170, textHealthSonic); +++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); +++ +++ } +++ ++ return 0; ++ } ++ +diff --git a/src/game/ingame_menu.h b/src/game/ingame_menu.h +index c68e37b..35e0f58 100644 +--- a/src/game/ingame_menu.h ++++ b/src/game/ingame_menu.h +@@ -27,10 +27,14 @@ + #define HUD_LUT_DIFF HUD_LUT_GLOBAL + #endif + +-#define RENDER_PAUSE_SCREEN 1 ++#define RENDER_PAUSE_SCREEN 1 + #define RENDER_COURSE_DONE_SCREEN 2 ++#define MARIO_HEALTH 1 ++#define SONIC_HEALTH 2 ++#define MARIO_HEALTH_SELECTED 0x02 ++#define SONIC_HEALTH_SELECTED 0x04 + +- ++extern s8 gDialogHealthSystem; + extern s8 gDialogCourseActNum; + extern s8 gHudFlash; + +diff --git a/src/game/ingame_menu.h.rej b/src/game/ingame_menu.h.rej +new file mode 100644 +index 0000000..143f810 +--- /dev/null ++++ b/src/game/ingame_menu.h.rej +@@ -0,0 +1,18 @@ ++diff a/src/game/ingame_menu.h b/src/game/ingame_menu.h (rejected hunks) ++@@ -27,10 +27,14 @@ ++ #define HUD_LUT_DIFF HUD_LUT_GLOBAL ++ #endif ++ ++-#define RENDER_PAUSE_SCREEN 1 +++#define RENDER_PAUSE_SCREEN 1 ++ #define RENDER_COURSE_DONE_SCREEN 2 +++#define MARIO_HEALTH 1 +++#define SONIC_HEALTH 2 +++#define MARIO_HEALTH_SELECTED 0x02 +++#define SONIC_HEALTH_SELECTED 0x04 ++ ++- +++extern s8 gDialogHealthSystem; ++ extern s8 gDialogCourseActNum; ++ extern s8 gHudFlash; ++ +diff --git a/src/game/interaction.c b/src/game/interaction.c +index 1ae0b24..138a4f8 100644 +--- a/src/game/interaction.c ++++ b/src/game/interaction.c +@@ -23,6 +23,7 @@ + #include "sm64.h" + #include "sound_init.h" + #include "rumble_init.h" ++#include "game/ingame_menu.h" + + #define INT_GROUND_POUND_OR_TWIRL (1 << 0) // 0x01 + #define INT_PUNCH (1 << 1) // 0x02 +@@ -46,39 +47,39 @@ + + u8 sDelayInvincTimer; + s16 sInvulnerable; +-u32 interact_coin(struct MarioState *, u32, struct Object *); +-u32 interact_water_ring(struct MarioState *, u32, struct Object *); +-u32 interact_star_or_key(struct MarioState *, u32, struct Object *); +-u32 interact_bbh_entrance(struct MarioState *, u32, struct Object *); +-u32 interact_warp(struct MarioState *, u32, struct Object *); +-u32 interact_warp_door(struct MarioState *, u32, struct Object *); +-u32 interact_door(struct MarioState *, u32, struct Object *); +-u32 interact_cannon_base(struct MarioState *, u32, struct Object *); +-u32 interact_igloo_barrier(struct MarioState *, u32, struct Object *); +-u32 interact_tornado(struct MarioState *, u32, struct Object *); +-u32 interact_whirlpool(struct MarioState *, u32, struct Object *); +-u32 interact_strong_wind(struct MarioState *, u32, struct Object *); +-u32 interact_flame(struct MarioState *, u32, struct Object *); +-u32 interact_snufit_bullet(struct MarioState *, u32, struct Object *); +-u32 interact_clam_or_bubba(struct MarioState *, u32, struct Object *); +-u32 interact_bully(struct MarioState *, u32, struct Object *); +-u32 interact_shock(struct MarioState *, u32, struct Object *); +-u32 interact_mr_blizzard(struct MarioState *, u32, struct Object *); +-u32 interact_hit_from_below(struct MarioState *, u32, struct Object *); +-u32 interact_bounce_top(struct MarioState *, u32, struct Object *); +-u32 interact_unknown_08(struct MarioState *, u32, struct Object *); +-u32 interact_damage(struct MarioState *, u32, struct Object *); +-u32 interact_breakable(struct MarioState *, u32, struct Object *); +-u32 interact_koopa_shell(struct MarioState *, u32, struct Object *); +-u32 interact_pole(struct MarioState *, u32, struct Object *); +-u32 interact_hoot(struct MarioState *, u32, struct Object *); +-u32 interact_cap(struct MarioState *, u32, struct Object *); +-u32 interact_grabbable(struct MarioState *, u32, struct Object *); +-u32 interact_text(struct MarioState *, u32, struct Object *); ++u32 interact_coin(struct MarioState*, u32, struct Object*); ++u32 interact_water_ring(struct MarioState*, u32, struct Object*); ++u32 interact_star_or_key(struct MarioState*, u32, struct Object*); ++u32 interact_bbh_entrance(struct MarioState*, u32, struct Object*); ++u32 interact_warp(struct MarioState*, u32, struct Object*); ++u32 interact_warp_door(struct MarioState*, u32, struct Object*); ++u32 interact_door(struct MarioState*, u32, struct Object*); ++u32 interact_cannon_base(struct MarioState*, u32, struct Object*); ++u32 interact_igloo_barrier(struct MarioState*, u32, struct Object*); ++u32 interact_tornado(struct MarioState*, u32, struct Object*); ++u32 interact_whirlpool(struct MarioState*, u32, struct Object*); ++u32 interact_strong_wind(struct MarioState*, u32, struct Object*); ++u32 interact_flame(struct MarioState*, u32, struct Object*); ++u32 interact_snufit_bullet(struct MarioState*, u32, struct Object*); ++u32 interact_clam_or_bubba(struct MarioState*, u32, struct Object*); ++u32 interact_bully(struct MarioState*, u32, struct Object*); ++u32 interact_shock(struct MarioState*, u32, struct Object*); ++u32 interact_mr_blizzard(struct MarioState*, u32, struct Object*); ++u32 interact_hit_from_below(struct MarioState*, u32, struct Object*); ++u32 interact_bounce_top(struct MarioState*, u32, struct Object*); ++u32 interact_unknown_08(struct MarioState*, u32, struct Object*); ++u32 interact_damage(struct MarioState*, u32, struct Object*); ++u32 interact_breakable(struct MarioState*, u32, struct Object*); ++u32 interact_koopa_shell(struct MarioState*, u32, struct Object*); ++u32 interact_pole(struct MarioState*, u32, struct Object*); ++u32 interact_hoot(struct MarioState*, u32, struct Object*); ++u32 interact_cap(struct MarioState*, u32, struct Object*); ++u32 interact_grabbable(struct MarioState*, u32, struct Object*); ++u32 interact_text(struct MarioState*, u32, struct Object*); + + struct InteractionHandler { + u32 interactType; +- u32 (*handler)(struct MarioState *, u32, struct Object *); ++ u32(*handler)(struct MarioState*, u32, struct Object*); + }; + + static struct InteractionHandler sInteractionHandlers[] = { +@@ -113,6 +114,7 @@ static struct InteractionHandler sInteractionHandlers[] = { + { INTERACT_CAP, interact_cap }, + { INTERACT_GRABBABLE, interact_grabbable }, + { INTERACT_TEXT, interact_text }, ++ + }; + + static u32 sForwardKnockbackActions[][3] = { +@@ -132,29 +134,31 @@ static u8 sJustTeleported = FALSE; + static u8 sPssSlideStarted = FALSE; + + /** +- * Returns the type of cap Mario is wearing. ++ * Returns the type of hat Mario is wearing. + */ +-u32 get_mario_cap_flag(struct Object *capObject) { +- const BehaviorScript *script = virtual_to_segmented(0x13, capObject->behavior); ++u32 get_mario_cap_flag(struct Object* capObject) { ++ void* script = virtual_to_segmented(0x13, capObject->behavior); + + if (script == bhvNormalCap) { + return MARIO_NORMAL_CAP; +- } else if (script == bhvMetalCap) { ++ } ++ else if (script == bhvMetalCap) { + return MARIO_METAL_CAP; +- } else if (script == bhvWingCap) { ++ } ++ else if (script == bhvWingCap) { + return MARIO_WING_CAP; +- } else if (script == bhvVanishCap) { ++ } ++ else if (script == bhvVanishCap) { + return MARIO_VANISH_CAP; + } + + return 0; + } +- + /** + * Returns true if the passed in object has a moving angle yaw + * in the angular range given towards Mario. + */ +-u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) { ++u32 object_facing_mario(struct MarioState* m, struct Object* o, s16 angleRange) { + f32 dx = m->pos[0] - o->oPosX; + f32 dz = m->pos[2] - o->oPosZ; + +@@ -168,7 +172,7 @@ u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) + return FALSE; + } + +-s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { ++s16 mario_obj_angle_to_object(struct MarioState* m, struct Object* o) { + f32 dx = o->oPosX - m->pos[0]; + f32 dz = o->oPosZ - m->pos[2]; + +@@ -179,7 +183,7 @@ s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { + * Determines Mario's interaction with a given object depending on their proximity, + * action, speed, and position. + */ +-u32 determine_interaction(struct MarioState *m, struct Object *o) { ++u32 determine_interaction(struct MarioState* m, struct Object* o) { + u32 interaction = 0; + u32 action = m->action; + +@@ -205,11 +209,13 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + interaction = INT_TRIP; + } + } +- } else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { ++ } ++ else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { + if (m->vel[1] < 0.0f) { + interaction = INT_GROUND_POUND_OR_TWIRL; + } +- } else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { ++ } ++ else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { + // Neither ground pounding nor twirling change Mario's vertical speed on landing., + // so the speed check is nearly always true (perhaps not if you land while going upwards?) + // Additionally, actionState it set on each first thing in their action, so this is +@@ -217,13 +223,19 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + if (m->vel[1] < 0.0f && m->actionState == 0) { + interaction = INT_GROUND_POUND_OR_TWIRL; + } +- } else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { +- interaction = INT_SLIDE_KICK; +- } else if (action & ACT_FLAG_RIDING_SHELL) { ++ } ++ else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else if (m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) { ++ ++ } ++ else if (action & ACT_FLAG_RIDING_SHELL || m->flags & MARIO_IS_SUPER) { + interaction = INT_FAST_ATTACK_OR_SHELL; + } ++ ++ else if ((m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) && action != ACT_DIVE) { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++ ++ } + } + + // Prior to this, the interaction type could be overwritten. This requires, however, +@@ -234,50 +246,58 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + if (m->pos[1] > o->oPosY) { + interaction = INT_HIT_FROM_ABOVE; + } +- } else { ++ } ++ else { + if (m->pos[1] < o->oPosY) { + interaction = INT_HIT_FROM_BELOW; + } + } + } + ++ if (action == ACT_DIVE) ++ { ++ interaction = INT_HIT_FROM_ABOVE; ++ } ++ + return interaction; + } + + /** + * Sets the interaction types for INT_STATUS_INTERACTED, INT_STATUS_WAS_ATTACKED + */ +-u32 attack_object(struct Object *o, s32 interaction) { ++u32 attack_object(struct Object* o, s32 interaction) { + u32 attackType = 0; + + switch (interaction) { +- case INT_GROUND_POUND_OR_TWIRL: +- attackType = ATTACK_GROUND_POUND_OR_TWIRL; +- break; +- case INT_PUNCH: +- attackType = ATTACK_PUNCH; +- break; +- case INT_KICK: +- case INT_TRIP: +- attackType = ATTACK_KICK_OR_TRIP; +- break; +- case INT_SLIDE_KICK: +- case INT_FAST_ATTACK_OR_SHELL: ++ case INT_GROUND_POUND_OR_TWIRL: ++ attackType = ATTACK_GROUND_POUND_OR_TWIRL; ++ break; ++ case INT_PUNCH: ++ attackType = ATTACK_PUNCH; ++ break; ++ case INT_KICK: ++ case INT_TRIP: ++ attackType = ATTACK_KICK_OR_TRIP; ++ break; ++ case INT_SLIDE_KICK: ++ attackType = ATTACK_FAST_ATTACK; ++ break; ++ case INT_FAST_ATTACK_OR_SHELL: + attackType = ATTACK_FAST_ATTACK; +- break; +- case INT_HIT_FROM_ABOVE: +- attackType = ATTACK_FROM_ABOVE; +- break; +- case INT_HIT_FROM_BELOW: +- attackType = ATTACK_FROM_BELOW; +- break; ++ break; ++ case INT_HIT_FROM_ABOVE: ++ attackType = ATTACK_FROM_ABOVE; ++ break; ++ case INT_HIT_FROM_BELOW: ++ attackType = ATTACK_FROM_BELOW; ++ break; + } + + o->oInteractStatus = attackType + (INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED); + return attackType; + } + +-void mario_stop_riding_object(struct MarioState *m) { ++void mario_stop_riding_object(struct MarioState* m) { + if (m->riddenObj != NULL) { + m->riddenObj->oInteractStatus = INT_STATUS_STOP_RIDING; + stop_shell_music(); +@@ -285,14 +305,14 @@ void mario_stop_riding_object(struct MarioState *m) { + } + } + +-void mario_grab_used_object(struct MarioState *m) { ++void mario_grab_used_object(struct MarioState* m) { + if (m->heldObj == NULL) { + m->heldObj = m->usedObj; + obj_set_held_state(m->heldObj, bhvCarrySomething3); + } + } + +-void mario_drop_held_object(struct MarioState *m) { ++void mario_drop_held_object(struct MarioState* m) { + if (m->heldObj != NULL) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + stop_shell_music(); +@@ -313,7 +333,7 @@ void mario_drop_held_object(struct MarioState *m) { + } + } + +-void mario_throw_held_object(struct MarioState *m) { ++void mario_throw_held_object(struct MarioState* m) { + if (m->heldObj != NULL) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + stop_shell_music(); +@@ -331,7 +351,7 @@ void mario_throw_held_object(struct MarioState *m) { + } + } + +-void mario_stop_riding_and_holding(struct MarioState *m) { ++void mario_stop_riding_and_holding(struct MarioState* m) { + mario_drop_held_object(m); + mario_stop_riding_object(m); + +@@ -341,40 +361,18 @@ void mario_stop_riding_and_holding(struct MarioState *m) { + } + } + +-u32 does_mario_have_normal_cap_on_head(struct MarioState *m) { +- return (m->flags & (MARIO_CAPS | MARIO_CAP_ON_HEAD)) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++u32 does_mario_have_hat(struct MarioState* m) { ++ return (m->flags & MARIO_CAP_FLAGS) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); + } + +-void mario_blow_off_cap(struct MarioState *m, f32 capSpeed) { +- struct Object *capObject; ++void mario_blow_off_cap(struct MarioState* m, f32 capSpeed) { ++ struct Object* capObject; + +- if (does_mario_have_normal_cap_on_head(m)) { +- save_file_set_cap_pos(m->pos[0], m->pos[1], m->pos[2]); + +- m->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- +- capObject = spawn_object(m->marioObj, MODEL_MARIOS_CAP, bhvNormalCap); +- +- capObject->oPosY += (m->action & ACT_FLAG_SHORT_HITBOX) ? 120.0f : 180.0f; +- capObject->oForwardVel = capSpeed; +- capObject->oMoveAngleYaw = (s16)(m->faceAngle[1] + 0x400); +- +- if (m->forwardVel < 0.0f) { +- capObject->oMoveAngleYaw = (s16)(capObject->oMoveAngleYaw + 0x8000); +- } +- } + } + + u32 mario_lose_cap_to_enemy(u32 arg) { +- u32 wasWearingCap = FALSE; +- +- if (does_mario_have_normal_cap_on_head(gMarioState)) { +- save_file_set_flags(arg == 1 ? SAVE_FLAG_CAP_ON_KLEPTO : SAVE_FLAG_CAP_ON_UKIKI); +- gMarioState->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- wasWearingCap = TRUE; +- } + +- return wasWearingCap; + } + + void mario_retrieve_cap(void) { +@@ -384,14 +382,15 @@ void mario_retrieve_cap(void) { + gMarioState->flags |= MARIO_NORMAL_CAP | MARIO_CAP_IN_HAND; + } + +-u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { ++u32 able_to_grab_object(struct MarioState* m, UNUSED struct Object* o) { + u32 action = m->action; + + if (action == ACT_DIVE_SLIDE || action == ACT_DIVE) { + if (!(o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { + return TRUE; + } +- } else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { ++ } ++ else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { + if (m->actionArg < 2) { + return TRUE; + } +@@ -400,9 +399,9 @@ u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { + return FALSE; + } + +-struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) { ++struct Object* mario_get_collided_object(struct MarioState* m, u32 interactType) { + s32 i; +- struct Object *object; ++ struct Object* object; + + for (i = 0; i < m->marioObj->numCollidedObjs; i++) { + object = m->marioObj->collidedObjs[i]; +@@ -415,9 +414,13 @@ struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) + return NULL; + } + +-u32 mario_check_object_grab(struct MarioState *m) { ++u32 mario_homing(struct MarioState* m) { ++ ++} ++ ++u32 mario_check_object_grab(struct MarioState* m) { + u32 result = FALSE; +- const BehaviorScript *script; ++ void* script; + + if (m->input & INPUT_INTERACT_OBJ_GRABBABLE) { + script = virtual_to_segmented(0x13, m->interactObj->behavior); +@@ -429,9 +432,10 @@ u32 mario_check_object_grab(struct MarioState *m) { + m->usedObj = m->interactObj; + result = set_mario_action(m, ACT_PICKING_UP_BOWSER, 0); + } +- } else { ++ } ++ else { + s16 facingDYaw = mario_obj_angle_to_object(m, m->interactObj) - m->faceAngle[1]; +- if (facingDYaw >= -0x2AAA && facingDYaw <= 0x2AAA) { ++ if (facingDYaw >= -0x8AAA && facingDYaw <= 0x8AAA) { + m->usedObj = m->interactObj; + + if (!(m->action & ACT_FLAG_AIR)) { +@@ -447,7 +451,7 @@ u32 mario_check_object_grab(struct MarioState *m) { + return result; + } + +-u32 bully_knock_back_mario(struct MarioState *mario) { ++u32 bully_knock_back_mario(struct MarioState* mario) { + struct BullyCollisionData marioData; + struct BullyCollisionData bullyData; + s16 newMarioYaw; +@@ -457,7 +461,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + + u32 bonkAction = 0; + +- struct Object *bully = mario->interactObj; ++ struct Object* bully = mario->interactObj; + + //! Conversion ratios multiply to more than 1 (could allow unbounded speed + // with bonk cancel - but this isn't important for regular bully battery) +@@ -465,14 +469,15 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + f32 marioToBullyRatio = 53.0f / bully->hitboxRadius; + + init_bully_collision_data(&marioData, mario->pos[0], mario->pos[2], mario->forwardVel, +- mario->faceAngle[1], bullyToMarioRatio, 52.0f); ++ mario->faceAngle[1], bullyToMarioRatio, 52.0f); + + init_bully_collision_data(&bullyData, bully->oPosX, bully->oPosZ, bully->oForwardVel, +- bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); ++ bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); + + if (mario->forwardVel != 0.0f) { + transfer_bully_speed(&marioData, &bullyData); +- } else { ++ } ++ else { + transfer_bully_speed(&bullyData, &marioData); + } + +@@ -498,13 +503,16 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + + if (mario->action & ACT_FLAG_AIR) { + bonkAction = ACT_BACKWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; + } +- } else { ++ } ++ else { + if (mario->action & ACT_FLAG_AIR) { + bonkAction = ACT_FORWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_FORWARD_GROUND_KB; + } + } +@@ -512,7 +520,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + return bonkAction; + } + +-void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { ++void bounce_off_object(struct MarioState* m, struct Object* o, f32 velY) { + m->pos[1] = o->oPosY + o->hitboxHeight; + m->vel[1] = velY; + +@@ -521,12 +529,12 @@ void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { + play_sound(SOUND_ACTION_BOUNCE_OFF_OBJECT, m->marioObj->header.gfx.cameraToObject); + } + +-void hit_object_from_below(struct MarioState *m, UNUSED struct Object *o) { ++void hit_object_from_below(struct MarioState* m, UNUSED struct Object* o) { + m->vel[1] = 0.0f; + set_camera_shake_from_hit(SHAKE_HIT_FROM_BELOW); + } + +-static u32 unused_determine_knockback_action(struct MarioState *m) { ++static u32 unused_determine_knockback_action(struct MarioState* m) { + u32 bonkAction; + s16 angleToObject = mario_obj_angle_to_object(m, m->interactObj); + s16 facingDYaw = angleToObject - m->faceAngle[1]; +@@ -541,14 +549,17 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { + m->forwardVel *= -1.0f; + if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + bonkAction = ACT_BACKWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; + } +- } else { ++ } ++ else { + m->faceAngle[1] += 0x8000; + if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + bonkAction = ACT_FORWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_FORWARD_GROUND_KB; + } + } +@@ -556,7 +567,7 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { + return bonkAction; + } + +-u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++u32 determine_knockback_action(struct MarioState* m, UNUSED s32 arg) { + u32 bonkAction; + + s16 terrainIndex = 0; // 1 = air, 2 = water, 0 = default +@@ -568,15 +579,18 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + + if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { + terrainIndex = 2; +- } else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { ++ } ++ else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + terrainIndex = 1; + } + + if (remainingHealth < 0x100) { + strengthIndex = 2; +- } else if (m->interactObj->oDamageOrCoinValue >= 4) { ++ } ++ else if (m->interactObj->oDamageOrCoinValue >= 4) { + strengthIndex = 2; +- } else if (m->interactObj->oDamageOrCoinValue >= 2) { ++ } ++ else if (m->interactObj->oDamageOrCoinValue >= 2) { + strengthIndex = 1; + } + +@@ -591,12 +605,14 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + if (m->vel[1] < 20.0f) { + m->vel[1] = 20.0f; + } +- } else { ++ } ++ else { + if (m->vel[1] > 0.0f) { + m->vel[1] = 0.0f; + } + } +- } else { ++ } ++ else { + if (m->forwardVel < 16.0f) { + mario_set_forward_vel(m, 16.0f); + } +@@ -605,7 +621,8 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + if (-0x4000 <= facingDYaw && facingDYaw <= 0x4000) { + m->forwardVel *= -1.0f; + bonkAction = sBackwardKnockbackActions[terrainIndex][strengthIndex]; +- } else { ++ } ++ else { + m->faceAngle[1] += 0x8000; + bonkAction = sForwardKnockbackActions[terrainIndex][strengthIndex]; + } +@@ -613,7 +630,7 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + return bonkAction; + } + +-void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 padding) { ++void push_mario_out_of_object(struct MarioState* m, struct Object* o, f32 padding) { + f32 minDistance = o->hitboxRadius + m->marioObj->hitboxRadius + padding; + + f32 offsetX = m->pos[0] - o->oPosX; +@@ -621,14 +638,15 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin + f32 distance = sqrtf(offsetX * offsetX + offsetZ * offsetZ); + + if (distance < minDistance) { +- struct Surface *floor; ++ struct Surface* floor; + s16 pushAngle; + f32 newMarioX; + f32 newMarioZ; + + if (distance == 0.0f) { + pushAngle = m->faceAngle[1]; +- } else { ++ } ++ else { + pushAngle = atan2s(offsetZ, offsetX); + } + +@@ -647,7 +665,7 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin + } + } + +-void bounce_back_from_attack(struct MarioState *m, u32 interaction) { ++void bounce_back_from_attack(struct MarioState* m, u32 interaction) { + if (interaction & (INT_PUNCH | INT_KICK | INT_TRIP)) { + if (m->action == ACT_PUNCHING) { + m->action = ACT_MOVE_PUNCHING; +@@ -655,7 +673,8 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { + + if (m->action & ACT_FLAG_AIR) { + mario_set_forward_vel(m, -16.0f); +- } else { ++ } ++ else { + mario_set_forward_vel(m, -48.0f); + } + +@@ -668,7 +687,7 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { + } + } + +-u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { ++u32 should_push_or_pull_door(struct MarioState* m, struct Object* o) { + f32 dx = o->oPosX - m->pos[0]; + f32 dz = o->oPosZ - m->pos[2]; + +@@ -677,40 +696,78 @@ u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { + return (dYaw >= -0x4000 && dYaw <= 0x4000) ? 0x00000001 : 0x00000002; + } + +-u32 take_damage_from_interact_object(struct MarioState *m) { ++u32 take_damage_from_interact_object(struct MarioState* m) { + s32 shake; + s32 damage = m->interactObj->oDamageOrCoinValue; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (damage >= 4) { ++ shake = SHAKE_LARGE_DAMAGE; ++ } ++ else if (damage >= 2) { ++ shake = SHAKE_MED_DAMAGE; ++ } ++ else { ++ shake = SHAKE_SMALL_DAMAGE; ++ } + +- if (damage >= 4) { +- shake = SHAKE_LARGE_DAMAGE; +- } else if (damage >= 2) { +- shake = SHAKE_MED_DAMAGE; +- } else { +- shake = SHAKE_SMALL_DAMAGE; +- } ++ if (!(m->flags & MARIO_CAP_ON_HEAD)) { ++ damage += (damage + 1) / 2; ++ } + +- if (!(m->flags & MARIO_CAP_ON_HEAD)) { +- damage += (damage + 1) / 2; +- } ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { + +- if (m->flags & MARIO_METAL_CAP) { +- damage = 0; +- } ++ damage = 0; ++ } + +- m->hurtCounter += 4 * damage; + +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(shake); + ++ m->hurtCounter += 4 * damage; ++ } ++ } ++ if (!(m->flags & MARIO_METAL_CAP)) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ damage = 0; ++ shake = SHAKE_MED_DAMAGE; ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ shake = SHAKE_LARGE_DAMAGE; ++ m->health = 0xFF; ++ m->hurtCounter += 4 * damage; ++ } ++ } ++ } ++ } ++ ++ set_camera_shake_from_hit(shake); + return damage; + } + +-u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { ++u32 take_damage_and_knock_back(struct MarioState* m, struct Object* o) { + u32 damage; + +- if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) ++ if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; + m->interactObj = o; +@@ -727,45 +784,55 @@ u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { + + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), +- damage); ++ damage); + } + + return FALSE; + } + +-void reset_mario_pitch(struct MarioState *m) { ++void reset_mario_pitch(struct MarioState* m) { + if (m->action == ACT_WATER_JUMP || m->action == ACT_SHOT_FROM_CANNON || m->action == ACT_FLYING) { + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + m->faceAngle[0] = 0; + } + } + +-u32 interact_coin(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_coin(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + m->numCoins += o->oDamageOrCoinValue; + m->healCounter += 4 * o->oDamageOrCoinValue; + + o->oInteractStatus = INT_STATUS_INTERACTED; +- ++ //add 100 coins + if (COURSE_IS_MAIN_COURSE(gCurrCourseNum) && m->numCoins - o->oDamageOrCoinValue < 100 + && m->numCoins >= 100) { +- bhv_spawn_star_no_level_exit(6); ++ if (count_objects_with_behavior(bhvSpawnedStarNoLevelExit) < 1) { ++ if (m->coinstartotal > 6) ++ { ++ bhv_spawn_star_no_level_exit(6); ++ } ++ else ++ { ++ bhv_spawn_emerald_no_level_exit(6, m->coinstartotal); ++ } ++ } + } +-#ifdef VERSION_SH ++ + if (o->oDamageOrCoinValue >= 2) { +- queue_rumble_data(5, 80); ++ + } +-#endif + + return FALSE; + } + +-u32 interact_water_ring(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_water_ring(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + m->healCounter += 4 * o->oDamageOrCoinValue; ++ m->drownTimer = 0; ++ stop_drown_music(); + o->oInteractStatus = INT_STATUS_INTERACTED; + return FALSE; + } + +-u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_star_or_key(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 starIndex; + u32 starGrabAction = ACT_STAR_DANCE_EXIT; + u32 noExit = (o->oInteractionSubtype & INT_SUBTYPE_NO_EXIT) != 0; +@@ -773,9 +840,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + + if (m->health >= 0x100) { + mario_stop_riding_and_holding(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + + if (!noExit) { + m->hurtCounter = 0; +@@ -821,6 +886,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + play_sound(SOUND_MENU_STAR_SOUND, m->marioObj->header.gfx.cameraToObject); + #ifndef VERSION_JP + update_mario_sound_and_camera(m); ++ // func_802521A0 + #endif + + if (grandStar) { +@@ -833,7 +899,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_bbh_entrance(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (m->action != ACT_BBH_ENTER_SPIN && m->action != ACT_BBH_ENTER_JUMP) { + mario_stop_riding_and_holding(m); + +@@ -851,7 +917,7 @@ u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct + return FALSE; + } + +-u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_warp(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 action; + + if (o->oInteractionSubtype & INT_SUBTYPE_FADING_WARP) { +@@ -860,7 +926,8 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + if (action == ACT_TELEPORT_FADE_IN) { + sJustTeleported = TRUE; + +- } else if (!sJustTeleported) { ++ } ++ else if (!sJustTeleported) { + if (action == ACT_IDLE || action == ACT_PANTING || action == ACT_STANDING_AGAINST_WALL + || action == ACT_CROUCHING) { + m->interactObj = o; +@@ -870,26 +937,21 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + return set_mario_action(m, ACT_TELEPORT_FADE_OUT, 0); + } + } +- } else { ++ } ++ else { + if (m->action != ACT_EMERGE_FROM_PIPE) { + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + m->usedObj = o; + +-#ifdef VERSION_SH + if (o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8)) { + play_sound(SOUND_MENU_ENTER_PIPE, m->marioObj->header.gfx.cameraToObject); +- queue_rumble_data(15, 80); +- } else { ++ ++ } ++ else { + play_sound(SOUND_MENU_ENTER_HOLE, m->marioObj->header.gfx.cameraToObject); +- queue_rumble_data(12, 80); ++ + } +-#else +- play_sound(o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8) +- ? SOUND_MENU_ENTER_PIPE +- : SOUND_MENU_ENTER_HOLE, +- m->marioObj->header.gfx.cameraToObject); +-#endif + + mario_stop_riding_object(m); + return set_mario_action(m, ACT_DISAPPEARED, (WARP_OP_WARP_OBJECT << 16) + 2); +@@ -899,7 +961,7 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_warp_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 doorAction = 0; + u32 saveFlags = save_file_get_flags(); + s16 warpDoorId = o->oBehParams >> 24; +@@ -910,7 +972,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + if (!(saveFlags & SAVE_FLAG_HAVE_KEY_2)) { + if (!sDisplayingDoorText) { + set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, +- (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? DIALOG_023 : DIALOG_022); ++ (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? DIALOG_023 : DIALOG_022); + } + sDisplayingDoorText = TRUE; + +@@ -925,7 +987,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + if (!sDisplayingDoorText) { + // Moat door skip was intended confirmed + set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, +- (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? DIALOG_023 : DIALOG_022); ++ (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? DIALOG_023 : DIALOG_022); + } + sDisplayingDoorText = TRUE; + +@@ -941,7 +1003,8 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + if (doorAction == 0) { + if (actionArg & 0x00000001) { + doorAction = ACT_PULLING_DOOR; +- } else { ++ } ++ else { + doorAction = ACT_PUSHING_DOOR; + } + } +@@ -955,7 +1018,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + return FALSE; + } + +-u32 get_door_save_file_flag(struct Object *door) { ++u32 get_door_save_file_flag(struct Object* door) { + u32 saveFileFlag = 0; + s16 requiredNumStars = door->oBehParams >> 24; + +@@ -963,39 +1026,41 @@ u32 get_door_save_file_flag(struct Object *door) { + s16 isPssDoor = door->oPosY > 500.0f; + + switch (requiredNumStars) { +- case 1: +- if (isPssDoor) { +- saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; +- } else { +- saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; +- } +- break; ++ case 1: ++ if (isPssDoor) { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; ++ } ++ else { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; ++ } ++ break; + +- case 3: +- if (isCcmDoor) { +- saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; +- } else { +- saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; +- } +- break; ++ case 3: ++ if (isCcmDoor) { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; ++ } ++ else { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; ++ } ++ break; + +- case 8: +- saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; +- break; ++ case 8: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; ++ break; + +- case 30: +- saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; +- break; ++ case 30: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; ++ break; + +- case 50: +- saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; +- break; ++ case 50: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; ++ break; + } + + return saveFileFlag; + } + +-u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s16 requiredNumStars = o->oBehParams >> 24; + s16 numStars = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); + +@@ -1007,7 +1072,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + + if (actionArg & 0x00000001) { + enterDoorAction = ACT_PULLING_DOOR; +- } else { ++ } ++ else { + enterDoorAction = ACT_PUSHING_DOOR; + } + +@@ -1024,28 +1090,29 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + } + + return set_mario_action(m, enterDoorAction, actionArg); +- } else if (!sDisplayingDoorText) { ++ } ++ else if (!sDisplayingDoorText) { + u32 text = DIALOG_022 << 16; + + switch (requiredNumStars) { +- case 1: +- text = DIALOG_024 << 16; +- break; +- case 3: +- text = DIALOG_025 << 16; +- break; +- case 8: +- text = DIALOG_026 << 16; +- break; +- case 30: +- text = DIALOG_027 << 16; +- break; +- case 50: +- text = DIALOG_028 << 16; +- break; +- case 70: +- text = DIALOG_029 << 16; +- break; ++ case 1: ++ text = DIALOG_024 << 16; ++ break; ++ case 3: ++ text = DIALOG_025 << 16; ++ break; ++ case 8: ++ text = DIALOG_026 << 16; ++ break; ++ case 30: ++ text = DIALOG_027 << 16; ++ break; ++ case 50: ++ text = DIALOG_028 << 16; ++ break; ++ case 70: ++ text = DIALOG_029 << 16; ++ break; + } + + text += requiredNumStars - numStars; +@@ -1053,7 +1120,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + sDisplayingDoorText = TRUE; + return set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, text); + } +- } else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { ++ } ++ else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { + m->interactObj = o; + m->usedObj = o; + return set_mario_action(m, ACT_ENTERING_STAR_DOOR, should_push_or_pull_door(m, o)); +@@ -1062,7 +1130,7 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_cannon_base(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (m->action != ACT_IN_CANNON) { + mario_stop_riding_and_holding(m); + o->oInteractStatus = INT_STATUS_INTERACTED; +@@ -1074,7 +1142,7 @@ u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_igloo_barrier(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + //! Sets used object without changing action (LOTS of interesting glitches, + // but unfortunately the igloo barrier is the only object with this interaction + // type) +@@ -1084,8 +1152,8 @@ u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct + return FALSE; + } + +-u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- struct Object *marioObj = m->marioObj; ++u32 interact_tornado(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ struct Object* marioObj = m->marioObj; + + if (m->action != ACT_TORNADO_TWIRLING && m->action != ACT_SQUISHED) { + mario_stop_riding_and_holding(m); +@@ -1100,17 +1168,16 @@ u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Objec + marioObj->oMarioTornadoPosY = m->pos[1] - o->oPosY; + + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(30, 60); +-#endif ++ ++ + return set_mario_action(m, ACT_TORNADO_TWIRLING, m->action == ACT_TWIRLING); + } + + return FALSE; + } + +-u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- struct Object *marioObj = m->marioObj; ++u32 interact_whirlpool(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ struct Object* marioObj = m->marioObj; + + if (m->action != ACT_CAUGHT_IN_WHIRLPOOL) { + mario_stop_riding_and_holding(m); +@@ -1123,17 +1190,16 @@ u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Obj + marioObj->oMarioWhirlpoolPosY = m->pos[1] - o->oPosY; + + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(30, 60); +-#endif ++ ++ + return set_mario_action(m, ACT_CAUGHT_IN_WHIRLPOOL, 0); + } + + return FALSE; + } + +-u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- UNUSED struct Object *marioObj = m->marioObj; ++u32 interact_strong_wind(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ UNUSED struct Object* marioObj = m->marioObj; + + if (m->action != ACT_GETTING_BLOWN) { + mario_stop_riding_and_holding(m); +@@ -1154,21 +1220,45 @@ u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_flame(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 burningAction = ACT_BURNING_JUMP; + +- if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) ++ if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + + if ((m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) + || m->waterLevel - m->pos[1] > 50.0f) { + play_sound(SOUND_GENERAL_FLAME_OUT, m->marioObj->header.gfx.cameraToObject); +- } else { ++ } ++ else { + m->marioObj->oMarioBurnTimer = 0; + update_mario_sound_and_camera(m); + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); +@@ -1184,12 +1274,13 @@ u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object + return FALSE; + } + +-u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_snufit_bullet(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP)) { +- if (m->flags & MARIO_METAL_CAP) { ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; + play_sound(SOUND_ACTION_UNKNOWN458, m->marioObj->header.gfx.cameraToObject); +- } else { ++ } ++ else { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; + m->interactObj = o; + take_damage_from_interact_object(m); +@@ -1198,49 +1289,53 @@ u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct + update_mario_sound_and_camera(m); + + return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), +- o->oDamageOrCoinValue); ++ o->oDamageOrCoinValue); + } + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_clam_or_bubba(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_clam_or_bubba(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (o->oInteractionSubtype & INT_SUBTYPE_EATS_MARIO) { + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + return set_mario_action(m, ACT_EATEN_BY_BUBBA, 0); +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return TRUE; + } + +-u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++ ++ ++ ++u32 interact_bully(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + UNUSED u32 unused; + + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER) ) { ++ + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ else { + interaction = determine_interaction(m, o); + } + + m->interactObj = o; ++ m->homingObj = NULL; ++ + + if (interaction & INT_ATTACK_NOT_FROM_BELOW) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + push_mario_out_of_object(m, o, 5.0f); + + m->forwardVel = -16.0f; +@@ -1253,7 +1348,7 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object + } + + else if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) +- && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + o->oInteractStatus = INT_STATUS_INTERACTED; + m->invincTimer = 2; + +@@ -1263,16 +1358,15 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object + + push_mario_out_of_object(m, o, 5.0f); + drop_and_set_mario_action(m, bully_knock_back_mario(m), 0); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ + return TRUE; + } + + return FALSE; + } + +-u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_shock(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + u32 actionArg = (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) == 0; +@@ -1282,13 +1376,12 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object + + take_damage_from_interact_object(m); + play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(70, 60); +-#endif ++ + + if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { + return drop_and_set_mario_action(m, ACT_WATER_SHOCKED, 0); +- } else { ++ } ++ else { + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, ACT_SHOCKED, actionArg); + } +@@ -1297,18 +1390,17 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-static u32 interact_stub(UNUSED struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++static u32 interact_stub(UNUSED struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } + return FALSE; + } + +-u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_mr_blizzard(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (take_damage_and_knock_back(m, o)) { + return TRUE; + } +@@ -1316,24 +1408,25 @@ u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct O + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_hit_from_below(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + UNUSED u32 unused; + + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { ++ if (m->action != ACT_DIVE ) ++ { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ } ++ else { + interaction = determine_interaction(m, o); + } + + if (interaction & INT_ANY_ATTACK) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + attack_object(o, interaction); + bounce_back_from_attack(m, interaction); + +@@ -1349,33 +1442,39 @@ u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struc + play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); + #endif + return drop_and_set_mario_action(m, ACT_TWIRLING, 0); +- } else { ++ } ++ else { + bounce_off_object(m, o, 30.0f); + } + } +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_bounce_top(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ struct Object* goomba = o; ++ if (goomba->behavior == bhvGoomba) ++ { ++ m->interactObj = o; ++ } ++ ++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ else { + interaction = determine_interaction(m, o); + } + + if (interaction & INT_ATTACK_NOT_FROM_BELOW) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + attack_object(o, interaction); + bounce_back_from_attack(m, interaction); + +@@ -1387,39 +1486,40 @@ u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Ob + play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); + #endif + return drop_and_set_mario_action(m, ACT_TWIRLING, 0); +- } else { ++ } ++ else { + bounce_off_object(m, o, 30.0f); + } + } +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_unknown_08(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_unknown_08(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interaction = determine_interaction(m, o); + + if (interaction & INT_PUNCH) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED | ATTACK_PUNCH; + bounce_back_from_attack(m, interaction); +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_damage(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (take_damage_and_knock_back(m, o)) { + return TRUE; + } +@@ -1427,20 +1527,27 @@ u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- u32 interaction = determine_interaction(m, o); ++u32 interact_breakable(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ void* script = virtual_to_segmented(0x13, o->behavior); + +- if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { +- attack_object(o, interaction); +- bounce_back_from_attack(m, interaction); ++ u32 interaction = determine_interaction(m, o); ++ if (m->forwardVel >= 19.0f) ++ { ++ if (gMarioState->action == ACT_SLIDE_KICK_SLIDE || gMarioState->action == ACT_SLIDE_KICK) ++ { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; ++ } ++ } ++ if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { ++ attack_object(o, interaction); ++ bounce_back_from_attack(m, interaction); + +- m->interactObj = o; ++ m->interactObj = o; + +- switch (interaction) { ++ switch (interaction) { + case INT_HIT_FROM_ABOVE: + bounce_off_object(m, o, 30.0f); //! Not in the 0x8F mask + break; +@@ -1448,15 +1555,18 @@ u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Obj + case INT_HIT_FROM_BELOW: + hit_object_from_below(m, o); + break; +- } + +- return TRUE; +- } ++ } + +- return FALSE; ++ return TRUE; ++ ++ } ++ ++ return FALSE; ++ + } + +-u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_koopa_shell(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!(m->action & ACT_FLAG_RIDING_SHELL)) { + u32 interaction = determine_interaction(m, o); + +@@ -1482,7 +1592,7 @@ u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 check_object_grab_mario(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if ((!(m->action & (ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ATTACKING)) || !sInvulnerable) + && (o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { + if (object_facing_mario(m, o, 0x2AAA)) { +@@ -1495,9 +1605,7 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc + + update_mario_sound_and_camera(m); + play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + return set_mario_action(m, ACT_GRABBED, 0); + } + } +@@ -1506,17 +1614,17 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc + return FALSE; + } + +-u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_pole(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s32 actionId = m->action & ACT_ID_MASK; + if (actionId >= 0x080 && actionId < 0x0A0) { + if (!(m->prevAction & ACT_FLAG_ON_POLE) || m->usedObj != o) { + #ifdef VERSION_SH + f32 velConv = m->forwardVel; // conserve the velocity. +- struct Object *marioObj = m->marioObj; ++ struct Object* marioObj = m->marioObj; + u32 lowSpeed; + #else + u32 lowSpeed = (m->forwardVel <= 10.0f); +- struct Object *marioObj = m->marioObj; ++ struct Object* marioObj = m->marioObj; + #endif + + mario_stop_riding_and_holding(m); +@@ -1546,9 +1654,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * + marioObj->oMarioPoleYawVel = (s32)(m->forwardVel * 0x100 + 0x1000); + #endif + reset_mario_pitch(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + return set_mario_action(m, ACT_GRAB_POLE_FAST, 0); + } + } +@@ -1556,7 +1662,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_hoot(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s32 actionId = m->action & ACT_ID_MASK; + + //! Can pause to advance the global timer without falling too far, allowing +@@ -1568,9 +1674,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * + m->interactObj = o; + m->usedObj = o; + +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + update_mario_sound_and_camera(m); + return set_mario_action(m, ACT_RIDING_HOOT, 0); + } +@@ -1578,7 +1682,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_cap(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 capFlag = get_mario_cap_flag(o); + u16 capMusic = 0; + u16 capTime = 0; +@@ -1587,24 +1691,24 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + m->interactObj = o; + o->oInteractStatus = INT_STATUS_INTERACTED; + +- m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; ++ //m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; + m->flags |= capFlag; + + switch (capFlag) { +- case MARIO_VANISH_CAP: +- capTime = 600; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +- break; ++ case MARIO_VANISH_CAP: ++ capTime = 600; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ break; + +- case MARIO_METAL_CAP: +- capTime = 600; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); +- break; ++ case MARIO_METAL_CAP: ++ capTime = 600; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); ++ break; + +- case MARIO_WING_CAP: +- capTime = 1800; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +- break; ++ case MARIO_WING_CAP: ++ capTime = 1800; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ break; + } + + if (capTime > m->capTimer) { +@@ -1612,9 +1716,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + } + + if ((m->action & ACT_FLAG_IDLE) || m->action == ACT_WALKING) { +- m->flags |= MARIO_CAP_IN_HAND; ++ + set_mario_action(m, ACT_PUTTING_ON_CAP, 0); +- } else { ++ } ++ else { + m->flags |= MARIO_CAP_ON_HEAD; + } + +@@ -1622,7 +1727,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); + + if (capMusic != 0) { +- play_cap_music(capMusic); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ play_cap_music(capMusic); ++ } + } + + return TRUE; +@@ -1631,8 +1739,8 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + return FALSE; + } + +-u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) { +- const BehaviorScript *script = virtual_to_segmented(0x13, o->behavior); ++u32 interact_grabbable(struct MarioState* m, u32 interactType, struct Object* o) { ++ void* script = virtual_to_segmented(0x13, o->behavior); + + if (o->oInteractionSubtype & INT_SUBTYPE_KICKABLE) { + u32 interaction = determine_interaction(m, o); +@@ -1660,11 +1768,10 @@ u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) + if (script != bhvBowser) { + push_mario_out_of_object(m, o, -5.0f); + } +- + return FALSE; + } + +-u32 mario_can_talk(struct MarioState *m, u32 arg) { ++u32 mario_can_talk(struct MarioState* m, u32 arg) { + s16 val6; + + if ((m->action & ACT_FLAG_IDLE) != 0x00000000) { +@@ -1698,7 +1805,7 @@ u32 mario_can_talk(struct MarioState *m, u32 arg) { + #define SIGN_RANGE 0x4000 + #endif + +-u32 check_read_sign(struct MarioState *m, struct Object *o) { ++u32 check_read_sign(struct MarioState* m, struct Object* o) { + if ((m->input & READ_MASK) && mario_can_talk(m, 0) && object_facing_mario(m, o, SIGN_RANGE)) { + s16 facingDYaw = (s16)(o->oMoveAngleYaw + 0x8000) - m->faceAngle[1]; + if (facingDYaw >= -SIGN_RANGE && facingDYaw <= SIGN_RANGE) { +@@ -1718,7 +1825,7 @@ u32 check_read_sign(struct MarioState *m, struct Object *o) { + return FALSE; + } + +-u32 check_npc_talk(struct MarioState *m, struct Object *o) { ++u32 check_npc_talk(struct MarioState* m, struct Object* o) { + if ((m->input & READ_MASK) && mario_can_talk(m, 1)) { + s16 facingDYaw = mario_obj_angle_to_object(m, o) - m->faceAngle[1]; + if (facingDYaw >= -0x4000 && facingDYaw <= 0x4000) { +@@ -1736,21 +1843,24 @@ u32 check_npc_talk(struct MarioState *m, struct Object *o) { + return FALSE; + } + +-u32 interact_text(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_text(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interact = FALSE; + + if (o->oInteractionSubtype & INT_SUBTYPE_SIGN) { + interact = check_read_sign(m, o); +- } else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { ++ } ++ else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { + interact = check_npc_talk(m, o); +- } else { ++ } ++ else { + push_mario_out_of_object(m, o, 2.0f); + } + + return interact; + } + +-void check_kick_or_punch_wall(struct MarioState *m) { ++void check_kick_or_punch_wall(struct MarioState* m) { ++ + if (m->flags & (MARIO_PUNCHING | MARIO_KICKING | MARIO_TRIPPING)) { + Vec3f detector; + detector[0] = m->pos[0] + 50.0f * sins(m->faceAngle[1]); +@@ -1766,7 +1876,8 @@ void check_kick_or_punch_wall(struct MarioState *m) { + mario_set_forward_vel(m, -48.0f); + play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); + m->particleFlags |= PARTICLE_TRIANGLE; +- } else if (m->action & ACT_FLAG_AIR) { ++ } ++ else if (m->action & ACT_FLAG_AIR) { + mario_set_forward_vel(m, -16.0f); + play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); + m->particleFlags |= PARTICLE_TRIANGLE; +@@ -1775,7 +1886,7 @@ void check_kick_or_punch_wall(struct MarioState *m) { + } + } + +-void mario_process_interactions(struct MarioState *m) { ++void mario_process_interactions(struct MarioState* m) { + sDelayInvincTimer = FALSE; + sInvulnerable = (m->action & ACT_FLAG_INVULNERABLE) || m->invincTimer != 0; + +@@ -1784,7 +1895,7 @@ void mario_process_interactions(struct MarioState *m) { + for (i = 0; i < 31; i++) { + u32 interactType = sInteractionHandlers[i].interactType; + if (m->collidedObjInteractTypes & interactType) { +- struct Object *object = mario_get_collided_object(m, interactType); ++ struct Object* object = mario_get_collided_object(m, interactType); + + m->collidedObjInteractTypes &= ~interactType; + +@@ -1814,7 +1925,7 @@ void mario_process_interactions(struct MarioState *m) { + } + } + +-void check_death_barrier(struct MarioState *m) { ++void check_death_barrier(struct MarioState* m) { + if (m->pos[1] < m->floorHeight + 2048.0f) { + if (level_trigger_warp(m, WARP_OP_WARP_FLOOR) == 20 && !(m->flags & MARIO_UNKNOWN_18)) { + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +@@ -1822,18 +1933,48 @@ void check_death_barrier(struct MarioState *m) { + } + } + +-void check_lava_boost(struct MarioState *m) { ++void check_lava_boost(struct MarioState* m) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { + if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +- } ++ ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ ++ } ++ else ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ + + update_mario_sound_and_camera(m); + drop_and_set_mario_action(m, ACT_LAVA_BOOST, 0); + } ++ } + } + +-void pss_begin_slide(UNUSED struct MarioState *m) { ++void pss_begin_slide(UNUSED struct MarioState* m) { + if (!(gHudDisplay.flags & HUD_DISPLAY_FLAG_TIMER)) { + level_control_timer(TIMER_CONTROL_SHOW); + level_control_timer(TIMER_CONTROL_START); +@@ -1841,7 +1982,7 @@ void pss_begin_slide(UNUSED struct MarioState *m) { + } + } + +-void pss_end_slide(struct MarioState *m) { ++void pss_end_slide(struct MarioState* m) { + //! This flag isn't set on death or level entry, allowing double star spawn + if (sPssSlideStarted) { + u16 slideTime = level_control_timer(TIMER_CONTROL_STOP); +@@ -1853,7 +1994,7 @@ void pss_end_slide(struct MarioState *m) { + } + } + +-void mario_handle_special_floors(struct MarioState *m) { ++void mario_handle_special_floors(struct MarioState* m) { + if ((m->action & ACT_GROUP_MASK) == ACT_GROUP_CUTSCENE) { + return; + } +@@ -1862,29 +2003,29 @@ void mario_handle_special_floors(struct MarioState *m) { + s32 floorType = m->floor->type; + + switch (floorType) { +- case SURFACE_DEATH_PLANE: +- case SURFACE_VERTICAL_WIND: +- check_death_barrier(m); +- break; ++ case SURFACE_DEATH_PLANE: ++ case SURFACE_VERTICAL_WIND: ++ check_death_barrier(m); ++ break; + +- case SURFACE_WARP: +- level_trigger_warp(m, WARP_OP_WARP_FLOOR); +- break; ++ case SURFACE_WARP: ++ level_trigger_warp(m, WARP_OP_WARP_FLOOR); ++ break; + +- case SURFACE_TIMER_START: +- pss_begin_slide(m); +- break; ++ case SURFACE_TIMER_START: ++ pss_begin_slide(m); ++ break; + +- case SURFACE_TIMER_END: +- pss_end_slide(m); +- break; ++ case SURFACE_TIMER_END: ++ pss_end_slide(m); ++ break; + } + + if (!(m->action & ACT_FLAG_AIR) && !(m->action & ACT_FLAG_SWIMMING)) { + switch (floorType) { +- case SURFACE_BURNING: +- check_lava_boost(m); +- break; ++ case SURFACE_BURNING: ++ check_lava_boost(m); ++ break; + } + } + } +diff --git a/src/game/interaction.c.rej b/src/game/interaction.c.rej +new file mode 100644 +index 0000000..cd817ee +--- /dev/null ++++ b/src/game/interaction.c.rej +@@ -0,0 +1,1808 @@ ++diff a/src/game/interaction.c b/src/game/interaction.c (rejected hunks) ++@@ -23,6 +23,7 @@ ++ #include "sm64.h" ++ #include "sound_init.h" ++ #include "rumble_init.h" +++#include "game/ingame_menu.h" ++ ++ #define INT_GROUND_POUND_OR_TWIRL (1 << 0) // 0x01 ++ #define INT_PUNCH (1 << 1) // 0x02 ++@@ -46,39 +47,39 @@ ++ ++ u8 sDelayInvincTimer; ++ s16 sInvulnerable; ++-u32 interact_coin(struct MarioState *, u32, struct Object *); ++-u32 interact_water_ring(struct MarioState *, u32, struct Object *); ++-u32 interact_star_or_key(struct MarioState *, u32, struct Object *); ++-u32 interact_bbh_entrance(struct MarioState *, u32, struct Object *); ++-u32 interact_warp(struct MarioState *, u32, struct Object *); ++-u32 interact_warp_door(struct MarioState *, u32, struct Object *); ++-u32 interact_door(struct MarioState *, u32, struct Object *); ++-u32 interact_cannon_base(struct MarioState *, u32, struct Object *); ++-u32 interact_igloo_barrier(struct MarioState *, u32, struct Object *); ++-u32 interact_tornado(struct MarioState *, u32, struct Object *); ++-u32 interact_whirlpool(struct MarioState *, u32, struct Object *); ++-u32 interact_strong_wind(struct MarioState *, u32, struct Object *); ++-u32 interact_flame(struct MarioState *, u32, struct Object *); ++-u32 interact_snufit_bullet(struct MarioState *, u32, struct Object *); ++-u32 interact_clam_or_bubba(struct MarioState *, u32, struct Object *); ++-u32 interact_bully(struct MarioState *, u32, struct Object *); ++-u32 interact_shock(struct MarioState *, u32, struct Object *); ++-u32 interact_mr_blizzard(struct MarioState *, u32, struct Object *); ++-u32 interact_hit_from_below(struct MarioState *, u32, struct Object *); ++-u32 interact_bounce_top(struct MarioState *, u32, struct Object *); ++-u32 interact_unknown_08(struct MarioState *, u32, struct Object *); ++-u32 interact_damage(struct MarioState *, u32, struct Object *); ++-u32 interact_breakable(struct MarioState *, u32, struct Object *); ++-u32 interact_koopa_shell(struct MarioState *, u32, struct Object *); ++-u32 interact_pole(struct MarioState *, u32, struct Object *); ++-u32 interact_hoot(struct MarioState *, u32, struct Object *); ++-u32 interact_cap(struct MarioState *, u32, struct Object *); ++-u32 interact_grabbable(struct MarioState *, u32, struct Object *); ++-u32 interact_text(struct MarioState *, u32, struct Object *); +++u32 interact_coin(struct MarioState*, u32, struct Object*); +++u32 interact_water_ring(struct MarioState*, u32, struct Object*); +++u32 interact_star_or_key(struct MarioState*, u32, struct Object*); +++u32 interact_bbh_entrance(struct MarioState*, u32, struct Object*); +++u32 interact_warp(struct MarioState*, u32, struct Object*); +++u32 interact_warp_door(struct MarioState*, u32, struct Object*); +++u32 interact_door(struct MarioState*, u32, struct Object*); +++u32 interact_cannon_base(struct MarioState*, u32, struct Object*); +++u32 interact_igloo_barrier(struct MarioState*, u32, struct Object*); +++u32 interact_tornado(struct MarioState*, u32, struct Object*); +++u32 interact_whirlpool(struct MarioState*, u32, struct Object*); +++u32 interact_strong_wind(struct MarioState*, u32, struct Object*); +++u32 interact_flame(struct MarioState*, u32, struct Object*); +++u32 interact_snufit_bullet(struct MarioState*, u32, struct Object*); +++u32 interact_clam_or_bubba(struct MarioState*, u32, struct Object*); +++u32 interact_bully(struct MarioState*, u32, struct Object*); +++u32 interact_shock(struct MarioState*, u32, struct Object*); +++u32 interact_mr_blizzard(struct MarioState*, u32, struct Object*); +++u32 interact_hit_from_below(struct MarioState*, u32, struct Object*); +++u32 interact_bounce_top(struct MarioState*, u32, struct Object*); +++u32 interact_unknown_08(struct MarioState*, u32, struct Object*); +++u32 interact_damage(struct MarioState*, u32, struct Object*); +++u32 interact_breakable(struct MarioState*, u32, struct Object*); +++u32 interact_koopa_shell(struct MarioState*, u32, struct Object*); +++u32 interact_pole(struct MarioState*, u32, struct Object*); +++u32 interact_hoot(struct MarioState*, u32, struct Object*); +++u32 interact_cap(struct MarioState*, u32, struct Object*); +++u32 interact_grabbable(struct MarioState*, u32, struct Object*); +++u32 interact_text(struct MarioState*, u32, struct Object*); ++ ++ struct InteractionHandler { ++ u32 interactType; ++- u32 (*handler)(struct MarioState *, u32, struct Object *); +++ u32(*handler)(struct MarioState*, u32, struct Object*); ++ }; ++ ++ static struct InteractionHandler sInteractionHandlers[] = { ++@@ -113,6 +114,7 @@ static struct InteractionHandler sInteractionHandlers[] = { ++ { INTERACT_CAP, interact_cap }, ++ { INTERACT_GRABBABLE, interact_grabbable }, ++ { INTERACT_TEXT, interact_text }, +++ ++ }; ++ ++ static u32 sForwardKnockbackActions[][3] = { ++@@ -132,29 +134,31 @@ static u8 sJustTeleported = FALSE; ++ static u8 sPssSlideStarted = FALSE; ++ ++ /** ++- * Returns the type of cap Mario is wearing. +++ * Returns the type of hat Mario is wearing. ++ */ ++-u32 get_mario_cap_flag(struct Object *capObject) { ++- const BehaviorScript *script = virtual_to_segmented(0x13, capObject->behavior); +++u32 get_mario_cap_flag(struct Object* capObject) { +++ void* script = virtual_to_segmented(0x13, capObject->behavior); ++ ++ if (script == bhvNormalCap) { ++ return MARIO_NORMAL_CAP; ++- } else if (script == bhvMetalCap) { +++ } +++ else if (script == bhvMetalCap) { ++ return MARIO_METAL_CAP; ++- } else if (script == bhvWingCap) { +++ } +++ else if (script == bhvWingCap) { ++ return MARIO_WING_CAP; ++- } else if (script == bhvVanishCap) { +++ } +++ else if (script == bhvVanishCap) { ++ return MARIO_VANISH_CAP; ++ } ++ ++ return 0; ++ } ++- ++ /** ++ * Returns true if the passed in object has a moving angle yaw ++ * in the angular range given towards Mario. ++ */ ++-u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) { +++u32 object_facing_mario(struct MarioState* m, struct Object* o, s16 angleRange) { ++ f32 dx = m->pos[0] - o->oPosX; ++ f32 dz = m->pos[2] - o->oPosZ; ++ ++@@ -168,7 +172,7 @@ u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) ++ return FALSE; ++ } ++ ++-s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { +++s16 mario_obj_angle_to_object(struct MarioState* m, struct Object* o) { ++ f32 dx = o->oPosX - m->pos[0]; ++ f32 dz = o->oPosZ - m->pos[2]; ++ ++@@ -179,7 +183,7 @@ s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { ++ * Determines Mario's interaction with a given object depending on their proximity, ++ * action, speed, and position. ++ */ ++-u32 determine_interaction(struct MarioState *m, struct Object *o) { +++u32 determine_interaction(struct MarioState* m, struct Object* o) { ++ u32 interaction = 0; ++ u32 action = m->action; ++ ++@@ -205,11 +209,13 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { ++ interaction = INT_TRIP; ++ } ++ } ++- } else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { +++ } +++ else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { ++ if (m->vel[1] < 0.0f) { ++ interaction = INT_GROUND_POUND_OR_TWIRL; ++ } ++- } else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { +++ } +++ else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { ++ // Neither ground pounding nor twirling change Mario's vertical speed on landing., ++ // so the speed check is nearly always true (perhaps not if you land while going upwards?) ++ // Additionally, actionState it set on each first thing in their action, so this is ++@@ -217,13 +223,19 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { ++ if (m->vel[1] < 0.0f && m->actionState == 0) { ++ interaction = INT_GROUND_POUND_OR_TWIRL; ++ } ++- } else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { ++- interaction = INT_SLIDE_KICK; ++- } else if (action & ACT_FLAG_RIDING_SHELL) { +++ } +++ else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++- } else if (m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) { +++ +++ } +++ else if (action & ACT_FLAG_RIDING_SHELL || m->flags & MARIO_IS_SUPER) { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++ } +++ +++ else if ((m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) && action != ACT_DIVE) { +++ interaction = INT_FAST_ATTACK_OR_SHELL; +++ +++ } ++ } ++ ++ // Prior to this, the interaction type could be overwritten. This requires, however, ++@@ -234,50 +246,58 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { ++ if (m->pos[1] > o->oPosY) { ++ interaction = INT_HIT_FROM_ABOVE; ++ } ++- } else { +++ } +++ else { ++ if (m->pos[1] < o->oPosY) { ++ interaction = INT_HIT_FROM_BELOW; ++ } ++ } ++ } ++ +++ if (action == ACT_DIVE) +++ { +++ interaction = INT_HIT_FROM_ABOVE; +++ } +++ ++ return interaction; ++ } ++ ++ /** ++ * Sets the interaction types for INT_STATUS_INTERACTED, INT_STATUS_WAS_ATTACKED ++ */ ++-u32 attack_object(struct Object *o, s32 interaction) { +++u32 attack_object(struct Object* o, s32 interaction) { ++ u32 attackType = 0; ++ ++ switch (interaction) { ++- case INT_GROUND_POUND_OR_TWIRL: ++- attackType = ATTACK_GROUND_POUND_OR_TWIRL; ++- break; ++- case INT_PUNCH: ++- attackType = ATTACK_PUNCH; ++- break; ++- case INT_KICK: ++- case INT_TRIP: ++- attackType = ATTACK_KICK_OR_TRIP; ++- break; ++- case INT_SLIDE_KICK: ++- case INT_FAST_ATTACK_OR_SHELL: +++ case INT_GROUND_POUND_OR_TWIRL: +++ attackType = ATTACK_GROUND_POUND_OR_TWIRL; +++ break; +++ case INT_PUNCH: +++ attackType = ATTACK_PUNCH; +++ break; +++ case INT_KICK: +++ case INT_TRIP: +++ attackType = ATTACK_KICK_OR_TRIP; +++ break; +++ case INT_SLIDE_KICK: +++ attackType = ATTACK_FAST_ATTACK; +++ break; +++ case INT_FAST_ATTACK_OR_SHELL: ++ attackType = ATTACK_FAST_ATTACK; ++- break; ++- case INT_HIT_FROM_ABOVE: ++- attackType = ATTACK_FROM_ABOVE; ++- break; ++- case INT_HIT_FROM_BELOW: ++- attackType = ATTACK_FROM_BELOW; ++- break; +++ break; +++ case INT_HIT_FROM_ABOVE: +++ attackType = ATTACK_FROM_ABOVE; +++ break; +++ case INT_HIT_FROM_BELOW: +++ attackType = ATTACK_FROM_BELOW; +++ break; ++ } ++ ++ o->oInteractStatus = attackType + (INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED); ++ return attackType; ++ } ++ ++-void mario_stop_riding_object(struct MarioState *m) { +++void mario_stop_riding_object(struct MarioState* m) { ++ if (m->riddenObj != NULL) { ++ m->riddenObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ stop_shell_music(); ++@@ -285,14 +305,14 @@ void mario_stop_riding_object(struct MarioState *m) { ++ } ++ } ++ ++-void mario_grab_used_object(struct MarioState *m) { +++void mario_grab_used_object(struct MarioState* m) { ++ if (m->heldObj == NULL) { ++ m->heldObj = m->usedObj; ++ obj_set_held_state(m->heldObj, bhvCarrySomething3); ++ } ++ } ++ ++-void mario_drop_held_object(struct MarioState *m) { +++void mario_drop_held_object(struct MarioState* m) { ++ if (m->heldObj != NULL) { ++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++ stop_shell_music(); ++@@ -313,7 +333,7 @@ void mario_drop_held_object(struct MarioState *m) { ++ } ++ } ++ ++-void mario_throw_held_object(struct MarioState *m) { +++void mario_throw_held_object(struct MarioState* m) { ++ if (m->heldObj != NULL) { ++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++ stop_shell_music(); ++@@ -331,7 +351,7 @@ void mario_throw_held_object(struct MarioState *m) { ++ } ++ } ++ ++-void mario_stop_riding_and_holding(struct MarioState *m) { +++void mario_stop_riding_and_holding(struct MarioState* m) { ++ mario_drop_held_object(m); ++ mario_stop_riding_object(m); ++ ++@@ -341,40 +361,18 @@ void mario_stop_riding_and_holding(struct MarioState *m) { ++ } ++ } ++ ++-u32 does_mario_have_normal_cap_on_head(struct MarioState *m) { ++- return (m->flags & (MARIO_CAPS | MARIO_CAP_ON_HEAD)) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +++u32 does_mario_have_hat(struct MarioState* m) { +++ return (m->flags & MARIO_CAP_FLAGS) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++ } ++ ++-void mario_blow_off_cap(struct MarioState *m, f32 capSpeed) { ++- struct Object *capObject; +++void mario_blow_off_cap(struct MarioState* m, f32 capSpeed) { +++ struct Object* capObject; ++ ++- if (does_mario_have_normal_cap_on_head(m)) { ++- save_file_set_cap_pos(m->pos[0], m->pos[1], m->pos[2]); ++ ++- m->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++- ++- capObject = spawn_object(m->marioObj, MODEL_MARIOS_CAP, bhvNormalCap); ++- ++- capObject->oPosY += (m->action & ACT_FLAG_SHORT_HITBOX) ? 120.0f : 180.0f; ++- capObject->oForwardVel = capSpeed; ++- capObject->oMoveAngleYaw = (s16)(m->faceAngle[1] + 0x400); ++- ++- if (m->forwardVel < 0.0f) { ++- capObject->oMoveAngleYaw = (s16)(capObject->oMoveAngleYaw + 0x8000); ++- } ++- } ++ } ++ ++ u32 mario_lose_cap_to_enemy(u32 arg) { ++- u32 wasWearingCap = FALSE; ++- ++- if (does_mario_have_normal_cap_on_head(gMarioState)) { ++- save_file_set_flags(arg == 1 ? SAVE_FLAG_CAP_ON_KLEPTO : SAVE_FLAG_CAP_ON_UKIKI); ++- gMarioState->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++- wasWearingCap = TRUE; ++- } ++ ++- return wasWearingCap; ++ } ++ ++ void mario_retrieve_cap(void) { ++@@ -384,14 +382,15 @@ void mario_retrieve_cap(void) { ++ gMarioState->flags |= MARIO_NORMAL_CAP | MARIO_CAP_IN_HAND; ++ } ++ ++-u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { +++u32 able_to_grab_object(struct MarioState* m, UNUSED struct Object* o) { ++ u32 action = m->action; ++ ++ if (action == ACT_DIVE_SLIDE || action == ACT_DIVE) { ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { ++ return TRUE; ++ } ++- } else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { +++ } +++ else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { ++ if (m->actionArg < 2) { ++ return TRUE; ++ } ++@@ -400,9 +399,9 @@ u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { ++ return FALSE; ++ } ++ ++-struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) { +++struct Object* mario_get_collided_object(struct MarioState* m, u32 interactType) { ++ s32 i; ++- struct Object *object; +++ struct Object* object; ++ ++ for (i = 0; i < m->marioObj->numCollidedObjs; i++) { ++ object = m->marioObj->collidedObjs[i]; ++@@ -415,9 +414,13 @@ struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) ++ return NULL; ++ } ++ ++-u32 mario_check_object_grab(struct MarioState *m) { +++u32 mario_homing(struct MarioState* m) { +++ +++} +++ +++u32 mario_check_object_grab(struct MarioState* m) { ++ u32 result = FALSE; ++- const BehaviorScript *script; +++ void* script; ++ ++ if (m->input & INPUT_INTERACT_OBJ_GRABBABLE) { ++ script = virtual_to_segmented(0x13, m->interactObj->behavior); ++@@ -429,9 +432,10 @@ u32 mario_check_object_grab(struct MarioState *m) { ++ m->usedObj = m->interactObj; ++ result = set_mario_action(m, ACT_PICKING_UP_BOWSER, 0); ++ } ++- } else { +++ } +++ else { ++ s16 facingDYaw = mario_obj_angle_to_object(m, m->interactObj) - m->faceAngle[1]; ++- if (facingDYaw >= -0x2AAA && facingDYaw <= 0x2AAA) { +++ if (facingDYaw >= -0x8AAA && facingDYaw <= 0x8AAA) { ++ m->usedObj = m->interactObj; ++ ++ if (!(m->action & ACT_FLAG_AIR)) { ++@@ -447,7 +451,7 @@ u32 mario_check_object_grab(struct MarioState *m) { ++ return result; ++ } ++ ++-u32 bully_knock_back_mario(struct MarioState *mario) { +++u32 bully_knock_back_mario(struct MarioState* mario) { ++ struct BullyCollisionData marioData; ++ struct BullyCollisionData bullyData; ++ s16 newMarioYaw; ++@@ -457,7 +461,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { ++ ++ u32 bonkAction = 0; ++ ++- struct Object *bully = mario->interactObj; +++ struct Object* bully = mario->interactObj; ++ ++ //! Conversion ratios multiply to more than 1 (could allow unbounded speed ++ // with bonk cancel - but this isn't important for regular bully battery) ++@@ -465,14 +469,15 @@ u32 bully_knock_back_mario(struct MarioState *mario) { ++ f32 marioToBullyRatio = 53.0f / bully->hitboxRadius; ++ ++ init_bully_collision_data(&marioData, mario->pos[0], mario->pos[2], mario->forwardVel, ++- mario->faceAngle[1], bullyToMarioRatio, 52.0f); +++ mario->faceAngle[1], bullyToMarioRatio, 52.0f); ++ ++ init_bully_collision_data(&bullyData, bully->oPosX, bully->oPosZ, bully->oForwardVel, ++- bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); +++ bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); ++ ++ if (mario->forwardVel != 0.0f) { ++ transfer_bully_speed(&marioData, &bullyData); ++- } else { +++ } +++ else { ++ transfer_bully_speed(&bullyData, &marioData); ++ } ++ ++@@ -498,13 +503,16 @@ u32 bully_knock_back_mario(struct MarioState *mario) { ++ ++ if (mario->action & ACT_FLAG_AIR) { ++ bonkAction = ACT_BACKWARD_AIR_KB; ++- } else { +++ } +++ else { ++ bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; ++ } ++- } else { +++ } +++ else { ++ if (mario->action & ACT_FLAG_AIR) { ++ bonkAction = ACT_FORWARD_AIR_KB; ++- } else { +++ } +++ else { ++ bonkAction = ACT_SOFT_FORWARD_GROUND_KB; ++ } ++ } ++@@ -512,7 +520,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { ++ return bonkAction; ++ } ++ ++-void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { +++void bounce_off_object(struct MarioState* m, struct Object* o, f32 velY) { ++ m->pos[1] = o->oPosY + o->hitboxHeight; ++ m->vel[1] = velY; ++ ++@@ -521,12 +529,12 @@ void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { ++ play_sound(SOUND_ACTION_BOUNCE_OFF_OBJECT, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++-void hit_object_from_below(struct MarioState *m, UNUSED struct Object *o) { +++void hit_object_from_below(struct MarioState* m, UNUSED struct Object* o) { ++ m->vel[1] = 0.0f; ++ set_camera_shake_from_hit(SHAKE_HIT_FROM_BELOW); ++ } ++ ++-static u32 unused_determine_knockback_action(struct MarioState *m) { +++static u32 unused_determine_knockback_action(struct MarioState* m) { ++ u32 bonkAction; ++ s16 angleToObject = mario_obj_angle_to_object(m, m->interactObj); ++ s16 facingDYaw = angleToObject - m->faceAngle[1]; ++@@ -541,14 +549,17 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { ++ m->forwardVel *= -1.0f; ++ if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { ++ bonkAction = ACT_BACKWARD_AIR_KB; ++- } else { +++ } +++ else { ++ bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; ++ } ++- } else { +++ } +++ else { ++ m->faceAngle[1] += 0x8000; ++ if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { ++ bonkAction = ACT_FORWARD_AIR_KB; ++- } else { +++ } +++ else { ++ bonkAction = ACT_SOFT_FORWARD_GROUND_KB; ++ } ++ } ++@@ -556,7 +567,7 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { ++ return bonkAction; ++ } ++ ++-u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { +++u32 determine_knockback_action(struct MarioState* m, UNUSED s32 arg) { ++ u32 bonkAction; ++ ++ s16 terrainIndex = 0; // 1 = air, 2 = water, 0 = default ++@@ -568,15 +579,18 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++ ++ if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { ++ terrainIndex = 2; ++- } else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { +++ } +++ else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { ++ terrainIndex = 1; ++ } ++ ++ if (remainingHealth < 0x100) { ++ strengthIndex = 2; ++- } else if (m->interactObj->oDamageOrCoinValue >= 4) { +++ } +++ else if (m->interactObj->oDamageOrCoinValue >= 4) { ++ strengthIndex = 2; ++- } else if (m->interactObj->oDamageOrCoinValue >= 2) { +++ } +++ else if (m->interactObj->oDamageOrCoinValue >= 2) { ++ strengthIndex = 1; ++ } ++ ++@@ -591,12 +605,14 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++ if (m->vel[1] < 20.0f) { ++ m->vel[1] = 20.0f; ++ } ++- } else { +++ } +++ else { ++ if (m->vel[1] > 0.0f) { ++ m->vel[1] = 0.0f; ++ } ++ } ++- } else { +++ } +++ else { ++ if (m->forwardVel < 16.0f) { ++ mario_set_forward_vel(m, 16.0f); ++ } ++@@ -605,7 +621,8 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++ if (-0x4000 <= facingDYaw && facingDYaw <= 0x4000) { ++ m->forwardVel *= -1.0f; ++ bonkAction = sBackwardKnockbackActions[terrainIndex][strengthIndex]; ++- } else { +++ } +++ else { ++ m->faceAngle[1] += 0x8000; ++ bonkAction = sForwardKnockbackActions[terrainIndex][strengthIndex]; ++ } ++@@ -613,7 +630,7 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++ return bonkAction; ++ } ++ ++-void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 padding) { +++void push_mario_out_of_object(struct MarioState* m, struct Object* o, f32 padding) { ++ f32 minDistance = o->hitboxRadius + m->marioObj->hitboxRadius + padding; ++ ++ f32 offsetX = m->pos[0] - o->oPosX; ++@@ -621,14 +638,15 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin ++ f32 distance = sqrtf(offsetX * offsetX + offsetZ * offsetZ); ++ ++ if (distance < minDistance) { ++- struct Surface *floor; +++ struct Surface* floor; ++ s16 pushAngle; ++ f32 newMarioX; ++ f32 newMarioZ; ++ ++ if (distance == 0.0f) { ++ pushAngle = m->faceAngle[1]; ++- } else { +++ } +++ else { ++ pushAngle = atan2s(offsetZ, offsetX); ++ } ++ ++@@ -647,7 +665,7 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin ++ } ++ } ++ ++-void bounce_back_from_attack(struct MarioState *m, u32 interaction) { +++void bounce_back_from_attack(struct MarioState* m, u32 interaction) { ++ if (interaction & (INT_PUNCH | INT_KICK | INT_TRIP)) { ++ if (m->action == ACT_PUNCHING) { ++ m->action = ACT_MOVE_PUNCHING; ++@@ -655,7 +673,8 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { ++ ++ if (m->action & ACT_FLAG_AIR) { ++ mario_set_forward_vel(m, -16.0f); ++- } else { +++ } +++ else { ++ mario_set_forward_vel(m, -48.0f); ++ } ++ ++@@ -668,7 +687,7 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { ++ } ++ } ++ ++-u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { +++u32 should_push_or_pull_door(struct MarioState* m, struct Object* o) { ++ f32 dx = o->oPosX - m->pos[0]; ++ f32 dz = o->oPosZ - m->pos[2]; ++ ++@@ -677,40 +696,78 @@ u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { ++ return (dYaw >= -0x4000 && dYaw <= 0x4000) ? 0x00000001 : 0x00000002; ++ } ++ ++-u32 take_damage_from_interact_object(struct MarioState *m) { +++u32 take_damage_from_interact_object(struct MarioState* m) { ++ s32 shake; ++ s32 damage = m->interactObj->oDamageOrCoinValue; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ if (damage >= 4) { +++ shake = SHAKE_LARGE_DAMAGE; +++ } +++ else if (damage >= 2) { +++ shake = SHAKE_MED_DAMAGE; +++ } +++ else { +++ shake = SHAKE_SMALL_DAMAGE; +++ } ++ ++- if (damage >= 4) { ++- shake = SHAKE_LARGE_DAMAGE; ++- } else if (damage >= 2) { ++- shake = SHAKE_MED_DAMAGE; ++- } else { ++- shake = SHAKE_SMALL_DAMAGE; ++- } +++ if (!(m->flags & MARIO_CAP_ON_HEAD)) { +++ damage += (damage + 1) / 2; +++ } ++ ++- if (!(m->flags & MARIO_CAP_ON_HEAD)) { ++- damage += (damage + 1) / 2; ++- } +++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { ++ ++- if (m->flags & MARIO_METAL_CAP) { ++- damage = 0; ++- } +++ damage = 0; +++ } ++ ++- m->hurtCounter += 4 * damage; ++ ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- set_camera_shake_from_hit(shake); ++ +++ m->hurtCounter += 4 * damage; +++ } +++ } +++ if (!(m->flags & MARIO_METAL_CAP)) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem == SONIC_HEALTH) +++ { +++ if (gMarioState->numCoins > 0) +++ { +++ damage = 0; +++ shake = SHAKE_MED_DAMAGE; +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ } +++ else +++ { +++ shake = SHAKE_LARGE_DAMAGE; +++ m->health = 0xFF; +++ m->hurtCounter += 4 * damage; +++ } +++ } +++ } +++ } +++ +++ set_camera_shake_from_hit(shake); ++ return damage; ++ } ++ ++-u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { +++u32 take_damage_and_knock_back(struct MarioState* m, struct Object* o) { ++ u32 damage; ++ ++- if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) +++ if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) ++ && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; ++ m->interactObj = o; ++@@ -727,45 +784,55 @@ u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { ++ ++ update_mario_sound_and_camera(m); ++ return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), ++- damage); +++ damage); ++ } ++ ++ return FALSE; ++ } ++ ++-void reset_mario_pitch(struct MarioState *m) { +++void reset_mario_pitch(struct MarioState* m) { ++ if (m->action == ACT_WATER_JUMP || m->action == ACT_SHOT_FROM_CANNON || m->action == ACT_FLYING) { ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ m->faceAngle[0] = 0; ++ } ++ } ++ ++-u32 interact_coin(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_coin(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ m->numCoins += o->oDamageOrCoinValue; ++ m->healCounter += 4 * o->oDamageOrCoinValue; ++ ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++- +++ //add 100 coins ++ if (COURSE_IS_MAIN_COURSE(gCurrCourseNum) && m->numCoins - o->oDamageOrCoinValue < 100 ++ && m->numCoins >= 100) { ++- bhv_spawn_star_no_level_exit(6); +++ if (count_objects_with_behavior(bhvSpawnedStarNoLevelExit) < 1) { +++ if (m->coinstartotal > 6) +++ { +++ bhv_spawn_star_no_level_exit(6); +++ } +++ else +++ { +++ bhv_spawn_emerald_no_level_exit(6, m->coinstartotal); +++ } +++ } ++ } ++-#ifdef VERSION_SH +++ ++ if (o->oDamageOrCoinValue >= 2) { ++- queue_rumble_data(5, 80); +++ ++ } ++-#endif ++ ++ return FALSE; ++ } ++ ++-u32 interact_water_ring(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_water_ring(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ m->healCounter += 4 * o->oDamageOrCoinValue; +++ m->drownTimer = 0; +++ stop_drown_music(); ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++ return FALSE; ++ } ++ ++-u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_star_or_key(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 starIndex; ++ u32 starGrabAction = ACT_STAR_DANCE_EXIT; ++ u32 noExit = (o->oInteractionSubtype & INT_SUBTYPE_NO_EXIT) != 0; ++@@ -773,9 +840,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O ++ ++ if (m->health >= 0x100) { ++ mario_stop_riding_and_holding(m); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ ++ if (!noExit) { ++ m->hurtCounter = 0; ++@@ -821,6 +886,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O ++ play_sound(SOUND_MENU_STAR_SOUND, m->marioObj->header.gfx.cameraToObject); ++ #ifndef VERSION_JP ++ update_mario_sound_and_camera(m); +++ // func_802521A0 ++ #endif ++ ++ if (grandStar) { ++@@ -833,7 +899,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O ++ return FALSE; ++ } ++ ++-u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_bbh_entrance(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (m->action != ACT_BBH_ENTER_SPIN && m->action != ACT_BBH_ENTER_JUMP) { ++ mario_stop_riding_and_holding(m); ++ ++@@ -851,7 +917,7 @@ u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct ++ return FALSE; ++ } ++ ++-u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_warp(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 action; ++ ++ if (o->oInteractionSubtype & INT_SUBTYPE_FADING_WARP) { ++@@ -860,7 +926,8 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ if (action == ACT_TELEPORT_FADE_IN) { ++ sJustTeleported = TRUE; ++ ++- } else if (!sJustTeleported) { +++ } +++ else if (!sJustTeleported) { ++ if (action == ACT_IDLE || action == ACT_PANTING || action == ACT_STANDING_AGAINST_WALL ++ || action == ACT_CROUCHING) { ++ m->interactObj = o; ++@@ -870,26 +937,21 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ return set_mario_action(m, ACT_TELEPORT_FADE_OUT, 0); ++ } ++ } ++- } else { +++ } +++ else { ++ if (m->action != ACT_EMERGE_FROM_PIPE) { ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++ m->interactObj = o; ++ m->usedObj = o; ++ ++-#ifdef VERSION_SH ++ if (o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8)) { ++ play_sound(SOUND_MENU_ENTER_PIPE, m->marioObj->header.gfx.cameraToObject); ++- queue_rumble_data(15, 80); ++- } else { +++ +++ } +++ else { ++ play_sound(SOUND_MENU_ENTER_HOLE, m->marioObj->header.gfx.cameraToObject); ++- queue_rumble_data(12, 80); +++ ++ } ++-#else ++- play_sound(o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8) ++- ? SOUND_MENU_ENTER_PIPE ++- : SOUND_MENU_ENTER_HOLE, ++- m->marioObj->header.gfx.cameraToObject); ++-#endif ++ ++ mario_stop_riding_object(m); ++ return set_mario_action(m, ACT_DISAPPEARED, (WARP_OP_WARP_OBJECT << 16) + 2); ++@@ -899,7 +961,7 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ return FALSE; ++ } ++ ++-u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_warp_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 doorAction = 0; ++ u32 saveFlags = save_file_get_flags(); ++ s16 warpDoorId = o->oBehParams >> 24; ++@@ -941,7 +1003,8 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj ++ if (doorAction == 0) { ++ if (actionArg & 0x00000001) { ++ doorAction = ACT_PULLING_DOOR; ++- } else { +++ } +++ else { ++ doorAction = ACT_PUSHING_DOOR; ++ } ++ } ++@@ -955,7 +1018,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj ++ return FALSE; ++ } ++ ++-u32 get_door_save_file_flag(struct Object *door) { +++u32 get_door_save_file_flag(struct Object* door) { ++ u32 saveFileFlag = 0; ++ s16 requiredNumStars = door->oBehParams >> 24; ++ ++@@ -963,39 +1026,41 @@ u32 get_door_save_file_flag(struct Object *door) { ++ s16 isPssDoor = door->oPosY > 500.0f; ++ ++ switch (requiredNumStars) { ++- case 1: ++- if (isPssDoor) { ++- saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; ++- } else { ++- saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; ++- } ++- break; +++ case 1: +++ if (isPssDoor) { +++ saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; +++ } +++ else { +++ saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; +++ } +++ break; ++ ++- case 3: ++- if (isCcmDoor) { ++- saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; ++- } else { ++- saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; ++- } ++- break; +++ case 3: +++ if (isCcmDoor) { +++ saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; +++ } +++ else { +++ saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; +++ } +++ break; ++ ++- case 8: ++- saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; ++- break; +++ case 8: +++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; +++ break; ++ ++- case 30: ++- saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; ++- break; +++ case 30: +++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; +++ break; ++ ++- case 50: ++- saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; ++- break; +++ case 50: +++ saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; +++ break; ++ } ++ ++ return saveFileFlag; ++ } ++ ++-u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ s16 requiredNumStars = o->oBehParams >> 24; ++ s16 numStars = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); ++ ++@@ -1007,7 +1072,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ ++ if (actionArg & 0x00000001) { ++ enterDoorAction = ACT_PULLING_DOOR; ++- } else { +++ } +++ else { ++ enterDoorAction = ACT_PUSHING_DOOR; ++ } ++ ++@@ -1024,28 +1090,29 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ } ++ ++ return set_mario_action(m, enterDoorAction, actionArg); ++- } else if (!sDisplayingDoorText) { +++ } +++ else if (!sDisplayingDoorText) { ++ u32 text = DIALOG_022 << 16; ++ ++ switch (requiredNumStars) { ++- case 1: ++- text = DIALOG_024 << 16; ++- break; ++- case 3: ++- text = DIALOG_025 << 16; ++- break; ++- case 8: ++- text = DIALOG_026 << 16; ++- break; ++- case 30: ++- text = DIALOG_027 << 16; ++- break; ++- case 50: ++- text = DIALOG_028 << 16; ++- break; ++- case 70: ++- text = DIALOG_029 << 16; ++- break; +++ case 1: +++ text = DIALOG_024 << 16; +++ break; +++ case 3: +++ text = DIALOG_025 << 16; +++ break; +++ case 8: +++ text = DIALOG_026 << 16; +++ break; +++ case 30: +++ text = DIALOG_027 << 16; +++ break; +++ case 50: +++ text = DIALOG_028 << 16; +++ break; +++ case 70: +++ text = DIALOG_029 << 16; +++ break; ++ } ++ ++ text += requiredNumStars - numStars; ++@@ -1053,7 +1120,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ sDisplayingDoorText = TRUE; ++ return set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, text); ++ } ++- } else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { +++ } +++ else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { ++ m->interactObj = o; ++ m->usedObj = o; ++ return set_mario_action(m, ACT_ENTERING_STAR_DOOR, should_push_or_pull_door(m, o)); ++@@ -1062,7 +1130,7 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ return FALSE; ++ } ++ ++-u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_cannon_base(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (m->action != ACT_IN_CANNON) { ++ mario_stop_riding_and_holding(m); ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++@@ -1074,7 +1142,7 @@ u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct O ++ return FALSE; ++ } ++ ++-u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_igloo_barrier(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ //! Sets used object without changing action (LOTS of interesting glitches, ++ // but unfortunately the igloo barrier is the only object with this interaction ++ // type) ++@@ -1084,8 +1152,8 @@ u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct ++ return FALSE; ++ } ++ ++-u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++- struct Object *marioObj = m->marioObj; +++u32 interact_tornado(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { +++ struct Object* marioObj = m->marioObj; ++ ++ if (m->action != ACT_TORNADO_TWIRLING && m->action != ACT_SQUISHED) { ++ mario_stop_riding_and_holding(m); ++@@ -1100,17 +1168,16 @@ u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Objec ++ marioObj->oMarioTornadoPosY = m->pos[1] - o->oPosY; ++ ++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(30, 60); ++-#endif +++ +++ ++ return set_mario_action(m, ACT_TORNADO_TWIRLING, m->action == ACT_TWIRLING); ++ } ++ ++ return FALSE; ++ } ++ ++-u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++- struct Object *marioObj = m->marioObj; +++u32 interact_whirlpool(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { +++ struct Object* marioObj = m->marioObj; ++ ++ if (m->action != ACT_CAUGHT_IN_WHIRLPOOL) { ++ mario_stop_riding_and_holding(m); ++@@ -1123,17 +1190,16 @@ u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Obj ++ marioObj->oMarioWhirlpoolPosY = m->pos[1] - o->oPosY; ++ ++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(30, 60); ++-#endif +++ +++ ++ return set_mario_action(m, ACT_CAUGHT_IN_WHIRLPOOL, 0); ++ } ++ ++ return FALSE; ++ } ++ ++-u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++- UNUSED struct Object *marioObj = m->marioObj; +++u32 interact_strong_wind(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { +++ UNUSED struct Object* marioObj = m->marioObj; ++ ++ if (m->action != ACT_GETTING_BLOWN) { ++ mario_stop_riding_and_holding(m); ++@@ -1154,21 +1220,45 @@ u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct O ++ return FALSE; ++ } ++ ++-u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_flame(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 burningAction = ACT_BURNING_JUMP; ++ ++- if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) +++ if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) ++ && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem == SONIC_HEALTH) +++ { +++ if (gMarioState->numCoins > 0) +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ } +++ else +++ { +++ m->health = 0xFF; +++ } +++ } +++ } ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++ m->interactObj = o; ++ ++ if ((m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) ++ || m->waterLevel - m->pos[1] > 50.0f) { ++ play_sound(SOUND_GENERAL_FLAME_OUT, m->marioObj->header.gfx.cameraToObject); ++- } else { +++ } +++ else { ++ m->marioObj->oMarioBurnTimer = 0; ++ update_mario_sound_and_camera(m); ++ play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); ++@@ -1184,12 +1274,13 @@ u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object ++ return FALSE; ++ } ++ ++-u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_snufit_bullet(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP)) { ++- if (m->flags & MARIO_METAL_CAP) { +++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; ++ play_sound(SOUND_ACTION_UNKNOWN458, m->marioObj->header.gfx.cameraToObject); ++- } else { +++ } +++ else { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; ++ m->interactObj = o; ++ take_damage_from_interact_object(m); ++@@ -1198,49 +1289,53 @@ u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct ++ update_mario_sound_and_camera(m); ++ ++ return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), ++- o->oDamageOrCoinValue); +++ o->oDamageOrCoinValue); ++ } ++ } ++ ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_clam_or_bubba(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_clam_or_bubba(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (o->oInteractionSubtype & INT_SUBTYPE_EATS_MARIO) { ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++ m->interactObj = o; ++ return set_mario_action(m, ACT_EATEN_BY_BUBBA, 0); ++- } else if (take_damage_and_knock_back(m, o)) { +++ } +++ else if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++ ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return TRUE; ++ } ++ ++-u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++ +++ +++ +++u32 interact_bully(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ UNUSED u32 unused; ++ ++ u32 interaction; ++- if (m->flags & MARIO_METAL_CAP) { +++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER) ) { +++ ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++- } else { +++ } +++ else { ++ interaction = determine_interaction(m, o); ++ } ++ ++ m->interactObj = o; +++ m->homingObj = NULL; +++ ++ ++ if (interaction & INT_ATTACK_NOT_FROM_BELOW) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ push_mario_out_of_object(m, o, 5.0f); ++ ++ m->forwardVel = -16.0f; ++@@ -1263,16 +1358,15 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object ++ ++ push_mario_out_of_object(m, o, 5.0f); ++ drop_and_set_mario_action(m, bully_knock_back_mario(m), 0); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ +++ ++ return TRUE; ++ } ++ ++ return FALSE; ++ } ++ ++-u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_shock(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) ++ && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ u32 actionArg = (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) == 0; ++@@ -1282,13 +1376,12 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object ++ ++ take_damage_from_interact_object(m); ++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(70, 60); ++-#endif +++ ++ ++ if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { ++ return drop_and_set_mario_action(m, ACT_WATER_SHOCKED, 0); ++- } else { +++ } +++ else { ++ update_mario_sound_and_camera(m); ++ return drop_and_set_mario_action(m, ACT_SHOCKED, actionArg); ++ } ++@@ -1297,18 +1390,17 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-static u32 interact_stub(UNUSED struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++static u32 interact_stub(UNUSED struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++ return FALSE; ++ } ++ ++-u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_mr_blizzard(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++@@ -1316,24 +1408,25 @@ u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct O ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_hit_from_below(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ UNUSED u32 unused; ++ ++ u32 interaction; ++- if (m->flags & MARIO_METAL_CAP) { +++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { +++ if (m->action != ACT_DIVE ) +++ { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++- } else { +++ } +++ } +++ else { ++ interaction = determine_interaction(m, o); ++ } ++ ++ if (interaction & INT_ANY_ATTACK) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ attack_object(o, interaction); ++ bounce_back_from_attack(m, interaction); ++ ++@@ -1349,33 +1442,39 @@ u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struc ++ play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); ++ #endif ++ return drop_and_set_mario_action(m, ACT_TWIRLING, 0); ++- } else { +++ } +++ else { ++ bounce_off_object(m, o, 30.0f); ++ } ++ } ++- } else if (take_damage_and_knock_back(m, o)) { +++ } +++ else if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++ ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_bounce_top(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 interaction; ++- if (m->flags & MARIO_METAL_CAP) { +++ struct Object* goomba = o; +++ if (goomba->behavior == bhvGoomba) +++ { +++ m->interactObj = o; +++ } +++ +++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++- } else { +++ } +++ else { ++ interaction = determine_interaction(m, o); ++ } ++ ++ if (interaction & INT_ATTACK_NOT_FROM_BELOW) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ attack_object(o, interaction); ++ bounce_back_from_attack(m, interaction); ++ ++@@ -1387,39 +1486,40 @@ u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Ob ++ play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); ++ #endif ++ return drop_and_set_mario_action(m, ACT_TWIRLING, 0); ++- } else { +++ } +++ else { ++ bounce_off_object(m, o, 30.0f); ++ } ++ } ++- } else if (take_damage_and_knock_back(m, o)) { +++ } +++ else if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++ ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_unknown_08(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_unknown_08(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 interaction = determine_interaction(m, o); ++ ++ if (interaction & INT_PUNCH) { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED | ATTACK_PUNCH; ++ bounce_back_from_attack(m, interaction); ++- } else if (take_damage_and_knock_back(m, o)) { +++ } +++ else if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++ ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_damage(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (take_damage_and_knock_back(m, o)) { ++ return TRUE; ++ } ++@@ -1427,20 +1527,27 @@ u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object ++ if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { ++ sDelayInvincTimer = TRUE; ++ } ++- ++ return FALSE; ++ } ++ ++-u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++- u32 interaction = determine_interaction(m, o); +++u32 interact_breakable(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { +++ void* script = virtual_to_segmented(0x13, o->behavior); ++ ++- if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { ++- attack_object(o, interaction); ++- bounce_back_from_attack(m, interaction); +++ u32 interaction = determine_interaction(m, o); +++ if (m->forwardVel >= 19.0f) +++ { +++ if (gMarioState->action == ACT_SLIDE_KICK_SLIDE || gMarioState->action == ACT_SLIDE_KICK) +++ { +++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; +++ } +++ } +++ if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { +++ attack_object(o, interaction); +++ bounce_back_from_attack(m, interaction); ++ ++- m->interactObj = o; +++ m->interactObj = o; ++ ++- switch (interaction) { +++ switch (interaction) { ++ case INT_HIT_FROM_ABOVE: ++ bounce_off_object(m, o, 30.0f); //! Not in the 0x8F mask ++ break; ++@@ -1448,15 +1555,18 @@ u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Obj ++ case INT_HIT_FROM_BELOW: ++ hit_object_from_below(m, o); ++ break; ++- } ++ ++- return TRUE; ++- } +++ } ++ ++- return FALSE; +++ return TRUE; +++ +++ } +++ +++ return FALSE; +++ ++ } ++ ++-u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_koopa_shell(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if (!(m->action & ACT_FLAG_RIDING_SHELL)) { ++ u32 interaction = determine_interaction(m, o); ++ ++@@ -1482,7 +1592,7 @@ u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct O ++ return FALSE; ++ } ++ ++-u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 check_object_grab_mario(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ if ((!(m->action & (ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ATTACKING)) || !sInvulnerable) ++ && (o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { ++ if (object_facing_mario(m, o, 0x2AAA)) { ++@@ -1495,9 +1605,7 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc ++ ++ update_mario_sound_and_camera(m); ++ play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ return set_mario_action(m, ACT_GRABBED, 0); ++ } ++ } ++@@ -1506,17 +1614,17 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc ++ return FALSE; ++ } ++ ++-u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_pole(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ s32 actionId = m->action & ACT_ID_MASK; ++ if (actionId >= 0x080 && actionId < 0x0A0) { ++ if (!(m->prevAction & ACT_FLAG_ON_POLE) || m->usedObj != o) { ++ #ifdef VERSION_SH ++ f32 velConv = m->forwardVel; // conserve the velocity. ++- struct Object *marioObj = m->marioObj; +++ struct Object* marioObj = m->marioObj; ++ u32 lowSpeed; ++ #else ++ u32 lowSpeed = (m->forwardVel <= 10.0f); ++- struct Object *marioObj = m->marioObj; +++ struct Object* marioObj = m->marioObj; ++ #endif ++ ++ mario_stop_riding_and_holding(m); ++@@ -1546,9 +1654,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ marioObj->oMarioPoleYawVel = (s32)(m->forwardVel * 0x100 + 0x1000); ++ #endif ++ reset_mario_pitch(m); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ return set_mario_action(m, ACT_GRAB_POLE_FAST, 0); ++ } ++ } ++@@ -1556,7 +1662,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ return FALSE; ++ } ++ ++-u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_hoot(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ s32 actionId = m->action & ACT_ID_MASK; ++ ++ //! Can pause to advance the global timer without falling too far, allowing ++@@ -1568,9 +1674,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ m->interactObj = o; ++ m->usedObj = o; ++ ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ update_mario_sound_and_camera(m); ++ return set_mario_action(m, ACT_RIDING_HOOT, 0); ++ } ++@@ -1578,7 +1682,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * ++ return FALSE; ++ } ++ ++-u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_cap(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 capFlag = get_mario_cap_flag(o); ++ u16 capMusic = 0; ++ u16 capTime = 0; ++@@ -1587,24 +1691,24 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o ++ m->interactObj = o; ++ o->oInteractStatus = INT_STATUS_INTERACTED; ++ ++- m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; +++ //m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; ++ m->flags |= capFlag; ++ ++ switch (capFlag) { ++- case MARIO_VANISH_CAP: ++- capTime = 600; ++- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++- break; +++ case MARIO_VANISH_CAP: +++ capTime = 600; +++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +++ break; ++ ++- case MARIO_METAL_CAP: ++- capTime = 600; ++- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); ++- break; +++ case MARIO_METAL_CAP: +++ capTime = 600; +++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); +++ break; ++ ++- case MARIO_WING_CAP: ++- capTime = 1800; ++- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++- break; +++ case MARIO_WING_CAP: +++ capTime = 1800; +++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +++ break; ++ } ++ ++ if (capTime > m->capTimer) { ++@@ -1612,9 +1716,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o ++ } ++ ++ if ((m->action & ACT_FLAG_IDLE) || m->action == ACT_WALKING) { ++- m->flags |= MARIO_CAP_IN_HAND; +++ ++ set_mario_action(m, ACT_PUTTING_ON_CAP, 0); ++- } else { +++ } +++ else { ++ m->flags |= MARIO_CAP_ON_HEAD; ++ } ++ ++@@ -1622,7 +1727,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o ++ play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); ++ ++ if (capMusic != 0) { ++- play_cap_music(capMusic); +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ play_cap_music(capMusic); +++ } ++ } ++ ++ return TRUE; ++@@ -1631,8 +1739,8 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o ++ return FALSE; ++ } ++ ++-u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) { ++- const BehaviorScript *script = virtual_to_segmented(0x13, o->behavior); +++u32 interact_grabbable(struct MarioState* m, u32 interactType, struct Object* o) { +++ void* script = virtual_to_segmented(0x13, o->behavior); ++ ++ if (o->oInteractionSubtype & INT_SUBTYPE_KICKABLE) { ++ u32 interaction = determine_interaction(m, o); ++@@ -1660,11 +1768,10 @@ u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) ++ if (script != bhvBowser) { ++ push_mario_out_of_object(m, o, -5.0f); ++ } ++- ++ return FALSE; ++ } ++ ++-u32 mario_can_talk(struct MarioState *m, u32 arg) { +++u32 mario_can_talk(struct MarioState* m, u32 arg) { ++ s16 val6; ++ ++ if ((m->action & ACT_FLAG_IDLE) != 0x00000000) { ++@@ -1698,7 +1805,7 @@ u32 mario_can_talk(struct MarioState *m, u32 arg) { ++ #define SIGN_RANGE 0x4000 ++ #endif ++ ++-u32 check_read_sign(struct MarioState *m, struct Object *o) { +++u32 check_read_sign(struct MarioState* m, struct Object* o) { ++ if ((m->input & READ_MASK) && mario_can_talk(m, 0) && object_facing_mario(m, o, SIGN_RANGE)) { ++ s16 facingDYaw = (s16)(o->oMoveAngleYaw + 0x8000) - m->faceAngle[1]; ++ if (facingDYaw >= -SIGN_RANGE && facingDYaw <= SIGN_RANGE) { ++@@ -1718,7 +1825,7 @@ u32 check_read_sign(struct MarioState *m, struct Object *o) { ++ return FALSE; ++ } ++ ++-u32 check_npc_talk(struct MarioState *m, struct Object *o) { +++u32 check_npc_talk(struct MarioState* m, struct Object* o) { ++ if ((m->input & READ_MASK) && mario_can_talk(m, 1)) { ++ s16 facingDYaw = mario_obj_angle_to_object(m, o) - m->faceAngle[1]; ++ if (facingDYaw >= -0x4000 && facingDYaw <= 0x4000) { ++@@ -1736,21 +1843,24 @@ u32 check_npc_talk(struct MarioState *m, struct Object *o) { ++ return FALSE; ++ } ++ ++-u32 interact_text(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +++u32 interact_text(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ u32 interact = FALSE; ++ ++ if (o->oInteractionSubtype & INT_SUBTYPE_SIGN) { ++ interact = check_read_sign(m, o); ++- } else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { +++ } +++ else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { ++ interact = check_npc_talk(m, o); ++- } else { +++ } +++ else { ++ push_mario_out_of_object(m, o, 2.0f); ++ } ++ ++ return interact; ++ } ++ ++-void check_kick_or_punch_wall(struct MarioState *m) { +++void check_kick_or_punch_wall(struct MarioState* m) { +++ ++ if (m->flags & (MARIO_PUNCHING | MARIO_KICKING | MARIO_TRIPPING)) { ++ Vec3f detector; ++ detector[0] = m->pos[0] + 50.0f * sins(m->faceAngle[1]); ++@@ -1766,7 +1876,8 @@ void check_kick_or_punch_wall(struct MarioState *m) { ++ mario_set_forward_vel(m, -48.0f); ++ play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); ++ m->particleFlags |= PARTICLE_TRIANGLE; ++- } else if (m->action & ACT_FLAG_AIR) { +++ } +++ else if (m->action & ACT_FLAG_AIR) { ++ mario_set_forward_vel(m, -16.0f); ++ play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); ++ m->particleFlags |= PARTICLE_TRIANGLE; ++@@ -1775,7 +1886,7 @@ void check_kick_or_punch_wall(struct MarioState *m) { ++ } ++ } ++ ++-void mario_process_interactions(struct MarioState *m) { +++void mario_process_interactions(struct MarioState* m) { ++ sDelayInvincTimer = FALSE; ++ sInvulnerable = (m->action & ACT_FLAG_INVULNERABLE) || m->invincTimer != 0; ++ ++@@ -1784,7 +1895,7 @@ void mario_process_interactions(struct MarioState *m) { ++ for (i = 0; i < 31; i++) { ++ u32 interactType = sInteractionHandlers[i].interactType; ++ if (m->collidedObjInteractTypes & interactType) { ++- struct Object *object = mario_get_collided_object(m, interactType); +++ struct Object* object = mario_get_collided_object(m, interactType); ++ ++ m->collidedObjInteractTypes &= ~interactType; ++ ++@@ -1814,7 +1925,7 @@ void mario_process_interactions(struct MarioState *m) { ++ } ++ } ++ ++-void check_death_barrier(struct MarioState *m) { +++void check_death_barrier(struct MarioState* m) { ++ if (m->pos[1] < m->floorHeight + 2048.0f) { ++ if (level_trigger_warp(m, WARP_OP_WARP_FLOOR) == 20 && !(m->flags & MARIO_UNKNOWN_18)) { ++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++@@ -1822,18 +1933,48 @@ void check_death_barrier(struct MarioState *m) { ++ } ++ } ++ ++-void check_lava_boost(struct MarioState *m) { +++void check_lava_boost(struct MarioState* m) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { ++ if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) { ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++- } +++ +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ +++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +++ +++ } +++ else +++ { +++ if (gMarioState->numCoins > 0) +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ } +++ else +++ { +++ m->health = 0xFF; +++ } +++ } +++ ++ ++ update_mario_sound_and_camera(m); ++ drop_and_set_mario_action(m, ACT_LAVA_BOOST, 0); ++ } +++ } ++ } ++ ++-void pss_begin_slide(UNUSED struct MarioState *m) { +++void pss_begin_slide(UNUSED struct MarioState* m) { ++ if (!(gHudDisplay.flags & HUD_DISPLAY_FLAG_TIMER)) { ++ level_control_timer(TIMER_CONTROL_SHOW); ++ level_control_timer(TIMER_CONTROL_START); ++@@ -1841,7 +1982,7 @@ void pss_begin_slide(UNUSED struct MarioState *m) { ++ } ++ } ++ ++-void pss_end_slide(struct MarioState *m) { +++void pss_end_slide(struct MarioState* m) { ++ //! This flag isn't set on death or level entry, allowing double star spawn ++ if (sPssSlideStarted) { ++ u16 slideTime = level_control_timer(TIMER_CONTROL_STOP); ++@@ -1853,7 +1994,7 @@ void pss_end_slide(struct MarioState *m) { ++ } ++ } ++ ++-void mario_handle_special_floors(struct MarioState *m) { +++void mario_handle_special_floors(struct MarioState* m) { ++ if ((m->action & ACT_GROUP_MASK) == ACT_GROUP_CUTSCENE) { ++ return; ++ } +diff --git a/src/game/level_update.c b/src/game/level_update.c +index 4ecb902..421b305 100644 +--- a/src/game/level_update.c ++++ b/src/game/level_update.c +@@ -1,3 +1,5 @@ ++#include "texscroll.h" ++ + #include + + #include "sm64.h" +@@ -109,10 +111,10 @@ const char *credits15[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KA + const char *credits16[] = { "5SCREEN TEXT WRITER", "TRANSLATION", "LESLIE SWAN", "MINA AKINO", + "HIRO YAMADA" }; // ...in order to make room for these 2 new lines + #else // VERSION_EU +-const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", "KOJI KONDO", +- "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; +-const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", "SATORU TAKIZAWA", +- "MASANAO ARIMOTO" }; ++const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", ++ "KOJI KONDO", "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; ++const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", ++ "SATORU TAKIZAWA", "MASANAO ARIMOTO" }; + const char *credits11[] = { "3TECHNICAL SUPPORT", "TAKAO SAWANO", "HIROHITO YOSHIMOTO", "HIROTO YADA" }; + const char *credits12[] = { "1TECHNICAL SUPPORT", "SGI N64 PROJECT STAFF" }; + const char *credits13[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KATO" }; +@@ -126,15 +128,14 @@ const char *credits16[] = { "4SCREEN TEXT WRITER", "GERMAN TRANSLATION", "THOMAS + const char *credits17[] = { "4MARIO VOICE", "PEACH VOICE", "CHARLES MARTINET", "LESLIE SWAN" }; + const char *credits18[] = { "3SPECIAL THANKS TO", "EAD STAFF", "ALL NINTENDO PERSONNEL", + #ifdef VERSION_US +- "MARIO CLUB STAFF" }; ++ "MARIO CLUB STAFF" }; + #else // VERSION_EU +- "SUPER MARIO CLUB STAFF" }; ++ "SUPER MARIO CLUB STAFF" }; + #endif + const char *credits19[] = { "1PRODUCER", "SHIGERU MIYAMOTO" }; + const char *credits20[] = { "1EXECUTIVE PRODUCER", "HIROSHI YAMAUCHI" }; + #endif + +- + struct CreditsEntry sCreditsSequence[] = { + { LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 8000, 0 }, NULL }, + { LEVEL_BOB, 1, 1, 117, { 713, 3918, -3889 }, credits01 }, +@@ -442,8 +443,7 @@ void init_mario_after_warp(void) { + + #ifndef VERSION_JP + if (gCurrLevelNum == LEVEL_BOB +- && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) +- && sTimerRunning) { ++ && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) && sTimerRunning) { + play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE), 0); + } + #endif +@@ -713,7 +713,8 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { + + switch (warpOp) { + case WARP_OP_DEMO_NEXT: +- case WARP_OP_DEMO_END: sDelayedWarpTimer = 20; // Must be one line to match on -O2 ++ case WARP_OP_DEMO_END: ++ sDelayedWarpTimer = 20; // Must be one line to match on -O2 + sSourceWarpNodeId = WARP_NODE_F0; + gSavedCourseNum = COURSE_NONE; + val04 = FALSE; +@@ -1137,7 +1138,8 @@ s32 update_level(void) { + + switch (sCurrPlayMode) { + case PLAY_MODE_NORMAL: +- changeLevel = play_mode_normal(); ++ changeLevel = play_mode_normal(); scroll_textures(); ++ scroll_textures(); + break; + case PLAY_MODE_PAUSED: + changeLevel = play_mode_paused(); +@@ -1291,6 +1293,7 @@ s32 lvl_set_current_level(UNUSED s16 arg0, s32 levelNum) { + sWarpCheckpointActive = FALSE; + gCurrLevelNum = levelNum; + gCurrCourseNum = gLevelToCourseNumTable[levelNum - 1]; ++ if (gCurrLevelNum == LEVEL_CASTLE_GROUNDS) return 0; + + if (gCurrDemoInput != NULL || gCurrCreditsEntry != NULL || gCurrCourseNum == COURSE_NONE) { + return 0; +diff --git a/src/game/level_update.c.rej b/src/game/level_update.c.rej +new file mode 100644 +index 0000000..a7fafad +--- /dev/null ++++ b/src/game/level_update.c.rej +@@ -0,0 +1,78 @@ ++diff a/src/game/level_update.c b/src/game/level_update.c (rejected hunks) ++@@ -1,3 +1,5 @@ +++#include "texscroll.h" +++ ++ #include ++ ++ #include "sm64.h" ++@@ -109,10 +111,10 @@ const char *credits15[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KA ++ const char *credits16[] = { "5SCREEN TEXT WRITER", "TRANSLATION", "LESLIE SWAN", "MINA AKINO", ++ "HIRO YAMADA" }; // ...in order to make room for these 2 new lines ++ #else // VERSION_EU ++-const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", "KOJI KONDO", ++- "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; ++-const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", "SATORU TAKIZAWA", ++- "MASANAO ARIMOTO" }; +++const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", +++ "KOJI KONDO", "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; +++const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", +++ "SATORU TAKIZAWA", "MASANAO ARIMOTO" }; ++ const char *credits11[] = { "3TECHNICAL SUPPORT", "TAKAO SAWANO", "HIROHITO YOSHIMOTO", "HIROTO YADA" }; ++ const char *credits12[] = { "1TECHNICAL SUPPORT", "SGI N64 PROJECT STAFF" }; ++ const char *credits13[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KATO" }; ++@@ -126,15 +128,14 @@ const char *credits16[] = { "4SCREEN TEXT WRITER", "GERMAN TRANSLATION", "THOMAS ++ const char *credits17[] = { "4MARIO VOICE", "PEACH VOICE", "CHARLES MARTINET", "LESLIE SWAN" }; ++ const char *credits18[] = { "3SPECIAL THANKS TO", "EAD STAFF", "ALL NINTENDO PERSONNEL", ++ #ifdef VERSION_US ++- "MARIO CLUB STAFF" }; +++ "MARIO CLUB STAFF" }; ++ #else // VERSION_EU ++- "SUPER MARIO CLUB STAFF" }; +++ "SUPER MARIO CLUB STAFF" }; ++ #endif ++ const char *credits19[] = { "1PRODUCER", "SHIGERU MIYAMOTO" }; ++ const char *credits20[] = { "1EXECUTIVE PRODUCER", "HIROSHI YAMAUCHI" }; ++ #endif ++ ++- ++ struct CreditsEntry sCreditsSequence[] = { ++ { LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 8000, 0 }, NULL }, ++ { LEVEL_BOB, 1, 1, 117, { 713, 3918, -3889 }, credits01 }, ++@@ -442,8 +443,7 @@ void init_mario_after_warp(void) { ++ ++ #ifndef VERSION_JP ++ if (gCurrLevelNum == LEVEL_BOB ++- && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) ++- && sTimerRunning) { +++ && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) && sTimerRunning) { ++ play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE), 0); ++ } ++ #endif ++@@ -713,7 +713,8 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { ++ ++ switch (warpOp) { ++ case WARP_OP_DEMO_NEXT: ++- case WARP_OP_DEMO_END: sDelayedWarpTimer = 20; // Must be one line to match on -O2 +++ case WARP_OP_DEMO_END: +++ sDelayedWarpTimer = 20; // Must be one line to match on -O2 ++ sSourceWarpNodeId = WARP_NODE_F0; ++ gSavedCourseNum = COURSE_NONE; ++ val04 = FALSE; ++@@ -1137,7 +1138,8 @@ s32 update_level(void) { ++ ++ switch (sCurrPlayMode) { ++ case PLAY_MODE_NORMAL: ++- changeLevel = play_mode_normal(); +++ changeLevel = play_mode_normal(); scroll_textures(); +++ scroll_textures(); ++ break; ++ case PLAY_MODE_PAUSED: ++ changeLevel = play_mode_paused(); ++@@ -1291,6 +1293,7 @@ s32 lvl_set_current_level(UNUSED s16 arg0, s32 levelNum) { ++ sWarpCheckpointActive = FALSE; ++ gCurrLevelNum = levelNum; ++ gCurrCourseNum = gLevelToCourseNumTable[levelNum - 1]; +++ if (gCurrLevelNum == LEVEL_CASTLE_GROUNDS) return 0; ++ ++ if (gCurrDemoInput != NULL || gCurrCreditsEntry != NULL || gCurrCourseNum == COURSE_NONE) { ++ return 0; +diff --git a/src/game/mario.c b/src/game/mario.c +index 96df793..34eaa43 100644 +--- a/src/game/mario.c ++++ b/src/game/mario.c +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_actions.h" + #include "behavior_data.h" +@@ -25,6 +26,7 @@ + #include "mario_misc.h" + #include "mario_step.h" + #include "memory.h" ++#include "ingame_menu.h" + #include "object_fields.h" + #include "object_helpers.h" + #include "object_list_processor.h" +@@ -32,6 +34,7 @@ + #include "save_file.h" + #include "sound_init.h" + #include "rumble_init.h" ++#include "seq_ids.h" + + u32 unused80339F10; + s8 filler80339F1C[20]; +@@ -40,10 +43,14 @@ s8 filler80339F1C[20]; + * ANIMATIONS * + **************************************************/ + ++ ++ ++ + /** + * Checks if Mario's animation has reached its end point. + */ + s32 is_anim_at_end(struct MarioState *m) { ++ + struct Object *o = m->marioObj; + + return (o->header.gfx.animInfo.animFrame + 1) == o->header.gfx.animInfo.curAnim->loopEnd; +@@ -238,7 +245,7 @@ s16 return_mario_anim_y_translation(struct MarioState *m) { + * Plays a sound if if Mario doesn't have the flag being checked. + */ + void play_sound_if_no_flag(struct MarioState *m, u32 soundBits, u32 flags) { +- if (!(m->flags & flags)) { ++ if ((m->flags & flags) == 0) { + play_sound(soundBits, m->marioObj->header.gfx.cameraToObject); + m->flags |= flags; + } +@@ -255,11 +262,12 @@ void play_mario_jump_sound(struct MarioState *m) { + m->marioObj->header.gfx.cameraToObject); + } else { + #endif +- play_sound(SOUND_MARIO_YAH_WAH_HOO + ((gAudioRandom % 3) << 16), ++ play_sound(SOUND_MARIO_TWIRL_BOUNCE, + m->marioObj->header.gfx.cameraToObject); + #ifndef VERSION_JP + } + #endif ++ + m->flags |= MARIO_MARIO_SOUND_PLAYED; + } + } +@@ -281,6 +289,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav + m->particleFlags |= PARTICLE_SHALLOW_WATER_SPLASH; + } else { + m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; ++ spawn_object(m, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); + } + } else { + if (m->terrainSoundAddend == (SOUND_TERRAIN_SAND << 16)) { +@@ -302,7 +311,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav + * Plays an environmental sound if one has not been played since the last action change. + */ + void play_mario_action_sound(struct MarioState *m, u32 soundBits, u32 waveParticleType) { +- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++ if ((m->flags & MARIO_ACTION_SOUND_PLAYED) == 0) { + play_sound_and_spawn_particles(m, soundBits, waveParticleType); + m->flags |= MARIO_ACTION_SOUND_PLAYED; + } +@@ -322,8 +331,8 @@ void play_mario_landing_sound(struct MarioState *m, u32 soundBits) { + * played once per action. + */ + void play_mario_landing_sound_once(struct MarioState *m, u32 soundBits) { +- play_mario_action_sound( +- m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, 1); ++ play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, ++ 1); + } + + /** +@@ -349,8 +358,9 @@ void play_mario_heavy_landing_sound_once(struct MarioState *m, u32 soundBits) { + */ + void play_mario_sound(struct MarioState *m, s32 actionSound, s32 marioSound) { + if (actionSound == SOUND_ACTION_TERRAIN_JUMP) { +- play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? (s32) SOUND_ACTION_METAL_JUMP +- : (s32) SOUND_ACTION_TERRAIN_JUMP, 1); ++ play_mario_action_sound( ++ m, (m->flags & MARIO_METAL_CAP) ? (s32)SOUND_ACTION_METAL_JUMP ++ : (s32)SOUND_ACTION_TERRAIN_JUMP, 1); + } else { + play_sound_if_no_flag(m, actionSound, MARIO_ACTION_SOUND_PLAYED); + } +@@ -379,6 +389,8 @@ void mario_set_forward_vel(struct MarioState *m, f32 forwardVel) { + + m->vel[0] = (f32) m->slideVelX; + m->vel[2] = (f32) m->slideVelZ; ++ ++ + } + + /** +@@ -396,7 +408,7 @@ s32 mario_get_floor_class(struct MarioState *m) { + floorClass = SURFACE_CLASS_DEFAULT; + } + +- if (m->floor != NULL) { ++ if (m->floor) { + switch (m->floor->type) { + case SURFACE_NOT_SLIPPERY: + case SURFACE_HARD_NOT_SLIPPERY: +@@ -462,10 +474,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { + s32 ret = SOUND_TERRAIN_DEFAULT << 16; + s32 floorType; + +- if (m->floor != NULL) { ++ if (m->floor) { + floorType = m->floor->type; + +- if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight < (m->waterLevel - 10))) { ++ if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight <= (m->waterLevel+1))) { + // Water terrain sound, excluding LLL since it uses water in the volcano. + ret = SOUND_TERRAIN_WATER << 16; + } else if (SURFACE_IS_QUICKSAND(floorType)) { +@@ -509,6 +521,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { + } + + ret = sTerrainSounds[terrainType][floorSoundType] << 16; ++ ++ if (m->floor->type == SURFACE_BURNING && (m->flags & MARIO_IS_SUPER)) { ++ ret = SOUND_TERRAIN_WATER << 16; ++ } + } + } + +@@ -607,25 +623,26 @@ s32 mario_floor_is_slope(struct MarioState *m) { + f32 normY; + + if ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE +- && m->floor->normal.y < 0.9998477f) { // ~cos(1 deg) ++ && m->floor->normal.y < 0.9998477f //~cos(1 deg) ++ ) { + return TRUE; + } + + switch (mario_get_floor_class(m)) { + case SURFACE_VERY_SLIPPERY: +- normY = 0.9961947f; // ~cos(5 deg) ++ normY = 0.9961947f; //~cos(5 deg) + break; + + case SURFACE_SLIPPERY: +- normY = 0.9848077f; // ~cos(10 deg) ++ normY = 0.9848077f; //~cos(10 deg) + break; + + default: +- normY = 0.9659258f; // ~cos(15 deg) ++ normY = 0.9659258f; //~cos(15 deg) + break; + + case SURFACE_NOT_SLIPPERY: +- normY = 0.9396926f; // ~cos(20 deg) ++ normY = 0.9396926f; //~cos(20 deg) + break; + } + +@@ -646,19 +663,19 @@ s32 mario_floor_is_steep(struct MarioState *m) { + if (!mario_facing_downhill(m, FALSE)) { + switch (mario_get_floor_class(m)) { + case SURFACE_VERY_SLIPPERY: +- normY = 0.9659258f; // ~cos(15 deg) ++ normY = 0.9659258f; //~cos(15 deg) + break; + + case SURFACE_SLIPPERY: +- normY = 0.9396926f; // ~cos(20 deg) ++ normY = 0.9396926f; //~cos(20 deg) + break; + + default: +- normY = 0.8660254f; // ~cos(30 deg) ++ normY = 0.8660254f; //~cos(30 deg) + break; + + case SURFACE_NOT_SLIPPERY: +- normY = 0.8660254f; // ~cos(30 deg) ++ normY = 0.8660254f; //~cos(30 deg) + break; + } + +@@ -754,7 +771,7 @@ void set_steep_jump_action(struct MarioState *m) { + m->faceAngle[1] = atan2s(x, y) + angleTemp; + } + +- drop_and_set_mario_action(m, ACT_STEEP_JUMP, 0); ++ drop_and_set_mario_action(m, ACT_JUMP, 0); + } + + /** +@@ -773,24 +790,32 @@ static void set_mario_y_vel_based_on_fspeed(struct MarioState *m, f32 initialVel + /** + * Transitions for a variety of airborne actions. + */ ++ ++ ++ ++ + static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actionArg) { + f32 fowardVel; + +- if ((m->squishTimer != 0 || m->quicksandDepth >= 1.0f) +- && (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING)) { +- action = ACT_JUMP; ++ if (m->squishTimer != 0 || m->quicksandDepth >= 1.0f) { ++ if (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING) { ++ action = ACT_JUMP; ++ ++ } + } + + switch (action) { + case ACT_DOUBLE_JUMP: +- set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); +- m->forwardVel *= 0.8f; ++ m->forwardVel = 40.0f; ++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); ++ ++ + break; + + case ACT_BACKFLIP: + m->marioObj->header.gfx.animInfo.animID = -1; +- m->forwardVel = -16.0f; +- set_mario_y_vel_based_on_fspeed(m, 62.0f, 0.0f); ++ m->forwardVel = -0.0f; ++ set_mario_y_vel_based_on_fspeed(m, 70.0f, 0.0f); + break; + + case ACT_TRIPLE_JUMP: +@@ -821,8 +846,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + case ACT_JUMP: + case ACT_HOLD_JUMP: + m->marioObj->header.gfx.animInfo.animID = -1; +- set_mario_y_vel_based_on_fspeed(m, 42.0f, 0.25f); +- m->forwardVel *= 0.8f; ++ ++ if (m->forwardVel > 140.0f) ++ { ++ m->forwardVel = 140.0f; ++ } ++ if (m->forwardVel <= 10.0f) ++ { ++ ++ m->forwardVel *= 0.5f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); ++ } ++ else ++ { ++ set_mario_y_vel_based_on_fspeed(m, 59.0f, 0.25f); ++ } ++ } ++ else ++ { ++ m->forwardVel *= 0.4f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); ++ } ++ else ++ { ++ set_mario_y_vel_based_on_fspeed(m, 49.0f, 0.25f); ++ } ++ } + break; + + case ACT_WALL_KICK_AIR: +@@ -850,14 +903,168 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + m->vel[1] = 84.0f; + if (actionArg == 0) { + m->forwardVel = 0.0f; ++ + } + break; + + case ACT_DIVE: +- if ((fowardVel = m->forwardVel + 15.0f) > 48.0f) { +- fowardVel = 48.0f; +- } ++ if (m->homingObj != NULL) ++ { ++ if (m->homingObj == m->usedObj) ++ { ++ m->homingObj = NULL; ++ } ++ else ++ { ++ ++ } ++ ++ ++ } ++ /* ++ if ((fowardVel = m->forwardVel + 15.0f) > 28.0f) { ++ m->homingObj = NULL; ++ m->actionTimer = 0; ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) ++ { ++ ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); ++ } ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); ++ } ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); ++ } ++ ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); ++ } ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); ++ } ++ //if (m->interactObj == NULL) ++ if (m->homingObj != NULL) ++ { ++ spawn_object(m->homingObj, MODEL_GOOMBA, bhvReticle); ++ if (m->homingObj->oPosY > m->pos[1]) ++ { ++ m->homingObj = NULL; ++ } ++ } ++ if (m->homingObj == NULL) ++ { ++ fowardVel = 48.0f; ++ ++ + mario_set_forward_vel(m, fowardVel); ++ } ++ } ++ */ ++ ++if (m->homingObj == NULL) ++{ ++ fowardVel = 48.0f; ++ ++ ++ mario_set_forward_vel(m, fowardVel); ++} + break; + + case ACT_LONG_JUMP: +@@ -873,12 +1080,12 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + break; + + case ACT_SLIDE_KICK: +- m->vel[1] = 12.0f; +- if (m->forwardVel < 32.0f) { +- m->forwardVel = 32.0f; +- } ++ // m->vel[1] = 1.0f; ++ m->forwardVel *= 1.5f; ++ + break; + ++ + case ACT_JUMP_KICK: + m->vel[1] = 20.0f; + break; +@@ -896,19 +1103,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 actionArg) { + s16 floorClass = mario_get_floor_class(m); + f32 forwardVel = m->forwardVel; +- f32 mag = min(m->intendedMag, 8.0f); ++ f32 mag = min(m->intendedMag, 10.0f); ++ f32 val04; ++ val04 = m->intendedMag > m->forwardVel ? m->intendedMag : m->forwardVel; + + switch (action) { + case ACT_WALKING: + if (floorClass != SURFACE_CLASS_VERY_SLIPPERY) { +- if (0.0f <= forwardVel && forwardVel < mag) { +- m->forwardVel = mag; ++ if (0.0f <= forwardVel) { ++ if (m->forwardVel <= mag) ++ { ++ m->forwardVel = mag; ++ } ++ + } + } + + m->marioObj->oMarioWalkingPitch = 0; + break; + ++ case ACT_SLIDE_KICK: ++ ++ m->forwardVel *= 10.0f; ++ break; ++ ++ case ACT_SLIDE_KICK_SLIDE: ++ ++ m->forwardVel *= 10.0f; ++ break; ++ ++ + case ACT_HOLD_WALKING: + if (0.0f <= forwardVel && forwardVel < mag / 2.0f) { + m->forwardVel = mag / 2.0f; +@@ -939,9 +1163,14 @@ static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 + * Transition for certain submerged actions, which is actually just the metal jump actions. + */ + static u32 set_mario_action_submerged(struct MarioState *m, u32 action, UNUSED u32 actionArg) { +- if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { +- m->vel[1] = 32.0f; +- } ++ ++ if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { ++ ++ m->vel[1] = 32.0f; ++ ++ ++ } ++ + + return action; + } +@@ -1027,42 +1256,15 @@ s32 set_jump_from_landing(struct MarioState *m) { + if (mario_floor_is_steep(m)) { + set_steep_jump_action(m); + } else { +- if ((m->doubleJumpTimer == 0) || (m->squishTimer != 0)) { ++ if ((m->doubleJumpTimer == 0) ) { + set_mario_action(m, ACT_JUMP, 0); + } else { +- switch (m->prevAction) { +- case ACT_JUMP_LAND: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_FREEFALL_LAND: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_SIDE_FLIP_LAND_STOP: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_DOUBLE_JUMP_LAND: +- // If Mario has a wing cap, he ignores the typical speed +- // requirement for a triple jump. +- if (m->flags & MARIO_WING_CAP) { +- set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); +- } else if (m->forwardVel > 20.0f) { +- set_mario_action(m, ACT_TRIPLE_JUMP, 0); +- } else { +- set_mario_action(m, ACT_JUMP, 0); +- } +- break; +- +- default: +- set_mario_action(m, ACT_JUMP, 0); +- break; +- } ++ set_mario_action(m, ACT_JUMP, 0); ++ + } + } + +- m->doubleJumpTimer = 0; ++ + + return TRUE; + } +@@ -1105,9 +1307,42 @@ s32 drop_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg) { + * Increment Mario's hurt counter and set a new action. + */ + s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s16 hurtCounter) { +- m->hurtCounter = hurtCounter; ++ //sonic bowser stomp ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter = hurtCounter; ++ } ++ else ++ { ++ m->hurtCounter = 0; ++ if (gMarioState->numCoins > 0) ++ { ++ ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { + +- return set_mario_action(m, action, actionArg); ++ m->health = 0xFF; ++ ++ } ++ } ++ } ++ return set_mario_action(m, action, actionArg); ++ + } + + /** +@@ -1115,6 +1350,7 @@ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s + * actions. A common variant of the below function. + */ + s32 check_common_action_exits(struct MarioState *m) { ++ + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_JUMP, 0); + } +@@ -1172,8 +1408,8 @@ s32 transition_submerged_to_walking(struct MarioState *m) { + * non-submerged action. This also applies the water surface camera preset. + */ + s32 set_water_plunge_action(struct MarioState *m) { +- m->forwardVel = m->forwardVel / 4.0f; +- m->vel[1] = m->vel[1] / 2.0f; ++ m->forwardVel = m->forwardVel / 4.1f; ++ m->vel[1] = m->vel[1] / 2.1f; + + m->pos[1] = m->waterLevel - 100; + +@@ -1181,7 +1417,7 @@ s32 set_water_plunge_action(struct MarioState *m) { + + vec3s_set(m->angleVel, 0, 0, 0); + +- if (!(m->action & ACT_FLAG_DIVING)) { ++ if ((m->action & ACT_FLAG_DIVING) == 0) { + m->faceAngle[0] = 0; + } + +@@ -1205,8 +1441,12 @@ u8 sSquishScaleOverTime[16] = { 0x46, 0x32, 0x32, 0x3C, 0x46, 0x50, 0x50, 0x3C, + void squish_mario_model(struct MarioState *m) { + if (m->squishTimer != 0xFF) { + // If no longer squished, scale back to default. ++ // Also handles the Tiny Mario and Huge Mario cheats. + if (m->squishTimer == 0) { +- vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); ++ ++ vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); ++ ++ + } + // If timer is less than 16, rubber-band Mario's size scale up and down. + else if (m->squishTimer <= 16) { +@@ -1282,7 +1522,7 @@ void update_mario_button_inputs(struct MarioState *m) { + + if (m->input & INPUT_B_PRESSED) { + m->framesSinceB = 0; +- } else if (m->framesSinceB < 0xFF) { ++ } else if (m->framesSinceB < 0xff) { + m->framesSinceB += 1; + } + } +@@ -1292,16 +1532,37 @@ void update_mario_button_inputs(struct MarioState *m) { + */ + void update_mario_joystick_inputs(struct MarioState *m) { + struct Controller *controller = m->controller; +- f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 64.0f; ++ f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 140.0f; + + if (m->squishTimer == 0) { +- m->intendedMag = mag / 2.0f; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ m->intendedMag = mag / 1.7f; ++ } ++ else ++ { ++ m->intendedMag = mag / 2.0f; ++ } + } else { +- m->intendedMag = mag / 8.0f; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ m->intendedMag = mag / 2.7f; ++ } ++ else ++ { ++ m->intendedMag = mag / 3.0f; ++ } + } + + if (m->intendedMag > 0.0f) { ++#ifndef BETTERCAMERA + m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; ++#else ++ if (gLakituState.mode != CAMERA_MODE_NEWCAM) ++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; ++ else ++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX)-newcam_yaw+0x4000; ++#endif + m->input |= INPUT_NONZERO_ANALOG; + } else { + m->intendedYaw = m->faceAngle[1]; +@@ -1333,7 +1594,7 @@ void update_mario_geometry_inputs(struct MarioState *m) { + gasLevel = find_poison_gas_level(m->pos[0], m->pos[2]); + m->waterLevel = find_water_level(m->pos[0], m->pos[2]); + +- if (m->floor != NULL) { ++ if (m->floor) { + m->floorAngle = atan2s(m->floor->normal.z, m->floor->normal.x); + m->terrainSoundAddend = mario_get_terrain_sound_addend(m); + +@@ -1381,6 +1642,10 @@ void update_mario_inputs(struct MarioState *m) { + update_mario_geometry_inputs(m); + + debug_print_speed_action_normal(m); ++ ++ /* Moonjump cheat */ ++ ++ /*End of moonjump cheat */ + + if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) { + if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) { +@@ -1407,9 +1672,7 @@ void update_mario_inputs(struct MarioState *m) { + m->wallKickTimer--; + } + +- if (m->doubleJumpTimer > 0) { +- m->doubleJumpTimer--; +- } ++ + } + + /** +@@ -1423,7 +1686,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + heightBelowWater = (f32)(m->waterLevel - 80) - m->pos[1]; + camPreset = m->area->camera->mode; + +- if (m->action & ACT_FLAG_METAL_WATER) { ++ if ((m->action & ACT_FLAG_METAL_WATER)) { + if (camPreset != CAMERA_MODE_CLOSE) { + set_camera_mode(m->area->camera, CAMERA_MODE_CLOSE, 1); + } +@@ -1438,7 +1701,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + + // As long as Mario isn't drowning or at the top + // of the water with his head out, spawn bubbles. +- if (!(m->action & ACT_FLAG_INTANGIBLE)) { ++ if ((m->action & ACT_FLAG_INTANGIBLE) == 0) { + if ((m->pos[1] < (f32)(m->waterLevel - 160)) || (m->faceAngle[0] < -0x800)) { + m->particleFlags |= PARTICLE_BUBBLE; + } +@@ -1450,30 +1713,648 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + /** + * Both increments and decrements Mario's HP. + */ +-void update_mario_health(struct MarioState *m) { +- s32 terrainIsSnow; ++s32 update_mario_health(struct MarioState *m) { ++ s32 terrainIsSnow; ++ s32 gasTimer; ++ s32 coinTimer; ++ s32 allowTransform; ++ u8 starbob = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BOB - 1); ++ u8 starbbh = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BBH - 1); ++ u8 starccm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_CCM - 1); ++ u8 starhmc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_HMC - 1); ++ u8 starssl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SSL - 1); ++ u8 starsl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SL - 1); ++ u8 starwdw = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WDW - 1); ++ u8 starjrb = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_JRB - 1); ++ u8 starthi = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_THI - 1); ++ u8 starttc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTC - 1); ++ u8 starrr = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_RR - 1); ++ u8 starlll = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_LLL - 1); ++ u8 starddd = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_DDD - 1); ++ u8 starwf = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WF - 1); ++ u8 starttm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTM - 1); ++ ++ // gMarioState->flags &= ~MARIO_IS_SHADOW; ++ //update homing ++ ++ ++ if (m->action == ACT_JUMP || m->action == ACT_DOUBLE_JUMP || m->action == ACT_STEEP_JUMP || m->action == ACT_SIDE_FLIP) { ++ ++ m->homingObj = NULL; ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) ++ { ++ //gMarioState->numCoins = 1; ++ // gHudDisplay.coins = 1; ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) ++ { ++ ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBullyWithMinions) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBullyWithMinions); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKlepto) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKlepto); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); ++ ++ ++ ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); ++ } ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); ++ } ++ //if (m->interactObj == NULL) ++ if (m->homingObj != NULL) ++ { ++ //if (m->homingObj->oPosY > m->pos[1] - 10.0f || m->homingObj->oDistanceToMario > 800.0f) BULLY ++ if (m->homingObj->oPosY > m->pos[1] - 10.0f) ++ { ++ m->homingObj = NULL; ++ } ++ else ++ { ++ if (count_objects_with_behavior(bhvReticle) < 1) ++ { ++ spawn_object(m->homingObj, MODEL_RETICLE, bhvReticle); ++ ++ } ++ ++ } ++ } ++ else ++ { ++ m->homingObj = NULL; ++ } ++ ++ ++ ++ ++ ++ ++ ++ } ++ ++ ++ m->coinstartotal = ((starbob & (1 << 6)) + (starbbh & (1 << 6)) + (starccm & (1 << 6)) + (starhmc & (1 << 6)) + (starssl & (1 << 6)) + (starsl & (1 << 6)) + (starwdw & (1 << 6)) + (starjrb & (1 << 6)) + (starthi & (1 << 6)) + (starttc & (1 << 6)) + (starrr & (1 << 6)) + (starlll & (1 << 6)) + (starddd & (1 << 6)) + (starwf & (1 << 6)) + (starttm & (1 << 6))) / 64; //+ starbbh + starccm + starhmc + starssl + starsl + starwdw + starjrb + starthi + starttc + starrr + starlll + starddd + starwf + starttm; ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_jet_stream_water_ring_loop) < 800.0f) ++ { ++ m->drownTimer = 0; ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_manta_ray_water_ring_init) < 800.0f) ++ { ++ m->drownTimer = 0; ++ } ++ ++ ++ //u16 capMusic = 0; ++ //gsDPSetEnvColor(100, 100, 100, 100); ++ m->coinTimer++; ++ //gMarioState->numLives = m->area->camera->defMode; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ // spawn_object(m, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); ++ m->particleFlags |= PARTICLE_SPARKLES; ++ ++ if (gCurrLevelNum != LEVEL_CASTLE_GROUNDS && gCurrLevelNum != LEVEL_CASTLE && gCurrLevelNum != LEVEL_CASTLE_COURTYARD) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ ++ ++ if (m->coinTimer >= 60) ++ { ++ ++ gMarioState->numCoins += -1; ++ gHudDisplay.coins += -1; ++ m->coinTimer = 0; ++ ++ ++ } ++ ++ } ++ else ++ { ++ if (m->capTimer <= 0) { ++ ++ stop_cap_music(); ++ ++ } ++ ++ if (m->flags & ( MARIO_VANISH_CAP | MARIO_WING_CAP)) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); ++ } ++ ++ if (m->flags & MARIO_METAL_CAP) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP)); ++ } ++ ++ m->flags &= ~MARIO_IS_SUPER; ++ } ++ } ++ ++ ++ ++ ++ if (m->action != ACT_DIVE) ++ { ++ if (m->action != ACT_SPINDASH) ++ { ++ ++ //gDPSetEnvColor(gDisplayListHead++, 255, 100, 255, 255); ++ cur_obj_set_model(MODEL_SUPER_SONIC); ++ } ++ } ++ //capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ ++ ++ ++ //if (capMusic == 0) { ++ //play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); ++ //capMusic = 1; ++ //} ++ } ++ ++ ++ ++ if (m->action == ACT_JUMP) ++ { ++ ++ } ++ ++ ++ if (allowTransform != 1) ++ { ++ allowTransform = 0; ++ } ++ ++ //m->particleFlags |= PARTICLE_SPARKLES; ++ ++ ++ ++ if ((m->input & INPUT_A_PRESSED) && (m->action == ACT_GROUND_POUND)) ++ { ++ if ((gMarioState->numCoins >= 50) || (gCurrLevelNum == LEVEL_CASTLE_GROUNDS || gCurrLevelNum == LEVEL_CASTLE_COURTYARD || gCurrLevelNum == LEVEL_CASTLE)) { ++ if (count_objects_with_behavior(bhvWigglerHead) < 1) { ++ ++ allowTransform = 1.0; ++ } ++ } ++ //m->forwardVel += 50.0f; ++ //&& !(m->flags & MARIO_IS_SUPER) ++ } ++ ++ //if (stars & (1 << 6)) ++ //{ ++ //gMarioState->numLives = m->coinstartotal; ++ //} ++ //else ++ //{ ++ ++ //gMarioState->numCoins = 99; ++ //gHudDisplay.coins = 99; ++ //} ++ ++ if (m->input & INPUT_A_PRESSED) { ++ ++ // gMarioState->numCoins = 99; ++ // gHudDisplay.coins = 99; ++ } ++ ++ // change coinstar to 7y ++ if (allowTransform == 1 && !(m->flags & MARIO_IS_SUPER) && m->coinstartotal >= 7) ++ { ++ spawn_object_relative(0, 0, 0, 0, m->marioObj, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); ++ return set_mario_action(m, ACT_TRANSFORM, 0); ++ ++ ++ ++ ++ //m->forwardVel += 50.0f; ++ //play_cap_music(capMusic); ++ m->coinTimer = 0; ++ ++ ++ } ++ ++ ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins == 0) ++ { ++ if (m->health > 0x100) ++ { ++ //m->health = 0x100; ++ } ++ } ++ //obj_spawn_yellow_coins(m->marioObj, 5); ++ //play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ if (m->action == ACT_DIVE && m->interactObj != NULL) ++ { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; ++ //m->faceAngle[1] = mario_obj_angle_to_object(m, m->interactObj); ++ ++ ++ } ++ ++ if (m->action != ACT_JUMP) ++ { ++ if (m->action != ACT_SPINDASH) ++ { ++ if (m->action != ACT_DIVE) ++ { ++ if (m->action != ACT_GROUND_POUND) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_MARIO); ++ } ++ ++ } ++ } ++ } ++ } ++ ++ if (m->action == ACT_METAL_WATER_JUMP) ++ { ++ ++ if (m->vel[1] >= 1.0f) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ } ++ } ++ ++ if (m->action == ACT_JUMP) ++ { ++ ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ } ++ ++ if (m->action == ACT_SHOT_FROM_CANNON) ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_GROUND_POUND) ++ { ++ ++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.15f, 0.8f); ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_SPINDASH) ++ { ++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; ++ if (m->forwardVel < 50.0f) ++ { ++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 2900; ++ } ++ m->faceAngle[1] = m->intendedYaw; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.85f, 1.0f, 0.85f); ++ ++ ++ ++ } ++ ++ ++ ++ ++ ++ ++ if (m->action == ACT_JUMP) ++ { ++ if (m->actionTimer > 0 && m->actionTimer < 3) ++ { ++ cur_obj_scale(0.8f); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_MARIO); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_SONIC); ++ } ++ ++ ++ } ++ else ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 35; ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; ++ ++ ++ } ++ } ++ + + if (m->health >= 0x100) { + // When already healing or hurting Mario, Mario's HP is not changed any more here. + if (((u32) m->healCounter | (u32) m->hurtCounter) == 0) { +- if ((m->input & INPUT_IN_POISON_GAS) && !(m->action & ACT_FLAG_INTANGIBLE)) { +- if (!(m->flags & MARIO_METAL_CAP) && !gDebugLevelSelect) { +- m->health -= 4; ++ if ((m->input & INPUT_IN_POISON_GAS) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { ++ if (((m->flags & MARIO_METAL_CAP) == 0) && (gDebugLevelSelect == 0)) { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->health -= 4; ++ } ++ } ++ else ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->gasTimer--; ++ ++ if (gMarioState->numCoins > 0) ++ { ++ if (m->gasTimer <= 0) ++ { ++ obj_spawn_yellow_coins(m->marioObj, 1); ++ gMarioState->numCoins -= 1; ++ gHudDisplay.coins -= 1; ++ m->gasTimer = 10; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + } + } else { +- if ((m->action & ACT_FLAG_SWIMMING) && !(m->action & ACT_FLAG_INTANGIBLE)) { ++ if ((m->action & ACT_FLAG_SWIMMING) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { + terrainIsSnow = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW; + + // When Mario is near the water surface, recover health (unless in snow), + // when in snow terrains lose 3 health. + // If using the debug level select, do not lose any HP to water. + if ((m->pos[1] >= (m->waterLevel - 140)) && !terrainIsSnow) { +- m->health += 0x1A; +- } else if (!gDebugLevelSelect) { +- m->health -= (terrainIsSnow ? 3 : 1); ++ m->health += 0x4F; ++ } else if (gDebugLevelSelect == 0) { ++ // m->health -= (terrainIsSnow ? 3 : 1); + } + } + } ++ if (m->pos[1] <= (m->waterLevel - 140)) ++ { ++ if (m->flags & MARIO_METAL_CAP || m->flags & MARIO_IS_SUPER) ++ { ++ } ++ else ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->health -= (terrainIsSnow ? 3 : 1); ++ } ++ else ++ { ++ ++ ++ if (m->action != ACT_STAR_DANCE_WATER) { ++ ++ m->drownTimer++; ++ } ++ } ++ //gMarioState->numLives = m->drownTimer; ++ if (m->drownTimer == 480) ++ { ++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ ++ if (m->drownTimer == 540) ++ { ++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ ++ if (m->drownTimer == 600) ++ { ++ play_drown_music(); ++ spawn_orange_number(5, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 660) ++ { ++ spawn_orange_number(4, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 720) ++ { ++ spawn_orange_number(3, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 780) ++ { ++ spawn_orange_number(2, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 840) ++ { ++ spawn_orange_number(1, 0, 0 + 110, 0); ++ } ++ ++ if ++ (m->drownTimer == 900) ++ { ++ spawn_orange_number(0, 0 , 0 + 110, 0); ++ } ++ ++ if (m->drownTimer == 950) ++ { ++ stop_drown_music(); ++ set_mario_action(m, ACT_DROWNING, 0); ++ ++ } ++ if (m->drownTimer > 950) ++ { ++ stop_drown_music(); ++ ++ } ++ ++ } ++ } ++ if (m->pos[1] >= (m->waterLevel - 120)) ++ { ++ if (gCurrLevelNum != LEVEL_SL) ++ { ++ m->drownTimer = 0; ++ ++ } ++ else ++ { ++ m->drownTimer = 590; ++ } ++ if (!(m->action & ACT_FLAG_RIDING_SHELL)) ++ { ++ stop_drown_music(); ++ } ++ } ++ if ((m->pos[1] >= (m->waterLevel - 120)) && !terrainIsSnow && ((m->action == ACT_METAL_WATER_WALKING) || (m->action == ACT_WATER_JUMP))) { ++ m->health += 0x1A; ++ } + } + + if (m->healCounter > 0) { +@@ -1485,7 +2366,7 @@ void update_mario_health(struct MarioState *m) { + m->hurtCounter--; + } + +- if (m->health > 0x880) { ++ if (m->health >= 0x881) { + m->health = 0x880; + } + if (m->health < 0x100) { +@@ -1518,7 +2399,7 @@ void update_mario_info_for_cam(struct MarioState *m) { + + vec3s_copy(m->statusForCamera->faceAngle, m->faceAngle); + +- if (!(m->flags & MARIO_UNKNOWN_25)) { ++ if ((m->flags & MARIO_UNKNOWN_25) == 0) { + vec3f_copy(m->statusForCamera->pos, m->pos); + } + } +@@ -1577,23 +2458,30 @@ u32 update_and_return_cap_flags(struct MarioState *m) { + } + + if (m->capTimer == 0) { +- stop_cap_music(); +- +- m->flags &= ~MARIO_SPECIAL_CAPS; +- if (!(m->flags & MARIO_CAPS)) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ stop_cap_music(); ++ } ++ ++ m->flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); ++ if ((m->flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) ++ == 0) { + m->flags &= ~MARIO_CAP_ON_HEAD; + } + } +- +- if (m->capTimer == 60) { +- fadeout_cap_music(); +- } ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (m->capTimer == 0x3C) { ++ fadeout_cap_music(); ++ } ++ } + + // This code flickers the cap through a long binary string, increasing in how + // common it flickers near the end. +- if ((m->capTimer < 64) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { +- flags &= ~MARIO_SPECIAL_CAPS; +- if (!(flags & MARIO_CAPS)) { ++ if ((m->capTimer < 0x40) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { ++ flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); ++ if ((flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) ++ == 0) { + flags &= ~MARIO_CAP_ON_HEAD; + } + } +@@ -1607,7 +2495,76 @@ u32 update_and_return_cap_flags(struct MarioState *m) { + */ + void mario_update_hitbox_and_cap_model(struct MarioState *m) { + struct MarioBodyState *bodyState = m->marioBodyState; ++ extern const u16 super_sonic_sonic_super_surface_rgba16[]; ++ extern const u16 super_sonic_sonic_super_surface_replacer_rgba16[]; ++ u16* supertexture = segmented_to_virtual(super_sonic_sonic_super_surface_rgba16); ++ u16* supertexturereplacer = segmented_to_virtual(super_sonic_sonic_super_surface_replacer_rgba16); + s32 flags = update_and_return_cap_flags(m); ++ ++ m->marioObj->oSuperTimer += 1; ++ ++ ++ if (flags & MARIO_IS_SUPER) { ++ if (m->floor->type == SURFACE_BURNING) { ++ if (5.0f > absf(gMarioState->marioObj->oPosY - m->floorHeight)) { ++ spawn_object(gMarioState->marioObj, MODEL_RED_FLAME, bhvKoopaShellFlame); ++ } ++ } ++ } ++ ++ switch (m->marioObj->oSuperTimer) { ++ ++ case 2: ++ bcopy(supertexturereplacer + 5, supertexture, 2 * 32 * 32); ++ ++ break; ++ case 4: ++ bcopy(supertexturereplacer + 10, supertexture, 2 * 32 * 32); ++ break; ++ case 6: ++ bcopy(supertexturereplacer + 15, supertexture, 2 * 32 * 32); ++ break; ++ case 8: ++ bcopy(supertexturereplacer + 20, supertexture, 2 * 32 * 32); ++ break; ++ case 10: ++ bcopy(supertexturereplacer + 25, supertexture, 2 * 32 * 32); ++ break; ++ case 12: ++ bcopy(supertexturereplacer + 30, supertexture, 2 * 32 * 32); ++ break; ++ case 14: ++ bcopy(supertexturereplacer + 35, supertexture, 2 * 32 * 32); ++ break; ++ case 16: ++ bcopy(supertexturereplacer + 40, supertexture, 2 * 32 * 32); ++ break; ++ case 18: ++ bcopy(supertexturereplacer + 45, supertexture, 2 * 32 * 32); ++ break; ++ case 20: ++ bcopy(supertexturereplacer + 50, supertexture, 2 * 32 * 32); ++ break; ++ case 22: ++ bcopy(supertexturereplacer + 55, supertexture, 2 * 32 * 32); ++ break; ++ case 24: ++ bcopy(supertexturereplacer + 60, supertexture, 2 * 32 * 32); ++ break; ++ case 26: ++ bcopy(supertexturereplacer + 0, supertexture, 2 * 32 * 32); ++ m->marioObj->oSuperTimer = 0; ++ break; ++ } ++ ++ ++ ++ ++ ++ ++ ++ ++ + + if (flags & MARIO_VANISH_CAP) { + bodyState->modelState = MODEL_STATE_NOISE_ALPHA; +@@ -1621,11 +2578,13 @@ void mario_update_hitbox_and_cap_model(struct MarioState *m) { + bodyState->modelState |= MODEL_STATE_METAL; + } + +- //! (Pause buffered hitstun) Since the global timer increments while paused, +- // this can be paused through to give continual invisibility. This leads to +- // no interaction with objects. +- if ((m->invincTimer >= 3) && (gGlobalTimer & 1)) { +- gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; ++ if (m->invincTimer >= 3) { ++ //! (Pause buffered hitstun) Since the global timer increments while paused, ++ // this can be paused through to give continual invisibility. This leads to ++ // no interaction with objects. ++ if (gGlobalTimer & 1) { ++ gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; ++ } + } + + if (flags & MARIO_CAP_IN_HAND) { +@@ -1666,7 +2625,7 @@ static void debug_update_mario_cap(u16 button, s32 flags, u16 capTimer, u16 capM + // (which is also what other debug functions do), + // so likely debug behavior rather than unused behavior. + if ((gPlayer1Controller->buttonDown & Z_TRIG) && (gPlayer1Controller->buttonPressed & button) +- && !(gMarioState->flags & flags)) { ++ && ((gMarioState->flags & flags) == 0)) { + gMarioState->flags |= (flags + MARIO_CAP_ON_HEAD); + + if (capTimer > gMarioState->capTimer) { +@@ -1785,11 +2744,12 @@ s32 execute_mario_action(UNUSED struct Object *o) { + **************************************************/ + + void init_mario(void) { ++ + Vec3s capPos; + struct Object *capObject; + + unused80339F10 = 0; +- ++ gMarioState->hasEmerald = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); + gMarioState->actionTimer = 0; + gMarioState->framesSinceA = 0xFF; + gMarioState->framesSinceB = 0xFF; +@@ -1798,12 +2758,15 @@ void init_mario(void) { + + if (save_file_get_flags() + & (SAVE_FLAG_CAP_ON_GROUND | SAVE_FLAG_CAP_ON_KLEPTO | SAVE_FLAG_CAP_ON_UKIKI +- | SAVE_FLAG_CAP_ON_MR_BLIZZARD)) { ++ | SAVE_FLAG_CAP_ON_MR_BLIZZARD )) { + gMarioState->flags = 0; + } else { +- gMarioState->flags = (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- } + ++ gMarioState->flags = (MARIO_CAP_ON_HEAD | MARIO_NORMAL_CAP); ++ ++ } ++ //gMarioState->flags |= MARIO_IS_SHADOW; ++ gMarioState->flags &= ~MARIO_IS_SHADOW; + gMarioState->forwardVel = 0.0f; + gMarioState->squishTimer = 0; + +diff --git a/src/game/mario.c.rej b/src/game/mario.c.rej +new file mode 100644 +index 0000000..98100aa +--- /dev/null ++++ b/src/game/mario.c.rej +@@ -0,0 +1,1625 @@ ++diff a/src/game/mario.c b/src/game/mario.c (rejected hunks) ++@@ -2,6 +2,7 @@ ++ ++ #include "sm64.h" ++ #include "area.h" +++#include "audio/data.h" ++ #include "audio/external.h" ++ #include "behavior_actions.h" ++ #include "behavior_data.h" ++@@ -25,6 +26,7 @@ ++ #include "mario_misc.h" ++ #include "mario_step.h" ++ #include "memory.h" +++#include "ingame_menu.h" ++ #include "object_fields.h" ++ #include "object_helpers.h" ++ #include "object_list_processor.h" ++@@ -32,6 +34,7 @@ ++ #include "save_file.h" ++ #include "sound_init.h" ++ #include "rumble_init.h" +++#include "seq_ids.h" ++ ++ u32 unused80339F10; ++ s8 filler80339F1C[20]; ++@@ -40,10 +43,14 @@ s8 filler80339F1C[20]; ++ * ANIMATIONS * ++ **************************************************/ ++ +++ +++ +++ ++ /** ++ * Checks if Mario's animation has reached its end point. ++ */ ++ s32 is_anim_at_end(struct MarioState *m) { +++ ++ struct Object *o = m->marioObj; ++ ++ return (o->header.gfx.animInfo.animFrame + 1) == o->header.gfx.animInfo.curAnim->loopEnd; ++@@ -238,7 +245,7 @@ s16 return_mario_anim_y_translation(struct MarioState *m) { ++ * Plays a sound if if Mario doesn't have the flag being checked. ++ */ ++ void play_sound_if_no_flag(struct MarioState *m, u32 soundBits, u32 flags) { ++- if (!(m->flags & flags)) { +++ if ((m->flags & flags) == 0) { ++ play_sound(soundBits, m->marioObj->header.gfx.cameraToObject); ++ m->flags |= flags; ++ } ++@@ -255,11 +262,12 @@ void play_mario_jump_sound(struct MarioState *m) { ++ m->marioObj->header.gfx.cameraToObject); ++ } else { ++ #endif ++- play_sound(SOUND_MARIO_YAH_WAH_HOO + ((gAudioRandom % 3) << 16), +++ play_sound(SOUND_MARIO_TWIRL_BOUNCE, ++ m->marioObj->header.gfx.cameraToObject); ++ #ifndef VERSION_JP ++ } ++ #endif +++ ++ m->flags |= MARIO_MARIO_SOUND_PLAYED; ++ } ++ } ++@@ -281,6 +289,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav ++ m->particleFlags |= PARTICLE_SHALLOW_WATER_SPLASH; ++ } else { ++ m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; +++ spawn_object(m, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); ++ } ++ } else { ++ if (m->terrainSoundAddend == (SOUND_TERRAIN_SAND << 16)) { ++@@ -302,7 +311,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav ++ * Plays an environmental sound if one has not been played since the last action change. ++ */ ++ void play_mario_action_sound(struct MarioState *m, u32 soundBits, u32 waveParticleType) { ++- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { +++ if ((m->flags & MARIO_ACTION_SOUND_PLAYED) == 0) { ++ play_sound_and_spawn_particles(m, soundBits, waveParticleType); ++ m->flags |= MARIO_ACTION_SOUND_PLAYED; ++ } ++@@ -322,8 +331,8 @@ void play_mario_landing_sound(struct MarioState *m, u32 soundBits) { ++ * played once per action. ++ */ ++ void play_mario_landing_sound_once(struct MarioState *m, u32 soundBits) { ++- play_mario_action_sound( ++- m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, 1); +++ play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, +++ 1); ++ } ++ ++ /** ++@@ -349,8 +358,9 @@ void play_mario_heavy_landing_sound_once(struct MarioState *m, u32 soundBits) { ++ */ ++ void play_mario_sound(struct MarioState *m, s32 actionSound, s32 marioSound) { ++ if (actionSound == SOUND_ACTION_TERRAIN_JUMP) { ++- play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? (s32) SOUND_ACTION_METAL_JUMP ++- : (s32) SOUND_ACTION_TERRAIN_JUMP, 1); +++ play_mario_action_sound( +++ m, (m->flags & MARIO_METAL_CAP) ? (s32)SOUND_ACTION_METAL_JUMP +++ : (s32)SOUND_ACTION_TERRAIN_JUMP, 1); ++ } else { ++ play_sound_if_no_flag(m, actionSound, MARIO_ACTION_SOUND_PLAYED); ++ } ++@@ -379,6 +389,8 @@ void mario_set_forward_vel(struct MarioState *m, f32 forwardVel) { ++ ++ m->vel[0] = (f32) m->slideVelX; ++ m->vel[2] = (f32) m->slideVelZ; +++ +++ ++ } ++ ++ /** ++@@ -396,7 +408,7 @@ s32 mario_get_floor_class(struct MarioState *m) { ++ floorClass = SURFACE_CLASS_DEFAULT; ++ } ++ ++- if (m->floor != NULL) { +++ if (m->floor) { ++ switch (m->floor->type) { ++ case SURFACE_NOT_SLIPPERY: ++ case SURFACE_HARD_NOT_SLIPPERY: ++@@ -462,10 +474,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { ++ s32 ret = SOUND_TERRAIN_DEFAULT << 16; ++ s32 floorType; ++ ++- if (m->floor != NULL) { +++ if (m->floor) { ++ floorType = m->floor->type; ++ ++- if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight < (m->waterLevel - 10))) { +++ if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight <= (m->waterLevel+1))) { ++ // Water terrain sound, excluding LLL since it uses water in the volcano. ++ ret = SOUND_TERRAIN_WATER << 16; ++ } else if (SURFACE_IS_QUICKSAND(floorType)) { ++@@ -509,6 +521,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { ++ } ++ ++ ret = sTerrainSounds[terrainType][floorSoundType] << 16; +++ +++ if (m->floor->type == SURFACE_BURNING && (m->flags & MARIO_IS_SUPER)) { +++ ret = SOUND_TERRAIN_WATER << 16; +++ } ++ } ++ } ++ ++@@ -607,25 +623,26 @@ s32 mario_floor_is_slope(struct MarioState *m) { ++ f32 normY; ++ ++ if ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE ++- && m->floor->normal.y < 0.9998477f) { // ~cos(1 deg) +++ && m->floor->normal.y < 0.9998477f //~cos(1 deg) +++ ) { ++ return TRUE; ++ } ++ ++ switch (mario_get_floor_class(m)) { ++ case SURFACE_VERY_SLIPPERY: ++- normY = 0.9961947f; // ~cos(5 deg) +++ normY = 0.9961947f; //~cos(5 deg) ++ break; ++ ++ case SURFACE_SLIPPERY: ++- normY = 0.9848077f; // ~cos(10 deg) +++ normY = 0.9848077f; //~cos(10 deg) ++ break; ++ ++ default: ++- normY = 0.9659258f; // ~cos(15 deg) +++ normY = 0.9659258f; //~cos(15 deg) ++ break; ++ ++ case SURFACE_NOT_SLIPPERY: ++- normY = 0.9396926f; // ~cos(20 deg) +++ normY = 0.9396926f; //~cos(20 deg) ++ break; ++ } ++ ++@@ -646,19 +663,19 @@ s32 mario_floor_is_steep(struct MarioState *m) { ++ if (!mario_facing_downhill(m, FALSE)) { ++ switch (mario_get_floor_class(m)) { ++ case SURFACE_VERY_SLIPPERY: ++- normY = 0.9659258f; // ~cos(15 deg) +++ normY = 0.9659258f; //~cos(15 deg) ++ break; ++ ++ case SURFACE_SLIPPERY: ++- normY = 0.9396926f; // ~cos(20 deg) +++ normY = 0.9396926f; //~cos(20 deg) ++ break; ++ ++ default: ++- normY = 0.8660254f; // ~cos(30 deg) +++ normY = 0.8660254f; //~cos(30 deg) ++ break; ++ ++ case SURFACE_NOT_SLIPPERY: ++- normY = 0.8660254f; // ~cos(30 deg) +++ normY = 0.8660254f; //~cos(30 deg) ++ break; ++ } ++ ++@@ -754,7 +771,7 @@ void set_steep_jump_action(struct MarioState *m) { ++ m->faceAngle[1] = atan2s(x, y) + angleTemp; ++ } ++ ++- drop_and_set_mario_action(m, ACT_STEEP_JUMP, 0); +++ drop_and_set_mario_action(m, ACT_JUMP, 0); ++ } ++ ++ /** ++@@ -773,24 +790,32 @@ static void set_mario_y_vel_based_on_fspeed(struct MarioState *m, f32 initialVel ++ /** ++ * Transitions for a variety of airborne actions. ++ */ +++ +++ +++ +++ ++ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actionArg) { ++ f32 fowardVel; ++ ++- if ((m->squishTimer != 0 || m->quicksandDepth >= 1.0f) ++- && (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING)) { ++- action = ACT_JUMP; +++ if (m->squishTimer != 0 || m->quicksandDepth >= 1.0f) { +++ if (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING) { +++ action = ACT_JUMP; +++ +++ } ++ } ++ ++ switch (action) { ++ case ACT_DOUBLE_JUMP: ++- set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); ++- m->forwardVel *= 0.8f; +++ m->forwardVel = 40.0f; +++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); +++ +++ ++ break; ++ ++ case ACT_BACKFLIP: ++ m->marioObj->header.gfx.animInfo.animID = -1; ++- m->forwardVel = -16.0f; ++- set_mario_y_vel_based_on_fspeed(m, 62.0f, 0.0f); +++ m->forwardVel = -0.0f; +++ set_mario_y_vel_based_on_fspeed(m, 70.0f, 0.0f); ++ break; ++ ++ case ACT_TRIPLE_JUMP: ++@@ -821,8 +846,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio ++ case ACT_JUMP: ++ case ACT_HOLD_JUMP: ++ m->marioObj->header.gfx.animInfo.animID = -1; ++- set_mario_y_vel_based_on_fspeed(m, 42.0f, 0.25f); ++- m->forwardVel *= 0.8f; +++ +++ if (m->forwardVel > 140.0f) +++ { +++ m->forwardVel = 140.0f; +++ } +++ if (m->forwardVel <= 10.0f) +++ { +++ +++ m->forwardVel *= 0.5f; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); +++ } +++ else +++ { +++ set_mario_y_vel_based_on_fspeed(m, 59.0f, 0.25f); +++ } +++ } +++ else +++ { +++ m->forwardVel *= 0.4f; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); +++ } +++ else +++ { +++ set_mario_y_vel_based_on_fspeed(m, 49.0f, 0.25f); +++ } +++ } ++ break; ++ ++ case ACT_WALL_KICK_AIR: ++@@ -850,14 +903,168 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio ++ m->vel[1] = 84.0f; ++ if (actionArg == 0) { ++ m->forwardVel = 0.0f; +++ ++ } ++ break; ++ ++ case ACT_DIVE: ++- if ((fowardVel = m->forwardVel + 15.0f) > 48.0f) { ++- fowardVel = 48.0f; ++- } +++ if (m->homingObj != NULL) +++ { +++ if (m->homingObj == m->usedObj) +++ { +++ m->homingObj = NULL; +++ } +++ else +++ { +++ +++ } +++ +++ +++ } +++ /* +++ if ((fowardVel = m->forwardVel + 15.0f) > 28.0f) { +++ m->homingObj = NULL; +++ m->actionTimer = 0; +++ +++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) +++ { +++ +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); +++ } +++ +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); +++ } +++ +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); +++ } +++ +++ +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); +++ } +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); +++ } +++ //if (m->interactObj == NULL) +++ if (m->homingObj != NULL) +++ { +++ spawn_object(m->homingObj, MODEL_GOOMBA, bhvReticle); +++ if (m->homingObj->oPosY > m->pos[1]) +++ { +++ m->homingObj = NULL; +++ } +++ } +++ if (m->homingObj == NULL) +++ { +++ fowardVel = 48.0f; +++ +++ ++ mario_set_forward_vel(m, fowardVel); +++ } +++ } +++ */ +++ +++if (m->homingObj == NULL) +++{ +++ fowardVel = 48.0f; +++ +++ +++ mario_set_forward_vel(m, fowardVel); +++} ++ break; ++ ++ case ACT_LONG_JUMP: ++@@ -873,12 +1080,12 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio ++ break; ++ ++ case ACT_SLIDE_KICK: ++- m->vel[1] = 12.0f; ++- if (m->forwardVel < 32.0f) { ++- m->forwardVel = 32.0f; ++- } +++ // m->vel[1] = 1.0f; +++ m->forwardVel *= 1.5f; +++ ++ break; ++ +++ ++ case ACT_JUMP_KICK: ++ m->vel[1] = 20.0f; ++ break; ++@@ -896,19 +1103,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio ++ static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 actionArg) { ++ s16 floorClass = mario_get_floor_class(m); ++ f32 forwardVel = m->forwardVel; ++- f32 mag = min(m->intendedMag, 8.0f); +++ f32 mag = min(m->intendedMag, 10.0f); +++ f32 val04; +++ val04 = m->intendedMag > m->forwardVel ? m->intendedMag : m->forwardVel; ++ ++ switch (action) { ++ case ACT_WALKING: ++ if (floorClass != SURFACE_CLASS_VERY_SLIPPERY) { ++- if (0.0f <= forwardVel && forwardVel < mag) { ++- m->forwardVel = mag; +++ if (0.0f <= forwardVel) { +++ if (m->forwardVel <= mag) +++ { +++ m->forwardVel = mag; +++ } +++ ++ } ++ } ++ ++ m->marioObj->oMarioWalkingPitch = 0; ++ break; ++ +++ case ACT_SLIDE_KICK: +++ +++ m->forwardVel *= 10.0f; +++ break; +++ +++ case ACT_SLIDE_KICK_SLIDE: +++ +++ m->forwardVel *= 10.0f; +++ break; +++ +++ ++ case ACT_HOLD_WALKING: ++ if (0.0f <= forwardVel && forwardVel < mag / 2.0f) { ++ m->forwardVel = mag / 2.0f; ++@@ -939,9 +1163,14 @@ static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 ++ * Transition for certain submerged actions, which is actually just the metal jump actions. ++ */ ++ static u32 set_mario_action_submerged(struct MarioState *m, u32 action, UNUSED u32 actionArg) { ++- if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { ++- m->vel[1] = 32.0f; ++- } +++ +++ if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { +++ +++ m->vel[1] = 32.0f; +++ +++ +++ } +++ ++ ++ return action; ++ } ++@@ -1027,42 +1256,15 @@ s32 set_jump_from_landing(struct MarioState *m) { ++ if (mario_floor_is_steep(m)) { ++ set_steep_jump_action(m); ++ } else { ++- if ((m->doubleJumpTimer == 0) || (m->squishTimer != 0)) { +++ if ((m->doubleJumpTimer == 0) ) { ++ set_mario_action(m, ACT_JUMP, 0); ++ } else { ++- switch (m->prevAction) { ++- case ACT_JUMP_LAND: ++- set_mario_action(m, ACT_DOUBLE_JUMP, 0); ++- break; ++- ++- case ACT_FREEFALL_LAND: ++- set_mario_action(m, ACT_DOUBLE_JUMP, 0); ++- break; ++- ++- case ACT_SIDE_FLIP_LAND_STOP: ++- set_mario_action(m, ACT_DOUBLE_JUMP, 0); ++- break; ++- ++- case ACT_DOUBLE_JUMP_LAND: ++- // If Mario has a wing cap, he ignores the typical speed ++- // requirement for a triple jump. ++- if (m->flags & MARIO_WING_CAP) { ++- set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); ++- } else if (m->forwardVel > 20.0f) { ++- set_mario_action(m, ACT_TRIPLE_JUMP, 0); ++- } else { ++- set_mario_action(m, ACT_JUMP, 0); ++- } ++- break; ++- ++- default: ++- set_mario_action(m, ACT_JUMP, 0); ++- break; ++- } +++ set_mario_action(m, ACT_JUMP, 0); +++ ++ } ++ } ++ ++- m->doubleJumpTimer = 0; +++ ++ ++ return TRUE; ++ } ++@@ -1105,9 +1307,42 @@ s32 drop_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg) { ++ * Increment Mario's hurt counter and set a new action. ++ */ ++ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s16 hurtCounter) { ++- m->hurtCounter = hurtCounter; +++ //sonic bowser stomp +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ m->hurtCounter = hurtCounter; +++ } +++ else +++ { +++ m->hurtCounter = 0; +++ if (gMarioState->numCoins > 0) +++ { +++ +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ } +++ else +++ { ++ ++- return set_mario_action(m, action, actionArg); +++ m->health = 0xFF; +++ +++ } +++ } +++ } +++ return set_mario_action(m, action, actionArg); +++ ++ } ++ ++ /** ++@@ -1115,6 +1350,7 @@ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s ++ * actions. A common variant of the below function. ++ */ ++ s32 check_common_action_exits(struct MarioState *m) { +++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_JUMP, 0); ++ } ++@@ -1172,8 +1408,8 @@ s32 transition_submerged_to_walking(struct MarioState *m) { ++ * non-submerged action. This also applies the water surface camera preset. ++ */ ++ s32 set_water_plunge_action(struct MarioState *m) { ++- m->forwardVel = m->forwardVel / 4.0f; ++- m->vel[1] = m->vel[1] / 2.0f; +++ m->forwardVel = m->forwardVel / 4.1f; +++ m->vel[1] = m->vel[1] / 2.1f; ++ ++ m->pos[1] = m->waterLevel - 100; ++ ++@@ -1181,7 +1417,7 @@ s32 set_water_plunge_action(struct MarioState *m) { ++ ++ vec3s_set(m->angleVel, 0, 0, 0); ++ ++- if (!(m->action & ACT_FLAG_DIVING)) { +++ if ((m->action & ACT_FLAG_DIVING) == 0) { ++ m->faceAngle[0] = 0; ++ } ++ ++@@ -1205,8 +1441,12 @@ u8 sSquishScaleOverTime[16] = { 0x46, 0x32, 0x32, 0x3C, 0x46, 0x50, 0x50, 0x3C, ++ void squish_mario_model(struct MarioState *m) { ++ if (m->squishTimer != 0xFF) { ++ // If no longer squished, scale back to default. +++ // Also handles the Tiny Mario and Huge Mario cheats. ++ if (m->squishTimer == 0) { ++- vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); +++ +++ vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); +++ +++ ++ } ++ // If timer is less than 16, rubber-band Mario's size scale up and down. ++ else if (m->squishTimer <= 16) { ++@@ -1282,7 +1522,7 @@ void update_mario_button_inputs(struct MarioState *m) { ++ ++ if (m->input & INPUT_B_PRESSED) { ++ m->framesSinceB = 0; ++- } else if (m->framesSinceB < 0xFF) { +++ } else if (m->framesSinceB < 0xff) { ++ m->framesSinceB += 1; ++ } ++ } ++@@ -1292,16 +1532,37 @@ void update_mario_button_inputs(struct MarioState *m) { ++ */ ++ void update_mario_joystick_inputs(struct MarioState *m) { ++ struct Controller *controller = m->controller; ++- f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 64.0f; +++ f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 140.0f; ++ ++ if (m->squishTimer == 0) { ++- m->intendedMag = mag / 2.0f; +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ m->intendedMag = mag / 1.7f; +++ } +++ else +++ { +++ m->intendedMag = mag / 2.0f; +++ } ++ } else { ++- m->intendedMag = mag / 8.0f; +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ m->intendedMag = mag / 2.7f; +++ } +++ else +++ { +++ m->intendedMag = mag / 3.0f; +++ } ++ } ++ ++ if (m->intendedMag > 0.0f) { +++#ifndef BETTERCAMERA ++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; +++#else +++ if (gLakituState.mode != CAMERA_MODE_NEWCAM) +++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; +++ else +++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX)-newcam_yaw+0x4000; +++#endif ++ m->input |= INPUT_NONZERO_ANALOG; ++ } else { ++ m->intendedYaw = m->faceAngle[1]; ++@@ -1333,7 +1594,7 @@ void update_mario_geometry_inputs(struct MarioState *m) { ++ gasLevel = find_poison_gas_level(m->pos[0], m->pos[2]); ++ m->waterLevel = find_water_level(m->pos[0], m->pos[2]); ++ ++- if (m->floor != NULL) { +++ if (m->floor) { ++ m->floorAngle = atan2s(m->floor->normal.z, m->floor->normal.x); ++ m->terrainSoundAddend = mario_get_terrain_sound_addend(m); ++ ++@@ -1381,6 +1642,10 @@ void update_mario_inputs(struct MarioState *m) { ++ update_mario_geometry_inputs(m); ++ ++ debug_print_speed_action_normal(m); +++ +++ /* Moonjump cheat */ +++ +++ /*End of moonjump cheat */ ++ ++ if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) { ++ if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) { ++@@ -1407,9 +1672,7 @@ void update_mario_inputs(struct MarioState *m) { ++ m->wallKickTimer--; ++ } ++ ++- if (m->doubleJumpTimer > 0) { ++- m->doubleJumpTimer--; ++- } +++ ++ } ++ ++ /** ++@@ -1423,7 +1686,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { ++ heightBelowWater = (f32)(m->waterLevel - 80) - m->pos[1]; ++ camPreset = m->area->camera->mode; ++ ++- if (m->action & ACT_FLAG_METAL_WATER) { +++ if ((m->action & ACT_FLAG_METAL_WATER)) { ++ if (camPreset != CAMERA_MODE_CLOSE) { ++ set_camera_mode(m->area->camera, CAMERA_MODE_CLOSE, 1); ++ } ++@@ -1438,7 +1701,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { ++ ++ // As long as Mario isn't drowning or at the top ++ // of the water with his head out, spawn bubbles. ++- if (!(m->action & ACT_FLAG_INTANGIBLE)) { +++ if ((m->action & ACT_FLAG_INTANGIBLE) == 0) { ++ if ((m->pos[1] < (f32)(m->waterLevel - 160)) || (m->faceAngle[0] < -0x800)) { ++ m->particleFlags |= PARTICLE_BUBBLE; ++ } ++@@ -1450,30 +1713,648 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { ++ /** ++ * Both increments and decrements Mario's HP. ++ */ ++-void update_mario_health(struct MarioState *m) { ++- s32 terrainIsSnow; +++s32 update_mario_health(struct MarioState *m) { +++ s32 terrainIsSnow; +++ s32 gasTimer; +++ s32 coinTimer; +++ s32 allowTransform; +++ u8 starbob = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BOB - 1); +++ u8 starbbh = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BBH - 1); +++ u8 starccm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_CCM - 1); +++ u8 starhmc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_HMC - 1); +++ u8 starssl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SSL - 1); +++ u8 starsl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SL - 1); +++ u8 starwdw = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WDW - 1); +++ u8 starjrb = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_JRB - 1); +++ u8 starthi = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_THI - 1); +++ u8 starttc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTC - 1); +++ u8 starrr = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_RR - 1); +++ u8 starlll = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_LLL - 1); +++ u8 starddd = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_DDD - 1); +++ u8 starwf = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WF - 1); +++ u8 starttm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTM - 1); +++ +++ // gMarioState->flags &= ~MARIO_IS_SHADOW; +++ //update homing +++ +++ +++ if (m->action == ACT_JUMP || m->action == ACT_DOUBLE_JUMP || m->action == ACT_STEEP_JUMP || m->action == ACT_SIDE_FLIP) { +++ +++ m->homingObj = NULL; +++ +++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; +++ +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) +++ { +++ //gMarioState->numCoins = 1; +++ // gHudDisplay.coins = 1; +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) +++ { +++ +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBullyWithMinions) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBullyWithMinions); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKlepto) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKlepto); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); +++ +++ +++ +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); +++ } +++ +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) +++ { +++ +++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); +++ } +++ //if (m->interactObj == NULL) +++ if (m->homingObj != NULL) +++ { +++ //if (m->homingObj->oPosY > m->pos[1] - 10.0f || m->homingObj->oDistanceToMario > 800.0f) BULLY +++ if (m->homingObj->oPosY > m->pos[1] - 10.0f) +++ { +++ m->homingObj = NULL; +++ } +++ else +++ { +++ if (count_objects_with_behavior(bhvReticle) < 1) +++ { +++ spawn_object(m->homingObj, MODEL_RETICLE, bhvReticle); +++ +++ } +++ +++ } +++ } +++ else +++ { +++ m->homingObj = NULL; +++ } +++ +++ +++ +++ +++ +++ +++ +++ } +++ +++ +++ m->coinstartotal = ((starbob & (1 << 6)) + (starbbh & (1 << 6)) + (starccm & (1 << 6)) + (starhmc & (1 << 6)) + (starssl & (1 << 6)) + (starsl & (1 << 6)) + (starwdw & (1 << 6)) + (starjrb & (1 << 6)) + (starthi & (1 << 6)) + (starttc & (1 << 6)) + (starrr & (1 << 6)) + (starlll & (1 << 6)) + (starddd & (1 << 6)) + (starwf & (1 << 6)) + (starttm & (1 << 6))) / 64; //+ starbbh + starccm + starhmc + starssl + starsl + starwdw + starjrb + starthi + starttc + starrr + starlll + starddd + starwf + starttm; +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_jet_stream_water_ring_loop) < 800.0f) +++ { +++ m->drownTimer = 0; +++ } +++ +++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_manta_ray_water_ring_init) < 800.0f) +++ { +++ m->drownTimer = 0; +++ } +++ +++ +++ //u16 capMusic = 0; +++ //gsDPSetEnvColor(100, 100, 100, 100); +++ m->coinTimer++; +++ //gMarioState->numLives = m->area->camera->defMode; +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ // spawn_object(m, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); +++ m->particleFlags |= PARTICLE_SPARKLES; +++ +++ if (gCurrLevelNum != LEVEL_CASTLE_GROUNDS && gCurrLevelNum != LEVEL_CASTLE && gCurrLevelNum != LEVEL_CASTLE_COURTYARD) +++ { +++ if (gMarioState->numCoins > 0) +++ { +++ +++ +++ if (m->coinTimer >= 60) +++ { +++ +++ gMarioState->numCoins += -1; +++ gHudDisplay.coins += -1; +++ m->coinTimer = 0; +++ +++ +++ } +++ +++ } +++ else +++ { +++ if (m->capTimer <= 0) { +++ +++ stop_cap_music(); +++ +++ } +++ +++ if (m->flags & ( MARIO_VANISH_CAP | MARIO_WING_CAP)) +++ { +++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); +++ } +++ +++ if (m->flags & MARIO_METAL_CAP) +++ { +++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP)); +++ } +++ +++ m->flags &= ~MARIO_IS_SUPER; +++ } +++ } +++ +++ +++ +++ +++ if (m->action != ACT_DIVE) +++ { +++ if (m->action != ACT_SPINDASH) +++ { +++ +++ //gDPSetEnvColor(gDisplayListHead++, 255, 100, 255, 255); +++ cur_obj_set_model(MODEL_SUPER_SONIC); +++ } +++ } +++ //capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +++ +++ +++ +++ //if (capMusic == 0) { +++ //play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); +++ //capMusic = 1; +++ //} +++ } +++ +++ +++ +++ if (m->action == ACT_JUMP) +++ { +++ +++ } +++ +++ +++ if (allowTransform != 1) +++ { +++ allowTransform = 0; +++ } +++ +++ //m->particleFlags |= PARTICLE_SPARKLES; +++ +++ +++ +++ if ((m->input & INPUT_A_PRESSED) && (m->action == ACT_GROUND_POUND)) +++ { +++ if ((gMarioState->numCoins >= 50) || (gCurrLevelNum == LEVEL_CASTLE_GROUNDS || gCurrLevelNum == LEVEL_CASTLE_COURTYARD || gCurrLevelNum == LEVEL_CASTLE)) { +++ if (count_objects_with_behavior(bhvWigglerHead) < 1) { +++ +++ allowTransform = 1.0; +++ } +++ } +++ //m->forwardVel += 50.0f; +++ //&& !(m->flags & MARIO_IS_SUPER) +++ } +++ +++ //if (stars & (1 << 6)) +++ //{ +++ //gMarioState->numLives = m->coinstartotal; +++ //} +++ //else +++ //{ +++ +++ //gMarioState->numCoins = 99; +++ //gHudDisplay.coins = 99; +++ //} +++ +++ if (m->input & INPUT_A_PRESSED) { +++ +++ // gMarioState->numCoins = 99; +++ // gHudDisplay.coins = 99; +++ } +++ +++ // change coinstar to 7y +++ if (allowTransform == 1 && !(m->flags & MARIO_IS_SUPER) && m->coinstartotal >= 7) +++ { +++ spawn_object_relative(0, 0, 0, 0, m->marioObj, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); +++ return set_mario_action(m, ACT_TRANSFORM, 0); +++ +++ +++ +++ +++ //m->forwardVel += 50.0f; +++ //play_cap_music(capMusic); +++ m->coinTimer = 0; +++ +++ +++ } +++ +++ +++ if (gDialogHealthSystem == SONIC_HEALTH) +++ { +++ if (gMarioState->numCoins == 0) +++ { +++ if (m->health > 0x100) +++ { +++ //m->health = 0x100; +++ } +++ } +++ //obj_spawn_yellow_coins(m->marioObj, 5); +++ //play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); +++ } +++ if (m->action == ACT_DIVE && m->interactObj != NULL) +++ { +++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; +++ //m->faceAngle[1] = mario_obj_angle_to_object(m, m->interactObj); +++ +++ +++ } +++ +++ if (m->action != ACT_JUMP) +++ { +++ if (m->action != ACT_SPINDASH) +++ { +++ if (m->action != ACT_DIVE) +++ { +++ if (m->action != ACT_GROUND_POUND) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_MARIO); +++ } +++ +++ } +++ } +++ } +++ } +++ +++ if (m->action == ACT_METAL_WATER_JUMP) +++ { +++ +++ if (m->vel[1] >= 1.0f) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ } +++ } +++ +++ if (m->action == ACT_JUMP) +++ { +++ +++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ +++ } +++ +++ if (m->action == ACT_SHOT_FROM_CANNON) +++ { +++ +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ +++ +++ } +++ +++ if (m->action == ACT_DIVE_SLIDE) +++ { +++ +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ +++ +++ } +++ +++ if (m->action == ACT_GROUND_POUND) +++ { +++ +++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.15f, 0.8f); +++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ +++ +++ } +++ +++ if (m->action == ACT_SPINDASH) +++ { +++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; +++ if (m->forwardVel < 50.0f) +++ { +++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 2900; +++ } +++ m->faceAngle[1] = m->intendedYaw; +++ vec3f_set(m->marioObj->header.gfx.scale, 0.85f, 1.0f, 0.85f); +++ +++ +++ +++ } +++ +++ +++ +++ +++ +++ +++ if (m->action == ACT_JUMP) +++ { +++ if (m->actionTimer > 0 && m->actionTimer < 3) +++ { +++ cur_obj_scale(0.8f); +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_MARIO); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_SONIC); +++ } +++ +++ +++ } +++ else +++ { +++ +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ +++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 35; +++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; +++ +++ +++ } +++ } +++ ++ ++ if (m->health >= 0x100) { ++ // When already healing or hurting Mario, Mario's HP is not changed any more here. ++ if (((u32) m->healCounter | (u32) m->hurtCounter) == 0) { ++- if ((m->input & INPUT_IN_POISON_GAS) && !(m->action & ACT_FLAG_INTANGIBLE)) { ++- if (!(m->flags & MARIO_METAL_CAP) && !gDebugLevelSelect) { ++- m->health -= 4; +++ if ((m->input & INPUT_IN_POISON_GAS) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { +++ if (((m->flags & MARIO_METAL_CAP) == 0) && (gDebugLevelSelect == 0)) { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->health -= 4; +++ } +++ } +++ else +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->gasTimer--; +++ +++ if (gMarioState->numCoins > 0) +++ { +++ if (m->gasTimer <= 0) +++ { +++ obj_spawn_yellow_coins(m->marioObj, 1); +++ gMarioState->numCoins -= 1; +++ gHudDisplay.coins -= 1; +++ m->gasTimer = 10; +++ } +++ } +++ else +++ { +++ m->health = 0xFF; +++ } +++ } +++ } ++ } ++ } else { ++- if ((m->action & ACT_FLAG_SWIMMING) && !(m->action & ACT_FLAG_INTANGIBLE)) { +++ if ((m->action & ACT_FLAG_SWIMMING) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { ++ terrainIsSnow = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW; ++ ++ // When Mario is near the water surface, recover health (unless in snow), ++ // when in snow terrains lose 3 health. ++ // If using the debug level select, do not lose any HP to water. ++ if ((m->pos[1] >= (m->waterLevel - 140)) && !terrainIsSnow) { ++- m->health += 0x1A; ++- } else if (!gDebugLevelSelect) { ++- m->health -= (terrainIsSnow ? 3 : 1); +++ m->health += 0x4F; +++ } else if (gDebugLevelSelect == 0) { +++ // m->health -= (terrainIsSnow ? 3 : 1); ++ } ++ } ++ } +++ if (m->pos[1] <= (m->waterLevel - 140)) +++ { +++ if (m->flags & MARIO_METAL_CAP || m->flags & MARIO_IS_SUPER) +++ { +++ } +++ else +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ m->health -= (terrainIsSnow ? 3 : 1); +++ } +++ else +++ { +++ +++ +++ if (m->action != ACT_STAR_DANCE_WATER) { +++ +++ m->drownTimer++; +++ } +++ } +++ //gMarioState->numLives = m->drownTimer; +++ if (m->drownTimer == 480) +++ { +++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); +++ } +++ +++ if (m->drownTimer == 540) +++ { +++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); +++ } +++ +++ if (m->drownTimer == 600) +++ { +++ play_drown_music(); +++ spawn_orange_number(5, 0, 0 + 110, 0); +++ } +++ if (m->drownTimer == 660) +++ { +++ spawn_orange_number(4, 0, 0 + 110, 0); +++ } +++ if (m->drownTimer == 720) +++ { +++ spawn_orange_number(3, 0, 0 + 110, 0); +++ } +++ if (m->drownTimer == 780) +++ { +++ spawn_orange_number(2, 0, 0 + 110, 0); +++ } +++ if (m->drownTimer == 840) +++ { +++ spawn_orange_number(1, 0, 0 + 110, 0); +++ } +++ +++ if +++ (m->drownTimer == 900) +++ { +++ spawn_orange_number(0, 0 , 0 + 110, 0); +++ } +++ +++ if (m->drownTimer == 950) +++ { +++ stop_drown_music(); +++ set_mario_action(m, ACT_DROWNING, 0); +++ +++ } +++ if (m->drownTimer > 950) +++ { +++ stop_drown_music(); +++ +++ } +++ +++ } +++ } +++ if (m->pos[1] >= (m->waterLevel - 120)) +++ { +++ if (gCurrLevelNum != LEVEL_SL) +++ { +++ m->drownTimer = 0; +++ +++ } +++ else +++ { +++ m->drownTimer = 590; +++ } +++ if (!(m->action & ACT_FLAG_RIDING_SHELL)) +++ { +++ stop_drown_music(); +++ } +++ } +++ if ((m->pos[1] >= (m->waterLevel - 120)) && !terrainIsSnow && ((m->action == ACT_METAL_WATER_WALKING) || (m->action == ACT_WATER_JUMP))) { +++ m->health += 0x1A; +++ } ++ } ++ ++ if (m->healCounter > 0) { ++@@ -1485,7 +2366,7 @@ void update_mario_health(struct MarioState *m) { ++ m->hurtCounter--; ++ } ++ ++- if (m->health > 0x880) { +++ if (m->health >= 0x881) { ++ m->health = 0x880; ++ } ++ if (m->health < 0x100) { ++@@ -1518,7 +2399,7 @@ void update_mario_info_for_cam(struct MarioState *m) { ++ ++ vec3s_copy(m->statusForCamera->faceAngle, m->faceAngle); ++ ++- if (!(m->flags & MARIO_UNKNOWN_25)) { +++ if ((m->flags & MARIO_UNKNOWN_25) == 0) { ++ vec3f_copy(m->statusForCamera->pos, m->pos); ++ } ++ } ++@@ -1577,23 +2458,30 @@ u32 update_and_return_cap_flags(struct MarioState *m) { ++ } ++ ++ if (m->capTimer == 0) { ++- stop_cap_music(); ++- ++- m->flags &= ~MARIO_SPECIAL_CAPS; ++- if (!(m->flags & MARIO_CAPS)) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ stop_cap_music(); +++ } +++ +++ m->flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); +++ if ((m->flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) +++ == 0) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ } ++- ++- if (m->capTimer == 60) { ++- fadeout_cap_music(); ++- } +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (m->capTimer == 0x3C) { +++ fadeout_cap_music(); +++ } +++ } ++ ++ // This code flickers the cap through a long binary string, increasing in how ++ // common it flickers near the end. ++- if ((m->capTimer < 64) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { ++- flags &= ~MARIO_SPECIAL_CAPS; ++- if (!(flags & MARIO_CAPS)) { +++ if ((m->capTimer < 0x40) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { +++ flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); +++ if ((flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) +++ == 0) { ++ flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ } ++@@ -1607,7 +2495,76 @@ u32 update_and_return_cap_flags(struct MarioState *m) { ++ */ ++ void mario_update_hitbox_and_cap_model(struct MarioState *m) { ++ struct MarioBodyState *bodyState = m->marioBodyState; +++ extern const u16 super_sonic_sonic_super_surface_rgba16[]; +++ extern const u16 super_sonic_sonic_super_surface_replacer_rgba16[]; +++ u16* supertexture = segmented_to_virtual(super_sonic_sonic_super_surface_rgba16); +++ u16* supertexturereplacer = segmented_to_virtual(super_sonic_sonic_super_surface_replacer_rgba16); ++ s32 flags = update_and_return_cap_flags(m); +++ +++ m->marioObj->oSuperTimer += 1; +++ +++ +++ if (flags & MARIO_IS_SUPER) { +++ if (m->floor->type == SURFACE_BURNING) { +++ if (5.0f > absf(gMarioState->marioObj->oPosY - m->floorHeight)) { +++ spawn_object(gMarioState->marioObj, MODEL_RED_FLAME, bhvKoopaShellFlame); +++ } +++ } +++ } +++ +++ switch (m->marioObj->oSuperTimer) { +++ +++ case 2: +++ bcopy(supertexturereplacer + 5, supertexture, 2 * 32 * 32); +++ +++ break; +++ case 4: +++ bcopy(supertexturereplacer + 10, supertexture, 2 * 32 * 32); +++ break; +++ case 6: +++ bcopy(supertexturereplacer + 15, supertexture, 2 * 32 * 32); +++ break; +++ case 8: +++ bcopy(supertexturereplacer + 20, supertexture, 2 * 32 * 32); +++ break; +++ case 10: +++ bcopy(supertexturereplacer + 25, supertexture, 2 * 32 * 32); +++ break; +++ case 12: +++ bcopy(supertexturereplacer + 30, supertexture, 2 * 32 * 32); +++ break; +++ case 14: +++ bcopy(supertexturereplacer + 35, supertexture, 2 * 32 * 32); +++ break; +++ case 16: +++ bcopy(supertexturereplacer + 40, supertexture, 2 * 32 * 32); +++ break; +++ case 18: +++ bcopy(supertexturereplacer + 45, supertexture, 2 * 32 * 32); +++ break; +++ case 20: +++ bcopy(supertexturereplacer + 50, supertexture, 2 * 32 * 32); +++ break; +++ case 22: +++ bcopy(supertexturereplacer + 55, supertexture, 2 * 32 * 32); +++ break; +++ case 24: +++ bcopy(supertexturereplacer + 60, supertexture, 2 * 32 * 32); +++ break; +++ case 26: +++ bcopy(supertexturereplacer + 0, supertexture, 2 * 32 * 32); +++ m->marioObj->oSuperTimer = 0; +++ break; +++ } +++ +++ +++ +++ +++ +++ +++ +++ +++ ++ ++ if (flags & MARIO_VANISH_CAP) { ++ bodyState->modelState = MODEL_STATE_NOISE_ALPHA; ++@@ -1621,11 +2578,13 @@ void mario_update_hitbox_and_cap_model(struct MarioState *m) { ++ bodyState->modelState |= MODEL_STATE_METAL; ++ } ++ ++- //! (Pause buffered hitstun) Since the global timer increments while paused, ++- // this can be paused through to give continual invisibility. This leads to ++- // no interaction with objects. ++- if ((m->invincTimer >= 3) && (gGlobalTimer & 1)) { ++- gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; +++ if (m->invincTimer >= 3) { +++ //! (Pause buffered hitstun) Since the global timer increments while paused, +++ // this can be paused through to give continual invisibility. This leads to +++ // no interaction with objects. +++ if (gGlobalTimer & 1) { +++ gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; +++ } ++ } ++ ++ if (flags & MARIO_CAP_IN_HAND) { ++@@ -1666,7 +2625,7 @@ static void debug_update_mario_cap(u16 button, s32 flags, u16 capTimer, u16 capM ++ // (which is also what other debug functions do), ++ // so likely debug behavior rather than unused behavior. ++ if ((gPlayer1Controller->buttonDown & Z_TRIG) && (gPlayer1Controller->buttonPressed & button) ++- && !(gMarioState->flags & flags)) { +++ && ((gMarioState->flags & flags) == 0)) { ++ gMarioState->flags |= (flags + MARIO_CAP_ON_HEAD); ++ ++ if (capTimer > gMarioState->capTimer) { ++@@ -1785,11 +2744,12 @@ s32 execute_mario_action(UNUSED struct Object *o) { ++ **************************************************/ ++ ++ void init_mario(void) { +++ ++ Vec3s capPos; ++ struct Object *capObject; ++ ++ unused80339F10 = 0; ++- +++ gMarioState->hasEmerald = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); ++ gMarioState->actionTimer = 0; ++ gMarioState->framesSinceA = 0xFF; ++ gMarioState->framesSinceB = 0xFF; ++@@ -1798,12 +2758,15 @@ void init_mario(void) { ++ ++ if (save_file_get_flags() ++ & (SAVE_FLAG_CAP_ON_GROUND | SAVE_FLAG_CAP_ON_KLEPTO | SAVE_FLAG_CAP_ON_UKIKI ++- | SAVE_FLAG_CAP_ON_MR_BLIZZARD)) { +++ | SAVE_FLAG_CAP_ON_MR_BLIZZARD )) { ++ gMarioState->flags = 0; ++ } else { ++- gMarioState->flags = (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++- } ++ +++ gMarioState->flags = (MARIO_CAP_ON_HEAD | MARIO_NORMAL_CAP); +++ +++ } +++ //gMarioState->flags |= MARIO_IS_SHADOW; +++ gMarioState->flags &= ~MARIO_IS_SHADOW; ++ gMarioState->forwardVel = 0.0f; ++ gMarioState->squishTimer = 0; ++ +diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c +index 34090a5..91187d7 100644 +--- a/src/game/mario_actions_airborne.c ++++ b/src/game/mario_actions_airborne.c +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "camera.h" + #include "engine/graph_node.h" +@@ -13,6 +14,11 @@ + #include "mario_step.h" + #include "save_file.h" + #include "rumble_init.h" ++#include "ingame_menu.h" ++#include "level_update.h" ++#include "object_helpers.h" ++#include "sound_init.h" ++#include "seq_ids.h" + + void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) { + s32 animFrame = m->marioObj->header.gfx.animInfo.animFrame; +@@ -25,10 +31,13 @@ void play_far_fall_sound(struct MarioState *m) { + u32 action = m->action; + if (!(action & ACT_FLAG_INVULNERABLE) && action != ACT_TWIRLING && action != ACT_FLYING + && !(m->flags & MARIO_UNKNOWN_18)) { +- if (m->peakHeight - m->pos[1] > 1150.0f) { +- play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +- m->flags |= MARIO_UNKNOWN_18; +- } ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (m->peakHeight - m->pos[1] > 1150.0f) { ++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++ m->flags |= MARIO_UNKNOWN_18; ++ } ++ } + } + } + +@@ -49,9 +58,30 @@ s32 lava_boost_on_wall(struct MarioState *m) { + m->forwardVel = 24.0f; + } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +- } ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins >= 50) { ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ if (gMarioState->numCoins == 0) { ++ m->health = 0xFF; ++ } ++ } ++ } ++ } + + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); + update_mario_sound_and_camera(m); +@@ -61,49 +91,69 @@ s32 lava_boost_on_wall(struct MarioState *m) { + s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) { + f32 fallHeight; + f32 damageHeight; +- +- fallHeight = m->peakHeight - m->pos[1]; +- ++ if (gDialogHealthSystem != SONIC_HEALTH ) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ fallHeight = m->peakHeight - m->pos[1]; ++ } ++ } ++ else ++ { ++ fallHeight = 0; ++ } + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wtype-limits" + + //! Never true +- if (m->actionState == ACT_GROUND_POUND) { +- damageHeight = 600.0f; +- } else { +- damageHeight = 1150.0f; +- } ++ ++ ++ if (m->actionState == ACT_GROUND_POUND) { ++ damageHeight = 600.0f; ++ } ++ else { ++ damageHeight = 1150.0f; ++ } + + #pragma GCC diagnostic pop + +- if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { +- if (m->vel[1] < -55.0f) { +- if (fallHeight > 3000.0f) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +- return drop_and_set_mario_action(m, hardFallAction, 4); +- } else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; +- m->squishTimer = 30; +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +- } +- } +- } ++ if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { ++ if (m->vel[1] < -55.0f) { ++ if (fallHeight > 3000.0f) { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; + +- return FALSE; ++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++ return drop_and_set_mario_action(m, hardFallAction, 4); ++ } ++ else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; ++ m->squishTimer = 30; ++ ++ ++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++ } ++ } ++ } ++ ++ return FALSE; ++ + } + + s32 check_kick_or_dive_in_air(struct MarioState *m) { + if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, m->forwardVel > 28.0f ? ACT_DIVE : ACT_JUMP_KICK, 0); ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ // m->forwardVel *= 4.4f; ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); ++ ++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_SLIDE_KICK_SLIDE : ACT_JUMP_KICK, 0); ++ } ++ else ++ { ++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_DIVE : ACT_JUMP_KICK, 0); ++ } + } + return FALSE; + } +@@ -133,9 +183,8 @@ s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction) { + #endif + m->particleFlags |= PARTICLE_MIST_CIRCLE; + drop_and_set_mario_action(m, ACT_FEET_STUCK_IN_GROUND, 0); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ + return TRUE; + } + +@@ -180,33 +229,122 @@ s32 check_horizontal_wind(struct MarioState *m) { + } + + void update_air_with_turn(struct MarioState *m) { +- f32 dragThreshold; +- s16 intendedDYaw; +- f32 intendedMag; ++ f32 dragThreshold; ++ s16 intendedDYaw; ++ f32 intendedMag; ++ f32 homingDist; ++ f32 sp34; ++ f32 sp30; ++ f32 sp2C; ++ s16 sp2A; ++ struct Object *object; ++ object = 0; ++ ++ if (m->homingObj == NULL) ++ { ++ ++ ++ if (!check_horizontal_wind(m)) { ++ ++ dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ ++ intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ intendedMag = m->intendedMag / 32.0f; ++ ++ m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; ++ m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; ++ ++ } ++ ++ //! Uncapped air speed. Net positive when moving forward. ++ if (m->forwardVel > dragThreshold) { ++ m->forwardVel -= 1.0f; ++ } ++ if (m->forwardVel < -16.0f) { ++ m->forwardVel += 2.0f; ++ } ++ ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ } ++ } ++ else ++ { ++ ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_BOUNCE_TOP) { ++ object = mario_get_collided_object(m, INTERACT_BOUNCE_TOP); ++ } ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_HIT_FROM_BELOW) { ++ object = mario_get_collided_object(m, INTERACT_HIT_FROM_BELOW); ++ } ++ m->actionTimer++; ++ // if (m->homingObj->oDistanceToMario <= 800.0f) ++ // { ++ homingDist = lateral_dist_between_objects(gMarioState->marioObj, m->homingObj); ++ //BULLY ++ // } ++ /* ++ else ++ { ++ homingDist = 800.0f; ++ } ++ if (homingDist >= 800.0f) ++ { ++ homingDist = 800.0f; ++ } ++ */ ++ ++ if (m->action == ACT_DIVE) ++ { ++ ++ if (m->homingObj != object) ++ { ++ ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ sp34 = m->homingObj->oPosX - m->pos[0]; ++ sp30 = m->homingObj->oPosY - m->pos[1] + 15.0f; ++ sp2C = m->homingObj->oPosZ - m->pos[2]; ++ sp2A = atan2s(sqrtf(sqr(sp34) + sqr(sp2C)), sp30); ++ ++ ++ m->faceAngle[1] = mario_obj_angle_to_object(m, m->homingObj); ++ m->faceAngle[0] = approach_s16_symmetric(m->faceAngle[0], sp2A, 0x800); ++ ++ m->forwardVel = coss(m->faceAngle[0]) * 1.0f * (homingDist / 3.0f); ++ if (m->forwardVel >= 300.0f || homingDist >= 500.0f) ++ { ++ m->forwardVel = 300.0f; ++ } + +- if (!check_horizontal_wind(m)) { +- dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); ++ m->intendedYaw = m->faceAngle[1]; ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + +- if (m->input & INPUT_NONZERO_ANALOG) { +- intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- intendedMag = m->intendedMag / 32.0f; + +- m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; +- m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; +- } ++ if (m->actionTimer > 120) ++ { ++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ } + +- //! Uncapped air speed. Net positive when moving forward. +- if (m->forwardVel > dragThreshold) { +- m->forwardVel -= 1.0f; +- } +- if (m->forwardVel < -16.0f) { +- m->forwardVel += 2.0f; +- } ++ if (m->homingObj->oInteractStatus & INT_STATUS_INTERACTED) ++ { ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + +- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- } ++ m->homingObj = NULL; ++ ++ ++ ++ m->faceAngle[1] = m->intendedYaw; ++ m->action = ACT_DOUBLE_JUMP; ++ } ++ ++ ++ } ++ } + } + + void update_air_without_turn(struct MarioState *m) { +@@ -222,9 +360,23 @@ void update_air_without_turn(struct MarioState *m) { + if (m->input & INPUT_NONZERO_ANALOG) { + intendedDYaw = m->intendedYaw - m->faceAngle[1]; + intendedMag = m->intendedMag / 32.0f; +- +- m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; +- sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ if (m->action != ACT_JUMP) ++ { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ } ++ else ++ { ++ if (m->forwardVel < 55.0f) { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ } ++ else ++ { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.0f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 5.0f; ++ } ++ } + } + + //! Uncapped air speed. Net positive when moving forward. +@@ -324,6 +476,7 @@ void update_flying_pitch(struct MarioState *m) { + } else { + m->angleVel[0] = approach_s32(m->angleVel[0], 0, 0x40, 0x40); + } ++ + } + + void update_flying(struct MarioState *m) { +@@ -331,6 +484,16 @@ void update_flying(struct MarioState *m) { + + update_flying_pitch(m); + update_flying_yaw(m); ++ if (!(m->flags & MARIO_IS_SUPER )) ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } ++ ++ if (m->flags & MARIO_IS_SUPER && m->forwardVel < 800.0f) ++ { ++ m->forwardVel += 0.6f; ++ } ++ + + m->forwardVel -= 2.0f * ((f32) m->faceAngle[0] / 0x4000) + 0.1f; + m->forwardVel -= 0.5f * (1.0f - coss(m->angleVel[1])); +@@ -338,14 +501,25 @@ void update_flying(struct MarioState *m) { + if (m->forwardVel < 0.0f) { + m->forwardVel = 0.0f; + } ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (m->forwardVel > 16.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; ++ } ++ else if (m->forwardVel > 4.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; ++ } ++ else { ++ m->faceAngle[0] -= 0x400; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 4.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; ++ } ++ } + +- if (m->forwardVel > 16.0f) { +- m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; +- } else if (m->forwardVel > 4.0f) { +- m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; +- } else { +- m->faceAngle[0] -= 0x400; +- } + + m->faceAngle[0] += m->angleVel[0]; + +@@ -385,9 +559,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, + set_mario_animation(m, animation); + + if (m->forwardVel > 16.0f) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 40); +-#endif ++ + mario_bonk_reflection(m, FALSE); + m->faceAngle[1] += 0x8000; + +@@ -440,18 +612,64 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, + } + + s32 act_jump(struct MarioState *m) { +- if (check_kick_or_dive_in_air(m)) { +- return TRUE; ++ ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x1000, 0x1000); ++ ++ if (m->actionTimer > 7) ++ { ++ m->actionTimer = 0; ++ } ++ m->actionTimer++; ++ if (check_kick_or_dive_in_air(m)) { ++ return TRUE; ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++ return set_mario_action(m, ACT_GROUND_POUND, 0); ++ } ++ ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); ++ common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_FORWARD_SPINNING, ++ AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); ++ return FALSE; ++} ++ ++s32 act_transform(struct MarioState *m) { ++ m->actionTimer += 1; ++ set_mario_animation(m, MARIO_ANIM_START_FORWARD_SPINNING); ++ if (is_anim_past_end(m)) { ++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ if (m->actionTimer > 0 && m->actionTimer < 16) ++ { ++ } ++ if (m->actionTimer > 3 && m->actionTimer < 7) ++ { ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + } + +- if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_GROUND_POUND, 0); ++ if (m->actionTimer > 7 && m->actionTimer < 18) ++ { ++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + } + +- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); +- common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SINGLE_JUMP, +- AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); +- return FALSE; ++ if (m->actionTimer == 18) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_SUPER)); ++ //gMarioState->isSuper = 1; ++ m->flags |= MARIO_IS_SUPER; ++ //gMarioState->flags = MARIO_IS_SUPER; ++ play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); ++ //play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); ++ // play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); ++ //play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ ++ ++ m->pos[1] = m->pos[1]; ++ m->pos[2] = m->pos[2]; ++ m->pos[0] = m->pos[0]; + } + + s32 act_double_jump(struct MarioState *m) { +@@ -459,6 +677,19 @@ s32 act_double_jump(struct MarioState *m) { + ? MARIO_ANIM_DOUBLE_JUMP_RISE + : MARIO_ANIM_DOUBLE_JUMP_FALL; + ++ update_air_with_turn(m); ++ ++ ++ ++ ++ m->forwardVel = 50.0f; ++ if (m->forwardVel >= 50.0f) ++ { ++ m->forwardVel = 50.0f; ++ } ++ ++ ++ + if (check_kick_or_dive_in_air(m)) { + return TRUE; + } +@@ -493,11 +724,9 @@ s32 act_triple_jump(struct MarioState *m) { + #endif + + common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_TRIPLE_JUMP, 0); +-#ifdef VERSION_SH + if (m->action == ACT_TRIPLE_JUMP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + play_flip_sounds(m, 2, 8, 20); + return FALSE; + } +@@ -508,19 +737,22 @@ s32 act_backflip(struct MarioState *m) { + } + + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_YAH_WAH_HOO); +- common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_BACKFLIP, 0); +-#ifdef VERSION_SH ++ common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_FORWARD_SPINNING, 0); ++ + if (m->action == ACT_BACKFLIP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + play_flip_sounds(m, 2, 3, 17); + return FALSE; + } + + s32 act_freefall(struct MarioState *m) { + s32 animation; +- ++ //limits fall speed after roll ++ if (m->forwardVel >= 130.0f && m->prevAction == ACT_DIVE_SLIDE) ++ { ++ m->forwardVel = 130.0f; ++ } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_DIVE, 0); + } +@@ -604,7 +836,7 @@ s32 act_side_flip(struct MarioState *m) { + m->marioObj->header.gfx.angle[1] += 0x8000; + } + +- // This must be one line to match on -O2 ++ // (this need to be on one line to match on PAL) + // clang-format off + if (m->marioObj->header.gfx.animInfo.animFrame == 6) play_sound(SOUND_ACTION_SIDE_FLIP_UNK, m->marioObj->header.gfx.cameraToObject); + // clang-format on +@@ -641,11 +873,10 @@ s32 act_long_jump(struct MarioState *m) { + } + + common_air_action_step(m, ACT_LONG_JUMP_LAND, animation, AIR_STEP_CHECK_LEDGE_GRAB); +-#ifdef VERSION_SH ++ + if (m->action == ACT_LONG_JUMP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + return FALSE; + } + +@@ -718,14 +949,33 @@ s32 act_twirling(struct MarioState *m) { + return FALSE; + } + ++ ++ ++ + s32 act_dive(struct MarioState *m) { ++ ++ ++ if ((m->flags & MARIO_WING_CAP) ) { ++ set_mario_action(m, ACT_FLYING, 0); ++ } + if (m->actionArg == 0) { + play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_HOOHOO); + } else { + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); + } ++ //m->particleFlags |= PARTICLE_SPARKLES; + +- set_mario_animation(m, MARIO_ANIM_DIVE); ++if (!(m->flags & MARIO_IS_SUPER)) ++{ ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ m->particleFlags |= PARTICLE_SONIC_TRAIL; ++} ++else ++{ ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ m->particleFlags |= PARTICLE_SUPER_TRAIL; ++} ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + if (mario_check_object_grab(m)) { + mario_grab_used_object(m); + m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; +@@ -734,34 +984,23 @@ s32 act_dive(struct MarioState *m) { + } + } + +- update_air_without_turn(m); ++ update_air_with_turn(m); + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: +- if (m->vel[1] < 0.0f && m->faceAngle[0] > -0x2AAA) { +- m->faceAngle[0] -= 0x200; +- if (m->faceAngle[0] < -0x2AAA) { +- m->faceAngle[0] = -0x2AAA; +- } +- } +- m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; + break; + + case AIR_STEP_LANDED: + if (should_get_stuck_in_ground(m) && m->faceAngle[0] == -0x2AAA) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +-#ifdef VERSION_JP +- play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); +-#else ++ ++ + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); +-#endif ++ + m->particleFlags |= PARTICLE_MIST_CIRCLE; + drop_and_set_mario_action(m, ACT_HEAD_STUCK_IN_GROUND, 0); + } else if (!check_fall_damage(m, ACT_HARD_FORWARD_GROUND_KB)) { + if (m->heldObj == NULL) { +- set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ set_mario_action(m, ACT_WALKING, 0); + } else { + set_mario_action(m, ACT_DIVE_PICKING_UP, 0); + } +@@ -828,7 +1067,7 @@ s32 act_water_jump(struct MarioState *m) { + switch (perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_JUMP_LAND, 0); +- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + break; + + case AIR_STEP_HIT_WALL: +@@ -840,7 +1079,7 @@ s32 act_water_jump(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); + #endif + set_mario_action(m, ACT_LEDGE_GRAB, 0); +- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + break; + + case AIR_STEP_HIT_LAVA_WALL: +@@ -917,20 +1156,22 @@ s32 act_ground_pound(struct MarioState *m) { + + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); + +- if (m->actionState == 0) { ++ if (m->actionState != 0) { + if (m->actionTimer < 10) { + yOffset = 20 - 2 * m->actionTimer; + if (m->pos[1] + yOffset + 160.0f < m->ceilHeight) { + m->pos[1] += yOffset; ++ + m->peakHeight = m->pos[1]; + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + } + } + +- m->vel[1] = -50.0f; ++ m->vel[1] = -80.0f; ++ + mario_set_forward_vel(m, 0.0f); + +- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_GROUND_POUND ++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_FORWARD_SPINNING + : MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND); + if (m->actionTimer == 0) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); +@@ -942,14 +1183,28 @@ s32 act_ground_pound(struct MarioState *m) { + m->actionState = 1; + } + } else { +- set_mario_animation(m, MARIO_ANIM_GROUND_POUND); ++ m->vel[1] = -50.0f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ m->particleFlags |= PARTICLE_SONIC_TRAIL; ++ ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ m->particleFlags |= PARTICLE_SUPER_TRAIL; ++ } ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; ++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; ++ ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + + stepResult = perform_air_step(m, 0); + if (stepResult == AIR_STEP_LANDED) { + if (should_get_stuck_in_ground(m)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + #ifdef VERSION_JP + play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); + #else +@@ -958,7 +1213,7 @@ s32 act_ground_pound(struct MarioState *m) { + m->particleFlags |= PARTICLE_MIST_CIRCLE; + set_mario_action(m, ACT_BUTT_STUCK_IN_GROUND, 0); + } else { +- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_HEAVY_LANDING); ++ play_sound(SOUND_OBJ_WATER_BOMB_BOUNCING, m->marioObj->header.gfx.cameraToObject); + if (!check_fall_damage(m, ACT_HARD_BACKWARD_GROUND_KB)) { + m->particleFlags |= PARTICLE_MIST_CIRCLE | PARTICLE_HORIZONTAL_STAR; + set_mario_action(m, ACT_GROUND_POUND_LAND, 0); +@@ -993,14 +1248,21 @@ s32 act_burning_jump(struct MarioState *m) { + play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); + + m->marioObj->oMarioBurnTimer += 3; ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->health -= 10; ++ } ++ if (m->health < 0x100) { ++ m->health = 0xFF; ++ } ++ ++ ++ } + +- m->health -= 10; +- if (m->health < 0x100) { +- m->health = 0xFF; +- } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif + return FALSE; + } + +@@ -1020,9 +1282,8 @@ s32 act_burning_fall(struct MarioState *m) { + if (m->health < 0x100) { + m->health = 0xFF; + } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + +@@ -1071,9 +1332,7 @@ s32 act_crazy_box_bounce(struct MarioState *m) { + m->heldObj = NULL; + set_mario_action(m, ACT_STOMACH_SLIDE, 0); + } +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ; + m->particleFlags |= PARTICLE_MIST_CIRCLE; + break; + +@@ -1151,7 +1410,7 @@ s32 check_wall_kick(struct MarioState *m) { + + s32 act_backward_air_kb(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1165,7 +1424,7 @@ s32 act_backward_air_kb(struct MarioState *m) { + + s32 act_forward_air_kb(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1242,7 +1501,7 @@ s32 act_thrown_forward(struct MarioState *m) { + + s32 act_soft_bonk(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1341,9 +1600,10 @@ s32 act_air_hit_wall(struct MarioState *m) { + //! Missing return statement. The returned value is the result of the call + // to set_mario_animation. In practice, this value is nonzero. + // This results in this action "cancelling" into itself. It is supposed to +- // execute on two frames, but instead it executes twice on the same frame. ++ // execute three times, each on a separate frame, but instead it executes ++ // three times on the same frame. + // This results in firsties only being possible for a single frame, instead +- // of two. ++ // of three. + } + + s32 act_forward_rollout(struct MarioState *m) { +@@ -1505,14 +1765,11 @@ s32 act_hold_butt_slide_air(struct MarioState *m) { + } + + s32 act_lava_boost(struct MarioState *m) { +-#ifdef VERSION_SH + if (!(m->flags & MARIO_MARIO_SOUND_PLAYED)) { + play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); +- queue_rumble_data(5, 80); ++ + } +-#else + play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); +-#endif + + if (!(m->input & INPUT_NONZERO_ANALOG)) { + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); +@@ -1525,13 +1782,35 @@ s32 act_lava_boost(struct MarioState *m) { + if (m->floor->type == SURFACE_BURNING) { + m->actionState = 0; + if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ obj_spawn_yellow_coins(m->marioObj, ++ gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ ++ if (gMarioState->numCoins == 0) { ++ m->health = 0xFF; ++ } ++ } ++ } + } + m->vel[1] = 84.0f; + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + } else { + play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + if (m->actionState < 2 && m->vel[1] < 0.0f) { +@@ -1567,42 +1846,32 @@ s32 act_lava_boost(struct MarioState *m) { + } + + m->marioBodyState->eyeState = MARIO_EYES_DEAD; +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + + s32 act_slide_kick(struct MarioState *m) { + if (m->actionState == 0 && m->actionTimer == 0) { +- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HOOHOO); ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); + set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + } + +- if (++(m->actionTimer) > 30 && m->pos[1] - m->floorHeight > 500.0f) { +- return set_mario_action(m, ACT_FREEFALL, 2); +- } + +- update_air_without_turn(m); ++ ++ + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: + if (m->actionState == 0) { +- m->marioObj->header.gfx.angle[0] = atan2s(m->forwardVel, -m->vel[1]); +- if (m->marioObj->header.gfx.angle[0] > 0x1800) { +- m->marioObj->header.gfx.angle[0] = 0x1800; +- } ++ set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); + } + break; + + case AIR_STEP_LANDED: +- if (m->actionState == 0 && m->vel[1] < 0.0f) { +- m->vel[1] = -m->vel[1] / 2.0f; +- m->actionState = 1; +- m->actionTimer = 0; +- } else { ++ + set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); +- } ++ + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + break; + +@@ -1670,7 +1939,8 @@ s32 act_shot_from_cannon(struct MarioState *m) { + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: +- set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); ++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_SPINNING, 0x20000); ++ //set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + m->faceAngle[0] = atan2s(m->forwardVel, m->vel[1]); + m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; + break; +@@ -1678,10 +1948,18 @@ s32 act_shot_from_cannon(struct MarioState *m) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_DIVE_SLIDE, 0); + m->faceAngle[0] = 0; ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } + #endif ++ + break; + + case AIR_STEP_HIT_WALL: +@@ -1694,7 +1972,17 @@ s32 act_shot_from_cannon(struct MarioState *m) { + + m->particleFlags |= PARTICLE_VERTICAL_STAR; + set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + break; + + case AIR_STEP_HIT_LAVA_WALL: +@@ -1713,38 +2001,83 @@ s32 act_shot_from_cannon(struct MarioState *m) { + if (m->vel[1] > 0.0f) { + m->particleFlags |= PARTICLE_DUST; + } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + + s32 act_flying(struct MarioState *m) { + s16 startPitch = m->faceAngle[0]; ++ f32 val14; ++ val14 = (s32)(m->forwardVel / 10.5f * 0x10000); + + if (m->input & INPUT_Z_PRESSED) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + return set_mario_action(m, ACT_GROUND_POUND, 1); + } + + if (!(m->flags & MARIO_WING_CAP)) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + return set_mario_action(m, ACT_FREEFALL, 0); + } + + if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + + if (m->actionState == 0) { + if (m->actionArg == 0) { +- set_mario_animation(m, MARIO_ANIM_FLY_FROM_CANNON); ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } + } else { +- set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); ++ } + if (m->marioObj->header.gfx.animInfo.animFrame == 1) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); + } +@@ -1756,7 +2089,18 @@ s32 act_flying(struct MarioState *m) { + m->actionArg = 1; + } + +- set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ ++ ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } ++ + m->actionState = 1; + } + } +@@ -1798,7 +2142,17 @@ s32 act_flying(struct MarioState *m) { + + m->particleFlags |= PARTICLE_VERTICAL_STAR; + set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); ++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } else { + if (m->actionTimer++ == 0) { + play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); +@@ -1822,10 +2176,16 @@ s32 act_flying(struct MarioState *m) { + lava_boost_on_wall(m); + break; + } +- +- if (m->faceAngle[0] > 0x800 && m->forwardVel >= 48.0f) { +- m->particleFlags |= PARTICLE_DUST; +- } ++ if (m->forwardVel >= 48.0f) ++ { ++ if (m->faceAngle[0] > 0x800 || m->flags & MARIO_IS_SUPER) { ++ if (m->forwardVel >= 90.0f) ++ { ++ m->forwardVel = 90.0f; ++ } ++ m->particleFlags |= PARTICLE_DUST; ++ } ++ } + + if (startPitch <= 0 && m->faceAngle[0] > 0 && m->forwardVel >= 48.0f) { + play_sound(SOUND_ACTION_FLYING_FAST, m->marioObj->header.gfx.cameraToObject); +@@ -1833,9 +2193,7 @@ s32 act_flying(struct MarioState *m) { + play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), + m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(50, 40); +-#endif ++ + } + + play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); +@@ -1849,9 +2207,7 @@ s32 act_riding_hoot(struct MarioState *m) { + m->usedObj->oHootMarioReleaseTime = gGlobalTimer; + + play_sound_if_no_flag(m, SOUND_MARIO_UH, MARIO_MARIO_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(4, 40); +-#endif ++ + return set_mario_action(m, ACT_FREEFALL, 0); + } + +@@ -1879,7 +2235,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { + #ifndef VERSION_JP + if (m->input & (INPUT_B_PRESSED | INPUT_Z_PRESSED)) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_DIVE, 0); +@@ -1907,9 +2273,7 @@ s32 act_flying_triple_jump(struct MarioState *m) { + + if (is_anim_past_end(m)) { + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +-#ifdef VERSION_SH +- queue_rumble_data(8, 80); +-#endif ++ + m->actionState = 1; + } + } +@@ -1920,7 +2284,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { + + if (m->vel[1] < 4.0f) { + if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + + if (m->forwardVel < 32.0f) { +@@ -1930,9 +2304,11 @@ s32 act_flying_triple_jump(struct MarioState *m) { + set_mario_action(m, ACT_FLYING, 1); + } + ++#ifndef BETTERCAMERA + if (m->actionTimer++ == 10 && m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); + } ++#endif + + update_air_without_turn(m); + +@@ -1970,9 +2346,7 @@ s32 act_vertical_wind(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + if (m->marioObj->header.gfx.animInfo.animFrame == 1) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(8, 80); +-#endif ++ + } + + if (is_anim_past_end(m)) { +@@ -2112,6 +2486,7 @@ s32 mario_execute_airborne_action(struct MarioState *m) { + case ACT_RIDING_HOOT: cancel = act_riding_hoot(m); break; + case ACT_TOP_OF_POLE_JUMP: cancel = act_top_of_pole_jump(m); break; + case ACT_VERTICAL_WIND: cancel = act_vertical_wind(m); break; ++ case ACT_TRANSFORM: cancel = act_transform(m); break; + } + /* clang-format on */ + +diff --git a/src/game/mario_actions_airborne.c.rej b/src/game/mario_actions_airborne.c.rej +new file mode 100644 +index 0000000..6943acd +--- /dev/null ++++ b/src/game/mario_actions_airborne.c.rej +@@ -0,0 +1,1241 @@ ++diff a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c (rejected hunks) ++@@ -2,6 +2,7 @@ ++ ++ #include "sm64.h" ++ #include "area.h" +++#include "audio/data.h" ++ #include "audio/external.h" ++ #include "camera.h" ++ #include "engine/graph_node.h" ++@@ -13,6 +14,11 @@ ++ #include "mario_step.h" ++ #include "save_file.h" ++ #include "rumble_init.h" +++#include "ingame_menu.h" +++#include "level_update.h" +++#include "object_helpers.h" +++#include "sound_init.h" +++#include "seq_ids.h" ++ ++ void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) { ++ s32 animFrame = m->marioObj->header.gfx.animInfo.animFrame; ++@@ -25,10 +31,13 @@ void play_far_fall_sound(struct MarioState *m) { ++ u32 action = m->action; ++ if (!(action & ACT_FLAG_INVULNERABLE) && action != ACT_TWIRLING && action != ACT_FLYING ++ && !(m->flags & MARIO_UNKNOWN_18)) { ++- if (m->peakHeight - m->pos[1] > 1150.0f) { ++- play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++- m->flags |= MARIO_UNKNOWN_18; ++- } +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ if (m->peakHeight - m->pos[1] > 1150.0f) { +++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +++ m->flags |= MARIO_UNKNOWN_18; +++ } +++ } ++ } ++ } ++ ++@@ -49,9 +58,30 @@ s32 lava_boost_on_wall(struct MarioState *m) { ++ m->forwardVel = 24.0f; ++ } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++- } +++ if (!(m->flags & MARIO_METAL_CAP)) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +++ } +++ else +++ { +++ if (gMarioState->numCoins >= 50) { +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } else { +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ if (gMarioState->numCoins == 0) { +++ m->health = 0xFF; +++ } +++ } +++ } +++ } ++ ++ play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); ++ update_mario_sound_and_camera(m); ++@@ -61,49 +91,69 @@ s32 lava_boost_on_wall(struct MarioState *m) { ++ s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) { ++ f32 fallHeight; ++ f32 damageHeight; ++- ++- fallHeight = m->peakHeight - m->pos[1]; ++- +++ if (gDialogHealthSystem != SONIC_HEALTH ) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ fallHeight = m->peakHeight - m->pos[1]; +++ } +++ } +++ else +++ { +++ fallHeight = 0; +++ } ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wtype-limits" ++ ++ //! Never true ++- if (m->actionState == ACT_GROUND_POUND) { ++- damageHeight = 600.0f; ++- } else { ++- damageHeight = 1150.0f; ++- } +++ +++ +++ if (m->actionState == ACT_GROUND_POUND) { +++ damageHeight = 600.0f; +++ } +++ else { +++ damageHeight = 1150.0f; +++ } ++ ++ #pragma GCC diagnostic pop ++ ++- if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { ++- if (m->vel[1] < -55.0f) { ++- if (fallHeight > 3000.0f) { ++- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++- return drop_and_set_mario_action(m, hardFallAction, 4); ++- } else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { ++- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; ++- m->squishTimer = 30; ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++- } ++- } ++- } +++ if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { +++ if (m->vel[1] < -55.0f) { +++ if (fallHeight > 3000.0f) { +++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; ++ ++- return FALSE; +++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +++ return drop_and_set_mario_action(m, hardFallAction, 4); +++ } +++ else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { +++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; +++ m->squishTimer = 30; +++ +++ +++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +++ } +++ } +++ } +++ +++ return FALSE; +++ ++ } ++ ++ s32 check_kick_or_dive_in_air(struct MarioState *m) { ++ if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, m->forwardVel > 28.0f ? ACT_DIVE : ACT_JUMP_KICK, 0); +++ if (m->action == ACT_DIVE_SLIDE) +++ { +++ // m->forwardVel *= 4.4f; +++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); +++ +++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_SLIDE_KICK_SLIDE : ACT_JUMP_KICK, 0); +++ } +++ else +++ { +++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_DIVE : ACT_JUMP_KICK, 0); +++ } ++ } ++ return FALSE; ++ } ++@@ -133,9 +183,8 @@ s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction) { ++ #endif ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ drop_and_set_mario_action(m, ACT_FEET_STUCK_IN_GROUND, 0); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ +++ ++ return TRUE; ++ } ++ ++@@ -180,33 +229,122 @@ s32 check_horizontal_wind(struct MarioState *m) { ++ } ++ ++ void update_air_with_turn(struct MarioState *m) { ++- f32 dragThreshold; ++- s16 intendedDYaw; ++- f32 intendedMag; +++ f32 dragThreshold; +++ s16 intendedDYaw; +++ f32 intendedMag; +++ f32 homingDist; +++ f32 sp34; +++ f32 sp30; +++ f32 sp2C; +++ s16 sp2A; +++ struct Object *object; +++ object = 0; +++ +++ if (m->homingObj == NULL) +++ { +++ +++ +++ if (!check_horizontal_wind(m)) { +++ +++ dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; +++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); +++ +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ +++ intendedDYaw = m->intendedYaw - m->faceAngle[1]; +++ intendedMag = m->intendedMag / 32.0f; +++ +++ m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; +++ m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; +++ +++ } +++ +++ //! Uncapped air speed. Net positive when moving forward. +++ if (m->forwardVel > dragThreshold) { +++ m->forwardVel -= 1.0f; +++ } +++ if (m->forwardVel < -16.0f) { +++ m->forwardVel += 2.0f; +++ } +++ +++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +++ } +++ } +++ else +++ { +++ +++ if (m->marioObj->collidedObjInteractTypes & INTERACT_BOUNCE_TOP) { +++ object = mario_get_collided_object(m, INTERACT_BOUNCE_TOP); +++ } +++ if (m->marioObj->collidedObjInteractTypes & INTERACT_HIT_FROM_BELOW) { +++ object = mario_get_collided_object(m, INTERACT_HIT_FROM_BELOW); +++ } +++ m->actionTimer++; +++ // if (m->homingObj->oDistanceToMario <= 800.0f) +++ // { +++ homingDist = lateral_dist_between_objects(gMarioState->marioObj, m->homingObj); +++ //BULLY +++ // } +++ /* +++ else +++ { +++ homingDist = 800.0f; +++ } +++ if (homingDist >= 800.0f) +++ { +++ homingDist = 800.0f; +++ } +++ */ +++ +++ if (m->action == ACT_DIVE) +++ { +++ +++ if (m->homingObj != object) +++ { +++ +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ sp34 = m->homingObj->oPosX - m->pos[0]; +++ sp30 = m->homingObj->oPosY - m->pos[1] + 15.0f; +++ sp2C = m->homingObj->oPosZ - m->pos[2]; +++ sp2A = atan2s(sqrtf(sqr(sp34) + sqr(sp2C)), sp30); +++ +++ +++ m->faceAngle[1] = mario_obj_angle_to_object(m, m->homingObj); +++ m->faceAngle[0] = approach_s16_symmetric(m->faceAngle[0], sp2A, 0x800); +++ +++ m->forwardVel = coss(m->faceAngle[0]) * 1.0f * (homingDist / 3.0f); +++ if (m->forwardVel >= 300.0f || homingDist >= 500.0f) +++ { +++ m->forwardVel = 300.0f; +++ } ++ ++- if (!check_horizontal_wind(m)) { ++- dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; ++- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); +++ m->intendedYaw = m->faceAngle[1]; +++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++- intendedMag = m->intendedMag / 32.0f; ++ ++- m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; ++- m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; ++- } +++ if (m->actionTimer > 120) +++ { +++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); +++ } +++ } ++ ++- //! Uncapped air speed. Net positive when moving forward. ++- if (m->forwardVel > dragThreshold) { ++- m->forwardVel -= 1.0f; ++- } ++- if (m->forwardVel < -16.0f) { ++- m->forwardVel += 2.0f; ++- } +++ if (m->homingObj->oInteractStatus & INT_STATUS_INTERACTED) +++ { +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ ++- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++- } +++ m->homingObj = NULL; +++ +++ +++ +++ m->faceAngle[1] = m->intendedYaw; +++ m->action = ACT_DOUBLE_JUMP; +++ } +++ +++ +++ } +++ } ++ } ++ ++ void update_air_without_turn(struct MarioState *m) { ++@@ -222,9 +360,23 @@ void update_air_without_turn(struct MarioState *m) { ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ intendedMag = m->intendedMag / 32.0f; ++- ++- m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; ++- sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; +++ if (m->action != ACT_JUMP) +++ { +++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; +++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; +++ } +++ else +++ { +++ if (m->forwardVel < 55.0f) { +++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; +++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; +++ } +++ else +++ { +++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.0f; +++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 5.0f; +++ } +++ } ++ } ++ ++ //! Uncapped air speed. Net positive when moving forward. ++@@ -324,6 +476,7 @@ void update_flying_pitch(struct MarioState *m) { ++ } else { ++ m->angleVel[0] = approach_s32(m->angleVel[0], 0, 0x40, 0x40); ++ } +++ ++ } ++ ++ void update_flying(struct MarioState *m) { ++@@ -331,6 +484,16 @@ void update_flying(struct MarioState *m) { ++ ++ update_flying_pitch(m); ++ update_flying_yaw(m); +++ if (!(m->flags & MARIO_IS_SUPER )) +++ { +++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +++ } +++ +++ if (m->flags & MARIO_IS_SUPER && m->forwardVel < 800.0f) +++ { +++ m->forwardVel += 0.6f; +++ } +++ ++ ++ m->forwardVel -= 2.0f * ((f32) m->faceAngle[0] / 0x4000) + 0.1f; ++ m->forwardVel -= 0.5f * (1.0f - coss(m->angleVel[1])); ++@@ -338,14 +501,25 @@ void update_flying(struct MarioState *m) { ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel = 0.0f; ++ } +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (m->forwardVel > 16.0f) { +++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; +++ } +++ else if (m->forwardVel > 4.0f) { +++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; +++ } +++ else { +++ m->faceAngle[0] -= 0x400; +++ } +++ } +++ else +++ { +++ if (m->forwardVel < 4.0f) { +++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; +++ } +++ } ++ ++- if (m->forwardVel > 16.0f) { ++- m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; ++- } else if (m->forwardVel > 4.0f) { ++- m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; ++- } else { ++- m->faceAngle[0] -= 0x400; ++- } ++ ++ m->faceAngle[0] += m->angleVel[0]; ++ ++@@ -385,9 +559,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, ++ set_mario_animation(m, animation); ++ ++ if (m->forwardVel > 16.0f) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 40); ++-#endif +++ ++ mario_bonk_reflection(m, FALSE); ++ m->faceAngle[1] += 0x8000; ++ ++@@ -440,18 +612,64 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, ++ } ++ ++ s32 act_jump(struct MarioState *m) { ++- if (check_kick_or_dive_in_air(m)) { ++- return TRUE; +++ +++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x1000, 0x1000); +++ +++ if (m->actionTimer > 7) +++ { +++ m->actionTimer = 0; +++ } +++ m->actionTimer++; +++ if (check_kick_or_dive_in_air(m)) { +++ return TRUE; +++ } +++ +++ if (m->input & INPUT_Z_PRESSED) { +++ return set_mario_action(m, ACT_GROUND_POUND, 0); +++ } +++ +++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); +++ common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_FORWARD_SPINNING, +++ AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); +++ return FALSE; +++} +++ +++s32 act_transform(struct MarioState *m) { +++ m->actionTimer += 1; +++ set_mario_animation(m, MARIO_ANIM_START_FORWARD_SPINNING); +++ if (is_anim_past_end(m)) { +++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); +++ } +++ if (m->actionTimer > 0 && m->actionTimer < 16) +++ { +++ } +++ if (m->actionTimer > 3 && m->actionTimer < 7) +++ { +++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ } ++ ++- if (m->input & INPUT_Z_PRESSED) { ++- return set_mario_action(m, ACT_GROUND_POUND, 0); +++ if (m->actionTimer > 7 && m->actionTimer < 18) +++ { +++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; ++ } ++ ++- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); ++- common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SINGLE_JUMP, ++- AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); ++- return FALSE; +++ if (m->actionTimer == 18) +++ { +++ play_cap_music(SEQUENCE_ARGS(4, SEQ_SUPER)); +++ //gMarioState->isSuper = 1; +++ m->flags |= MARIO_IS_SUPER; +++ //gMarioState->flags = MARIO_IS_SUPER; +++ play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); +++ //play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); +++ // play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); +++ //play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); +++ } +++ +++ +++ +++ m->pos[1] = m->pos[1]; +++ m->pos[2] = m->pos[2]; +++ m->pos[0] = m->pos[0]; ++ } ++ ++ s32 act_double_jump(struct MarioState *m) { ++@@ -459,6 +677,19 @@ s32 act_double_jump(struct MarioState *m) { ++ ? MARIO_ANIM_DOUBLE_JUMP_RISE ++ : MARIO_ANIM_DOUBLE_JUMP_FALL; ++ +++ update_air_with_turn(m); +++ +++ +++ +++ +++ m->forwardVel = 50.0f; +++ if (m->forwardVel >= 50.0f) +++ { +++ m->forwardVel = 50.0f; +++ } +++ +++ +++ ++ if (check_kick_or_dive_in_air(m)) { ++ return TRUE; ++ } ++@@ -493,11 +724,9 @@ s32 act_triple_jump(struct MarioState *m) { ++ #endif ++ ++ common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_TRIPLE_JUMP, 0); ++-#ifdef VERSION_SH ++ if (m->action == ACT_TRIPLE_JUMP_LAND) { ++- queue_rumble_data(5, 40); +++ ++ } ++-#endif ++ play_flip_sounds(m, 2, 8, 20); ++ return FALSE; ++ } ++@@ -508,19 +737,22 @@ s32 act_backflip(struct MarioState *m) { ++ } ++ ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_YAH_WAH_HOO); ++- common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_BACKFLIP, 0); ++-#ifdef VERSION_SH +++ common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_FORWARD_SPINNING, 0); +++ ++ if (m->action == ACT_BACKFLIP_LAND) { ++- queue_rumble_data(5, 40); +++ ++ } ++-#endif ++ play_flip_sounds(m, 2, 3, 17); ++ return FALSE; ++ } ++ ++ s32 act_freefall(struct MarioState *m) { ++ s32 animation; ++- +++ //limits fall speed after roll +++ if (m->forwardVel >= 130.0f && m->prevAction == ACT_DIVE_SLIDE) +++ { +++ m->forwardVel = 130.0f; +++ } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_DIVE, 0); ++ } ++@@ -604,7 +836,7 @@ s32 act_side_flip(struct MarioState *m) { ++ m->marioObj->header.gfx.angle[1] += 0x8000; ++ } ++ ++- // This must be one line to match on -O2 +++ // (this need to be on one line to match on PAL) ++ // clang-format off ++ if (m->marioObj->header.gfx.animInfo.animFrame == 6) play_sound(SOUND_ACTION_SIDE_FLIP_UNK, m->marioObj->header.gfx.cameraToObject); ++ // clang-format on ++@@ -641,11 +873,10 @@ s32 act_long_jump(struct MarioState *m) { ++ } ++ ++ common_air_action_step(m, ACT_LONG_JUMP_LAND, animation, AIR_STEP_CHECK_LEDGE_GRAB); ++-#ifdef VERSION_SH +++ ++ if (m->action == ACT_LONG_JUMP_LAND) { ++- queue_rumble_data(5, 40); +++ ++ } ++-#endif ++ return FALSE; ++ } ++ ++@@ -718,14 +949,33 @@ s32 act_twirling(struct MarioState *m) { ++ return FALSE; ++ } ++ +++ +++ +++ ++ s32 act_dive(struct MarioState *m) { +++ +++ +++ if ((m->flags & MARIO_WING_CAP) ) { +++ set_mario_action(m, ACT_FLYING, 0); +++ } ++ if (m->actionArg == 0) { ++ play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_HOOHOO); ++ } else { ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); ++ } +++ //m->particleFlags |= PARTICLE_SPARKLES; ++ ++- set_mario_animation(m, MARIO_ANIM_DIVE); +++if (!(m->flags & MARIO_IS_SUPER)) +++{ +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ m->particleFlags |= PARTICLE_SONIC_TRAIL; +++} +++else +++{ +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ m->particleFlags |= PARTICLE_SUPER_TRAIL; +++} +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ if (mario_check_object_grab(m)) { ++ mario_grab_used_object(m); ++ m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; ++@@ -734,34 +984,23 @@ s32 act_dive(struct MarioState *m) { ++ } ++ } ++ ++- update_air_without_turn(m); +++ update_air_with_turn(m); ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_NONE: ++- if (m->vel[1] < 0.0f && m->faceAngle[0] > -0x2AAA) { ++- m->faceAngle[0] -= 0x200; ++- if (m->faceAngle[0] < -0x2AAA) { ++- m->faceAngle[0] = -0x2AAA; ++- } ++- } ++- m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; ++ break; ++ ++ case AIR_STEP_LANDED: ++ if (should_get_stuck_in_ground(m) && m->faceAngle[0] == -0x2AAA) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++-#ifdef VERSION_JP ++- play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); ++-#else +++ +++ ++ play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); ++-#endif +++ ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ drop_and_set_mario_action(m, ACT_HEAD_STUCK_IN_GROUND, 0); ++ } else if (!check_fall_damage(m, ACT_HARD_FORWARD_GROUND_KB)) { ++ if (m->heldObj == NULL) { ++- set_mario_action(m, ACT_DIVE_SLIDE, 0); +++ set_mario_action(m, ACT_WALKING, 0); ++ } else { ++ set_mario_action(m, ACT_DIVE_PICKING_UP, 0); ++ } ++@@ -828,7 +1067,7 @@ s32 act_water_jump(struct MarioState *m) { ++ switch (perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_JUMP_LAND, 0); ++- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++@@ -840,7 +1079,7 @@ s32 act_water_jump(struct MarioState *m) { ++ set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); ++ #endif ++ set_mario_action(m, ACT_LEDGE_GRAB, 0); ++- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ break; ++ ++ case AIR_STEP_HIT_LAVA_WALL: ++@@ -917,20 +1156,22 @@ s32 act_ground_pound(struct MarioState *m) { ++ ++ play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); ++ ++- if (m->actionState == 0) { +++ if (m->actionState != 0) { ++ if (m->actionTimer < 10) { ++ yOffset = 20 - 2 * m->actionTimer; ++ if (m->pos[1] + yOffset + 160.0f < m->ceilHeight) { ++ m->pos[1] += yOffset; +++ ++ m->peakHeight = m->pos[1]; ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ } ++ } ++ ++- m->vel[1] = -50.0f; +++ m->vel[1] = -80.0f; +++ ++ mario_set_forward_vel(m, 0.0f); ++ ++- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_GROUND_POUND +++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_FORWARD_SPINNING ++ : MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND); ++ if (m->actionTimer == 0) { ++ play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); ++@@ -942,14 +1183,28 @@ s32 act_ground_pound(struct MarioState *m) { ++ m->actionState = 1; ++ } ++ } else { ++- set_mario_animation(m, MARIO_ANIM_GROUND_POUND); +++ m->vel[1] = -50.0f; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ m->particleFlags |= PARTICLE_SONIC_TRAIL; +++ +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ m->particleFlags |= PARTICLE_SUPER_TRAIL; +++ } +++ +++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; +++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; +++ +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ ++ stepResult = perform_air_step(m, 0); ++ if (stepResult == AIR_STEP_LANDED) { ++ if (should_get_stuck_in_ground(m)) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ #ifdef VERSION_JP ++ play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); ++ #else ++@@ -958,7 +1213,7 @@ s32 act_ground_pound(struct MarioState *m) { ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ set_mario_action(m, ACT_BUTT_STUCK_IN_GROUND, 0); ++ } else { ++- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_HEAVY_LANDING); +++ play_sound(SOUND_OBJ_WATER_BOMB_BOUNCING, m->marioObj->header.gfx.cameraToObject); ++ if (!check_fall_damage(m, ACT_HARD_BACKWARD_GROUND_KB)) { ++ m->particleFlags |= PARTICLE_MIST_CIRCLE | PARTICLE_HORIZONTAL_STAR; ++ set_mario_action(m, ACT_GROUND_POUND_LAND, 0); ++@@ -993,14 +1248,21 @@ s32 act_burning_jump(struct MarioState *m) { ++ play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); ++ ++ m->marioObj->oMarioBurnTimer += 3; +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ +++ +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->health -= 10; +++ } +++ if (m->health < 0x100) { +++ m->health = 0xFF; +++ } +++ +++ +++ } ++ ++- m->health -= 10; ++- if (m->health < 0x100) { ++- m->health = 0xFF; ++- } ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif ++ return FALSE; ++ } ++ ++@@ -1020,9 +1282,8 @@ s32 act_burning_fall(struct MarioState *m) { ++ if (m->health < 0x100) { ++ m->health = 0xFF; ++ } ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ +++ ++ return FALSE; ++ } ++ ++@@ -1071,9 +1332,7 @@ s32 act_crazy_box_bounce(struct MarioState *m) { ++ m->heldObj = NULL; ++ set_mario_action(m, ACT_STOMACH_SLIDE, 0); ++ } ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ; ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ break; ++ ++@@ -1151,7 +1410,7 @@ s32 check_wall_kick(struct MarioState *m) { ++ ++ s32 act_backward_air_kb(struct MarioState *m) { ++ if (check_wall_kick(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ #ifndef VERSION_JP ++@@ -1165,7 +1424,7 @@ s32 act_backward_air_kb(struct MarioState *m) { ++ ++ s32 act_forward_air_kb(struct MarioState *m) { ++ if (check_wall_kick(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ #ifndef VERSION_JP ++@@ -1242,7 +1501,7 @@ s32 act_thrown_forward(struct MarioState *m) { ++ ++ s32 act_soft_bonk(struct MarioState *m) { ++ if (check_wall_kick(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ #ifndef VERSION_JP ++@@ -1341,9 +1600,10 @@ s32 act_air_hit_wall(struct MarioState *m) { ++ //! Missing return statement. The returned value is the result of the call ++ // to set_mario_animation. In practice, this value is nonzero. ++ // This results in this action "cancelling" into itself. It is supposed to ++- // execute on two frames, but instead it executes twice on the same frame. +++ // execute three times, each on a separate frame, but instead it executes +++ // three times on the same frame. ++ // This results in firsties only being possible for a single frame, instead ++- // of two. +++ // of three. ++ } ++ ++ s32 act_forward_rollout(struct MarioState *m) { ++@@ -1505,14 +1765,11 @@ s32 act_hold_butt_slide_air(struct MarioState *m) { ++ } ++ ++ s32 act_lava_boost(struct MarioState *m) { ++-#ifdef VERSION_SH ++ if (!(m->flags & MARIO_MARIO_SOUND_PLAYED)) { ++ play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); ++- queue_rumble_data(5, 80); +++ ++ } ++-#else ++ play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); ++-#endif ++ ++ if (!(m->input & INPUT_NONZERO_ANALOG)) { ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); ++@@ -1525,13 +1782,35 @@ s32 act_lava_boost(struct MarioState *m) { ++ if (m->floor->type == SURFACE_BURNING) { ++ m->actionState = 0; ++ if (!(m->flags & MARIO_METAL_CAP)) { ++- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { +++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +++ } +++ else +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } else { +++ obj_spawn_yellow_coins(m->marioObj, +++ gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ +++ if (gMarioState->numCoins == 0) { +++ m->health = 0xFF; +++ } +++ } +++ } ++ } ++ m->vel[1] = 84.0f; ++ play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ } else { ++ play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++ if (m->actionState < 2 && m->vel[1] < 0.0f) { ++@@ -1567,42 +1846,32 @@ s32 act_lava_boost(struct MarioState *m) { ++ } ++ ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ +++ ++ return FALSE; ++ } ++ ++ s32 act_slide_kick(struct MarioState *m) { ++ if (m->actionState == 0 && m->actionTimer == 0) { ++- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HOOHOO); +++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); ++ set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); ++ } ++ ++- if (++(m->actionTimer) > 30 && m->pos[1] - m->floorHeight > 500.0f) { ++- return set_mario_action(m, ACT_FREEFALL, 2); ++- } ++ ++- update_air_without_turn(m); +++ +++ ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_NONE: ++ if (m->actionState == 0) { ++- m->marioObj->header.gfx.angle[0] = atan2s(m->forwardVel, -m->vel[1]); ++- if (m->marioObj->header.gfx.angle[0] > 0x1800) { ++- m->marioObj->header.gfx.angle[0] = 0x1800; ++- } +++ set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); ++ } ++ break; ++ ++ case AIR_STEP_LANDED: ++- if (m->actionState == 0 && m->vel[1] < 0.0f) { ++- m->vel[1] = -m->vel[1] / 2.0f; ++- m->actionState = 1; ++- m->actionTimer = 0; ++- } else { +++ ++ set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); ++- } +++ ++ play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); ++ break; ++ ++@@ -1670,7 +1939,8 @@ s32 act_shot_from_cannon(struct MarioState *m) { ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_NONE: ++- set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); +++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_SPINNING, 0x20000); +++ //set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ m->faceAngle[0] = atan2s(m->forwardVel, m->vel[1]); ++ m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; ++ break; ++@@ -1678,10 +1948,18 @@ s32 act_shot_from_cannon(struct MarioState *m) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ m->faceAngle[0] = 0; +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } ++ #endif +++ ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++@@ -1694,7 +1972,17 @@ s32 act_shot_from_cannon(struct MarioState *m) { ++ ++ m->particleFlags |= PARTICLE_VERTICAL_STAR; ++ set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ break; ++ ++ case AIR_STEP_HIT_LAVA_WALL: ++@@ -1713,38 +2001,83 @@ s32 act_shot_from_cannon(struct MarioState *m) { ++ if (m->vel[1] > 0.0f) { ++ m->particleFlags |= PARTICLE_DUST; ++ } ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ +++ ++ return FALSE; ++ } ++ ++ s32 act_flying(struct MarioState *m) { ++ s16 startPitch = m->faceAngle[0]; +++ f32 val14; +++ val14 = (s32)(m->forwardVel / 10.5f * 0x10000); ++ ++ if (m->input & INPUT_Z_PRESSED) { ++ if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } ++ return set_mario_action(m, ACT_GROUND_POUND, 1); ++ } ++ ++ if (!(m->flags & MARIO_WING_CAP)) { ++ if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } ++ return set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ ++ if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } ++ ++ if (m->actionState == 0) { ++ if (m->actionArg == 0) { ++- set_mario_animation(m, MARIO_ANIM_FLY_FROM_CANNON); +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); +++ } +++ else +++ { +++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +++ } ++ } else { ++- set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); +++ } +++ else +++ { +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); +++ } ++ if (m->marioObj->header.gfx.animInfo.animFrame == 1) { ++ play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); ++ } ++@@ -1756,7 +2089,18 @@ s32 act_flying(struct MarioState *m) { ++ m->actionArg = 1; ++ } ++ ++- set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +++ +++ +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ +++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); +++ } +++ else +++ { +++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +++ } +++ ++ m->actionState = 1; ++ } ++ } ++@@ -1798,7 +2142,17 @@ s32 act_flying(struct MarioState *m) { ++ ++ m->particleFlags |= PARTICLE_VERTICAL_STAR; ++ set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); +++#ifndef BETTERCAMERA +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++#else +++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } else { ++ if (m->actionTimer++ == 0) { ++ play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); ++@@ -1822,10 +2176,16 @@ s32 act_flying(struct MarioState *m) { ++ lava_boost_on_wall(m); ++ break; ++ } ++- ++- if (m->faceAngle[0] > 0x800 && m->forwardVel >= 48.0f) { ++- m->particleFlags |= PARTICLE_DUST; ++- } +++ if (m->forwardVel >= 48.0f) +++ { +++ if (m->faceAngle[0] > 0x800 || m->flags & MARIO_IS_SUPER) { +++ if (m->forwardVel >= 90.0f) +++ { +++ m->forwardVel = 90.0f; +++ } +++ m->particleFlags |= PARTICLE_DUST; +++ } +++ } ++ ++ if (startPitch <= 0 && m->faceAngle[0] > 0 && m->forwardVel >= 48.0f) { ++ play_sound(SOUND_ACTION_FLYING_FAST, m->marioObj->header.gfx.cameraToObject); ++@@ -1833,9 +2193,7 @@ s32 act_flying(struct MarioState *m) { ++ play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), ++ m->marioObj->header.gfx.cameraToObject); ++ #endif ++-#ifdef VERSION_SH ++- queue_rumble_data(50, 40); ++-#endif +++ ++ } ++ ++ play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); ++@@ -1849,9 +2207,7 @@ s32 act_riding_hoot(struct MarioState *m) { ++ m->usedObj->oHootMarioReleaseTime = gGlobalTimer; ++ ++ play_sound_if_no_flag(m, SOUND_MARIO_UH, MARIO_MARIO_SOUND_PLAYED); ++-#ifdef VERSION_SH ++- queue_rumble_data(4, 40); ++-#endif +++ ++ return set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ ++@@ -1879,7 +2235,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { ++ #ifndef VERSION_JP ++ if (m->input & (INPUT_B_PRESSED | INPUT_Z_PRESSED)) { ++ if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_DIVE, 0); ++@@ -1907,9 +2273,7 @@ s32 act_flying_triple_jump(struct MarioState *m) { ++ ++ if (is_anim_past_end(m)) { ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++-#ifdef VERSION_SH ++- queue_rumble_data(8, 80); ++-#endif +++ ++ m->actionState = 1; ++ } ++ } ++@@ -1920,7 +2284,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { ++ ++ if (m->vel[1] < 4.0f) { ++ if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { +++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); +++#else +++ if (newcam_active == 0) +++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +++ else +++ { +++ m->area->camera->mode = CAMERA_MODE_NEWCAM; +++ gLakituState.mode = CAMERA_MODE_NEWCAM; +++ } +++#endif ++ } ++ ++ if (m->forwardVel < 32.0f) { ++@@ -1930,9 +2304,11 @@ s32 act_flying_triple_jump(struct MarioState *m) { ++ set_mario_action(m, ACT_FLYING, 1); ++ } ++ +++#ifndef BETTERCAMERA ++ if (m->actionTimer++ == 10 && m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { ++ set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); ++ } +++#endif ++ ++ update_air_without_turn(m); ++ ++@@ -1970,9 +2346,7 @@ s32 act_vertical_wind(struct MarioState *m) { ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); ++ if (m->marioObj->header.gfx.animInfo.animFrame == 1) { ++ play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- queue_rumble_data(8, 80); ++-#endif +++ ++ } ++ ++ if (is_anim_past_end(m)) { ++@@ -2112,6 +2486,7 @@ s32 mario_execute_airborne_action(struct MarioState *m) { ++ case ACT_RIDING_HOOT: cancel = act_riding_hoot(m); break; ++ case ACT_TOP_OF_POLE_JUMP: cancel = act_top_of_pole_jump(m); break; ++ case ACT_VERTICAL_WIND: cancel = act_vertical_wind(m); break; +++ case ACT_TRANSFORM: cancel = act_transform(m); break; ++ } ++ /* clang-format on */ ++ +diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c +index 2269087..32cff6b 100644 +--- a/src/game/mario_actions_automatic.c ++++ b/src/game/mario_actions_automatic.c +@@ -16,6 +16,8 @@ + #include "camera.h" + #include "level_table.h" + #include "rumble_init.h" ++#include "game/ingame_menu.h" ++#include "level_update.h" + + #define POLE_NONE 0 + #define POLE_TOUCHED_FLOOR 1 +@@ -143,7 +145,7 @@ s32 act_holding_pole(struct MarioState *m) { + + if (m->controller->stickY > 16.0f) { + f32 poleTop = m->usedObj->hitboxHeight - 100.0f; +- const BehaviorScript *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); ++ void *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); + + if (marioObj->oMarioPolePos < poleTop - 0.4f) { + return set_mario_action(m, ACT_CLIMBING_POLE, 0); +@@ -250,7 +252,7 @@ s32 act_grab_pole_fast(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART1); + } else { + set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART2); +- if (is_anim_at_end(m)) { ++ if (is_anim_at_end(m) != 0) { + marioObj->oMarioPoleYawVel = 0; + set_mario_action(m, ACT_HOLDING_POLE, 0); + } +@@ -272,7 +274,7 @@ s32 act_top_of_pole_transition(struct MarioState *m) { + } + } else { + set_mario_animation(m, MARIO_ANIM_RETURN_FROM_HANDSTAND); +- if (m->marioObj->header.gfx.animInfo.animFrame == 0) { ++ if (m->marioObj->header.gfx.animInfo.animFrame == 0) { + return set_mario_action(m, ACT_HOLDING_POLE, 0); + } + } +@@ -385,13 +387,9 @@ void update_hang_stationary(struct MarioState *m) { + } + + s32 act_start_hanging(struct MarioState *m) { +-#ifdef VERSION_SH + if (m->actionTimer++ == 0) { +- queue_rumble_data(5, 80); ++ //_data(5, 80); + } +-#else +- m->actionTimer++; +-#endif + + if ((m->input & INPUT_NONZERO_ANALOG) && m->actionTimer >= 31) { + return set_mario_action(m, ACT_HANGING, 0); +@@ -565,12 +563,40 @@ s32 act_ledge_grab(struct MarioState *m) { + + if (m->input & INPUT_UNKNOWN_10) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + } + return let_go_of_ledge(m); + } + #ifdef VERSION_EU +- // On EU, you can't slow climb up ledges while holding A. ++ // On PAL, you can't slow climb up ledges while holding A. + if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG) && !(m->input & INPUT_A_DOWN)) + #else + if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG)) +@@ -662,9 +688,7 @@ s32 act_grabbed(struct MarioState *m) { + + m->faceAngle[1] = m->usedObj->oMoveAngleYaw; + vec3f_copy(m->pos, m->marioObj->header.gfx.pos); +-#ifdef VERSION_SH +- queue_rumble_data(5, 60); +-#endif ++ //_data(5, 60); + + return set_mario_action(m, (m->forwardVel >= 0.0f) ? ACT_THROWN_FORWARD : ACT_THROWN_BACKWARD, + thrown); +@@ -744,16 +768,14 @@ s32 act_in_cannon(struct MarioState *m) { + m->marioObj->header.gfx.node.flags |= GRAPH_RENDER_ACTIVE; + + set_mario_action(m, ACT_SHOT_FROM_CANNON, 0); +-#ifdef VERSION_SH +- queue_rumble_data(60, 70); +-#endif ++ //_data(60, 70); + m->usedObj->oAction = 2; + return FALSE; +- } else if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { +- play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- reset_rumble_timers_2(0); +-#endif ++ } else { ++ if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { ++ play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); ++ //_timers_2(0); ++ } + } + } + +@@ -838,9 +860,7 @@ s32 act_tornado_twirling(struct MarioState *m) { + + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1] + m->twirlYaw, 0); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ //_timers(); + + return FALSE; + } +diff --git a/src/game/mario_actions_automatic.c.rej b/src/game/mario_actions_automatic.c.rej +new file mode 100644 +index 0000000..362d2b7 +--- /dev/null ++++ b/src/game/mario_actions_automatic.c.rej +@@ -0,0 +1,130 @@ ++diff a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c (rejected hunks) ++@@ -16,6 +16,8 @@ ++ #include "camera.h" ++ #include "level_table.h" ++ #include "rumble_init.h" +++#include "game/ingame_menu.h" +++#include "level_update.h" ++ ++ #define POLE_NONE 0 ++ #define POLE_TOUCHED_FLOOR 1 ++@@ -143,7 +145,7 @@ s32 act_holding_pole(struct MarioState *m) { ++ ++ if (m->controller->stickY > 16.0f) { ++ f32 poleTop = m->usedObj->hitboxHeight - 100.0f; ++- const BehaviorScript *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); +++ void *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); ++ ++ if (marioObj->oMarioPolePos < poleTop - 0.4f) { ++ return set_mario_action(m, ACT_CLIMBING_POLE, 0); ++@@ -250,7 +252,7 @@ s32 act_grab_pole_fast(struct MarioState *m) { ++ set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART1); ++ } else { ++ set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART2); ++- if (is_anim_at_end(m)) { +++ if (is_anim_at_end(m) != 0) { ++ marioObj->oMarioPoleYawVel = 0; ++ set_mario_action(m, ACT_HOLDING_POLE, 0); ++ } ++@@ -385,13 +387,9 @@ void update_hang_stationary(struct MarioState *m) { ++ } ++ ++ s32 act_start_hanging(struct MarioState *m) { ++-#ifdef VERSION_SH ++ if (m->actionTimer++ == 0) { ++- queue_rumble_data(5, 80); +++ //_data(5, 80); ++ } ++-#else ++- m->actionTimer++; ++-#endif ++ ++ if ((m->input & INPUT_NONZERO_ANALOG) && m->actionTimer >= 31) { ++ return set_mario_action(m, ACT_HANGING, 0); ++@@ -565,12 +563,40 @@ s32 act_ledge_grab(struct MarioState *m) { ++ ++ if (m->input & INPUT_UNKNOWN_10) { ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) +++ { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +++ } +++ else +++ { +++ if (gMarioState->numCoins > 0) +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ } +++ else +++ { +++ m->health = 0xFF; +++ } +++ } +++ } ++ } ++ return let_go_of_ledge(m); ++ } ++ #ifdef VERSION_EU ++- // On EU, you can't slow climb up ledges while holding A. +++ // On PAL, you can't slow climb up ledges while holding A. ++ if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG) && !(m->input & INPUT_A_DOWN)) ++ #else ++ if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG)) ++@@ -662,9 +688,7 @@ s32 act_grabbed(struct MarioState *m) { ++ ++ m->faceAngle[1] = m->usedObj->oMoveAngleYaw; ++ vec3f_copy(m->pos, m->marioObj->header.gfx.pos); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 60); ++-#endif +++ //_data(5, 60); ++ ++ return set_mario_action(m, (m->forwardVel >= 0.0f) ? ACT_THROWN_FORWARD : ACT_THROWN_BACKWARD, ++ thrown); ++@@ -744,16 +768,14 @@ s32 act_in_cannon(struct MarioState *m) { ++ m->marioObj->header.gfx.node.flags |= GRAPH_RENDER_ACTIVE; ++ ++ set_mario_action(m, ACT_SHOT_FROM_CANNON, 0); ++-#ifdef VERSION_SH ++- queue_rumble_data(60, 70); ++-#endif +++ //_data(60, 70); ++ m->usedObj->oAction = 2; ++ return FALSE; ++- } else if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { ++- play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); ++-#ifdef VERSION_SH ++- reset_rumble_timers_2(0); ++-#endif +++ } else { +++ if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { +++ play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); +++ //_timers_2(0); +++ } ++ } ++ } ++ ++@@ -838,9 +860,7 @@ s32 act_tornado_twirling(struct MarioState *m) { ++ ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1] + m->twirlYaw, 0); ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ //_timers(); ++ ++ return FALSE; ++ } +diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c +index e2cbbb6..b4bfb6b 100644 +--- a/src/game/mario_actions_cutscene.c ++++ b/src/game/mario_actions_cutscene.c +@@ -3,6 +3,7 @@ + #include "prevent_bss_reordering.h" + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_data.h" + #include "camera.h" +@@ -28,6 +29,7 @@ + #include "sound_init.h" + #include "rumble_init.h" + ++ + // TODO: put this elsewhere + enum SaveOption { SAVE_OPT_SAVE_AND_CONTINUE = 1, SAVE_OPT_SAVE_AND_QUIT, SAVE_OPT_CONTINUE_DONT_SAVE }; + +@@ -48,7 +50,7 @@ static s8 D_8032CBE4 = 0; + static s8 D_8032CBE8 = 0; + static s8 D_8032CBEC[7] = { 2, 3, 2, 1, 2, 3, 2 }; + +-static u8 sStarsNeededForDialog[] = { 1, 3, 8, 30, 50, 70 }; ++static u8 sStarsNeededForDialog[6] = { 1, 3, 8, 30, 50, 70 }; + + /** + * Data for the jumbo star cutscene. It specifies the flight path after triple +@@ -234,7 +236,7 @@ s32 get_star_collection_dialog(struct MarioState *m) { + s32 dialogID = 0; + s32 numStarsRequired; + +- for (i = 0; i < ARRAY_COUNT(sStarsNeededForDialog); i++) { ++ for (i = 0; i < 6; i++) { + numStarsRequired = sStarsNeededForDialog[i]; + if (m->prevNumStarsForDialog < numStarsRequired && m->numStars >= numStarsRequired) { + dialogID = i + DIALOG_141; +@@ -252,7 +254,8 @@ void handle_save_menu(struct MarioState *m) { + // wait for the menu to show up + if (is_anim_past_end(m) && gSaveOptSelectIndex != 0) { + // save and continue / save and quit +- if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { ++ if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE ++ || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { + save_file_do_save(gCurrSaveFileNum - 1); + + if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { +@@ -277,6 +280,7 @@ void handle_save_menu(struct MarioState *m) { + } + } + ++ + /** + * spawn_obj_at_mario_rel_yaw: Spawns object at Mario with relative yaw. + * Spawns object with given behavior and model and copies over Mario's position +@@ -299,9 +303,7 @@ struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, const + * SOUND_ACTION_UNKNOWN43D. + */ + void cutscene_take_cap_off(struct MarioState *m) { +- m->flags &= ~MARIO_CAP_ON_HEAD; +- m->flags |= MARIO_CAP_IN_HAND; +- play_sound(SOUND_ACTION_UNKNOWN43D, m->marioObj->header.gfx.cameraToObject); ++ + } + + /** +@@ -310,9 +312,10 @@ void cutscene_take_cap_off(struct MarioState *m) { + * SOUND_ACTION_UNKNOWN43E. + */ + void cutscene_put_cap_on(struct MarioState *m) { +- m->flags &= ~MARIO_CAP_IN_HAND; ++ /* m->flags &= ~MARIO_CAP_IN_HAND; + m->flags |= MARIO_CAP_ON_HEAD; + play_sound(SOUND_ACTION_UNKNOWN43E, m->marioObj->header.gfx.cameraToObject); ++ */ + } + + /** +@@ -421,8 +424,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { + + // puts Mario in a state where he's waiting for (npc) dialog; doesn't do much + s32 act_waiting_for_dialog(struct MarioState *m) { +- set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON +- : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ set_mario_animation(m, ++ m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + return FALSE; +@@ -535,6 +538,7 @@ s32 act_reading_sign(struct MarioState *m) { + return FALSE; + } + ++// debug free move action + s32 act_debug_free_move(struct MarioState *m) { + struct Surface *surf; + f32 floorHeight; +@@ -589,6 +593,7 @@ s32 act_debug_free_move(struct MarioState *m) { + return FALSE; + } + ++// star dance handler + void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + s32 dialogID; + if (m->actionState == 0) { +@@ -616,7 +621,14 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + level_trigger_warp(m, WARP_OP_STAR_EXIT); + } else { + enable_time_stop(); +- create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); ++ if (m->coinstartotal != 7) ++ { ++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); ++ } ++ else ++ { ++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_099 : DIALOG_014); ++ } + m->actionState = 1; + } + break; +@@ -641,11 +653,17 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + + s32 act_star_dance(struct MarioState *m) { + m->faceAngle[1] = m->area->camera->yaw; ++ + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_STAR_DANCE + : MARIO_ANIM_STAR_DANCE); + general_star_dance_handler(m, 0); + if (m->actionState != 2 && m->actionTimer >= 40) { + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; + } + stop_and_set_height_to_floor(m); + return FALSE; +@@ -653,14 +671,20 @@ s32 act_star_dance(struct MarioState *m) { + + s32 act_star_dance_water(struct MarioState *m) { + m->faceAngle[1] = m->area->camera->yaw; ++ + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE + : MARIO_ANIM_WATER_STAR_DANCE); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + general_star_dance_handler(m, 1); + if (m->actionState != 2 && m->actionTimer >= 62) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; + } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; ++ } + return FALSE; + } + +@@ -679,6 +703,7 @@ s32 act_fall_after_star_grab(struct MarioState *m) { + return FALSE; + } + ++// general death hander + s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp) { + s32 animFrame = set_mario_animation(m, animation); + if (animFrame == frameToDeathWarp) { +@@ -857,6 +882,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { + return FALSE; + } + ++// not sure what kind of door this is + s32 act_entering_star_door(struct MarioState *m) { + f32 targetDX; + f32 targetDZ; +@@ -939,11 +965,13 @@ s32 act_going_through_door(struct MarioState *m) { + if (m->actionTimer == 16) { + level_trigger_warp(m, WARP_OP_WARP_DOOR); + } +- } else if (is_anim_at_end(m)) { +- if (m->actionArg & 2) { +- m->faceAngle[1] += 0x8000; ++ } else { ++ if (is_anim_at_end(m)) { ++ if (m->actionArg & 2) { ++ m->faceAngle[1] += 0x8000; ++ } ++ set_mario_action(m, ACT_IDLE, 0); + } +- set_mario_action(m, ACT_IDLE, 0); + } + + m->actionTimer++; +@@ -1103,8 +1131,16 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + // key exit + case 1: + animFrame = set_mario_animation(m, MARIO_ANIM_THROW_CATCH_KEY); ++ if ( animFrame <= 105) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; ++ } + switch (animFrame) { + case -1: ++ + spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyCourseExit, -32768); + //! fall through + case 67: +@@ -1116,6 +1152,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + case 111: + play_sound(SOUND_ACTION_UNKNOWN45C, m->marioObj->header.gfx.cameraToObject); + // no break ++ + } + handle_save_menu(m); + break; +@@ -1133,21 +1170,52 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + break; + // exit with cap + case 3: ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ + animFrame = set_mario_animation(m, MARIO_ANIM_TAKE_CAP_OFF_THEN_ON); ++ if (animFrame >= 3 && animFrame < 42) { ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } + switch (animFrame) { ++ case 3: ++ ++ ++ break; ++ + case 12: + cutscene_take_cap_off(m); ++ play_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); ++ break; ++ ++ case 14: ++ ++ break; ++ case 24: ++ + break; +- case 37: +- // fall through +- case 53: +- play_sound(SOUND_ACTION_BRUSH_HAIR, m->marioObj->header.gfx.cameraToObject); ++ ++ case 42: ++ + break; +- case 82: +- cutscene_put_cap_on(m); ++ ++ case 64: ++ ++ break; ++ ++ ++ ++ case 70: ++ ++ ++ break; ++ case 99: ++ stop_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); ++ //cutscene_put_cap_on(m); ++ m->flags |= MARIO_CAP_ON_HEAD; + break; + } + handle_save_menu(m); ++ + break; + } + +@@ -1163,9 +1231,7 @@ s32 act_death_exit(struct MarioState *m) { + #else + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + // restore 7.75 units of health + m->healCounter = 31; +@@ -1198,9 +1264,7 @@ s32 act_falling_death_exit(struct MarioState *m) { + #else + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + // restore 7.75 units of health + m->healCounter = 31; +@@ -1245,9 +1309,7 @@ s32 act_special_death_exit(struct MarioState *m) { + } + + if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, MARIO_ANIM_BACKWARD_AIR_KB, -24.0f)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + m->healCounter = 31; + } +@@ -1331,9 +1393,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { + m->flags &= ~MARIO_UNKNOWN_08; + if (perform_air_step(m, 0) == AIR_STEP_LANDED) { + level_trigger_warp(m, WARP_OP_UNKNOWN_02); +-#ifdef VERSION_SH +- queue_rumble_data(15, 80); +-#endif ++ + m->actionState = 4; + } + if (m->actionState == 2) { +@@ -1401,7 +1461,7 @@ s32 act_teleport_fade_out(struct MarioState *m) { + + #ifdef VERSION_SH + if (m->actionTimer == 0) { +- queue_rumble_data(30, 70); ++ //(30, 70); + func_sh_8024C89C(2); + } + #endif +@@ -1427,7 +1487,7 @@ s32 act_teleport_fade_in(struct MarioState *m) { + + #ifdef VERSION_SH + if (m->actionTimer == 0) { +- queue_rumble_data(30, 70); ++ //(30, 70); + func_sh_8024C89C(2); + } + #endif +@@ -1511,16 +1571,40 @@ s32 act_squished(struct MarioState *m) { + } else { + if (!(m->flags & MARIO_METAL_CAP) && m->invincTimer == 0) { + // cap on: 3 units; cap off: 4.5 units +- m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; +- play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) { ++ m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; ++ } else { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); ++ } + } + + // Both of the 1.8's are really floats, but one of them has to +- // be written as a double for this to match on -O2. ++ // be written as a double for this to match on EU. + vec3f_set(m->marioObj->header.gfx.scale, 1.8, 0.05f, 1.8f); +-#ifdef VERSION_SH +- queue_rumble_data(10, 80); +-#endif ++ + m->actionState = 1; + } + break; +@@ -1592,9 +1676,6 @@ s32 act_putting_on_cap(struct MarioState *m) { + enable_time_stop(); + } + +- if (animFrame == 28) { +- cutscene_put_cap_on(m); +- } + + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_IDLE, 0); +@@ -1622,9 +1703,7 @@ void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFra + if (animFrame == -1) { + play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STUCK_IN_GROUND, 1); + } else if (animFrame == unstuckFrame) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + play_sound_and_spawn_particles(m, SOUND_ACTION_UNSTUCK_FROM_GROUND, 1); + } else if (animFrame == target2 || animFrame == target3) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); +@@ -1840,7 +1919,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { + static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { + struct Object *marioObj = m->marioObj; + s32 animFrame; +- ++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); + if (m->actionState == 0) { + set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); + marioObj->rawData.asF32[0x22] = 0.0f; +@@ -1898,7 +1977,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { + f32 targetDZ; + f32 targetHyp; + s16 targetAngle; +- ++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +@@ -1943,6 +2022,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { + enum { JUMBO_STAR_CUTSCENE_FALLING, JUMBO_STAR_CUTSCENE_TAKING_OFF, JUMBO_STAR_CUTSCENE_FLYING }; + + static s32 act_jumbo_star_cutscene(struct MarioState *m) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + switch (m->actionArg) { + case JUMBO_STAR_CUTSCENE_FALLING: + jumbo_star_cutscene_falling(m); +@@ -2176,6 +2256,7 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { + static void end_peach_cutscene_dialog_1(struct MarioState *m) { + s32 animFrame = set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_TAKE_OFF_CAP + : MARIO_ANIM_CREDITS_LOOK_UP); ++ m->flags &= ~MARIO_CAP_ON_HEAD; + + if (m->actionState == 0) { + if (animFrame == 8) { +@@ -2339,7 +2420,7 @@ static u8 sMarioBlinkOverride[20] = { + + static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { + sEndPeachAnimation = 10; +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + if (m->actionTimer >= 90) { + m->marioBodyState->eyeState = + m->actionTimer < 110 ? sMarioBlinkOverride[m->actionTimer - 90] : MARIO_EYES_HALF_CLOSED; +@@ -2382,18 +2463,19 @@ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { + + static void end_peach_cutscene_star_dance(struct MarioState *m) { + s32 animFrame = set_mario_animation(m, MARIO_ANIM_CREDITS_PEACE_SIGN); +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + if (animFrame == 77) { + cutscene_put_cap_on(m); + } + if (animFrame == 88) { + play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame >= 98) { ++ ++ if (animFrame >= 77) { + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; + } + +- if (m->actionTimer < 52) { ++ if (m->actionTimer < 44) { + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + } + +@@ -2433,7 +2515,7 @@ static void end_peach_cutscene_star_dance(struct MarioState *m) { + // "...for Mario..." + static void end_peach_cutscene_dialog_3(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + sEndPeachObj->oPosY = end_obj_set_visual_pos(sEndPeachObj); + sEndRightToadObj->oPosY = end_obj_set_visual_pos(sEndRightToadObj); + sEndLeftToadObj->oPosY = end_obj_set_visual_pos(sEndLeftToadObj); +@@ -2630,7 +2712,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { + } + + if (m->actionTimer++ == TIMER_CREDITS_WARP) { +- level_trigger_warp(m, WARP_OP_CREDITS_NEXT); ++ level_trigger_warp(m, 24); + } + + m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; +@@ -2640,6 +2722,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { + + static s32 act_end_waving_cutscene(struct MarioState *m) { + if (m->actionState == 0) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + m->statusForCamera->cameraEvent = CAM_EVENT_START_END_WAVING; + + sEndPeachObj = spawn_object_abs_with_rot(gCurrentObject, 0, MODEL_PEACH, bhvEndPeach, 60, 906, +@@ -2748,8 +2831,10 @@ s32 mario_execute_cutscene_action(struct MarioState *m) { + } + /* clang-format on */ + +- if (!cancel && (m->input & INPUT_IN_WATER)) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ if (!cancel) { ++ if (m->input & INPUT_IN_WATER) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } + } + + return cancel; +diff --git a/src/game/mario_actions_cutscene.c.rej b/src/game/mario_actions_cutscene.c.rej +new file mode 100644 +index 0000000..309c145 +--- /dev/null ++++ b/src/game/mario_actions_cutscene.c.rej +@@ -0,0 +1,511 @@ ++diff a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c (rejected hunks) ++@@ -3,6 +3,7 @@ ++ #include "prevent_bss_reordering.h" ++ #include "sm64.h" ++ #include "area.h" +++#include "audio/data.h" ++ #include "audio/external.h" ++ #include "behavior_data.h" ++ #include "camera.h" ++@@ -28,6 +29,7 @@ ++ #include "sound_init.h" ++ #include "rumble_init.h" ++ +++ ++ // TODO: put this elsewhere ++ enum SaveOption { SAVE_OPT_SAVE_AND_CONTINUE = 1, SAVE_OPT_SAVE_AND_QUIT, SAVE_OPT_CONTINUE_DONT_SAVE }; ++ ++@@ -48,7 +50,7 @@ static s8 D_8032CBE4 = 0; ++ static s8 D_8032CBE8 = 0; ++ static s8 D_8032CBEC[7] = { 2, 3, 2, 1, 2, 3, 2 }; ++ ++-static u8 sStarsNeededForDialog[] = { 1, 3, 8, 30, 50, 70 }; +++static u8 sStarsNeededForDialog[6] = { 1, 3, 8, 30, 50, 70 }; ++ ++ /** ++ * Data for the jumbo star cutscene. It specifies the flight path after triple ++@@ -234,7 +236,7 @@ s32 get_star_collection_dialog(struct MarioState *m) { ++ s32 dialogID = 0; ++ s32 numStarsRequired; ++ ++- for (i = 0; i < ARRAY_COUNT(sStarsNeededForDialog); i++) { +++ for (i = 0; i < 6; i++) { ++ numStarsRequired = sStarsNeededForDialog[i]; ++ if (m->prevNumStarsForDialog < numStarsRequired && m->numStars >= numStarsRequired) { ++ dialogID = i + DIALOG_141; ++@@ -252,7 +254,8 @@ void handle_save_menu(struct MarioState *m) { ++ // wait for the menu to show up ++ if (is_anim_past_end(m) && gSaveOptSelectIndex != 0) { ++ // save and continue / save and quit ++- if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { +++ if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE +++ || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { ++ save_file_do_save(gCurrSaveFileNum - 1); ++ ++ if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { ++@@ -277,6 +280,7 @@ void handle_save_menu(struct MarioState *m) { ++ } ++ } ++ +++ ++ /** ++ * spawn_obj_at_mario_rel_yaw: Spawns object at Mario with relative yaw. ++ * Spawns object with given behavior and model and copies over Mario's position ++@@ -299,9 +303,7 @@ struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, const ++ * SOUND_ACTION_UNKNOWN43D. ++ */ ++ void cutscene_take_cap_off(struct MarioState *m) { ++- m->flags &= ~MARIO_CAP_ON_HEAD; ++- m->flags |= MARIO_CAP_IN_HAND; ++- play_sound(SOUND_ACTION_UNKNOWN43D, m->marioObj->header.gfx.cameraToObject); +++ ++ } ++ ++ /** ++@@ -310,9 +312,10 @@ void cutscene_take_cap_off(struct MarioState *m) { ++ * SOUND_ACTION_UNKNOWN43E. ++ */ ++ void cutscene_put_cap_on(struct MarioState *m) { ++- m->flags &= ~MARIO_CAP_IN_HAND; +++ /* m->flags &= ~MARIO_CAP_IN_HAND; ++ m->flags |= MARIO_CAP_ON_HEAD; ++ play_sound(SOUND_ACTION_UNKNOWN43E, m->marioObj->header.gfx.cameraToObject); +++ */ ++ } ++ ++ /** ++@@ -421,8 +424,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { ++ ++ // puts Mario in a state where he's waiting for (npc) dialog; doesn't do much ++ s32 act_waiting_for_dialog(struct MarioState *m) { ++- set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON ++- : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +++ set_mario_animation(m, +++ m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ return FALSE; ++@@ -535,6 +538,7 @@ s32 act_reading_sign(struct MarioState *m) { ++ return FALSE; ++ } ++ +++// debug free move action ++ s32 act_debug_free_move(struct MarioState *m) { ++ struct Surface *surf; ++ f32 floorHeight; ++@@ -589,6 +593,7 @@ s32 act_debug_free_move(struct MarioState *m) { ++ return FALSE; ++ } ++ +++// star dance handler ++ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { ++ s32 dialogID; ++ if (m->actionState == 0) { ++@@ -616,7 +621,14 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { ++ level_trigger_warp(m, WARP_OP_STAR_EXIT); ++ } else { ++ enable_time_stop(); ++- create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); +++ if (m->coinstartotal != 7) +++ { +++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); +++ } +++ else +++ { +++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_099 : DIALOG_014); +++ } ++ m->actionState = 1; ++ } ++ break; ++@@ -641,11 +653,17 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { ++ ++ s32 act_star_dance(struct MarioState *m) { ++ m->faceAngle[1] = m->area->camera->yaw; +++ ++ set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_STAR_DANCE ++ : MARIO_ANIM_STAR_DANCE); ++ general_star_dance_handler(m, 0); ++ if (m->actionState != 2 && m->actionTimer >= 40) { ++ m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; +++ m->flags &= ~MARIO_CAP_ON_HEAD; +++ } +++ else +++ { +++ m->flags |= MARIO_CAP_ON_HEAD; ++ } ++ stop_and_set_height_to_floor(m); ++ return FALSE; ++@@ -653,14 +671,20 @@ s32 act_star_dance(struct MarioState *m) { ++ ++ s32 act_star_dance_water(struct MarioState *m) { ++ m->faceAngle[1] = m->area->camera->yaw; +++ ++ set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE ++ : MARIO_ANIM_WATER_STAR_DANCE); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ general_star_dance_handler(m, 1); ++ if (m->actionState != 2 && m->actionTimer >= 62) { +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; ++ } +++ else +++ { +++ m->flags |= MARIO_CAP_ON_HEAD; +++ } ++ return FALSE; ++ } ++ ++@@ -679,6 +703,7 @@ s32 act_fall_after_star_grab(struct MarioState *m) { ++ return FALSE; ++ } ++ +++// general death hander ++ s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp) { ++ s32 animFrame = set_mario_animation(m, animation); ++ if (animFrame == frameToDeathWarp) { ++@@ -857,6 +882,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { ++ return FALSE; ++ } ++ +++// not sure what kind of door this is ++ s32 act_entering_star_door(struct MarioState *m) { ++ f32 targetDX; ++ f32 targetDZ; ++@@ -939,11 +965,13 @@ s32 act_going_through_door(struct MarioState *m) { ++ if (m->actionTimer == 16) { ++ level_trigger_warp(m, WARP_OP_WARP_DOOR); ++ } ++- } else if (is_anim_at_end(m)) { ++- if (m->actionArg & 2) { ++- m->faceAngle[1] += 0x8000; +++ } else { +++ if (is_anim_at_end(m)) { +++ if (m->actionArg & 2) { +++ m->faceAngle[1] += 0x8000; +++ } +++ set_mario_action(m, ACT_IDLE, 0); ++ } ++- set_mario_action(m, ACT_IDLE, 0); ++ } ++ ++ m->actionTimer++; ++@@ -1103,8 +1131,16 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { ++ // key exit ++ case 1: ++ animFrame = set_mario_animation(m, MARIO_ANIM_THROW_CATCH_KEY); +++ if ( animFrame <= 105) { +++ m->flags &= ~MARIO_CAP_ON_HEAD; +++ } +++ else +++ { +++ m->flags |= MARIO_CAP_ON_HEAD; +++ } ++ switch (animFrame) { ++ case -1: +++ ++ spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyCourseExit, -32768); ++ //! fall through ++ case 67: ++@@ -1116,6 +1152,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { ++ case 111: ++ play_sound(SOUND_ACTION_UNKNOWN45C, m->marioObj->header.gfx.cameraToObject); ++ // no break +++ ++ } ++ handle_save_menu(m); ++ break; ++@@ -1133,21 +1170,52 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { ++ break; ++ // exit with cap ++ case 3: +++ m->flags &= ~MARIO_CAP_ON_HEAD; +++ ++ animFrame = set_mario_animation(m, MARIO_ANIM_TAKE_CAP_OFF_THEN_ON); +++ if (animFrame >= 3 && animFrame < 42) { +++ m->marioBodyState->handState = MARIO_HAND_OPEN; +++ } ++ switch (animFrame) { +++ case 3: +++ +++ +++ break; +++ ++ case 12: ++ cutscene_take_cap_off(m); +++ play_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); +++ break; +++ +++ case 14: +++ +++ break; +++ case 24: +++ ++ break; ++- case 37: ++- // fall through ++- case 53: ++- play_sound(SOUND_ACTION_BRUSH_HAIR, m->marioObj->header.gfx.cameraToObject); +++ +++ case 42: +++ ++ break; ++- case 82: ++- cutscene_put_cap_on(m); +++ +++ case 64: +++ +++ break; +++ +++ +++ +++ case 70: +++ +++ +++ break; +++ case 99: +++ stop_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); +++ //cutscene_put_cap_on(m); +++ m->flags |= MARIO_CAP_ON_HEAD; ++ break; ++ } ++ handle_save_menu(m); +++ ++ break; ++ } ++ ++@@ -1163,9 +1231,7 @@ s32 act_death_exit(struct MarioState *m) { ++ #else ++ play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); ++ #endif ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ m->numLives--; ++ // restore 7.75 units of health ++ m->healCounter = 31; ++@@ -1198,9 +1264,7 @@ s32 act_falling_death_exit(struct MarioState *m) { ++ #else ++ play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); ++ #endif ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ m->numLives--; ++ // restore 7.75 units of health ++ m->healCounter = 31; ++@@ -1245,9 +1309,7 @@ s32 act_special_death_exit(struct MarioState *m) { ++ } ++ ++ if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, MARIO_ANIM_BACKWARD_AIR_KB, -24.0f)) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ m->numLives--; ++ m->healCounter = 31; ++ } ++@@ -1331,9 +1393,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { ++ m->flags &= ~MARIO_UNKNOWN_08; ++ if (perform_air_step(m, 0) == AIR_STEP_LANDED) { ++ level_trigger_warp(m, WARP_OP_UNKNOWN_02); ++-#ifdef VERSION_SH ++- queue_rumble_data(15, 80); ++-#endif +++ ++ m->actionState = 4; ++ } ++ if (m->actionState == 2) { ++@@ -1401,7 +1461,7 @@ s32 act_teleport_fade_out(struct MarioState *m) { ++ ++ #ifdef VERSION_SH ++ if (m->actionTimer == 0) { ++- queue_rumble_data(30, 70); +++ //(30, 70); ++ func_sh_8024C89C(2); ++ } ++ #endif ++@@ -1427,7 +1487,7 @@ s32 act_teleport_fade_in(struct MarioState *m) { ++ ++ #ifdef VERSION_SH ++ if (m->actionTimer == 0) { ++- queue_rumble_data(30, 70); +++ //(30, 70); ++ func_sh_8024C89C(2); ++ } ++ #endif ++@@ -1511,16 +1571,40 @@ s32 act_squished(struct MarioState *m) { ++ } else { ++ if (!(m->flags & MARIO_METAL_CAP) && m->invincTimer == 0) { ++ // cap on: 3 units; cap off: 4.5 units ++- m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; ++- play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem != SONIC_HEALTH) { +++ m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; +++ } else { +++ if (gMarioState->numCoins > 0) +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ +++ } +++ else +++ { +++ m->health = 0xFF; +++ } +++ } +++ play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); +++ } ++ } ++ ++ // Both of the 1.8's are really floats, but one of them has to ++- // be written as a double for this to match on -O2. +++ // be written as a double for this to match on EU. ++ vec3f_set(m->marioObj->header.gfx.scale, 1.8, 0.05f, 1.8f); ++-#ifdef VERSION_SH ++- queue_rumble_data(10, 80); ++-#endif +++ ++ m->actionState = 1; ++ } ++ break; ++@@ -1592,9 +1676,6 @@ s32 act_putting_on_cap(struct MarioState *m) { ++ enable_time_stop(); ++ } ++ ++- if (animFrame == 28) { ++- cutscene_put_cap_on(m); ++- } ++ ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_IDLE, 0); ++@@ -1622,9 +1703,7 @@ void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFra ++ if (animFrame == -1) { ++ play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STUCK_IN_GROUND, 1); ++ } else if (animFrame == unstuckFrame) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ play_sound_and_spawn_particles(m, SOUND_ACTION_UNSTUCK_FROM_GROUND, 1); ++ } else if (animFrame == target2 || animFrame == target3) { ++ play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); ++@@ -1840,7 +1919,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { ++ static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { ++ struct Object *marioObj = m->marioObj; ++ s32 animFrame; ++- +++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); ++ if (m->actionState == 0) { ++ set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); ++ marioObj->rawData.asF32[0x22] = 0.0f; ++@@ -1898,7 +1977,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { ++ f32 targetDZ; ++ f32 targetHyp; ++ s16 targetAngle; ++- +++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++@@ -1943,6 +2022,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { ++ enum { JUMBO_STAR_CUTSCENE_FALLING, JUMBO_STAR_CUTSCENE_TAKING_OFF, JUMBO_STAR_CUTSCENE_FLYING }; ++ ++ static s32 act_jumbo_star_cutscene(struct MarioState *m) { +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ switch (m->actionArg) { ++ case JUMBO_STAR_CUTSCENE_FALLING: ++ jumbo_star_cutscene_falling(m); ++@@ -2176,6 +2256,7 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { ++ static void end_peach_cutscene_dialog_1(struct MarioState *m) { ++ s32 animFrame = set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_TAKE_OFF_CAP ++ : MARIO_ANIM_CREDITS_LOOK_UP); +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ ++ if (m->actionState == 0) { ++ if (animFrame == 8) { ++@@ -2339,7 +2420,7 @@ static u8 sMarioBlinkOverride[20] = { ++ ++ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { ++ sEndPeachAnimation = 10; ++- +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ if (m->actionTimer >= 90) { ++ m->marioBodyState->eyeState = ++ m->actionTimer < 110 ? sMarioBlinkOverride[m->actionTimer - 90] : MARIO_EYES_HALF_CLOSED; ++@@ -2382,18 +2463,19 @@ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { ++ ++ static void end_peach_cutscene_star_dance(struct MarioState *m) { ++ s32 animFrame = set_mario_animation(m, MARIO_ANIM_CREDITS_PEACE_SIGN); ++- +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ if (animFrame == 77) { ++ cutscene_put_cap_on(m); ++ } ++ if (animFrame == 88) { ++ play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); ++ } ++- if (animFrame >= 98) { +++ +++ if (animFrame >= 77) { ++ m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; ++ } ++ ++- if (m->actionTimer < 52) { +++ if (m->actionTimer < 44) { ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ } ++ ++@@ -2433,7 +2515,7 @@ static void end_peach_cutscene_star_dance(struct MarioState *m) { ++ // "...for Mario..." ++ static void end_peach_cutscene_dialog_3(struct MarioState *m) { ++ set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); ++- +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ sEndPeachObj->oPosY = end_obj_set_visual_pos(sEndPeachObj); ++ sEndRightToadObj->oPosY = end_obj_set_visual_pos(sEndRightToadObj); ++ sEndLeftToadObj->oPosY = end_obj_set_visual_pos(sEndLeftToadObj); ++@@ -2630,7 +2712,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { ++ } ++ ++ if (m->actionTimer++ == TIMER_CREDITS_WARP) { ++- level_trigger_warp(m, WARP_OP_CREDITS_NEXT); +++ level_trigger_warp(m, 24); ++ } ++ ++ m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; ++@@ -2640,6 +2722,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { ++ ++ static s32 act_end_waving_cutscene(struct MarioState *m) { ++ if (m->actionState == 0) { +++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ m->statusForCamera->cameraEvent = CAM_EVENT_START_END_WAVING; ++ ++ sEndPeachObj = spawn_object_abs_with_rot(gCurrentObject, 0, MODEL_PEACH, bhvEndPeach, 60, 906, ++@@ -2748,8 +2831,10 @@ s32 mario_execute_cutscene_action(struct MarioState *m) { ++ } ++ /* clang-format on */ ++ ++- if (!cancel && (m->input & INPUT_IN_WATER)) { ++- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +++ if (!cancel) { +++ if (m->input & INPUT_IN_WATER) { +++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +++ } ++ } ++ ++ return cancel; +diff --git a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c +index 8b8e8e1..eaa83ec 100644 +--- a/src/game/mario_actions_moving.c ++++ b/src/game/mario_actions_moving.c +@@ -1,5 +1,5 @@ + #include +- ++#include "types.h" + #include "sm64.h" + #include "mario.h" + #include "audio/external.h" +@@ -12,6 +12,8 @@ + #include "memory.h" + #include "behavior_data.h" + #include "rumble_init.h" ++#include "ingame_menu.h" ++#include "level_update.h" + + struct LandingAction { + s16 numFrames; +@@ -24,15 +26,15 @@ struct LandingAction { + }; + + struct LandingAction sJumpLandAction = { +- 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sFreefallLandAction = { +- 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sSideFlipLandAction = { +- 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sHoldJumpLandAction = { +@@ -62,9 +64,12 @@ struct LandingAction sBackflipLandAction = { + Mat4 sFloorAlignMatrix[2]; + + s16 tilt_body_running(struct MarioState *m) { +- s16 pitch = find_floor_slope(m, 0); +- pitch = pitch * m->forwardVel / 40.0f; +- return -pitch; ++ if (m->floorHeight != m->waterLevel) ++ { ++ s16 pitch = find_floor_slope(m, 0); ++ pitch = pitch * m->forwardVel / 40.0f; ++ return -pitch; ++ } + } + + void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { +@@ -86,9 +91,37 @@ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { + } + + void align_with_floor(struct MarioState *m) { +- m->pos[1] = m->floorHeight; +- mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); +- m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ if (m->action != ACT_DIVE_SLIDE) ++ { ++ m->pos[1] = m->floorHeight; ++ } ++ else ++ { ++ m->pos[1] = m->floorHeight + 30; ++ } ++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); ++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ ++ ++ ++ ++ ++ if (m->action == ACT_SPINDASH) ++ { ++ //m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 280; ++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.05f, 0.8f); ++ ++ } ++ else ++ { ++ if (m->action != ACT_DIVE_SLIDE) ++ { ++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); ++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ } ++ } ++ + } + + s32 begin_walking_action(struct MarioState *m, f32 forwardVel, u32 action, u32 actionArg) { +@@ -114,20 +147,22 @@ void check_ledge_climb_down(struct MarioState *m) { + + if (find_wall_collisions(&wallCols) != 0) { + floorHeight = find_floor(wallCols.x, wallCols.y, wallCols.z, &floor); +- if (floor != NULL && (wallCols.y - floorHeight > 160.0f)) { +- wall = wallCols.walls[wallCols.numWalls - 1]; +- wallAngle = atan2s(wall->normal.z, wall->normal.x); +- wallDYaw = wallAngle - m->faceAngle[1]; ++ if (floor != NULL) { ++ if (wallCols.y - floorHeight > 160.0f) { ++ wall = wallCols.walls[wallCols.numWalls - 1]; ++ wallAngle = atan2s(wall->normal.z, wall->normal.x); ++ wallDYaw = wallAngle - m->faceAngle[1]; + +- if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { +- m->pos[0] = wallCols.x - 20.0f * wall->normal.x; +- m->pos[2] = wallCols.z - 20.0f * wall->normal.z; ++ if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { ++ m->pos[0] = wallCols.x - 20.0f * wall->normal.x; ++ m->pos[2] = wallCols.z - 20.0f * wall->normal.z; + +- m->faceAngle[0] = 0; +- m->faceAngle[1] = wallAngle + 0x8000; ++ m->faceAngle[0] = 0; ++ m->faceAngle[1] = wallAngle + 0x8000; + +- set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); +- set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); ++ set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); ++ set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); ++ } + } + } + } +@@ -135,7 +170,7 @@ void check_ledge_climb_down(struct MarioState *m) { + } + + void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { +- if (m->forwardVel > 16.0f) { ++ if (m->forwardVel > 70.0f) { + mario_bonk_reflection(m, TRUE); + drop_and_set_mario_action(m, fastAction, 0); + } else { +@@ -144,76 +179,195 @@ void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { + } + } + +-s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { +- if (m->flags & MARIO_WING_CAP) { +- return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); +- } else if (m->forwardVel > 20.0f) { +- return set_mario_action(m, ACT_TRIPLE_JUMP, 0); +- } else { +- return set_mario_action(m, ACT_JUMP, 0); +- } +- +- return FALSE; +-} + +-void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { +- s32 newFacingDYaw; +- s16 facingDYaw; + +- struct Surface *floor = m->floor; +- s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); +- f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); +- UNUSED f32 normalY = floor->normal.y; + +- m->slideVelX += accel * steepness * sins(slopeAngle); +- m->slideVelZ += accel * steepness * coss(slopeAngle); ++s32 act_spindash(struct MarioState *m) { ++ m->faceAngle[1] = m->intendedYaw; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; ++ ++ //play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ + +- m->slideVelX *= lossFactor; +- m->slideVelZ *= lossFactor; + +- m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); ++ if (!(m->input & INPUT_Z_DOWN)) { ++ m->actionTimer = 0; ++ set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ mario_set_forward_vel(m, m->forwardVel); ++ } + +- facingDYaw = m->faceAngle[1] - m->slideYaw; +- newFacingDYaw = facingDYaw; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.6f, 1.0f, 0.6f); + +- //! -0x4000 not handled - can slide down a slope while facing perpendicular to it +- if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { +- if ((newFacingDYaw -= 0x200) < 0) { +- newFacingDYaw = 0; +- } +- } else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { +- if ((newFacingDYaw += 0x200) > 0) { +- newFacingDYaw = 0; +- } +- } else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { +- if ((newFacingDYaw += 0x200) > 0x8000) { +- newFacingDYaw = 0x8000; +- } +- } else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { +- if ((newFacingDYaw -= 0x200) < -0x8000) { +- newFacingDYaw = -0x8000; +- } +- } ++ if (m->forwardVel < 50.0f) ++ { ++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 200; ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 30; ++ ++ m->forwardVel = 50.0f; ++ } + +- m->faceAngle[1] = m->slideYaw + newFacingDYaw; ++ if (m->input & INPUT_B_PRESSED ) { ++ if (m->forwardVel <= 200) ++ { ++ m->particleFlags |= PARTICLE_DUST; ++ ++ m->forwardVel += 40.0f; + +- m->vel[0] = m->slideVelX; +- m->vel[1] = 0.0f; +- m->vel[2] = m->slideVelZ; ++ } ++ else ++ { ++ m->forwardVel = 200; ++ } ++ play_sound(SOUND_MARIO_YAWNING, ++ m->marioObj->header.gfx.cameraToObject); ++ set_mario_action(m, ACT_SPINDASH, m->forwardVel/10); ++ ++ ++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); ++ } + +- mario_update_moving_sand(m); +- mario_update_windy_ground(m); ++ return FALSE; ++} + +- //! Speed is capped a frame late (butt slide HSG) +- m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); +- if (m->forwardVel > 100.0f) { +- m->slideVelX = m->slideVelX * 100.0f / m->forwardVel; +- m->slideVelZ = m->slideVelZ * 100.0f / m->forwardVel; ++s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { ++ if (m->flags & MARIO_WING_CAP) { ++ return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); ++ } else if (m->forwardVel > 20.0f) { ++ return set_mario_action(m, ACT_TRIPLE_JUMP, 0); ++ } else { ++ return set_mario_action(m, ACT_JUMP, 0); + } + +- if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { +- m->forwardVel *= -1.0f; +- } ++ return 0; ++} ++ ++void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { ++ s32 newFacingDYaw; ++ s16 facingDYaw; ++ s32 setdash = FALSE; ++ ++ struct Surface *floor = m->floor; ++ s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); ++ f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); ++ UNUSED f32 normalY = floor->normal.y; ++ ++ m->slideVelX += accel * steepness * sins(slopeAngle); ++ m->slideVelZ += accel * steepness * coss(slopeAngle); ++ ++ m->slideVelX *= lossFactor; ++ m->slideVelZ *= lossFactor; ++ ++ m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); ++ ++ facingDYaw = m->faceAngle[1] - m->slideYaw; ++ newFacingDYaw = facingDYaw; ++ ++ ++ //! -0x4000 not handled - can slide down a slope while facing perpendicular to it ++ if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { ++ if ((newFacingDYaw -= 0x200) < 0) { ++ newFacingDYaw = 0; ++ } ++ } ++ else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { ++ if ((newFacingDYaw += 0x200) > 0) { ++ newFacingDYaw = 0; ++ } ++ } ++ else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { ++ if ((newFacingDYaw += 0x200) > 0x8000) { ++ newFacingDYaw = 0x8000; ++ } ++ } ++ else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { ++ if ((newFacingDYaw -= 0x200) < -0x8000) { ++ newFacingDYaw = -0x8000; ++ } ++ } ++ ++ ++ ++ if (m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) ++ { ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ } ++ else ++ { ++ m->faceAngle[1] = m->slideYaw + newFacingDYaw; ++ ++ } ++ if (m->action == ACT_SLIDE_KICK_SLIDE && m->actionTimer == 1) ++ { ++ m->vel[0] = m->slideVelX *= 1.6; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ *= 1.6; ++ } ++ else ++ { ++ m->vel[0] = m->slideVelX; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ; ++ } ++ ++ mario_update_moving_sand(m); ++ mario_update_windy_ground(m); ++ ++ //! Speed is capped a frame late (butt slide HSG) ++ m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); ++ if (m->forwardVel > 150.0f && m->action == ACT_DIVE_SLIDE && m->prevAction == ACT_SPINDASH) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->actionTimer++; ++ } ++ ++ if (m->forwardVel > 150.0f) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->particleFlags |= PARTICLE_SONIC_TRAIL_ROLLING; ++ } ++ else ++ { ++ m->particleFlags |= PARTICLE_SUPER_TRAIL_ROLLING; ++ } ++ ++ } ++ if (m->forwardVel > 200.0f) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->forwardVel--; ++ } ++ else ++ { ++ m->forwardVel += 10.0f; ++ } ++ m->slideVelX = m->slideVelX * 200.0f / m->forwardVel; ++ m->slideVelZ = m->slideVelZ * 200.0f / m->forwardVel; ++ ++ } ++ } ++ else ++ { ++ if (m->forwardVel > 150.0f) { ++ m->slideVelX = m->slideVelX * 150.0f / m->forwardVel; ++ m->slideVelZ = m->slideVelZ * 150.0f / m->forwardVel; ++ } ++ ++ ++ } ++ ++ if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { ++ m->forwardVel *= -1.0f; ++ } + } + + s32 update_sliding(struct MarioState *m, f32 stopSpeed) { +@@ -228,6 +382,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + f32 forward = coss(intendedDYaw); + f32 sideward = sins(intendedDYaw); + ++ + //! 10k glitch + if (forward < 0.0f && m->forwardVel >= 0.0f) { + forward *= 0.5f + 0.5f * m->forwardVel / 100.0f; +@@ -235,23 +390,65 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + + switch (mario_get_floor_class(m)) { + case SURFACE_CLASS_VERY_SLIPPERY: +- accel = 10.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 26.0f; ++ ++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.98f; ++ } ++ else ++ { ++ ++ accel = 10.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; ++ } ++ + break; + + case SURFACE_CLASS_SLIPPERY: +- accel = 8.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 23.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.96f; ++ } ++ else ++ { ++ accel = 8.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; ++ } ++ + break; + + default: +- accel = 7.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 20.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; ++ } ++ else ++ { ++ accel = 7.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ } ++ + break; + + case SURFACE_CLASS_NOT_SLIPPERY: +- accel = 5.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 5.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; ++ } ++ else ++ { ++ accel = 0.1f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ } ++ + break; + } + +@@ -272,6 +469,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + + update_sliding_angle(m, accel, lossFactor); + ++ + if (!mario_floor_is_slope(m) && m->forwardVel * m->forwardVel < stopSpeed * stopSpeed) { + mario_set_forward_vel(m, 0.0f); + stopped = TRUE; +@@ -297,18 +495,94 @@ void apply_slope_accel(struct MarioState *m) { + } + + switch (slopeClass) { +- case SURFACE_CLASS_VERY_SLIPPERY: +- slopeAccel = 5.3f; +- break; +- case SURFACE_CLASS_SLIPPERY: +- slopeAccel = 2.7f; +- break; +- default: +- slopeAccel = 1.7f; +- break; +- case SURFACE_CLASS_NOT_SLIPPERY: +- slopeAccel = 0.0f; +- break; ++ ++ { ++ case SURFACE_CLASS_VERY_SLIPPERY: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 5.3f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 5.3f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ break; ++ case SURFACE_CLASS_SLIPPERY: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 2.7f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 2.7f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ ++ break; ++ default: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 1.0f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 1.0f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ break; ++ case SURFACE_CLASS_NOT_SLIPPERY: ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 0.4f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ break; ++ ++ ++ } + } + + if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { +@@ -347,6 +621,7 @@ s32 apply_landing_accel(struct MarioState *m, f32 frictionFactor) { + return stopped; + } + ++ + void update_shell_speed(struct MarioState *m) { + f32 maxTargetSpeed; + f32 targetSpeed; +@@ -355,6 +630,7 @@ void update_shell_speed(struct MarioState *m) { + m->floorHeight = m->waterLevel; + m->floor = &gWaterSurfacePseudoFloor; + m->floor->originOffset = m->waterLevel; //! Negative origin offset ++ + } + + if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { +@@ -384,8 +660,7 @@ void update_shell_speed(struct MarioState *m) { + m->forwardVel = 64.0f; + } + +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + + apply_slope_accel(m); + } +@@ -395,18 +670,20 @@ s32 apply_slope_decel(struct MarioState *m, f32 decelCoef) { + s32 stopped = FALSE; + + switch (mario_get_floor_class(m)) { ++ + case SURFACE_CLASS_VERY_SLIPPERY: +- decel = decelCoef * 0.2f; ++ decel = decelCoef * 0.8f ; + break; + case SURFACE_CLASS_SLIPPERY: +- decel = decelCoef * 0.7f; ++ decel = decelCoef * 0.9f ; + break; + default: +- decel = decelCoef * 2.0f; ++ decel = decelCoef * 1.5f ; + break; + case SURFACE_CLASS_NOT_SLIPPERY: +- decel = decelCoef * 3.0f; ++ decel = decelCoef * 1.0f ; + break; ++ + } + + if ((m->forwardVel = approach_f32(m->forwardVel, 0.0f, decel, decel)) == 0.0f) { +@@ -435,10 +712,14 @@ void update_walking_speed(struct MarioState *m) { + f32 maxTargetSpeed; + f32 targetSpeed; + ++ ++ ++ ++ + if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { +- maxTargetSpeed = 24.0f; ++ maxTargetSpeed = 800.0f; + } else { +- maxTargetSpeed = 32.0f; ++ maxTargetSpeed = 1000.0f; + } + + targetSpeed = m->intendedMag < maxTargetSpeed ? m->intendedMag : maxTargetSpeed; +@@ -450,25 +731,28 @@ void update_walking_speed(struct MarioState *m) { + if (m->forwardVel <= 0.0f) { + m->forwardVel += 1.1f; + } else if (m->forwardVel <= targetSpeed) { +- m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++ m->forwardVel += 1.1f - m->forwardVel / 1050.0f; + } else if (m->floor->normal.y >= 0.95f) { + m->forwardVel -= 1.0f; + } + +- if (m->forwardVel > 48.0f) { +- m->forwardVel = 48.0f; ++ if (m->forwardVel > 200.0f) { ++ m->forwardVel = 200.0f; + } + +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ /* Handles the "Super responsive controls" cheat. The content of the "else" is Mario's original code for turning around.*/ ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ + apply_slope_accel(m); + } + + s32 should_begin_sliding(struct MarioState *m) { + if (m->input & INPUT_ABOVE_SLIDE) { + s32 slideLevel = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE; ++ + s32 movingBackward = m->forwardVel <= -1.0f; + ++ + if (slideLevel || movingBackward || mario_facing_downhill(m, FALSE)) { + return TRUE; + } +@@ -486,11 +770,7 @@ s32 check_ground_dive_or_punch(struct MarioState *m) { + UNUSED s32 unused; + + if (m->input & INPUT_B_PRESSED) { +- //! Speed kick (shoutouts to SimpleFlips) +- if (m->forwardVel >= 29.0f && m->controller->stickMag > 48.0f) { +- m->vel[1] = 20.0f; +- return set_mario_action(m, ACT_DIVE, 1); +- } ++ + + return set_mario_action(m, ACT_MOVE_PUNCHING, 0); + } +@@ -570,7 +850,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { + case 2: + if (val04 < 5.0f) { + m->actionTimer = 1; +- } else if (val04 > 22.0f) { ++ } else if (val04 > 60.0f) { + m->actionTimer = 3; + } else { + //! (Speed Crash) If Mario's speed is more than 2^17. +@@ -583,13 +863,76 @@ void anim_and_audio_for_walk(struct MarioState *m) { + break; + + case 3: +- if (val04 < 18.0f) { ++ if (val04 < 55.0f) { + m->actionTimer = 2; + } else { + //! (Speed Crash) If Mario's speed is more than 2^17. +- val14 = (s32)(val04 / 4.0f * 0x10000); +- set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); +- play_step_sound(m, 9, 45); ++ ++ if (m->forwardVel < 45.0f) ++ { ++ val14 = (s32)(val04 / 7.5f * 0x10000); ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); ++ ++ ++ ++ } ++ else ++ { ++ ++ ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ val14 = (s32)(val04 / 10.5f * 0x10000); ++ //sonic super flying ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ if (!(m->flags & MARIO_IS_SHADOW)) { ++ val14 = (s32)(val04 / 6.8f * 0x10000); ++ //sonic full speed run ++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_FLIP, val14); ++ } ++ else ++ { ++ val14 = (s32)(val04 / 30.5f * 0x10000); ++ //shadow full speed run ++ set_mario_anim_with_accel(m, MARIO_ANIM_QUICKLY_PUT_CAP_ON, val14); ++ } ++ } ++ if (m->forwardVel < 85.0f) ++ { ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } ++ } ++ if (!(m->flags & MARIO_IS_SUPER) || (m->forwardVel < 45.0f) ) ++ { ++ ++ if (m->flags & MARIO_IS_SHADOW && m->forwardVel > 45.0f) ++ { ++ play_step_sound(m, 2, 27); ++ if ((m->marioObj->header.gfx.animInfo.animFrame > 2 && 21 > m->marioObj->header.gfx.animInfo.animFrame) || (m->marioObj->header.gfx.animInfo.animFrame > 27 && 46 > m->marioObj->header.gfx.animInfo.animFrame)) { ++ play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); ++ //|| m->marioObj->header.gfx.animInfo.animFrame == 30) ++ m->particleFlags |= PARTICLE_DUST; ++ } ++ } ++ else ++ { ++ play_step_sound(m, 9, 45); ++ } ++ ++ } ++ else ++ { ++ ++ play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); ++ adjust_sound_for_speed(m); ++ ++ } ++ ++ //play_step_sound(m, 27, 63); + targetPitch = tilt_body_running(m); + + val0C = FALSE; +@@ -713,7 +1056,7 @@ void tilt_body_walking(struct MarioState *m, s16 startYaw) { + UNUSED struct Object *marioObj = m->marioObj; + s16 animID = m->marioObj->header.gfx.animInfo.animID; + +- if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { ++ if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING || animID == MARIO_ANIM_FORWARD_FLIP || animID == MARIO_ANIM_BEND_KNESS_RIDING_SHELL || animID == MARIO_ANIM_QUICKLY_PUT_CAP_ON) { + s16 dYaw = m->faceAngle[1] - startYaw; + //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or + //! (forwardVel * 170) exceed or equal 2^31. +@@ -774,18 +1117,46 @@ void tilt_body_ground_shell(struct MarioState *m, s16 startYaw) { + marioObj->header.gfx.pos[1] += 45.0f; + } + ++ ++ ++ ++ ++ + s32 act_walking(struct MarioState *m) { + Vec3f startPos; + s16 startYaw = m->faceAngle[1]; +- + mario_drop_held_object(m); + ++ ++ ++ ++ //m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; ++ ++ ++ ++ if (m->floorHeight < m->waterLevel && m->forwardVel > 45.0f) { ++ m->floorHeight = m->waterLevel; ++ m->floor = &gWaterSurfacePseudoFloor; ++ m->floor->originOffset = m->waterLevel; //! Negative origin offset ++ ++ ++ spawn_object(m->marioObj, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); ++ ++ } ++ ++ ++ + if (should_begin_sliding(m)) { +- return set_mario_action(m, ACT_BEGIN_SLIDING, 0); ++ if (ACT_WALKING && m->forwardVel > 100.0f) ++ { ++ return set_mario_action(m, ACT_BEGIN_SLIDING, 0); ++ } + } + + if (m->input & INPUT_FIRST_PERSON) { +- return begin_braking_action(m); ++ ++ return begin_braking_action(m); ++ + } + + if (m->input & INPUT_A_PRESSED) { +@@ -805,7 +1176,15 @@ s32 act_walking(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ ++ if (m->forwardVel >= 2.0f) ++ { ++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ } ++ else ++ { ++ return set_mario_action(m, ACT_START_CROUCHING, 0); ++ } + } + + m->actionState = 0; +@@ -851,6 +1230,7 @@ s32 act_move_punching(struct MarioState *m) { + mario_update_punch_sequence(m); + + if (m->forwardVel >= 0.0f) { ++ + apply_slope_decel(m, 0.5f); + } else { + if ((m->forwardVel += 8.0f) >= 0.0f) { +@@ -873,6 +1253,7 @@ s32 act_move_punching(struct MarioState *m) { + } + + s32 act_hold_walking(struct MarioState *m) { ++ + if (m->heldObj->behavior == segmented_to_virtual(bhvJumpingBox)) { + return set_mario_action(m, ACT_CRAZY_BOX_BOUNCE, 0); + } +@@ -898,7 +1279,7 @@ s32 act_hold_walking(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return drop_and_set_mario_action(m, ACT_CROUCHING, 0); + } + + m->intendedMag *= 0.4f; +@@ -1091,7 +1472,7 @@ s32 act_decelerating(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return set_mario_action(m, ACT_START_CROUCHING, 0); + } + } + +@@ -1152,7 +1533,7 @@ s32 act_hold_decelerating(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { +@@ -1198,7 +1579,7 @@ s32 act_hold_decelerating(struct MarioState *m) { + } + + s32 act_riding_shell_ground(struct MarioState *m) { +- s16 startYaw = m->faceAngle[1]; ++ /*06*/ s16 startYaw = m->faceAngle[1]; + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_RIDING_SHELL_JUMP, 0); +@@ -1209,7 +1590,7 @@ s32 act_riding_shell_ground(struct MarioState *m) { + if (m->forwardVel < 24.0f) { + mario_set_forward_vel(m, 24.0f); + } +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); + } + + update_shell_speed(m); +@@ -1238,9 +1619,8 @@ s32 act_riding_shell_ground(struct MarioState *m) { + } + + adjust_sound_for_speed(m); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + +@@ -1319,7 +1699,7 @@ s32 act_burning_ground(struct MarioState *m) { + m->forwardVel = 48.0f; + } + +- m->forwardVel = approach_f32(m->forwardVel, 32.0f, 4.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 42.0f, 4.0f, 1.0f); + + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] = +@@ -1337,34 +1717,56 @@ s32 act_burning_ground(struct MarioState *m) { + + m->particleFlags |= PARTICLE_FIRE; + play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ if (gMarioState->numCoins == 0) { ++ // m->health -= 100; ++ } ++ } ++ else ++ { ++ m->health -= 10; ++ } ++ } ++ ++ if (m->health < 0x100 ) { ++ set_mario_action(m, ACT_STANDING_DEATH, 0); ++ } ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; + +- m->health -= 10; +- if (m->health < 0x100) { +- set_mario_action(m, ACT_STANDING_DEATH, 0); +- } + +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif + return FALSE; + } + + void tilt_body_butt_slide(struct MarioState *m) { + s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- m->marioBodyState->torsoAngle[0] = (s32)(5461.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); +- m->marioBodyState->torsoAngle[2] = (s32)(-(5461.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); ++ m->marioBodyState->torsoAngle[0] = (s32)(1961.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); ++ m->marioBodyState->torsoAngle[2] = (s32)(-(1961.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); + } + + void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 animation) { +- Vec3f pos; ++ Vec3f val14; + +- vec3f_copy(pos, m->pos); ++ ++ m->homingObj = NULL; ++ ++ vec3f_copy(val14, m->pos); + play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); + +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ + + adjust_sound_for_speed(m); + +@@ -1488,17 +1890,16 @@ s32 act_crouch_slide(struct MarioState *m) { + + s32 act_slide_kick_slide(struct MarioState *m) { + if (m->input & INPUT_A_PRESSED) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0); +- } + ++ return set_jumping_action(m, ACT_JUMP, 0); ++ } ++ m->actionTimer++; + set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + if (is_anim_at_end(m) && m->forwardVel < 1.0f) { + return set_mario_action(m, ACT_SLIDE_KICK_SLIDE_STOP, 0); + } + ++ + update_sliding(m, 1.0f); + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: +@@ -1518,13 +1919,15 @@ s32 act_slide_kick_slide(struct MarioState *m) { + } + + s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s32 animation) { ++ + if (m->actionTimer == 5) { + if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return drop_and_set_mario_action( +- m, m->forwardVel >= 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, 0); ++ ++ if (m->forwardVel < 180) ++ { ++ return drop_and_set_mario_action( ++ m, m->forwardVel >= 0.0f ? ACT_JUMP : ACT_JUMP, 0); ++ } + } + } else { + m->actionTimer++; +@@ -1539,8 +1942,13 @@ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s3 + } + + s32 act_stomach_slide(struct MarioState *m) { +- s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_SLIDE_DIVE); ++ ++ s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return cancel; ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; ++ ++ ++ + } + + s32 act_hold_stomach_slide(struct MarioState *m) { +@@ -1550,16 +1958,23 @@ s32 act_hold_stomach_slide(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_STOMACH_SLIDE, 0); + } + +- cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_SLIDE_DIVE); ++ cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return cancel; + } + + s32 act_dive_slide(struct MarioState *m) { ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 650; ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 55; ++ //cur_obj_scale(0.9f); ++ if (check_kick_or_dive_in_air(m)) { ++ return TRUE; ++ } ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; ++ + if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return set_mario_action(m, m->forwardVel > 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, ++ ++ ++ return set_mario_action(m, m->forwardVel > 0.0f ? ACT_JUMP : ACT_JUMP, + 0); + } + +@@ -1570,7 +1985,15 @@ s32 act_dive_slide(struct MarioState *m) { + // mario_check_object_grab, and so will end up in the regular picking action, + // rather than the picking up after dive action. + +- if (update_sliding(m, 8.0f) && is_anim_at_end(m)) { ++ if (m->forwardVel < 0.2f) ++ { ++ mario_set_forward_vel(m, 0.0f); ++ set_mario_action(m, ACT_IDLE, 0); ++ } ++ ++ ++ ++ if (update_sliding(m, 0.0f) && is_anim_at_end(m)) { + mario_set_forward_vel(m, 0.0f); + set_mario_action(m, ACT_STOMACH_SLIDE_STOP, 0); + } +@@ -1581,12 +2004,12 @@ s32 act_dive_slide(struct MarioState *m) { + return TRUE; + } + +- common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_DIVE); ++ common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return FALSE; + } + + s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4) { +- s32 animFrame; ++ s32 val04; + + if (arg3) { + play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); +@@ -1609,8 +2032,8 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 + m->forwardVel = -32.0f; + } + +- animFrame = set_mario_animation(m, animation); +- if (animFrame < arg2) { ++ val04 = set_mario_animation(m, animation); ++ if (val04 < arg2) { + apply_landing_accel(m, 0.9f); + } else if (m->forwardVel >= 0.0f) { + mario_set_forward_vel(m, 0.1f); +@@ -1635,23 +2058,23 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 + } + } + +- return animFrame; ++ return val04; + } + + s32 act_hard_backward_ground_kb(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); +- if (animFrame == 43 && m->health < 0x100) { ++ s32 val04 = ++ common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 0x2B, TRUE, m->actionArg); ++ if (val04 == 0x2B && m->health < 0x100) { + set_mario_action(m, ACT_DEATH_ON_BACK, 0); + } + + #ifndef VERSION_JP +- if (animFrame == 54 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { ++ if (val04 == 0x36 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { + play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); + } + #endif + +- if (animFrame == 69) { ++ if (val04 == 0x45) { + play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); + } + +@@ -1659,9 +2082,9 @@ s32 act_hard_backward_ground_kb(struct MarioState *m) { + } + + s32 act_hard_forward_ground_kb(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); +- if (animFrame == 23 && m->health < 0x100) { ++ ++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 0x15, TRUE, m->actionArg); ++ if (val04 == 0x17 && m->health < 0x100) { + set_mario_action(m, ACT_DEATH_ON_STOMACH, 0); + } + +@@ -1669,46 +2092,49 @@ s32 act_hard_forward_ground_kb(struct MarioState *m) { + } + + s32 act_backward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); ++ common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 0x16, TRUE, m->actionArg); + return FALSE; ++ + } + + s32 act_forward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); ++ common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 0x14, TRUE, m->actionArg); ++ + return FALSE; + } + + s32 act_soft_backward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); ++ ++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 0x64, FALSE, m->actionArg); + return FALSE; + } + + s32 act_soft_forward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); ++ ++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 0x64, FALSE, m->actionArg); + return FALSE; + } + + s32 act_ground_bonk(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); +- if (animFrame == 32) { ++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 0x20, TRUE, m->actionArg); ++ if (val04 == 0x20) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + return FALSE; + } + + s32 act_death_exit_land(struct MarioState *m) { +- s32 animFrame; ++ s32 val04; + + apply_landing_accel(m, 0.9f); + play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + +- animFrame = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); ++ val04 = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); + +- if (animFrame == 54) { ++ if (val04 == 0x36) { + play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame == 68) { ++ if (val04 == 0x44) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + +@@ -1725,6 +2151,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { + if (m->input & INPUT_NONZERO_ANALOG) { + apply_landing_accel(m, 0.98f); + } else if (m->forwardVel >= 16.0f) { ++ + apply_slope_decel(m, 2.0f); + } else { + m->vel[1] = 0.0f; +@@ -1764,7 +2191,8 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc + return mario_push_off_steep_floor(m, landingAction->verySteepAction, 0); + } + +- m->doubleJumpTimer = landingAction->unk02; ++ //m->doubleJumpTimer = landingAction->unk02; ++ + + if (should_begin_sliding(m)) { + return set_mario_action(m, landingAction->slideAction, 0); +@@ -1790,6 +2218,7 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc + } + + s32 act_jump_land(struct MarioState *m) { ++ + if (common_landing_cancels(m, &sJumpLandAction, set_jumping_action)) { + return TRUE; + } +@@ -1851,7 +2280,7 @@ s32 act_long_jump_land(struct MarioState *m) { + m->forwardVel = 0.0f; + } + #endif +- ++ + if (!(m->input & INPUT_Z_DOWN)) { + m->input &= ~INPUT_A_PRESSED; + } +@@ -1872,8 +2301,8 @@ s32 act_long_jump_land(struct MarioState *m) { + } + + s32 act_double_jump_land(struct MarioState *m) { +- if (common_landing_cancels(m, &sDoubleJumpLandAction, set_triple_jump_action)) { +- return TRUE; ++ if (common_landing_cancels(m, &sDoubleJumpLandAction, set_jumping_action)) { ++ return FALSE; + } + common_landing_action(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); + return FALSE; +@@ -2023,6 +2452,7 @@ s32 mario_execute_moving_action(struct MarioState *m) { + case ACT_QUICKSAND_JUMP_LAND: cancel = act_quicksand_jump_land(m); break; + case ACT_HOLD_QUICKSAND_JUMP_LAND: cancel = act_hold_quicksand_jump_land(m); break; + case ACT_LONG_JUMP_LAND: cancel = act_long_jump_land(m); break; ++ case ACT_SPINDASH: cancel = act_spindash(m); break; + } + /* clang-format on */ + +diff --git a/src/game/mario_actions_moving.c.rej b/src/game/mario_actions_moving.c.rej +new file mode 100644 +index 0000000..059de19 +--- /dev/null ++++ b/src/game/mario_actions_moving.c.rej +@@ -0,0 +1,1309 @@ ++diff a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c (rejected hunks) ++@@ -1,5 +1,5 @@ ++ #include ++- +++#include "types.h" ++ #include "sm64.h" ++ #include "mario.h" ++ #include "audio/external.h" ++@@ -12,6 +12,8 @@ ++ #include "memory.h" ++ #include "behavior_data.h" ++ #include "rumble_init.h" +++#include "ingame_menu.h" +++#include "level_update.h" ++ ++ struct LandingAction { ++ s16 numFrames; ++@@ -24,15 +26,15 @@ struct LandingAction { ++ }; ++ ++ struct LandingAction sJumpLandAction = { ++- 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, +++ 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ }; ++ ++ struct LandingAction sFreefallLandAction = { ++- 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, +++ 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ }; ++ ++ struct LandingAction sSideFlipLandAction = { ++- 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, +++ 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ }; ++ ++ struct LandingAction sHoldJumpLandAction = { ++@@ -62,9 +64,12 @@ struct LandingAction sBackflipLandAction = { ++ Mat4 sFloorAlignMatrix[2]; ++ ++ s16 tilt_body_running(struct MarioState *m) { ++- s16 pitch = find_floor_slope(m, 0); ++- pitch = pitch * m->forwardVel / 40.0f; ++- return -pitch; +++ if (m->floorHeight != m->waterLevel) +++ { +++ s16 pitch = find_floor_slope(m, 0); +++ pitch = pitch * m->forwardVel / 40.0f; +++ return -pitch; +++ } ++ } ++ ++ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { ++@@ -86,9 +91,37 @@ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { ++ } ++ ++ void align_with_floor(struct MarioState *m) { ++- m->pos[1] = m->floorHeight; ++- mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); ++- m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; +++ if (m->action != ACT_DIVE_SLIDE) +++ { +++ m->pos[1] = m->floorHeight; +++ } +++ else +++ { +++ m->pos[1] = m->floorHeight + 30; +++ } +++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); +++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; +++ +++ +++ +++ +++ +++ if (m->action == ACT_SPINDASH) +++ { +++ //m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 280; +++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; +++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.05f, 0.8f); +++ +++ } +++ else +++ { +++ if (m->action != ACT_DIVE_SLIDE) +++ { +++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); +++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; +++ } +++ } +++ ++ } ++ ++ s32 begin_walking_action(struct MarioState *m, f32 forwardVel, u32 action, u32 actionArg) { ++@@ -114,20 +147,22 @@ void check_ledge_climb_down(struct MarioState *m) { ++ ++ if (find_wall_collisions(&wallCols) != 0) { ++ floorHeight = find_floor(wallCols.x, wallCols.y, wallCols.z, &floor); ++- if (floor != NULL && (wallCols.y - floorHeight > 160.0f)) { ++- wall = wallCols.walls[wallCols.numWalls - 1]; ++- wallAngle = atan2s(wall->normal.z, wall->normal.x); ++- wallDYaw = wallAngle - m->faceAngle[1]; +++ if (floor != NULL) { +++ if (wallCols.y - floorHeight > 160.0f) { +++ wall = wallCols.walls[wallCols.numWalls - 1]; +++ wallAngle = atan2s(wall->normal.z, wall->normal.x); +++ wallDYaw = wallAngle - m->faceAngle[1]; ++ ++- if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { ++- m->pos[0] = wallCols.x - 20.0f * wall->normal.x; ++- m->pos[2] = wallCols.z - 20.0f * wall->normal.z; +++ if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { +++ m->pos[0] = wallCols.x - 20.0f * wall->normal.x; +++ m->pos[2] = wallCols.z - 20.0f * wall->normal.z; ++ ++- m->faceAngle[0] = 0; ++- m->faceAngle[1] = wallAngle + 0x8000; +++ m->faceAngle[0] = 0; +++ m->faceAngle[1] = wallAngle + 0x8000; ++ ++- set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); ++- set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); +++ set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); +++ set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); +++ } ++ } ++ } ++ } ++@@ -135,7 +170,7 @@ void check_ledge_climb_down(struct MarioState *m) { ++ } ++ ++ void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { ++- if (m->forwardVel > 16.0f) { +++ if (m->forwardVel > 70.0f) { ++ mario_bonk_reflection(m, TRUE); ++ drop_and_set_mario_action(m, fastAction, 0); ++ } else { ++@@ -144,76 +179,195 @@ void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { ++ } ++ } ++ ++-s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { ++- if (m->flags & MARIO_WING_CAP) { ++- return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); ++- } else if (m->forwardVel > 20.0f) { ++- return set_mario_action(m, ACT_TRIPLE_JUMP, 0); ++- } else { ++- return set_mario_action(m, ACT_JUMP, 0); ++- } ++- ++- return FALSE; ++-} ++ ++-void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { ++- s32 newFacingDYaw; ++- s16 facingDYaw; ++ ++- struct Surface *floor = m->floor; ++- s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); ++- f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); ++- UNUSED f32 normalY = floor->normal.y; ++ ++- m->slideVelX += accel * steepness * sins(slopeAngle); ++- m->slideVelZ += accel * steepness * coss(slopeAngle); +++s32 act_spindash(struct MarioState *m) { +++ m->faceAngle[1] = m->intendedYaw; +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SUPER_BALL); +++ } +++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; +++ +++ //play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +++ ++ ++- m->slideVelX *= lossFactor; ++- m->slideVelZ *= lossFactor; ++ ++- m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); +++ if (!(m->input & INPUT_Z_DOWN)) { +++ m->actionTimer = 0; +++ set_mario_action(m, ACT_DIVE_SLIDE, 0); +++ mario_set_forward_vel(m, m->forwardVel); +++ } ++ ++- facingDYaw = m->faceAngle[1] - m->slideYaw; ++- newFacingDYaw = facingDYaw; +++ vec3f_set(m->marioObj->header.gfx.scale, 0.6f, 1.0f, 0.6f); ++ ++- //! -0x4000 not handled - can slide down a slope while facing perpendicular to it ++- if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { ++- if ((newFacingDYaw -= 0x200) < 0) { ++- newFacingDYaw = 0; ++- } ++- } else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { ++- if ((newFacingDYaw += 0x200) > 0) { ++- newFacingDYaw = 0; ++- } ++- } else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { ++- if ((newFacingDYaw += 0x200) > 0x8000) { ++- newFacingDYaw = 0x8000; ++- } ++- } else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { ++- if ((newFacingDYaw -= 0x200) < -0x8000) { ++- newFacingDYaw = -0x8000; ++- } ++- } +++ if (m->forwardVel < 50.0f) +++ { +++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 200; +++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 30; +++ +++ m->forwardVel = 50.0f; +++ } ++ ++- m->faceAngle[1] = m->slideYaw + newFacingDYaw; +++ if (m->input & INPUT_B_PRESSED ) { +++ if (m->forwardVel <= 200) +++ { +++ m->particleFlags |= PARTICLE_DUST; +++ +++ m->forwardVel += 40.0f; ++ ++- m->vel[0] = m->slideVelX; ++- m->vel[1] = 0.0f; ++- m->vel[2] = m->slideVelZ; +++ } +++ else +++ { +++ m->forwardVel = 200; +++ } +++ play_sound(SOUND_MARIO_YAWNING, +++ m->marioObj->header.gfx.cameraToObject); +++ set_mario_action(m, ACT_SPINDASH, m->forwardVel/10); +++ +++ +++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); +++ } ++ ++- mario_update_moving_sand(m); ++- mario_update_windy_ground(m); +++ return FALSE; +++} ++ ++- //! Speed is capped a frame late (butt slide HSG) ++- m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); ++- if (m->forwardVel > 100.0f) { ++- m->slideVelX = m->slideVelX * 100.0f / m->forwardVel; ++- m->slideVelZ = m->slideVelZ * 100.0f / m->forwardVel; +++s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { +++ if (m->flags & MARIO_WING_CAP) { +++ return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); +++ } else if (m->forwardVel > 20.0f) { +++ return set_mario_action(m, ACT_TRIPLE_JUMP, 0); +++ } else { +++ return set_mario_action(m, ACT_JUMP, 0); ++ } ++ ++- if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { ++- m->forwardVel *= -1.0f; ++- } +++ return 0; +++} +++ +++void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { +++ s32 newFacingDYaw; +++ s16 facingDYaw; +++ s32 setdash = FALSE; +++ +++ struct Surface *floor = m->floor; +++ s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); +++ f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); +++ UNUSED f32 normalY = floor->normal.y; +++ +++ m->slideVelX += accel * steepness * sins(slopeAngle); +++ m->slideVelZ += accel * steepness * coss(slopeAngle); +++ +++ m->slideVelX *= lossFactor; +++ m->slideVelZ *= lossFactor; +++ +++ m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); +++ +++ facingDYaw = m->faceAngle[1] - m->slideYaw; +++ newFacingDYaw = facingDYaw; +++ +++ +++ //! -0x4000 not handled - can slide down a slope while facing perpendicular to it +++ if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { +++ if ((newFacingDYaw -= 0x200) < 0) { +++ newFacingDYaw = 0; +++ } +++ } +++ else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { +++ if ((newFacingDYaw += 0x200) > 0) { +++ newFacingDYaw = 0; +++ } +++ } +++ else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { +++ if ((newFacingDYaw += 0x200) > 0x8000) { +++ newFacingDYaw = 0x8000; +++ } +++ } +++ else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { +++ if ((newFacingDYaw -= 0x200) < -0x8000) { +++ newFacingDYaw = -0x8000; +++ } +++ } +++ +++ +++ +++ if (m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) +++ { +++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +++ } +++ else +++ { +++ m->faceAngle[1] = m->slideYaw + newFacingDYaw; +++ +++ } +++ if (m->action == ACT_SLIDE_KICK_SLIDE && m->actionTimer == 1) +++ { +++ m->vel[0] = m->slideVelX *= 1.6; +++ m->vel[1] = 0.0f; +++ m->vel[2] = m->slideVelZ *= 1.6; +++ } +++ else +++ { +++ m->vel[0] = m->slideVelX; +++ m->vel[1] = 0.0f; +++ m->vel[2] = m->slideVelZ; +++ } +++ +++ mario_update_moving_sand(m); +++ mario_update_windy_ground(m); +++ +++ //! Speed is capped a frame late (butt slide HSG) +++ m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); +++ if (m->forwardVel > 150.0f && m->action == ACT_DIVE_SLIDE && m->prevAction == ACT_SPINDASH) +++ { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->actionTimer++; +++ } +++ +++ if (m->forwardVel > 150.0f) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->particleFlags |= PARTICLE_SONIC_TRAIL_ROLLING; +++ } +++ else +++ { +++ m->particleFlags |= PARTICLE_SUPER_TRAIL_ROLLING; +++ } +++ +++ } +++ if (m->forwardVel > 200.0f) { +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ m->forwardVel--; +++ } +++ else +++ { +++ m->forwardVel += 10.0f; +++ } +++ m->slideVelX = m->slideVelX * 200.0f / m->forwardVel; +++ m->slideVelZ = m->slideVelZ * 200.0f / m->forwardVel; +++ +++ } +++ } +++ else +++ { +++ if (m->forwardVel > 150.0f) { +++ m->slideVelX = m->slideVelX * 150.0f / m->forwardVel; +++ m->slideVelZ = m->slideVelZ * 150.0f / m->forwardVel; +++ } +++ +++ +++ } +++ +++ if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { +++ m->forwardVel *= -1.0f; +++ } ++ } ++ ++ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { ++@@ -228,6 +382,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { ++ f32 forward = coss(intendedDYaw); ++ f32 sideward = sins(intendedDYaw); ++ +++ ++ //! 10k glitch ++ if (forward < 0.0f && m->forwardVel >= 0.0f) { ++ forward *= 0.5f + 0.5f * m->forwardVel / 100.0f; ++@@ -235,23 +390,65 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { ++ ++ switch (mario_get_floor_class(m)) { ++ case SURFACE_CLASS_VERY_SLIPPERY: ++- accel = 10.0f; ++- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; +++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) +++ { +++ +++ accel = 26.0f; +++ +++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.98f; +++ } +++ else +++ { +++ +++ accel = 10.0f; +++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; +++ } +++ ++ break; ++ ++ case SURFACE_CLASS_SLIPPERY: ++- accel = 8.0f; ++- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; +++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) +++ { +++ +++ accel = 23.0f; +++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.96f; +++ } +++ else +++ { +++ accel = 8.0f; +++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; +++ } +++ ++ break; ++ ++ default: ++- accel = 7.0f; ++- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; +++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) +++ { +++ +++ accel = 20.0f; +++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; +++ } +++ else +++ { +++ accel = 7.0f; +++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; +++ } +++ ++ break; ++ ++ case SURFACE_CLASS_NOT_SLIPPERY: ++- accel = 5.0f; ++- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; +++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) +++ { +++ +++ accel = 5.0f; +++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; +++ } +++ else +++ { +++ accel = 0.1f; +++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; +++ } +++ ++ break; ++ } ++ ++@@ -272,6 +469,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { ++ ++ update_sliding_angle(m, accel, lossFactor); ++ +++ ++ if (!mario_floor_is_slope(m) && m->forwardVel * m->forwardVel < stopSpeed * stopSpeed) { ++ mario_set_forward_vel(m, 0.0f); ++ stopped = TRUE; ++@@ -297,18 +495,94 @@ void apply_slope_accel(struct MarioState *m) { ++ } ++ ++ switch (slopeClass) { ++- case SURFACE_CLASS_VERY_SLIPPERY: ++- slopeAccel = 5.3f; ++- break; ++- case SURFACE_CLASS_SLIPPERY: ++- slopeAccel = 2.7f; ++- break; ++- default: ++- slopeAccel = 1.7f; ++- break; ++- case SURFACE_CLASS_NOT_SLIPPERY: ++- slopeAccel = 0.0f; ++- break; +++ +++ { +++ case SURFACE_CLASS_VERY_SLIPPERY: +++ if (m->action == ACT_DIVE_SLIDE) +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 5.3f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ else +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 5.3f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ break; +++ case SURFACE_CLASS_SLIPPERY: +++ if (m->action == ACT_DIVE_SLIDE) +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 2.7f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ else +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 2.7f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ +++ break; +++ default: +++ if (m->action == ACT_DIVE_SLIDE) +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 1.0f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ else +++ { +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 1.0f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ } +++ break; +++ case SURFACE_CLASS_NOT_SLIPPERY: +++ if (m->forwardVel < 50.0f) +++ { +++ slopeAccel = 0.4f; +++ } +++ else +++ { +++ slopeAccel = 0.0f; +++ } +++ break; +++ +++ +++ } ++ } ++ ++ if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { ++@@ -347,6 +621,7 @@ s32 apply_landing_accel(struct MarioState *m, f32 frictionFactor) { ++ return stopped; ++ } ++ +++ ++ void update_shell_speed(struct MarioState *m) { ++ f32 maxTargetSpeed; ++ f32 targetSpeed; ++@@ -355,6 +630,7 @@ void update_shell_speed(struct MarioState *m) { ++ m->floorHeight = m->waterLevel; ++ m->floor = &gWaterSurfacePseudoFloor; ++ m->floor->originOffset = m->waterLevel; //! Negative origin offset +++ ++ } ++ ++ if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { ++@@ -384,8 +660,7 @@ void update_shell_speed(struct MarioState *m) { ++ m->forwardVel = 64.0f; ++ } ++ ++- m->faceAngle[1] = ++- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ ++ apply_slope_accel(m); ++ } ++@@ -395,18 +670,20 @@ s32 apply_slope_decel(struct MarioState *m, f32 decelCoef) { ++ s32 stopped = FALSE; ++ ++ switch (mario_get_floor_class(m)) { +++ ++ case SURFACE_CLASS_VERY_SLIPPERY: ++- decel = decelCoef * 0.2f; +++ decel = decelCoef * 0.8f ; ++ break; ++ case SURFACE_CLASS_SLIPPERY: ++- decel = decelCoef * 0.7f; +++ decel = decelCoef * 0.9f ; ++ break; ++ default: ++- decel = decelCoef * 2.0f; +++ decel = decelCoef * 1.5f ; ++ break; ++ case SURFACE_CLASS_NOT_SLIPPERY: ++- decel = decelCoef * 3.0f; +++ decel = decelCoef * 1.0f ; ++ break; +++ ++ } ++ ++ if ((m->forwardVel = approach_f32(m->forwardVel, 0.0f, decel, decel)) == 0.0f) { ++@@ -435,10 +712,14 @@ void update_walking_speed(struct MarioState *m) { ++ f32 maxTargetSpeed; ++ f32 targetSpeed; ++ +++ +++ +++ +++ ++ if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { ++- maxTargetSpeed = 24.0f; +++ maxTargetSpeed = 800.0f; ++ } else { ++- maxTargetSpeed = 32.0f; +++ maxTargetSpeed = 1000.0f; ++ } ++ ++ targetSpeed = m->intendedMag < maxTargetSpeed ? m->intendedMag : maxTargetSpeed; ++@@ -450,25 +731,28 @@ void update_walking_speed(struct MarioState *m) { ++ if (m->forwardVel <= 0.0f) { ++ m->forwardVel += 1.1f; ++ } else if (m->forwardVel <= targetSpeed) { ++- m->forwardVel += 1.1f - m->forwardVel / 43.0f; +++ m->forwardVel += 1.1f - m->forwardVel / 1050.0f; ++ } else if (m->floor->normal.y >= 0.95f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++- if (m->forwardVel > 48.0f) { ++- m->forwardVel = 48.0f; +++ if (m->forwardVel > 200.0f) { +++ m->forwardVel = 200.0f; ++ } ++ ++- m->faceAngle[1] = ++- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +++ /* Handles the "Super responsive controls" cheat. The content of the "else" is Mario's original code for turning around.*/ +++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +++ ++ apply_slope_accel(m); ++ } ++ ++ s32 should_begin_sliding(struct MarioState *m) { ++ if (m->input & INPUT_ABOVE_SLIDE) { ++ s32 slideLevel = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE; +++ ++ s32 movingBackward = m->forwardVel <= -1.0f; ++ +++ ++ if (slideLevel || movingBackward || mario_facing_downhill(m, FALSE)) { ++ return TRUE; ++ } ++@@ -486,11 +770,7 @@ s32 check_ground_dive_or_punch(struct MarioState *m) { ++ UNUSED s32 unused; ++ ++ if (m->input & INPUT_B_PRESSED) { ++- //! Speed kick (shoutouts to SimpleFlips) ++- if (m->forwardVel >= 29.0f && m->controller->stickMag > 48.0f) { ++- m->vel[1] = 20.0f; ++- return set_mario_action(m, ACT_DIVE, 1); ++- } +++ ++ ++ return set_mario_action(m, ACT_MOVE_PUNCHING, 0); ++ } ++@@ -570,7 +850,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { ++ case 2: ++ if (val04 < 5.0f) { ++ m->actionTimer = 1; ++- } else if (val04 > 22.0f) { +++ } else if (val04 > 60.0f) { ++ m->actionTimer = 3; ++ } else { ++ //! (Speed Crash) If Mario's speed is more than 2^17. ++@@ -583,13 +863,76 @@ void anim_and_audio_for_walk(struct MarioState *m) { ++ break; ++ ++ case 3: ++- if (val04 < 18.0f) { +++ if (val04 < 55.0f) { ++ m->actionTimer = 2; ++ } else { ++ //! (Speed Crash) If Mario's speed is more than 2^17. ++- val14 = (s32)(val04 / 4.0f * 0x10000); ++- set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); ++- play_step_sound(m, 9, 45); +++ +++ if (m->forwardVel < 45.0f) +++ { +++ val14 = (s32)(val04 / 7.5f * 0x10000); +++ +++ set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); +++ +++ +++ +++ } +++ else +++ { +++ +++ +++ if (m->flags & MARIO_IS_SUPER) +++ { +++ val14 = (s32)(val04 / 10.5f * 0x10000); +++ //sonic super flying +++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); +++ } +++ else +++ { +++ if (!(m->flags & MARIO_IS_SHADOW)) { +++ val14 = (s32)(val04 / 6.8f * 0x10000); +++ //sonic full speed run +++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_FLIP, val14); +++ } +++ else +++ { +++ val14 = (s32)(val04 / 30.5f * 0x10000); +++ //shadow full speed run +++ set_mario_anim_with_accel(m, MARIO_ANIM_QUICKLY_PUT_CAP_ON, val14); +++ } +++ } +++ if (m->forwardVel < 85.0f) +++ { +++ m->marioBodyState->handState = MARIO_HAND_OPEN; +++ } +++ } +++ if (!(m->flags & MARIO_IS_SUPER) || (m->forwardVel < 45.0f) ) +++ { +++ +++ if (m->flags & MARIO_IS_SHADOW && m->forwardVel > 45.0f) +++ { +++ play_step_sound(m, 2, 27); +++ if ((m->marioObj->header.gfx.animInfo.animFrame > 2 && 21 > m->marioObj->header.gfx.animInfo.animFrame) || (m->marioObj->header.gfx.animInfo.animFrame > 27 && 46 > m->marioObj->header.gfx.animInfo.animFrame)) { +++ play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); +++ //|| m->marioObj->header.gfx.animInfo.animFrame == 30) +++ m->particleFlags |= PARTICLE_DUST; +++ } +++ } +++ else +++ { +++ play_step_sound(m, 9, 45); +++ } +++ +++ } +++ else +++ { +++ +++ play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); +++ adjust_sound_for_speed(m); +++ +++ } +++ +++ //play_step_sound(m, 27, 63); ++ targetPitch = tilt_body_running(m); ++ ++ val0C = FALSE; ++@@ -713,7 +1056,7 @@ void tilt_body_walking(struct MarioState *m, s16 startYaw) { ++ UNUSED struct Object *marioObj = m->marioObj; ++ s16 animID = m->marioObj->header.gfx.animInfo.animID; ++ ++- if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { +++ if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING || animID == MARIO_ANIM_FORWARD_FLIP || animID == MARIO_ANIM_BEND_KNESS_RIDING_SHELL || animID == MARIO_ANIM_QUICKLY_PUT_CAP_ON) { ++ s16 dYaw = m->faceAngle[1] - startYaw; ++ //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or ++ //! (forwardVel * 170) exceed or equal 2^31. ++@@ -774,18 +1117,46 @@ void tilt_body_ground_shell(struct MarioState *m, s16 startYaw) { ++ marioObj->header.gfx.pos[1] += 45.0f; ++ } ++ +++ +++ +++ +++ +++ ++ s32 act_walking(struct MarioState *m) { ++ Vec3f startPos; ++ s16 startYaw = m->faceAngle[1]; ++- ++ mario_drop_held_object(m); ++ +++ +++ +++ +++ //m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; +++ +++ +++ +++ if (m->floorHeight < m->waterLevel && m->forwardVel > 45.0f) { +++ m->floorHeight = m->waterLevel; +++ m->floor = &gWaterSurfacePseudoFloor; +++ m->floor->originOffset = m->waterLevel; //! Negative origin offset +++ +++ +++ spawn_object(m->marioObj, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); +++ +++ } +++ +++ +++ ++ if (should_begin_sliding(m)) { ++- return set_mario_action(m, ACT_BEGIN_SLIDING, 0); +++ if (ACT_WALKING && m->forwardVel > 100.0f) +++ { +++ return set_mario_action(m, ACT_BEGIN_SLIDING, 0); +++ } ++ } ++ ++ if (m->input & INPUT_FIRST_PERSON) { ++- return begin_braking_action(m); +++ +++ return begin_braking_action(m); +++ ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++@@ -805,7 +1176,15 @@ s32 act_walking(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); +++ +++ if (m->forwardVel >= 2.0f) +++ { +++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); +++ } +++ else +++ { +++ return set_mario_action(m, ACT_START_CROUCHING, 0); +++ } ++ } ++ ++ m->actionState = 0; ++@@ -851,6 +1230,7 @@ s32 act_move_punching(struct MarioState *m) { ++ mario_update_punch_sequence(m); ++ ++ if (m->forwardVel >= 0.0f) { +++ ++ apply_slope_decel(m, 0.5f); ++ } else { ++ if ((m->forwardVel += 8.0f) >= 0.0f) { ++@@ -873,6 +1253,7 @@ s32 act_move_punching(struct MarioState *m) { ++ } ++ ++ s32 act_hold_walking(struct MarioState *m) { +++ ++ if (m->heldObj->behavior == segmented_to_virtual(bhvJumpingBox)) { ++ return set_mario_action(m, ACT_CRAZY_BOX_BOUNCE, 0); ++ } ++@@ -898,7 +1279,7 @@ s32 act_hold_walking(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); +++ return drop_and_set_mario_action(m, ACT_CROUCHING, 0); ++ } ++ ++ m->intendedMag *= 0.4f; ++@@ -1091,7 +1472,7 @@ s32 act_decelerating(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); +++ return set_mario_action(m, ACT_START_CROUCHING, 0); ++ } ++ } ++ ++@@ -1152,7 +1533,7 @@ s32 act_hold_decelerating(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); +++ return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++@@ -1198,7 +1579,7 @@ s32 act_hold_decelerating(struct MarioState *m) { ++ } ++ ++ s32 act_riding_shell_ground(struct MarioState *m) { ++- s16 startYaw = m->faceAngle[1]; +++ /*06*/ s16 startYaw = m->faceAngle[1]; ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_RIDING_SHELL_JUMP, 0); ++@@ -1209,7 +1590,7 @@ s32 act_riding_shell_ground(struct MarioState *m) { ++ if (m->forwardVel < 24.0f) { ++ mario_set_forward_vel(m, 24.0f); ++ } ++- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); +++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ } ++ ++ update_shell_speed(m); ++@@ -1238,9 +1619,8 @@ s32 act_riding_shell_ground(struct MarioState *m) { ++ } ++ ++ adjust_sound_for_speed(m); ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ +++ ++ return FALSE; ++ } ++ ++@@ -1319,7 +1699,7 @@ s32 act_burning_ground(struct MarioState *m) { ++ m->forwardVel = 48.0f; ++ } ++ ++- m->forwardVel = approach_f32(m->forwardVel, 32.0f, 4.0f, 1.0f); +++ m->forwardVel = approach_f32(m->forwardVel, 42.0f, 4.0f, 1.0f); ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] = ++@@ -1337,34 +1717,56 @@ s32 act_burning_ground(struct MarioState *m) { ++ ++ m->particleFlags |= PARTICLE_FIRE; ++ play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); +++ if (!(m->flags & MARIO_IS_SUPER)) +++ { +++ if (gDialogHealthSystem == SONIC_HEALTH) +++ { +++ if (gMarioState->numCoins >= 50) { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, 50); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } else { +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); +++ gMarioState->numCoins = 0; +++ gHudDisplay.coins = 0; +++ } +++ if (gMarioState->numCoins == 0) { +++ // m->health -= 100; +++ } +++ } +++ else +++ { +++ m->health -= 10; +++ } +++ } +++ +++ if (m->health < 0x100 ) { +++ set_mario_action(m, ACT_STANDING_DEATH, 0); +++ } +++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ ++- m->health -= 10; ++- if (m->health < 0x100) { ++- set_mario_action(m, ACT_STANDING_DEATH, 0); ++- } ++ ++- m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif ++ return FALSE; ++ } ++ ++ void tilt_body_butt_slide(struct MarioState *m) { ++ s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++- m->marioBodyState->torsoAngle[0] = (s32)(5461.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); ++- m->marioBodyState->torsoAngle[2] = (s32)(-(5461.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); +++ m->marioBodyState->torsoAngle[0] = (s32)(1961.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); +++ m->marioBodyState->torsoAngle[2] = (s32)(-(1961.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); ++ } ++ ++ void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 animation) { ++- Vec3f pos; +++ Vec3f val14; ++ ++- vec3f_copy(pos, m->pos); +++ +++ m->homingObj = NULL; +++ +++ vec3f_copy(val14, m->pos); ++ play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); ++ ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif +++ ++ ++ adjust_sound_for_speed(m); ++ ++@@ -1488,17 +1890,16 @@ s32 act_crouch_slide(struct MarioState *m) { ++ ++ s32 act_slide_kick_slide(struct MarioState *m) { ++ if (m->input & INPUT_A_PRESSED) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0); ++- } ++ +++ return set_jumping_action(m, ACT_JUMP, 0); +++ } +++ m->actionTimer++; ++ set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); ++ if (is_anim_at_end(m) && m->forwardVel < 1.0f) { ++ return set_mario_action(m, ACT_SLIDE_KICK_SLIDE_STOP, 0); ++ } ++ +++ ++ update_sliding(m, 1.0f); ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++@@ -1518,13 +1919,15 @@ s32 act_slide_kick_slide(struct MarioState *m) { ++ } ++ ++ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s32 animation) { +++ ++ if (m->actionTimer == 5) { ++ if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- return drop_and_set_mario_action( ++- m, m->forwardVel >= 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, 0); +++ +++ if (m->forwardVel < 180) +++ { +++ return drop_and_set_mario_action( +++ m, m->forwardVel >= 0.0f ? ACT_JUMP : ACT_JUMP, 0); +++ } ++ } ++ } else { ++ m->actionTimer++; ++@@ -1539,8 +1942,13 @@ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s3 ++ } ++ ++ s32 act_stomach_slide(struct MarioState *m) { ++- s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_SLIDE_DIVE); +++ +++ s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); ++ return cancel; +++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; +++ +++ +++ ++ } ++ ++ s32 act_hold_stomach_slide(struct MarioState *m) { ++@@ -1550,16 +1958,23 @@ s32 act_hold_stomach_slide(struct MarioState *m) { ++ return drop_and_set_mario_action(m, ACT_STOMACH_SLIDE, 0); ++ } ++ ++- cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_SLIDE_DIVE); +++ cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); ++ return cancel; ++ } ++ ++ s32 act_dive_slide(struct MarioState *m) { +++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 650; +++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 55; +++ //cur_obj_scale(0.9f); +++ if (check_kick_or_dive_in_air(m)) { +++ return TRUE; +++ } +++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; +++ ++ if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif ++- return set_mario_action(m, m->forwardVel > 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, +++ +++ +++ return set_mario_action(m, m->forwardVel > 0.0f ? ACT_JUMP : ACT_JUMP, ++ 0); ++ } ++ ++@@ -1570,7 +1985,15 @@ s32 act_dive_slide(struct MarioState *m) { ++ // mario_check_object_grab, and so will end up in the regular picking action, ++ // rather than the picking up after dive action. ++ ++- if (update_sliding(m, 8.0f) && is_anim_at_end(m)) { +++ if (m->forwardVel < 0.2f) +++ { +++ mario_set_forward_vel(m, 0.0f); +++ set_mario_action(m, ACT_IDLE, 0); +++ } +++ +++ +++ +++ if (update_sliding(m, 0.0f) && is_anim_at_end(m)) { ++ mario_set_forward_vel(m, 0.0f); ++ set_mario_action(m, ACT_STOMACH_SLIDE_STOP, 0); ++ } ++@@ -1581,12 +2004,12 @@ s32 act_dive_slide(struct MarioState *m) { ++ return TRUE; ++ } ++ ++- common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_DIVE); +++ common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); ++ return FALSE; ++ } ++ ++ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4) { ++- s32 animFrame; +++ s32 val04; ++ ++ if (arg3) { ++ play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++@@ -1609,8 +2032,8 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 ++ m->forwardVel = -32.0f; ++ } ++ ++- animFrame = set_mario_animation(m, animation); ++- if (animFrame < arg2) { +++ val04 = set_mario_animation(m, animation); +++ if (val04 < arg2) { ++ apply_landing_accel(m, 0.9f); ++ } else if (m->forwardVel >= 0.0f) { ++ mario_set_forward_vel(m, 0.1f); ++@@ -1635,23 +2058,23 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 ++ } ++ } ++ ++- return animFrame; +++ return val04; ++ } ++ ++ s32 act_hard_backward_ground_kb(struct MarioState *m) { ++- s32 animFrame = ++- common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); ++- if (animFrame == 43 && m->health < 0x100) { +++ s32 val04 = +++ common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 0x2B, TRUE, m->actionArg); +++ if (val04 == 0x2B && m->health < 0x100) { ++ set_mario_action(m, ACT_DEATH_ON_BACK, 0); ++ } ++ ++ #ifndef VERSION_JP ++- if (animFrame == 54 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { +++ if (val04 == 0x36 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { ++ play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); ++ } ++ #endif ++ ++- if (animFrame == 69) { +++ if (val04 == 0x45) { ++ play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); ++ } ++ ++@@ -1659,9 +2082,9 @@ s32 act_hard_backward_ground_kb(struct MarioState *m) { ++ } ++ ++ s32 act_hard_forward_ground_kb(struct MarioState *m) { ++- s32 animFrame = ++- common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); ++- if (animFrame == 23 && m->health < 0x100) { +++ +++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 0x15, TRUE, m->actionArg); +++ if (val04 == 0x17 && m->health < 0x100) { ++ set_mario_action(m, ACT_DEATH_ON_STOMACH, 0); ++ } ++ ++@@ -1669,46 +2092,49 @@ s32 act_hard_forward_ground_kb(struct MarioState *m) { ++ } ++ ++ s32 act_backward_ground_kb(struct MarioState *m) { ++- common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); +++ common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 0x16, TRUE, m->actionArg); ++ return FALSE; +++ ++ } ++ ++ s32 act_forward_ground_kb(struct MarioState *m) { ++- common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); +++ common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 0x14, TRUE, m->actionArg); +++ ++ return FALSE; ++ } ++ ++ s32 act_soft_backward_ground_kb(struct MarioState *m) { ++- common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); +++ +++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 0x64, FALSE, m->actionArg); ++ return FALSE; ++ } ++ ++ s32 act_soft_forward_ground_kb(struct MarioState *m) { ++- common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); +++ +++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 0x64, FALSE, m->actionArg); ++ return FALSE; ++ } ++ ++ s32 act_ground_bonk(struct MarioState *m) { ++- s32 animFrame = ++- common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); ++- if (animFrame == 32) { +++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 0x20, TRUE, m->actionArg); +++ if (val04 == 0x20) { ++ play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); ++ } ++ return FALSE; ++ } ++ ++ s32 act_death_exit_land(struct MarioState *m) { ++- s32 animFrame; +++ s32 val04; ++ ++ apply_landing_accel(m, 0.9f); ++ play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++ ++- animFrame = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); +++ val04 = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); ++ ++- if (animFrame == 54) { +++ if (val04 == 0x36) { ++ play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); ++ } ++- if (animFrame == 68) { +++ if (val04 == 0x44) { ++ play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); ++ } ++ ++@@ -1725,6 +2151,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ apply_landing_accel(m, 0.98f); ++ } else if (m->forwardVel >= 16.0f) { +++ ++ apply_slope_decel(m, 2.0f); ++ } else { ++ m->vel[1] = 0.0f; ++@@ -1764,7 +2191,8 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc ++ return mario_push_off_steep_floor(m, landingAction->verySteepAction, 0); ++ } ++ ++- m->doubleJumpTimer = landingAction->unk02; +++ //m->doubleJumpTimer = landingAction->unk02; +++ ++ ++ if (should_begin_sliding(m)) { ++ return set_mario_action(m, landingAction->slideAction, 0); ++@@ -1790,6 +2218,7 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc ++ } ++ ++ s32 act_jump_land(struct MarioState *m) { +++ ++ if (common_landing_cancels(m, &sJumpLandAction, set_jumping_action)) { ++ return TRUE; ++ } ++@@ -1851,7 +2280,7 @@ s32 act_long_jump_land(struct MarioState *m) { ++ m->forwardVel = 0.0f; ++ } ++ #endif ++- +++ ++ if (!(m->input & INPUT_Z_DOWN)) { ++ m->input &= ~INPUT_A_PRESSED; ++ } ++@@ -1872,8 +2301,8 @@ s32 act_long_jump_land(struct MarioState *m) { ++ } ++ ++ s32 act_double_jump_land(struct MarioState *m) { ++- if (common_landing_cancels(m, &sDoubleJumpLandAction, set_triple_jump_action)) { ++- return TRUE; +++ if (common_landing_cancels(m, &sDoubleJumpLandAction, set_jumping_action)) { +++ return FALSE; ++ } ++ common_landing_action(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); ++ return FALSE; ++@@ -2023,6 +2452,7 @@ s32 mario_execute_moving_action(struct MarioState *m) { ++ case ACT_QUICKSAND_JUMP_LAND: cancel = act_quicksand_jump_land(m); break; ++ case ACT_HOLD_QUICKSAND_JUMP_LAND: cancel = act_hold_quicksand_jump_land(m); break; ++ case ACT_LONG_JUMP_LAND: cancel = act_long_jump_land(m); break; +++ case ACT_SPINDASH: cancel = act_spindash(m); break; ++ } ++ /* clang-format on */ ++ +diff --git a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c +index fabc363..5b46b09 100644 +--- a/src/game/mario_actions_object.c ++++ b/src/game/mario_actions_object.c +@@ -28,8 +28,13 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + u32 endAction, crouchEndAction; + s32 animFrame; + ++ ++ ++ ++ ++ + if (m->action & ACT_FLAG_MOVING) { +- endAction = ACT_WALKING, crouchEndAction = ACT_CROUCH_SLIDE; ++ endAction = ACT_WALKING, crouchEndAction = ACT_DIVE_SLIDE; + } else { + endAction = ACT_IDLE, crouchEndAction = ACT_CROUCHING; + } +@@ -114,6 +119,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); + animFrame = set_mario_animation(m, MARIO_ANIM_GROUND_KICK); + if (animFrame == 0) { ++ + m->marioBodyState->punchState = (2 << 6) | 6; + } + +@@ -128,22 +134,49 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + + case 9: + play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); +- set_mario_animation(m, MARIO_ANIM_BREAKDANCE); +- animFrame = m->marioObj->header.gfx.animInfo.animFrame; ++ // set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ //animFrame = m->marioObj->header.gfx.unk38.animFrame; ++ ++ set_mario_action(m, ACT_SPINDASH, 0); ++ ++ ++ ++ ++ ++ if (!(m->input & INPUT_Z_DOWN)) { ++ ++ //set_mario_action(m, crouchEndAction, 0); ++ //set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ //mario_set_forward_vel(m, Accel); ++ } ++ else ++ { ++ //Accel += 50.0f; ++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); ++ } ++ //mario_set_forward_vel(m, 100.0f); + + if (animFrame >= 2 && animFrame < 8) { +- m->flags |= MARIO_TRIPPING; ++ //m->flags |= MARIO_TRIPPING; + } + + if (is_anim_at_end(m)) { +- set_mario_action(m, crouchEndAction, 0); ++ ++ ++ ++ //set_mario_action(m, crouchEndAction, 0); ++ ++ + } +- break; ++ + } + + return FALSE; + } + ++ ++ ++ + s32 act_punching(struct MarioState *m) { + if (m->input & INPUT_UNKNOWN_10) { + return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); +@@ -264,9 +297,7 @@ s32 act_throwing(struct MarioState *m) { + mario_throw_held_object(m); + play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif ++ + } + + animated_stationary_ground_step(m, MARIO_ANIM_GROUND_THROW, ACT_IDLE); +@@ -286,9 +317,7 @@ s32 act_heavy_throw(struct MarioState *m) { + mario_drop_held_object(m); + play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif ++ + } + + animated_stationary_ground_step(m, MARIO_ANIM_HEAVY_THROW, ACT_IDLE); +@@ -318,9 +347,7 @@ s32 act_picking_up_bowser(struct MarioState *m) { + m->angleVel[1] = 0; + m->marioBodyState->grabPos = GRAB_POS_BOWSER; + mario_grab_used_object(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + play_sound(SOUND_MARIO_HRMM, m->marioObj->header.gfx.cameraToObject); + } + +@@ -396,15 +423,11 @@ s32 act_holding_bowser(struct MarioState *m) { + + // play sound on overflow + if (m->angleVel[1] <= -0x100 && spin < m->faceAngle[1]) { +-#ifdef VERSION_SH +- queue_rumble_data(4, 20); +-#endif ++ + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); + } + if (m->angleVel[1] >= 0x100 && spin > m->faceAngle[1]) { +-#ifdef VERSION_SH +- queue_rumble_data(4, 20); +-#endif ++ + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); + } + +@@ -478,6 +501,7 @@ s32 mario_execute_object_action(struct MarioState *m) { + case ACT_PICKING_UP_BOWSER: cancel = act_picking_up_bowser(m); break; + case ACT_HOLDING_BOWSER: cancel = act_holding_bowser(m); break; + case ACT_RELEASING_BOWSER: cancel = act_releasing_bowser(m); break; ++ case ACT_SPINDASH: cancel = act_spindash(m); break; + } + /* clang-format on */ + +diff --git a/src/game/mario_actions_object.c.rej b/src/game/mario_actions_object.c.rej +new file mode 100644 +index 0000000..a900def +--- /dev/null ++++ b/src/game/mario_actions_object.c.rej +@@ -0,0 +1,138 @@ ++diff a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c (rejected hunks) ++@@ -28,8 +28,13 @@ s32 mario_update_punch_sequence(struct MarioState *m) { ++ u32 endAction, crouchEndAction; ++ s32 animFrame; ++ +++ +++ +++ +++ +++ ++ if (m->action & ACT_FLAG_MOVING) { ++- endAction = ACT_WALKING, crouchEndAction = ACT_CROUCH_SLIDE; +++ endAction = ACT_WALKING, crouchEndAction = ACT_DIVE_SLIDE; ++ } else { ++ endAction = ACT_IDLE, crouchEndAction = ACT_CROUCHING; ++ } ++@@ -114,6 +119,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { ++ play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); ++ animFrame = set_mario_animation(m, MARIO_ANIM_GROUND_KICK); ++ if (animFrame == 0) { +++ ++ m->marioBodyState->punchState = (2 << 6) | 6; ++ } ++ ++@@ -128,22 +134,49 @@ s32 mario_update_punch_sequence(struct MarioState *m) { ++ ++ case 9: ++ play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); ++- set_mario_animation(m, MARIO_ANIM_BREAKDANCE); ++- animFrame = m->marioObj->header.gfx.animInfo.animFrame; +++ // set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +++ //animFrame = m->marioObj->header.gfx.unk38.animFrame; +++ +++ set_mario_action(m, ACT_SPINDASH, 0); +++ +++ +++ +++ +++ +++ if (!(m->input & INPUT_Z_DOWN)) { +++ +++ //set_mario_action(m, crouchEndAction, 0); +++ //set_mario_action(m, ACT_DIVE_SLIDE, 0); +++ //mario_set_forward_vel(m, Accel); +++ } +++ else +++ { +++ //Accel += 50.0f; +++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); +++ } +++ //mario_set_forward_vel(m, 100.0f); ++ ++ if (animFrame >= 2 && animFrame < 8) { ++- m->flags |= MARIO_TRIPPING; +++ //m->flags |= MARIO_TRIPPING; ++ } ++ ++ if (is_anim_at_end(m)) { ++- set_mario_action(m, crouchEndAction, 0); +++ +++ +++ +++ //set_mario_action(m, crouchEndAction, 0); +++ +++ ++ } ++- break; +++ ++ } ++ ++ return FALSE; ++ } ++ +++ +++ +++ ++ s32 act_punching(struct MarioState *m) { ++ if (m->input & INPUT_UNKNOWN_10) { ++ return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); ++@@ -264,9 +297,7 @@ s32 act_throwing(struct MarioState *m) { ++ mario_throw_held_object(m); ++ play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); ++ play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); ++-#ifdef VERSION_SH ++- queue_rumble_data(3, 50); ++-#endif +++ ++ } ++ ++ animated_stationary_ground_step(m, MARIO_ANIM_GROUND_THROW, ACT_IDLE); ++@@ -286,9 +317,7 @@ s32 act_heavy_throw(struct MarioState *m) { ++ mario_drop_held_object(m); ++ play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); ++ play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); ++-#ifdef VERSION_SH ++- queue_rumble_data(3, 50); ++-#endif +++ ++ } ++ ++ animated_stationary_ground_step(m, MARIO_ANIM_HEAVY_THROW, ACT_IDLE); ++@@ -318,9 +347,7 @@ s32 act_picking_up_bowser(struct MarioState *m) { ++ m->angleVel[1] = 0; ++ m->marioBodyState->grabPos = GRAB_POS_BOWSER; ++ mario_grab_used_object(m); ++-#ifdef VERSION_SH ++- queue_rumble_data(5, 80); ++-#endif +++ ++ play_sound(SOUND_MARIO_HRMM, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++@@ -396,15 +423,11 @@ s32 act_holding_bowser(struct MarioState *m) { ++ ++ // play sound on overflow ++ if (m->angleVel[1] <= -0x100 && spin < m->faceAngle[1]) { ++-#ifdef VERSION_SH ++- queue_rumble_data(4, 20); ++-#endif +++ ++ play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (m->angleVel[1] >= 0x100 && spin > m->faceAngle[1]) { ++-#ifdef VERSION_SH ++- queue_rumble_data(4, 20); ++-#endif +++ ++ play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++@@ -478,6 +501,7 @@ s32 mario_execute_object_action(struct MarioState *m) { ++ case ACT_PICKING_UP_BOWSER: cancel = act_picking_up_bowser(m); break; ++ case ACT_HOLDING_BOWSER: cancel = act_holding_bowser(m); break; ++ case ACT_RELEASING_BOWSER: cancel = act_releasing_bowser(m); break; +++ case ACT_SPINDASH: cancel = act_spindash(m); break; ++ } ++ /* clang-format on */ ++ +diff --git a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c +index 580d254..c545b49 100644 +--- a/src/game/mario_actions_stationary.c ++++ b/src/game/mario_actions_stationary.c +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_data.h" + #include "camera.h" +@@ -56,7 +57,7 @@ s32 check_common_idle_cancels(struct MarioState *m) { + return set_mario_action(m, ACT_START_CROUCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 check_common_hold_idle_cancels(struct MarioState *m) { +@@ -99,10 +100,11 @@ s32 check_common_hold_idle_cancels(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_idle(struct MarioState *m) { ++ //m->faceAngle[1] += 10; + if (m->quicksandDepth > 30.0f) { + return set_mario_action(m, ACT_IN_QUICKSAND, 0); + } +@@ -116,7 +118,7 @@ s32 act_idle(struct MarioState *m) { + } + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (m->actionState == 3) { +@@ -169,7 +171,7 @@ s32 act_idle(struct MarioState *m) { + + stationary_ground_step(m); + +- return FALSE; ++ return 0; + } + + void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 sound) { +@@ -180,84 +182,92 @@ void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 s + + s32 act_start_sleeping(struct MarioState *m) { + #ifndef VERSION_JP +- s32 animFrame; ++ s32 sp24; + #endif + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (m->quicksandDepth > 30.0f) { + return set_mario_action(m, ACT_IN_QUICKSAND, 0); + } + +- if (m->actionState == 4) { +- return set_mario_action(m, ACT_SLEEPING, 0); +- } +- ++ if (m->actionState == 6) { ++ return set_mario_action(m, ACT_SLEEPING, 0); ++ } ++ + switch (m->actionState) { + case 0: + #ifndef VERSION_JP +- animFrame = +-#endif ++ sp24 = set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); ++#else + set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); +- break; +- +- case 1: +-#ifndef VERSION_JP +- animFrame = + #endif +- set_mario_animation(m, MARIO_ANIM_START_SLEEP_SCRATCH); + break; + +- case 2: +-#ifndef VERSION_JP +- animFrame = +-#endif +- set_mario_animation(m, MARIO_ANIM_START_SLEEP_YAWN); +- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- break; +- +- case 3: +-#ifndef VERSION_JP +- animFrame = +-#endif ++ case 1: + set_mario_animation(m, MARIO_ANIM_START_SLEEP_SITTING); ++ if (m->marioObj->header.gfx.animInfo.animFrame > 84) { ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } ++ break; ++ ++ case 2: + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- break; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ set_mario_action(m, ACT_SLEEPING, 0); ++ break; ++ ++ ++ ++ + } + +- play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); +- play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); +- play_anim_sound(m, 3, 15, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++ // play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); ++ // play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); ++ play_anim_sound(m, 0, 67, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 0, 84, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 5, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 41, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 58, SOUND_ACTION_TERRAIN_JUMP); ++ //play_anim_sound(m, 4, 38, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 91, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + + if (is_anim_at_end(m)) { ++ if (m->action != ACT_SLEEPING) ++ { + m->actionState++; ++ } + } + + #ifndef VERSION_JP +- if (m->actionState == 2 && animFrame == -1) { +- play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); ++ if (m->actionState == 2) { ++ if (sp24 == -1) { ++ // play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); ++ } + } + +- if (m->actionState == 1 && animFrame == -1) { +- play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ if (m->actionState == 0) { ++ if (sp24 == -1) { ++ //play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } + } + #else + if (m->actionState == 2) { +- play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); ++ // play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); + } + #endif + + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_sleeping(struct MarioState *m) { +- s32 animFrame; +- if (m->input +- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE +- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { ++ s32 sp24; ++ ++ if (m->input & INPUT_UNKNOWN_A41F /* ? */) { + return set_mario_action(m, ACT_WAKING_UP, m->actionState); + } + +@@ -269,58 +279,48 @@ s32 act_sleeping(struct MarioState *m) { + return set_mario_action(m, ACT_WAKING_UP, m->actionState); + } + +- m->marioBodyState->eyeState = MARIO_EYES_CLOSED; ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; + stationary_ground_step(m); + switch (m->actionState) { +- case 0: +- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); + +- if (animFrame == -1 && !m->actionTimer) { ++ case 0: { ++ if (sp24 == -1 && !m->actionTimer) { + lower_background_noise(2); +- } + +- if (animFrame == 2) { +- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); +- } ++ + +- if (animFrame == 20) { +- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); ++ + } +- + if (is_anim_at_end(m)) { + m->actionTimer++; +- if (m->actionTimer > 45) { +- m->actionState++; +- } +- } +- break; + +- case 1: +- if (set_mario_animation(m, MARIO_ANIM_SLEEP_START_LYING) == 18) { +- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); +- } ++ if (m->actionTimer == 4 || m->actionTimer == 13) { + +- if (is_anim_at_end(m)) { +- m->actionState++; +- } +- break; ++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + +- case 2: +- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); +-#ifndef VERSION_JP +- play_sound_if_no_flag(m, SOUND_MARIO_SNORING3, MARIO_ACTION_SOUND_PLAYED); +-#else +- if (animFrame == 2) { +- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (m->actionTimer == 10) { ++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (m->actionTimer == 24) { ++ m->actionTimer = 0; ++ } ++ ++ if (m->actionTimer == 10) { ++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } + } + +- if (animFrame == 25) { +- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); +- } +-#endif ++ // ++ sp24 = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); ++ ++ ++ + break; ++ } + } +- return FALSE; ++ return 0; + } + + s32 act_waking_up(struct MarioState *m) { +@@ -355,11 +355,11 @@ s32 act_waking_up(struct MarioState *m) { + + set_mario_animation(m, !m->actionArg ? MARIO_ANIM_WAKE_FROM_SLEEP : MARIO_ANIM_WAKE_FROM_LYING); + +- return FALSE; ++ return 0; + } + + s32 act_shivering(struct MarioState *m) { +- s32 animFrame; ++ s32 sp24; + + if (m->input & INPUT_UNKNOWN_10) { + return set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); +@@ -373,67 +373,66 @@ s32 act_shivering(struct MarioState *m) { + return set_mario_action(m, ACT_BEGIN_SLIDING, 0); + } + +- if (m->input +- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE +- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { ++ if (m->input & INPUT_UNKNOWN_A41F) { + m->actionState = 2; + } + + stationary_ground_step(m); + switch (m->actionState) { +- case 0: +- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); +- if (animFrame == 49) { ++ case 0: { ++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); ++ if (sp24 == 0x31) { + m->particleFlags |= PARTICLE_BREATH; + play_sound(SOUND_MARIO_PANTING_COLD, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame == 7 || animFrame == 81) { ++ if (sp24 == 7 || sp24 == 0x51) { + play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); + } + if (is_anim_past_end(m)) { + m->actionState = 1; + } + break; +- +- case 1: +- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING); +- if (animFrame == 9 || animFrame == 25 || animFrame == 44) { ++ } ++ case 1: { ++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING); ++ if (sp24 == 9 || sp24 == 0x19 || sp24 == 0x2C) { + play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); + } + break; +- +- case 2: ++ } ++ case 2: { + set_mario_animation(m, MARIO_ANIM_SHIVERING_RETURN_TO_IDLE); + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_IDLE, 0); + } + break; ++ } + } +- return FALSE; ++ return 0; + } + + s32 act_coughing(struct MarioState *m) { +- s32 animFrame; ++ s32 sp1C; + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + stationary_ground_step(m); +- animFrame = set_mario_animation(m, MARIO_ANIM_COUGHING); +- if (animFrame == 25 || animFrame == 35) { ++ sp1C = set_mario_animation(m, MARIO_ANIM_COUGHING); ++ if (sp1C == 0x19 || sp1C == 0x23) { + play_sound(SOUND_MARIO_COUGHING3, m->marioObj->header.gfx.cameraToObject); + } + +- if (animFrame == 50 || animFrame == 58) { ++ if (sp1C == 0x32 || sp1C == 0x3A) { + play_sound(SOUND_MARIO_COUGHING2, m->marioObj->header.gfx.cameraToObject); + } + +- if (animFrame == 71 || animFrame == 80) { ++ if (sp1C == 0x47 || sp1C == 0x50) { + play_sound(SOUND_MARIO_COUGHING1, m->marioObj->header.gfx.cameraToObject); + } + +- return FALSE; ++ return 0; + } + + s32 act_hold_idle(struct MarioState *m) { +@@ -450,12 +449,12 @@ s32 act_hold_idle(struct MarioState *m) { + } + + if (check_common_hold_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +- return FALSE; ++ return 0; + } + + s32 act_hold_heavy_idle(struct MarioState *m) { +@@ -481,7 +480,7 @@ s32 act_hold_heavy_idle(struct MarioState *m) { + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_IDLE_HEAVY_OBJ); +- return FALSE; ++ return 0; + } + + s32 act_standing_against_wall(struct MarioState *m) { +@@ -503,7 +502,7 @@ s32 act_standing_against_wall(struct MarioState *m) { + + set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_in_quicksand(struct MarioState *m) { +@@ -511,8 +510,8 @@ s32 act_in_quicksand(struct MarioState *m) { + return set_mario_action(m, ACT_IDLE, 0); + } + +- if (check_common_idle_cancels(m)) { +- return TRUE; ++ if (check_common_idle_cancels(m) != 0) { ++ return 1; + } + + if (m->quicksandDepth > 70.0f) { +@@ -522,7 +521,7 @@ s32 act_in_quicksand(struct MarioState *m) { + } + + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_crouching(struct MarioState *m) { +@@ -531,7 +530,7 @@ s32 act_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_OFF_FLOOR) { +@@ -560,7 +559,7 @@ s32 act_crouching(struct MarioState *m) { + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_CROUCHING); +- return FALSE; ++ return 0; + } + + s32 act_panting(struct MarioState *m) { +@@ -573,7 +572,7 @@ s32 act_panting(struct MarioState *m) { + } + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { +@@ -583,7 +582,7 @@ s32 act_panting(struct MarioState *m) { + + stationary_ground_step(m); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- return FALSE; ++ return 0; + } + + s32 act_hold_panting_unused(struct MarioState *m) { +@@ -599,20 +598,20 @@ s32 act_hold_panting_unused(struct MarioState *m) { + return set_mario_action(m, ACT_HOLD_IDLE, 0); + } + +- if (check_common_hold_idle_cancels(m)) { +- return TRUE; ++ if (check_common_hold_idle_cancels(m) != 0) { ++ return 1; + } + + set_mario_animation(m, MARIO_ANIM_WALK_PANTING); + stationary_ground_step(m); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- return FALSE; ++ return 0; + } + + void stopping_step(struct MarioState *m, s32 animID, u32 action) { + stationary_ground_step(m); + set_mario_animation(m, animID); +- if (is_anim_at_end(m)) { ++ if (is_anim_at_end(m) != 0) { + set_mario_action(m, action, 0); + } + } +@@ -636,7 +635,7 @@ s32 act_braking_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_STOP_SKID, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_butt_slide_stop(struct MarioState *m) { +@@ -653,7 +652,7 @@ s32 act_butt_slide_stop(struct MarioState *m) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + +- return FALSE; ++ return 0; + } + + s32 act_hold_butt_slide_stop(struct MarioState *m) { +@@ -674,7 +673,7 @@ s32 act_hold_butt_slide_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_slide_kick_slide_stop(struct MarioState *m) { +@@ -687,7 +686,7 @@ s32 act_slide_kick_slide_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); +- return FALSE; ++ return 0; + } + + s32 act_start_crouching(struct MarioState *m) { +@@ -700,7 +699,7 @@ s32 act_start_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_ABOVE_SLIDE) { +@@ -712,7 +711,7 @@ s32 act_start_crouching(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_CROUCHING, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_stop_crouching(struct MarioState *m) { +@@ -725,7 +724,7 @@ s32 act_stop_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_ABOVE_SLIDE) { +@@ -737,7 +736,7 @@ s32 act_stop_crouching(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_IDLE, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_start_crawling(struct MarioState *m) { +@@ -763,7 +762,7 @@ s32 act_start_crawling(struct MarioState *m) { + set_mario_action(m, ACT_CRAWLING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_stop_crawling(struct MarioState *m) { +@@ -784,34 +783,30 @@ s32 act_stop_crawling(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_CROUCHING, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_shockwave_bounce(struct MarioState *m) { + s16 sp1E; + f32 sp18; + +- if (m->marioObj->oInteractStatus & INT_STATUS_HIT_BY_SHOCKWAVE) { +-#ifdef VERSION_SH +- queue_rumble_data(70, 40); +-#endif ++ if (m->marioObj->oInteractStatus & 0x10) { ++ //(70, 40); + return hurt_and_set_mario_action(m, ACT_SHOCKED, 0, 4); + } + + if (m->actionTimer == 0) { +-#ifdef VERSION_SH +- queue_rumble_data(70, 40); +-#endif ++ //(70, 40); + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { + return hurt_and_set_mario_action(m, ACT_BACKWARD_GROUND_KB, 0, 0xc); + } + } + +- if (++m->actionTimer == 48) { ++ if (++m->actionTimer == 0x30) { + return set_mario_action(m, ACT_IDLE, 0); + } + +- sp1E = (m->actionTimer % 16) << 12; ++ sp1E = (m->actionTimer % 0x10) << 0xC; + sp18 = (f32)(((f32)(6 - m->actionTimer / 8) * 8.0f) + 4.0f); + mario_set_forward_vel(m, 0); + vec3f_set(m->vel, 0.0f, 0.0f, 0.0f); +@@ -824,7 +819,7 @@ s32 act_shockwave_bounce(struct MarioState *m) { + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + set_mario_animation(m, MARIO_ANIM_A_POSE); +- return FALSE; ++ return 0; + } + + s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { +@@ -833,7 +828,7 @@ s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { + if (is_anim_at_end(m)) { + return set_mario_action(m, action, 0); + } +- return FALSE; ++ return 0; + } + + s32 check_common_landing_cancels(struct MarioState *m, u32 action) { +@@ -861,89 +856,90 @@ s32 check_common_landing_cancels(struct MarioState *m, u32 action) { + return set_mario_action(m, ACT_PUNCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_double_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_side_flip_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_IDLE); + m->marioObj->header.gfx.angle[1] += 0x8000; +- return FALSE; ++ return 0; + } + + s32 act_freefall_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_GENERAL_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_triple_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, ACT_JUMP)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_backflip_land_stop(struct MarioState *m) { + if (!(m->input & INPUT_Z_DOWN) || m->marioObj->header.gfx.animInfo.animFrame >= 6) { +- m->input &= ~INPUT_A_PRESSED; ++ m->input &= -3; + } + + if (check_common_landing_cancels(m, ACT_BACKFLIP)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_lava_boost_land(struct MarioState *m) { +- m->input &= ~(INPUT_FIRST_PERSON | INPUT_B_PRESSED); ++ m->input &= -0x2011; + + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_long_jump_land_stop(struct MarioState *m) { +- m->input &= ~INPUT_B_PRESSED; ++ m->input &= -0x2001; + if (check_common_landing_cancels(m, ACT_JUMP)) { +- return TRUE; ++ return 1; + } + +- landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP +- : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, +- ACT_CROUCHING); +- return FALSE; ++ landing_step(m, ++ !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP ++ : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, ++ ACT_CROUCHING); ++ return 0; + } + + s32 act_hold_jump_land_stop(struct MarioState *m) { +@@ -964,7 +960,7 @@ s32 act_hold_jump_land_stop(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_hold_freefall_land_stop(struct MarioState *m) { +@@ -984,7 +980,7 @@ s32 act_hold_freefall_land_stop(struct MarioState *m) { + return set_mario_action(m, ACT_THROWING, 0); + } + landing_step(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_air_throw_land(struct MarioState *m) { +@@ -1001,7 +997,7 @@ s32 act_air_throw_land(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_twirl_land(struct MarioState *m) { +@@ -1026,16 +1022,20 @@ s32 act_twirl_land(struct MarioState *m) { + } + + m->marioObj->header.gfx.angle[1] += m->twirlYaw; +- if (is_anim_at_end(m) && m->angleVel[1] == 0) { +- m->faceAngle[1] += m->twirlYaw; +- set_mario_action(m, ACT_IDLE, 0); ++ if (is_anim_at_end(m)) { ++ if (m->angleVel[1] == 0) { ++ m->faceAngle[1] += m->twirlYaw; ++ set_mario_action(m, ACT_IDLE, 0); ++ } + } + +- return FALSE; ++ return 0; + } + + s32 act_ground_pound_land(struct MarioState *m) { + m->actionState = 1; ++ ++ set_mario_action(m, ACT_BACKFLIP, 0); + if (m->input & INPUT_UNKNOWN_10) { + return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); + } +@@ -1049,35 +1049,43 @@ s32 act_ground_pound_land(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); +- return FALSE; ++ return 0; + } + + s32 act_first_person(struct MarioState *m) { +- s32 sp1C = (m->input & (INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE | INPUT_UNKNOWN_10)) != 0; ++ s32 sp1C; ++ s16 sp1A; ++ s16 sp18; + ++ sp1C = 0 != (m->input & (INPUT_UNKNOWN_10 | 0xC)); + if (m->actionState == 0) { + lower_background_noise(2); + set_camera_mode(m->area->camera, CAMERA_MODE_C_UP, 0x10); + m->actionState = 1; +- } else if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { +- raise_background_noise(2); +- // Go back to the last camera mode +- set_camera_mode(m->area->camera, -1, 1); +- return set_mario_action(m, ACT_IDLE, 0); ++ } else { ++ if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { ++ raise_background_noise(2); ++ // Go back to the last camera mode ++ set_camera_mode(m->area->camera, -1, 1); ++ return set_mario_action(m, ACT_IDLE, 0); ++ } + } + +- if (m->floor->type == SURFACE_LOOK_UP_WARP +- && save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1) >= 10) { +- s16 sp1A = m->statusForCamera->headRotation[0]; +- s16 sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; +- if (sp1A == -0x1800 && (sp18 < -0x6FFF || sp18 >= 0x7000)) { +- level_trigger_warp(m, WARP_OP_UNKNOWN_01); ++ if (m->floor->type == SURFACE_LOOK_UP_WARP) { ++ if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 0x18) >= 10) { ++ sp1A = m->statusForCamera->headRotation[0]; ++ sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; ++ if (sp1A == -0x1800) { ++ if (sp18 < -0x6FFF || sp18 >= 0x7000) { ++ level_trigger_warp(m, 1); ++ } ++ } + } + } + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); +- return FALSE; ++ return 0; + } + + s32 check_common_stationary_cancels(struct MarioState *m) { +@@ -1094,70 +1102,72 @@ s32 check_common_stationary_cancels(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_SQUISHED, 0); + } + +- if (m->action != ACT_UNKNOWN_0002020E) { ++ if (m->action != 0x0002020E) { + if (m->health < 0x100) { + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, ACT_STANDING_DEATH, 0); + } + } +- return FALSE; ++ return 0; + } + + s32 mario_execute_stationary_action(struct MarioState *m) { +- s32 cancel; ++ s32 sp24; + + if (check_common_stationary_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (mario_update_quicksand(m, 0.5f)) { +- return TRUE; ++ return 1; + } + + /* clang-format off */ + switch (m->action) { +- case ACT_IDLE: cancel = act_idle(m); break; +- case ACT_START_SLEEPING: cancel = act_start_sleeping(m); break; +- case ACT_SLEEPING: cancel = act_sleeping(m); break; +- case ACT_WAKING_UP: cancel = act_waking_up(m); break; +- case ACT_PANTING: cancel = act_panting(m); break; +- case ACT_HOLD_PANTING_UNUSED: cancel = act_hold_panting_unused(m); break; +- case ACT_HOLD_IDLE: cancel = act_hold_idle(m); break; +- case ACT_HOLD_HEAVY_IDLE: cancel = act_hold_heavy_idle(m); break; +- case ACT_IN_QUICKSAND: cancel = act_in_quicksand(m); break; +- case ACT_STANDING_AGAINST_WALL: cancel = act_standing_against_wall(m); break; +- case ACT_COUGHING: cancel = act_coughing(m); break; +- case ACT_SHIVERING: cancel = act_shivering(m); break; +- case ACT_CROUCHING: cancel = act_crouching(m); break; +- case ACT_START_CROUCHING: cancel = act_start_crouching(m); break; +- case ACT_STOP_CROUCHING: cancel = act_stop_crouching(m); break; +- case ACT_START_CRAWLING: cancel = act_start_crawling(m); break; +- case ACT_STOP_CRAWLING: cancel = act_stop_crawling(m); break; +- case ACT_SLIDE_KICK_SLIDE_STOP: cancel = act_slide_kick_slide_stop(m); break; +- case ACT_SHOCKWAVE_BOUNCE: cancel = act_shockwave_bounce(m); break; +- case ACT_FIRST_PERSON: cancel = act_first_person(m); break; +- case ACT_JUMP_LAND_STOP: cancel = act_jump_land_stop(m); break; +- case ACT_DOUBLE_JUMP_LAND_STOP: cancel = act_double_jump_land_stop(m); break; +- case ACT_FREEFALL_LAND_STOP: cancel = act_freefall_land_stop(m); break; +- case ACT_SIDE_FLIP_LAND_STOP: cancel = act_side_flip_land_stop(m); break; +- case ACT_HOLD_JUMP_LAND_STOP: cancel = act_hold_jump_land_stop(m); break; +- case ACT_HOLD_FREEFALL_LAND_STOP: cancel = act_hold_freefall_land_stop(m); break; +- case ACT_AIR_THROW_LAND: cancel = act_air_throw_land(m); break; +- case ACT_LAVA_BOOST_LAND: cancel = act_lava_boost_land(m); break; +- case ACT_TWIRL_LAND: cancel = act_twirl_land(m); break; +- case ACT_TRIPLE_JUMP_LAND_STOP: cancel = act_triple_jump_land_stop(m); break; +- case ACT_BACKFLIP_LAND_STOP: cancel = act_backflip_land_stop(m); break; +- case ACT_LONG_JUMP_LAND_STOP: cancel = act_long_jump_land_stop(m); break; +- case ACT_GROUND_POUND_LAND: cancel = act_ground_pound_land(m); break; +- case ACT_BRAKING_STOP: cancel = act_braking_stop(m); break; +- case ACT_BUTT_SLIDE_STOP: cancel = act_butt_slide_stop(m); break; +- case ACT_HOLD_BUTT_SLIDE_STOP: cancel = act_hold_butt_slide_stop(m); break; ++ case ACT_IDLE: sp24 = act_idle(m); break; ++ case ACT_START_SLEEPING: sp24 = act_start_sleeping(m); break; ++ case ACT_SLEEPING: sp24 = act_sleeping(m); break; ++ case ACT_WAKING_UP: sp24 = act_waking_up(m); break; ++ case ACT_PANTING: sp24 = act_panting(m); break; ++ case ACT_HOLD_PANTING_UNUSED: sp24 = act_hold_panting_unused(m); break; ++ case ACT_HOLD_IDLE: sp24 = act_hold_idle(m); break; ++ case ACT_HOLD_HEAVY_IDLE: sp24 = act_hold_heavy_idle(m); break; ++ case ACT_IN_QUICKSAND: sp24 = act_in_quicksand(m); break; ++ case ACT_STANDING_AGAINST_WALL: sp24 = act_standing_against_wall(m); break; ++ case ACT_COUGHING: sp24 = act_coughing(m); break; ++ case ACT_SHIVERING: sp24 = act_shivering(m); break; ++ case ACT_CROUCHING: sp24 = act_crouching(m); break; ++ case ACT_START_CROUCHING: sp24 = act_start_crouching(m); break; ++ case ACT_STOP_CROUCHING: sp24 = act_stop_crouching(m); break; ++ case ACT_START_CRAWLING: sp24 = act_start_crawling(m); break; ++ case ACT_STOP_CRAWLING: sp24 = act_stop_crawling(m); break; ++ case ACT_SLIDE_KICK_SLIDE_STOP: sp24 = act_slide_kick_slide_stop(m); break; ++ case ACT_SHOCKWAVE_BOUNCE: sp24 = act_shockwave_bounce(m); break; ++ case ACT_FIRST_PERSON: sp24 = act_first_person(m); break; ++ case ACT_JUMP_LAND_STOP: sp24 = act_jump_land_stop(m); break; ++ case ACT_DOUBLE_JUMP_LAND_STOP: sp24 = act_double_jump_land_stop(m); break; ++ case ACT_FREEFALL_LAND_STOP: sp24 = act_freefall_land_stop(m); break; ++ case ACT_SIDE_FLIP_LAND_STOP: sp24 = act_side_flip_land_stop(m); break; ++ case ACT_HOLD_JUMP_LAND_STOP: sp24 = act_hold_jump_land_stop(m); break; ++ case ACT_HOLD_FREEFALL_LAND_STOP: sp24 = act_hold_freefall_land_stop(m); break; ++ case ACT_AIR_THROW_LAND: sp24 = act_air_throw_land(m); break; ++ case ACT_LAVA_BOOST_LAND: sp24 = act_lava_boost_land(m); break; ++ case ACT_TWIRL_LAND: sp24 = act_twirl_land(m); break; ++ case ACT_TRIPLE_JUMP_LAND_STOP: sp24 = act_triple_jump_land_stop(m); break; ++ case ACT_BACKFLIP_LAND_STOP: sp24 = act_backflip_land_stop(m); break; ++ case ACT_LONG_JUMP_LAND_STOP: sp24 = act_long_jump_land_stop(m); break; ++ case ACT_GROUND_POUND_LAND: sp24 = act_ground_pound_land(m); break; ++ case ACT_BRAKING_STOP: sp24 = act_braking_stop(m); break; ++ case ACT_BUTT_SLIDE_STOP: sp24 = act_butt_slide_stop(m); break; ++ case ACT_HOLD_BUTT_SLIDE_STOP: sp24 = act_hold_butt_slide_stop(m); break; + } + /* clang-format on */ + +- if (!cancel && (m->input & INPUT_IN_WATER)) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ if (!sp24) { ++ if (m->input & INPUT_IN_WATER) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } + } + +- return cancel; ++ return sp24; + } +diff --git a/src/game/mario_actions_stationary.c.rej b/src/game/mario_actions_stationary.c.rej +new file mode 100644 +index 0000000..3d20700 +--- /dev/null ++++ b/src/game/mario_actions_stationary.c.rej +@@ -0,0 +1,964 @@ ++diff a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c (rejected hunks) ++@@ -2,6 +2,7 @@ ++ ++ #include "sm64.h" ++ #include "area.h" +++#include "audio/data.h" ++ #include "audio/external.h" ++ #include "behavior_data.h" ++ #include "camera.h" ++@@ -56,7 +57,7 @@ s32 check_common_idle_cancels(struct MarioState *m) { ++ return set_mario_action(m, ACT_START_CROUCHING, 0); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 check_common_hold_idle_cancels(struct MarioState *m) { ++@@ -99,10 +100,11 @@ s32 check_common_hold_idle_cancels(struct MarioState *m) { ++ return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_idle(struct MarioState *m) { +++ //m->faceAngle[1] += 10; ++ if (m->quicksandDepth > 30.0f) { ++ return set_mario_action(m, ACT_IN_QUICKSAND, 0); ++ } ++@@ -116,7 +118,7 @@ s32 act_idle(struct MarioState *m) { ++ } ++ ++ if (check_common_idle_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ if (m->actionState == 3) { ++@@ -169,7 +171,7 @@ s32 act_idle(struct MarioState *m) { ++ ++ stationary_ground_step(m); ++ ++- return FALSE; +++ return 0; ++ } ++ ++ void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 sound) { ++@@ -180,84 +182,92 @@ void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 s ++ ++ s32 act_start_sleeping(struct MarioState *m) { ++ #ifndef VERSION_JP ++- s32 animFrame; +++ s32 sp24; ++ #endif ++ ++ if (check_common_idle_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ if (m->quicksandDepth > 30.0f) { ++ return set_mario_action(m, ACT_IN_QUICKSAND, 0); ++ } ++ ++- if (m->actionState == 4) { ++- return set_mario_action(m, ACT_SLEEPING, 0); ++- } ++- +++ if (m->actionState == 6) { +++ return set_mario_action(m, ACT_SLEEPING, 0); +++ } +++ ++ switch (m->actionState) { ++ case 0: ++ #ifndef VERSION_JP ++- animFrame = ++-#endif +++ sp24 = set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); +++#else ++ set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); ++- break; ++- ++- case 1: ++-#ifndef VERSION_JP ++- animFrame = ++ #endif ++- set_mario_animation(m, MARIO_ANIM_START_SLEEP_SCRATCH); ++ break; ++ ++- case 2: ++-#ifndef VERSION_JP ++- animFrame = ++-#endif ++- set_mario_animation(m, MARIO_ANIM_START_SLEEP_YAWN); ++- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++- break; ++- ++- case 3: ++-#ifndef VERSION_JP ++- animFrame = ++-#endif +++ case 1: ++ set_mario_animation(m, MARIO_ANIM_START_SLEEP_SITTING); +++ if (m->marioObj->header.gfx.animInfo.animFrame > 84) { +++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +++ m->marioBodyState->handState = MARIO_HAND_OPEN; +++ } +++ break; +++ +++ case 2: ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++- break; +++ m->marioBodyState->handState = MARIO_HAND_OPEN; +++ set_mario_action(m, ACT_SLEEPING, 0); +++ break; +++ +++ +++ +++ ++ } ++ ++- play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); ++- play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); ++- play_anim_sound(m, 3, 15, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); +++ // play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); +++ // play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); +++ play_anim_sound(m, 0, 67, SOUND_ACTION_TERRAIN_JUMP); +++ play_anim_sound(m, 0, 84, SOUND_ACTION_TERRAIN_JUMP); +++ play_anim_sound(m, 1, 5, SOUND_ACTION_TERRAIN_JUMP); +++ play_anim_sound(m, 1, 41, SOUND_ACTION_TERRAIN_JUMP); +++ play_anim_sound(m, 1, 58, SOUND_ACTION_TERRAIN_JUMP); +++ //play_anim_sound(m, 4, 38, SOUND_ACTION_TERRAIN_JUMP); +++ play_anim_sound(m, 1, 91, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++ ++ if (is_anim_at_end(m)) { +++ if (m->action != ACT_SLEEPING) +++ { ++ m->actionState++; +++ } ++ } ++ ++ #ifndef VERSION_JP ++- if (m->actionState == 2 && animFrame == -1) { ++- play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); +++ if (m->actionState == 2) { +++ if (sp24 == -1) { +++ // play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); +++ } ++ } ++ ++- if (m->actionState == 1 && animFrame == -1) { ++- play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); +++ if (m->actionState == 0) { +++ if (sp24 == -1) { +++ //play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); +++ } ++ } ++ #else ++ if (m->actionState == 2) { ++- play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); +++ // play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); ++ } ++ #endif ++ ++ stationary_ground_step(m); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_sleeping(struct MarioState *m) { ++- s32 animFrame; ++- if (m->input ++- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE ++- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { +++ s32 sp24; +++ +++ if (m->input & INPUT_UNKNOWN_A41F /* ? */) { ++ return set_mario_action(m, ACT_WAKING_UP, m->actionState); ++ } ++ ++@@ -269,58 +279,48 @@ s32 act_sleeping(struct MarioState *m) { ++ return set_mario_action(m, ACT_WAKING_UP, m->actionState); ++ } ++ ++- m->marioBodyState->eyeState = MARIO_EYES_CLOSED; +++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ stationary_ground_step(m); ++ switch (m->actionState) { ++- case 0: ++- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); ++ ++- if (animFrame == -1 && !m->actionTimer) { +++ case 0: { +++ if (sp24 == -1 && !m->actionTimer) { ++ lower_background_noise(2); ++- } ++ ++- if (animFrame == 2) { ++- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); ++- } +++ ++ ++- if (animFrame == 20) { ++- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); +++ ++ } ++- ++ if (is_anim_at_end(m)) { ++ m->actionTimer++; ++- if (m->actionTimer > 45) { ++- m->actionState++; ++- } ++- } ++- break; ++ ++- case 1: ++- if (set_mario_animation(m, MARIO_ANIM_SLEEP_START_LYING) == 18) { ++- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++- } +++ if (m->actionTimer == 4 || m->actionTimer == 13) { ++ ++- if (is_anim_at_end(m)) { ++- m->actionState++; ++- } ++- break; +++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; ++ ++- case 2: ++- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); ++-#ifndef VERSION_JP ++- play_sound_if_no_flag(m, SOUND_MARIO_SNORING3, MARIO_ACTION_SOUND_PLAYED); ++-#else ++- if (animFrame == 2) { ++- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); +++ } +++ if (m->actionTimer == 10) { +++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); +++ } +++ if (m->actionTimer == 24) { +++ m->actionTimer = 0; +++ } +++ +++ if (m->actionTimer == 10) { +++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); +++ } ++ } ++ ++- if (animFrame == 25) { ++- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); ++- } ++-#endif +++ // +++ sp24 = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); +++ +++ +++ ++ break; +++ } ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_waking_up(struct MarioState *m) { ++@@ -355,11 +355,11 @@ s32 act_waking_up(struct MarioState *m) { ++ ++ set_mario_animation(m, !m->actionArg ? MARIO_ANIM_WAKE_FROM_SLEEP : MARIO_ANIM_WAKE_FROM_LYING); ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_shivering(struct MarioState *m) { ++- s32 animFrame; +++ s32 sp24; ++ ++ if (m->input & INPUT_UNKNOWN_10) { ++ return set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); ++@@ -373,67 +373,66 @@ s32 act_shivering(struct MarioState *m) { ++ return set_mario_action(m, ACT_BEGIN_SLIDING, 0); ++ } ++ ++- if (m->input ++- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE ++- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { +++ if (m->input & INPUT_UNKNOWN_A41F) { ++ m->actionState = 2; ++ } ++ ++ stationary_ground_step(m); ++ switch (m->actionState) { ++- case 0: ++- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); ++- if (animFrame == 49) { +++ case 0: { +++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); +++ if (sp24 == 0x31) { ++ m->particleFlags |= PARTICLE_BREATH; ++ play_sound(SOUND_MARIO_PANTING_COLD, m->marioObj->header.gfx.cameraToObject); ++ } ++- if (animFrame == 7 || animFrame == 81) { +++ if (sp24 == 7 || sp24 == 0x51) { ++ play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (is_anim_past_end(m)) { ++ m->actionState = 1; ++ } ++ break; ++- ++- case 1: ++- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING); ++- if (animFrame == 9 || animFrame == 25 || animFrame == 44) { +++ } +++ case 1: { +++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING); +++ if (sp24 == 9 || sp24 == 0x19 || sp24 == 0x2C) { ++ play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); ++ } ++ break; ++- ++- case 2: +++ } +++ case 2: { ++ set_mario_animation(m, MARIO_ANIM_SHIVERING_RETURN_TO_IDLE); ++ if (is_anim_past_end(m)) { ++ set_mario_action(m, ACT_IDLE, 0); ++ } ++ break; +++ } ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_coughing(struct MarioState *m) { ++- s32 animFrame; +++ s32 sp1C; ++ ++ if (check_common_idle_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ stationary_ground_step(m); ++- animFrame = set_mario_animation(m, MARIO_ANIM_COUGHING); ++- if (animFrame == 25 || animFrame == 35) { +++ sp1C = set_mario_animation(m, MARIO_ANIM_COUGHING); +++ if (sp1C == 0x19 || sp1C == 0x23) { ++ play_sound(SOUND_MARIO_COUGHING3, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++- if (animFrame == 50 || animFrame == 58) { +++ if (sp1C == 0x32 || sp1C == 0x3A) { ++ play_sound(SOUND_MARIO_COUGHING2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++- if (animFrame == 71 || animFrame == 80) { +++ if (sp1C == 0x47 || sp1C == 0x50) { ++ play_sound(SOUND_MARIO_COUGHING1, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_hold_idle(struct MarioState *m) { ++@@ -450,12 +449,12 @@ s32 act_hold_idle(struct MarioState *m) { ++ } ++ ++ if (check_common_hold_idle_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ stationary_ground_step(m); ++ set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_hold_heavy_idle(struct MarioState *m) { ++@@ -481,7 +480,7 @@ s32 act_hold_heavy_idle(struct MarioState *m) { ++ ++ stationary_ground_step(m); ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAVY_OBJ); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_standing_against_wall(struct MarioState *m) { ++@@ -503,7 +502,7 @@ s32 act_standing_against_wall(struct MarioState *m) { ++ ++ set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); ++ stationary_ground_step(m); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_in_quicksand(struct MarioState *m) { ++@@ -511,8 +510,8 @@ s32 act_in_quicksand(struct MarioState *m) { ++ return set_mario_action(m, ACT_IDLE, 0); ++ } ++ ++- if (check_common_idle_cancels(m)) { ++- return TRUE; +++ if (check_common_idle_cancels(m) != 0) { +++ return 1; ++ } ++ ++ if (m->quicksandDepth > 70.0f) { ++@@ -522,7 +521,7 @@ s32 act_in_quicksand(struct MarioState *m) { ++ } ++ ++ stationary_ground_step(m); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_crouching(struct MarioState *m) { ++@@ -531,7 +530,7 @@ s32 act_crouching(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++- return set_jumping_action(m, ACT_BACKFLIP, 0); +++ return set_jumping_action(m, ACT_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_OFF_FLOOR) { ++@@ -560,7 +559,7 @@ s32 act_crouching(struct MarioState *m) { ++ ++ stationary_ground_step(m); ++ set_mario_animation(m, MARIO_ANIM_CROUCHING); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_panting(struct MarioState *m) { ++@@ -573,7 +572,7 @@ s32 act_panting(struct MarioState *m) { ++ } ++ ++ if (check_common_idle_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { ++@@ -583,7 +582,7 @@ s32 act_panting(struct MarioState *m) { ++ ++ stationary_ground_step(m); ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_hold_panting_unused(struct MarioState *m) { ++@@ -599,20 +598,20 @@ s32 act_hold_panting_unused(struct MarioState *m) { ++ return set_mario_action(m, ACT_HOLD_IDLE, 0); ++ } ++ ++- if (check_common_hold_idle_cancels(m)) { ++- return TRUE; +++ if (check_common_hold_idle_cancels(m) != 0) { +++ return 1; ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_WALK_PANTING); ++ stationary_ground_step(m); ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++- return FALSE; +++ return 0; ++ } ++ ++ void stopping_step(struct MarioState *m, s32 animID, u32 action) { ++ stationary_ground_step(m); ++ set_mario_animation(m, animID); ++- if (is_anim_at_end(m)) { +++ if (is_anim_at_end(m) != 0) { ++ set_mario_action(m, action, 0); ++ } ++ } ++@@ -636,7 +635,7 @@ s32 act_braking_stop(struct MarioState *m) { ++ } ++ ++ stopping_step(m, MARIO_ANIM_STOP_SKID, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_butt_slide_stop(struct MarioState *m) { ++@@ -653,7 +652,7 @@ s32 act_butt_slide_stop(struct MarioState *m) { ++ play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_hold_butt_slide_stop(struct MarioState *m) { ++@@ -674,7 +673,7 @@ s32 act_hold_butt_slide_stop(struct MarioState *m) { ++ } ++ ++ stopping_step(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_slide_kick_slide_stop(struct MarioState *m) { ++@@ -687,7 +686,7 @@ s32 act_slide_kick_slide_stop(struct MarioState *m) { ++ } ++ ++ stopping_step(m, MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_start_crouching(struct MarioState *m) { ++@@ -700,7 +699,7 @@ s32 act_start_crouching(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++- return set_jumping_action(m, ACT_BACKFLIP, 0); +++ return set_jumping_action(m, ACT_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_ABOVE_SLIDE) { ++@@ -712,7 +711,7 @@ s32 act_start_crouching(struct MarioState *m) { ++ if (is_anim_past_end(m)) { ++ set_mario_action(m, ACT_CROUCHING, 0); ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_stop_crouching(struct MarioState *m) { ++@@ -725,7 +724,7 @@ s32 act_stop_crouching(struct MarioState *m) { ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++- return set_jumping_action(m, ACT_BACKFLIP, 0); +++ return set_jumping_action(m, ACT_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_ABOVE_SLIDE) { ++@@ -737,7 +736,7 @@ s32 act_stop_crouching(struct MarioState *m) { ++ if (is_anim_past_end(m)) { ++ set_mario_action(m, ACT_IDLE, 0); ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_start_crawling(struct MarioState *m) { ++@@ -763,7 +762,7 @@ s32 act_start_crawling(struct MarioState *m) { ++ set_mario_action(m, ACT_CRAWLING, 0); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_stop_crawling(struct MarioState *m) { ++@@ -784,34 +783,30 @@ s32 act_stop_crawling(struct MarioState *m) { ++ if (is_anim_past_end(m)) { ++ set_mario_action(m, ACT_CROUCHING, 0); ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_shockwave_bounce(struct MarioState *m) { ++ s16 sp1E; ++ f32 sp18; ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_HIT_BY_SHOCKWAVE) { ++-#ifdef VERSION_SH ++- queue_rumble_data(70, 40); ++-#endif +++ if (m->marioObj->oInteractStatus & 0x10) { +++ //(70, 40); ++ return hurt_and_set_mario_action(m, ACT_SHOCKED, 0, 4); ++ } ++ ++ if (m->actionTimer == 0) { ++-#ifdef VERSION_SH ++- queue_rumble_data(70, 40); ++-#endif +++ //(70, 40); ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { ++ return hurt_and_set_mario_action(m, ACT_BACKWARD_GROUND_KB, 0, 0xc); ++ } ++ } ++ ++- if (++m->actionTimer == 48) { +++ if (++m->actionTimer == 0x30) { ++ return set_mario_action(m, ACT_IDLE, 0); ++ } ++ ++- sp1E = (m->actionTimer % 16) << 12; +++ sp1E = (m->actionTimer % 0x10) << 0xC; ++ sp18 = (f32)(((f32)(6 - m->actionTimer / 8) * 8.0f) + 4.0f); ++ mario_set_forward_vel(m, 0); ++ vec3f_set(m->vel, 0.0f, 0.0f, 0.0f); ++@@ -824,7 +819,7 @@ s32 act_shockwave_bounce(struct MarioState *m) { ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ set_mario_animation(m, MARIO_ANIM_A_POSE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { ++@@ -833,7 +828,7 @@ s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, action, 0); ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 check_common_landing_cancels(struct MarioState *m, u32 action) { ++@@ -861,89 +856,90 @@ s32 check_common_landing_cancels(struct MarioState *m, u32 action) { ++ return set_mario_action(m, ACT_PUNCHING, 0); ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_jump_land_stop(struct MarioState *m) { ++ if (check_common_landing_cancels(m, 0)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_double_jump_land_stop(struct MarioState *m) { ++ if (check_common_landing_cancels(m, 0)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_side_flip_land_stop(struct MarioState *m) { ++ if (check_common_landing_cancels(m, 0)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_IDLE); ++ m->marioObj->header.gfx.angle[1] += 0x8000; ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_freefall_land_stop(struct MarioState *m) { ++ if (check_common_landing_cancels(m, 0)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_GENERAL_LAND, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_triple_jump_land_stop(struct MarioState *m) { ++ if (check_common_landing_cancels(m, ACT_JUMP)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_backflip_land_stop(struct MarioState *m) { ++ if (!(m->input & INPUT_Z_DOWN) || m->marioObj->header.gfx.animInfo.animFrame >= 6) { ++- m->input &= ~INPUT_A_PRESSED; +++ m->input &= -3; ++ } ++ ++ if (check_common_landing_cancels(m, ACT_BACKFLIP)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_lava_boost_land(struct MarioState *m) { ++- m->input &= ~(INPUT_FIRST_PERSON | INPUT_B_PRESSED); +++ m->input &= -0x2011; ++ ++ if (check_common_landing_cancels(m, 0)) { ++- return TRUE; +++ return 1; ++ } ++ ++ landing_step(m, MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_long_jump_land_stop(struct MarioState *m) { ++- m->input &= ~INPUT_B_PRESSED; +++ m->input &= -0x2001; ++ if (check_common_landing_cancels(m, ACT_JUMP)) { ++- return TRUE; +++ return 1; ++ } ++ ++- landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP ++- : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, ++- ACT_CROUCHING); ++- return FALSE; +++ landing_step(m, +++ !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP +++ : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, +++ ACT_CROUCHING); +++ return 0; ++ } ++ ++ s32 act_hold_jump_land_stop(struct MarioState *m) { ++@@ -964,7 +960,7 @@ s32 act_hold_jump_land_stop(struct MarioState *m) { ++ } ++ ++ landing_step(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_hold_freefall_land_stop(struct MarioState *m) { ++@@ -984,7 +980,7 @@ s32 act_hold_freefall_land_stop(struct MarioState *m) { ++ return set_mario_action(m, ACT_THROWING, 0); ++ } ++ landing_step(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_air_throw_land(struct MarioState *m) { ++@@ -1001,7 +997,7 @@ s32 act_air_throw_land(struct MarioState *m) { ++ } ++ ++ landing_step(m, MARIO_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_twirl_land(struct MarioState *m) { ++@@ -1026,16 +1022,20 @@ s32 act_twirl_land(struct MarioState *m) { ++ } ++ ++ m->marioObj->header.gfx.angle[1] += m->twirlYaw; ++- if (is_anim_at_end(m) && m->angleVel[1] == 0) { ++- m->faceAngle[1] += m->twirlYaw; ++- set_mario_action(m, ACT_IDLE, 0); +++ if (is_anim_at_end(m)) { +++ if (m->angleVel[1] == 0) { +++ m->faceAngle[1] += m->twirlYaw; +++ set_mario_action(m, ACT_IDLE, 0); +++ } ++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_ground_pound_land(struct MarioState *m) { ++ m->actionState = 1; +++ +++ set_mario_action(m, ACT_BACKFLIP, 0); ++ if (m->input & INPUT_UNKNOWN_10) { ++ return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); ++ } ++@@ -1049,35 +1049,43 @@ s32 act_ground_pound_land(struct MarioState *m) { ++ } ++ ++ landing_step(m, MARIO_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 act_first_person(struct MarioState *m) { ++- s32 sp1C = (m->input & (INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE | INPUT_UNKNOWN_10)) != 0; +++ s32 sp1C; +++ s16 sp1A; +++ s16 sp18; ++ +++ sp1C = 0 != (m->input & (INPUT_UNKNOWN_10 | 0xC)); ++ if (m->actionState == 0) { ++ lower_background_noise(2); ++ set_camera_mode(m->area->camera, CAMERA_MODE_C_UP, 0x10); ++ m->actionState = 1; ++- } else if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { ++- raise_background_noise(2); ++- // Go back to the last camera mode ++- set_camera_mode(m->area->camera, -1, 1); ++- return set_mario_action(m, ACT_IDLE, 0); +++ } else { +++ if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { +++ raise_background_noise(2); +++ // Go back to the last camera mode +++ set_camera_mode(m->area->camera, -1, 1); +++ return set_mario_action(m, ACT_IDLE, 0); +++ } ++ } ++ ++- if (m->floor->type == SURFACE_LOOK_UP_WARP ++- && save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1) >= 10) { ++- s16 sp1A = m->statusForCamera->headRotation[0]; ++- s16 sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; ++- if (sp1A == -0x1800 && (sp18 < -0x6FFF || sp18 >= 0x7000)) { ++- level_trigger_warp(m, WARP_OP_UNKNOWN_01); +++ if (m->floor->type == SURFACE_LOOK_UP_WARP) { +++ if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 0x18) >= 10) { +++ sp1A = m->statusForCamera->headRotation[0]; +++ sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; +++ if (sp1A == -0x1800) { +++ if (sp18 < -0x6FFF || sp18 >= 0x7000) { +++ level_trigger_warp(m, 1); +++ } +++ } ++ } ++ } ++ ++ stationary_ground_step(m); ++ set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); ++- return FALSE; +++ return 0; ++ } ++ ++ s32 check_common_stationary_cancels(struct MarioState *m) { ++@@ -1094,70 +1102,72 @@ s32 check_common_stationary_cancels(struct MarioState *m) { ++ return drop_and_set_mario_action(m, ACT_SQUISHED, 0); ++ } ++ ++- if (m->action != ACT_UNKNOWN_0002020E) { +++ if (m->action != 0x0002020E) { ++ if (m->health < 0x100) { ++ update_mario_sound_and_camera(m); ++ return drop_and_set_mario_action(m, ACT_STANDING_DEATH, 0); ++ } ++ } ++- return FALSE; +++ return 0; ++ } ++ ++ s32 mario_execute_stationary_action(struct MarioState *m) { ++- s32 cancel; +++ s32 sp24; ++ ++ if (check_common_stationary_cancels(m)) { ++- return TRUE; +++ return 1; ++ } ++ ++ if (mario_update_quicksand(m, 0.5f)) { ++- return TRUE; +++ return 1; ++ } ++ ++ /* clang-format off */ ++ switch (m->action) { ++- case ACT_IDLE: cancel = act_idle(m); break; ++- case ACT_START_SLEEPING: cancel = act_start_sleeping(m); break; ++- case ACT_SLEEPING: cancel = act_sleeping(m); break; ++- case ACT_WAKING_UP: cancel = act_waking_up(m); break; ++- case ACT_PANTING: cancel = act_panting(m); break; ++- case ACT_HOLD_PANTING_UNUSED: cancel = act_hold_panting_unused(m); break; ++- case ACT_HOLD_IDLE: cancel = act_hold_idle(m); break; ++- case ACT_HOLD_HEAVY_IDLE: cancel = act_hold_heavy_idle(m); break; ++- case ACT_IN_QUICKSAND: cancel = act_in_quicksand(m); break; ++- case ACT_STANDING_AGAINST_WALL: cancel = act_standing_against_wall(m); break; ++- case ACT_COUGHING: cancel = act_coughing(m); break; ++- case ACT_SHIVERING: cancel = act_shivering(m); break; ++- case ACT_CROUCHING: cancel = act_crouching(m); break; ++- case ACT_START_CROUCHING: cancel = act_start_crouching(m); break; ++- case ACT_STOP_CROUCHING: cancel = act_stop_crouching(m); break; ++- case ACT_START_CRAWLING: cancel = act_start_crawling(m); break; ++- case ACT_STOP_CRAWLING: cancel = act_stop_crawling(m); break; ++- case ACT_SLIDE_KICK_SLIDE_STOP: cancel = act_slide_kick_slide_stop(m); break; ++- case ACT_SHOCKWAVE_BOUNCE: cancel = act_shockwave_bounce(m); break; ++- case ACT_FIRST_PERSON: cancel = act_first_person(m); break; ++- case ACT_JUMP_LAND_STOP: cancel = act_jump_land_stop(m); break; ++- case ACT_DOUBLE_JUMP_LAND_STOP: cancel = act_double_jump_land_stop(m); break; ++- case ACT_FREEFALL_LAND_STOP: cancel = act_freefall_land_stop(m); break; ++- case ACT_SIDE_FLIP_LAND_STOP: cancel = act_side_flip_land_stop(m); break; ++- case ACT_HOLD_JUMP_LAND_STOP: cancel = act_hold_jump_land_stop(m); break; ++- case ACT_HOLD_FREEFALL_LAND_STOP: cancel = act_hold_freefall_land_stop(m); break; ++- case ACT_AIR_THROW_LAND: cancel = act_air_throw_land(m); break; ++- case ACT_LAVA_BOOST_LAND: cancel = act_lava_boost_land(m); break; ++- case ACT_TWIRL_LAND: cancel = act_twirl_land(m); break; ++- case ACT_TRIPLE_JUMP_LAND_STOP: cancel = act_triple_jump_land_stop(m); break; ++- case ACT_BACKFLIP_LAND_STOP: cancel = act_backflip_land_stop(m); break; ++- case ACT_LONG_JUMP_LAND_STOP: cancel = act_long_jump_land_stop(m); break; ++- case ACT_GROUND_POUND_LAND: cancel = act_ground_pound_land(m); break; ++- case ACT_BRAKING_STOP: cancel = act_braking_stop(m); break; ++- case ACT_BUTT_SLIDE_STOP: cancel = act_butt_slide_stop(m); break; ++- case ACT_HOLD_BUTT_SLIDE_STOP: cancel = act_hold_butt_slide_stop(m); break; +++ case ACT_IDLE: sp24 = act_idle(m); break; +++ case ACT_START_SLEEPING: sp24 = act_start_sleeping(m); break; +++ case ACT_SLEEPING: sp24 = act_sleeping(m); break; +++ case ACT_WAKING_UP: sp24 = act_waking_up(m); break; +++ case ACT_PANTING: sp24 = act_panting(m); break; +++ case ACT_HOLD_PANTING_UNUSED: sp24 = act_hold_panting_unused(m); break; +++ case ACT_HOLD_IDLE: sp24 = act_hold_idle(m); break; +++ case ACT_HOLD_HEAVY_IDLE: sp24 = act_hold_heavy_idle(m); break; +++ case ACT_IN_QUICKSAND: sp24 = act_in_quicksand(m); break; +++ case ACT_STANDING_AGAINST_WALL: sp24 = act_standing_against_wall(m); break; +++ case ACT_COUGHING: sp24 = act_coughing(m); break; +++ case ACT_SHIVERING: sp24 = act_shivering(m); break; +++ case ACT_CROUCHING: sp24 = act_crouching(m); break; +++ case ACT_START_CROUCHING: sp24 = act_start_crouching(m); break; +++ case ACT_STOP_CROUCHING: sp24 = act_stop_crouching(m); break; +++ case ACT_START_CRAWLING: sp24 = act_start_crawling(m); break; +++ case ACT_STOP_CRAWLING: sp24 = act_stop_crawling(m); break; +++ case ACT_SLIDE_KICK_SLIDE_STOP: sp24 = act_slide_kick_slide_stop(m); break; +++ case ACT_SHOCKWAVE_BOUNCE: sp24 = act_shockwave_bounce(m); break; +++ case ACT_FIRST_PERSON: sp24 = act_first_person(m); break; +++ case ACT_JUMP_LAND_STOP: sp24 = act_jump_land_stop(m); break; +++ case ACT_DOUBLE_JUMP_LAND_STOP: sp24 = act_double_jump_land_stop(m); break; +++ case ACT_FREEFALL_LAND_STOP: sp24 = act_freefall_land_stop(m); break; +++ case ACT_SIDE_FLIP_LAND_STOP: sp24 = act_side_flip_land_stop(m); break; +++ case ACT_HOLD_JUMP_LAND_STOP: sp24 = act_hold_jump_land_stop(m); break; +++ case ACT_HOLD_FREEFALL_LAND_STOP: sp24 = act_hold_freefall_land_stop(m); break; +++ case ACT_AIR_THROW_LAND: sp24 = act_air_throw_land(m); break; +++ case ACT_LAVA_BOOST_LAND: sp24 = act_lava_boost_land(m); break; +++ case ACT_TWIRL_LAND: sp24 = act_twirl_land(m); break; +++ case ACT_TRIPLE_JUMP_LAND_STOP: sp24 = act_triple_jump_land_stop(m); break; +++ case ACT_BACKFLIP_LAND_STOP: sp24 = act_backflip_land_stop(m); break; +++ case ACT_LONG_JUMP_LAND_STOP: sp24 = act_long_jump_land_stop(m); break; +++ case ACT_GROUND_POUND_LAND: sp24 = act_ground_pound_land(m); break; +++ case ACT_BRAKING_STOP: sp24 = act_braking_stop(m); break; +++ case ACT_BUTT_SLIDE_STOP: sp24 = act_butt_slide_stop(m); break; +++ case ACT_HOLD_BUTT_SLIDE_STOP: sp24 = act_hold_butt_slide_stop(m); break; ++ } ++ /* clang-format on */ ++ ++- if (!cancel && (m->input & INPUT_IN_WATER)) { ++- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +++ if (!sp24) { +++ if (m->input & INPUT_IN_WATER) { +++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +++ } ++ } ++ ++- return cancel; +++ return sp24; ++ } +diff --git a/src/game/mario_actions_stationary.h b/src/game/mario_actions_stationary.h +index c4b4c06..a4633c7 100644 +--- a/src/game/mario_actions_stationary.h ++++ b/src/game/mario_actions_stationary.h +@@ -5,6 +5,8 @@ + + #include "types.h" + ++#define INPUT_UNKNOWN_A41F 0xA41F ++ + s32 check_common_idle_cancels(struct MarioState *m); + s32 check_common_hold_idle_cancels(struct MarioState *m); + s32 act_idle(struct MarioState *m); +diff --git a/src/game/mario_actions_stationary.h.rej b/src/game/mario_actions_stationary.h.rej +new file mode 100644 +index 0000000..1d47e38 +--- /dev/null ++++ b/src/game/mario_actions_stationary.h.rej +@@ -0,0 +1,10 @@ ++diff a/src/game/mario_actions_stationary.h b/src/game/mario_actions_stationary.h (rejected hunks) ++@@ -5,6 +5,8 @@ ++ ++ #include "types.h" ++ +++#define INPUT_UNKNOWN_A41F 0xA41F +++ ++ s32 check_common_idle_cancels(struct MarioState *m); ++ s32 check_common_hold_idle_cancels(struct MarioState *m); ++ s32 act_idle(struct MarioState *m); +diff --git a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c +index 2db0158..2506751 100644 +--- a/src/game/mario_actions_submerged.c ++++ b/src/game/mario_actions_submerged.c +@@ -29,1545 +29,1582 @@ static s16 D_80339FD2; + static f32 D_80339FD4; + + static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { +- s16 atSurface = m->pos[1] >= m->waterLevel - 130; ++ s16 atSurface = m->pos[1] >= m->waterLevel - 130; + +- if (atSurface) { +- m->particleFlags |= particleFlag; +- if (atSurface ^ sWasAtSurface) { +- play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); +- } +- } ++ if (atSurface) { ++ m->particleFlags |= particleFlag; ++ if (atSurface ^ sWasAtSurface) { ++ play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); ++ } ++ } + +- sWasAtSurface = atSurface; ++ sWasAtSurface = atSurface; + } + + static s32 swimming_near_surface(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return FALSE; +- } + +- return (m->waterLevel - 80) - m->pos[1] < 400.0f; +-} ++ return FALSE; + +-static f32 get_buoyancy(struct MarioState *m) { +- f32 buoyancy = 0.0f; + +- if (m->flags & MARIO_METAL_CAP) { +- if (m->action & ACT_FLAG_INVULNERABLE) { +- buoyancy = -2.0f; +- } else { +- buoyancy = -18.0f; +- } +- } else if (swimming_near_surface(m)) { +- buoyancy = 1.25f; +- } else if (!(m->action & ACT_FLAG_MOVING)) { +- buoyancy = -2.0f; +- } ++ return (m->waterLevel - 80) - m->pos[1] < 400.0f; ++} + +- return buoyancy; ++static f32 get_buoyancy(struct MarioState *m) { ++ f32 buoyancy = 0.0f; ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ if (m->action & ACT_FLAG_INVULNERABLE) { ++ buoyancy = -39.0f; ++ } ++ else { ++ buoyancy = -39.0f; ++ } ++ } ++ else if (swimming_near_surface(m)) { ++ buoyancy = -11.0f; ++ } ++ else if (!(m->action & ACT_FLAG_MOVING)) { ++ buoyancy = -11.0f; ++ } ++ ++ return buoyancy; + } + + static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { +- struct Surface *wall; +- struct Surface *ceil; +- struct Surface *floor; +- f32 ceilHeight; +- f32 floorHeight; +- +- wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); +- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +- +- if (floor == NULL) { +- return WATER_STEP_CANCELLED; +- } +- +- if (nextPos[1] >= floorHeight) { +- if (ceilHeight - nextPos[1] >= 160.0f) { +- vec3f_copy(m->pos, nextPos); +- m->floor = floor; +- m->floorHeight = floorHeight; +- +- if (wall != NULL) { +- return WATER_STEP_HIT_WALL; +- } else { +- return WATER_STEP_NONE; +- } +- } +- +- if (ceilHeight - floorHeight < 160.0f) { +- return WATER_STEP_CANCELLED; +- } +- +- //! Water ceiling downwarp +- vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return WATER_STEP_HIT_CEILING; +- } else { +- if (ceilHeight - floorHeight < 160.0f) { +- return WATER_STEP_CANCELLED; +- } +- +- vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return WATER_STEP_HIT_FLOOR; +- } ++ struct Surface *wall; ++ struct Surface *ceil; ++ struct Surface *floor; ++ f32 ceilHeight; ++ f32 floorHeight; ++ ++ wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); ++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++ ++ if (floor == NULL) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ if (nextPos[1] >= floorHeight) { ++ if (ceilHeight - nextPos[1] >= 160.0f) { ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ ++ if (wall != NULL) { ++ return WATER_STEP_HIT_WALL; ++ } ++ else { ++ return WATER_STEP_NONE; ++ } ++ } ++ ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ //! Water ceiling downwarp ++ vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_CEILING; ++ } ++ else { ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_FLOOR; ++ } + } + + static void apply_water_current(struct MarioState *m, Vec3f step) { +- s32 i; +- f32 whirlpoolRadius = 2000.0f; +- +- if (m->floor->type == SURFACE_FLOWING_WATER) { +- s16 currentAngle = m->floor->force << 8; +- f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; +- +- step[0] += currentSpeed * sins(currentAngle); +- step[2] += currentSpeed * coss(currentAngle); +- } +- +- for (i = 0; i < 2; i++) { +- struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; +- if (whirlpool != NULL) { +- f32 strength = 0.0f; +- +- f32 dx = whirlpool->pos[0] - m->pos[0]; +- f32 dy = whirlpool->pos[1] - m->pos[1]; +- f32 dz = whirlpool->pos[2] - m->pos[2]; +- +- f32 lateralDist = sqrtf(dx * dx + dz * dz); +- f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); +- +- s16 pitchToWhirlpool = atan2s(lateralDist, dy); +- s16 yawToWhirlpool = atan2s(dz, dx); +- +- yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); +- +- if (whirlpool->strength >= 0) { +- if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { +- whirlpoolRadius = 4000.0f; +- } +- +- if (distance >= 26.0f && distance < whirlpoolRadius) { +- strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); +- } +- } else if (distance < 2000.0f) { +- strength = whirlpool->strength * (1.0f - distance / 2000.0f); +- } +- +- step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); +- step[1] += strength * sins(pitchToWhirlpool); +- step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); +- } +- } ++ s32 i; ++ f32 whirlpoolRadius = 2000.0f; ++ ++ if (m->floor->type == SURFACE_FLOWING_WATER) { ++ s16 currentAngle = m->floor->force << 8; ++ f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; ++ ++ step[0] += currentSpeed * sins(currentAngle); ++ step[2] += currentSpeed * coss(currentAngle); ++ } ++ ++ for (i = 0; i < 2; i++) { ++ struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; ++ if (whirlpool != NULL) { ++ f32 strength = 0.0f; ++ ++ f32 dx = whirlpool->pos[0] - m->pos[0]; ++ f32 dy = whirlpool->pos[1] - m->pos[1]; ++ f32 dz = whirlpool->pos[2] - m->pos[2]; ++ ++ f32 lateralDist = sqrtf(dx * dx + dz * dz); ++ f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); ++ ++ s16 pitchToWhirlpool = atan2s(lateralDist, dy); ++ s16 yawToWhirlpool = atan2s(dz, dx); ++ ++ yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); ++ ++ if (whirlpool->strength >= 0) { ++ if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { ++ whirlpoolRadius = 4000.0f; ++ } ++ ++ if (distance >= 26.0f && distance < whirlpoolRadius) { ++ strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); ++ } ++ } ++ else if (distance < 2000.0f) { ++ strength = whirlpool->strength * (1.0f - distance / 2000.0f); ++ } ++ ++ step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); ++ step[1] += strength * sins(pitchToWhirlpool); ++ step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); ++ } ++ } + } + + static u32 perform_water_step(struct MarioState *m) { +- UNUSED u32 unused; +- u32 stepResult; +- Vec3f nextPos; +- Vec3f step; +- struct Object *marioObj = m->marioObj; ++ UNUSED u32 unused; ++ u32 stepResult; ++ Vec3f nextPos; ++ Vec3f step; ++ struct Object *marioObj = m->marioObj; + +- vec3f_copy(step, m->vel); ++ vec3f_copy(step, m->vel); + +- if (m->action & ACT_FLAG_SWIMMING) { +- apply_water_current(m, step); +- } ++ if (m->action & ACT_FLAG_SWIMMING) { ++ apply_water_current(m, step); ++ } + +- nextPos[0] = m->pos[0] + step[0]; +- nextPos[1] = m->pos[1] + step[1]; +- nextPos[2] = m->pos[2] + step[2]; ++ nextPos[0] = m->pos[0] + step[0]; ++ nextPos[1] = m->pos[1] + step[1]; ++ nextPos[2] = m->pos[2] + step[2]; + +- if (nextPos[1] > m->waterLevel - 80) { +- nextPos[1] = m->waterLevel - 80; +- m->vel[1] = 0.0f; +- } ++ if (nextPos[1] > m->waterLevel - 80) { ++ nextPos[1] = m->waterLevel - 80; ++ m->vel[1] = 0.0f; ++ } + +- stepResult = perform_water_full_step(m, nextPos); ++ stepResult = perform_water_full_step(m, nextPos); + +- vec3f_copy(marioObj->header.gfx.pos, m->pos); +- vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); ++ vec3f_copy(marioObj->header.gfx.pos, m->pos); ++ vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); + +- return stepResult; ++ return stepResult; + } + + static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { +- struct Object *marioObj = m->marioObj; ++ struct Object *marioObj = m->marioObj; + +- if (marioObj->header.gfx.angle[0] > 0) { +- marioObj->header.gfx.pos[1] += +- 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); +- } ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.pos[1] += ++ 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); ++ } + +- if (marioObj->header.gfx.angle[0] < 0) { +- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; +- } ++ if (marioObj->header.gfx.angle[0] < 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; ++ } + +- if (marioObj->header.gfx.angle[0] > 0) { +- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; +- } ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; ++ } + } + + static void stationary_slow_down(struct MarioState *m) { +- f32 buoyancy = get_buoyancy(m); ++ f32 buoyancy = get_buoyancy(m); + +- m->angleVel[0] = 0; +- m->angleVel[1] = 0; ++ m->angleVel[0] = 0; ++ m->angleVel[1] = 0; + +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); +- m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); ++ m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); + +- m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); +- m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); ++ m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); ++ m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); + +- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + } + + static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { +- f32 buoyancy = get_buoyancy(m); +- f32 maxSpeed = 28.0f; ++ f32 buoyancy = get_buoyancy(m); ++ f32 maxSpeed = 28.0f; + +- if (m->action & ACT_FLAG_STATIONARY) { +- m->forwardVel -= 2.0f; +- } ++ if (m->action & ACT_FLAG_STATIONARY) { ++ m->forwardVel -= 2.0f; ++ } + +- if (m->forwardVel < 0.0f) { +- m->forwardVel = 0.0f; +- } ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel = 0.0f; ++ } + +- if (m->forwardVel > maxSpeed) { +- m->forwardVel = maxSpeed; +- } ++ if (m->forwardVel > maxSpeed) { ++ m->forwardVel = maxSpeed; ++ } + +- if (m->forwardVel > decelThreshold) { +- m->forwardVel -= 0.5f; +- } ++ if (m->forwardVel > decelThreshold) { ++ m->forwardVel -= 0.5f; ++ } + +- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +- m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; +- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + } + + static void update_swimming_yaw(struct MarioState *m) { +- s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); +- +- if (targetYawVel > 0) { +- if (m->angleVel[1] < 0) { +- m->angleVel[1] += 0x40; +- if (m->angleVel[1] > 0x10) { +- m->angleVel[1] = 0x10; +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); +- } +- } else if (targetYawVel < 0) { +- if (m->angleVel[1] > 0) { +- m->angleVel[1] -= 0x40; +- if (m->angleVel[1] < -0x10) { +- m->angleVel[1] = -0x10; +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); +- } +- +- m->faceAngle[1] += m->angleVel[1]; +- m->faceAngle[2] = -m->angleVel[1] * 8; ++ s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); ++ ++ if (targetYawVel > 0) { ++ if (m->angleVel[1] < 0) { ++ m->angleVel[1] += 0x40; ++ if (m->angleVel[1] > 0x10) { ++ m->angleVel[1] = 0x10; ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); ++ } ++ } ++ else if (targetYawVel < 0) { ++ if (m->angleVel[1] > 0) { ++ m->angleVel[1] -= 0x40; ++ if (m->angleVel[1] < -0x10) { ++ m->angleVel[1] = -0x10; ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); ++ } ++ ++ m->faceAngle[1] += m->angleVel[1]; ++ m->faceAngle[2] = -m->angleVel[1] * 8; + } + + static void update_swimming_pitch(struct MarioState *m) { +- s16 targetPitch = -(s16)(252.0f * m->controller->stickY); +- +- s16 pitchVel; +- if (m->faceAngle[0] < 0) { +- pitchVel = 0x100; +- } else { +- pitchVel = 0x200; +- } +- +- if (m->faceAngle[0] < targetPitch) { +- if ((m->faceAngle[0] += pitchVel) > targetPitch) { +- m->faceAngle[0] = targetPitch; +- } +- } else if (m->faceAngle[0] > targetPitch) { +- if ((m->faceAngle[0] -= pitchVel) < targetPitch) { +- m->faceAngle[0] = targetPitch; +- } +- } ++ s16 targetPitch = -(s16)(252.0f * m->controller->stickY); ++ ++ s16 pitchVel; ++ if (m->faceAngle[0] < 0) { ++ pitchVel = 0x100; ++ } ++ else { ++ pitchVel = 0x200; ++ } ++ ++ if (m->faceAngle[0] < targetPitch) { ++ if ((m->faceAngle[0] += pitchVel) > targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } ++ else if (m->faceAngle[0] > targetPitch) { ++ if ((m->faceAngle[0] -= pitchVel) < targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } + } + + static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { +- s16 *val = &m->marioBodyState->headAngle[0]; +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); +- +- if (m->faceAngle[0] > 0) { +- *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); +- } else { +- *val = approach_s32(*val, 0, 0x200, 0x200); +- } +- +- if (arg == 0) { +- set_mario_animation(m, animation); +- } else { +- set_mario_anim_with_accel(m, animation, arg); +- } +- +- set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); ++ s16 *val = &m->marioBodyState->headAngle[0]; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ if (m->faceAngle[0] > 0) { ++ *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); ++ } ++ else { ++ *val = approach_s32(*val, 0, 0x200, 0x200); ++ } ++ ++ if (arg == 0) { ++ set_mario_animation(m, animation); ++ } ++ else { ++ set_mario_anim_with_accel(m, animation, arg); ++ } ++ ++ set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); + } + + static s32 act_water_idle(struct MarioState *m) { +- u32 val = 0x10000; ++ u32 val = 0x10000; ++ + +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } ++ if (gCurrLevelNum == LEVEL_SA) { ++ ++ m->drownTimer = -700; ++ } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 1); + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_BREASTSTROKE, 0); +- } + +- if (m->faceAngle[0] < -0x1000) { +- val = 0x30000; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); +- return FALSE; ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ if (m->faceAngle[0] < -0x1000) { ++ val = 0x30000; ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); ++ return FALSE; + } + + static s32 act_hold_water_idle(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); +- return FALSE; ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); ++ return FALSE; + } + + static s32 act_water_action_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_BREASTSTROKE, 0); +- } +- +- common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- return FALSE; ++ ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ return FALSE; + } + + static s32 act_hold_water_action_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } +- +- common_idle_step( +- m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, +- 0); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } +- return FALSE; ++ ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step( ++ m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, ++ 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ return FALSE; + } + + static void reset_float_globals(struct MarioState *m) { +- D_80339FD0 = 0; +- D_80339FD2 = 0x800; +- D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; ++ D_80339FD0 = 0; ++ D_80339FD2 = 0x800; ++ D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; + } + + static void float_surface_gfx(struct MarioState *m) { +- if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { +- if ((D_80339FD0 += D_80339FD2) >= 0) { +- m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); +- return; +- } +- } +- +- D_80339FD2 = 0; ++ if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { ++ if ((D_80339FD0 += D_80339FD2) >= 0) { ++ m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); ++ return; ++ } ++ } ++ ++ D_80339FD2 = 0; + } + + static void common_swimming_step(struct MarioState *m, s16 swimStrength) { +- s16 floorPitch; +- UNUSED struct Object *marioObj = m->marioObj; +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, swimStrength / 10.0f); +- +- switch (perform_water_step(m)) { +- case WATER_STEP_HIT_FLOOR: +- floorPitch = -find_floor_slope(m, -0x8000); +- if (m->faceAngle[0] < floorPitch) { +- m->faceAngle[0] = floorPitch; +- } +- break; +- +- case WATER_STEP_HIT_CEILING: +- if (m->faceAngle[0] > -0x3000) { +- m->faceAngle[0] -= 0x100; +- } +- break; +- +- case WATER_STEP_HIT_WALL: +- if (m->controller->stickY == 0.0f) { +- if (m->faceAngle[0] > 0.0f) { +- m->faceAngle[0] += 0x200; +- if (m->faceAngle[0] > 0x3F00) { +- m->faceAngle[0] = 0x3F00; +- } +- } else { +- m->faceAngle[0] -= 0x200; +- if (m->faceAngle[0] < -0x3F00) { +- m->faceAngle[0] = -0x3F00; +- } +- } +- } +- break; +- } +- +- update_water_pitch(m); +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +- +- float_surface_gfx(m); +- set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); ++ s16 floorPitch; ++ UNUSED struct Object *marioObj = m->marioObj; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, swimStrength / 10.0f); ++ ++ switch (perform_water_step(m)) { ++ case WATER_STEP_HIT_FLOOR: ++ floorPitch = -find_floor_slope(m, -0x8000); ++ if (m->faceAngle[0] < floorPitch) { ++ m->faceAngle[0] = floorPitch; ++ } ++ break; ++ ++ case WATER_STEP_HIT_CEILING: ++ if (m->faceAngle[0] > -0x3000) { ++ m->faceAngle[0] -= 0x100; ++ } ++ break; ++ ++ case WATER_STEP_HIT_WALL: ++ if (m->controller->stickY == 0.0f) { ++ if (m->faceAngle[0] > 0.0f) { ++ m->faceAngle[0] += 0x200; ++ if (m->faceAngle[0] > 0x3F00) { ++ m->faceAngle[0] = 0x3F00; ++ } ++ } ++ else { ++ m->faceAngle[0] -= 0x200; ++ if (m->faceAngle[0] < -0x3F00) { ++ m->faceAngle[0] = -0x3F00; ++ } ++ } ++ } ++ break; ++ } ++ ++ update_water_pitch(m); ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ float_surface_gfx(m); ++ set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); + } + + static void play_swimming_noise(struct MarioState *m) { + s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; + +- // This must be one line to match on -O2 +- if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); ++ // (this need to be on one line to match on PAL) ++ if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); + } + + static s32 check_water_jump(struct MarioState *m) { +- s32 probe = (s32)(m->pos[1] + 1.5f); ++ ++ s32 probe = (s32)(m->pos[1] + 1.5f); + +- if (m->input & INPUT_A_PRESSED) { +- if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { +- vec3s_set(m->angleVel, 0, 0, 0); ++ if (m->input & INPUT_A_PRESSED) { ++ if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { ++ vec3s_set(m->angleVel, 0, 0, 0); + +- m->vel[1] = 62.0f; ++ m->vel[1] = 65.0f; + +- if (m->heldObj == NULL) { +- return set_mario_action(m, ACT_WATER_JUMP, 0); +- } else { +- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); +- } +- } +- } ++ if (m->heldObj == NULL) { ++ return set_mario_action(m, ACT_WATER_JUMP, 0); ++ } ++ else { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); ++ } ++ } ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_breaststroke(struct MarioState *m) { +- if (m->actionArg == 0) { +- sSwimStrength = MIN_SWIM_STRENGTH; +- } ++ if (m->actionArg == 0) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } + +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + +- if (++m->actionTimer == 14) { +- return set_mario_action(m, ACT_FLUTTER_KICK, 0); +- } + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- if (m->actionTimer < 6) { +- m->forwardVel += 0.5f; +- } ++ if (++m->actionTimer == 14) { ++ return set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } + +- if (m->actionTimer >= 9) { +- m->forwardVel += 1.5f; +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer >= 2) { +- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +- m->actionState = 1; +- } ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } + +- if (m->actionTimer == 9 && m->actionState == 1) { +- set_anim_to_frame(m, 0); +- m->actionState = 0; +- m->actionTimer = 1; +- sSwimStrength = MIN_SWIM_STRENGTH; +- } +- } ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } + +- if (m->actionTimer == 1) { +- play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, +- m->marioObj->header.gfx.cameraToObject); +- reset_float_globals(m); +- } ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } + +-#ifdef VERSION_SH +- if (m->actionTimer < 6) { +- func_sh_8024CA04(); +- } +-#endif ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } ++ } + +- set_mario_animation(m, MARIO_ANIM_SWIM_PART1); +- common_swimming_step(m, sSwimStrength); ++ if (m->actionTimer == 1) { ++ play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, ++ m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } + +- return FALSE; ++ if (m->actionTimer < 6) { ++ //func_sh_8024CA04(); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART1); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; + } + + static s32 act_swimming_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ + +- if (m->actionTimer >= 15) { +- return set_mario_action(m, ACT_WATER_ACTION_END, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } + +- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +- if (m->actionTimer == 7 && sSwimStrength < 280) { +- sSwimStrength += 10; +- } +- return set_mario_action(m, ACT_BREASTSTROKE, 1); +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer >= 7) { +- sSwimStrength = MIN_SWIM_STRENGTH; +- } ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ if (m->actionTimer == 7 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_BREASTSTROKE, 1); ++ } + +- m->actionTimer++; ++ if (m->actionTimer >= 7) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } + +- m->forwardVel -= 0.25f; +- set_mario_animation(m, MARIO_ANIM_SWIM_PART2); +- common_swimming_step(m, sSwimStrength); ++ m->actionTimer++; + +- return FALSE; ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART2); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; + } + + static s32 act_flutter_kick(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ + +- if (!(m->input & INPUT_A_DOWN)) { +- if (m->actionTimer == 0 && sSwimStrength < 280) { +- sSwimStrength += 10; +- } +- return set_mario_action(m, ACT_SWIMMING_END, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +- m->actionTimer = 1; +- sSwimStrength = MIN_SWIM_STRENGTH; ++ if (!(m->input & INPUT_A_DOWN)) { ++ if (m->actionTimer == 0 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_SWIMMING_END, 0); ++ } + +- if (m->forwardVel < 14.0f) { +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +- } ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; + +- common_swimming_step(m, sSwimStrength); +- return FALSE; ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ } ++ ++ common_swimming_step(m, sSwimStrength); ++ return FALSE; + } + + static s32 act_hold_breaststroke(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (++m->actionTimer == 17) { ++ return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } ++ ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } ++ ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } ++ ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ } ++ } ++ ++ if (m->actionTimer == 1) { ++ play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; ++} + +- if (++m->actionTimer == 17) { +- return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +- } ++static s32 act_hold_swimming_end(struct MarioState *m) { + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->actionTimer < 6) { +- m->forwardVel += 0.5f; +- } ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ } + +- if (m->actionTimer >= 9) { +- m->forwardVel += 1.5f; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- if (m->actionTimer >= 2) { +- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +- m->actionState = 1; +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer == 9 && m->actionState == 1) { +- set_anim_to_frame(m, 0); +- m->actionState = 0; +- m->actionTimer = 1; +- } +- } ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } + +- if (m->actionTimer == 1) { +- play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); +- reset_float_globals(m); +- } ++ m->actionTimer++; + +- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); +- common_swimming_step(m, 0x00A0); +- return FALSE; ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; + } + +-static s32 act_hold_swimming_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->actionTimer >= 15) { +- return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++static s32 act_hold_flutter_kick(struct MarioState *m) { + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- m->actionTimer++; ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- m->forwardVel -= 0.25f; +- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); +- common_swimming_step(m, 0x00A0); +- return FALSE; +-} ++ if (!(m->input & INPUT_A_DOWN)) { ++ return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); ++ } + +-static s32 act_hold_flutter_kick(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } +- +- if (!(m->input & INPUT_A_DOWN)) { +- return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); +- } +- +- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +- if (m->forwardVel < 14.0f) { +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- } +- common_swimming_step(m, 0x00A0); +- return FALSE; ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ } ++ common_swimming_step(m, 0x00A0); ++ return FALSE; + } + + static s32 act_water_shell_swimming(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- if (m->actionTimer++ == 240) { +- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +- m->heldObj = NULL; +- stop_shell_music(); +- set_mario_action(m, ACT_FLUTTER_KICK, 0); +- } ++ if (m->actionTimer++ == 240) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } + +- m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); + +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- common_swimming_step(m, 0x012C); ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ common_swimming_step(m, 0x012C); + +- return FALSE; ++ return FALSE; + } + + static s32 check_water_grab(struct MarioState *m) { +- //! Heave hos have the grabbable interaction type but are not normally +- // grabbable. Since water grabbing doesn't check the appropriate input flag, +- // you can use water grab to pick up heave ho. +- if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { +- struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); +- f32 dx = object->oPosX - m->pos[0]; +- f32 dz = object->oPosZ - m->pos[2]; +- s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; +- +- if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { +- m->usedObj = object; +- mario_grab_used_object(m); +- m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; +- return TRUE; +- } +- } +- +- return FALSE; ++ //! Heave hos have the grabbable interaction type but are not normally ++ // grabbable. Since water grabbing doesn't check the appropriate input flag, ++ // you can use water grab to pick up heave ho. ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { ++ struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); ++ f32 dx = object->oPosX - m->pos[0]; ++ f32 dz = object->oPosZ - m->pos[2]; ++ s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; ++ ++ if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { ++ m->usedObj = object; ++ mario_grab_used_object(m); ++ m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; ++ return TRUE; ++ } ++ } ++ ++ return FALSE; + } + + static s32 act_water_throw(struct MarioState *m) { +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); + +- set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); +- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + +- if (m->actionTimer++ == 5) { +- mario_throw_held_object(m); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif +- } ++ if (m->actionTimer++ == 5) { ++ mario_throw_held_object(m); ++ //(3, 50); ++ } + +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_water_punch(struct MarioState *m) { +- if (m->forwardVel < 7.0f) { +- m->forwardVel += 1.0f; +- } +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); +- +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +- +- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); +- +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); +- if (is_anim_at_end(m)) { +- m->actionState = check_water_grab(m) + 1; +- } +- break; +- +- case 1: +- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_ACTION_END, 0); +- } +- break; +- +- case 2: +- set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); +- if (is_anim_at_end(m)) { +- if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { +- play_shell_music(); +- set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); +- } else { +- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); +- } +- } +- break; +- } +- +- return FALSE; ++ if (m->forwardVel < 7.0f) { ++ m->forwardVel += 1.0f; ++ } ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); ++ if (is_anim_at_end(m)) { ++ m->actionState = check_water_grab(m) + 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } ++ break; ++ ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); ++ if (is_anim_at_end(m)) { ++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++ play_shell_music(); ++ set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); ++ } ++ else { ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); ++ } ++ } ++ break; ++ } ++ ++ return FALSE; + } + + static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { +- stationary_slow_down(m); +- perform_water_step(m); +- set_mario_animation(m, animation); ++ stationary_slow_down(m); ++ perform_water_step(m); ++ set_mario_animation(m, animation); + +- m->marioBodyState->headAngle[0] = 0; ++ m->marioBodyState->headAngle[0] = 0; + +- if (is_anim_at_end(m)) { +- if (arg3 > 0) { +- m->invincTimer = 30; +- } ++ if (is_anim_at_end(m)) { ++ if (arg3 > 0) { ++ m->invincTimer = 30; ++ } + +- set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); +- } ++ set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); ++ } + } + + static s32 act_backward_water_kb(struct MarioState *m) { +- common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); +- return FALSE; ++ common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; + } + + static s32 act_forward_water_kb(struct MarioState *m) { +- common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); +- return FALSE; ++ common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; + } + + static s32 act_water_shocked(struct MarioState *m) { +- play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); +- play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); +- set_camera_shake_from_hit(SHAKE_SHOCK); +- +- if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { +- m->actionTimer++; +- m->flags |= MARIO_METAL_SHOCK; +- } +- +- if (m->actionTimer >= 6) { +- m->invincTimer = 30; +- set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); +- } +- +- stationary_slow_down(m); +- perform_water_step(m); +- m->marioBodyState->headAngle[0] = 0; +- return FALSE; ++ play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); ++ play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); ++ set_camera_shake_from_hit(SHAKE_SHOCK); ++ ++ if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { ++ m->actionTimer++; ++ m->flags |= MARIO_METAL_SHOCK; ++ } ++ ++ if (m->actionTimer >= 6) { ++ m->invincTimer = 30; ++ set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); ++ } ++ ++ stationary_slow_down(m); ++ perform_water_step(m); ++ m->marioBodyState->headAngle[0] = 0; ++ return FALSE; + } + + static s32 act_drowning(struct MarioState *m) { +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); +- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- if (is_anim_at_end(m)) { +- m->actionState = 1; +- } +- break; +- +- case 1: +- set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; +- if (m->marioObj->header.gfx.animInfo.animFrame == 30) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } +- break; +- } +- +- play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); +- stationary_slow_down(m); +- perform_water_step(m); +- +- return FALSE; ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ if (is_anim_at_end(m)) { ++ m->actionState = 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ if (m->marioObj->header.gfx.animInfo.animFrame == 30) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ break; ++ } ++ ++ play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); ++ stationary_slow_down(m); ++ perform_water_step(m); ++ ++ return FALSE; + } + + static s32 act_water_death(struct MarioState *m) { +- stationary_slow_down(m); +- perform_water_step(m); ++ stationary_slow_down(m); ++ perform_water_step(m); + +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; + +- set_mario_animation(m, MARIO_ANIM_WATER_DYING); +- if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } ++ set_mario_animation(m, MARIO_ANIM_WATER_DYING); ++ if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_water_plunge(struct MarioState *m) { +- u32 stepResult; +- s32 stateFlags = m->heldObj != NULL; +- +- f32 endVSpeed; +- if (swimming_near_surface(m)) { +- endVSpeed = 0.0f; +- } else { +- endVSpeed = -5.0f; +- } +- +- if (m->flags & MARIO_METAL_CAP) { +- stateFlags |= 4; +- } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { +- stateFlags |= 2; +- } +- +- m->actionTimer++; +- +- stationary_slow_down(m); +- +- stepResult = perform_water_step(m); +- +- if (m->actionState == 0) { +- play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); +- if (m->peakHeight - m->pos[1] > 1150.0f) { +- play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); +- } +- +- m->particleFlags |= PARTICLE_WATER_SPLASH; +- m->actionState = 1; +-#ifdef VERSION_SH +- if (m->prevAction & ACT_FLAG_AIR) { +- queue_rumble_data(5, 80); +- } +-#endif +- } +- +- if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { +- switch (stateFlags) { +- case 0: +- set_mario_action(m, ACT_WATER_ACTION_END, 0); +- break; +- case 1: +- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +- break; +- case 2: +- set_mario_action(m, ACT_FLUTTER_KICK, 0); +- break; +- case 3: +- set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +- break; +- case 4: +- set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- break; +- case 5: +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- break; +- } +- D_80339FD2 = 0; +- } +- +- switch (stateFlags) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); +- break; +- case 1: +- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); +- break; +- case 2: +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +- break; +- case 3: +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- break; +- case 4: +- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +- break; +- case 5: +- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +- break; +- } +- +- m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; +- return FALSE; ++ u32 stepResult; ++ s32 stateFlags = m->heldObj != NULL; ++ ++ f32 endVSpeed; ++ if (swimming_near_surface(m)) { ++ endVSpeed = 0.0f; ++ } ++ else { ++ endVSpeed = -5.0f; ++ } ++ ++ ++ stateFlags |= 4; ++ ++ m->actionTimer++; ++ ++ stationary_slow_down(m); ++ ++ stepResult = perform_water_step(m); ++ ++ if (m->actionState == 0) { ++ play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); ++ if (m->peakHeight - m->pos[1] > 1150.0f) { ++ play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ m->particleFlags |= PARTICLE_WATER_SPLASH; ++ m->actionState = 1; ++ if (m->prevAction & ACT_FLAG_AIR) { ++ //(5, 80); ++ } ++ } ++ ++ if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { ++ switch (stateFlags) { ++ case 0: ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ break; ++ case 1: ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ break; ++ case 2: ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ break; ++ case 3: ++ set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ break; ++ case 4: ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ m->vel[1] = -32.0f; ++ break; ++ case 5: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ break; ++ } ++ D_80339FD2 = 0; ++ } ++ ++ switch (stateFlags) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ break; ++ case 3: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ break; ++ case 4: ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ break; ++ case 5: ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ break; ++ } ++ ++ m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; ++ return FALSE; + } + + static s32 act_caught_in_whirlpool(struct MarioState *m) { +- f32 sinAngleChange; +- f32 cosAngleChange; +- f32 newDistance; +- s16 angleChange; +- +- struct Object *marioObj = m->marioObj; +- struct Object *whirlpool = m->usedObj; +- +- f32 dx = m->pos[0] - whirlpool->oPosX; +- f32 dz = m->pos[2] - whirlpool->oPosZ; +- f32 distance = sqrtf(dx * dx + dz * dz); +- +- if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { +- marioObj->oMarioWhirlpoolPosY = 0.0f; +- if (distance < 16.1f && m->actionTimer++ == 16) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } +- } +- +- if (distance <= 28.0f) { +- newDistance = 16.0f; +- angleChange = 0x1800; +- } else if (distance < 256.0f) { +- newDistance = distance - (12.0f - distance / 32.0f); +- angleChange = (s16)(0x1C00 - distance * 20.0f); +- } else { +- newDistance = distance - 4.0f; +- angleChange = 0x800; +- } +- +- m->vel[1] = -640.0f / (newDistance + 16.0f); +- +- sinAngleChange = sins(angleChange); +- cosAngleChange = coss(angleChange); +- +- if (distance < 1.0f) { +- dx = newDistance * sins(m->faceAngle[1]); +- dz = newDistance * coss(m->faceAngle[1]); +- } else { +- dx *= newDistance / distance; +- dz *= newDistance / distance; +- } +- +- m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; +- m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; +- m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; +- +- m->faceAngle[1] = atan2s(dz, dx) + 0x8000; +- +- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif +- +- return FALSE; ++ f32 sinAngleChange; ++ f32 cosAngleChange; ++ f32 newDistance; ++ s16 angleChange; ++ ++ struct Object *marioObj = m->marioObj; ++ struct Object *whirlpool = m->usedObj; ++ ++ f32 dx = m->pos[0] - whirlpool->oPosX; ++ f32 dz = m->pos[2] - whirlpool->oPosZ; ++ f32 distance = sqrtf(dx * dx + dz * dz); ++ ++ if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { ++ marioObj->oMarioWhirlpoolPosY = 0.0f; ++ if (distance < 16.1f && m->actionTimer++ == 16) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ } ++ ++ if (distance <= 28.0f) { ++ newDistance = 16.0f; ++ angleChange = 0x1800; ++ } ++ else if (distance < 256.0f) { ++ newDistance = distance - (12.0f - distance / 32.0f); ++ angleChange = (s16)(0x1C00 - distance * 20.0f); ++ } ++ else { ++ newDistance = distance - 4.0f; ++ angleChange = 0x800; ++ } ++ ++ m->vel[1] = -640.0f / (newDistance + 16.0f); ++ ++ sinAngleChange = sins(angleChange); ++ cosAngleChange = coss(angleChange); ++ ++ if (distance < 1.0f) { ++ dx = newDistance * sins(m->faceAngle[1]); ++ dz = newDistance * coss(m->faceAngle[1]); ++ } ++ else { ++ dx *= newDistance / distance; ++ dz *= newDistance / distance; ++ } ++ ++ m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; ++ m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; ++ m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; ++ ++ m->faceAngle[1] = atan2s(dz, dx) + 0x8000; ++ ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ ++ //umble_timers(); ++ return FALSE; + } + + static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { +- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { +- m->particleFlags |= PARTICLE_MIST_CIRCLE; +- } +- +- play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, +- MARIO_ACTION_SOUND_PLAYED); ++ if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ } ++ if (m->flags & MARIO_METAL_CAP) { ++ ++ play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, ++ MARIO_ACTION_SOUND_PLAYED); ++ } ++ else { ++ play_sound_if_no_flag(m, landing ? SOUND_GENERAL_QUIET_BUBBLE : SOUND_ACTION_SWIM, ++ MARIO_ACTION_SOUND_PLAYED); ++ } + } + + static void play_metal_water_walking_sound(struct MarioState *m) { +- if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { +- play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); +- m->particleFlags |= PARTICLE_DUST; +- } ++ if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { ++ if (m->flags & MARIO_METAL_CAP) { ++ play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); ++ } ++ else { ++ play_sound(SOUND_GENERAL_QUIET_BUBBLE2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ m->particleFlags |= PARTICLE_DUST; ++ } + } + + static void update_metal_water_walking_speed(struct MarioState *m) { +- f32 val = m->intendedMag / 1.5f; +- +- if (m->forwardVel <= 0.0f) { +- m->forwardVel += 1.1f; +- } else if (m->forwardVel <= val) { +- m->forwardVel += 1.1f - m->forwardVel / 43.0f; +- } else if (m->floor->normal.y >= 0.95f) { +- m->forwardVel -= 1.0f; +- } +- +- if (m->forwardVel > 32.0f) { +- m->forwardVel = 32.0f; +- } +- +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +- +- m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- +- m->vel[0] = m->slideVelX; +- m->vel[1] = 0.0f; +- m->vel[2] = m->slideVelZ; ++ f32 val = m->intendedMag / 1.0f; ++ ++ if (m->forwardVel <= 0.0f) { ++ m->forwardVel += 1.1f; ++ } ++ else if (m->forwardVel <= val) { ++ m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++ } ++ else if (m->floor->normal.y >= 0.95f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel > 42.0f) { ++ m->forwardVel = 42.0f; ++ } ++ ++ m->faceAngle[1] = ++ m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ ++ m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ ++ m->vel[0] = m->slideVelX; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ; + } + + static s32 update_metal_water_jump_speed(struct MarioState *m) { +- UNUSED f32 nextY = m->pos[1] + m->vel[1]; +- f32 waterSurface = m->waterLevel - 100; +- +- if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { +- return TRUE; +- } +- +- if (m->input & INPUT_NONZERO_ANALOG) { +- s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- m->forwardVel += 0.8f * coss(intendedDYaw); +- m->faceAngle[1] += 0x200 * sins(intendedDYaw); +- } else { +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); +- } +- +- if (m->forwardVel > 16.0f) { +- m->forwardVel -= 1.0f; +- } +- +- if (m->forwardVel < 0.0f) { +- m->forwardVel += 2.0f; +- } +- +- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- return FALSE; ++ UNUSED f32 nextY = m->pos[1] + m->vel[1]; ++ f32 waterSurface = m->waterLevel - 100; ++ ++ if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { ++ return TRUE; ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ m->forwardVel += 0.8f * coss(intendedDYaw); ++ m->faceAngle[1] += 0x200 * sins(intendedDYaw); ++ } ++ else { ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); ++ } ++ ++ if (m->forwardVel > 18.0f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel += 2.0f; ++ } ++ ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ return FALSE; + } + + static s32 act_metal_water_standing(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +- } +- +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } +- +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); +- break; +- case 1: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); +- break; +- case 2: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); +- break; +- } +- +- if (is_anim_at_end(m) && ++m->actionState == 3) { +- m->actionState = 0; +- } +- +- stop_and_set_height_to_floor(m); +- if (m->pos[1] >= m->waterLevel - 150) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +- } +- +- return FALSE; ++ ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); ++ break; ++ } ++ ++ if (is_anim_at_end(m) && ++m->actionState == 3) { ++ m->actionState = 0; ++ } ++ ++ stop_and_set_height_to_floor(m); ++ if (m->pos[1] >= m->waterLevel - 150) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } ++ ++ return FALSE; + } + + static s32 act_hold_metal_water_standing(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +- return FALSE; ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ return FALSE; + } + + static s32 act_metal_water_walking(struct MarioState *m) { +- s32 val04; ++ s32 val04; ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_FIRST_PERSON) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_FIRST_PERSON) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } + +- if (m->input & INPUT_UNKNOWN_5) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { +- val04 = 0x1000; +- } ++ if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } + +- set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); +- play_metal_water_walking_sound(m); +- update_metal_water_walking_speed(m); ++ set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); + +- switch (perform_ground_step(m)) { +- case GROUND_STEP_LEFT_GROUND: +- set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- break; ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 1); ++ m->vel[1] = -60.0f; ++ break; + +- case GROUND_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_walking(struct MarioState *m) { +- s32 val04; ++ s32 val04; ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } + +- if (m->input & INPUT_UNKNOWN_5) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } + +- m->intendedMag *= 0.4f; ++ m->intendedMag *= 0.4f; + +- if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { +- val04 = 0x1000; +- } ++ if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } + +- set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); +- play_metal_water_walking_sound(m); +- update_metal_water_walking_speed(m); ++ set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); + +- switch (perform_ground_step(m)) { +- case GROUND_STEP_LEFT_GROUND: +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); +- break; ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); ++ break; + +- case GROUND_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_jump(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (update_metal_water_jump_speed(m)) { +- return set_mario_action(m, ACT_WATER_JUMP, 1); +- } +- +- play_metal_water_jumping_sound(m, FALSE); +- set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); +- +- switch (perform_air_step(m, 0)) { +- case AIR_STEP_LANDED: +- set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); +- break; +- +- case AIR_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } +- +- return FALSE; ++ m->actionTimer++; ++ ++ if (m->flags & MARIO_METAL_CAP) ++ { ++ if (m->vel[1] < 3.0f) ++ { ++ ++ m->vel[1] -= 10; ++ } ++ } ++ if (m->vel[1] < 1.0f) ++ { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; ++ //set_camera_mode(m->area->camera, CAMERA_MODE_WATER_SURFACE, 1); ++ set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ ++ if (m->input & INPUT_A_PRESSED && m->actionTimer >= 1) { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ //set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ m->actionTimer = 0; ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ ++ ++ } ++ ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_WATER_JUMP, 1); ++ } ++ ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; + } + + static s32 act_hold_metal_water_jump(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (update_metal_water_jump_speed(m)) { +- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); +- } ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); ++ } + +- play_metal_water_jumping_sound(m, FALSE); +- set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + +- switch (perform_air_step(m, 0)) { +- case AIR_STEP_LANDED: +- set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); +- break; ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); ++ break; + +- case AIR_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_falling(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } + +- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); +- stationary_slow_down(m); ++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); ++ stationary_slow_down(m); + +- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +- set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); +- } ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_falling(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } + +- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +- stationary_slow_down(m); ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ stationary_slow_down(m); + +- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); +- } ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_jump_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_jump_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); + +- return FALSE; ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; + } + + static s32 act_metal_water_fall_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_fall_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 check_common_submerged_cancels(struct MarioState *m) { +- if (m->pos[1] > m->waterLevel - 80) { +- if (m->waterLevel - 80 > m->floorHeight) { +- m->pos[1] = m->waterLevel - 80; +- } else { +- //! If you press B to throw the shell, there is a ~5 frame window +- // where your held object is the shell, but you are not in the +- // water shell swimming action. This allows you to hold the water +- // shell on land (used for cloning in DDD). +- if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { +- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +- m->heldObj = NULL; +- stop_shell_music(); +- } +- +- return transition_submerged_to_walking(m); +- } +- } +- +- if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { +- set_mario_action(m, ACT_DROWNING, 0); +- } +- +- return FALSE; ++ if (m->pos[1] > m->waterLevel - 80) { ++ if (m->waterLevel - 80 > m->floorHeight) { ++ m->pos[1] = m->waterLevel - 80; ++ } ++ else { ++ //! If you press B to throw the shell, there is a ~5 frame window ++ // where your held object is the shell, but you are not in the ++ // water shell swimming action. This allows you to hold the water ++ // shell on land (used for cloning in DDD). ++ if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ } ++ ++ return transition_submerged_to_walking(m); ++ } ++ } ++ ++ if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { ++ set_mario_action(m, ACT_DROWNING, 0); ++ } ++ ++ return FALSE; + } + + s32 mario_execute_submerged_action(struct MarioState *m) { +- s32 cancel; +- +- if (check_common_submerged_cancels(m)) { +- return TRUE; +- } +- +- m->quicksandDepth = 0.0f; +- +- m->marioBodyState->headAngle[1] = 0; +- m->marioBodyState->headAngle[2] = 0; +- +- /* clang-format off */ +- switch (m->action) { +- case ACT_WATER_IDLE: cancel = act_water_idle(m); break; +- case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; +- case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; +- case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; +- case ACT_DROWNING: cancel = act_drowning(m); break; +- case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; +- case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; +- case ACT_WATER_DEATH: cancel = act_water_death(m); break; +- case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; +- case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; +- case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; +- case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; +- case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; +- case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; +- case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; +- case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; +- case ACT_WATER_THROW: cancel = act_water_throw(m); break; +- case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; +- case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; +- case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; +- case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; +- case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; +- case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; +- case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; +- case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; +- case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; +- case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; +- case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; +- case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; +- case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; +- case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; +- case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; +- } +- /* clang-format on */ +- +- return cancel; ++ s32 cancel; ++ ++ if (check_common_submerged_cancels(m)) { ++ return TRUE; ++ } ++ ++ m->quicksandDepth = 0.0f; ++ ++ m->marioBodyState->headAngle[1] = 0; ++ m->marioBodyState->headAngle[2] = 0; ++ ++ /* clang-format off */ ++ switch (m->action) { ++ case ACT_WATER_IDLE: cancel = act_water_idle(m); break; ++ case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; ++ case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; ++ case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; ++ case ACT_DROWNING: cancel = act_drowning(m); break; ++ case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; ++ case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; ++ case ACT_WATER_DEATH: cancel = act_water_death(m); break; ++ case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; ++ case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; ++ case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; ++ case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; ++ case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; ++ case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; ++ case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; ++ case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; ++ case ACT_WATER_THROW: cancel = act_water_throw(m); break; ++ case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; ++ case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; ++ case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; ++ case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; ++ case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; ++ case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; ++ case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; ++ case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; ++ case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; ++ case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; ++ case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; ++ case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; ++ case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; ++ } ++ /* clang-format on */ ++ ++ return cancel; + } +diff --git a/src/game/mario_actions_submerged.c.orig b/src/game/mario_actions_submerged.c.orig +new file mode 100644 +index 0000000..5907066 +--- /dev/null ++++ b/src/game/mario_actions_submerged.c.orig +@@ -0,0 +1,1573 @@ ++#include ++ ++#include "sm64.h" ++#include "level_update.h" ++#include "memory.h" ++#include "engine/math_util.h" ++#include "area.h" ++#include "save_file.h" ++#include "sound_init.h" ++#include "engine/surface_collision.h" ++#include "interaction.h" ++#include "mario.h" ++#include "mario_step.h" ++#include "camera.h" ++#include "audio/external.h" ++#include "behavior_data.h" ++#include "level_table.h" ++#include "thread6.h" ++ ++#define MIN_SWIM_STRENGTH 160 ++#define MIN_SWIM_SPEED 16.0f ++ ++static s16 sWasAtSurface = FALSE; ++static s16 sSwimStrength = MIN_SWIM_STRENGTH; ++static s16 sWaterCurrentSpeeds[] = { 28, 12, 8, 4 }; ++ ++static s16 D_80339FD0; ++static s16 D_80339FD2; ++static f32 D_80339FD4; ++ ++static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { ++ s16 atSurface = m->pos[1] >= m->waterLevel - 130; ++ ++ if (atSurface) { ++ m->particleFlags |= particleFlag; ++ if (atSurface ^ sWasAtSurface) { ++ play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); ++ } ++ } ++ ++ sWasAtSurface = atSurface; ++} ++ ++static s32 swimming_near_surface(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return FALSE; ++ } ++ ++ return (m->waterLevel - 80) - m->pos[1] < 400.0f; ++} ++ ++static f32 get_buoyancy(struct MarioState *m) { ++ f32 buoyancy = 0.0f; ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ if (m->action & ACT_FLAG_INVULNERABLE) { ++ buoyancy = -2.0f; ++ } else { ++ buoyancy = -18.0f; ++ } ++ } else if (swimming_near_surface(m)) { ++ buoyancy = 1.25f; ++ } else if (!(m->action & ACT_FLAG_MOVING)) { ++ buoyancy = -2.0f; ++ } ++ ++ return buoyancy; ++} ++ ++static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { ++ struct Surface *wall; ++ struct Surface *ceil; ++ struct Surface *floor; ++ f32 ceilHeight; ++ f32 floorHeight; ++ ++ wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); ++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++ ++ if (floor == NULL) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ if (nextPos[1] >= floorHeight) { ++ if (ceilHeight - nextPos[1] >= 160.0f) { ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ ++ if (wall != NULL) { ++ return WATER_STEP_HIT_WALL; ++ } else { ++ return WATER_STEP_NONE; ++ } ++ } ++ ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ //! Water ceiling downwarp ++ vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_CEILING; ++ } else { ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_FLOOR; ++ } ++} ++ ++static void apply_water_current(struct MarioState *m, Vec3f step) { ++ s32 i; ++ f32 whirlpoolRadius = 2000.0f; ++ ++ if (m->floor->type == SURFACE_FLOWING_WATER) { ++ s16 currentAngle = m->floor->force << 8; ++ f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; ++ ++ step[0] += currentSpeed * sins(currentAngle); ++ step[2] += currentSpeed * coss(currentAngle); ++ } ++ ++ for (i = 0; i < 2; i++) { ++ struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; ++ if (whirlpool != NULL) { ++ f32 strength = 0.0f; ++ ++ f32 dx = whirlpool->pos[0] - m->pos[0]; ++ f32 dy = whirlpool->pos[1] - m->pos[1]; ++ f32 dz = whirlpool->pos[2] - m->pos[2]; ++ ++ f32 lateralDist = sqrtf(dx * dx + dz * dz); ++ f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); ++ ++ s16 pitchToWhirlpool = atan2s(lateralDist, dy); ++ s16 yawToWhirlpool = atan2s(dz, dx); ++ ++ yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); ++ ++ if (whirlpool->strength >= 0) { ++ if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { ++ whirlpoolRadius = 4000.0f; ++ } ++ ++ if (distance >= 26.0f && distance < whirlpoolRadius) { ++ strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); ++ } ++ } else if (distance < 2000.0f) { ++ strength = whirlpool->strength * (1.0f - distance / 2000.0f); ++ } ++ ++ step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); ++ step[1] += strength * sins(pitchToWhirlpool); ++ step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); ++ } ++ } ++} ++ ++static u32 perform_water_step(struct MarioState *m) { ++ UNUSED u32 unused; ++ u32 stepResult; ++ Vec3f nextPos; ++ Vec3f step; ++ struct Object *marioObj = m->marioObj; ++ ++ vec3f_copy(step, m->vel); ++ ++ if (m->action & ACT_FLAG_SWIMMING) { ++ apply_water_current(m, step); ++ } ++ ++ nextPos[0] = m->pos[0] + step[0]; ++ nextPos[1] = m->pos[1] + step[1]; ++ nextPos[2] = m->pos[2] + step[2]; ++ ++ if (nextPos[1] > m->waterLevel - 80) { ++ nextPos[1] = m->waterLevel - 80; ++ m->vel[1] = 0.0f; ++ } ++ ++ stepResult = perform_water_full_step(m, nextPos); ++ ++ vec3f_copy(marioObj->header.gfx.pos, m->pos); ++ vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); ++ ++ return stepResult; ++} ++ ++static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { ++ struct Object *marioObj = m->marioObj; ++ ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.pos[1] += ++ 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); ++ } ++ ++ if (marioObj->header.gfx.angle[0] < 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; ++ } ++ ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; ++ } ++} ++ ++static void stationary_slow_down(struct MarioState *m) { ++ f32 buoyancy = get_buoyancy(m); ++ ++ m->angleVel[0] = 0; ++ m->angleVel[1] = 0; ++ ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); ++ m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); ++ ++ m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); ++ m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); ++ ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++} ++ ++static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { ++ f32 buoyancy = get_buoyancy(m); ++ f32 maxSpeed = 28.0f; ++ ++ if (m->action & ACT_FLAG_STATIONARY) { ++ m->forwardVel -= 2.0f; ++ } ++ ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel = 0.0f; ++ } ++ ++ if (m->forwardVel > maxSpeed) { ++ m->forwardVel = maxSpeed; ++ } ++ ++ if (m->forwardVel > decelThreshold) { ++ m->forwardVel -= 0.5f; ++ } ++ ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++} ++ ++static void update_swimming_yaw(struct MarioState *m) { ++ s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); ++ ++ if (targetYawVel > 0) { ++ if (m->angleVel[1] < 0) { ++ m->angleVel[1] += 0x40; ++ if (m->angleVel[1] > 0x10) { ++ m->angleVel[1] = 0x10; ++ } ++ } else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); ++ } ++ } else if (targetYawVel < 0) { ++ if (m->angleVel[1] > 0) { ++ m->angleVel[1] -= 0x40; ++ if (m->angleVel[1] < -0x10) { ++ m->angleVel[1] = -0x10; ++ } ++ } else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); ++ } ++ } else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); ++ } ++ ++ m->faceAngle[1] += m->angleVel[1]; ++ m->faceAngle[2] = -m->angleVel[1] * 8; ++} ++ ++static void update_swimming_pitch(struct MarioState *m) { ++ s16 targetPitch = -(s16)(252.0f * m->controller->stickY); ++ ++ s16 pitchVel; ++ if (m->faceAngle[0] < 0) { ++ pitchVel = 0x100; ++ } else { ++ pitchVel = 0x200; ++ } ++ ++ if (m->faceAngle[0] < targetPitch) { ++ if ((m->faceAngle[0] += pitchVel) > targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } else if (m->faceAngle[0] > targetPitch) { ++ if ((m->faceAngle[0] -= pitchVel) < targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } ++} ++ ++static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { ++ s16 *val = &m->marioBodyState->headAngle[0]; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ if (m->faceAngle[0] > 0) { ++ *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); ++ } else { ++ *val = approach_s32(*val, 0, 0x200, 0x200); ++ } ++ ++ if (arg == 0) { ++ set_mario_animation(m, animation); ++ } else { ++ set_mario_anim_with_accel(m, animation, arg); ++ } ++ ++ set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); ++} ++ ++static s32 act_water_idle(struct MarioState *m) { ++ u32 val = 0x10000; ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ if (m->faceAngle[0] < -0x1000) { ++ val = 0x30000; ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); ++ return FALSE; ++} ++ ++static s32 act_hold_water_idle(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ } ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); ++ return FALSE; ++} ++ ++static s32 act_water_action_end(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ return FALSE; ++} ++ ++static s32 act_hold_water_action_end(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ } ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step( ++ m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, ++ 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ return FALSE; ++} ++ ++static void reset_float_globals(struct MarioState *m) { ++ D_80339FD0 = 0; ++ D_80339FD2 = 0x800; ++ D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; ++} ++ ++static void float_surface_gfx(struct MarioState *m) { ++ if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { ++ if ((D_80339FD0 += D_80339FD2) >= 0) { ++ m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); ++ return; ++ } ++ } ++ ++ D_80339FD2 = 0; ++} ++ ++static void common_swimming_step(struct MarioState *m, s16 swimStrength) { ++ s16 floorPitch; ++ UNUSED struct Object *marioObj = m->marioObj; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, swimStrength / 10.0f); ++ ++ switch (perform_water_step(m)) { ++ case WATER_STEP_HIT_FLOOR: ++ floorPitch = -find_floor_slope(m, -0x8000); ++ if (m->faceAngle[0] < floorPitch) { ++ m->faceAngle[0] = floorPitch; ++ } ++ break; ++ ++ case WATER_STEP_HIT_CEILING: ++ if (m->faceAngle[0] > -0x3000) { ++ m->faceAngle[0] -= 0x100; ++ } ++ break; ++ ++ case WATER_STEP_HIT_WALL: ++ if (m->controller->stickY == 0.0f) { ++ if (m->faceAngle[0] > 0.0f) { ++ m->faceAngle[0] += 0x200; ++ if (m->faceAngle[0] > 0x3F00) { ++ m->faceAngle[0] = 0x3F00; ++ } ++ } else { ++ m->faceAngle[0] -= 0x200; ++ if (m->faceAngle[0] < -0x3F00) { ++ m->faceAngle[0] = -0x3F00; ++ } ++ } ++ } ++ break; ++ } ++ ++ update_water_pitch(m); ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ float_surface_gfx(m); ++ set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); ++} ++ ++static void play_swimming_noise(struct MarioState *m) { ++ s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; ++ ++ // This must be one line to match on -O2 ++ if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); ++} ++ ++static s32 check_water_jump(struct MarioState *m) { ++ s32 probe = (s32)(m->pos[1] + 1.5f); ++ ++ if (m->input & INPUT_A_PRESSED) { ++ if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { ++ vec3s_set(m->angleVel, 0, 0, 0); ++ ++ m->vel[1] = 62.0f; ++ ++ if (m->heldObj == NULL) { ++ return set_mario_action(m, ACT_WATER_JUMP, 0); ++ } else { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); ++ } ++ } ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_breaststroke(struct MarioState *m) { ++ if (m->actionArg == 0) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (++m->actionTimer == 14) { ++ return set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } ++ ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } ++ ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } ++ ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } ++ } ++ ++ if (m->actionTimer == 1) { ++ play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, ++ m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } ++ ++#ifdef VERSION_SH ++ if (m->actionTimer < 6) { ++ func_sh_8024CA04(); ++ } ++#endif ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART1); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; ++} ++ ++static s32 act_swimming_end(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ if (m->actionTimer == 7 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_BREASTSTROKE, 1); ++ } ++ ++ if (m->actionTimer >= 7) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } ++ ++ m->actionTimer++; ++ ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART2); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; ++} ++ ++static s32 act_flutter_kick(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (!(m->input & INPUT_A_DOWN)) { ++ if (m->actionTimer == 0 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_SWIMMING_END, 0); ++ } ++ ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ } ++ ++ common_swimming_step(m, sSwimStrength); ++ return FALSE; ++} ++ ++static s32 act_hold_breaststroke(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ } ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (++m->actionTimer == 17) { ++ return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } ++ ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } ++ ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } ++ ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ } ++ } ++ ++ if (m->actionTimer == 1) { ++ play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; ++} ++ ++static s32 act_hold_swimming_end(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ } ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ m->actionTimer++; ++ ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; ++} ++ ++static s32 act_hold_flutter_kick(struct MarioState *m) { ++ if (m->flags & MARIO_METAL_CAP) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ } ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (!(m->input & INPUT_A_DOWN)) { ++ return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); ++ } ++ ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ } ++ common_swimming_step(m, 0x00A0); ++ return FALSE; ++} ++ ++static s32 act_water_shell_swimming(struct MarioState *m) { ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (m->actionTimer++ == 240) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } ++ ++ m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); ++ ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ common_swimming_step(m, 0x012C); ++ ++ return FALSE; ++} ++ ++static s32 check_water_grab(struct MarioState *m) { ++ //! Heave hos have the grabbable interaction type but are not normally ++ // grabbable. Since water grabbing doesn't check the appropriate input flag, ++ // you can use water grab to pick up heave ho. ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { ++ struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); ++ f32 dx = object->oPosX - m->pos[0]; ++ f32 dz = object->oPosZ - m->pos[2]; ++ s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; ++ ++ if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { ++ m->usedObj = object; ++ mario_grab_used_object(m); ++ m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; ++ return TRUE; ++ } ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_water_throw(struct MarioState *m) { ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ if (m->actionTimer++ == 5) { ++ mario_throw_held_object(m); ++#ifdef VERSION_SH ++ //(3, 50); ++#endif ++ } ++ ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_water_punch(struct MarioState *m) { ++ if (m->forwardVel < 7.0f) { ++ m->forwardVel += 1.0f; ++ } ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); ++ if (is_anim_at_end(m)) { ++ m->actionState = check_water_grab(m) + 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } ++ break; ++ ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); ++ if (is_anim_at_end(m)) { ++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++ play_shell_music(); ++ set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); ++ } else { ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); ++ } ++ } ++ break; ++ } ++ ++ return FALSE; ++} ++ ++static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { ++ stationary_slow_down(m); ++ perform_water_step(m); ++ set_mario_animation(m, animation); ++ ++ m->marioBodyState->headAngle[0] = 0; ++ ++ if (is_anim_at_end(m)) { ++ if (arg3 > 0) { ++ m->invincTimer = 30; ++ } ++ ++ set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); ++ } ++} ++ ++static s32 act_backward_water_kb(struct MarioState *m) { ++ common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; ++} ++ ++static s32 act_forward_water_kb(struct MarioState *m) { ++ common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; ++} ++ ++static s32 act_water_shocked(struct MarioState *m) { ++ play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); ++ play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); ++ set_camera_shake_from_hit(SHAKE_SHOCK); ++ ++ if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { ++ m->actionTimer++; ++ m->flags |= MARIO_METAL_SHOCK; ++ } ++ ++ if (m->actionTimer >= 6) { ++ m->invincTimer = 30; ++ set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); ++ } ++ ++ stationary_slow_down(m); ++ perform_water_step(m); ++ m->marioBodyState->headAngle[0] = 0; ++ return FALSE; ++} ++ ++static s32 act_drowning(struct MarioState *m) { ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ if (is_anim_at_end(m)) { ++ m->actionState = 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ if (m->marioObj->header.gfx.animInfo.animFrame == 30) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ break; ++ } ++ ++ play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); ++ stationary_slow_down(m); ++ perform_water_step(m); ++ ++ return FALSE; ++} ++ ++static s32 act_water_death(struct MarioState *m) { ++ stationary_slow_down(m); ++ perform_water_step(m); ++ ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ ++ set_mario_animation(m, MARIO_ANIM_WATER_DYING); ++ if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_water_plunge(struct MarioState *m) { ++ u32 stepResult; ++ s32 stateFlags = m->heldObj != NULL; ++ ++ f32 endVSpeed; ++ if (swimming_near_surface(m)) { ++ endVSpeed = 0.0f; ++ } else { ++ endVSpeed = -5.0f; ++ } ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ stateFlags |= 4; ++ } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { ++ stateFlags |= 2; ++ } ++ ++ m->actionTimer++; ++ ++ stationary_slow_down(m); ++ ++ stepResult = perform_water_step(m); ++ ++ if (m->actionState == 0) { ++ play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); ++ if (m->peakHeight - m->pos[1] > 1150.0f) { ++ play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ m->particleFlags |= PARTICLE_WATER_SPLASH; ++ m->actionState = 1; ++#ifdef VERSION_SH ++ if (m->prevAction & ACT_FLAG_AIR) { ++ //(5, 80); ++ } ++#endif ++ } ++ ++ if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { ++ switch (stateFlags) { ++ case 0: ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ break; ++ case 1: ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ break; ++ case 2: ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ break; ++ case 3: ++ set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ break; ++ case 4: ++ set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ break; ++ case 5: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ break; ++ } ++ D_80339FD2 = 0; ++ } ++ ++ switch (stateFlags) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ break; ++ case 3: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ break; ++ case 4: ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ break; ++ case 5: ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ break; ++ } ++ ++ m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; ++ return FALSE; ++} ++ ++static s32 act_caught_in_whirlpool(struct MarioState *m) { ++ f32 sinAngleChange; ++ f32 cosAngleChange; ++ f32 newDistance; ++ s16 angleChange; ++ ++ struct Object *marioObj = m->marioObj; ++ struct Object *whirlpool = m->usedObj; ++ ++ f32 dx = m->pos[0] - whirlpool->oPosX; ++ f32 dz = m->pos[2] - whirlpool->oPosZ; ++ f32 distance = sqrtf(dx * dx + dz * dz); ++ ++ if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { ++ marioObj->oMarioWhirlpoolPosY = 0.0f; ++ if (distance < 16.1f && m->actionTimer++ == 16) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ } ++ ++ if (distance <= 28.0f) { ++ newDistance = 16.0f; ++ angleChange = 0x1800; ++ } else if (distance < 256.0f) { ++ newDistance = distance - (12.0f - distance / 32.0f); ++ angleChange = (s16)(0x1C00 - distance * 20.0f); ++ } else { ++ newDistance = distance - 4.0f; ++ angleChange = 0x800; ++ } ++ ++ m->vel[1] = -640.0f / (newDistance + 16.0f); ++ ++ sinAngleChange = sins(angleChange); ++ cosAngleChange = coss(angleChange); ++ ++ if (distance < 1.0f) { ++ dx = newDistance * sins(m->faceAngle[1]); ++ dz = newDistance * coss(m->faceAngle[1]); ++ } else { ++ dx *= newDistance / distance; ++ dz *= newDistance / distance; ++ } ++ ++ m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; ++ m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; ++ m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; ++ ++ m->faceAngle[1] = atan2s(dz, dx) + 0x8000; ++ ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++#ifdef VERSION_SH ++ reset_rumble_timers(); ++#endif ++ ++ return FALSE; ++} ++ ++static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { ++ if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ } ++ ++ play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, ++ MARIO_ACTION_SOUND_PLAYED); ++} ++ ++static void play_metal_water_walking_sound(struct MarioState *m) { ++ if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { ++ play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); ++ m->particleFlags |= PARTICLE_DUST; ++ } ++} ++ ++static void update_metal_water_walking_speed(struct MarioState *m) { ++ f32 val = m->intendedMag / 1.5f; ++ ++ if (m->forwardVel <= 0.0f) { ++ m->forwardVel += 1.1f; ++ } else if (m->forwardVel <= val) { ++ m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++ } else if (m->floor->normal.y >= 0.95f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel > 32.0f) { ++ m->forwardVel = 32.0f; ++ } ++ ++ m->faceAngle[1] = ++ m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ ++ m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ ++ m->vel[0] = m->slideVelX; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ; ++} ++ ++static s32 update_metal_water_jump_speed(struct MarioState *m) { ++ UNUSED f32 nextY = m->pos[1] + m->vel[1]; ++ f32 waterSurface = m->waterLevel - 100; ++ ++ if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { ++ return TRUE; ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ m->forwardVel += 0.8f * coss(intendedDYaw); ++ m->faceAngle[1] += 0x200 * sins(intendedDYaw); ++ } else { ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); ++ } ++ ++ if (m->forwardVel > 16.0f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel += 2.0f; ++ } ++ ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ return FALSE; ++} ++ ++static s32 act_metal_water_standing(struct MarioState *m) { ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); ++ break; ++ } ++ ++ if (is_anim_at_end(m) && ++m->actionState == 3) { ++ m->actionState = 0; ++ } ++ ++ stop_and_set_height_to_floor(m); ++ if (m->pos[1] >= m->waterLevel - 150) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_standing(struct MarioState *m) { ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ return FALSE; ++} ++ ++static s32 act_metal_water_walking(struct MarioState *m) { ++ s32 val04; ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_FIRST_PERSON) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); ++ ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ break; ++ ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_walking(struct MarioState *m) { ++ s32 val04; ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } ++ ++ m->intendedMag *= 0.4f; ++ ++ if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); ++ ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); ++ break; ++ ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_metal_water_jump(struct MarioState *m) { ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_WATER_JUMP, 1); ++ } ++ ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_jump(struct MarioState *m) { ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); ++ } ++ ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_metal_water_falling(struct MarioState *m) { ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } ++ ++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); ++ stationary_slow_down(m); ++ ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_falling(struct MarioState *m) { ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ stationary_slow_down(m); ++ ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_metal_water_jump_land(struct MarioState *m) { ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); ++ ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_jump_land(struct MarioState *m) { ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); ++ ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_metal_water_fall_land(struct MarioState *m) { ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); ++ ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 act_hold_metal_water_fall_land(struct MarioState *m) { ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } ++ ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); ++ ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; ++} ++ ++static s32 check_common_submerged_cancels(struct MarioState *m) { ++ if (m->pos[1] > m->waterLevel - 80) { ++ if (m->waterLevel - 80 > m->floorHeight) { ++ m->pos[1] = m->waterLevel - 80; ++ } else { ++ //! If you press B to throw the shell, there is a ~5 frame window ++ // where your held object is the shell, but you are not in the ++ // water shell swimming action. This allows you to hold the water ++ // shell on land (used for cloning in DDD). ++ if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ } ++ ++ return transition_submerged_to_walking(m); ++ } ++ } ++ ++ if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { ++ set_mario_action(m, ACT_DROWNING, 0); ++ } ++ ++ return FALSE; ++} ++ ++s32 mario_execute_submerged_action(struct MarioState *m) { ++ s32 cancel; ++ ++ if (check_common_submerged_cancels(m)) { ++ return TRUE; ++ } ++ ++ m->quicksandDepth = 0.0f; ++ ++ m->marioBodyState->headAngle[1] = 0; ++ m->marioBodyState->headAngle[2] = 0; ++ ++ /* clang-format off */ ++ switch (m->action) { ++ case ACT_WATER_IDLE: cancel = act_water_idle(m); break; ++ case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; ++ case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; ++ case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; ++ case ACT_DROWNING: cancel = act_drowning(m); break; ++ case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; ++ case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; ++ case ACT_WATER_DEATH: cancel = act_water_death(m); break; ++ case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; ++ case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; ++ case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; ++ case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; ++ case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; ++ case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; ++ case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; ++ case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; ++ case ACT_WATER_THROW: cancel = act_water_throw(m); break; ++ case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; ++ case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; ++ case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; ++ case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; ++ case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; ++ case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; ++ case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; ++ case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; ++ case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; ++ case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; ++ case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; ++ case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; ++ case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; ++ } ++ /* clang-format on */ ++ ++ return cancel; ++} +diff --git a/src/game/mario_actions_submerged.c.rej b/src/game/mario_actions_submerged.c.rej +new file mode 100644 +index 0000000..171f982 +--- /dev/null ++++ b/src/game/mario_actions_submerged.c.rej +@@ -0,0 +1,2808 @@ ++diff a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c (rejected hunks) ++@@ -29,1545 +29,1582 @@ static s16 D_80339FD2; ++ static f32 D_80339FD4; ++ ++ static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { ++- s16 atSurface = m->pos[1] >= m->waterLevel - 130; +++ s16 atSurface = m->pos[1] >= m->waterLevel - 130; ++ ++- if (atSurface) { ++- m->particleFlags |= particleFlag; ++- if (atSurface ^ sWasAtSurface) { ++- play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); ++- } ++- } +++ if (atSurface) { +++ m->particleFlags |= particleFlag; +++ if (atSurface ^ sWasAtSurface) { +++ play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); +++ } +++ } ++ ++- sWasAtSurface = atSurface; +++ sWasAtSurface = atSurface; ++ } ++ ++ static s32 swimming_near_surface(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return FALSE; ++- } ++ ++- return (m->waterLevel - 80) - m->pos[1] < 400.0f; ++-} +++ return FALSE; ++ ++-static f32 get_buoyancy(struct MarioState *m) { ++- f32 buoyancy = 0.0f; ++ ++- if (m->flags & MARIO_METAL_CAP) { ++- if (m->action & ACT_FLAG_INVULNERABLE) { ++- buoyancy = -2.0f; ++- } else { ++- buoyancy = -18.0f; ++- } ++- } else if (swimming_near_surface(m)) { ++- buoyancy = 1.25f; ++- } else if (!(m->action & ACT_FLAG_MOVING)) { ++- buoyancy = -2.0f; ++- } +++ return (m->waterLevel - 80) - m->pos[1] < 400.0f; +++} ++ ++- return buoyancy; +++static f32 get_buoyancy(struct MarioState *m) { +++ f32 buoyancy = 0.0f; +++ +++ if (m->flags & MARIO_METAL_CAP) { +++ if (m->action & ACT_FLAG_INVULNERABLE) { +++ buoyancy = -39.0f; +++ } +++ else { +++ buoyancy = -39.0f; +++ } +++ } +++ else if (swimming_near_surface(m)) { +++ buoyancy = -11.0f; +++ } +++ else if (!(m->action & ACT_FLAG_MOVING)) { +++ buoyancy = -11.0f; +++ } +++ +++ return buoyancy; ++ } ++ ++ static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { ++- struct Surface *wall; ++- struct Surface *ceil; ++- struct Surface *floor; ++- f32 ceilHeight; ++- f32 floorHeight; ++- ++- wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); ++- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++- ++- if (floor == NULL) { ++- return WATER_STEP_CANCELLED; ++- } ++- ++- if (nextPos[1] >= floorHeight) { ++- if (ceilHeight - nextPos[1] >= 160.0f) { ++- vec3f_copy(m->pos, nextPos); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- ++- if (wall != NULL) { ++- return WATER_STEP_HIT_WALL; ++- } else { ++- return WATER_STEP_NONE; ++- } ++- } ++- ++- if (ceilHeight - floorHeight < 160.0f) { ++- return WATER_STEP_CANCELLED; ++- } ++- ++- //! Water ceiling downwarp ++- vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- return WATER_STEP_HIT_CEILING; ++- } else { ++- if (ceilHeight - floorHeight < 160.0f) { ++- return WATER_STEP_CANCELLED; ++- } ++- ++- vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- return WATER_STEP_HIT_FLOOR; ++- } +++ struct Surface *wall; +++ struct Surface *ceil; +++ struct Surface *floor; +++ f32 ceilHeight; +++ f32 floorHeight; +++ +++ wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); +++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +++ +++ if (floor == NULL) { +++ return WATER_STEP_CANCELLED; +++ } +++ +++ if (nextPos[1] >= floorHeight) { +++ if (ceilHeight - nextPos[1] >= 160.0f) { +++ vec3f_copy(m->pos, nextPos); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ +++ if (wall != NULL) { +++ return WATER_STEP_HIT_WALL; +++ } +++ else { +++ return WATER_STEP_NONE; +++ } +++ } +++ +++ if (ceilHeight - floorHeight < 160.0f) { +++ return WATER_STEP_CANCELLED; +++ } +++ +++ //! Water ceiling downwarp +++ vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ return WATER_STEP_HIT_CEILING; +++ } +++ else { +++ if (ceilHeight - floorHeight < 160.0f) { +++ return WATER_STEP_CANCELLED; +++ } +++ +++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ return WATER_STEP_HIT_FLOOR; +++ } ++ } ++ ++ static void apply_water_current(struct MarioState *m, Vec3f step) { ++- s32 i; ++- f32 whirlpoolRadius = 2000.0f; ++- ++- if (m->floor->type == SURFACE_FLOWING_WATER) { ++- s16 currentAngle = m->floor->force << 8; ++- f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; ++- ++- step[0] += currentSpeed * sins(currentAngle); ++- step[2] += currentSpeed * coss(currentAngle); ++- } ++- ++- for (i = 0; i < 2; i++) { ++- struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; ++- if (whirlpool != NULL) { ++- f32 strength = 0.0f; ++- ++- f32 dx = whirlpool->pos[0] - m->pos[0]; ++- f32 dy = whirlpool->pos[1] - m->pos[1]; ++- f32 dz = whirlpool->pos[2] - m->pos[2]; ++- ++- f32 lateralDist = sqrtf(dx * dx + dz * dz); ++- f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); ++- ++- s16 pitchToWhirlpool = atan2s(lateralDist, dy); ++- s16 yawToWhirlpool = atan2s(dz, dx); ++- ++- yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); ++- ++- if (whirlpool->strength >= 0) { ++- if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { ++- whirlpoolRadius = 4000.0f; ++- } ++- ++- if (distance >= 26.0f && distance < whirlpoolRadius) { ++- strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); ++- } ++- } else if (distance < 2000.0f) { ++- strength = whirlpool->strength * (1.0f - distance / 2000.0f); ++- } ++- ++- step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); ++- step[1] += strength * sins(pitchToWhirlpool); ++- step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); ++- } ++- } +++ s32 i; +++ f32 whirlpoolRadius = 2000.0f; +++ +++ if (m->floor->type == SURFACE_FLOWING_WATER) { +++ s16 currentAngle = m->floor->force << 8; +++ f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; +++ +++ step[0] += currentSpeed * sins(currentAngle); +++ step[2] += currentSpeed * coss(currentAngle); +++ } +++ +++ for (i = 0; i < 2; i++) { +++ struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; +++ if (whirlpool != NULL) { +++ f32 strength = 0.0f; +++ +++ f32 dx = whirlpool->pos[0] - m->pos[0]; +++ f32 dy = whirlpool->pos[1] - m->pos[1]; +++ f32 dz = whirlpool->pos[2] - m->pos[2]; +++ +++ f32 lateralDist = sqrtf(dx * dx + dz * dz); +++ f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); +++ +++ s16 pitchToWhirlpool = atan2s(lateralDist, dy); +++ s16 yawToWhirlpool = atan2s(dz, dx); +++ +++ yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); +++ +++ if (whirlpool->strength >= 0) { +++ if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { +++ whirlpoolRadius = 4000.0f; +++ } +++ +++ if (distance >= 26.0f && distance < whirlpoolRadius) { +++ strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); +++ } +++ } +++ else if (distance < 2000.0f) { +++ strength = whirlpool->strength * (1.0f - distance / 2000.0f); +++ } +++ +++ step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); +++ step[1] += strength * sins(pitchToWhirlpool); +++ step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); +++ } +++ } ++ } ++ ++ static u32 perform_water_step(struct MarioState *m) { ++- UNUSED u32 unused; ++- u32 stepResult; ++- Vec3f nextPos; ++- Vec3f step; ++- struct Object *marioObj = m->marioObj; +++ UNUSED u32 unused; +++ u32 stepResult; +++ Vec3f nextPos; +++ Vec3f step; +++ struct Object *marioObj = m->marioObj; ++ ++- vec3f_copy(step, m->vel); +++ vec3f_copy(step, m->vel); ++ ++- if (m->action & ACT_FLAG_SWIMMING) { ++- apply_water_current(m, step); ++- } +++ if (m->action & ACT_FLAG_SWIMMING) { +++ apply_water_current(m, step); +++ } ++ ++- nextPos[0] = m->pos[0] + step[0]; ++- nextPos[1] = m->pos[1] + step[1]; ++- nextPos[2] = m->pos[2] + step[2]; +++ nextPos[0] = m->pos[0] + step[0]; +++ nextPos[1] = m->pos[1] + step[1]; +++ nextPos[2] = m->pos[2] + step[2]; ++ ++- if (nextPos[1] > m->waterLevel - 80) { ++- nextPos[1] = m->waterLevel - 80; ++- m->vel[1] = 0.0f; ++- } +++ if (nextPos[1] > m->waterLevel - 80) { +++ nextPos[1] = m->waterLevel - 80; +++ m->vel[1] = 0.0f; +++ } ++ ++- stepResult = perform_water_full_step(m, nextPos); +++ stepResult = perform_water_full_step(m, nextPos); ++ ++- vec3f_copy(marioObj->header.gfx.pos, m->pos); ++- vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); +++ vec3f_copy(marioObj->header.gfx.pos, m->pos); +++ vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); ++ ++- return stepResult; +++ return stepResult; ++ } ++ ++ static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { ++- struct Object *marioObj = m->marioObj; +++ struct Object *marioObj = m->marioObj; ++ ++- if (marioObj->header.gfx.angle[0] > 0) { ++- marioObj->header.gfx.pos[1] += ++- 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); ++- } +++ if (marioObj->header.gfx.angle[0] > 0) { +++ marioObj->header.gfx.pos[1] += +++ 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); +++ } ++ ++- if (marioObj->header.gfx.angle[0] < 0) { ++- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; ++- } +++ if (marioObj->header.gfx.angle[0] < 0) { +++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; +++ } ++ ++- if (marioObj->header.gfx.angle[0] > 0) { ++- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; ++- } +++ if (marioObj->header.gfx.angle[0] > 0) { +++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; +++ } ++ } ++ ++ static void stationary_slow_down(struct MarioState *m) { ++- f32 buoyancy = get_buoyancy(m); +++ f32 buoyancy = get_buoyancy(m); ++ ++- m->angleVel[0] = 0; ++- m->angleVel[1] = 0; +++ m->angleVel[0] = 0; +++ m->angleVel[1] = 0; ++ ++- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); ++- m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); +++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); +++ m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); ++ ++- m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); ++- m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); +++ m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); +++ m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); ++ ++- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); +++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ } ++ ++ static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { ++- f32 buoyancy = get_buoyancy(m); ++- f32 maxSpeed = 28.0f; +++ f32 buoyancy = get_buoyancy(m); +++ f32 maxSpeed = 28.0f; ++ ++- if (m->action & ACT_FLAG_STATIONARY) { ++- m->forwardVel -= 2.0f; ++- } +++ if (m->action & ACT_FLAG_STATIONARY) { +++ m->forwardVel -= 2.0f; +++ } ++ ++- if (m->forwardVel < 0.0f) { ++- m->forwardVel = 0.0f; ++- } +++ if (m->forwardVel < 0.0f) { +++ m->forwardVel = 0.0f; +++ } ++ ++- if (m->forwardVel > maxSpeed) { ++- m->forwardVel = maxSpeed; ++- } +++ if (m->forwardVel > maxSpeed) { +++ m->forwardVel = maxSpeed; +++ } ++ ++- if (m->forwardVel > decelThreshold) { ++- m->forwardVel -= 0.5f; ++- } +++ if (m->forwardVel > decelThreshold) { +++ m->forwardVel -= 0.5f; +++ } ++ ++- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++- m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; ++- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); +++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; +++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ } ++ ++ static void update_swimming_yaw(struct MarioState *m) { ++- s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); ++- ++- if (targetYawVel > 0) { ++- if (m->angleVel[1] < 0) { ++- m->angleVel[1] += 0x40; ++- if (m->angleVel[1] > 0x10) { ++- m->angleVel[1] = 0x10; ++- } ++- } else { ++- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); ++- } ++- } else if (targetYawVel < 0) { ++- if (m->angleVel[1] > 0) { ++- m->angleVel[1] -= 0x40; ++- if (m->angleVel[1] < -0x10) { ++- m->angleVel[1] = -0x10; ++- } ++- } else { ++- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); ++- } ++- } else { ++- m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); ++- } ++- ++- m->faceAngle[1] += m->angleVel[1]; ++- m->faceAngle[2] = -m->angleVel[1] * 8; +++ s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); +++ +++ if (targetYawVel > 0) { +++ if (m->angleVel[1] < 0) { +++ m->angleVel[1] += 0x40; +++ if (m->angleVel[1] > 0x10) { +++ m->angleVel[1] = 0x10; +++ } +++ } +++ else { +++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); +++ } +++ } +++ else if (targetYawVel < 0) { +++ if (m->angleVel[1] > 0) { +++ m->angleVel[1] -= 0x40; +++ if (m->angleVel[1] < -0x10) { +++ m->angleVel[1] = -0x10; +++ } +++ } +++ else { +++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); +++ } +++ } +++ else { +++ m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); +++ } +++ +++ m->faceAngle[1] += m->angleVel[1]; +++ m->faceAngle[2] = -m->angleVel[1] * 8; ++ } ++ ++ static void update_swimming_pitch(struct MarioState *m) { ++- s16 targetPitch = -(s16)(252.0f * m->controller->stickY); ++- ++- s16 pitchVel; ++- if (m->faceAngle[0] < 0) { ++- pitchVel = 0x100; ++- } else { ++- pitchVel = 0x200; ++- } ++- ++- if (m->faceAngle[0] < targetPitch) { ++- if ((m->faceAngle[0] += pitchVel) > targetPitch) { ++- m->faceAngle[0] = targetPitch; ++- } ++- } else if (m->faceAngle[0] > targetPitch) { ++- if ((m->faceAngle[0] -= pitchVel) < targetPitch) { ++- m->faceAngle[0] = targetPitch; ++- } ++- } +++ s16 targetPitch = -(s16)(252.0f * m->controller->stickY); +++ +++ s16 pitchVel; +++ if (m->faceAngle[0] < 0) { +++ pitchVel = 0x100; +++ } +++ else { +++ pitchVel = 0x200; +++ } +++ +++ if (m->faceAngle[0] < targetPitch) { +++ if ((m->faceAngle[0] += pitchVel) > targetPitch) { +++ m->faceAngle[0] = targetPitch; +++ } +++ } +++ else if (m->faceAngle[0] > targetPitch) { +++ if ((m->faceAngle[0] -= pitchVel) < targetPitch) { +++ m->faceAngle[0] = targetPitch; +++ } +++ } ++ } ++ ++ static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { ++- s16 *val = &m->marioBodyState->headAngle[0]; ++- ++- update_swimming_yaw(m); ++- update_swimming_pitch(m); ++- update_swimming_speed(m, MIN_SWIM_SPEED); ++- perform_water_step(m); ++- update_water_pitch(m); ++- ++- if (m->faceAngle[0] > 0) { ++- *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); ++- } else { ++- *val = approach_s32(*val, 0, 0x200, 0x200); ++- } ++- ++- if (arg == 0) { ++- set_mario_animation(m, animation); ++- } else { ++- set_mario_anim_with_accel(m, animation, arg); ++- } ++- ++- set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); +++ s16 *val = &m->marioBodyState->headAngle[0]; +++ +++ update_swimming_yaw(m); +++ update_swimming_pitch(m); +++ update_swimming_speed(m, MIN_SWIM_SPEED); +++ perform_water_step(m); +++ update_water_pitch(m); +++ +++ if (m->faceAngle[0] > 0) { +++ *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); +++ } +++ else { +++ *val = approach_s32(*val, 0, 0x200, 0x200); +++ } +++ +++ if (arg == 0) { +++ set_mario_animation(m, animation); +++ } +++ else { +++ set_mario_anim_with_accel(m, animation, arg); +++ } +++ +++ set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); ++ } ++ ++ static s32 act_water_idle(struct MarioState *m) { ++- u32 val = 0x10000; +++ u32 val = 0x10000; +++ ++ ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- } +++ if (gCurrLevelNum == LEVEL_SA) { +++ +++ m->drownTimer = -700; +++ } ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_PUNCH, 0); ++- } +++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 1); ++ ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_BREASTSTROKE, 0); ++- } ++ ++- if (m->faceAngle[0] < -0x1000) { ++- val = 0x30000; ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_PUNCH, 0); +++ } ++ ++- common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); ++- return FALSE; +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_BREASTSTROKE, 0); +++ } +++ +++ if (m->faceAngle[0] < -0x1000) { +++ val = 0x30000; +++ } +++ +++ common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); +++ return FALSE; ++ } ++ ++ static s32 act_hold_water_idle(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- } ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } ++ ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } ++ ++- common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); ++- return FALSE; +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +++ } +++ +++ common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); +++ return FALSE; ++ } ++ ++ static s32 act_water_action_end(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- } ++- ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_PUNCH, 0); ++- } ++- ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_BREASTSTROKE, 0); ++- } ++- ++- common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); ++- if (is_anim_at_end(m)) { ++- set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- return FALSE; +++ +++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +++ +++ +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_PUNCH, 0); +++ } +++ +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_BREASTSTROKE, 0); +++ } +++ +++ common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); +++ if (is_anim_at_end(m)) { +++ set_mario_action(m, ACT_WATER_IDLE, 0); +++ } +++ return FALSE; ++ } ++ ++ static s32 act_hold_water_action_end(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- } ++- ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } ++- ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++- } ++- ++- common_idle_step( ++- m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, ++- 0); ++- if (is_anim_at_end(m)) { ++- set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++- return FALSE; +++ +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ +++ +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } +++ +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } +++ +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +++ } +++ +++ common_idle_step( +++ m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, +++ 0); +++ if (is_anim_at_end(m)) { +++ set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +++ } +++ return FALSE; ++ } ++ ++ static void reset_float_globals(struct MarioState *m) { ++- D_80339FD0 = 0; ++- D_80339FD2 = 0x800; ++- D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; +++ D_80339FD0 = 0; +++ D_80339FD2 = 0x800; +++ D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; ++ } ++ ++ static void float_surface_gfx(struct MarioState *m) { ++- if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { ++- if ((D_80339FD0 += D_80339FD2) >= 0) { ++- m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); ++- return; ++- } ++- } ++- ++- D_80339FD2 = 0; +++ if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { +++ if ((D_80339FD0 += D_80339FD2) >= 0) { +++ m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); +++ return; +++ } +++ } +++ +++ D_80339FD2 = 0; ++ } ++ ++ static void common_swimming_step(struct MarioState *m, s16 swimStrength) { ++- s16 floorPitch; ++- UNUSED struct Object *marioObj = m->marioObj; ++- ++- update_swimming_yaw(m); ++- update_swimming_pitch(m); ++- update_swimming_speed(m, swimStrength / 10.0f); ++- ++- switch (perform_water_step(m)) { ++- case WATER_STEP_HIT_FLOOR: ++- floorPitch = -find_floor_slope(m, -0x8000); ++- if (m->faceAngle[0] < floorPitch) { ++- m->faceAngle[0] = floorPitch; ++- } ++- break; ++- ++- case WATER_STEP_HIT_CEILING: ++- if (m->faceAngle[0] > -0x3000) { ++- m->faceAngle[0] -= 0x100; ++- } ++- break; ++- ++- case WATER_STEP_HIT_WALL: ++- if (m->controller->stickY == 0.0f) { ++- if (m->faceAngle[0] > 0.0f) { ++- m->faceAngle[0] += 0x200; ++- if (m->faceAngle[0] > 0x3F00) { ++- m->faceAngle[0] = 0x3F00; ++- } ++- } else { ++- m->faceAngle[0] -= 0x200; ++- if (m->faceAngle[0] < -0x3F00) { ++- m->faceAngle[0] = -0x3F00; ++- } ++- } ++- } ++- break; ++- } ++- ++- update_water_pitch(m); ++- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++- ++- float_surface_gfx(m); ++- set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); +++ s16 floorPitch; +++ UNUSED struct Object *marioObj = m->marioObj; +++ +++ update_swimming_yaw(m); +++ update_swimming_pitch(m); +++ update_swimming_speed(m, swimStrength / 10.0f); +++ +++ switch (perform_water_step(m)) { +++ case WATER_STEP_HIT_FLOOR: +++ floorPitch = -find_floor_slope(m, -0x8000); +++ if (m->faceAngle[0] < floorPitch) { +++ m->faceAngle[0] = floorPitch; +++ } +++ break; +++ +++ case WATER_STEP_HIT_CEILING: +++ if (m->faceAngle[0] > -0x3000) { +++ m->faceAngle[0] -= 0x100; +++ } +++ break; +++ +++ case WATER_STEP_HIT_WALL: +++ if (m->controller->stickY == 0.0f) { +++ if (m->faceAngle[0] > 0.0f) { +++ m->faceAngle[0] += 0x200; +++ if (m->faceAngle[0] > 0x3F00) { +++ m->faceAngle[0] = 0x3F00; +++ } +++ } +++ else { +++ m->faceAngle[0] -= 0x200; +++ if (m->faceAngle[0] < -0x3F00) { +++ m->faceAngle[0] = -0x3F00; +++ } +++ } +++ } +++ break; +++ } +++ +++ update_water_pitch(m); +++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +++ +++ float_surface_gfx(m); +++ set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); ++ } ++ ++ static void play_swimming_noise(struct MarioState *m) { ++ s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; ++ ++- // This must be one line to match on -O2 ++- if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); +++ // (this need to be on one line to match on PAL) +++ if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ static s32 check_water_jump(struct MarioState *m) { ++- s32 probe = (s32)(m->pos[1] + 1.5f); +++ +++ s32 probe = (s32)(m->pos[1] + 1.5f); ++ ++- if (m->input & INPUT_A_PRESSED) { ++- if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { ++- vec3s_set(m->angleVel, 0, 0, 0); +++ if (m->input & INPUT_A_PRESSED) { +++ if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { +++ vec3s_set(m->angleVel, 0, 0, 0); ++ ++- m->vel[1] = 62.0f; +++ m->vel[1] = 65.0f; ++ ++- if (m->heldObj == NULL) { ++- return set_mario_action(m, ACT_WATER_JUMP, 0); ++- } else { ++- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); ++- } ++- } ++- } +++ if (m->heldObj == NULL) { +++ return set_mario_action(m, ACT_WATER_JUMP, 0); +++ } +++ else { +++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); +++ } +++ } +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_breaststroke(struct MarioState *m) { ++- if (m->actionArg == 0) { ++- sSwimStrength = MIN_SWIM_STRENGTH; ++- } +++ if (m->actionArg == 0) { +++ sSwimStrength = MIN_SWIM_STRENGTH; +++ } ++ ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- } ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_PUNCH, 0); ++- } +++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ ++- if (++m->actionTimer == 14) { ++- return set_mario_action(m, ACT_FLUTTER_KICK, 0); ++- } ++ ++- if (check_water_jump(m)) { ++- return TRUE; ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_PUNCH, 0); +++ } ++ ++- if (m->actionTimer < 6) { ++- m->forwardVel += 0.5f; ++- } +++ if (++m->actionTimer == 14) { +++ return set_mario_action(m, ACT_FLUTTER_KICK, 0); +++ } ++ ++- if (m->actionTimer >= 9) { ++- m->forwardVel += 1.5f; ++- } +++ if (check_water_jump(m)) { +++ return TRUE; +++ } ++ ++- if (m->actionTimer >= 2) { ++- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++- m->actionState = 1; ++- } +++ if (m->actionTimer < 6) { +++ m->forwardVel += 0.5f; +++ } ++ ++- if (m->actionTimer == 9 && m->actionState == 1) { ++- set_anim_to_frame(m, 0); ++- m->actionState = 0; ++- m->actionTimer = 1; ++- sSwimStrength = MIN_SWIM_STRENGTH; ++- } ++- } +++ if (m->actionTimer >= 9) { +++ m->forwardVel += 1.5f; +++ } ++ ++- if (m->actionTimer == 1) { ++- play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, ++- m->marioObj->header.gfx.cameraToObject); ++- reset_float_globals(m); ++- } +++ if (m->actionTimer >= 2) { +++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +++ m->actionState = 1; +++ } ++ ++-#ifdef VERSION_SH ++- if (m->actionTimer < 6) { ++- func_sh_8024CA04(); ++- } ++-#endif +++ if (m->actionTimer == 9 && m->actionState == 1) { +++ set_anim_to_frame(m, 0); +++ m->actionState = 0; +++ m->actionTimer = 1; +++ sSwimStrength = MIN_SWIM_STRENGTH; +++ } +++ } ++ ++- set_mario_animation(m, MARIO_ANIM_SWIM_PART1); ++- common_swimming_step(m, sSwimStrength); +++ if (m->actionTimer == 1) { +++ play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, +++ m->marioObj->header.gfx.cameraToObject); +++ reset_float_globals(m); +++ } ++ ++- return FALSE; +++ if (m->actionTimer < 6) { +++ //func_sh_8024CA04(); +++ } +++ +++ set_mario_animation(m, MARIO_ANIM_SWIM_PART1); +++ common_swimming_step(m, sSwimStrength); +++ +++ return FALSE; ++ } ++ ++ static s32 act_swimming_end(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- } ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_PUNCH, 0); ++- } +++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +++ ++ ++- if (m->actionTimer >= 15) { ++- return set_mario_action(m, ACT_WATER_ACTION_END, 0); ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_PUNCH, 0); +++ } ++ ++- if (check_water_jump(m)) { ++- return TRUE; ++- } +++ if (m->actionTimer >= 15) { +++ return set_mario_action(m, ACT_WATER_ACTION_END, 0); +++ } ++ ++- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++- if (m->actionTimer == 7 && sSwimStrength < 280) { ++- sSwimStrength += 10; ++- } ++- return set_mario_action(m, ACT_BREASTSTROKE, 1); ++- } +++ if (check_water_jump(m)) { +++ return TRUE; +++ } ++ ++- if (m->actionTimer >= 7) { ++- sSwimStrength = MIN_SWIM_STRENGTH; ++- } +++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +++ if (m->actionTimer == 7 && sSwimStrength < 280) { +++ sSwimStrength += 10; +++ } +++ return set_mario_action(m, ACT_BREASTSTROKE, 1); +++ } ++ ++- m->actionTimer++; +++ if (m->actionTimer >= 7) { +++ sSwimStrength = MIN_SWIM_STRENGTH; +++ } ++ ++- m->forwardVel -= 0.25f; ++- set_mario_animation(m, MARIO_ANIM_SWIM_PART2); ++- common_swimming_step(m, sSwimStrength); +++ m->actionTimer++; ++ ++- return FALSE; +++ m->forwardVel -= 0.25f; +++ set_mario_animation(m, MARIO_ANIM_SWIM_PART2); +++ common_swimming_step(m, sSwimStrength); +++ +++ return FALSE; ++ } ++ ++ static s32 act_flutter_kick(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- } ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_PUNCH, 0); ++- } +++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +++ ++ ++- if (!(m->input & INPUT_A_DOWN)) { ++- if (m->actionTimer == 0 && sSwimStrength < 280) { ++- sSwimStrength += 10; ++- } ++- return set_mario_action(m, ACT_SWIMMING_END, 0); ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_PUNCH, 0); +++ } ++ ++- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++- m->actionTimer = 1; ++- sSwimStrength = MIN_SWIM_STRENGTH; +++ if (!(m->input & INPUT_A_DOWN)) { +++ if (m->actionTimer == 0 && sSwimStrength < 280) { +++ sSwimStrength += 10; +++ } +++ return set_mario_action(m, ACT_SWIMMING_END, 0); +++ } ++ ++- if (m->forwardVel < 14.0f) { ++- play_swimming_noise(m); ++- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++- } +++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +++ m->actionTimer = 1; +++ sSwimStrength = MIN_SWIM_STRENGTH; ++ ++- common_swimming_step(m, sSwimStrength); ++- return FALSE; +++ if (m->forwardVel < 14.0f) { +++ play_swimming_noise(m); +++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +++ } +++ +++ common_swimming_step(m, sSwimStrength); +++ return FALSE; ++ } ++ ++ static s32 act_hold_breaststroke(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- } ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ +++ +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } +++ +++ if (++m->actionTimer == 17) { +++ return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +++ } +++ +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } +++ +++ if (check_water_jump(m)) { +++ return TRUE; +++ } +++ +++ if (m->actionTimer < 6) { +++ m->forwardVel += 0.5f; +++ } +++ +++ if (m->actionTimer >= 9) { +++ m->forwardVel += 1.5f; +++ } +++ +++ if (m->actionTimer >= 2) { +++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +++ m->actionState = 1; +++ } +++ +++ if (m->actionTimer == 9 && m->actionState == 1) { +++ set_anim_to_frame(m, 0); +++ m->actionState = 0; +++ m->actionTimer = 1; +++ } +++ } +++ +++ if (m->actionTimer == 1) { +++ play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); +++ reset_float_globals(m); +++ } +++ +++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); +++ common_swimming_step(m, 0x00A0); +++ return FALSE; +++} ++ ++- if (++m->actionTimer == 17) { ++- return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++- } +++static s32 act_hold_swimming_end(struct MarioState *m) { ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ ++ ++- if (check_water_jump(m)) { ++- return TRUE; ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } ++ ++- if (m->actionTimer < 6) { ++- m->forwardVel += 0.5f; ++- } +++ if (m->actionTimer >= 15) { +++ return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +++ } ++ ++- if (m->actionTimer >= 9) { ++- m->forwardVel += 1.5f; ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } ++ ++- if (m->actionTimer >= 2) { ++- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++- m->actionState = 1; ++- } +++ if (check_water_jump(m)) { +++ return TRUE; +++ } ++ ++- if (m->actionTimer == 9 && m->actionState == 1) { ++- set_anim_to_frame(m, 0); ++- m->actionState = 0; ++- m->actionTimer = 1; ++- } ++- } +++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +++ } ++ ++- if (m->actionTimer == 1) { ++- play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); ++- reset_float_globals(m); ++- } +++ m->actionTimer++; ++ ++- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); ++- common_swimming_step(m, 0x00A0); ++- return FALSE; +++ m->forwardVel -= 0.25f; +++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); +++ common_swimming_step(m, 0x00A0); +++ return FALSE; ++ } ++ ++-static s32 act_hold_swimming_end(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- } ++- ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- ++- if (m->actionTimer >= 15) { ++- return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++- } ++- ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } +++static s32 act_hold_flutter_kick(struct MarioState *m) { ++ ++- if (check_water_jump(m)) { ++- return TRUE; ++- } +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ ++ ++- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } ++ ++- m->actionTimer++; +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } ++ ++- m->forwardVel -= 0.25f; ++- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); ++- common_swimming_step(m, 0x00A0); ++- return FALSE; ++-} +++ if (!(m->input & INPUT_A_DOWN)) { +++ return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); +++ } ++ ++-static s32 act_hold_flutter_kick(struct MarioState *m) { ++- if (m->flags & MARIO_METAL_CAP) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- } ++- ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } ++- ++- if (!(m->input & INPUT_A_DOWN)) { ++- return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); ++- } ++- ++- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++- if (m->forwardVel < 14.0f) { ++- play_swimming_noise(m); ++- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++- } ++- common_swimming_step(m, 0x00A0); ++- return FALSE; +++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +++ if (m->forwardVel < 14.0f) { +++ play_swimming_noise(m); +++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +++ } +++ common_swimming_step(m, 0x00A0); +++ return FALSE; ++ } ++ ++ static s32 act_water_shell_swimming(struct MarioState *m) { ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +++ } ++ ++- if (m->input & INPUT_B_PRESSED) { ++- return set_mario_action(m, ACT_WATER_THROW, 0); ++- } +++ if (m->input & INPUT_B_PRESSED) { +++ return set_mario_action(m, ACT_WATER_THROW, 0); +++ } ++ ++- if (m->actionTimer++ == 240) { ++- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++- m->heldObj = NULL; ++- stop_shell_music(); ++- set_mario_action(m, ACT_FLUTTER_KICK, 0); ++- } +++ if (m->actionTimer++ == 240) { +++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +++ m->heldObj = NULL; +++ stop_shell_music(); +++ set_mario_action(m, ACT_FLUTTER_KICK, 0); +++ } ++ ++- m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); +++ m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); ++ ++- play_swimming_noise(m); ++- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++- common_swimming_step(m, 0x012C); +++ play_swimming_noise(m); +++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +++ common_swimming_step(m, 0x012C); ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 check_water_grab(struct MarioState *m) { ++- //! Heave hos have the grabbable interaction type but are not normally ++- // grabbable. Since water grabbing doesn't check the appropriate input flag, ++- // you can use water grab to pick up heave ho. ++- if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { ++- struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); ++- f32 dx = object->oPosX - m->pos[0]; ++- f32 dz = object->oPosZ - m->pos[2]; ++- s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; ++- ++- if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { ++- m->usedObj = object; ++- mario_grab_used_object(m); ++- m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; ++- return TRUE; ++- } ++- } ++- ++- return FALSE; +++ //! Heave hos have the grabbable interaction type but are not normally +++ // grabbable. Since water grabbing doesn't check the appropriate input flag, +++ // you can use water grab to pick up heave ho. +++ if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { +++ struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); +++ f32 dx = object->oPosX - m->pos[0]; +++ f32 dz = object->oPosZ - m->pos[2]; +++ s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; +++ +++ if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { +++ m->usedObj = object; +++ mario_grab_used_object(m); +++ m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; +++ return TRUE; +++ } +++ } +++ +++ return FALSE; ++ } ++ ++ static s32 act_water_throw(struct MarioState *m) { ++- update_swimming_yaw(m); ++- update_swimming_pitch(m); ++- update_swimming_speed(m, MIN_SWIM_SPEED); ++- perform_water_step(m); ++- update_water_pitch(m); +++ update_swimming_yaw(m); +++ update_swimming_pitch(m); +++ update_swimming_speed(m, MIN_SWIM_SPEED); +++ perform_water_step(m); +++ update_water_pitch(m); ++ ++- set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); ++- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); +++ set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); +++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ ++- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++- if (m->actionTimer++ == 5) { ++- mario_throw_held_object(m); ++-#ifdef VERSION_SH ++- queue_rumble_data(3, 50); ++-#endif ++- } +++ if (m->actionTimer++ == 5) { +++ mario_throw_held_object(m); +++ //(3, 50); +++ } ++ ++- if (is_anim_at_end(m)) { ++- set_mario_action(m, ACT_WATER_IDLE, 0); ++- } +++ if (is_anim_at_end(m)) { +++ set_mario_action(m, ACT_WATER_IDLE, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_water_punch(struct MarioState *m) { ++- if (m->forwardVel < 7.0f) { ++- m->forwardVel += 1.0f; ++- } ++- ++- update_swimming_yaw(m); ++- update_swimming_pitch(m); ++- update_swimming_speed(m, MIN_SWIM_SPEED); ++- perform_water_step(m); ++- update_water_pitch(m); ++- ++- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++- ++- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++- ++- switch (m->actionState) { ++- case 0: ++- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); ++- if (is_anim_at_end(m)) { ++- m->actionState = check_water_grab(m) + 1; ++- } ++- break; ++- ++- case 1: ++- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); ++- if (is_anim_at_end(m)) { ++- set_mario_action(m, ACT_WATER_ACTION_END, 0); ++- } ++- break; ++- ++- case 2: ++- set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); ++- if (is_anim_at_end(m)) { ++- if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++- play_shell_music(); ++- set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); ++- } else { ++- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); ++- } ++- } ++- break; ++- } ++- ++- return FALSE; +++ if (m->forwardVel < 7.0f) { +++ m->forwardVel += 1.0f; +++ } +++ +++ update_swimming_yaw(m); +++ update_swimming_pitch(m); +++ update_swimming_speed(m, MIN_SWIM_SPEED); +++ perform_water_step(m); +++ update_water_pitch(m); +++ +++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +++ +++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); +++ +++ switch (m->actionState) { +++ case 0: +++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); +++ if (is_anim_at_end(m)) { +++ m->actionState = check_water_grab(m) + 1; +++ } +++ break; +++ +++ case 1: +++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); +++ if (is_anim_at_end(m)) { +++ set_mario_action(m, ACT_WATER_ACTION_END, 0); +++ } +++ break; +++ +++ case 2: +++ set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); +++ if (is_anim_at_end(m)) { +++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { +++ play_shell_music(); +++ set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); +++ } +++ else { +++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); +++ } +++ } +++ break; +++ } +++ +++ return FALSE; ++ } ++ ++ static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { ++- stationary_slow_down(m); ++- perform_water_step(m); ++- set_mario_animation(m, animation); +++ stationary_slow_down(m); +++ perform_water_step(m); +++ set_mario_animation(m, animation); ++ ++- m->marioBodyState->headAngle[0] = 0; +++ m->marioBodyState->headAngle[0] = 0; ++ ++- if (is_anim_at_end(m)) { ++- if (arg3 > 0) { ++- m->invincTimer = 30; ++- } +++ if (is_anim_at_end(m)) { +++ if (arg3 > 0) { +++ m->invincTimer = 30; +++ } ++ ++- set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); ++- } +++ set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); +++ } ++ } ++ ++ static s32 act_backward_water_kb(struct MarioState *m) { ++- common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); ++- return FALSE; +++ common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); +++ return FALSE; ++ } ++ ++ static s32 act_forward_water_kb(struct MarioState *m) { ++- common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); ++- return FALSE; +++ common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); +++ return FALSE; ++ } ++ ++ static s32 act_water_shocked(struct MarioState *m) { ++- play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); ++- play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); ++- set_camera_shake_from_hit(SHAKE_SHOCK); ++- ++- if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { ++- m->actionTimer++; ++- m->flags |= MARIO_METAL_SHOCK; ++- } ++- ++- if (m->actionTimer >= 6) { ++- m->invincTimer = 30; ++- set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); ++- } ++- ++- stationary_slow_down(m); ++- perform_water_step(m); ++- m->marioBodyState->headAngle[0] = 0; ++- return FALSE; +++ play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); +++ play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); +++ set_camera_shake_from_hit(SHAKE_SHOCK); +++ +++ if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { +++ m->actionTimer++; +++ m->flags |= MARIO_METAL_SHOCK; +++ } +++ +++ if (m->actionTimer >= 6) { +++ m->invincTimer = 30; +++ set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); +++ } +++ +++ stationary_slow_down(m); +++ perform_water_step(m); +++ m->marioBodyState->headAngle[0] = 0; +++ return FALSE; ++ } ++ ++ static s32 act_drowning(struct MarioState *m) { ++- switch (m->actionState) { ++- case 0: ++- set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); ++- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++- if (is_anim_at_end(m)) { ++- m->actionState = 1; ++- } ++- break; ++- ++- case 1: ++- set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); ++- m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++- if (m->marioObj->header.gfx.animInfo.animFrame == 30) { ++- level_trigger_warp(m, WARP_OP_DEATH); ++- } ++- break; ++- } ++- ++- play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); ++- stationary_slow_down(m); ++- perform_water_step(m); ++- ++- return FALSE; +++ switch (m->actionState) { +++ case 0: +++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); +++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +++ if (is_anim_at_end(m)) { +++ m->actionState = 1; +++ } +++ break; +++ +++ case 1: +++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); +++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; +++ if (m->marioObj->header.gfx.animInfo.animFrame == 30) { +++ level_trigger_warp(m, WARP_OP_DEATH); +++ } +++ break; +++ } +++ +++ play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); +++ stationary_slow_down(m); +++ perform_water_step(m); +++ +++ return FALSE; ++ } ++ ++ static s32 act_water_death(struct MarioState *m) { ++- stationary_slow_down(m); ++- perform_water_step(m); +++ stationary_slow_down(m); +++ perform_water_step(m); ++ ++- m->marioBodyState->eyeState = MARIO_EYES_DEAD; +++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ ++- set_mario_animation(m, MARIO_ANIM_WATER_DYING); ++- if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { ++- level_trigger_warp(m, WARP_OP_DEATH); ++- } +++ set_mario_animation(m, MARIO_ANIM_WATER_DYING); +++ if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { +++ level_trigger_warp(m, WARP_OP_DEATH); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_water_plunge(struct MarioState *m) { ++- u32 stepResult; ++- s32 stateFlags = m->heldObj != NULL; ++- ++- f32 endVSpeed; ++- if (swimming_near_surface(m)) { ++- endVSpeed = 0.0f; ++- } else { ++- endVSpeed = -5.0f; ++- } ++- ++- if (m->flags & MARIO_METAL_CAP) { ++- stateFlags |= 4; ++- } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { ++- stateFlags |= 2; ++- } ++- ++- m->actionTimer++; ++- ++- stationary_slow_down(m); ++- ++- stepResult = perform_water_step(m); ++- ++- if (m->actionState == 0) { ++- play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); ++- if (m->peakHeight - m->pos[1] > 1150.0f) { ++- play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); ++- } ++- ++- m->particleFlags |= PARTICLE_WATER_SPLASH; ++- m->actionState = 1; ++-#ifdef VERSION_SH ++- if (m->prevAction & ACT_FLAG_AIR) { ++- queue_rumble_data(5, 80); ++- } ++-#endif ++- } ++- ++- if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { ++- switch (stateFlags) { ++- case 0: ++- set_mario_action(m, ACT_WATER_ACTION_END, 0); ++- break; ++- case 1: ++- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++- break; ++- case 2: ++- set_mario_action(m, ACT_FLUTTER_KICK, 0); ++- break; ++- case 3: ++- set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++- break; ++- case 4: ++- set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++- break; ++- case 5: ++- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++- break; ++- } ++- D_80339FD2 = 0; ++- } ++- ++- switch (stateFlags) { ++- case 0: ++- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); ++- break; ++- case 1: ++- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); ++- break; ++- case 2: ++- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++- break; ++- case 3: ++- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++- break; ++- case 4: ++- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++- break; ++- case 5: ++- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++- break; ++- } ++- ++- m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; ++- return FALSE; +++ u32 stepResult; +++ s32 stateFlags = m->heldObj != NULL; +++ +++ f32 endVSpeed; +++ if (swimming_near_surface(m)) { +++ endVSpeed = 0.0f; +++ } +++ else { +++ endVSpeed = -5.0f; +++ } +++ +++ +++ stateFlags |= 4; +++ +++ m->actionTimer++; +++ +++ stationary_slow_down(m); +++ +++ stepResult = perform_water_step(m); +++ +++ if (m->actionState == 0) { +++ play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); +++ if (m->peakHeight - m->pos[1] > 1150.0f) { +++ play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); +++ } +++ +++ m->particleFlags |= PARTICLE_WATER_SPLASH; +++ m->actionState = 1; +++ if (m->prevAction & ACT_FLAG_AIR) { +++ //(5, 80); +++ } +++ } +++ +++ if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { +++ switch (stateFlags) { +++ case 0: +++ set_mario_action(m, ACT_WATER_ACTION_END, 0); +++ break; +++ case 1: +++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +++ break; +++ case 2: +++ set_mario_action(m, ACT_FLUTTER_KICK, 0); +++ break; +++ case 3: +++ set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +++ break; +++ case 4: +++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +++ m->vel[1] = -32.0f; +++ break; +++ case 5: +++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +++ break; +++ } +++ D_80339FD2 = 0; +++ } +++ +++ switch (stateFlags) { +++ case 0: +++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); +++ break; +++ case 1: +++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); +++ break; +++ case 2: +++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +++ break; +++ case 3: +++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +++ break; +++ case 4: +++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +++ break; +++ case 5: +++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +++ break; +++ } +++ +++ m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; +++ return FALSE; ++ } ++ ++ static s32 act_caught_in_whirlpool(struct MarioState *m) { ++- f32 sinAngleChange; ++- f32 cosAngleChange; ++- f32 newDistance; ++- s16 angleChange; ++- ++- struct Object *marioObj = m->marioObj; ++- struct Object *whirlpool = m->usedObj; ++- ++- f32 dx = m->pos[0] - whirlpool->oPosX; ++- f32 dz = m->pos[2] - whirlpool->oPosZ; ++- f32 distance = sqrtf(dx * dx + dz * dz); ++- ++- if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { ++- marioObj->oMarioWhirlpoolPosY = 0.0f; ++- if (distance < 16.1f && m->actionTimer++ == 16) { ++- level_trigger_warp(m, WARP_OP_DEATH); ++- } ++- } ++- ++- if (distance <= 28.0f) { ++- newDistance = 16.0f; ++- angleChange = 0x1800; ++- } else if (distance < 256.0f) { ++- newDistance = distance - (12.0f - distance / 32.0f); ++- angleChange = (s16)(0x1C00 - distance * 20.0f); ++- } else { ++- newDistance = distance - 4.0f; ++- angleChange = 0x800; ++- } ++- ++- m->vel[1] = -640.0f / (newDistance + 16.0f); ++- ++- sinAngleChange = sins(angleChange); ++- cosAngleChange = coss(angleChange); ++- ++- if (distance < 1.0f) { ++- dx = newDistance * sins(m->faceAngle[1]); ++- dz = newDistance * coss(m->faceAngle[1]); ++- } else { ++- dx *= newDistance / distance; ++- dz *= newDistance / distance; ++- } ++- ++- m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; ++- m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; ++- m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; ++- ++- m->faceAngle[1] = atan2s(dz, dx) + 0x8000; ++- ++- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++-#ifdef VERSION_SH ++- reset_rumble_timers(); ++-#endif ++- ++- return FALSE; +++ f32 sinAngleChange; +++ f32 cosAngleChange; +++ f32 newDistance; +++ s16 angleChange; +++ +++ struct Object *marioObj = m->marioObj; +++ struct Object *whirlpool = m->usedObj; +++ +++ f32 dx = m->pos[0] - whirlpool->oPosX; +++ f32 dz = m->pos[2] - whirlpool->oPosZ; +++ f32 distance = sqrtf(dx * dx + dz * dz); +++ +++ if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { +++ marioObj->oMarioWhirlpoolPosY = 0.0f; +++ if (distance < 16.1f && m->actionTimer++ == 16) { +++ level_trigger_warp(m, WARP_OP_DEATH); +++ } +++ } +++ +++ if (distance <= 28.0f) { +++ newDistance = 16.0f; +++ angleChange = 0x1800; +++ } +++ else if (distance < 256.0f) { +++ newDistance = distance - (12.0f - distance / 32.0f); +++ angleChange = (s16)(0x1C00 - distance * 20.0f); +++ } +++ else { +++ newDistance = distance - 4.0f; +++ angleChange = 0x800; +++ } +++ +++ m->vel[1] = -640.0f / (newDistance + 16.0f); +++ +++ sinAngleChange = sins(angleChange); +++ cosAngleChange = coss(angleChange); +++ +++ if (distance < 1.0f) { +++ dx = newDistance * sins(m->faceAngle[1]); +++ dz = newDistance * coss(m->faceAngle[1]); +++ } +++ else { +++ dx *= newDistance / distance; +++ dz *= newDistance / distance; +++ } +++ +++ m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; +++ m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; +++ m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; +++ +++ m->faceAngle[1] = atan2s(dz, dx) + 0x8000; +++ +++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +++ +++ //umble_timers(); +++ return FALSE; ++ } ++ ++ static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { ++- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++- m->particleFlags |= PARTICLE_MIST_CIRCLE; ++- } ++- ++- play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, ++- MARIO_ACTION_SOUND_PLAYED); +++ if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { +++ m->particleFlags |= PARTICLE_MIST_CIRCLE; +++ } +++ if (m->flags & MARIO_METAL_CAP) { +++ +++ play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, +++ MARIO_ACTION_SOUND_PLAYED); +++ } +++ else { +++ play_sound_if_no_flag(m, landing ? SOUND_GENERAL_QUIET_BUBBLE : SOUND_ACTION_SWIM, +++ MARIO_ACTION_SOUND_PLAYED); +++ } ++ } ++ ++ static void play_metal_water_walking_sound(struct MarioState *m) { ++- if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { ++- play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); ++- m->particleFlags |= PARTICLE_DUST; ++- } +++ if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { +++ if (m->flags & MARIO_METAL_CAP) { +++ play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); +++ } +++ else { +++ play_sound(SOUND_GENERAL_QUIET_BUBBLE2, m->marioObj->header.gfx.cameraToObject); +++ } +++ +++ m->particleFlags |= PARTICLE_DUST; +++ } ++ } ++ ++ static void update_metal_water_walking_speed(struct MarioState *m) { ++- f32 val = m->intendedMag / 1.5f; ++- ++- if (m->forwardVel <= 0.0f) { ++- m->forwardVel += 1.1f; ++- } else if (m->forwardVel <= val) { ++- m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++- } else if (m->floor->normal.y >= 0.95f) { ++- m->forwardVel -= 1.0f; ++- } ++- ++- if (m->forwardVel > 32.0f) { ++- m->forwardVel = 32.0f; ++- } ++- ++- m->faceAngle[1] = ++- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++- ++- m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++- m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++- ++- m->vel[0] = m->slideVelX; ++- m->vel[1] = 0.0f; ++- m->vel[2] = m->slideVelZ; +++ f32 val = m->intendedMag / 1.0f; +++ +++ if (m->forwardVel <= 0.0f) { +++ m->forwardVel += 1.1f; +++ } +++ else if (m->forwardVel <= val) { +++ m->forwardVel += 1.1f - m->forwardVel / 43.0f; +++ } +++ else if (m->floor->normal.y >= 0.95f) { +++ m->forwardVel -= 1.0f; +++ } +++ +++ if (m->forwardVel > 42.0f) { +++ m->forwardVel = 42.0f; +++ } +++ +++ m->faceAngle[1] = +++ m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +++ +++ m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +++ m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +++ +++ m->vel[0] = m->slideVelX; +++ m->vel[1] = 0.0f; +++ m->vel[2] = m->slideVelZ; ++ } ++ ++ static s32 update_metal_water_jump_speed(struct MarioState *m) { ++- UNUSED f32 nextY = m->pos[1] + m->vel[1]; ++- f32 waterSurface = m->waterLevel - 100; ++- ++- if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { ++- return TRUE; ++- } ++- ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++- m->forwardVel += 0.8f * coss(intendedDYaw); ++- m->faceAngle[1] += 0x200 * sins(intendedDYaw); ++- } else { ++- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); ++- } ++- ++- if (m->forwardVel > 16.0f) { ++- m->forwardVel -= 1.0f; ++- } ++- ++- if (m->forwardVel < 0.0f) { ++- m->forwardVel += 2.0f; ++- } ++- ++- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++- return FALSE; +++ UNUSED f32 nextY = m->pos[1] + m->vel[1]; +++ f32 waterSurface = m->waterLevel - 100; +++ +++ if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { +++ return TRUE; +++ } +++ +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; +++ m->forwardVel += 0.8f * coss(intendedDYaw); +++ m->faceAngle[1] += 0x200 * sins(intendedDYaw); +++ } +++ else { +++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); +++ } +++ +++ if (m->forwardVel > 18.0f) { +++ m->forwardVel -= 1.0f; +++ } +++ +++ if (m->forwardVel < 0.0f) { +++ m->forwardVel += 2.0f; +++ } +++ +++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_standing(struct MarioState *m) { ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++- } ++- ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++- } ++- ++- switch (m->actionState) { ++- case 0: ++- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); ++- break; ++- case 1: ++- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); ++- break; ++- case 2: ++- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); ++- break; ++- } ++- ++- if (is_anim_at_end(m) && ++m->actionState == 3) { ++- m->actionState = 0; ++- } ++- ++- stop_and_set_height_to_floor(m); ++- if (m->pos[1] >= m->waterLevel - 150) { ++- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++- } ++- ++- return FALSE; +++ +++ +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +++ } +++ +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +++ } +++ +++ switch (m->actionState) { +++ case 0: +++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); +++ break; +++ case 1: +++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); +++ break; +++ case 2: +++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); +++ break; +++ } +++ +++ if (is_anim_at_end(m) && ++m->actionState == 3) { +++ m->actionState = 0; +++ } +++ +++ stop_and_set_height_to_floor(m); +++ if (m->pos[1] >= m->waterLevel - 150) { +++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +++ } +++ +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_standing(struct MarioState *m) { ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++- } +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +++ } ++ ++- stop_and_set_height_to_floor(m); ++- set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++- return FALSE; +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +++ } +++ +++ stop_and_set_height_to_floor(m); +++ set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_walking(struct MarioState *m) { ++- s32 val04; +++ s32 val04; +++ ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_FIRST_PERSON) { ++- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (m->input & INPUT_FIRST_PERSON) { +++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++- } +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +++ } ++ ++- if (m->input & INPUT_UNKNOWN_5) { ++- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (m->input & INPUT_UNKNOWN_5) { +++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { ++- val04 = 0x1000; ++- } +++ if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { +++ val04 = 0x1000; +++ } ++ ++- set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); ++- play_metal_water_walking_sound(m); ++- update_metal_water_walking_speed(m); +++ set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); +++ play_metal_water_walking_sound(m); +++ update_metal_water_walking_speed(m); ++ ++- switch (perform_ground_step(m)) { ++- case GROUND_STEP_LEFT_GROUND: ++- set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++- break; +++ switch (perform_ground_step(m)) { +++ case GROUND_STEP_LEFT_GROUND: +++ set_mario_action(m, ACT_METAL_WATER_JUMP, 1); +++ m->vel[1] = -60.0f; +++ break; ++ ++- case GROUND_STEP_HIT_WALL: ++- m->forwardVel = 0.0f; ++- break; ++- } +++ case GROUND_STEP_HIT_WALL: +++ m->forwardVel = 0; +++ break; +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_walking(struct MarioState *m) { ++- s32 val04; +++ s32 val04; +++ +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +++ } ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++- } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_A_PRESSED) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++- } +++ if (m->input & INPUT_A_PRESSED) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +++ } ++ ++- if (m->input & INPUT_UNKNOWN_5) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++- } +++ if (m->input & INPUT_UNKNOWN_5) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +++ } ++ ++- m->intendedMag *= 0.4f; +++ m->intendedMag *= 0.4f; ++ ++- if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { ++- val04 = 0x1000; ++- } +++ if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { +++ val04 = 0x1000; +++ } ++ ++- set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); ++- play_metal_water_walking_sound(m); ++- update_metal_water_walking_speed(m); +++ set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); +++ play_metal_water_walking_sound(m); +++ update_metal_water_walking_speed(m); ++ ++- switch (perform_ground_step(m)) { ++- case GROUND_STEP_LEFT_GROUND: ++- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); ++- break; +++ switch (perform_ground_step(m)) { +++ case GROUND_STEP_LEFT_GROUND: +++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); +++ break; ++ ++- case GROUND_STEP_HIT_WALL: ++- m->forwardVel = 0.0f; ++- break; ++- } +++ case GROUND_STEP_HIT_WALL: +++ m->forwardVel = 0.0f; +++ break; +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_jump(struct MarioState *m) { ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++- ++- if (update_metal_water_jump_speed(m)) { ++- return set_mario_action(m, ACT_WATER_JUMP, 1); ++- } ++- ++- play_metal_water_jumping_sound(m, FALSE); ++- set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); ++- ++- switch (perform_air_step(m, 0)) { ++- case AIR_STEP_LANDED: ++- set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); ++- break; ++- ++- case AIR_STEP_HIT_WALL: ++- m->forwardVel = 0.0f; ++- break; ++- } ++- ++- return FALSE; +++ m->actionTimer++; +++ +++ if (m->flags & MARIO_METAL_CAP) +++ { +++ if (m->vel[1] < 3.0f) +++ { +++ +++ m->vel[1] -= 10; +++ } +++ } +++ if (m->vel[1] < 1.0f) +++ { +++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; +++ //set_camera_mode(m->area->camera, CAMERA_MODE_WATER_SURFACE, 1); +++ set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); +++ } +++ else +++ { +++ cur_obj_set_model(MODEL_SONIC_BALL); +++ } +++ +++ if (m->input & INPUT_A_PRESSED && m->actionTimer >= 1) { +++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; +++ //set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); +++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +++ m->actionTimer = 0; +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +++ +++ +++ } +++ +++ if (update_metal_water_jump_speed(m)) { +++ return set_mario_action(m, ACT_WATER_JUMP, 1); +++ } +++ +++ play_metal_water_jumping_sound(m, FALSE); +++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +++ +++ switch (perform_air_step(m, 0)) { +++ case AIR_STEP_LANDED: +++ set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); +++ break; +++ +++ case AIR_STEP_HIT_WALL: +++ m->forwardVel = 0.0f; +++ break; +++ } +++ +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_jump(struct MarioState *m) { ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +++ } +++ ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (update_metal_water_jump_speed(m)) { ++- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); ++- } +++ if (update_metal_water_jump_speed(m)) { +++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); +++ } ++ ++- play_metal_water_jumping_sound(m, FALSE); ++- set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); +++ play_metal_water_jumping_sound(m, FALSE); +++ set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); ++ ++- switch (perform_air_step(m, 0)) { ++- case AIR_STEP_LANDED: ++- set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); ++- break; +++ switch (perform_air_step(m, 0)) { +++ case AIR_STEP_LANDED: +++ set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); +++ break; ++ ++- case AIR_STEP_HIT_WALL: ++- m->forwardVel = 0.0f; ++- break; ++- } +++ case AIR_STEP_HIT_WALL: +++ m->forwardVel = 0.0f; +++ break; +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_falling(struct MarioState *m) { ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++- } +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +++ } ++ ++- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); ++- stationary_slow_down(m); +++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); +++ stationary_slow_down(m); ++ ++- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++- set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); ++- } +++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +++ set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_falling(struct MarioState *m) { ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +++ } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++- } +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +++ } ++ ++- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++- stationary_slow_down(m); +++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +++ stationary_slow_down(m); ++ ++- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++- set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); ++- } +++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_jump_land(struct MarioState *m) { ++- play_metal_water_jumping_sound(m, TRUE); +++ play_metal_water_jumping_sound(m, TRUE); +++ ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++- } +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +++ } ++ ++- stop_and_set_height_to_floor(m); ++- set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); +++ stop_and_set_height_to_floor(m); +++ set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); ++ ++- if (is_anim_at_end(m)) { ++- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (is_anim_at_end(m)) { +++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_jump_land(struct MarioState *m) { ++- play_metal_water_jumping_sound(m, TRUE); +++ play_metal_water_jumping_sound(m, TRUE); ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++- } ++ ++- stop_and_set_height_to_floor(m); ++- set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +++ } ++ ++- if (is_anim_at_end(m)) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++- } +++ stop_and_set_height_to_floor(m); +++ set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); ++ ++- return FALSE; +++ if (is_anim_at_end(m)) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +++ } +++ +++ return FALSE; ++ } ++ ++ static s32 act_metal_water_fall_land(struct MarioState *m) { ++- play_metal_water_jumping_sound(m, TRUE); +++ play_metal_water_jumping_sound(m, TRUE); +++ ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++- } +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +++ } ++ ++- stop_and_set_height_to_floor(m); ++- set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); +++ stop_and_set_height_to_floor(m); +++ set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); ++ ++- if (is_anim_at_end(m)) { ++- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } +++ if (is_anim_at_end(m)) { +++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 act_hold_metal_water_fall_land(struct MarioState *m) { ++- play_metal_water_jumping_sound(m, TRUE); +++ play_metal_water_jumping_sound(m, TRUE); +++ +++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +++ } ++ ++- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++- } ++ ++- if (!(m->flags & MARIO_METAL_CAP)) { ++- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++- } ++ ++- if (m->input & INPUT_NONZERO_ANALOG) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++- } +++ if (m->input & INPUT_NONZERO_ANALOG) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +++ } ++ ++- stop_and_set_height_to_floor(m); ++- set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); +++ stop_and_set_height_to_floor(m); +++ set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); ++ ++- if (is_anim_at_end(m)) { ++- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++- } +++ if (is_anim_at_end(m)) { +++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ static s32 check_common_submerged_cancels(struct MarioState *m) { ++- if (m->pos[1] > m->waterLevel - 80) { ++- if (m->waterLevel - 80 > m->floorHeight) { ++- m->pos[1] = m->waterLevel - 80; ++- } else { ++- //! If you press B to throw the shell, there is a ~5 frame window ++- // where your held object is the shell, but you are not in the ++- // water shell swimming action. This allows you to hold the water ++- // shell on land (used for cloning in DDD). ++- if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { ++- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++- m->heldObj = NULL; ++- stop_shell_music(); ++- } ++- ++- return transition_submerged_to_walking(m); ++- } ++- } ++- ++- if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { ++- set_mario_action(m, ACT_DROWNING, 0); ++- } ++- ++- return FALSE; +++ if (m->pos[1] > m->waterLevel - 80) { +++ if (m->waterLevel - 80 > m->floorHeight) { +++ m->pos[1] = m->waterLevel - 80; +++ } +++ else { +++ //! If you press B to throw the shell, there is a ~5 frame window +++ // where your held object is the shell, but you are not in the +++ // water shell swimming action. This allows you to hold the water +++ // shell on land (used for cloning in DDD). +++ if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { +++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +++ m->heldObj = NULL; +++ stop_shell_music(); +++ } +++ +++ return transition_submerged_to_walking(m); +++ } +++ } +++ +++ if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { +++ set_mario_action(m, ACT_DROWNING, 0); +++ } +++ +++ return FALSE; ++ } ++ ++ s32 mario_execute_submerged_action(struct MarioState *m) { ++- s32 cancel; ++- ++- if (check_common_submerged_cancels(m)) { ++- return TRUE; ++- } ++- ++- m->quicksandDepth = 0.0f; ++- ++- m->marioBodyState->headAngle[1] = 0; ++- m->marioBodyState->headAngle[2] = 0; ++- ++- /* clang-format off */ ++- switch (m->action) { ++- case ACT_WATER_IDLE: cancel = act_water_idle(m); break; ++- case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; ++- case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; ++- case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; ++- case ACT_DROWNING: cancel = act_drowning(m); break; ++- case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; ++- case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; ++- case ACT_WATER_DEATH: cancel = act_water_death(m); break; ++- case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; ++- case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; ++- case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; ++- case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; ++- case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; ++- case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; ++- case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; ++- case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; ++- case ACT_WATER_THROW: cancel = act_water_throw(m); break; ++- case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; ++- case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; ++- case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; ++- case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; ++- case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; ++- case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; ++- case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; ++- case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; ++- case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; ++- case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; ++- case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; ++- case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; ++- case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; ++- case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; ++- case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; ++- } ++- /* clang-format on */ ++- ++- return cancel; +++ s32 cancel; +++ +++ if (check_common_submerged_cancels(m)) { +++ return TRUE; +++ } +++ +++ m->quicksandDepth = 0.0f; +++ +++ m->marioBodyState->headAngle[1] = 0; +++ m->marioBodyState->headAngle[2] = 0; +++ +++ /* clang-format off */ +++ switch (m->action) { +++ case ACT_WATER_IDLE: cancel = act_water_idle(m); break; +++ case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; +++ case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; +++ case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; +++ case ACT_DROWNING: cancel = act_drowning(m); break; +++ case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; +++ case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; +++ case ACT_WATER_DEATH: cancel = act_water_death(m); break; +++ case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; +++ case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; +++ case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; +++ case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; +++ case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; +++ case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; +++ case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; +++ case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; +++ case ACT_WATER_THROW: cancel = act_water_throw(m); break; +++ case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; +++ case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; +++ case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; +++ case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; +++ case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; +++ case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; +++ case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; +++ case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; +++ case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; +++ case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; +++ case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; +++ case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; +++ case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; +++ case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; +++ case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; +++ } +++ /* clang-format on */ +++ +++ return cancel; ++ } +diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c +index 5184a80..215a811 100644 +--- a/src/game/mario_misc.c ++++ b/src/game/mario_misc.c +@@ -88,7 +88,7 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * + UNUSED Mat4 *transform = c; + + if (callContext == GEO_CONTEXT_RENDER) { +- if (gPlayer1Controller->controllerData != NULL && !gWarpTransition.isActive) { ++ if (gPlayer1Controller->controllerData != NULL && gWarpTransition.isActive == 0) { + gd_copy_p1_contpad(gPlayer1Controller->controllerData); + } + gfx = (Gfx *) PHYSICAL_TO_VIRTUAL(gdm_gettestdl(asGenerated->parameter)); +@@ -101,9 +101,9 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * + + static void toad_message_faded(void) { + if (gCurrentObject->oDistanceToMario > 700.0f) { +- gCurrentObject->oToadMessageRecentlyTalked = FALSE; ++ gCurrentObject->oToadMessageRecentlyTalked = 0; + } +- if (!gCurrentObject->oToadMessageRecentlyTalked && gCurrentObject->oDistanceToMario < 600.0f) { ++ if (gCurrentObject->oToadMessageRecentlyTalked == 0 && gCurrentObject->oDistanceToMario < 600.0f) { + gCurrentObject->oToadMessageState = TOAD_MESSAGE_OPACIFYING; + } + } +@@ -111,12 +111,14 @@ static void toad_message_faded(void) { + static void toad_message_opaque(void) { + if (gCurrentObject->oDistanceToMario > 700.0f) { + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; +- } else if (!gCurrentObject->oToadMessageRecentlyTalked) { +- gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; +- if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { +- gCurrentObject->oInteractStatus = 0; +- gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; +- play_toads_jingle(); ++ } else { ++ if (gCurrentObject->oToadMessageRecentlyTalked == 0) { ++ gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; ++ if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { ++ gCurrentObject->oInteractStatus = 0; ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; ++ play_toads_jingle(); ++ } + } + } + } +@@ -124,7 +126,7 @@ static void toad_message_opaque(void) { + static void toad_message_talking(void) { + if (cur_obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG, gCurrentObject->oToadMessageDialogId) + != 0) { +- gCurrentObject->oToadMessageRecentlyTalked = TRUE; ++ gCurrentObject->oToadMessageRecentlyTalked = 1; + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; + switch (gCurrentObject->oToadMessageDialogId) { + case TOAD_STAR_1_DIALOG: +@@ -180,33 +182,33 @@ void bhv_toad_message_loop(void) { + + void bhv_toad_message_init(void) { + s32 saveFlags = save_file_get_flags(); +- s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); ++ s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24); + s32 dialogId = (gCurrentObject->oBehParams >> 24) & 0xFF; + s32 enoughStars = TRUE; + + switch (dialogId) { + case TOAD_STAR_1_DIALOG: + enoughStars = (starCount >= TOAD_STAR_1_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_1) { ++ if (saveFlags & (1 << 24)) { + dialogId = TOAD_STAR_1_DIALOG_AFTER; + } + break; + case TOAD_STAR_2_DIALOG: + enoughStars = (starCount >= TOAD_STAR_2_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_2) { ++ if (saveFlags & (1 << 25)) { + dialogId = TOAD_STAR_2_DIALOG_AFTER; + } + break; + case TOAD_STAR_3_DIALOG: + enoughStars = (starCount >= TOAD_STAR_3_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_3) { ++ if (saveFlags & (1 << 26)) { + dialogId = TOAD_STAR_3_DIALOG_AFTER; + } + break; + } + if (enoughStars) { + gCurrentObject->oToadMessageDialogId = dialogId; +- gCurrentObject->oToadMessageRecentlyTalked = FALSE; ++ gCurrentObject->oToadMessageRecentlyTalked = 0; + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADED; + gCurrentObject->oOpacity = 81; + } else { +@@ -345,7 +347,7 @@ Gfx *geo_switch_mario_stand_run(s32 callContext, struct GraphNode *node, UNUSED + + if (callContext == GEO_CONTEXT_RENDER) { + // assign result. 0 if moving, 1 if stationary. +- switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == 0); ++ switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == FALSE); + } + return NULL; + } +@@ -525,7 +527,7 @@ Gfx *geo_mario_rotate_wing_cap_wings(s32 callContext, struct GraphNode *node, UN + if (callContext == GEO_CONTEXT_RENDER) { + struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) node->next; + +- if (!gBodyStates[asGenerated->parameter >> 1].wingFlutter) { ++ if (gBodyStates[asGenerated->parameter >> 1].wingFlutter == FALSE) { + rotX = (coss((gAreaUpdateCounter & 0xF) << 12) + 1.0f) * 4096.0f; + } else { + rotX = (coss((gAreaUpdateCounter & 7) << 13) + 1.0f) * 6144.0f; +@@ -586,7 +588,7 @@ Gfx *geo_switch_mario_hand_grab_pos(s32 callContext, struct GraphNode *b, Mat4 * + */ + Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat4 *c) { + f32 mirroredX; +- struct Object *mario = gMarioStates[0].marioObj; ++ struct Object *mario = gMarioStates->marioObj; + + switch (callContext) { + case GEO_CONTEXT_CREATE: +@@ -606,15 +608,20 @@ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat + vec3s_copy(gMirrorMario.angle, mario->header.gfx.angle); + vec3f_copy(gMirrorMario.pos, mario->header.gfx.pos); + vec3f_copy(gMirrorMario.scale, mario->header.gfx.scale); +- ++ // FIXME: why does this set unk38, an inline struct, to a ptr to another one? wrong ++ // GraphNode types again? + gMirrorMario.animInfo = mario->header.gfx.animInfo; + mirroredX = MIRROR_X - gMirrorMario.pos[0]; + gMirrorMario.pos[0] = mirroredX + MIRROR_X; + gMirrorMario.angle[1] = -gMirrorMario.angle[1]; + gMirrorMario.scale[0] *= -1.0f; +- ((struct GraphNode *) &gMirrorMario)->flags |= 1; ++ // FIXME: Why doesn't this match? ++ // gMirrorMario.node.flags |= 1; ++ ((s16 *) &gMirrorMario)[1] |= 1; + } else { +- ((struct GraphNode *) &gMirrorMario)->flags &= ~1; ++ // FIXME: Why doesn't this match? ++ // gMirrorMario.node.flags &= ~1; ++ ((s16 *) &gMirrorMario)[1] &= ~1; + } + break; + } +diff --git a/src/game/mario_misc.c.rej b/src/game/mario_misc.c.rej +new file mode 100644 +index 0000000..937a78b +--- /dev/null ++++ b/src/game/mario_misc.c.rej +@@ -0,0 +1,142 @@ ++diff a/src/game/mario_misc.c b/src/game/mario_misc.c (rejected hunks) ++@@ -88,7 +88,7 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * ++ UNUSED Mat4 *transform = c; ++ ++ if (callContext == GEO_CONTEXT_RENDER) { ++- if (gPlayer1Controller->controllerData != NULL && !gWarpTransition.isActive) { +++ if (gPlayer1Controller->controllerData != NULL && gWarpTransition.isActive == 0) { ++ gd_copy_p1_contpad(gPlayer1Controller->controllerData); ++ } ++ gfx = (Gfx *) PHYSICAL_TO_VIRTUAL(gdm_gettestdl(asGenerated->parameter)); ++@@ -101,9 +101,9 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * ++ ++ static void toad_message_faded(void) { ++ if (gCurrentObject->oDistanceToMario > 700.0f) { ++- gCurrentObject->oToadMessageRecentlyTalked = FALSE; +++ gCurrentObject->oToadMessageRecentlyTalked = 0; ++ } ++- if (!gCurrentObject->oToadMessageRecentlyTalked && gCurrentObject->oDistanceToMario < 600.0f) { +++ if (gCurrentObject->oToadMessageRecentlyTalked == 0 && gCurrentObject->oDistanceToMario < 600.0f) { ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_OPACIFYING; ++ } ++ } ++@@ -111,12 +111,14 @@ static void toad_message_faded(void) { ++ static void toad_message_opaque(void) { ++ if (gCurrentObject->oDistanceToMario > 700.0f) { ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; ++- } else if (!gCurrentObject->oToadMessageRecentlyTalked) { ++- gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; ++- if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { ++- gCurrentObject->oInteractStatus = 0; ++- gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; ++- play_toads_jingle(); +++ } else { +++ if (gCurrentObject->oToadMessageRecentlyTalked == 0) { +++ gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; +++ if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { +++ gCurrentObject->oInteractStatus = 0; +++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; +++ play_toads_jingle(); +++ } ++ } ++ } ++ } ++@@ -124,7 +126,7 @@ static void toad_message_opaque(void) { ++ static void toad_message_talking(void) { ++ if (cur_obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG, gCurrentObject->oToadMessageDialogId) ++ != 0) { ++- gCurrentObject->oToadMessageRecentlyTalked = TRUE; +++ gCurrentObject->oToadMessageRecentlyTalked = 1; ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; ++ switch (gCurrentObject->oToadMessageDialogId) { ++ case TOAD_STAR_1_DIALOG: ++@@ -180,33 +182,33 @@ void bhv_toad_message_loop(void) { ++ ++ void bhv_toad_message_init(void) { ++ s32 saveFlags = save_file_get_flags(); ++- s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); +++ s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24); ++ s32 dialogId = (gCurrentObject->oBehParams >> 24) & 0xFF; ++ s32 enoughStars = TRUE; ++ ++ switch (dialogId) { ++ case TOAD_STAR_1_DIALOG: ++ enoughStars = (starCount >= TOAD_STAR_1_REQUIREMENT); ++- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_1) { +++ if (saveFlags & (1 << 24)) { ++ dialogId = TOAD_STAR_1_DIALOG_AFTER; ++ } ++ break; ++ case TOAD_STAR_2_DIALOG: ++ enoughStars = (starCount >= TOAD_STAR_2_REQUIREMENT); ++- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_2) { +++ if (saveFlags & (1 << 25)) { ++ dialogId = TOAD_STAR_2_DIALOG_AFTER; ++ } ++ break; ++ case TOAD_STAR_3_DIALOG: ++ enoughStars = (starCount >= TOAD_STAR_3_REQUIREMENT); ++- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_3) { +++ if (saveFlags & (1 << 26)) { ++ dialogId = TOAD_STAR_3_DIALOG_AFTER; ++ } ++ break; ++ } ++ if (enoughStars) { ++ gCurrentObject->oToadMessageDialogId = dialogId; ++- gCurrentObject->oToadMessageRecentlyTalked = FALSE; +++ gCurrentObject->oToadMessageRecentlyTalked = 0; ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADED; ++ gCurrentObject->oOpacity = 81; ++ } else { ++@@ -345,7 +347,7 @@ Gfx *geo_switch_mario_stand_run(s32 callContext, struct GraphNode *node, UNUSED ++ ++ if (callContext == GEO_CONTEXT_RENDER) { ++ // assign result. 0 if moving, 1 if stationary. ++- switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == 0); +++ switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == FALSE); ++ } ++ return NULL; ++ } ++@@ -525,7 +527,7 @@ Gfx *geo_mario_rotate_wing_cap_wings(s32 callContext, struct GraphNode *node, UN ++ if (callContext == GEO_CONTEXT_RENDER) { ++ struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) node->next; ++ ++- if (!gBodyStates[asGenerated->parameter >> 1].wingFlutter) { +++ if (gBodyStates[asGenerated->parameter >> 1].wingFlutter == FALSE) { ++ rotX = (coss((gAreaUpdateCounter & 0xF) << 12) + 1.0f) * 4096.0f; ++ } else { ++ rotX = (coss((gAreaUpdateCounter & 7) << 13) + 1.0f) * 6144.0f; ++@@ -586,7 +588,7 @@ Gfx *geo_switch_mario_hand_grab_pos(s32 callContext, struct GraphNode *b, Mat4 * ++ */ ++ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat4 *c) { ++ f32 mirroredX; ++- struct Object *mario = gMarioStates[0].marioObj; +++ struct Object *mario = gMarioStates->marioObj; ++ ++ switch (callContext) { ++ case GEO_CONTEXT_CREATE: ++@@ -606,15 +608,20 @@ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat ++ vec3s_copy(gMirrorMario.angle, mario->header.gfx.angle); ++ vec3f_copy(gMirrorMario.pos, mario->header.gfx.pos); ++ vec3f_copy(gMirrorMario.scale, mario->header.gfx.scale); ++- +++ // FIXME: why does this set unk38, an inline struct, to a ptr to another one? wrong +++ // GraphNode types again? ++ gMirrorMario.animInfo = mario->header.gfx.animInfo; ++ mirroredX = MIRROR_X - gMirrorMario.pos[0]; ++ gMirrorMario.pos[0] = mirroredX + MIRROR_X; ++ gMirrorMario.angle[1] = -gMirrorMario.angle[1]; ++ gMirrorMario.scale[0] *= -1.0f; ++- ((struct GraphNode *) &gMirrorMario)->flags |= 1; +++ // FIXME: Why doesn't this match? +++ // gMirrorMario.node.flags |= 1; +++ ((s16 *) &gMirrorMario)[1] |= 1; ++ } else { ++- ((struct GraphNode *) &gMirrorMario)->flags &= ~1; +++ // FIXME: Why doesn't this match? +++ // gMirrorMario.node.flags &= ~1; +++ ((s16 *) &gMirrorMario)[1] &= ~1; ++ } ++ break; ++ } +diff --git a/src/game/mario_step.c b/src/game/mario_step.c +index c3da0cb..3d8e6e9 100644 +--- a/src/game/mario_step.c ++++ b/src/game/mario_step.c +@@ -284,6 +284,18 @@ static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { + floor->originOffset = floorHeight; //! Wrong origin offset (no effect) + } + ++ if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) ++ } ++ ++ if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) ++ } ++ + if (nextPos[1] > floorHeight + 100.0f) { + if (nextPos[1] + 160.0f >= ceilHeight) { + return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +diff --git a/src/game/mario_step.c.rej b/src/game/mario_step.c.rej +new file mode 100644 +index 0000000..4422663 +--- /dev/null ++++ b/src/game/mario_step.c.rej +@@ -0,0 +1,1235 @@ ++diff a/src/game/mario_step.c b/src/game/mario_step.c (rejected hunks) ++@@ -12,658 +12,696 @@ ++ static s16 sMovingSandSpeeds[] = { 12, 8, 4, 0 }; ++ ++ struct Surface gWaterSurfacePseudoFloor = { ++- SURFACE_VERY_SLIPPERY, 0, 0, 0, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, ++- { 0.0f, 1.0f, 0.0f }, 0.0f, NULL, +++ SURFACE_VERY_SLIPPERY, 0, 0, 0, 0, 0,{ 0, 0, 0 },{ 0, 0, 0 },{ 0, 0, 0 }, +++ { 0.0f, 1.0f, 0.0f }, 0.0f, NULL, ++ }; ++ ++ /** ++- * Always returns zero. This may have been intended ++- * to be used for the beta trampoline. Its return value ++- * is used by set_mario_y_vel_based_on_fspeed as a constant ++- * addition to Mario's Y velocity. Given the closeness of ++- * this function to stub_mario_step_2, it is probable that this ++- * was intended to check whether a trampoline had made itself ++- * known through stub_mario_step_2 and whether Mario was on it, ++- * and if so return a higher value than 0. ++- */ +++* Always returns zero. This may have been intended +++* to be used for the beta trampoline. Its return value +++* is used by set_mario_y_vel_based_on_fspeed as a constant +++* addition to Mario's Y velocity. Given the closeness of +++* this function to stub_mario_step_2, it is probable that this +++* was intended to check whether a trampoline had made itself +++* known through stub_mario_step_2 and whether Mario was on it, +++* and if so return a higher value than 0. +++*/ ++ f32 get_additive_y_vel_for_jumps(void) { ++- return 0.0f; +++ return 0.0f; ++ } ++ ++ /** ++- * Does nothing, but takes in a MarioState. This is only ever ++- * called by update_mario_inputs, which is called as part of Mario's ++- * update routine. Due to its proximity to stub_mario_step_2, an ++- * incomplete trampoline function, and get_additive_y_vel_for_jumps, ++- * a potentially trampoline-related function, it is plausible that ++- * this could be used for checking if Mario was on the trampoline. ++- * It could, for example, make him bounce. ++- */ +++* Does nothing, but takes in a MarioState. This is only ever +++* called by update_mario_inputs, which is called as part of Mario's +++* update routine. Due to its proximity to stub_mario_step_2, an +++* incomplete trampoline function, and get_additive_y_vel_for_jumps, +++* a potentially trampoline-related function, it is plausible that +++* this could be used for checking if Mario was on the trampoline. +++* It could, for example, make him bounce. +++*/ ++ void stub_mario_step_1(UNUSED struct MarioState *x) { ++ } ++ ++ /** ++- * Does nothing. This is only called by the beta trampoline. ++- * Due to its proximity to get_additive_y_vel_for_jumps, another ++- * currently-pointless function, it is probable that this was used ++- * by the trampoline to make itself known to get_additive_y_vel_for_jumps, ++- * or to set a variable with its intended additive Y vel. ++- */ +++* Does nothing. This is only called by the beta trampoline. +++* Due to its proximity to get_additive_y_vel_for_jumps, another +++* currently-pointless function, it is probable that this was used +++* by the trampoline to make itself known to get_additive_y_vel_for_jumps, +++* or to set a variable with its intended additive Y vel. +++*/ ++ void stub_mario_step_2(void) { ++ } ++ ++ void transfer_bully_speed(struct BullyCollisionData *obj1, struct BullyCollisionData *obj2) { ++- f32 rx = obj2->posX - obj1->posX; ++- f32 rz = obj2->posZ - obj1->posZ; +++ f32 rx = obj2->posX - obj1->posX; +++ f32 rz = obj2->posZ - obj1->posZ; ++ ++- //! Bully NaN crash ++- f32 projectedV1 = (rx * obj1->velX + rz * obj1->velZ) / (rx * rx + rz * rz); ++- f32 projectedV2 = (-rx * obj2->velX - rz * obj2->velZ) / (rx * rx + rz * rz); +++ //! Bully NaN crash +++ f32 projectedV1 = (rx * obj1->velX + rz * obj1->velZ) / (rx * rx + rz * rz); +++ f32 projectedV2 = (-rx * obj2->velX - rz * obj2->velZ) / (rx * rx + rz * rz); ++ ++- // Kill speed along r. Convert one object's speed along r and transfer it to ++- // the other object. ++- obj2->velX += obj2->conversionRatio * projectedV1 * rx - projectedV2 * -rx; ++- obj2->velZ += obj2->conversionRatio * projectedV1 * rz - projectedV2 * -rz; +++ // Kill speed along r. Convert one object's speed along r and transfer it to +++ // the other object. +++ obj2->velX += obj2->conversionRatio * projectedV1 * rx - projectedV2 * -rx; +++ obj2->velZ += obj2->conversionRatio * projectedV1 * rz - projectedV2 * -rz; ++ ++- obj1->velX += -projectedV1 * rx + obj1->conversionRatio * projectedV2 * -rx; ++- obj1->velZ += -projectedV1 * rz + obj1->conversionRatio * projectedV2 * -rz; +++ obj1->velX += -projectedV1 * rx + obj1->conversionRatio * projectedV2 * -rx; +++ obj1->velZ += -projectedV1 * rz + obj1->conversionRatio * projectedV2 * -rz; ++ ++- //! Bully battery +++ //! Bully battery ++ } ++ ++ BAD_RETURN(s32) init_bully_collision_data(struct BullyCollisionData *data, f32 posX, f32 posZ, ++- f32 forwardVel, s16 yaw, f32 conversionRatio, f32 radius) { ++- if (forwardVel < 0.0f) { ++- forwardVel *= -1.0f; ++- yaw += 0x8000; ++- } ++- ++- data->radius = radius; ++- data->conversionRatio = conversionRatio; ++- data->posX = posX; ++- data->posZ = posZ; ++- data->velX = forwardVel * sins(yaw); ++- data->velZ = forwardVel * coss(yaw); +++ f32 forwardVel, s16 yaw, f32 conversionRatio, f32 radius) { +++ if (forwardVel < 0.0f) { +++ forwardVel *= -1.0f; +++ yaw += 0x8000; +++ } +++ +++ data->radius = radius; +++ data->conversionRatio = conversionRatio; +++ data->posX = posX; +++ data->posZ = posZ; +++ data->velX = forwardVel * sins(yaw); +++ data->velZ = forwardVel * coss(yaw); ++ } ++ ++ void mario_bonk_reflection(struct MarioState *m, u32 negateSpeed) { ++- if (m->wall != NULL) { ++- s16 wallAngle = atan2s(m->wall->normal.z, m->wall->normal.x); ++- m->faceAngle[1] = wallAngle - (s16)(m->faceAngle[1] - wallAngle); ++- ++- play_sound((m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_BONK : SOUND_ACTION_BONK, ++- m->marioObj->header.gfx.cameraToObject); ++- } else { ++- play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); ++- } ++- ++- if (negateSpeed) { ++- mario_set_forward_vel(m, -m->forwardVel); ++- } else { ++- m->faceAngle[1] += 0x8000; ++- } +++ if (m->wall != NULL) { +++ s16 wallAngle = atan2s(m->wall->normal.z, m->wall->normal.x); +++ m->faceAngle[1] = wallAngle - (s16)(m->faceAngle[1] - wallAngle); +++ +++ play_sound((m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_BONK : SOUND_ACTION_BONK, +++ m->marioObj->header.gfx.cameraToObject); +++ } +++ else { +++ play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); +++ } +++ +++ if (negateSpeed) { +++ mario_set_forward_vel(m, -m->forwardVel); +++ } +++ else { +++ m->faceAngle[1] += 0x8000; +++ } ++ } ++ ++ u32 mario_update_quicksand(struct MarioState *m, f32 sinkingSpeed) { ++- if (m->action & ACT_FLAG_RIDING_SHELL) { ++- m->quicksandDepth = 0.0f; ++- } else { ++- if (m->quicksandDepth < 1.1f) { ++- m->quicksandDepth = 1.1f; ++- } ++- ++- switch (m->floor->type) { ++- case SURFACE_SHALLOW_QUICKSAND: ++- if ((m->quicksandDepth += sinkingSpeed) >= 10.0f) { ++- m->quicksandDepth = 10.0f; ++- } ++- break; ++- ++- case SURFACE_SHALLOW_MOVING_QUICKSAND: ++- if ((m->quicksandDepth += sinkingSpeed) >= 25.0f) { ++- m->quicksandDepth = 25.0f; ++- } ++- break; ++- ++- case SURFACE_QUICKSAND: ++- case SURFACE_MOVING_QUICKSAND: ++- if ((m->quicksandDepth += sinkingSpeed) >= 60.0f) { ++- m->quicksandDepth = 60.0f; ++- } ++- break; ++- ++- case SURFACE_DEEP_QUICKSAND: ++- case SURFACE_DEEP_MOVING_QUICKSAND: ++- if ((m->quicksandDepth += sinkingSpeed) >= 160.0f) { ++- update_mario_sound_and_camera(m); ++- return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); ++- } ++- break; ++- ++- case SURFACE_INSTANT_QUICKSAND: ++- case SURFACE_INSTANT_MOVING_QUICKSAND: ++- update_mario_sound_and_camera(m); ++- return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); ++- break; ++- ++- default: ++- m->quicksandDepth = 0.0f; ++- break; ++- } ++- } ++- ++- return FALSE; +++ if (m->action & ACT_FLAG_RIDING_SHELL) { +++ m->quicksandDepth = 0.0f; +++ } +++ else { +++ if (m->quicksandDepth < 1.1f) { +++ m->quicksandDepth = 1.1f; +++ } +++ +++ switch (m->floor->type) { +++ case SURFACE_SHALLOW_QUICKSAND: +++ if ((m->quicksandDepth += sinkingSpeed) >= 10.0f) { +++ m->quicksandDepth = 10.0f; +++ } +++ break; +++ +++ case SURFACE_SHALLOW_MOVING_QUICKSAND: +++ if ((m->quicksandDepth += sinkingSpeed) >= 25.0f) { +++ m->quicksandDepth = 25.0f; +++ } +++ break; +++ +++ case SURFACE_QUICKSAND: +++ case SURFACE_MOVING_QUICKSAND: +++ if ((m->quicksandDepth += sinkingSpeed) >= 60.0f) { +++ m->quicksandDepth = 60.0f; +++ } +++ break; +++ +++ case SURFACE_DEEP_QUICKSAND: +++ case SURFACE_DEEP_MOVING_QUICKSAND: +++ if ((m->quicksandDepth += sinkingSpeed) >= 160.0f) { +++ update_mario_sound_and_camera(m); +++ return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); +++ } +++ break; +++ +++ case SURFACE_INSTANT_QUICKSAND: +++ case SURFACE_INSTANT_MOVING_QUICKSAND: +++ update_mario_sound_and_camera(m); +++ return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); +++ break; +++ +++ default: +++ m->quicksandDepth = 0.0f; +++ break; +++ } +++ } +++ +++ return 0; ++ } ++ ++ u32 mario_push_off_steep_floor(struct MarioState *m, u32 action, u32 actionArg) { ++- s16 floorDYaw = m->floorAngle - m->faceAngle[1]; ++- ++- if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { ++- m->forwardVel = 16.0f; ++- m->faceAngle[1] = m->floorAngle; ++- } else { ++- m->forwardVel = -16.0f; ++- m->faceAngle[1] = m->floorAngle + 0x8000; ++- } ++- ++- return set_mario_action(m, action, actionArg); +++ s16 floorDYaw = m->floorAngle - m->faceAngle[1]; +++ +++ if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { +++ m->forwardVel = 16.0f; +++ m->faceAngle[1] = m->floorAngle; +++ } +++ else { +++ m->forwardVel = -16.0f; +++ m->faceAngle[1] = m->floorAngle + 0x8000; +++ } +++ +++ return set_mario_action(m, action, actionArg); ++ } ++ ++ u32 mario_update_moving_sand(struct MarioState *m) { ++- struct Surface *floor = m->floor; ++- s32 floorType = floor->type; +++ struct Surface *floor = m->floor; +++ s32 floorType = floor->type; ++ ++- if (floorType == SURFACE_DEEP_MOVING_QUICKSAND || floorType == SURFACE_SHALLOW_MOVING_QUICKSAND ++- || floorType == SURFACE_MOVING_QUICKSAND || floorType == SURFACE_INSTANT_MOVING_QUICKSAND) { ++- s16 pushAngle = floor->force << 8; ++- f32 pushSpeed = sMovingSandSpeeds[floor->force >> 8]; +++ if (floorType == SURFACE_DEEP_MOVING_QUICKSAND || floorType == SURFACE_SHALLOW_MOVING_QUICKSAND +++ || floorType == SURFACE_MOVING_QUICKSAND || floorType == SURFACE_INSTANT_MOVING_QUICKSAND) { +++ s16 pushAngle = floor->force << 8; +++ f32 pushSpeed = sMovingSandSpeeds[floor->force >> 8]; ++ ++- m->vel[0] += pushSpeed * sins(pushAngle); ++- m->vel[2] += pushSpeed * coss(pushAngle); +++ m->vel[0] += pushSpeed * sins(pushAngle); +++ m->vel[2] += pushSpeed * coss(pushAngle); ++ ++- return TRUE; ++- } +++ return 1; +++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ u32 mario_update_windy_ground(struct MarioState *m) { ++- struct Surface *floor = m->floor; +++ struct Surface *floor = m->floor; ++ ++- if (floor->type == SURFACE_HORIZONTAL_WIND) { ++- f32 pushSpeed; ++- s16 pushAngle = floor->force << 8; +++ if (floor->type == SURFACE_HORIZONTAL_WIND) { +++ f32 pushSpeed; +++ s16 pushAngle = floor->force << 8; ++ ++- if (m->action & ACT_FLAG_MOVING) { ++- s16 pushDYaw = m->faceAngle[1] - pushAngle; +++ if (m->action & ACT_FLAG_MOVING) { +++ s16 pushDYaw = m->faceAngle[1] - pushAngle; ++ ++- pushSpeed = m->forwardVel > 0.0f ? -m->forwardVel * 0.5f : -8.0f; +++ pushSpeed = m->forwardVel > 0.0f ? -m->forwardVel * 0.5f : -8.0f; ++ ++- if (pushDYaw > -0x4000 && pushDYaw < 0x4000) { ++- pushSpeed *= -1.0f; ++- } +++ if (pushDYaw > -0x4000 && pushDYaw < 0x4000) { +++ pushSpeed *= -1.0f; +++ } ++ ++- pushSpeed *= coss(pushDYaw); ++- } else { ++- pushSpeed = 3.2f + (gGlobalTimer % 4); ++- } +++ pushSpeed *= coss(pushDYaw); +++ } +++ else { +++ pushSpeed = 3.2f + (gGlobalTimer % 4); +++ } ++ ++- m->vel[0] += pushSpeed * sins(pushAngle); ++- m->vel[2] += pushSpeed * coss(pushAngle); +++ m->vel[0] += pushSpeed * sins(pushAngle); +++ m->vel[2] += pushSpeed * coss(pushAngle); ++ ++ #if VERSION_JP ++- play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); +++ play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); ++ #endif ++- return TRUE; ++- } +++ return 1; +++ } ++ ++- return FALSE; +++ return 0; ++ } ++ ++ void stop_and_set_height_to_floor(struct MarioState *m) { ++- struct Object *marioObj = m->marioObj; +++ struct Object *marioObj = m->marioObj; ++ ++- mario_set_forward_vel(m, 0.0f); ++- m->vel[1] = 0.0f; +++ mario_set_forward_vel(m, 0.0f); +++ m->vel[1] = 0.0f; ++ ++- //! This is responsible for some downwarps. ++- m->pos[1] = m->floorHeight; +++ //! This is responsible for some downwarps. +++ m->pos[1] = m->floorHeight; ++ ++- vec3f_copy(marioObj->header.gfx.pos, m->pos); ++- vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +++ vec3f_copy(marioObj->header.gfx.pos, m->pos); +++ vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ } ++ ++ s32 stationary_ground_step(struct MarioState *m) { ++- u32 takeStep; ++- struct Object *marioObj = m->marioObj; ++- u32 stepResult = GROUND_STEP_NONE; +++ u32 takeStep; +++ struct Object *marioObj = m->marioObj; +++ u32 stepResult = GROUND_STEP_NONE; +++ +++ mario_set_forward_vel(m, 0.0f); +++ +++ takeStep = mario_update_moving_sand(m); +++ takeStep |= mario_update_windy_ground(m); +++ if (takeStep) { +++ stepResult = perform_ground_step(m); +++ } +++ else { +++ //! This is responsible for several stationary downwarps. +++ m->pos[1] = m->floorHeight; +++ +++ vec3f_copy(marioObj->header.gfx.pos, m->pos); +++ vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +++ } +++ +++ return stepResult; +++} +++ +++static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { +++ UNUSED struct Surface *lowerWall; +++ struct Surface *upperWall; +++ struct Surface *ceil; +++ struct Surface *floor; +++ f32 ceilHeight; +++ f32 floorHeight; +++ f32 waterLevel; ++ ++- mario_set_forward_vel(m, 0.0f); ++ ++- takeStep = mario_update_moving_sand(m); ++- takeStep |= mario_update_windy_ground(m); ++- if (takeStep) { ++- stepResult = perform_ground_step(m); ++- } else { ++- //! This is responsible for several stationary downwarps. ++- m->pos[1] = m->floorHeight; ++ ++- vec3f_copy(marioObj->header.gfx.pos, m->pos); ++- vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++- } +++ lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 24.0f); +++ upperWall = resolve_and_return_wall_collisions(nextPos, 60.0f, 50.0f); ++ ++- return stepResult; ++-} +++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++ ++-static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { ++- UNUSED struct Surface *lowerWall; ++- struct Surface *upperWall; ++- struct Surface *ceil; ++- struct Surface *floor; ++- f32 ceilHeight; ++- f32 floorHeight; ++- f32 waterLevel; ++- ++- lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 24.0f); ++- upperWall = resolve_and_return_wall_collisions(nextPos, 60.0f, 50.0f); ++- ++- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++- ++- waterLevel = find_water_level(nextPos[0], nextPos[2]); ++- ++- m->wall = upperWall; ++- ++- if (floor == NULL) { ++- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++- } ++- ++- if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { ++- floorHeight = waterLevel; ++- floor = &gWaterSurfacePseudoFloor; ++- floor->originOffset = floorHeight; //! Wrong origin offset (no effect) ++- } ++- ++- if (nextPos[1] > floorHeight + 100.0f) { ++- if (nextPos[1] + 160.0f >= ceilHeight) { ++- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++- } ++- ++- vec3f_copy(m->pos, nextPos); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- return GROUND_STEP_LEFT_GROUND; ++- } ++- ++- if (floorHeight + 160.0f >= ceilHeight) { ++- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++- } ++- ++- vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- ++- if (upperWall != NULL) { ++- s16 wallDYaw = atan2s(upperWall->normal.z, upperWall->normal.x) - m->faceAngle[1]; ++- ++- if (wallDYaw >= 0x2AAA && wallDYaw <= 0x5555) { ++- return GROUND_STEP_NONE; ++- } ++- if (wallDYaw <= -0x2AAA && wallDYaw >= -0x5555) { ++- return GROUND_STEP_NONE; ++- } ++- ++- return GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS; ++- } ++- ++- return GROUND_STEP_NONE; +++ waterLevel = find_water_level(nextPos[0], nextPos[2]); +++ +++ m->wall = upperWall; +++ +++ if (floor == NULL) { +++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +++ } +++ +++ if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { +++ floorHeight = waterLevel; +++ floor = &gWaterSurfacePseudoFloor; +++ floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) +++ } +++ +++ if ((m->action == ACT_WALKING ) && floorHeight < waterLevel && m->forwardVel > 45.0f) { +++ floorHeight = waterLevel; +++ floor = &gWaterSurfacePseudoFloor; +++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) +++ } +++ +++ if (nextPos[1] > floorHeight + 100.0f) { +++ if (nextPos[1] + 160.0f >= ceilHeight) { +++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +++ } +++ +++ vec3f_copy(m->pos, nextPos); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ return GROUND_STEP_LEFT_GROUND; +++ } +++ +++ if (floorHeight + 160.0f >= ceilHeight) { +++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +++ } +++ +++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ +++ if (upperWall != NULL) { +++ s16 wallDYaw = atan2s(upperWall->normal.z, upperWall->normal.x) - m->faceAngle[1]; +++ +++ if (wallDYaw >= 0x2AAA && wallDYaw <= 0x5555) { +++ return GROUND_STEP_NONE; +++ } +++ if (wallDYaw <= -0x2AAA && wallDYaw >= -0x5555) { +++ return GROUND_STEP_NONE; +++ } +++ +++ return GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS; +++ } +++ +++ return GROUND_STEP_NONE; ++ } ++ ++ s32 perform_ground_step(struct MarioState *m) { ++- s32 i; ++- u32 stepResult; ++- Vec3f intendedPos; ++- ++- for (i = 0; i < 4; i++) { ++- intendedPos[0] = m->pos[0] + m->floor->normal.y * (m->vel[0] / 4.0f); ++- intendedPos[2] = m->pos[2] + m->floor->normal.y * (m->vel[2] / 4.0f); ++- intendedPos[1] = m->pos[1]; ++- ++- stepResult = perform_ground_quarter_step(m, intendedPos); ++- if (stepResult == GROUND_STEP_LEFT_GROUND || stepResult == GROUND_STEP_HIT_WALL_STOP_QSTEPS) { ++- break; ++- } ++- } ++- ++- m->terrainSoundAddend = mario_get_terrain_sound_addend(m); ++- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++- ++- if (stepResult == GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS) { ++- stepResult = GROUND_STEP_HIT_WALL; ++- } ++- return stepResult; +++ s32 i; +++ u32 stepResult; +++ Vec3f intendedPos; +++ +++ +++ +++ +++ +++ +++ for (i = 0; i < 4; i++) { +++ intendedPos[0] = m->pos[0] + m->floor->normal.y * (m->vel[0] / 4.0f); +++ intendedPos[2] = m->pos[2] + m->floor->normal.y * (m->vel[2] / 4.0f); +++ intendedPos[1] = m->pos[1]; +++ +++ stepResult = perform_ground_quarter_step(m, intendedPos); +++ if (stepResult == GROUND_STEP_LEFT_GROUND || stepResult == GROUND_STEP_HIT_WALL_STOP_QSTEPS) { +++ break; +++ } +++ } +++ +++ m->terrainSoundAddend = mario_get_terrain_sound_addend(m); +++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +++ +++ if (stepResult == GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS) { +++ stepResult = GROUND_STEP_HIT_WALL; +++ } +++ return stepResult; ++ } ++ ++ u32 check_ledge_grab(struct MarioState *m, struct Surface *wall, Vec3f intendedPos, Vec3f nextPos) { ++- struct Surface *ledgeFloor; ++- Vec3f ledgePos; ++- f32 displacementX; ++- f32 displacementZ; ++- ++- if (m->vel[1] > 0) { ++- return FALSE; ++- } ++- ++- displacementX = nextPos[0] - intendedPos[0]; ++- displacementZ = nextPos[2] - intendedPos[2]; ++- ++- // Only ledge grab if the wall displaced Mario in the opposite direction of ++- // his velocity. ++- if (displacementX * m->vel[0] + displacementZ * m->vel[2] > 0.0f) { ++- return FALSE; ++- } ++- ++- //! Since the search for floors starts at y + 160, we will sometimes grab ++- // a higher ledge than expected (glitchy ledge grab) ++- ledgePos[0] = nextPos[0] - wall->normal.x * 60.0f; ++- ledgePos[2] = nextPos[2] - wall->normal.z * 60.0f; ++- ledgePos[1] = find_floor(ledgePos[0], nextPos[1] + 160.0f, ledgePos[2], &ledgeFloor); ++- ++- if (ledgePos[1] - nextPos[1] <= 100.0f) { ++- return FALSE; ++- } ++- ++- vec3f_copy(m->pos, ledgePos); ++- m->floor = ledgeFloor; ++- m->floorHeight = ledgePos[1]; ++- ++- m->floorAngle = atan2s(ledgeFloor->normal.z, ledgeFloor->normal.x); ++- ++- m->faceAngle[0] = 0; ++- m->faceAngle[1] = atan2s(wall->normal.z, wall->normal.x) + 0x8000; ++- return TRUE; +++ struct Surface *ledgeFloor; +++ Vec3f ledgePos; +++ f32 displacementX; +++ f32 displacementZ; +++ +++ if (m->vel[1] > 0) { +++ return 0; +++ } +++ +++ displacementX = nextPos[0] - intendedPos[0]; +++ displacementZ = nextPos[2] - intendedPos[2]; +++ +++ // Only ledge grab if the wall displaced Mario in the opposite direction of +++ // his velocity. +++ if (displacementX * m->vel[0] + displacementZ * m->vel[2] > 0.0f) { +++ return 0; +++ } +++ +++ //! Since the search for floors starts at y + 160, we will sometimes grab +++ // a higher ledge than expected (glitchy ledge grab) +++ ledgePos[0] = nextPos[0] - wall->normal.x * 60.0f; +++ ledgePos[2] = nextPos[2] - wall->normal.z * 60.0f; +++ ledgePos[1] = find_floor(ledgePos[0], nextPos[1] + 160.0f, ledgePos[2], &ledgeFloor); +++ +++ if (ledgePos[1] - nextPos[1] <= 100.0f) { +++ return 0; +++ } +++ +++ vec3f_copy(m->pos, ledgePos); +++ m->floor = ledgeFloor; +++ m->floorHeight = ledgePos[1]; +++ +++ m->floorAngle = atan2s(ledgeFloor->normal.z, ledgeFloor->normal.x); +++ +++ m->faceAngle[0] = 0; +++ m->faceAngle[1] = atan2s(wall->normal.z, wall->normal.x) + 0x8000; +++ return 1; ++ } ++ ++ s32 perform_air_quarter_step(struct MarioState *m, Vec3f intendedPos, u32 stepArg) { ++- s16 wallDYaw; ++- Vec3f nextPos; ++- struct Surface *upperWall; ++- struct Surface *lowerWall; ++- struct Surface *ceil; ++- struct Surface *floor; ++- f32 ceilHeight; ++- f32 floorHeight; ++- f32 waterLevel; ++- ++- vec3f_copy(nextPos, intendedPos); ++- ++- upperWall = resolve_and_return_wall_collisions(nextPos, 150.0f, 50.0f); ++- lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 50.0f); ++- ++- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++- ++- waterLevel = find_water_level(nextPos[0], nextPos[2]); ++- ++- m->wall = NULL; ++- ++- //! The water pseudo floor is not referenced when your intended qstep is ++- // out of bounds, so it won't detect you as landing. ++- ++- if (floor == NULL) { ++- if (nextPos[1] <= m->floorHeight) { ++- m->pos[1] = m->floorHeight; ++- return AIR_STEP_LANDED; ++- } ++- ++- m->pos[1] = nextPos[1]; ++- return AIR_STEP_HIT_WALL; ++- } ++- ++- if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { ++- floorHeight = waterLevel; ++- floor = &gWaterSurfacePseudoFloor; ++- floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) ++- } ++- ++- //! This check uses f32, but findFloor uses short (overflow jumps) ++- if (nextPos[1] <= floorHeight) { ++- if (ceilHeight - floorHeight > 160.0f) { ++- m->pos[0] = nextPos[0]; ++- m->pos[2] = nextPos[2]; ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- } ++- ++- //! When ceilHeight - floorHeight <= 160, the step result says that ++- // Mario landed, but his movement is cancelled and his referenced floor ++- // isn't updated (pedro spots) ++- m->pos[1] = floorHeight; ++- return AIR_STEP_LANDED; ++- } ++- ++- if (nextPos[1] + 160.0f > ceilHeight) { ++- if (m->vel[1] >= 0.0f) { ++- m->vel[1] = 0.0f; ++- ++- //! Uses referenced ceiling instead of ceil (ceiling hang upwarp) ++- if ((stepArg & AIR_STEP_CHECK_HANG) && m->ceil != NULL ++- && m->ceil->type == SURFACE_HANGABLE) { ++- return AIR_STEP_GRABBED_CEILING; ++- } ++- ++- return AIR_STEP_NONE; ++- } ++- ++- //! Potential subframe downwarp->upwarp? ++- if (nextPos[1] <= m->floorHeight) { ++- m->pos[1] = m->floorHeight; ++- return AIR_STEP_LANDED; ++- } ++- ++- m->pos[1] = nextPos[1]; ++- return AIR_STEP_HIT_WALL; ++- } ++- ++- //! When the wall is not completely vertical or there is a slight wall ++- // misalignment, you can activate these conditions in unexpected situations ++- if ((stepArg & AIR_STEP_CHECK_LEDGE_GRAB) && upperWall == NULL && lowerWall != NULL) { ++- if (check_ledge_grab(m, lowerWall, intendedPos, nextPos)) { ++- return AIR_STEP_GRABBED_LEDGE; ++- } ++- ++- vec3f_copy(m->pos, nextPos); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- return AIR_STEP_NONE; ++- } ++- ++- vec3f_copy(m->pos, nextPos); ++- m->floor = floor; ++- m->floorHeight = floorHeight; ++- ++- if (upperWall != NULL || lowerWall != NULL) { ++- m->wall = upperWall != NULL ? upperWall : lowerWall; ++- wallDYaw = atan2s(m->wall->normal.z, m->wall->normal.x) - m->faceAngle[1]; ++- ++- if (m->wall->type == SURFACE_BURNING) { ++- return AIR_STEP_HIT_LAVA_WALL; ++- } ++- ++- if (wallDYaw < -0x6000 || wallDYaw > 0x6000) { ++- m->flags |= MARIO_UNKNOWN_30; ++- return AIR_STEP_HIT_WALL; ++- } ++- } ++- ++- return AIR_STEP_NONE; +++ s16 wallDYaw; +++ Vec3f nextPos; +++ struct Surface *upperWall; +++ struct Surface *lowerWall; +++ struct Surface *ceil; +++ struct Surface *floor; +++ f32 ceilHeight; +++ f32 floorHeight; +++ f32 waterLevel; +++ +++ +++ +++ if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { +++ floorHeight = waterLevel; +++ floor = &gWaterSurfacePseudoFloor; +++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) +++ } +++ +++ vec3f_copy(nextPos, intendedPos); +++ +++ upperWall = resolve_and_return_wall_collisions(nextPos, 150.0f, 50.0f); +++ lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 50.0f); +++ +++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +++ +++ waterLevel = find_water_level(nextPos[0], nextPos[2]); +++ +++ m->wall = NULL; +++ +++ //! The water pseudo floor is not referenced when your intended qstep is +++ // out of bounds, so it won't detect you as landing. +++ +++ if (floor == NULL) { +++ if (nextPos[1] <= m->floorHeight) { +++ m->pos[1] = m->floorHeight; +++ return AIR_STEP_LANDED; +++ } +++ +++ m->pos[1] = nextPos[1]; +++ return AIR_STEP_HIT_WALL; +++ } +++ +++ if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { +++ floorHeight = waterLevel; +++ floor = &gWaterSurfacePseudoFloor; +++ floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) +++ } +++ +++ +++ //! This check uses f32, but findFloor uses short (overflow jumps) +++ if (nextPos[1] <= floorHeight) { +++ if (ceilHeight - floorHeight > 160.0f) { +++ m->pos[0] = nextPos[0]; +++ m->pos[2] = nextPos[2]; +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ } +++ +++ //! When ceilHeight - floorHeight <= 160, the step result says that +++ // Mario landed, but his movement is cancelled and his referenced floor +++ // isn't updated (pedro spots) +++ m->pos[1] = floorHeight; +++ return AIR_STEP_LANDED; +++ } +++ +++ if (nextPos[1] + 160.0f > ceilHeight) { +++ if (m->vel[1] >= 0.0f) { +++ m->vel[1] = 0.0f; +++ +++ //! Uses referenced ceiling instead of ceil (ceiling hang upwarp) +++ if ((stepArg & AIR_STEP_CHECK_HANG) && m->ceil != NULL +++ && m->ceil->type == SURFACE_HANGABLE) { +++ return AIR_STEP_GRABBED_CEILING; +++ } +++ +++ return AIR_STEP_NONE; +++ } +++ +++ //! Potential subframe downwarp->upwarp? +++ if (nextPos[1] <= m->floorHeight) { +++ m->pos[1] = m->floorHeight; +++ return AIR_STEP_LANDED; +++ } +++ +++ m->pos[1] = nextPos[1]; +++ return AIR_STEP_HIT_WALL; +++ } +++ +++ //! When the wall is not completely vertical or there is a slight wall +++ // misalignment, you can activate these conditions in unexpected situations +++ if ((stepArg & AIR_STEP_CHECK_LEDGE_GRAB) && upperWall == NULL && lowerWall != NULL) { +++ if (check_ledge_grab(m, lowerWall, intendedPos, nextPos)) { +++ return AIR_STEP_GRABBED_LEDGE; +++ } +++ +++ vec3f_copy(m->pos, nextPos); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ return AIR_STEP_NONE; +++ } +++ +++ vec3f_copy(m->pos, nextPos); +++ m->floor = floor; +++ m->floorHeight = floorHeight; +++ +++ if (upperWall != NULL || lowerWall != NULL) { +++ m->wall = upperWall != NULL ? upperWall : lowerWall; +++ wallDYaw = atan2s(m->wall->normal.z, m->wall->normal.x) - m->faceAngle[1]; +++ +++ if (m->wall->type == SURFACE_BURNING) { +++ return AIR_STEP_HIT_LAVA_WALL; +++ } +++ +++ if (wallDYaw < -0x6000 || wallDYaw > 0x6000) { +++ m->flags |= MARIO_UNKNOWN_30; +++ return AIR_STEP_HIT_WALL; +++ } +++ } +++ +++ return AIR_STEP_NONE; ++ } ++ ++ void apply_twirl_gravity(struct MarioState *m) { ++- f32 terminalVelocity; ++- f32 heaviness = 1.0f; +++ f32 terminalVelocity; +++ f32 heaviness = 1.0f; ++ ++- if (m->angleVel[1] > 1024) { ++- heaviness = 1024.0f / m->angleVel[1]; ++- } +++ if (m->angleVel[1] > 1024) { +++ heaviness = 1024.0f / m->angleVel[1]; +++ } ++ ++- terminalVelocity = -75.0f * heaviness; +++ terminalVelocity = -75.0f * heaviness; ++ ++- m->vel[1] -= 4.0f * heaviness; ++- if (m->vel[1] < terminalVelocity) { ++- m->vel[1] = terminalVelocity; ++- } +++ m->vel[1] -= 4.0f * heaviness; +++ if (m->vel[1] < terminalVelocity) { +++ m->vel[1] = terminalVelocity; +++ } ++ } ++ ++ u32 should_strengthen_gravity_for_jump_ascent(struct MarioState *m) { ++- if (!(m->flags & MARIO_UNKNOWN_08)) { ++- return FALSE; ++- } +++ if (!(m->flags & MARIO_UNKNOWN_08)) { +++ return FALSE; +++ } ++ ++- if (m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)) { ++- return FALSE; ++- } +++ if (m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)) { +++ return FALSE; +++ } ++ ++- if (!(m->input & INPUT_A_DOWN) && m->vel[1] > 20.0f) { ++- return (m->action & ACT_FLAG_CONTROL_JUMP_HEIGHT) != 0; ++- } +++ if (!(m->input & INPUT_A_DOWN) && m->vel[1] > 20.0f) { +++ return (m->action & ACT_FLAG_CONTROL_JUMP_HEIGHT) != 0; +++ } ++ ++- return FALSE; +++ return FALSE; ++ } ++ ++ void apply_gravity(struct MarioState *m) { ++- if (m->action == ACT_TWIRLING && m->vel[1] < 0.0f) { ++- apply_twirl_gravity(m); ++- } else if (m->action == ACT_SHOT_FROM_CANNON) { ++- m->vel[1] -= 1.0f; ++- if (m->vel[1] < -75.0f) { ++- m->vel[1] = -75.0f; ++- } ++- } else if (m->action == ACT_LONG_JUMP || m->action == ACT_SLIDE_KICK ++- || m->action == ACT_BBH_ENTER_SPIN) { ++- m->vel[1] -= 2.0f; ++- if (m->vel[1] < -75.0f) { ++- m->vel[1] = -75.0f; ++- } ++- } else if (m->action == ACT_LAVA_BOOST || m->action == ACT_FALL_AFTER_STAR_GRAB) { ++- m->vel[1] -= 3.2f; ++- if (m->vel[1] < -65.0f) { ++- m->vel[1] = -65.0f; ++- } ++- } else if (m->action == ACT_GETTING_BLOWN) { ++- m->vel[1] -= m->unkC4; ++- if (m->vel[1] < -75.0f) { ++- m->vel[1] = -75.0f; ++- } ++- } else if (should_strengthen_gravity_for_jump_ascent(m)) { ++- m->vel[1] /= 4.0f; ++- } else if (m->action & ACT_FLAG_METAL_WATER) { ++- m->vel[1] -= 1.6f; ++- if (m->vel[1] < -16.0f) { ++- m->vel[1] = -16.0f; ++- } ++- } else if ((m->flags & MARIO_WING_CAP) && m->vel[1] < 0.0f && (m->input & INPUT_A_DOWN)) { ++- m->marioBodyState->wingFlutter = TRUE; ++- ++- m->vel[1] -= 2.0f; ++- if (m->vel[1] < -37.5f) { ++- if ((m->vel[1] += 4.0f) > -37.5f) { ++- m->vel[1] = -37.5f; ++- } ++- } ++- } else { ++- m->vel[1] -= 4.0f; ++- if (m->vel[1] < -75.0f) { ++- m->vel[1] = -75.0f; ++- } ++- } +++ if (m->action == ACT_TWIRLING && m->vel[1] < 0.0f) { +++ apply_twirl_gravity(m); +++ } +++ else if (m->action == ACT_SHOT_FROM_CANNON) { +++ m->vel[1] -= 1.0f; +++ if (m->vel[1] < -75.0f) { +++ m->vel[1] = -75.0f; +++ } +++ } +++ else if (m->action == ACT_LONG_JUMP || m->action == ACT_SLIDE_KICK +++ || m->action == ACT_BBH_ENTER_SPIN) { +++ m->vel[1] -= 2.0f; +++ if (m->vel[1] < -75.0f) { +++ m->vel[1] = -75.0f; +++ } +++ } +++ else if (m->action == ACT_LAVA_BOOST || m->action == ACT_FALL_AFTER_STAR_GRAB) { +++ m->vel[1] -= 3.2f; +++ if (m->vel[1] < -65.0f) { +++ m->vel[1] = -65.0f; +++ } +++ } +++ else if (m->action == ACT_GETTING_BLOWN) { +++ m->vel[1] -= m->unkC4; +++ if (m->vel[1] < -75.0f) { +++ m->vel[1] = -75.0f; +++ } +++ } +++ else if (should_strengthen_gravity_for_jump_ascent(m)) { +++ m->vel[1] /= 4.0f; +++ } +++ else if (m->action & ACT_FLAG_METAL_WATER) { +++ m->vel[1] -= 1.6f; +++ if (m->vel[1] < -16.0f) { +++ m->vel[1] = -16.0f; +++ } +++ } +++ else if ((m->flags & MARIO_WING_CAP) && m->vel[1] < 0.0f && (m->input & INPUT_A_DOWN)) { +++ m->marioBodyState->wingFlutter = TRUE; +++ +++ m->vel[1] -= 2.0f; +++ if (m->vel[1] < -37.5f) { +++ if ((m->vel[1] += 4.0f) > -37.5f) { +++ m->vel[1] = -37.5f; +++ } +++ } +++ } +++ else { +++ m->vel[1] -= 4.0f; +++ if (m->vel[1] < -75.0f) { +++ m->vel[1] = -75.0f; +++ } +++ } ++ } ++ ++ void apply_vertical_wind(struct MarioState *m) { ++- f32 maxVelY; ++- f32 offsetY; ++- ++- if (m->action != ACT_GROUND_POUND) { ++- offsetY = m->pos[1] - -1500.0f; ++- ++- if (m->floor->type == SURFACE_VERTICAL_WIND && -3000.0f < offsetY && offsetY < 2000.0f) { ++- if (offsetY >= 0.0f) { ++- maxVelY = 10000.0f / (offsetY + 200.0f); ++- } else { ++- maxVelY = 50.0f; ++- } ++- ++- if (m->vel[1] < maxVelY) { ++- if ((m->vel[1] += maxVelY / 8.0f) > maxVelY) { ++- m->vel[1] = maxVelY; ++- } ++- } +++ f32 maxVelY; +++ f32 offsetY; +++ +++ if (m->action != ACT_GROUND_POUND) { +++ offsetY = m->pos[1] - -1500.0f; +++ +++ if (m->floor->type == SURFACE_VERTICAL_WIND && -3000.0f < offsetY && offsetY < 2000.0f) { +++ if (offsetY >= 0.0f) { +++ maxVelY = 10000.0f / (offsetY + 200.0f); +++ } +++ else { +++ maxVelY = 50.0f; +++ } +++ +++ if (m->vel[1] < maxVelY) { +++ if ((m->vel[1] += maxVelY / 8.0f) > maxVelY) { +++ m->vel[1] = maxVelY; +++ } +++ } ++ ++ #ifdef VERSION_JP ++- play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); +++ play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); ++ #endif ++- } ++- } +++ } +++ } ++ } ++ ++ s32 perform_air_step(struct MarioState *m, u32 stepArg) { ++- Vec3f intendedPos; ++- s32 i; ++- s32 quarterStepResult; ++- s32 stepResult = AIR_STEP_NONE; +++ Vec3f intendedPos; +++ s32 i; +++ s32 quarterStepResult; +++ s32 stepResult = AIR_STEP_NONE; +++ +++ m->wall = NULL; ++ ++- m->wall = NULL; ++ ++- for (i = 0; i < 4; i++) { ++- intendedPos[0] = m->pos[0] + m->vel[0] / 4.0f; ++- intendedPos[1] = m->pos[1] + m->vel[1] / 4.0f; ++- intendedPos[2] = m->pos[2] + m->vel[2] / 4.0f; +++ for (i = 0; i < 4; i++) { +++ intendedPos[0] = m->pos[0] + m->vel[0] / 4.0f; +++ intendedPos[1] = m->pos[1] + m->vel[1] / 4.0f; +++ intendedPos[2] = m->pos[2] + m->vel[2] / 4.0f; ++ ++- quarterStepResult = perform_air_quarter_step(m, intendedPos, stepArg); +++ quarterStepResult = perform_air_quarter_step(m, intendedPos, stepArg); ++ ++- //! On one qf, hit OOB/ceil/wall to store the 2 return value, and continue ++- // getting 0s until your last qf. Graze a wall on your last qf, and it will ++- // return the stored 2 with a sharply angled reference wall. (some gwks) +++ //! On one qf, hit OOB/ceil/wall to store the 2 return value, and continue +++ // getting 0s until your last qf. Graze a wall on your last qf, and it will +++ // return the stored 2 with a sharply angled reference wall. (some gwks) ++ ++- if (quarterStepResult != AIR_STEP_NONE) { ++- stepResult = quarterStepResult; ++- } +++ if (quarterStepResult != AIR_STEP_NONE) { +++ stepResult = quarterStepResult; +++ } ++ ++- if (quarterStepResult == AIR_STEP_LANDED || quarterStepResult == AIR_STEP_GRABBED_LEDGE ++- || quarterStepResult == AIR_STEP_GRABBED_CEILING ++- || quarterStepResult == AIR_STEP_HIT_LAVA_WALL) { ++- break; ++- } ++- } +++ if (quarterStepResult == AIR_STEP_LANDED || quarterStepResult == AIR_STEP_GRABBED_LEDGE +++ || quarterStepResult == AIR_STEP_GRABBED_CEILING +++ || quarterStepResult == AIR_STEP_HIT_LAVA_WALL) { +++ break; +++ } +++ } ++ ++- if (m->vel[1] >= 0.0f) { ++- m->peakHeight = m->pos[1]; ++- } +++ if (m->vel[1] >= 0.0f) { +++ m->peakHeight = m->pos[1]; +++ } ++ ++- m->terrainSoundAddend = mario_get_terrain_sound_addend(m); +++ m->terrainSoundAddend = mario_get_terrain_sound_addend(m); ++ ++- if (m->action != ACT_FLYING) { ++- apply_gravity(m); ++- } ++- apply_vertical_wind(m); +++ if (m->action != ACT_FLYING) { +++ apply_gravity(m); +++ } +++ apply_vertical_wind(m); ++ ++- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ ++- return stepResult; +++ return stepResult; ++ } ++ ++ // They had these functions the whole time and never used them? Lol ++ ++ void set_vel_from_pitch_and_yaw(struct MarioState *m) { ++- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++- m->vel[1] = m->forwardVel * sins(m->faceAngle[0]); ++- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); +++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]); +++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ } ++ ++ void set_vel_from_yaw(struct MarioState *m) { ++- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++- m->vel[1] = 0.0f; ++- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +++ m->vel[1] = 0.0f; +++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ } +diff --git a/src/game/memory.c b/src/game/memory.c +index 5f3b329..326e24c 100644 +--- a/src/game/memory.c ++++ b/src/game/memory.c +@@ -54,7 +54,9 @@ extern struct MainPoolBlock *sPoolListHeadR; + */ + struct MemoryPool *gEffectsMemoryPool; + ++ + uintptr_t sSegmentTable[32]; ++uintptr_t sSegmentROMTable[32]; + u32 sPoolFreeSpace; + u8 *sPoolStart; + u8 *sPoolEnd; +@@ -284,7 +286,7 @@ void *load_segment(s32 segment, u8 *srcStart, u8 *srcEnd, u32 side) { + void *addr = dynamic_dma_read(srcStart, srcEnd, side); + + if (addr != NULL) { +- set_segment_base_addr(segment, addr); ++ set_segment_base_addr(segment, addr); sSegmentROMTable[segment] = (uintptr_t) srcStart; + } + return addr; + } +@@ -333,7 +335,7 @@ void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd) { + dest = main_pool_alloc(*size, MEMORY_POOL_LEFT); + if (dest != NULL) { + decompress(compressed, dest); +- set_segment_base_addr(segment, dest); ++ set_segment_base_addr(segment, dest); sSegmentROMTable[segment] = (uintptr_t) srcStart; + main_pool_free(compressed); + } else { + } +@@ -351,7 +353,7 @@ void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd) { + if (compressed != NULL) { + dma_read(compressed, srcStart, srcEnd); + decompress(compressed, gDecompressionHeap); +- set_segment_base_addr(segment, gDecompressionHeap); ++ set_segment_base_addr(segment, gDecompressionHeap); sSegmentROMTable[segment] = (uintptr_t) srcStart; + main_pool_free(compressed); + } else { + } +diff --git a/src/game/memory.c.rej b/src/game/memory.c.rej +new file mode 100644 +index 0000000..6162b51 +--- /dev/null ++++ b/src/game/memory.c.rej +@@ -0,0 +1,38 @@ ++diff a/src/game/memory.c b/src/game/memory.c (rejected hunks) ++@@ -54,7 +54,9 @@ extern struct MainPoolBlock *sPoolListHeadR; ++ */ ++ struct MemoryPool *gEffectsMemoryPool; ++ +++ ++ uintptr_t sSegmentTable[32]; +++uintptr_t sSegmentROMTable[32]; ++ u32 sPoolFreeSpace; ++ u8 *sPoolStart; ++ u8 *sPoolEnd; ++@@ -284,7 +286,7 @@ void *load_segment(s32 segment, u8 *srcStart, u8 *srcEnd, u32 side) { ++ void *addr = dynamic_dma_read(srcStart, srcEnd, side); ++ ++ if (addr != NULL) { ++- set_segment_base_addr(segment, addr); +++ set_segment_base_addr(segment, addr); sSegmentROMTable[segment] = (uintptr_t) srcStart; ++ } ++ return addr; ++ } ++@@ -333,7 +335,7 @@ void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd) { ++ dest = main_pool_alloc(*size, MEMORY_POOL_LEFT); ++ if (dest != NULL) { ++ decompress(compressed, dest); ++- set_segment_base_addr(segment, dest); +++ set_segment_base_addr(segment, dest); sSegmentROMTable[segment] = (uintptr_t) srcStart; ++ main_pool_free(compressed); ++ } else { ++ } ++@@ -351,7 +353,7 @@ void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd) { ++ if (compressed != NULL) { ++ dma_read(compressed, srcStart, srcEnd); ++ decompress(compressed, gDecompressionHeap); ++- set_segment_base_addr(segment, gDecompressionHeap); +++ set_segment_base_addr(segment, gDecompressionHeap); sSegmentROMTable[segment] = (uintptr_t) srcStart; ++ main_pool_free(compressed); ++ } else { ++ } +diff --git a/src/game/memory.h b/src/game/memory.h +index 7a51e59..90fa61b 100644 +--- a/src/game/memory.h ++++ b/src/game/memory.h +@@ -66,4 +66,6 @@ void *alloc_display_list(u32 size); + void func_80278A78(struct MarioAnimation *a, void *b, struct Animation *target); + s32 load_patchable_table(struct MarioAnimation *a, u32 b); + ++ ++extern uintptr_t sSegmentROMTable[32]; + #endif // MEMORY_H +diff --git a/src/game/memory.h.rej b/src/game/memory.h.rej +new file mode 100644 +index 0000000..c9499d7 +--- /dev/null ++++ b/src/game/memory.h.rej +@@ -0,0 +1,8 @@ ++diff a/src/game/memory.h b/src/game/memory.h (rejected hunks) ++@@ -66,4 +66,6 @@ void *alloc_display_list(u32 size); ++ void func_80278A78(struct MarioAnimation *a, void *b, struct Animation *target); ++ s32 load_patchable_table(struct MarioAnimation *a, u32 b); ++ +++ +++extern uintptr_t sSegmentROMTable[32]; ++ #endif // MEMORY_H +diff --git a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c +index 64bb141..a04eb1e 100644 +--- a/src/game/obj_behaviors.c ++++ b/src/game/obj_behaviors.c +@@ -852,3 +852,5 @@ s8 UNUSED debug_sequence_tracker(s16 debugInputSequence[]) { + #include "behaviors/treasure_chest.inc.c" + #include "behaviors/mips.inc.c" + #include "behaviors/yoshi.inc.c" ++#include "behaviors/reticle.inc.c" ++#include "behaviors/emerald_circle.inc.c" +diff --git a/src/game/obj_behaviors.c.rej b/src/game/obj_behaviors.c.rej +new file mode 100644 +index 0000000..1123a80 +--- /dev/null ++++ b/src/game/obj_behaviors.c.rej +@@ -0,0 +1,7 @@ ++diff a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c (rejected hunks) ++@@ -852,3 +852,5 @@ s8 UNUSED debug_sequence_tracker(s16 debugInputSequence[]) { ++ #include "behaviors/treasure_chest.inc.c" ++ #include "behaviors/mips.inc.c" ++ #include "behaviors/yoshi.inc.c" +++#include "behaviors/reticle.inc.c" +++#include "behaviors/emerald_circle.inc.c" +diff --git a/src/game/obj_behaviors_2.c b/src/game/obj_behaviors_2.c +index 056d178..96ab1b0 100644 +--- a/src/game/obj_behaviors_2.c ++++ b/src/game/obj_behaviors_2.c +@@ -640,6 +640,11 @@ static void obj_die_if_health_non_positive(void) { + } + } + ++ ++ ++ ++ ++ + static void obj_unused_die(void) { + o->oHealth = 0; + obj_die_if_health_non_positive(); +diff --git a/src/game/obj_behaviors_2.c.rej b/src/game/obj_behaviors_2.c.rej +new file mode 100644 +index 0000000..2ca8dbf +--- /dev/null ++++ b/src/game/obj_behaviors_2.c.rej +@@ -0,0 +1,13 @@ ++diff a/src/game/obj_behaviors_2.c b/src/game/obj_behaviors_2.c (rejected hunks) ++@@ -640,6 +640,11 @@ static void obj_die_if_health_non_positive(void) { ++ } ++ } ++ +++ +++ +++ +++ +++ ++ static void obj_unused_die(void) { ++ o->oHealth = 0; ++ obj_die_if_health_non_positive(); +diff --git a/src/game/object_helpers.c b/src/game/object_helpers.c +index 0d86000..74feb1a 100644 +--- a/src/game/object_helpers.c ++++ b/src/game/object_helpers.c +@@ -849,7 +849,7 @@ struct Object *cur_obj_find_nearest_object_with_behavior(const BehaviorScript *b + + while (obj != (struct Object *) listHead) { + if (obj->behavior == behaviorAddr) { +- if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o) { ++ if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o && obj->oAction != OBJ_ACT_HORIZONTAL_KNOCKBACK && obj->oAction != OBJ_ACT_VERTICAL_KNOCKBACK && obj->oAction != OBJ_ACT_SQUISHED) { + f32 objDist = dist_between_objects(o, obj); + if (objDist < minDist) { + closestObj = obj; +@@ -2787,6 +2787,10 @@ s32 obj_attack_collided_from_other_object(struct Object *obj) { + + s32 cur_obj_was_attacked_or_ground_pounded(void) { + s32 attacked = FALSE; ++ if ((o->oInteractStatus & INT_STATUS_INTERACTED) && (gMarioState->action == ACT_SLIDE_KICK_SLIDE)) ++ { ++ attacked = TRUE; ++ } + + if ((o->oInteractStatus & INT_STATUS_INTERACTED) + && (o->oInteractStatus & INT_STATUS_WAS_ATTACKED)) { +diff --git a/src/game/object_helpers.c.rej b/src/game/object_helpers.c.rej +new file mode 100644 +index 0000000..b241678 +--- /dev/null ++++ b/src/game/object_helpers.c.rej +@@ -0,0 +1,21 @@ ++diff a/src/game/object_helpers.c b/src/game/object_helpers.c (rejected hunks) ++@@ -849,7 +849,7 @@ struct Object *cur_obj_find_nearest_object_with_behavior(const BehaviorScript *b ++ ++ while (obj != (struct Object *) listHead) { ++ if (obj->behavior == behaviorAddr) { ++- if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o) { +++ if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o && obj->oAction != OBJ_ACT_HORIZONTAL_KNOCKBACK && obj->oAction != OBJ_ACT_VERTICAL_KNOCKBACK && obj->oAction != OBJ_ACT_SQUISHED) { ++ f32 objDist = dist_between_objects(o, obj); ++ if (objDist < minDist) { ++ closestObj = obj; ++@@ -2787,6 +2787,10 @@ s32 obj_attack_collided_from_other_object(struct Object *obj) { ++ ++ s32 cur_obj_was_attacked_or_ground_pounded(void) { ++ s32 attacked = FALSE; +++ if ((o->oInteractStatus & INT_STATUS_INTERACTED) && (gMarioState->action == ACT_SLIDE_KICK_SLIDE)) +++ { +++ attacked = TRUE; +++ } ++ ++ if ((o->oInteractStatus & INT_STATUS_INTERACTED) ++ && (o->oInteractStatus & INT_STATUS_WAS_ATTACKED)) { +diff --git a/src/game/object_list_processor.c b/src/game/object_list_processor.c +index d01f5eb..446189b 100644 +--- a/src/game/object_list_processor.c ++++ b/src/game/object_list_processor.c +@@ -200,6 +200,10 @@ struct ParticleProperties sParticleTypes[] = { + { PARTICLE_VERTICAL_STAR, ACTIVE_PARTICLE_V_STAR, MODEL_NONE, bhvVertStarParticleSpawner }, + { PARTICLE_HORIZONTAL_STAR, ACTIVE_PARTICLE_H_STAR, MODEL_NONE, bhvHorStarParticleSpawner }, + { PARTICLE_SPARKLES, ACTIVE_PARTICLE_SPARKLES, MODEL_SPARKLES, bhvSparkleParticleSpawner }, ++ { PARTICLE_SONIC_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawner }, ++ { PARTICLE_SONIC_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawnerRolling }, ++ { PARTICLE_SUPER_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawner }, ++ { PARTICLE_SUPER_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawnerRolling }, + { PARTICLE_BUBBLE, ACTIVE_PARTICLE_BUBBLE, MODEL_BUBBLE, bhvBubbleParticleSpawner }, + { PARTICLE_WATER_SPLASH, ACTIVE_PARTICLE_WATER_SPLASH, MODEL_WATER_SPLASH, bhvWaterSplash }, + { PARTICLE_IDLE_WATER_WAVE, ACTIVE_PARTICLE_IDLE_WATER_WAVE, MODEL_IDLE_WATER_WAVE, bhvIdleWaterWave }, +@@ -455,7 +459,7 @@ void spawn_objects_from_info(UNUSED s32 unused, struct SpawnInfo *spawnInfo) { + gTimeStopState = 0; + + gWDWWaterLevelChanging = FALSE; +- gMarioOnMerryGoRound = FALSE; ++ gMarioOnMerryGoRound = 0; + + //! (Spawning Displacement) On the Japanese version, Mario's platform object + // isn't cleared when transitioning between areas. This can cause Mario to +diff --git a/src/game/object_list_processor.c.rej b/src/game/object_list_processor.c.rej +new file mode 100644 +index 0000000..730ce59 +--- /dev/null ++++ b/src/game/object_list_processor.c.rej +@@ -0,0 +1,21 @@ ++diff a/src/game/object_list_processor.c b/src/game/object_list_processor.c (rejected hunks) ++@@ -200,6 +200,10 @@ struct ParticleProperties sParticleTypes[] = { ++ { PARTICLE_VERTICAL_STAR, ACTIVE_PARTICLE_V_STAR, MODEL_NONE, bhvVertStarParticleSpawner }, ++ { PARTICLE_HORIZONTAL_STAR, ACTIVE_PARTICLE_H_STAR, MODEL_NONE, bhvHorStarParticleSpawner }, ++ { PARTICLE_SPARKLES, ACTIVE_PARTICLE_SPARKLES, MODEL_SPARKLES, bhvSparkleParticleSpawner }, +++ { PARTICLE_SONIC_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawner }, +++ { PARTICLE_SONIC_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawnerRolling }, +++ { PARTICLE_SUPER_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawner }, +++ { PARTICLE_SUPER_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawnerRolling }, ++ { PARTICLE_BUBBLE, ACTIVE_PARTICLE_BUBBLE, MODEL_BUBBLE, bhvBubbleParticleSpawner }, ++ { PARTICLE_WATER_SPLASH, ACTIVE_PARTICLE_WATER_SPLASH, MODEL_WATER_SPLASH, bhvWaterSplash }, ++ { PARTICLE_IDLE_WATER_WAVE, ACTIVE_PARTICLE_IDLE_WATER_WAVE, MODEL_IDLE_WATER_WAVE, bhvIdleWaterWave }, ++@@ -455,7 +459,7 @@ void spawn_objects_from_info(UNUSED s32 unused, struct SpawnInfo *spawnInfo) { ++ gTimeStopState = 0; ++ ++ gWDWWaterLevelChanging = FALSE; ++- gMarioOnMerryGoRound = FALSE; +++ gMarioOnMerryGoRound = 0; ++ ++ //! (Spawning Displacement) On the Japanese version, Mario's platform object ++ // isn't cleared when transitioning between areas. This can cause Mario to +diff --git a/src/game/sound_init.c b/src/game/sound_init.c +index 4912292..6979005 100644 +--- a/src/game/sound_init.c ++++ b/src/game/sound_init.c +@@ -184,7 +184,7 @@ void play_menu_sounds(s16 soundMenuFlags) { + void play_painting_eject_sound(void) { + if (gRipplingPainting != NULL && gRipplingPainting->state == PAINTING_ENTERED) { + // ripple when Mario enters painting +- if (!sPaintingEjectSoundPlayed) { ++ if (sPaintingEjectSoundPlayed == FALSE) { + play_sound(SOUND_GENERAL_PAINTING_EJECT, + gMarioStates[0].marioObj->header.gfx.cameraToObject); + } +@@ -283,6 +283,23 @@ void stop_shell_music(void) { + } + } + ++void play_drown_music(void) { ++ play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(7, SEQ_DROWN), 0); ++ sCurrentShellMusic = SEQUENCE_ARGS(7, SEQ_DROWN); ++ //sCurrentShellMusic = SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE); ++ //sCurrentShellMusic = SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE); ++} ++ ++void stop_drown_music(void) { ++ if (sCurrentShellMusic != MUSIC_NONE) { ++ //play_music(0, SEQUENCE_ARGS(4, 0), 0); ++ stop_background_music(sCurrentShellMusic); ++ sCurrentShellMusic = MUSIC_NONE; ++ sCurrentMusic = MUSIC_NONE; ++ } ++} ++ ++ + /** + * Called from threads: thread5_game_loop + */ +@@ -303,6 +320,8 @@ void fadeout_cap_music(void) { + } + } + ++ ++ + /** + * Called from threads: thread5_game_loop + */ +diff --git a/src/game/sound_init.c.rej b/src/game/sound_init.c.rej +new file mode 100644 +index 0000000..cd79f21 +--- /dev/null ++++ b/src/game/sound_init.c.rej +@@ -0,0 +1,10 @@ ++diff a/src/game/sound_init.c b/src/game/sound_init.c (rejected hunks) ++@@ -184,7 +184,7 @@ void play_menu_sounds(s16 soundMenuFlags) { ++ void play_painting_eject_sound(void) { ++ if (gRipplingPainting != NULL && gRipplingPainting->state == PAINTING_ENTERED) { ++ // ripple when Mario enters painting ++- if (!sPaintingEjectSoundPlayed) { +++ if (sPaintingEjectSoundPlayed == FALSE) { ++ play_sound(SOUND_GENERAL_PAINTING_EJECT, ++ gMarioStates[0].marioObj->header.gfx.cameraToObject); ++ } +diff --git a/src/game/sound_init.h b/src/game/sound_init.h +index a03c5d8..a1b3a79 100644 +--- a/src/game/sound_init.h ++++ b/src/game/sound_init.h +@@ -33,6 +33,8 @@ void fadeout_level_music(s16 fadeTimer); + void play_cutscene_music(u16 seqArgs); + void play_shell_music(void); + void stop_shell_music(void); ++void play_drown_music(void); ++void stop_drown_music(void); + void play_cap_music(u16 seqArgs); + void fadeout_cap_music(void); + void stop_cap_music(void); +diff --git a/src/game/sound_init.h.rej b/src/game/sound_init.h.rej +new file mode 100644 +index 0000000..39341cc +--- /dev/null ++++ b/src/game/sound_init.h.rej +@@ -0,0 +1,10 @@ ++diff a/src/game/sound_init.h b/src/game/sound_init.h (rejected hunks) ++@@ -33,6 +33,8 @@ void fadeout_level_music(s16 fadeTimer); ++ void play_cutscene_music(u16 seqArgs); ++ void play_shell_music(void); ++ void stop_shell_music(void); +++void play_drown_music(void); +++void stop_drown_music(void); ++ void play_cap_music(u16 seqArgs); ++ void fadeout_cap_music(void); ++ void stop_cap_music(void); +diff --git a/src/game/texscroll.c b/src/game/texscroll.c +new file mode 100644 +index 0000000..cb59e13 +--- /dev/null ++++ b/src/game/texscroll.c +@@ -0,0 +1,26 @@ ++#include "types.h" ++#include "include/segment_symbols.h" ++#include "memory.h" ++#include "engine/math_util.h" ++#include "src/engine/behavior_script.h" ++#include "texscroll.h" ++ ++#ifdef TARGET_N64 ++#define SCROLL_CONDITION(condition) condition ++#else ++#define SCROLL_CONDITION(condition) 1 ++#endif ++ ++ ++#include "src/game/texscroll/group0_texscroll.inc.c" ++#include "src/game/texscroll/castle_grounds_texscroll.inc.c" ++void scroll_textures() { ++ if(SCROLL_CONDITION(sSegmentROMTable[0x4] == (uintptr_t)_group0_mio0SegmentRomStart)) { ++ scroll_textures_group0(); ++ } ++ ++ if(SCROLL_CONDITION(sSegmentROMTable[0x7] == (uintptr_t)_castle_grounds_segment_7SegmentRomStart)) { ++ scroll_textures_castle_grounds(); ++ } ++ ++} +diff --git a/src/game/texscroll.h b/src/game/texscroll.h +new file mode 100644 +index 0000000..8b36406 +--- /dev/null ++++ b/src/game/texscroll.h +@@ -0,0 +1,8 @@ ++#ifndef TEXSCROLL_H ++#define TEXSCROLL_H ++ ++#include "src/game/texscroll/group0_texscroll.inc.h" ++#include "src/game/texscroll/castle_grounds_texscroll.inc.h" ++extern void scroll_textures(); ++ ++#endif +diff --git a/src/game/texscroll/castle_grounds_texscroll.inc.c b/src/game/texscroll/castle_grounds_texscroll.inc.c +new file mode 100644 +index 0000000..e52a190 +--- /dev/null ++++ b/src/game/texscroll/castle_grounds_texscroll.inc.c +@@ -0,0 +1,4 @@ ++#include "levels/castle_grounds/header.h" ++void scroll_textures_castle_grounds() { ++ ++} +diff --git a/src/game/texscroll/castle_grounds_texscroll.inc.h b/src/game/texscroll/castle_grounds_texscroll.inc.h +new file mode 100644 +index 0000000..404d82f +--- /dev/null ++++ b/src/game/texscroll/castle_grounds_texscroll.inc.h +@@ -0,0 +1 @@ ++extern void scroll_textures_castle_grounds(); +diff --git a/src/game/texscroll/group0_texscroll.inc.c b/src/game/texscroll/group0_texscroll.inc.c +new file mode 100644 +index 0000000..5d9e0e3 +--- /dev/null ++++ b/src/game/texscroll/group0_texscroll.inc.c +@@ -0,0 +1,8 @@ ++#include "actors/group0.h" ++ ++void scroll_textures_group0() { ++ ++ ++ ++ ++ } +diff --git a/src/game/texscroll/group0_texscroll.inc.h b/src/game/texscroll/group0_texscroll.inc.h +new file mode 100644 +index 0000000..021d470 +--- /dev/null ++++ b/src/game/texscroll/group0_texscroll.inc.h +@@ -0,0 +1 @@ ++extern void scroll_textures_group0(); +diff --git a/src/menu/file_select.c b/src/menu/file_select.c +index c894797..7b960fa 100644 +--- a/src/menu/file_select.c ++++ b/src/menu/file_select.c +@@ -158,6 +158,9 @@ static unsigned char textMarioB[] = { TEXT_FILE_MARIO_B }; + static unsigned char textMarioC[] = { TEXT_FILE_MARIO_C }; + static unsigned char textMarioD[] = { TEXT_FILE_MARIO_D }; + ++static unsigned char textHealthM[] = { TEXT_MARIO_HEALTH_FILE }; ++static unsigned char textHealthS[] = { TEXT_SONIC_HEALTH_FILE }; ++ + #ifndef VERSION_EU + static unsigned char textNew[] = { TEXT_NEW }; + static unsigned char starIcon[] = { GLYPH_STAR, GLYPH_SPACE }; +@@ -1616,6 +1619,17 @@ void bhv_menu_button_manager_loop(void) { + * If the cursor is clicked, sClickPos uses the same value as sCursorPos. + */ + void handle_cursor_button_input(void) { ++ if (gPlayer3Controller->buttonPressed & Z_TRIG) { ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gDialogHealthSystem = SONIC_HEALTH; ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ } ++ else ++ { ++ gDialogHealthSystem = MARIO_HEALTH; ++ play_sound(SOUND_GENERAL_HEART_SPIN, gGlobalSoundSource); ++ } ++} + // If scoring a file, pressing A just changes the coin score mode. + if (sSelectedButtonID == MENU_BUTTON_SCORE_FILE_A || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_B + || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_C +@@ -1792,7 +1806,7 @@ void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { + #define MARIOTEXT_X1 92 + #define MARIOTEXT_X2 207 + #elif defined(VERSION_US) +- #define SELECT_FILE_X 93 ++#define SELECT_FILE_X 50 + #define SCORE_X 52 + #define COPY_X 117 + #define ERASE_X 177 +@@ -1820,6 +1834,29 @@ void print_main_menu_strings(void) { + // The current sound mode is automatically centered on US and Shindou. + static s16 sSoundTextX; // TODO: There should be a way to make this match on both US and Shindou. + #endif ++ ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); ++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); ++ ++ print_menu_generic_string(193, 41, textHealthM); ++ ++ ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); ++ ++ ++ } ++ else ++ { ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); ++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); ++ ++ print_menu_generic_string(193, 41, textHealthS); ++ ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); ++ ++ } ++ + // Print "SELECT FILE" text + gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); + gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); +@@ -1951,6 +1988,9 @@ void print_score_menu_strings(void) { + s16 centeredX; + #endif + ++ ++ ++ + // Update and print the message at the top of the menu. + if (sMainMenuTimer == FADEOUT_TIMER) { + sFadeOutText = TRUE; +diff --git a/src/menu/file_select.c.rej b/src/menu/file_select.c.rej +new file mode 100644 +index 0000000..fa2272d +--- /dev/null ++++ b/src/menu/file_select.c.rej +@@ -0,0 +1,78 @@ ++diff a/src/menu/file_select.c b/src/menu/file_select.c (rejected hunks) ++@@ -158,6 +158,9 @@ static unsigned char textMarioB[] = { TEXT_FILE_MARIO_B }; ++ static unsigned char textMarioC[] = { TEXT_FILE_MARIO_C }; ++ static unsigned char textMarioD[] = { TEXT_FILE_MARIO_D }; ++ +++static unsigned char textHealthM[] = { TEXT_MARIO_HEALTH_FILE }; +++static unsigned char textHealthS[] = { TEXT_SONIC_HEALTH_FILE }; +++ ++ #ifndef VERSION_EU ++ static unsigned char textNew[] = { TEXT_NEW }; ++ static unsigned char starIcon[] = { GLYPH_STAR, GLYPH_SPACE }; ++@@ -1616,6 +1619,17 @@ void bhv_menu_button_manager_loop(void) { ++ * If the cursor is clicked, sClickPos uses the same value as sCursorPos. ++ */ ++ void handle_cursor_button_input(void) { +++ if (gPlayer3Controller->buttonPressed & Z_TRIG) { +++ if (gDialogHealthSystem == MARIO_HEALTH) { +++ gDialogHealthSystem = SONIC_HEALTH; +++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); +++ } +++ else +++ { +++ gDialogHealthSystem = MARIO_HEALTH; +++ play_sound(SOUND_GENERAL_HEART_SPIN, gGlobalSoundSource); +++ } +++} ++ // If scoring a file, pressing A just changes the coin score mode. ++ if (sSelectedButtonID == MENU_BUTTON_SCORE_FILE_A || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_B ++ || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_C ++@@ -1792,7 +1806,7 @@ void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { ++ #define MARIOTEXT_X1 92 ++ #define MARIOTEXT_X2 207 ++ #elif defined(VERSION_US) ++- #define SELECT_FILE_X 93 +++#define SELECT_FILE_X 50 ++ #define SCORE_X 52 ++ #define COPY_X 117 ++ #define ERASE_X 177 ++@@ -1820,6 +1834,29 @@ void print_main_menu_strings(void) { ++ // The current sound mode is automatically centered on US and Shindou. ++ static s16 sSoundTextX; // TODO: There should be a way to make this match on both US and Shindou. ++ #endif +++ +++ if (gDialogHealthSystem == MARIO_HEALTH) { +++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); +++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); +++ +++ print_menu_generic_string(193, 41, textHealthM); +++ +++ +++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); +++ +++ +++ } +++ else +++ { +++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); +++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); +++ +++ print_menu_generic_string(193, 41, textHealthS); +++ +++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); +++ +++ } +++ ++ // Print "SELECT FILE" text ++ gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); ++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); ++@@ -1951,6 +1988,9 @@ void print_score_menu_strings(void) { ++ s16 centeredX; ++ #endif ++ +++ +++ +++ ++ // Update and print the message at the top of the menu. ++ if (sMainMenuTimer == FADEOUT_TIMER) { ++ sFadeOutText = TRUE; +diff --git a/src/menu/intro_geo.c b/src/menu/intro_geo.c +index e2e5bb9..2d49d06 100644 +--- a/src/menu/intro_geo.c ++++ b/src/menu/intro_geo.c +@@ -7,9 +7,6 @@ + #include "sm64.h" + #include "textures.h" + #include "types.h" +-#include "buffers/framebuffers.h" +-#include "game/game_init.h" +-#include "audio/external.h" + #include "prevent_bss_reordering.h" + + // frame counts for the zoom in, hold, and zoom out of title model +@@ -28,149 +25,149 @@ struct GraphNodeMore { + }; + + // intro geo bss +-#ifdef VERSION_SH +-static u16 *sFrameBuffers[3]; +-#endif +-static s32 sGameOverFrameCounter; +-static s32 sGameOverTableIndex; +-static s16 sIntroFrameCounter; +-static s32 sTmCopyrightAlpha; ++s32 gGameOverFrameCounter; ++s32 gGameOverTableIndex; ++s16 gTitleZoomCounter; ++s32 gTitleFadeCounter; ++ ++// intro screen background display lists for each of four 80x20 textures ++const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, ++ title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; ++ ++// intro screen background texture X offsets ++float introBackgroundOffsetX[] = { ++ 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, ++}; ++ ++// intro screen background texture Y offsets ++float introBackgroundOffsetY[] = { ++ 160.0, 160.0, 160.0, 160.0, 80.0, 80.0, 80.0, 80.0, 0.0, 0.0, 0.0, 0.0, ++}; + +-/** +- * Geo callback to render the "Super Mario 64" logo on the title screen +- */ +-Gfx *geo_intro_super_mario_64_logo(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- Mtx *scaleMat; +- f32 *scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); +- f32 *scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); +- f32 scaleX; +- f32 scaleY; +- f32 scaleZ; ++// table that points to either the "Super Mario 64" or "Game Over" tables ++const u8 *const *introBackgroundTextureType[] = { mario_title_texture_table, game_over_texture_table }; + +- if (state != 1) { +- sIntroFrameCounter = 0; +- } else if (state == 1) { +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- scaleMat = alloc_display_list(sizeof(*scaleMat)); +- dl = alloc_display_list(4 * sizeof(*dl)); +- dlIter = dl; ++s8 introBackgroundIndexTable[] = { ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++}; ++ ++// only one table of indexes listed ++s8 *introBackgroundTables[] = { introBackgroundIndexTable }; ++ ++s8 gameOverBackgroundTable[] = { ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++}; + +- // determine scale based on the frame counter +- if (sIntroFrameCounter >= 0 && sIntroFrameCounter < INTRO_STEPS_ZOOM_IN) { +- // zooming in +- scaleX = scaleTable1[sIntroFrameCounter * 3]; +- scaleY = scaleTable1[sIntroFrameCounter * 3 + 1]; +- scaleZ = scaleTable1[sIntroFrameCounter * 3 + 2]; +- } else if (sIntroFrameCounter >= INTRO_STEPS_ZOOM_IN && sIntroFrameCounter < INTRO_STEPS_HOLD_1) { +- // holding ++// order of tiles that are flipped from "Game Over" to "Super Mario 64" ++s8 gameOverBackgroundFlipOrder[] = { 0x00, 0x01, 0x02, 0x03, 0x07, 0x0B, ++ 0x0a, 0x09, 0x08, 0x04, 0x05, 0x06 }; ++ ++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context) { ++ struct GraphNode *graphNode; // sp4c ++ Gfx *displayList; // sp48 ++ Gfx *displayListIter; // sp44 ++ Mtx *scaleMat; // sp40 ++ f32 *scaleTable1; // sp3c ++ f32 *scaleTable2; // sp38 ++ f32 scaleX; // sp34 ++ f32 scaleY; // sp30 ++ f32 scaleZ; // sp2c ++ graphNode = sp54; ++ displayList = NULL; ++ displayListIter = NULL; ++ scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); ++ scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); ++ if (sp50 != 1) { ++ gTitleZoomCounter = 0; ++ } else if (sp50 == 1) { ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ scaleMat = alloc_display_list(sizeof(*scaleMat)); ++ displayList = alloc_display_list(4 * sizeof(*displayList)); ++ displayListIter = displayList; ++ if (gTitleZoomCounter >= 0 && gTitleZoomCounter < INTRO_STEPS_ZOOM_IN) { ++ scaleX = scaleTable1[gTitleZoomCounter * 3]; ++ scaleY = scaleTable1[gTitleZoomCounter * 3 + 1]; ++ scaleZ = scaleTable1[gTitleZoomCounter * 3 + 2]; ++ } else if (gTitleZoomCounter >= INTRO_STEPS_ZOOM_IN && gTitleZoomCounter < INTRO_STEPS_HOLD_1) { + scaleX = 1.0f; + scaleY = 1.0f; + scaleZ = 1.0f; +- } else if (sIntroFrameCounter >= INTRO_STEPS_HOLD_1 && sIntroFrameCounter < INTRO_STEPS_ZOOM_OUT) { +- // zooming out +- scaleX = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3]; +- scaleY = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; +- scaleZ = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; ++ } else if (gTitleZoomCounter >= INTRO_STEPS_HOLD_1 ++ && gTitleZoomCounter < INTRO_STEPS_ZOOM_OUT) { ++ scaleX = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3]; ++ scaleY = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; ++ scaleZ = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; + } else { +- // disappeared + scaleX = 0.0f; + scaleY = 0.0f; + scaleZ = 0.0f; + } + guScale(scaleMat, scaleX, scaleY, scaleZ); +- +- gSPMatrix(dlIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); +- gSPDisplayList(dlIter++, &intro_seg7_dl_0700B3A0); // draw model +- gSPPopMatrix(dlIter++, G_MTX_MODELVIEW); +- gSPEndDisplayList(dlIter); +- +- sIntroFrameCounter++; ++ gSPMatrix(displayListIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); ++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700B3A0); ++ gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); ++ gSPEndDisplayList(displayListIter); ++ gTitleZoomCounter++; + } +- return dl; ++ return displayList; + } + +-/** +- * Geo callback to render TM and Copyright on the title screen +- */ +-Gfx *geo_intro_tm_copyright(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- +- if (state != 1) { // reset +- sTmCopyrightAlpha = 0; +- } else if (state == 1) { // draw +- dl = alloc_display_list(5 * sizeof(*dl)); +- dlIter = dl; +- gSPDisplayList(dlIter++, dl_proj_mtx_fullscreen); +- gDPSetEnvColor(dlIter++, 255, 255, 255, sTmCopyrightAlpha); +- switch (sTmCopyrightAlpha) { +- case 255: // opaque +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- gDPSetRenderMode(dlIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); +- break; +- default: // blend +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_TRANSPARENT << 8); +- gDPSetRenderMode(dlIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); +- break; ++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { ++ struct GraphNode *graphNode = sp44; // sp3c ++ Gfx *displayList = NULL; // sp38 ++ Gfx *displayListIter = NULL; // sp34 ++ if (sp40 != 1) { ++ gTitleFadeCounter = 0; // D_801B985C ++ } else if (sp40 == 1) { ++ displayList = alloc_display_list(5 * sizeof(*displayList)); ++ displayListIter = displayList; ++ gSPDisplayList(displayListIter++, dl_proj_mtx_fullscreen); ++ gDPSetEnvColor(displayListIter++, 255, 255, 255, gTitleFadeCounter); ++ if (gTitleFadeCounter == 255) { ++ if (0) { ++ } ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ gDPSetRenderMode(displayListIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); ++ } else { ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x500; ++ gDPSetRenderMode(displayListIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); ++ if (0) { ++ } + } +- gSPDisplayList(dlIter++, &intro_seg7_dl_0700C6A0); // draw model +- gSPEndDisplayList(dlIter); +- +- // Once the "Super Mario 64" logo has just about zoomed fully, fade in the "TM" and copyright text +- if (sIntroFrameCounter >= 19) { +- sTmCopyrightAlpha += 26; +- if (sTmCopyrightAlpha > 255) { +- sTmCopyrightAlpha = 255; ++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700C6A0); ++ gSPEndDisplayList(displayListIter); ++ if (gTitleZoomCounter >= 0x13) { ++ gTitleFadeCounter += 0x1a; ++ if (gTitleFadeCounter >= 0x100) { ++ gTitleFadeCounter = 0xFF; + } + } + } +- return dl; ++ return displayList; + } + +-/** +- * Generates a display list for a single background tile +- * +- * @param index which tile to render (value from 0 to 11) +- * @param backgroundTable array describing which image to use for each tile (0 denotes a "Super Mario 64" image, and 1 denotes a "Game Over" image) +- */ +-static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { +- // intro screen background display lists for each of four 80x20 textures +- static const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, +- title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; +- +- // intro screen background texture X offsets +- static float xCoords[] = { +- 0, 80, 160, 240, +- 0, 80, 160, 240, +- 0, 80, 160, 240, +- }; +- +- // intro screen background texture Y offsets +- static float yCoords[] = { +- 160, 160, 160, 160, +- 80, 80, 80, 80, +- 0, 0, 0, 0, +- }; +- +- // table that points to either the "Super Mario 64" or "Game Over" tables +- static const u8 *const *textureTables[] = { mario_title_texture_table, game_over_texture_table }; +- +- Mtx *mtx = alloc_display_list(sizeof(*mtx)); +- Gfx *displayList = alloc_display_list(36 * sizeof(*displayList)); +- Gfx *displayListIter = displayList; +- const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[index]]); +- s32 i; +- +- guTranslate(mtx, xCoords[index], yCoords[index], 0.0f); ++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { ++ Mtx *mtx; // sp5c ++ Gfx *displayList; // sp58 ++ Gfx *displayListIter; // sp54 ++ const u8 *const *vIntroBgTable; // sp50 ++ s32 i; // sp4c ++ mtx = alloc_display_list(sizeof(*mtx)); ++ displayList = alloc_display_list(36 * sizeof(*displayList)); ++ displayListIter = displayList; ++ vIntroBgTable = segmented_to_virtual(introBackgroundTextureType[backgroundTable[index]]); ++ guTranslate(mtx, introBackgroundOffsetX[index], introBackgroundOffsetY[index], 0.0f); + gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118); + for (i = 0; i < 4; ++i) { +- gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, +- G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) ++ gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, ++ G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) + gSPDisplayList(displayListIter++, introBackgroundDlRows[i]); + } + gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); +@@ -178,291 +175,75 @@ static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { + return displayList; + } + +-static s8 introBackgroundIndexTable[] = { +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +-}; +- +-// only one table of indexes listed +-static s8 *introBackgroundTables[] = { introBackgroundIndexTable }; +- +-/** +- * Geo callback to render the intro background tiles +- */ +-Gfx *geo_intro_regular_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeMore *graphNode = (struct GraphNodeMore *) node; +- s32 index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode (always ends up being 0) +- s8 *backgroundTable = introBackgroundTables[index]; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- s32 i; +- +- if (state == 1) { // draw +- dl = alloc_display_list(16 * sizeof(*dl)); +- dlIter = dl; +- graphNode->node.flags = (graphNode->node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); ++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context) { ++ struct GraphNodeMore *graphNode; // sp44 ++ s32 index; // sp40 ++ s8 *backgroundTable; // sp3c ++ Gfx *displayList; // sp38 ++ Gfx *displayListIter; // sp34 ++ s32 i; // sp30 ++ graphNode = (struct GraphNodeMore *) sp4c; ++ index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode ++ backgroundTable = introBackgroundTables[index]; ++ displayList = NULL; ++ displayListIter = NULL; ++ if (sp48 == 1) { ++ displayList = alloc_display_list(16 * sizeof(*displayList)); ++ displayListIter = displayList; ++ graphNode->node.flags = (graphNode->node.flags & 0xFF) | 0x100; ++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); + for (i = 0; i < 12; ++i) { +- gSPDisplayList(dlIter++, intro_backdrop_one_image(i, backgroundTable)); ++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(i, backgroundTable)); + } +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); +- gSPEndDisplayList(dlIter); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); ++ gSPEndDisplayList(displayListIter); + } +- return dl; ++ return displayList; + } + +-static s8 gameOverBackgroundTable[] = { +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +-}; +- +-/** +- * Geo callback to render the Game Over background tiles +- */ +-Gfx *geo_intro_gameover_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- s32 j; +- s32 i; +- +- if (state != 1) { // reset +- sGameOverFrameCounter = 0; +- sGameOverTableIndex = -2; +- for (i = 0; i < ARRAY_COUNT(gameOverBackgroundTable); ++i) ++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { ++ struct GraphNode *graphNode; // sp3c ++ Gfx *displayList; // sp38 ++ Gfx *displayListIter; // sp34 ++ s32 j; // sp30 ++ s32 i; // sp2c ++ graphNode = sp44; ++ displayList = NULL; ++ displayListIter = NULL; ++ if (sp40 != 1) { ++ gGameOverFrameCounter = 0; ++ gGameOverTableIndex = -2; ++ for (i = 0; i < (s32) sizeof(gameOverBackgroundTable); ++i) { + gameOverBackgroundTable[i] = INTRO_BACKGROUND_GAME_OVER; +- } else { // draw +- dl = alloc_display_list(16 * sizeof(*dl)); +- dlIter = dl; +- if (sGameOverTableIndex == -2) { +- if (sGameOverFrameCounter == 180) { +- sGameOverTableIndex++; +- sGameOverFrameCounter = 0; +- } +- } else { +- // transition tile from "Game Over" to "Super Mario 64" +- if (sGameOverTableIndex != 11 && !(sGameOverFrameCounter & 0x1)) { +- // order of tiles that are flipped from "Game Over" to "Super Mario 64" +- static s8 flipOrder[] = { 0, 1, 2, 3, 7, 11, 10, 9, 8, 4, 5, 6 }; +- +- sGameOverTableIndex++; +- gameOverBackgroundTable[flipOrder[sGameOverTableIndex]] = +- INTRO_BACKGROUND_SUPER_MARIO; +- } +- } +- if (sGameOverTableIndex != 11) { +- sGameOverFrameCounter++; +- } +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- +- // draw all the tiles +- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); +- for (j = 0; j < ARRAY_COUNT(gameOverBackgroundTable); ++j) +- gSPDisplayList(dlIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); +- gSPEndDisplayList(dlIter); +- } +- return dl; +-} +- +-#ifdef VERSION_SH +-extern Gfx title_screen_bg_dl_0A0065E8[]; +-extern Gfx title_screen_bg_dl_0A006618[]; +-extern Gfx title_screen_bg_dl_0A007548[]; +- +-//Data +-s8 sFaceVisible[] = { +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 0, 0, 0, 0, 1, 1, +- 1, 1, 0, 0, 0, 0, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +-}; +- +-s8 sFaceToggleOrder[] = { +- 0, 1, 2, 3, 4, 5, 6, 7, +- 15, 23, 31, 39, 47, 46, 45, 44, +- 43, 42, 41, 40, 32, 24, 16, 8, +- 9, 10, 11, 12, 13, 14, 22, 30, +- 38, 37, 36, 35, 34, 33, 25, 17, +-}; +- +-s8 sFaceCounter = 0; +- +-void intro_gen_face_texrect(Gfx **dlIter) +-{ +- s32 x; +- s32 y; +- +- for (y = 0; y < 6; y++) { +- for (x = 0; x < 8; x++) { +- if (sFaceVisible[y*8 + x] != 0) { +- gSPTextureRectangle((*dlIter)++, (x * 40) << 2, (y * 40) << 2, (x * 40 + 39) << 2, (y * 40 + 39) << 2, 0, +- 0, 0, 4 << 10, 1 << 10); +- } + } +- } +-} +- +-Gfx *intro_draw_face(u16 *image, s32 imageW, s32 imageH) +-{ +- Gfx *dl; +- Gfx *dlIter; +- +- dl = alloc_display_list(110 * sizeof(Gfx)); +- +- if (dl == NULL) { +- return dl; + } else { +- dlIter = dl; +- } +- +- gSPDisplayList(dlIter++, title_screen_bg_dl_0A0065E8); +- +- gDPLoadTextureBlock(dlIter++, VIRTUAL_TO_PHYSICAL(image), G_IM_FMT_RGBA, G_IM_SIZ_16b, imageW, imageH, 0, G_TX_CLAMP | G_TX_NOMIRROR, G_TX_CLAMP | G_TX_NOMIRROR, 6, 6, G_TX_NOLOD, G_TX_NOLOD); +- +- intro_gen_face_texrect(&dlIter); +- +- gSPDisplayList(dlIter++, title_screen_bg_dl_0A006618); +- +- gSPEndDisplayList(dlIter++); +- +- return dl; +-} +- +-u16 *intro_sample_frame_buffer(s32 imageW, s32 imageH, s32 sampleW, s32 sampleH) { +- u16 *fb; +- u16 *image; +- s32 pixel; +- f32 size; +- f32 r, g, b; +- s32 iy, ix, sy, sx; +- +- s32 xOffset = 120; +- s32 yOffset = 80; +- +- fb = sFrameBuffers[frameBufferIndex]; +- image = alloc_display_list(imageW * imageH * sizeof(u16)); +- +- if (image == NULL) { +- return image; +- } +- +- for (iy = 0; iy < imageH; iy++) { +- for (ix = 0; ix < imageW; ix++) { +- r = 0; +- g = 0; +- b = 0; +- +- for (sy = 0; sy < sampleH; sy++) { +- for (sx = 0; sx < sampleW; sx++) { +- u16 fbr, fbg, fbb; +- f32 f1, f2, f3; +- pixel = 320 * (sampleH * iy + sy + yOffset) + (sampleW * ix + xOffset) + sx; +- +- fbr = fb[pixel]; +- fbg = fb[pixel]; +- fbb = fb[pixel]; +- +- f1 = ((fbr >> 0xB) & 0x1F); +- f2 = ((fbg >> 0x6) & 0x1F); +- f3 = ((fbb >> 0x1) & 0x1F); +- +- r += f1; +- g += f2; +- b += f3; +- } +- } +- +- size = sampleW * sampleH; +- image[imageH * iy + ix] = ((((u16) (r / size + 0.5) << 0xB) & 0xF800) & 0xffff) + +- ((((u16) (g / size + 0.5) << 0x6) & 0x7C0) & 0xffff) + +- ((((u16) (b / size + 0.5) << 0x1) & 0x3E) & 0xffff) + 1; +- } +- } +- +- return image; +-} +- +-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; +- u16 *image; +- Gfx *dl = NULL; +- s32 i; +- +- if (state != 1) { +- sFrameBuffers[0] = gFrameBuffer0; +- sFrameBuffers[1] = gFrameBuffer1; +- sFrameBuffers[2] = gFrameBuffer2; +- +- for (i = 0; i < 48; i++) { +- sFaceVisible[i] = 0; +- } +- +- } else if (state == 1) { +- if (sFaceCounter == 0) { +- if (gPlayer1Controller->buttonPressed & Z_TRIG) { +- play_sound(SOUND_MENU_STAR_SOUND, gGlobalSoundSource); +- sFaceVisible[0] ^= 1; +- sFaceCounter++; ++ displayList = alloc_display_list(16 * sizeof(*displayList)); ++ displayListIter = displayList; ++ if (gGameOverTableIndex == -2) { ++ if (gGameOverFrameCounter == 180) { ++ gGameOverTableIndex++; ++ gGameOverFrameCounter = 0; + } + } else { +- sFaceVisible[sFaceToggleOrder[sFaceCounter++]] ^= 1; +- if (sFaceCounter >= 40) { +- sFaceCounter = 0; +- } +- } +- +- // Draw while the first or last face is visible. +- if (sFaceVisible[0] == 1 || sFaceVisible[17] == 1) { +- image = intro_sample_frame_buffer(40, 40, 2, 2); +- if (image != NULL) { +- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- dl = intro_draw_face(image, 40, 40); ++ // transition tile from "Game Over" to "Super Mario 64" ++ if (gGameOverTableIndex != 11 && !(gGameOverFrameCounter & 0x1)) { ++ gGameOverTableIndex++; ++ gameOverBackgroundTable[gameOverBackgroundFlipOrder[gGameOverTableIndex]] = ++ INTRO_BACKGROUND_SUPER_MARIO; + } + } +- } +- +- return dl; +-} +- +-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; +- Gfx *dlIter; +- Gfx *dl; +- s32 introContext; +- s8 backgroundTileSix; +- +- if (state != 1) { +- dl = NULL; +- } else if (state == 1) { +- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- introContext = genNode->parameter & 0xFF; +- if (introContext == 0) { +- backgroundTileSix = introBackgroundIndexTable[6]; +- } else if (introContext == 1) { +- backgroundTileSix = gameOverBackgroundTable[6]; ++ if (gGameOverTableIndex != 11) { ++ gGameOverFrameCounter++; + } +- if (backgroundTileSix == INTRO_BACKGROUND_SUPER_MARIO) { +- dl = alloc_display_list(3 * sizeof(*dl)); +- if (dl != NULL) { +- dlIter = dl; +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A007548); +- gSPEndDisplayList(dlIter); +- } +- } else { +- dl = NULL; ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); ++ for (j = 0; j < (s32) sizeof(gameOverBackgroundTable); ++j) { ++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); + } ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); ++ gSPEndDisplayList(displayListIter); + } +- return dl; ++ return displayList; + } +- +-#endif +- +diff --git a/src/menu/intro_geo.c.rej b/src/menu/intro_geo.c.rej +new file mode 100644 +index 0000000..922fe25 +--- /dev/null ++++ b/src/menu/intro_geo.c.rej +@@ -0,0 +1,628 @@ ++diff a/src/menu/intro_geo.c b/src/menu/intro_geo.c (rejected hunks) ++@@ -7,9 +7,6 @@ ++ #include "sm64.h" ++ #include "textures.h" ++ #include "types.h" ++-#include "buffers/framebuffers.h" ++-#include "game/game_init.h" ++-#include "audio/external.h" ++ #include "prevent_bss_reordering.h" ++ ++ // frame counts for the zoom in, hold, and zoom out of title model ++@@ -28,149 +25,149 @@ struct GraphNodeMore { ++ }; ++ ++ // intro geo bss ++-#ifdef VERSION_SH ++-static u16 *sFrameBuffers[3]; ++-#endif ++-static s32 sGameOverFrameCounter; ++-static s32 sGameOverTableIndex; ++-static s16 sIntroFrameCounter; ++-static s32 sTmCopyrightAlpha; +++s32 gGameOverFrameCounter; +++s32 gGameOverTableIndex; +++s16 gTitleZoomCounter; +++s32 gTitleFadeCounter; +++ +++// intro screen background display lists for each of four 80x20 textures +++const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, +++ title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; +++ +++// intro screen background texture X offsets +++float introBackgroundOffsetX[] = { +++ 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, +++}; +++ +++// intro screen background texture Y offsets +++float introBackgroundOffsetY[] = { +++ 160.0, 160.0, 160.0, 160.0, 80.0, 80.0, 80.0, 80.0, 0.0, 0.0, 0.0, 0.0, +++}; ++ ++-/** ++- * Geo callback to render the "Super Mario 64" logo on the title screen ++- */ ++-Gfx *geo_intro_super_mario_64_logo(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNode *graphNode = node; ++- Gfx *dl = NULL; ++- Gfx *dlIter = NULL; ++- Mtx *scaleMat; ++- f32 *scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); ++- f32 *scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); ++- f32 scaleX; ++- f32 scaleY; ++- f32 scaleZ; +++// table that points to either the "Super Mario 64" or "Game Over" tables +++const u8 *const *introBackgroundTextureType[] = { mario_title_texture_table, game_over_texture_table }; ++ ++- if (state != 1) { ++- sIntroFrameCounter = 0; ++- } else if (state == 1) { ++- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); ++- scaleMat = alloc_display_list(sizeof(*scaleMat)); ++- dl = alloc_display_list(4 * sizeof(*dl)); ++- dlIter = dl; +++s8 introBackgroundIndexTable[] = { +++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +++}; +++ +++// only one table of indexes listed +++s8 *introBackgroundTables[] = { introBackgroundIndexTable }; +++ +++s8 gameOverBackgroundTable[] = { +++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +++}; ++ ++- // determine scale based on the frame counter ++- if (sIntroFrameCounter >= 0 && sIntroFrameCounter < INTRO_STEPS_ZOOM_IN) { ++- // zooming in ++- scaleX = scaleTable1[sIntroFrameCounter * 3]; ++- scaleY = scaleTable1[sIntroFrameCounter * 3 + 1]; ++- scaleZ = scaleTable1[sIntroFrameCounter * 3 + 2]; ++- } else if (sIntroFrameCounter >= INTRO_STEPS_ZOOM_IN && sIntroFrameCounter < INTRO_STEPS_HOLD_1) { ++- // holding +++// order of tiles that are flipped from "Game Over" to "Super Mario 64" +++s8 gameOverBackgroundFlipOrder[] = { 0x00, 0x01, 0x02, 0x03, 0x07, 0x0B, +++ 0x0a, 0x09, 0x08, 0x04, 0x05, 0x06 }; +++ +++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context) { +++ struct GraphNode *graphNode; // sp4c +++ Gfx *displayList; // sp48 +++ Gfx *displayListIter; // sp44 +++ Mtx *scaleMat; // sp40 +++ f32 *scaleTable1; // sp3c +++ f32 *scaleTable2; // sp38 +++ f32 scaleX; // sp34 +++ f32 scaleY; // sp30 +++ f32 scaleZ; // sp2c +++ graphNode = sp54; +++ displayList = NULL; +++ displayListIter = NULL; +++ scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); +++ scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); +++ if (sp50 != 1) { +++ gTitleZoomCounter = 0; +++ } else if (sp50 == 1) { +++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; +++ scaleMat = alloc_display_list(sizeof(*scaleMat)); +++ displayList = alloc_display_list(4 * sizeof(*displayList)); +++ displayListIter = displayList; +++ if (gTitleZoomCounter >= 0 && gTitleZoomCounter < INTRO_STEPS_ZOOM_IN) { +++ scaleX = scaleTable1[gTitleZoomCounter * 3]; +++ scaleY = scaleTable1[gTitleZoomCounter * 3 + 1]; +++ scaleZ = scaleTable1[gTitleZoomCounter * 3 + 2]; +++ } else if (gTitleZoomCounter >= INTRO_STEPS_ZOOM_IN && gTitleZoomCounter < INTRO_STEPS_HOLD_1) { ++ scaleX = 1.0f; ++ scaleY = 1.0f; ++ scaleZ = 1.0f; ++- } else if (sIntroFrameCounter >= INTRO_STEPS_HOLD_1 && sIntroFrameCounter < INTRO_STEPS_ZOOM_OUT) { ++- // zooming out ++- scaleX = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3]; ++- scaleY = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; ++- scaleZ = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; +++ } else if (gTitleZoomCounter >= INTRO_STEPS_HOLD_1 +++ && gTitleZoomCounter < INTRO_STEPS_ZOOM_OUT) { +++ scaleX = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3]; +++ scaleY = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; +++ scaleZ = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; ++ } else { ++- // disappeared ++ scaleX = 0.0f; ++ scaleY = 0.0f; ++ scaleZ = 0.0f; ++ } ++ guScale(scaleMat, scaleX, scaleY, scaleZ); ++- ++- gSPMatrix(dlIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); ++- gSPDisplayList(dlIter++, &intro_seg7_dl_0700B3A0); // draw model ++- gSPPopMatrix(dlIter++, G_MTX_MODELVIEW); ++- gSPEndDisplayList(dlIter); ++- ++- sIntroFrameCounter++; +++ gSPMatrix(displayListIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); +++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700B3A0); +++ gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); +++ gSPEndDisplayList(displayListIter); +++ gTitleZoomCounter++; ++ } ++- return dl; +++ return displayList; ++ } ++ ++-/** ++- * Geo callback to render TM and Copyright on the title screen ++- */ ++-Gfx *geo_intro_tm_copyright(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNode *graphNode = node; ++- Gfx *dl = NULL; ++- Gfx *dlIter = NULL; ++- ++- if (state != 1) { // reset ++- sTmCopyrightAlpha = 0; ++- } else if (state == 1) { // draw ++- dl = alloc_display_list(5 * sizeof(*dl)); ++- dlIter = dl; ++- gSPDisplayList(dlIter++, dl_proj_mtx_fullscreen); ++- gDPSetEnvColor(dlIter++, 255, 255, 255, sTmCopyrightAlpha); ++- switch (sTmCopyrightAlpha) { ++- case 255: // opaque ++- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); ++- gDPSetRenderMode(dlIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); ++- break; ++- default: // blend ++- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_TRANSPARENT << 8); ++- gDPSetRenderMode(dlIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); ++- break; +++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { +++ struct GraphNode *graphNode = sp44; // sp3c +++ Gfx *displayList = NULL; // sp38 +++ Gfx *displayListIter = NULL; // sp34 +++ if (sp40 != 1) { +++ gTitleFadeCounter = 0; // D_801B985C +++ } else if (sp40 == 1) { +++ displayList = alloc_display_list(5 * sizeof(*displayList)); +++ displayListIter = displayList; +++ gSPDisplayList(displayListIter++, dl_proj_mtx_fullscreen); +++ gDPSetEnvColor(displayListIter++, 255, 255, 255, gTitleFadeCounter); +++ if (gTitleFadeCounter == 255) { +++ if (0) { +++ } +++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; +++ gDPSetRenderMode(displayListIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); +++ } else { +++ graphNode->flags = (graphNode->flags & 0xFF) | 0x500; +++ gDPSetRenderMode(displayListIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); +++ if (0) { +++ } ++ } ++- gSPDisplayList(dlIter++, &intro_seg7_dl_0700C6A0); // draw model ++- gSPEndDisplayList(dlIter); ++- ++- // Once the "Super Mario 64" logo has just about zoomed fully, fade in the "TM" and copyright text ++- if (sIntroFrameCounter >= 19) { ++- sTmCopyrightAlpha += 26; ++- if (sTmCopyrightAlpha > 255) { ++- sTmCopyrightAlpha = 255; +++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700C6A0); +++ gSPEndDisplayList(displayListIter); +++ if (gTitleZoomCounter >= 0x13) { +++ gTitleFadeCounter += 0x1a; +++ if (gTitleFadeCounter >= 0x100) { +++ gTitleFadeCounter = 0xFF; ++ } ++ } ++ } ++- return dl; +++ return displayList; ++ } ++ ++-/** ++- * Generates a display list for a single background tile ++- * ++- * @param index which tile to render (value from 0 to 11) ++- * @param backgroundTable array describing which image to use for each tile (0 denotes a "Super Mario 64" image, and 1 denotes a "Game Over" image) ++- */ ++-static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { ++- // intro screen background display lists for each of four 80x20 textures ++- static const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, ++- title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; ++- ++- // intro screen background texture X offsets ++- static float xCoords[] = { ++- 0, 80, 160, 240, ++- 0, 80, 160, 240, ++- 0, 80, 160, 240, ++- }; ++- ++- // intro screen background texture Y offsets ++- static float yCoords[] = { ++- 160, 160, 160, 160, ++- 80, 80, 80, 80, ++- 0, 0, 0, 0, ++- }; ++- ++- // table that points to either the "Super Mario 64" or "Game Over" tables ++- static const u8 *const *textureTables[] = { mario_title_texture_table, game_over_texture_table }; ++- ++- Mtx *mtx = alloc_display_list(sizeof(*mtx)); ++- Gfx *displayList = alloc_display_list(36 * sizeof(*displayList)); ++- Gfx *displayListIter = displayList; ++- const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[index]]); ++- s32 i; ++- ++- guTranslate(mtx, xCoords[index], yCoords[index], 0.0f); +++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { +++ Mtx *mtx; // sp5c +++ Gfx *displayList; // sp58 +++ Gfx *displayListIter; // sp54 +++ const u8 *const *vIntroBgTable; // sp50 +++ s32 i; // sp4c +++ mtx = alloc_display_list(sizeof(*mtx)); +++ displayList = alloc_display_list(36 * sizeof(*displayList)); +++ displayListIter = displayList; +++ vIntroBgTable = segmented_to_virtual(introBackgroundTextureType[backgroundTable[index]]); +++ guTranslate(mtx, introBackgroundOffsetX[index], introBackgroundOffsetY[index], 0.0f); ++ gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118); ++ for (i = 0; i < 4; ++i) { ++- gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, ++- G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) +++ gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, +++ G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) ++ gSPDisplayList(displayListIter++, introBackgroundDlRows[i]); ++ } ++ gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); ++@@ -178,291 +175,75 @@ static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { ++ return displayList; ++ } ++ ++-static s8 introBackgroundIndexTable[] = { ++- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++-}; ++- ++-// only one table of indexes listed ++-static s8 *introBackgroundTables[] = { introBackgroundIndexTable }; ++- ++-/** ++- * Geo callback to render the intro background tiles ++- */ ++-Gfx *geo_intro_regular_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNodeMore *graphNode = (struct GraphNodeMore *) node; ++- s32 index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode (always ends up being 0) ++- s8 *backgroundTable = introBackgroundTables[index]; ++- Gfx *dl = NULL; ++- Gfx *dlIter = NULL; ++- s32 i; ++- ++- if (state == 1) { // draw ++- dl = alloc_display_list(16 * sizeof(*dl)); ++- dlIter = dl; ++- graphNode->node.flags = (graphNode->node.flags & 0xFF) | (LAYER_OPAQUE << 8); ++- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); ++- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); +++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context) { +++ struct GraphNodeMore *graphNode; // sp44 +++ s32 index; // sp40 +++ s8 *backgroundTable; // sp3c +++ Gfx *displayList; // sp38 +++ Gfx *displayListIter; // sp34 +++ s32 i; // sp30 +++ graphNode = (struct GraphNodeMore *) sp4c; +++ index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode +++ backgroundTable = introBackgroundTables[index]; +++ displayList = NULL; +++ displayListIter = NULL; +++ if (sp48 == 1) { +++ displayList = alloc_display_list(16 * sizeof(*displayList)); +++ displayListIter = displayList; +++ graphNode->node.flags = (graphNode->node.flags & 0xFF) | 0x100; +++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); +++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); ++ for (i = 0; i < 12; ++i) { ++- gSPDisplayList(dlIter++, intro_backdrop_one_image(i, backgroundTable)); +++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(i, backgroundTable)); ++ } ++- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); ++- gSPEndDisplayList(dlIter); +++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); +++ gSPEndDisplayList(displayListIter); ++ } ++- return dl; +++ return displayList; ++ } ++ ++-static s8 gameOverBackgroundTable[] = { ++- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++-}; ++- ++-/** ++- * Geo callback to render the Game Over background tiles ++- */ ++-Gfx *geo_intro_gameover_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNode *graphNode = node; ++- Gfx *dl = NULL; ++- Gfx *dlIter = NULL; ++- s32 j; ++- s32 i; ++- ++- if (state != 1) { // reset ++- sGameOverFrameCounter = 0; ++- sGameOverTableIndex = -2; ++- for (i = 0; i < ARRAY_COUNT(gameOverBackgroundTable); ++i) +++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { +++ struct GraphNode *graphNode; // sp3c +++ Gfx *displayList; // sp38 +++ Gfx *displayListIter; // sp34 +++ s32 j; // sp30 +++ s32 i; // sp2c +++ graphNode = sp44; +++ displayList = NULL; +++ displayListIter = NULL; +++ if (sp40 != 1) { +++ gGameOverFrameCounter = 0; +++ gGameOverTableIndex = -2; +++ for (i = 0; i < (s32) sizeof(gameOverBackgroundTable); ++i) { ++ gameOverBackgroundTable[i] = INTRO_BACKGROUND_GAME_OVER; ++- } else { // draw ++- dl = alloc_display_list(16 * sizeof(*dl)); ++- dlIter = dl; ++- if (sGameOverTableIndex == -2) { ++- if (sGameOverFrameCounter == 180) { ++- sGameOverTableIndex++; ++- sGameOverFrameCounter = 0; ++- } ++- } else { ++- // transition tile from "Game Over" to "Super Mario 64" ++- if (sGameOverTableIndex != 11 && !(sGameOverFrameCounter & 0x1)) { ++- // order of tiles that are flipped from "Game Over" to "Super Mario 64" ++- static s8 flipOrder[] = { 0, 1, 2, 3, 7, 11, 10, 9, 8, 4, 5, 6 }; ++- ++- sGameOverTableIndex++; ++- gameOverBackgroundTable[flipOrder[sGameOverTableIndex]] = ++- INTRO_BACKGROUND_SUPER_MARIO; ++- } ++- } ++- if (sGameOverTableIndex != 11) { ++- sGameOverFrameCounter++; ++- } ++- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); ++- ++- // draw all the tiles ++- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); ++- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); ++- for (j = 0; j < ARRAY_COUNT(gameOverBackgroundTable); ++j) ++- gSPDisplayList(dlIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); ++- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); ++- gSPEndDisplayList(dlIter); ++- } ++- return dl; ++-} ++- ++-#ifdef VERSION_SH ++-extern Gfx title_screen_bg_dl_0A0065E8[]; ++-extern Gfx title_screen_bg_dl_0A006618[]; ++-extern Gfx title_screen_bg_dl_0A007548[]; ++- ++-//Data ++-s8 sFaceVisible[] = { ++- 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 0, 0, 0, 0, 1, 1, ++- 1, 1, 0, 0, 0, 0, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, ++-}; ++- ++-s8 sFaceToggleOrder[] = { ++- 0, 1, 2, 3, 4, 5, 6, 7, ++- 15, 23, 31, 39, 47, 46, 45, 44, ++- 43, 42, 41, 40, 32, 24, 16, 8, ++- 9, 10, 11, 12, 13, 14, 22, 30, ++- 38, 37, 36, 35, 34, 33, 25, 17, ++-}; ++- ++-s8 sFaceCounter = 0; ++- ++-void intro_gen_face_texrect(Gfx **dlIter) ++-{ ++- s32 x; ++- s32 y; ++- ++- for (y = 0; y < 6; y++) { ++- for (x = 0; x < 8; x++) { ++- if (sFaceVisible[y*8 + x] != 0) { ++- gSPTextureRectangle((*dlIter)++, (x * 40) << 2, (y * 40) << 2, (x * 40 + 39) << 2, (y * 40 + 39) << 2, 0, ++- 0, 0, 4 << 10, 1 << 10); ++- } ++ } ++- } ++-} ++- ++-Gfx *intro_draw_face(u16 *image, s32 imageW, s32 imageH) ++-{ ++- Gfx *dl; ++- Gfx *dlIter; ++- ++- dl = alloc_display_list(110 * sizeof(Gfx)); ++- ++- if (dl == NULL) { ++- return dl; ++ } else { ++- dlIter = dl; ++- } ++- ++- gSPDisplayList(dlIter++, title_screen_bg_dl_0A0065E8); ++- ++- gDPLoadTextureBlock(dlIter++, VIRTUAL_TO_PHYSICAL(image), G_IM_FMT_RGBA, G_IM_SIZ_16b, imageW, imageH, 0, G_TX_CLAMP | G_TX_NOMIRROR, G_TX_CLAMP | G_TX_NOMIRROR, 6, 6, G_TX_NOLOD, G_TX_NOLOD); ++- ++- intro_gen_face_texrect(&dlIter); ++- ++- gSPDisplayList(dlIter++, title_screen_bg_dl_0A006618); ++- ++- gSPEndDisplayList(dlIter++); ++- ++- return dl; ++-} ++- ++-u16 *intro_sample_frame_buffer(s32 imageW, s32 imageH, s32 sampleW, s32 sampleH) { ++- u16 *fb; ++- u16 *image; ++- s32 pixel; ++- f32 size; ++- f32 r, g, b; ++- s32 iy, ix, sy, sx; ++- ++- s32 xOffset = 120; ++- s32 yOffset = 80; ++- ++- fb = sFrameBuffers[frameBufferIndex]; ++- image = alloc_display_list(imageW * imageH * sizeof(u16)); ++- ++- if (image == NULL) { ++- return image; ++- } ++- ++- for (iy = 0; iy < imageH; iy++) { ++- for (ix = 0; ix < imageW; ix++) { ++- r = 0; ++- g = 0; ++- b = 0; ++- ++- for (sy = 0; sy < sampleH; sy++) { ++- for (sx = 0; sx < sampleW; sx++) { ++- u16 fbr, fbg, fbb; ++- f32 f1, f2, f3; ++- pixel = 320 * (sampleH * iy + sy + yOffset) + (sampleW * ix + xOffset) + sx; ++- ++- fbr = fb[pixel]; ++- fbg = fb[pixel]; ++- fbb = fb[pixel]; ++- ++- f1 = ((fbr >> 0xB) & 0x1F); ++- f2 = ((fbg >> 0x6) & 0x1F); ++- f3 = ((fbb >> 0x1) & 0x1F); ++- ++- r += f1; ++- g += f2; ++- b += f3; ++- } ++- } ++- ++- size = sampleW * sampleH; ++- image[imageH * iy + ix] = ((((u16) (r / size + 0.5) << 0xB) & 0xF800) & 0xffff) + ++- ((((u16) (g / size + 0.5) << 0x6) & 0x7C0) & 0xffff) + ++- ((((u16) (b / size + 0.5) << 0x1) & 0x3E) & 0xffff) + 1; ++- } ++- } ++- ++- return image; ++-} ++- ++-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; ++- u16 *image; ++- Gfx *dl = NULL; ++- s32 i; ++- ++- if (state != 1) { ++- sFrameBuffers[0] = gFrameBuffer0; ++- sFrameBuffers[1] = gFrameBuffer1; ++- sFrameBuffers[2] = gFrameBuffer2; ++- ++- for (i = 0; i < 48; i++) { ++- sFaceVisible[i] = 0; ++- } ++- ++- } else if (state == 1) { ++- if (sFaceCounter == 0) { ++- if (gPlayer1Controller->buttonPressed & Z_TRIG) { ++- play_sound(SOUND_MENU_STAR_SOUND, gGlobalSoundSource); ++- sFaceVisible[0] ^= 1; ++- sFaceCounter++; +++ displayList = alloc_display_list(16 * sizeof(*displayList)); +++ displayListIter = displayList; +++ if (gGameOverTableIndex == -2) { +++ if (gGameOverFrameCounter == 180) { +++ gGameOverTableIndex++; +++ gGameOverFrameCounter = 0; ++ } ++ } else { ++- sFaceVisible[sFaceToggleOrder[sFaceCounter++]] ^= 1; ++- if (sFaceCounter >= 40) { ++- sFaceCounter = 0; ++- } ++- } ++- ++- // Draw while the first or last face is visible. ++- if (sFaceVisible[0] == 1 || sFaceVisible[17] == 1) { ++- image = intro_sample_frame_buffer(40, 40, 2, 2); ++- if (image != NULL) { ++- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); ++- dl = intro_draw_face(image, 40, 40); +++ // transition tile from "Game Over" to "Super Mario 64" +++ if (gGameOverTableIndex != 11 && !(gGameOverFrameCounter & 0x1)) { +++ gGameOverTableIndex++; +++ gameOverBackgroundTable[gameOverBackgroundFlipOrder[gGameOverTableIndex]] = +++ INTRO_BACKGROUND_SUPER_MARIO; ++ } ++ } ++- } ++- ++- return dl; ++-} ++- ++-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context) { ++- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; ++- Gfx *dlIter; ++- Gfx *dl; ++- s32 introContext; ++- s8 backgroundTileSix; ++- ++- if (state != 1) { ++- dl = NULL; ++- } else if (state == 1) { ++- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); ++- introContext = genNode->parameter & 0xFF; ++- if (introContext == 0) { ++- backgroundTileSix = introBackgroundIndexTable[6]; ++- } else if (introContext == 1) { ++- backgroundTileSix = gameOverBackgroundTable[6]; +++ if (gGameOverTableIndex != 11) { +++ gGameOverFrameCounter++; ++ } ++- if (backgroundTileSix == INTRO_BACKGROUND_SUPER_MARIO) { ++- dl = alloc_display_list(3 * sizeof(*dl)); ++- if (dl != NULL) { ++- dlIter = dl; ++- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A007548); ++- gSPEndDisplayList(dlIter); ++- } ++- } else { ++- dl = NULL; +++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; +++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); +++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); +++ for (j = 0; j < (s32) sizeof(gameOverBackgroundTable); ++j) { +++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); ++ } +++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); +++ gSPEndDisplayList(displayListIter); ++ } ++- return dl; +++ return displayList; ++ } ++- ++-#endif ++- +diff --git a/src/menu/intro_geo.h b/src/menu/intro_geo.h +index bedafb6..6fa6c84 100644 +--- a/src/menu/intro_geo.h ++++ b/src/menu/intro_geo.h +@@ -5,16 +5,11 @@ + #include + + #include "types.h" +-#include "engine/graph_node.h" + +-Gfx *geo_intro_super_mario_64_logo(s32 sp50, struct GraphNode *sp54, UNUSED void *context); +-Gfx *geo_intro_tm_copyright(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +-Gfx *geo_intro_regular_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); +-Gfx *geo_intro_gameover_backdrop(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +- +-#ifdef VERSION_SH +-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context); +-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context); +-#endif ++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context); ++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context); ++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable); ++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); ++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context); + + #endif // INTRO_GEO_H +diff --git a/src/menu/intro_geo.h.rej b/src/menu/intro_geo.h.rej +new file mode 100644 +index 0000000..8cfc621 +--- /dev/null ++++ b/src/menu/intro_geo.h.rej +@@ -0,0 +1,23 @@ ++diff a/src/menu/intro_geo.h b/src/menu/intro_geo.h (rejected hunks) ++@@ -5,16 +5,11 @@ ++ #include ++ ++ #include "types.h" ++-#include "engine/graph_node.h" ++ ++-Gfx *geo_intro_super_mario_64_logo(s32 sp50, struct GraphNode *sp54, UNUSED void *context); ++-Gfx *geo_intro_tm_copyright(s32 sp40, struct GraphNode *sp44, UNUSED void *context); ++-Gfx *geo_intro_regular_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); ++-Gfx *geo_intro_gameover_backdrop(s32 sp40, struct GraphNode *sp44, UNUSED void *context); ++- ++-#ifdef VERSION_SH ++-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context); ++-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context); ++-#endif +++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context); +++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable); +++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); +++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context); ++ ++ #endif // INTRO_GEO_H +diff --git a/src/menu/star_select.c b/src/menu/star_select.c +index 025dbf2..69d9b66 100644 +--- a/src/menu/star_select.c ++++ b/src/menu/star_select.c +@@ -1,3 +1,4 @@ ++#include "src/game/texscroll.h" + #include + + #include "audio/external.h" +@@ -434,7 +435,7 @@ s32 lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused + } + } + +- area_update_objects(); ++ area_update_objects(); scroll_textures(); + sActSelectorMenuTimer++; + return sLoadedActNum; + } +diff --git a/src/menu/star_select.c.rej b/src/menu/star_select.c.rej +new file mode 100644 +index 0000000..f39812b +--- /dev/null ++++ b/src/menu/star_select.c.rej +@@ -0,0 +1,15 @@ ++diff a/src/menu/star_select.c b/src/menu/star_select.c (rejected hunks) ++@@ -1,3 +1,4 @@ +++#include "src/game/texscroll.h" ++ #include ++ ++ #include "audio/external.h" ++@@ -434,7 +435,7 @@ s32 lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused ++ } ++ } ++ ++- area_update_objects(); +++ area_update_objects(); scroll_textures(); ++ sActSelectorMenuTimer++; ++ return sLoadedActNum; ++ } +diff --git a/text/us/courses.h b/text/us/courses.h +index 34dc254..e0e0170 100644 +--- a/text/us/courses.h ++++ b/text/us/courses.h +@@ -1,6 +1,6 @@ + COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMB BATTLEFIELD"), + _("BIG BOB-OMB ON THE SUMMIT") , _("FOOTRACE WITH KOOPA THE QUICK") , _("SHOOT TO THE ISLAND IN THE SKY"), +- _("FIND THE 8 RED COINS") , _("MARIO WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) ++ _("FIND THE 8 RED COINS") , _("SONIC WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) + + COURSE_ACTS(COURSE_WF, _(" 2 WHOMP'S FORTRESS"), + _("CHIP OFF WHOMP'S BLOCK") , _("TO THE TOP OF THE FORTRESS") , _("SHOOT INTO THE WILD BLUE"), +@@ -19,7 +19,7 @@ COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOO'S HAUNT"), + _("SEEK THE 8 RED COINS") , _("BIG BOO'S BALCONY") , _("EYE TO EYE IN THE SECRET ROOM")) + + COURSE_ACTS(COURSE_HMC, _(" 6 HAZY MAZE CAVE"), +- _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD MARIO CAN MOVE!"), ++ _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD SONIC CAN MOVE!"), + _("NAVIGATING THE TOXIC MAZE") , _("A-MAZE-ING EMERGENCY EXIT") , _("WATCH FOR ROLLING ROCKS")) + + COURSE_ACTS(COURSE_LLL, _(" 7 LETHAL LAVA LAND"), +@@ -65,7 +65,7 @@ SECRET_STAR(COURSE_PSS, _(" THE PRINCESS'S SECRET SLIDE")) + SECRET_STAR(COURSE_COTMC, _(" CAVERN OF THE METAL CAP")) + SECRET_STAR(COURSE_TOTWC, _(" TOWER OF THE WING CAP")) + SECRET_STAR(COURSE_VCUTM, _(" VANISH CAP UNDER THE MOAT")) +-SECRET_STAR(COURSE_WMOTR, _(" WING MARIO OVER THE RAINBOW")) ++SECRET_STAR(COURSE_WMOTR, _(" WING SONIC OVER THE RAINBOW")) + SECRET_STAR(COURSE_SA, _(" THE SECRET AQUARIUM")) + SECRET_STAR(COURSE_CAKE_END, _("")) + +diff --git a/text/us/courses.h.rej b/text/us/courses.h.rej +new file mode 100644 +index 0000000..24e732a +--- /dev/null ++++ b/text/us/courses.h.rej +@@ -0,0 +1,27 @@ ++diff a/text/us/courses.h b/text/us/courses.h (rejected hunks) ++@@ -1,6 +1,6 @@ ++ COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMB BATTLEFIELD"), ++ _("BIG BOB-OMB ON THE SUMMIT") , _("FOOTRACE WITH KOOPA THE QUICK") , _("SHOOT TO THE ISLAND IN THE SKY"), ++- _("FIND THE 8 RED COINS") , _("MARIO WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) +++ _("FIND THE 8 RED COINS") , _("SONIC WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) ++ ++ COURSE_ACTS(COURSE_WF, _(" 2 WHOMP'S FORTRESS"), ++ _("CHIP OFF WHOMP'S BLOCK") , _("TO THE TOP OF THE FORTRESS") , _("SHOOT INTO THE WILD BLUE"), ++@@ -19,7 +19,7 @@ COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOO'S HAUNT"), ++ _("SEEK THE 8 RED COINS") , _("BIG BOO'S BALCONY") , _("EYE TO EYE IN THE SECRET ROOM")) ++ ++ COURSE_ACTS(COURSE_HMC, _(" 6 HAZY MAZE CAVE"), ++- _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD MARIO CAN MOVE!"), +++ _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD SONIC CAN MOVE!"), ++ _("NAVIGATING THE TOXIC MAZE") , _("A-MAZE-ING EMERGENCY EXIT") , _("WATCH FOR ROLLING ROCKS")) ++ ++ COURSE_ACTS(COURSE_LLL, _(" 7 LETHAL LAVA LAND"), ++@@ -65,7 +65,7 @@ SECRET_STAR(COURSE_PSS, _(" THE PRINCESS'S SECRET SLIDE")) ++ SECRET_STAR(COURSE_COTMC, _(" CAVERN OF THE METAL CAP")) ++ SECRET_STAR(COURSE_TOTWC, _(" TOWER OF THE WING CAP")) ++ SECRET_STAR(COURSE_VCUTM, _(" VANISH CAP UNDER THE MOAT")) ++-SECRET_STAR(COURSE_WMOTR, _(" WING MARIO OVER THE RAINBOW")) +++SECRET_STAR(COURSE_WMOTR, _(" WING SONIC OVER THE RAINBOW")) ++ SECRET_STAR(COURSE_SA, _(" THE SECRET AQUARIUM")) ++ SECRET_STAR(COURSE_CAKE_END, _("")) ++ +diff --git a/text/us/dialogs.h b/text/us/dialogs.h +index 34a18b2..fa0c6c4 100644 +--- a/text/us/dialogs.h ++++ b/text/us/dialogs.h +@@ -76,7 +76,7 @@ You can talk to us\n\ + whenever you'd like to!")) + + DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +-Thank you, Mario! The Big\n\ ++Thank you, Sonic! The Big\n\ + Bob-omb is nothing but a\n\ + big dud now! But the\n\ + battle for the castle has\n\ +@@ -103,7 +103,7 @@ cannons in this course for\n\ + you to use. Bon Voyage!")) + + DEFINE_DIALOG(DIALOG_005, 1, 3, 30, 200, _("\ +-Hey, Mario! Is it true\n\ ++Hey, Sonic! Is it true\n\ + that you beat the Big\n\ + Bob-omb? Cool!\n\ + You must be strong. And\n\ +@@ -133,7 +133,7 @@ real.")) + DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ + Hufff...fff...pufff...\n\ + Whoa! You...really...are...\n\ +-fast! A human blur!\n\ ++fast! A blue blur!\n\ + Here you go--you've won\n\ + it, fair and square!")) + +@@ -170,10 +170,10 @@ Ready?\n\ + + DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ + You've stepped on the\n\ +-Wing Cap Switch. Wearing\n\ +-the Wing Cap, you can\n\ ++Wing Shoe Switch. Wearing\n\ ++the Wing Shoe, you can\n\ + soar through the sky.\n\ +-Now Wing Caps will pop\n\ ++Now Wing Shoes will pop\n\ + out of all the red blocks\n\ + you find.\n\ + \n\ +@@ -183,10 +183,10 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ + You've just stepped on\n\ +-the Metal Cap Switch!\n\ +-The Metal Cap makes\n\ +-Mario invincible.\n\ +-Now Metal Caps will\n\ ++the Metal Shoe Switch!\n\ ++The Metal Shoe makes\n\ ++Sonic invincible.\n\ ++Now Metal Shoes will\n\ + pop out of all of the\n\ + green blocks you find.\n\ + \n\ +@@ -196,10 +196,10 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ + You've just stepped on\n\ +-the Vanish Cap Switch.\n\ +-The Vanish Cap makes\n\ +-Mario disappear.\n\ +-Now Vanish Caps will pop\n\ ++the Vanish Shoe Switch.\n\ ++The Vanish Shoe makes\n\ ++Sonic disappear.\n\ ++Now Vanish Shoes will pop\n\ + from all of the blue\n\ + blocks you find.\n\ + \n\ +@@ -209,14 +209,14 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ + You've collected 100\n\ +-coins! Mario gains more\n\ ++coins! Sonic gains more\n\ + power from the castle.\n\ + Do you want to Save?\n\ + //Yes////No")) + + DEFINE_DIALOG(DIALOG_014, 1, 4, 30, 200, _("\ + Wow! Another Power Star!\n\ +-Mario gains more courage\n\ ++Sonic gains more courage\n\ + from the power of the\n\ + castle.\n\ + Do you want to Save?\n\ +@@ -254,7 +254,7 @@ escape my grasp...\n\ + ...and you'll never take\n\ + away my Power Star. I\n\ + hereby challenge you,\n\ +-Mario!\n\ ++Sonic!\n\ + If you want the Star I\n\ + hold, you must prove\n\ + yourself in battle.\n\ +@@ -339,7 +339,7 @@ Bwa ha ha!")) + DEFINE_DIALOG(DIALOG_030, 1, 6, 30, 200, _("\ + Hello! The Lakitu Bros.,\n\ + cutting in with a live\n\ +-update on Mario's\n\ ++update on Sonic's\n\ + progress. He's about to\n\ + learn a technique for\n\ + sneaking up on enemies.\n\ +@@ -370,19 +370,19 @@ Mach 1 Sprint shoes!\n\ + Here, I guess I have to\n\ + hand over this Star to\n\ + the winner of the race.\n\ +-Congrats, Mario!")) ++Congrats, Sonic!")) + + DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ + If you get the Wing Cap,\n\ + you can fly! Put the cap\n\ +-on, then do a Triple\n\ +-Jump--jump three times\n\ +-in a row--to take off.\n\ ++on, then do a Homing\n\ ++Attack--to take off.\n\ + You can fly even higher\n\ + if you blast out of a\n\ + cannon wearing the\n\ + Wing Cap!\n\ + \n\ ++\n\ + Use the [C] Buttons to look\n\ + around while flying, and\n\ + press [Z] to land.")) +@@ -397,7 +397,7 @@ jump and [B] to attack.\n\ + Press [B] to read signs,\n\ + too. Use the Control Stick\n\ + in the center of the\n\ +-controller to move Mario\n\ ++controller to move Sonic\n\ + around. Now, head for\n\ + the castle.")) + +@@ -408,7 +408,7 @@ reporting live from just\n\ + outside the Princess's\n\ + castle.\n\ + \n\ +-Mario has just arrived\n\ ++Sonic has just arrived\n\ + on the scene, and we'll\n\ + be filming the action live\n\ + as he enters the castle\n\ +@@ -442,7 +442,7 @@ There are four camera, or\n\ + to look around using the\n\ + Control Stick.\n\ + \n\ +-You'll usually see Mario\n\ ++You'll usually see Sonic\n\ + through Lakitu's camera.\n\ + It is the camera\n\ + recommended for normal\n\ +@@ -450,13 +450,13 @@ play.\n\ + You can change angles by\n\ + pressing [C]>. If you press\n\ + [R], the view switches to\n\ +-Mario's camera, which\n\ ++Sonic's camera, which\n\ + is directly behind him.\n\ + Press [R] again to return\n\ + to Lakitu's camera. Press\n\ +-[C]| to see Mario from\n\ ++[C]| to see Sonic from\n\ + afar, using either\n\ +-Lakitu's or Mario's view.")) ++Lakitu's or Sonic's view.")) + + DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ + OBSERVATION PLATFORM\n\ +@@ -465,8 +465,8 @@ around. Don't miss\n\ + anything!\n\ + \n\ + Press [R] to switch to\n\ +-Mario's camera. It\n\ +-always follows Mario.\n\ ++Sonic's camera. It\n\ ++always follows Sonic.\n\ + Press [R] again to switch\n\ + to Lakitu's camera.\n\ + Pause the game and\n\ +@@ -534,7 +534,7 @@ edge if you move slowly.\n\ + When you want to let go,\n\ + either press [Z] or press\n\ + the Control Stick in the\n\ +-direction of Mario's back.\n\ ++direction of Sonic's back.\n\ + To climb up, press Up on\n\ + the Control Stick. To\n\ + scurry up quickly, press\n\ +@@ -567,34 +567,31 @@ grab on.")) + DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ + Whew! I'm just about\n\ + flapped out. You should\n\ +-lay off the pasta, Mario!\n\ +-That's it for now. Press\n\ +-[A] to let go. Okay,\n\ +-bye byyyyyyeeee!")) ++lay off the chili dogs,\n\ ++Sonic! That's it for now.\n\ ++Press[A] to let go.\n\ ++Okay, bye byyyyyyeeee!")) + + DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ + You have to master three\n\ + important jumping\n\ + techniques.\n\ +-First try the Triple Jump.\n\ +-\n\ +-Run fast, then jump three\n\ +-times, one, two, three.\n\ +-If you time the jumps\n\ +-right, you'll hop, skip,\n\ +-then jump really high.\n\ +-Next, go for distance\n\ +-with the Long Jump. Run,\n\ +-press [Z] to crouch then [A]\n\ +-to jump really far.\n\ ++\n\ ++First try the Bound Jump.\n\ ++Jump, then press [Z]\n\ ++and you will jump\n\ ++really high on the spot.\n\ ++Next, To do a Homing Attack\n\ ++press [B] in the Air to\n\ ++dash forward.\n\ + \n\ + To do the Wall Kick, press\n\ + [A] to jump at a wall, then\n\ + jump again when you hit\n\ + the wall.\n\ + \n\ +-Got that? Triple Jump,\n\ +-Long Jump, Wall Kick.\n\ ++Got that? Bound Jump,\n\ ++Homing Attack, Wall Kick.\n\ + Practice, practice,\n\ + practice. You don't stand\n\ + a chance without them.")) +@@ -683,7 +680,7 @@ Control Stick. To slow\n\ + down, pull back.")) + + DEFINE_DIALOG(DIALOG_055, 1, 4, 30, 200, _("\ +-Hey-ey, Mario, buddy,\n\ ++Hey-ey, Sonic, buddy,\n\ + howzit goin'? Step right\n\ + up. You look like a fast\n\ + sleddin' kind of guy.\n\ +@@ -726,7 +723,7 @@ DEFINE_DIALOG(DIALOG_058, 1, 4, 30, 200, _("\ + You found my precious,\n\ + precious baby! Where\n\ + have you been? How can\n\ +-I ever thank you, Mario?\n\ ++I ever thank you, Sonic?\n\ + Oh, I do have this...\n\ + ...Star. Here, take it\n\ + with my eternal\n\ +@@ -800,36 +797,30 @@ through secret walls, too.")) + DEFINE_DIALOG(DIALOG_064, 1, 5, 30, 200, _("\ + When you put on the Wing\n\ + Cap that comes from a\n\ +-red block, do the Triple\n\ +-Jump to soar high into\n\ ++red block, do the Homing\n\ ++Attack to soar high into\n\ + the sky.\n\ + Use the Control Stick to\n\ +-guide Mario. Pull back to\n\ ++guide Sonic. Pull back to\n\ + to fly up, press forward\n\ + to nose down, and press [Z]\n\ + to land.")) + + DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ + Swimming Lessons!\n\ +-Tap [A] to do the breast\n\ +-stroke. If you time the\n\ +-taps right, you'll swim\n\ +-fast.\n\ +-\n\ +-Press and hold [A] to do a\n\ +-slow, steady flutter kick.\n\ +-Press Up on the Control\n\ +-Stick to dive, and pull\n\ +-back on the stick to head\n\ +-for the surface.\n\ +-To jump out of the water,\n\ +-hold Down on the Control\n\ +-Stick, then press [A].\n\ +-Easy as pie, right?\n\ +-\n\ +-\n\ +-But remember:\n\ +-Mario can't breathe under\n\ ++Tap [A] repeatedly to\n\ ++jump underwater multiple\n\ ++times.\n\ ++\n\ ++\n\ ++You can also walk at the\n\ ++seafloor but for you it\n\ ++is better to run above\n\ ++the surface.\n\ ++\n\ ++\n\ ++And remember:\n\ ++Sonic can't breathe under\n\ + the water! Return to the\n\ + surface for air when the\n\ + Power Meter runs low.\n\ +@@ -839,7 +830,7 @@ can't open doors that\n\ + are underwater.")) + + DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ +-Mario, it's Peach!\n\ ++Sonic, it's Peach!\n\ + Please be careful! Bowser\n\ + is so wicked! He will try\n\ + to burn you with his\n\ +@@ -855,17 +846,17 @@ The faster you swing him,\n\ + the farther he'll fly.\n\ + \n\ + Use the [C] Buttons to look\n\ +-around, Mario. You have\n\ ++around, Sonic. You have\n\ + to throw Bowser into one\n\ + of the bombs in the four\n\ + corners.\n\ + Aim well, then press [B]\n\ + again to launch Bowser.\n\ +-Good luck, Mario! Our\n\ ++Good luck, Sonic! Our\n\ + fate is in your hands.")) + + DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ +-Tough luck, Mario!\n\ ++Sonic, you?!\n\ + Princess Toadstool isn't\n\ + here...Gwa ha ha!! Go\n\ + ahead--just try to grab\n\ +@@ -882,7 +873,7 @@ into a pool of flames,\n\ + you'll be hopping mad, but\n\ + don't lose your cool.\n\ + You can still control\n\ +-Mario--just try to keep\n\ ++Sonic--just try to keep\n\ + calm!")) + + DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ +@@ -968,7 +959,7 @@ hang down from it.\n\ + To drop from the edge,\n\ + either press the Control\n\ + Stick in the direction of\n\ +-Mario's back or press the\n\ ++Sonic's back or press the\n\ + [Z] Button.\n\ + To get up onto the ledge,\n\ + either press Up on the\n\ +@@ -977,10 +968,10 @@ as soon as you grab the\n\ + ledge to climb up quickly.")) + + DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +-Mario!! My castle is in\n\ ++Sonic!! My castle is in\n\ + great peril. I know that\n\ + Bowser is the cause...and\n\ +-I know that only you can\n\ ++I know that you can\n\ + stop him!\n\ + The doors in the castle\n\ + that have been sealed by\n\ +@@ -998,9 +989,9 @@ one of the castle's Secret\n\ + Stars!\n\ + \n\ + Find that Secret Star,\n\ +-Mario! It will help you\n\ ++Sonic! It will help you\n\ + on your quest. Please,\n\ +-Mario, you have to\n\ ++Sonic, you have to\n\ + help us!\n\ + Retrieve all of the\n\ + Power Stars in the castle\n\ +@@ -1012,7 +1003,7 @@ DEFINE_DIALOG(DIALOG_076, 1, 6, 30, 200, _("\ + Thanks to the power of\n\ + the Stars, life is\n\ + returning to the castle.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to give Bowser the boot!\n\ + \n\ + Here, let me tell you a\n\ +@@ -1068,19 +1059,11 @@ with the depth they bring\n\ + as they enter.")) + + DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ +-Hold on to your hat! If\n\ +-you lose it, you'll be\n\ +-injured easily.\n\ +-\n\ +-If you do lose your Cap,\n\ +-you'll have to find it in\n\ +-the course where you\n\ +-lost it.\n\ + Oh, boy, it's not looking\n\ + good for Peach. She's\n\ + still trapped somewhere\n\ + inside the walls.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to help her! Did you know\n\ + that there are enemy\n\ + worlds inside the walls?\n\ +@@ -1095,7 +1078,7 @@ about that clock. As you\n\ + jump inside, watch the\n\ + position of the big hand.\n\ + Oh, look what I found!\n\ +-Here, Mario, catch!")) ++Here, Sonic, catch!")) + + DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ + Yeeoww! Unhand me,\n\ +@@ -1167,7 +1150,7 @@ comfy ride.")) + + DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ + Pestering me again, are\n\ +-you, Mario? Can't you see\n\ ++you, Sonic? Can't you see\n\ + that I'm having a merry\n\ + little time, making\n\ + mischief with my minions?\n\ +@@ -1176,7 +1159,7 @@ My troops in the walls\n\ + need them! Bwa ha ha!")) + + DEFINE_DIALOG(DIALOG_093, 1, 5, 30, 200, _("\ +-Mario! You again! Well\n\ ++Sonic! You again! Well\n\ + that's just fine--I've\n\ + been looking for something\n\ + to fry with my fire\n\ +@@ -1233,12 +1216,16 @@ Come on in here...\n\ + ...heh, heh, heh...")) + + // unused +-DEFINE_DIALOG(DIALOG_099, 1, 5, 95, 200, _("\ +-Eh he he...\n\ +-You're mine, now, hee hee!\n\ +-I'll pass right through\n\ +-this wall. Can you do\n\ +-that? Heh, heh, heh!")) ++DEFINE_DIALOG(DIALOG_099, 1, 9, 95, 200, _("\ ++You've collected\n\ ++7 x 100 coin Stars!\n\ ++Sonic can be Super Sonic!\n\ ++When you have 50 coins\n\ ++press [A] during a\n\ ++Bound Jump to transform.\n\ ++\n\ ++Do you want to Save?\n\ ++//Yes////No")) + + DEFINE_DIALOG(DIALOG_100, 1, 3, 95, 200, _("\ + Ukkiki...Wakkiki...kee kee!\n\ +@@ -1399,7 +1386,7 @@ Bowser by the tail.\n\ + Methinks my troops could\n\ + learn a lesson from you!\n\ + Here is your Star, as I\n\ +-promised, Mario.\n\ ++promised, Sonic.\n\ + \n\ + If you want to see me\n\ + again, select this Star\n\ +@@ -1461,7 +1448,7 @@ Gwa ha ha ha!")) + DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ + Nooo! It can't be!\n\ + You've really beaten me,\n\ +-Mario?!! I gave those\n\ ++Sonic?!! I gave those\n\ + troops power, but now\n\ + it's fading away!\n\ + Arrgghh! I can see peace\n\ +@@ -1554,7 +1541,7 @@ blocks you find will\n\ + become solid.\n\ + \n\ + Try out the Wing Cap! Do\n\ +-the Triple Jump to take\n\ ++the Homing Attack to take\n\ + off and press [Z] to land.\n\ + \n\ + \n\ +@@ -1565,7 +1552,7 @@ just as you would when\n\ + flying an airplane.")) + + DEFINE_DIALOG(DIALOG_132, 1, 4, 30, 200, _("\ +-Whoa, Mario, pal, you\n\ ++Whoa, Sonic, pal, you\n\ + aren't trying to cheat,\n\ + are you? Shortcuts aren't\n\ + allowed.\n\ +@@ -1647,7 +1634,7 @@ from them.")) + DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ + Wow! You've already\n\ + recovered that many\n\ +-Stars? Way to go, Mario!\n\ ++Stars? Way to go, Sonic!\n\ + I'll bet you'll have us out\n\ + of here in no time!\n\ + \n\ +@@ -1676,7 +1663,7 @@ Pound the Ground as you\n\ + land.")) + + DEFINE_DIALOG(DIALOG_137, 1, 6, 30, 200, _("\ +-Thanks, Mario! The castle\n\ ++Thanks, Sonic! The castle\n\ + is recovering its energy\n\ + as you retrieve Power\n\ + Stars, and you've chased\n\ +@@ -1723,7 +1710,7 @@ Fortress on Floor 1.\n\ + Bowser's troops are still\n\ + gaining power, so you\n\ + can't give up. Save us,\n\ +-Mario! Keep searching for\n\ ++Sonic! Keep searching for\n\ + Stars!")) + + DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +@@ -1814,7 +1801,7 @@ Cap.")) + DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ + Snowman Mountain ahead.\n\ + Keep out! And don't try\n\ +-the Triple Jump over the\n\ ++the Bound Jump over the\n\ + ice block shooter.\n\ + \n\ + \n\ +@@ -1888,15 +1875,11 @@ bugging me! I think I'll\n\ + blow it away!")) + + DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ +-Hold on to your hat! If\n\ +-you lose it, you'll be\n\ +-easily injured. If you\n\ +-lose it, look for it in the\n\ +-course where you lost it.\n\ +-Speaking of lost, the\n\ ++Hey Sonic, the\n\ + Princess is still stuck in\n\ + the walls somewhere.\n\ +-Please help, Mario!\n\ ++Please help, Sonic!\n\ ++\n\ + \n\ + Oh, you know that there\n\ + are secret worlds in the\n\ +@@ -1907,7 +1890,7 @@ DEFINE_DIALOG(DIALOG_155, 1, 6, 30, 200, _("\ + Thanks to the power of\n\ + the Stars, life is\n\ + returning to the castle.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to give Bowser the boot!\n\ + \n\ + Here, let me tell you a\n\ +@@ -1964,10 +1947,10 @@ Jump, run fast, press [Z],\n\ + then jump.")) + + DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ +-Press [B] while running\n\ +-fast to do a Body Slide\n\ +-attack. To stand while\n\ +-sliding, press [A] or [B].")) ++Press [Z] while running\n\ ++fast to do a Spin\n\ ++attack. To jump while\n\ ++rolling, press [A] or [B].")) + + #ifdef VERSION_EU + #define KEEP_ON_PLAYING ".." +@@ -1981,14 +1964,14 @@ Enjoy!!!" + #endif + + DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ +-Mario!!!\n\ +-It that really you???\n\ +-It has been so long since\n\ +-our last adventure!\n\ +-They told me that I might\n\ +-see you if I waited here,\n\ +-but I'd just about given\n\ +-up hope!\n\ ++Sonic!!!\n\ ++Is that really you???\n\ ++I didn't expect you\n\ ++to see here!\n\ ++They told me that I would\n\ ++see someone if I waited\n\ ++here, but I'd just about\n\ ++given up hope!\n\ + Is it true? Have you\n\ + really beaten Bowser? And\n\ + restored the Stars to the\n\ +@@ -1998,12 +1981,12 @@ I knew you could do it!\n\ + Now I have a very special\n\ + message for you.\n\ + 『Thanks for playing Super\n\ +-Mario 64! This is the\n\ +-end of the game, but not\n\ +-the end of the fun." \ ++Mario 64 Sonic Edition\n\ ++and for supporting\n\ ++this mod." \ + KEEP_ON_PLAYING "』\n\ + \n\ +-The Super Mario 64 Team")) ++Thodds")) + + DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ + No, no, no! Not you\n\ +@@ -2022,7 +2005,7 @@ Owww! Let me go!")) + DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ + Noooo! You've really\n\ + beaten me this time,\n\ +-Mario! I can't stand\n\ ++Sonic! I can't stand\n\ + losing to you!\n\ + \n\ + My troops...worthless!\n\ +@@ -2047,7 +2030,7 @@ smokin'!\n\ + Buwaa ha ha!")) + + DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ +-Mario! What's up, pal?\n\ ++Sonic! What's up, pal?\n\ + I haven't been on the\n\ + slide lately, so I'm out\n\ + of shape.\n\ +diff --git a/text/us/dialogs.h.rej b/text/us/dialogs.h.rej +new file mode 100644 +index 0000000..1276c16 +--- /dev/null ++++ b/text/us/dialogs.h.rej +@@ -0,0 +1,641 @@ ++diff a/text/us/dialogs.h b/text/us/dialogs.h (rejected hunks) ++@@ -76,7 +76,7 @@ You can talk to us\n\ ++ whenever you'd like to!")) ++ ++ DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ ++-Thank you, Mario! The Big\n\ +++Thank you, Sonic! The Big\n\ ++ Bob-omb is nothing but a\n\ ++ big dud now! But the\n\ ++ battle for the castle has\n\ ++@@ -103,7 +103,7 @@ cannons in this course for\n\ ++ you to use. Bon Voyage!")) ++ ++ DEFINE_DIALOG(DIALOG_005, 1, 3, 30, 200, _("\ ++-Hey, Mario! Is it true\n\ +++Hey, Sonic! Is it true\n\ ++ that you beat the Big\n\ ++ Bob-omb? Cool!\n\ ++ You must be strong. And\n\ ++@@ -133,7 +133,7 @@ real.")) ++ DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ ++ Hufff...fff...pufff...\n\ ++ Whoa! You...really...are...\n\ ++-fast! A human blur!\n\ +++fast! A blue blur!\n\ ++ Here you go--you've won\n\ ++ it, fair and square!")) ++ ++@@ -170,10 +170,10 @@ Ready?\n\ ++ ++ DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ ++ You've stepped on the\n\ ++-Wing Cap Switch. Wearing\n\ ++-the Wing Cap, you can\n\ +++Wing Shoe Switch. Wearing\n\ +++the Wing Shoe, you can\n\ ++ soar through the sky.\n\ ++-Now Wing Caps will pop\n\ +++Now Wing Shoes will pop\n\ ++ out of all the red blocks\n\ ++ you find.\n\ ++ \n\ ++@@ -183,10 +183,10 @@ Would you like to Save?\n\ ++ ++ DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ ++ You've just stepped on\n\ ++-the Metal Cap Switch!\n\ ++-The Metal Cap makes\n\ ++-Mario invincible.\n\ ++-Now Metal Caps will\n\ +++the Metal Shoe Switch!\n\ +++The Metal Shoe makes\n\ +++Sonic invincible.\n\ +++Now Metal Shoes will\n\ ++ pop out of all of the\n\ ++ green blocks you find.\n\ ++ \n\ ++@@ -196,10 +196,10 @@ Would you like to Save?\n\ ++ ++ DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ ++ You've just stepped on\n\ ++-the Vanish Cap Switch.\n\ ++-The Vanish Cap makes\n\ ++-Mario disappear.\n\ ++-Now Vanish Caps will pop\n\ +++the Vanish Shoe Switch.\n\ +++The Vanish Shoe makes\n\ +++Sonic disappear.\n\ +++Now Vanish Shoes will pop\n\ ++ from all of the blue\n\ ++ blocks you find.\n\ ++ \n\ ++@@ -209,14 +209,14 @@ Would you like to Save?\n\ ++ ++ DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ ++ You've collected 100\n\ ++-coins! Mario gains more\n\ +++coins! Sonic gains more\n\ ++ power from the castle.\n\ ++ Do you want to Save?\n\ ++ //Yes////No")) ++ ++ DEFINE_DIALOG(DIALOG_014, 1, 4, 30, 200, _("\ ++ Wow! Another Power Star!\n\ ++-Mario gains more courage\n\ +++Sonic gains more courage\n\ ++ from the power of the\n\ ++ castle.\n\ ++ Do you want to Save?\n\ ++@@ -254,7 +254,7 @@ escape my grasp...\n\ ++ ...and you'll never take\n\ ++ away my Power Star. I\n\ ++ hereby challenge you,\n\ ++-Mario!\n\ +++Sonic!\n\ ++ If you want the Star I\n\ ++ hold, you must prove\n\ ++ yourself in battle.\n\ ++@@ -339,7 +339,7 @@ Bwa ha ha!")) ++ DEFINE_DIALOG(DIALOG_030, 1, 6, 30, 200, _("\ ++ Hello! The Lakitu Bros.,\n\ ++ cutting in with a live\n\ ++-update on Mario's\n\ +++update on Sonic's\n\ ++ progress. He's about to\n\ ++ learn a technique for\n\ ++ sneaking up on enemies.\n\ ++@@ -370,19 +370,19 @@ Mach 1 Sprint shoes!\n\ ++ Here, I guess I have to\n\ ++ hand over this Star to\n\ ++ the winner of the race.\n\ ++-Congrats, Mario!")) +++Congrats, Sonic!")) ++ ++ DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ ++ If you get the Wing Cap,\n\ ++ you can fly! Put the cap\n\ ++-on, then do a Triple\n\ ++-Jump--jump three times\n\ ++-in a row--to take off.\n\ +++on, then do a Homing\n\ +++Attack--to take off.\n\ ++ You can fly even higher\n\ ++ if you blast out of a\n\ ++ cannon wearing the\n\ ++ Wing Cap!\n\ ++ \n\ +++\n\ ++ Use the [C] Buttons to look\n\ ++ around while flying, and\n\ ++ press [Z] to land.")) ++@@ -397,7 +397,7 @@ jump and [B] to attack.\n\ ++ Press [B] to read signs,\n\ ++ too. Use the Control Stick\n\ ++ in the center of the\n\ ++-controller to move Mario\n\ +++controller to move Sonic\n\ ++ around. Now, head for\n\ ++ the castle.")) ++ ++@@ -408,7 +408,7 @@ reporting live from just\n\ ++ outside the Princess's\n\ ++ castle.\n\ ++ \n\ ++-Mario has just arrived\n\ +++Sonic has just arrived\n\ ++ on the scene, and we'll\n\ ++ be filming the action live\n\ ++ as he enters the castle\n\ ++@@ -442,7 +442,7 @@ There are four camera, or\n\ ++ to look around using the\n\ ++ Control Stick.\n\ ++ \n\ ++-You'll usually see Mario\n\ +++You'll usually see Sonic\n\ ++ through Lakitu's camera.\n\ ++ It is the camera\n\ ++ recommended for normal\n\ ++@@ -450,13 +450,13 @@ play.\n\ ++ You can change angles by\n\ ++ pressing [C]>. If you press\n\ ++ [R], the view switches to\n\ ++-Mario's camera, which\n\ +++Sonic's camera, which\n\ ++ is directly behind him.\n\ ++ Press [R] again to return\n\ ++ to Lakitu's camera. Press\n\ ++-[C]| to see Mario from\n\ +++[C]| to see Sonic from\n\ ++ afar, using either\n\ ++-Lakitu's or Mario's view.")) +++Lakitu's or Sonic's view.")) ++ ++ DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ ++ OBSERVATION PLATFORM\n\ ++@@ -465,8 +465,8 @@ around. Don't miss\n\ ++ anything!\n\ ++ \n\ ++ Press [R] to switch to\n\ ++-Mario's camera. It\n\ ++-always follows Mario.\n\ +++Sonic's camera. It\n\ +++always follows Sonic.\n\ ++ Press [R] again to switch\n\ ++ to Lakitu's camera.\n\ ++ Pause the game and\n\ ++@@ -534,7 +534,7 @@ edge if you move slowly.\n\ ++ When you want to let go,\n\ ++ either press [Z] or press\n\ ++ the Control Stick in the\n\ ++-direction of Mario's back.\n\ +++direction of Sonic's back.\n\ ++ To climb up, press Up on\n\ ++ the Control Stick. To\n\ ++ scurry up quickly, press\n\ ++@@ -567,34 +567,31 @@ grab on.")) ++ DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ ++ Whew! I'm just about\n\ ++ flapped out. You should\n\ ++-lay off the pasta, Mario!\n\ ++-That's it for now. Press\n\ ++-[A] to let go. Okay,\n\ ++-bye byyyyyyeeee!")) +++lay off the chili dogs,\n\ +++Sonic! That's it for now.\n\ +++Press[A] to let go.\n\ +++Okay, bye byyyyyyeeee!")) ++ ++ DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ ++ You have to master three\n\ ++ important jumping\n\ ++ techniques.\n\ ++-First try the Triple Jump.\n\ ++-\n\ ++-Run fast, then jump three\n\ ++-times, one, two, three.\n\ ++-If you time the jumps\n\ ++-right, you'll hop, skip,\n\ ++-then jump really high.\n\ ++-Next, go for distance\n\ ++-with the Long Jump. Run,\n\ ++-press [Z] to crouch then [A]\n\ ++-to jump really far.\n\ +++\n\ +++First try the Bound Jump.\n\ +++Jump, then press [Z]\n\ +++and you will jump\n\ +++really high on the spot.\n\ +++Next, To do a Homing Attack\n\ +++press [B] in the Air to\n\ +++dash forward.\n\ ++ \n\ ++ To do the Wall Kick, press\n\ ++ [A] to jump at a wall, then\n\ ++ jump again when you hit\n\ ++ the wall.\n\ ++ \n\ ++-Got that? Triple Jump,\n\ ++-Long Jump, Wall Kick.\n\ +++Got that? Bound Jump,\n\ +++Homing Attack, Wall Kick.\n\ ++ Practice, practice,\n\ ++ practice. You don't stand\n\ ++ a chance without them.")) ++@@ -683,7 +680,7 @@ Control Stick. To slow\n\ ++ down, pull back.")) ++ ++ DEFINE_DIALOG(DIALOG_055, 1, 4, 30, 200, _("\ ++-Hey-ey, Mario, buddy,\n\ +++Hey-ey, Sonic, buddy,\n\ ++ howzit goin'? Step right\n\ ++ up. You look like a fast\n\ ++ sleddin' kind of guy.\n\ ++@@ -726,7 +723,7 @@ DEFINE_DIALOG(DIALOG_058, 1, 4, 30, 200, _("\ ++ You found my precious,\n\ ++ precious baby! Where\n\ ++ have you been? How can\n\ ++-I ever thank you, Mario?\n\ +++I ever thank you, Sonic?\n\ ++ Oh, I do have this...\n\ ++ ...Star. Here, take it\n\ ++ with my eternal\n\ ++@@ -800,36 +797,30 @@ through secret walls, too.")) ++ DEFINE_DIALOG(DIALOG_064, 1, 5, 30, 200, _("\ ++ When you put on the Wing\n\ ++ Cap that comes from a\n\ ++-red block, do the Triple\n\ ++-Jump to soar high into\n\ +++red block, do the Homing\n\ +++Attack to soar high into\n\ ++ the sky.\n\ ++ Use the Control Stick to\n\ ++-guide Mario. Pull back to\n\ +++guide Sonic. Pull back to\n\ ++ to fly up, press forward\n\ ++ to nose down, and press [Z]\n\ ++ to land.")) ++ ++ DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ ++ Swimming Lessons!\n\ ++-Tap [A] to do the breast\n\ ++-stroke. If you time the\n\ ++-taps right, you'll swim\n\ ++-fast.\n\ ++-\n\ ++-Press and hold [A] to do a\n\ ++-slow, steady flutter kick.\n\ ++-Press Up on the Control\n\ ++-Stick to dive, and pull\n\ ++-back on the stick to head\n\ ++-for the surface.\n\ ++-To jump out of the water,\n\ ++-hold Down on the Control\n\ ++-Stick, then press [A].\n\ ++-Easy as pie, right?\n\ ++-\n\ ++-\n\ ++-But remember:\n\ ++-Mario can't breathe under\n\ +++Tap [A] repeatedly to\n\ +++jump underwater multiple\n\ +++times.\n\ +++\n\ +++\n\ +++You can also walk at the\n\ +++seafloor but for you it\n\ +++is better to run above\n\ +++the surface.\n\ +++\n\ +++\n\ +++And remember:\n\ +++Sonic can't breathe under\n\ ++ the water! Return to the\n\ ++ surface for air when the\n\ ++ Power Meter runs low.\n\ ++@@ -839,7 +830,7 @@ can't open doors that\n\ ++ are underwater.")) ++ ++ DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ ++-Mario, it's Peach!\n\ +++Sonic, it's Peach!\n\ ++ Please be careful! Bowser\n\ ++ is so wicked! He will try\n\ ++ to burn you with his\n\ ++@@ -855,17 +846,17 @@ The faster you swing him,\n\ ++ the farther he'll fly.\n\ ++ \n\ ++ Use the [C] Buttons to look\n\ ++-around, Mario. You have\n\ +++around, Sonic. You have\n\ ++ to throw Bowser into one\n\ ++ of the bombs in the four\n\ ++ corners.\n\ ++ Aim well, then press [B]\n\ ++ again to launch Bowser.\n\ ++-Good luck, Mario! Our\n\ +++Good luck, Sonic! Our\n\ ++ fate is in your hands.")) ++ ++ DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ ++-Tough luck, Mario!\n\ +++Sonic, you?!\n\ ++ Princess Toadstool isn't\n\ ++ here...Gwa ha ha!! Go\n\ ++ ahead--just try to grab\n\ ++@@ -882,7 +873,7 @@ into a pool of flames,\n\ ++ you'll be hopping mad, but\n\ ++ don't lose your cool.\n\ ++ You can still control\n\ ++-Mario--just try to keep\n\ +++Sonic--just try to keep\n\ ++ calm!")) ++ ++ DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ ++@@ -968,7 +959,7 @@ hang down from it.\n\ ++ To drop from the edge,\n\ ++ either press the Control\n\ ++ Stick in the direction of\n\ ++-Mario's back or press the\n\ +++Sonic's back or press the\n\ ++ [Z] Button.\n\ ++ To get up onto the ledge,\n\ ++ either press Up on the\n\ ++@@ -977,10 +968,10 @@ as soon as you grab the\n\ ++ ledge to climb up quickly.")) ++ ++ DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ ++-Mario!! My castle is in\n\ +++Sonic!! My castle is in\n\ ++ great peril. I know that\n\ ++ Bowser is the cause...and\n\ ++-I know that only you can\n\ +++I know that you can\n\ ++ stop him!\n\ ++ The doors in the castle\n\ ++ that have been sealed by\n\ ++@@ -998,9 +989,9 @@ one of the castle's Secret\n\ ++ Stars!\n\ ++ \n\ ++ Find that Secret Star,\n\ ++-Mario! It will help you\n\ +++Sonic! It will help you\n\ ++ on your quest. Please,\n\ ++-Mario, you have to\n\ +++Sonic, you have to\n\ ++ help us!\n\ ++ Retrieve all of the\n\ ++ Power Stars in the castle\n\ ++@@ -1012,7 +1003,7 @@ DEFINE_DIALOG(DIALOG_076, 1, 6, 30, 200, _("\ ++ Thanks to the power of\n\ ++ the Stars, life is\n\ ++ returning to the castle.\n\ ++-Please, Mario, you have\n\ +++Please, Sonic, you have\n\ ++ to give Bowser the boot!\n\ ++ \n\ ++ Here, let me tell you a\n\ ++@@ -1068,19 +1059,11 @@ with the depth they bring\n\ ++ as they enter.")) ++ ++ DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ ++-Hold on to your hat! If\n\ ++-you lose it, you'll be\n\ ++-injured easily.\n\ ++-\n\ ++-If you do lose your Cap,\n\ ++-you'll have to find it in\n\ ++-the course where you\n\ ++-lost it.\n\ ++ Oh, boy, it's not looking\n\ ++ good for Peach. She's\n\ ++ still trapped somewhere\n\ ++ inside the walls.\n\ ++-Please, Mario, you have\n\ +++Please, Sonic, you have\n\ ++ to help her! Did you know\n\ ++ that there are enemy\n\ ++ worlds inside the walls?\n\ ++@@ -1095,7 +1078,7 @@ about that clock. As you\n\ ++ jump inside, watch the\n\ ++ position of the big hand.\n\ ++ Oh, look what I found!\n\ ++-Here, Mario, catch!")) +++Here, Sonic, catch!")) ++ ++ DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ ++ Yeeoww! Unhand me,\n\ ++@@ -1167,7 +1150,7 @@ comfy ride.")) ++ ++ DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ ++ Pestering me again, are\n\ ++-you, Mario? Can't you see\n\ +++you, Sonic? Can't you see\n\ ++ that I'm having a merry\n\ ++ little time, making\n\ ++ mischief with my minions?\n\ ++@@ -1176,7 +1159,7 @@ My troops in the walls\n\ ++ need them! Bwa ha ha!")) ++ ++ DEFINE_DIALOG(DIALOG_093, 1, 5, 30, 200, _("\ ++-Mario! You again! Well\n\ +++Sonic! You again! Well\n\ ++ that's just fine--I've\n\ ++ been looking for something\n\ ++ to fry with my fire\n\ ++@@ -1233,12 +1216,16 @@ Come on in here...\n\ ++ ...heh, heh, heh...")) ++ ++ // unused ++-DEFINE_DIALOG(DIALOG_099, 1, 5, 95, 200, _("\ ++-Eh he he...\n\ ++-You're mine, now, hee hee!\n\ ++-I'll pass right through\n\ ++-this wall. Can you do\n\ ++-that? Heh, heh, heh!")) +++DEFINE_DIALOG(DIALOG_099, 1, 9, 95, 200, _("\ +++You've collected\n\ +++7 x 100 coin Stars!\n\ +++Sonic can be Super Sonic!\n\ +++When you have 50 coins\n\ +++press [A] during a\n\ +++Bound Jump to transform.\n\ +++\n\ +++Do you want to Save?\n\ +++//Yes////No")) ++ ++ DEFINE_DIALOG(DIALOG_100, 1, 3, 95, 200, _("\ ++ Ukkiki...Wakkiki...kee kee!\n\ ++@@ -1399,7 +1386,7 @@ Bowser by the tail.\n\ ++ Methinks my troops could\n\ ++ learn a lesson from you!\n\ ++ Here is your Star, as I\n\ ++-promised, Mario.\n\ +++promised, Sonic.\n\ ++ \n\ ++ If you want to see me\n\ ++ again, select this Star\n\ ++@@ -1461,7 +1448,7 @@ Gwa ha ha ha!")) ++ DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ ++ Nooo! It can't be!\n\ ++ You've really beaten me,\n\ ++-Mario?!! I gave those\n\ +++Sonic?!! I gave those\n\ ++ troops power, but now\n\ ++ it's fading away!\n\ ++ Arrgghh! I can see peace\n\ ++@@ -1554,7 +1541,7 @@ blocks you find will\n\ ++ become solid.\n\ ++ \n\ ++ Try out the Wing Cap! Do\n\ ++-the Triple Jump to take\n\ +++the Homing Attack to take\n\ ++ off and press [Z] to land.\n\ ++ \n\ ++ \n\ ++@@ -1565,7 +1552,7 @@ just as you would when\n\ ++ flying an airplane.")) ++ ++ DEFINE_DIALOG(DIALOG_132, 1, 4, 30, 200, _("\ ++-Whoa, Mario, pal, you\n\ +++Whoa, Sonic, pal, you\n\ ++ aren't trying to cheat,\n\ ++ are you? Shortcuts aren't\n\ ++ allowed.\n\ ++@@ -1647,7 +1634,7 @@ from them.")) ++ DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ ++ Wow! You've already\n\ ++ recovered that many\n\ ++-Stars? Way to go, Mario!\n\ +++Stars? Way to go, Sonic!\n\ ++ I'll bet you'll have us out\n\ ++ of here in no time!\n\ ++ \n\ ++@@ -1676,7 +1663,7 @@ Pound the Ground as you\n\ ++ land.")) ++ ++ DEFINE_DIALOG(DIALOG_137, 1, 6, 30, 200, _("\ ++-Thanks, Mario! The castle\n\ +++Thanks, Sonic! The castle\n\ ++ is recovering its energy\n\ ++ as you retrieve Power\n\ ++ Stars, and you've chased\n\ ++@@ -1723,7 +1710,7 @@ Fortress on Floor 1.\n\ ++ Bowser's troops are still\n\ ++ gaining power, so you\n\ ++ can't give up. Save us,\n\ ++-Mario! Keep searching for\n\ +++Sonic! Keep searching for\n\ ++ Stars!")) ++ ++ DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ ++@@ -1814,7 +1801,7 @@ Cap.")) ++ DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ ++ Snowman Mountain ahead.\n\ ++ Keep out! And don't try\n\ ++-the Triple Jump over the\n\ +++the Bound Jump over the\n\ ++ ice block shooter.\n\ ++ \n\ ++ \n\ ++@@ -1888,15 +1875,11 @@ bugging me! I think I'll\n\ ++ blow it away!")) ++ ++ DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ ++-Hold on to your hat! If\n\ ++-you lose it, you'll be\n\ ++-easily injured. If you\n\ ++-lose it, look for it in the\n\ ++-course where you lost it.\n\ ++-Speaking of lost, the\n\ +++Hey Sonic, the\n\ ++ Princess is still stuck in\n\ ++ the walls somewhere.\n\ ++-Please help, Mario!\n\ +++Please help, Sonic!\n\ +++\n\ ++ \n\ ++ Oh, you know that there\n\ ++ are secret worlds in the\n\ ++@@ -1907,7 +1890,7 @@ DEFINE_DIALOG(DIALOG_155, 1, 6, 30, 200, _("\ ++ Thanks to the power of\n\ ++ the Stars, life is\n\ ++ returning to the castle.\n\ ++-Please, Mario, you have\n\ +++Please, Sonic, you have\n\ ++ to give Bowser the boot!\n\ ++ \n\ ++ Here, let me tell you a\n\ ++@@ -1964,10 +1947,10 @@ Jump, run fast, press [Z],\n\ ++ then jump.")) ++ ++ DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ ++-Press [B] while running\n\ ++-fast to do a Body Slide\n\ ++-attack. To stand while\n\ ++-sliding, press [A] or [B].")) +++Press [Z] while running\n\ +++fast to do a Spin\n\ +++attack. To jump while\n\ +++rolling, press [A] or [B].")) ++ ++ #ifdef VERSION_EU ++ #define KEEP_ON_PLAYING ".." ++@@ -1981,14 +1964,14 @@ Enjoy!!!" ++ #endif ++ ++ DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ ++-Mario!!!\n\ ++-It that really you???\n\ ++-It has been so long since\n\ ++-our last adventure!\n\ ++-They told me that I might\n\ ++-see you if I waited here,\n\ ++-but I'd just about given\n\ ++-up hope!\n\ +++Sonic!!!\n\ +++Is that really you???\n\ +++I didn't expect you\n\ +++to see here!\n\ +++They told me that I would\n\ +++see someone if I waited\n\ +++here, but I'd just about\n\ +++given up hope!\n\ ++ Is it true? Have you\n\ ++ really beaten Bowser? And\n\ ++ restored the Stars to the\n\ ++@@ -1998,12 +1981,12 @@ I knew you could do it!\n\ ++ Now I have a very special\n\ ++ message for you.\n\ ++ 『Thanks for playing Super\n\ ++-Mario 64! This is the\n\ ++-end of the game, but not\n\ ++-the end of the fun." \ +++Mario 64 Sonic Edition\n\ +++and for supporting\n\ +++this mod." \ ++ KEEP_ON_PLAYING "』\n\ ++ \n\ ++-The Super Mario 64 Team")) +++Thodds")) ++ ++ DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ ++ No, no, no! Not you\n\ ++@@ -2022,7 +2005,7 @@ Owww! Let me go!")) ++ DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ ++ Noooo! You've really\n\ ++ beaten me this time,\n\ ++-Mario! I can't stand\n\ +++Sonic! I can't stand\n\ ++ losing to you!\n\ ++ \n\ ++ My troops...worthless!\n\ ++@@ -2047,7 +2030,7 @@ smokin'!\n\ ++ Buwaa ha ha!")) ++ ++ DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ ++-Mario! What's up, pal?\n\ +++Sonic! What's up, pal?\n\ ++ I haven't been on the\n\ ++ slide lately, so I'm out\n\ ++ of shape.\n\ +diff --git a/textures/intro_raw/mario_face_shine.ia8.png b/textures/intro_raw/mario_face_shine.ia8.png +new file mode 100644 +index 0000000000000000000000000000000000000000..e6090a0578c13a3735bb0ae88cc544d572eb3c0e +GIT binary patch +literal 169 +zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4U1)eUBAr*1SDL>9T2qq*YNSG#= +z@JP5_W@KjOepjNvF}bJ`PDFaUz$B>G+#u{V9>-yY6s5&J`fY>sz4IByU{b_uh6GssN@OXp(K?nqb +zfEF*Rx4a6aBh5#AbZR@-&ppA(6H|;&Xmn)o1VlV|hjW(TEPiBhmBUt`a29mn=u35u +zAKOE-9r60nX&%{Uu+|cSLjek~gD%6)J&N@u%8fOKgFX>efCT0r-Q4r??ejFv^9bOq +z!)uLb(8^=ie}Uc&yi8)_8f7+xqIX!v^OE+?g3Gth^Vyltxqh?Y)^A<>aDW>Qal;BB +zW@69Nv>$sd5Z)H5W8ycip&IqK!Y3d8$a7C>04{!ciF4on%;MrQRDG(VPf-o1iXq+! +zBQ+)uAO6*E_I+PuZ+pU@KJ|jkKfaHsmQzm(e!t^+uAXgW|DNTwPha$rt|T*oJFA9Q-aSC4*969a2AC$~Ez*3FT3%zkk%ff|Z590^ +zn1Aydwe?L7j!-)yl}`r0@jX<_!b+FI&Y+`de3Eis;`+zkt&?Z&K2VhA=K~!ko +z?U_qVoYxh{fA{;oc`(Dk%rJm?4j618f!GPPo2H?u+$3s>8mW)Ssv0|sN{!S_S6!s) +zu3dLgHH)fMRH;eRsH#%MYMQ2sWzxDy2(F*8jlni?Krp-p7-nEz-|1o=49vjH08$q9 +zU5>tc&;Oo#&iVh(870E!x-|Gd2Vm^O873wP%$!RZXr*4w*n`;wF=B)Xu|kM2aZEHU +zIH{r<7ZunsFm{Gw?8rirSus)y)QaflN%@~n=Ft6d|C{OVy?bK$>=9c0hSGcFv +zvcE)Ri79kUmD~r%TWIGQ26-57VKy)jqL`a&6T-fPomlAQ6oa(p-+Tjr6E6nQ{g)b| +z)4^$;qkbpKGw{%cOCoCjwV{m`tlVOOTAbTavVom0>X{>1LNx1G&`1(5DL&#{VG0io +zw9&-_bl}McVW4rCE^e__#JH6j{Iua@g`0A>c!H`p0RobeD78Gmml>cN_m&3{k&ygS +zT6U`SqNG}$l$YfbSrd_v49RJ!DUTh*kXjj(-^v|{=T`d^7YxbQw&yxg;*}R)4fNyLjY?1v{>-nqLt>*d +zGMQx_jb=_VAhs>F>;&~&^kHh}L452^ri6Ht*O|u50EjTj5*mkjmapK-`P4xlE!o5| +zS>ZMpxy35bNbT-gJ0;9=hJUk~=?fyvvW|r|x-qGdg;b74kw;XW<4I6e2(31^03oZDv50GGnn}k$Sh549|FtP8cyPo9|^IOUy;G!1~;WV8z +zFvi|pk&J{G0o9j9T3ISr=Be+#b +z>_}ryYG|MlA8s62FtO5&&qy2cVkJSC7;9W4nBG}QJ=UDQ--#oAXOlT*St$j87`W-+ +z3-r@N6V*7f$q$B+Hq=NZK^9qNiEFH;Hy)rahr0}_s6i(Q2odH86$2oO3J&oUPxCOo +zLerVl@pjs&XNfr$NwSWBXf*OwS~roWixzCeK#9beVZNw}FzDnY-^IV3D#}E0GaXo& +zWeQ8$%{u*jpY|;Py78oM2Gayec!CgDIm=a+3V)k9zLDcxVu?{YX~II1Bth0OHzisn +z{q#vdMbYpuTfAveaqh|_|Kd1%OdDS4!Og3@$#R(lv?A}4z{#Vz&zhN##JI>G +zc$-O*7zha^Qbjv;9ONN-Xu^dp%^KJFEAKGB8zC>%oZ_c6mhBU+)4UZxifpQY1g$uDT}IV~TJVZM+1qadzR#{+@F>Z2$ +zF$thp&G5|5quNh-kAHB9S=LBmlKM7P9jrJxKo7_GBHg%4Qin07xxo9};wUfDQXBx7 +z1Q=$7>rAmi4A8LRqK<<+$Pqe9G`)HLI03Y!IH9y*wMm2^L8574=E0d2R(o9P{@-@@ +h0o(_0AHe4g;D6mCwHpC5wax$l002ovPDHLkV1ii%j==x` + +literal 0 +HcmV?d00001 + +diff --git a/textures/sky/metal_hole.rgba16.png b/textures/sky/metal_hole.rgba16.png +new file mode 100644 +index 0000000000000000000000000000000000000000..a4fb042dc802ce1802783d682f85b350209d40de +GIT binary patch +literal 1952 +zcmWlaYgAJC0>%G_0~|mQEFWMP*jN$O1X?aFuRv*O4~OxRz1G+nqcY1C*~=!B1DH8Z +zIY)eCjVU$RsF&Na($(Y6#384p_B0=pWjC>Om~2W-NlcOJ{jm4`^jrJG{;dyBzjyPgwty9rNX=$OGw;pq!DaO^DVqcVF=cpre +zQ`|=9JBO`wZ(3j|m$x-E$}?op_pX5P?8h2ycX-_n+AZ>a8m9fb&u?=3*XxQDIGlPF +z6B;jGp3`_Iy&KC6G8S#(z%YU|Ud@`|$qT}khN?56Pi{7K{`_A&Pb&9@mRqwchR59# +z5&zYt5O>a~I@BBvP7a(jD)1s>uWLAqnNL)I +zP0n8joKaxQeW>_P)b+$>vt@cdAGQ<_17O3dRn&zjeo&(c1&?-tvm?FZS?0kHVNtqa +zLoXtETnT60-tSqSE9kL?O}d7Rigx8p?%Zek45qw^VfdNe$ITTmnF6wG($U(7l4E(d +z7fSfxwc+8#?1zc +zv#;(K7%vpfgb~T?xqc1YSGvq6=Bhm|PuGa!R9!W;0`z^6fRf&TiGdXok`M +zv$3;w75k7>6zKtHG)#LjYnR7mlXI|95H#G|gv8P5YuPe+OF(S^*H}(mgZm=!EhvI% +zz3HC?b_1pF^_b?toiHupe_fV$l|Qf?e=%t0U;`5n!^gbJUI-t;K%EE~w(Y@+{y8LT +z{g(LqNM-Nj@EdeZ9Pr{P&!H%o7Z>t~8AHl5T8$fx*QC{>7A#?mjcEy^bz%A!yHM8nB+A>36UO~4CPEUjK(wa6X@u$g>Lyueqf1k0ga)$SvbV8 +z+kMFa4c&kIdnc$$QVugR$kp=TXOMZ4eM+Hm{+j-NIl5=O0xJHOe3`>5wS;wqIGRc- +z!i&{6b?*baqNfQ<3^#%jyo>=ivQ00cHm|fLSpH}LbIf)xT(tGnDGTwOw`+a~S? +zyqc@06q-x?U=dC3*K)MF$~3(=!#m|0NPO9rfSg-kGdF{^S{de~Ba&Lh=~6+fiB(RG +z*1Bx2H?Sx(TfTUc8g%9u_~wC4CPjN2XDio7Kr;vW@fpM-q_#~_!f*b_ZhhgalIqtR +z{bOXrfsr>8$5YRG^iW4V6i_MOA4e01rUq{DN&nA6p5Y3AG(DY}=o{err`k5cO- +zws;r+Ag2ea1X|#~eo#>WHohCQ{@hQZ;>KtRsdEzXD=a50q%;jS0~gM}*tw6ksC=p4 +zX>9SuEPMFfiP!RZT8c0QnI +z1dE)YsPPyIU83*98DMXmW;S&>=%VhzRqIKSyv={Cin>exQWar7%$gta8QTe}$=a#c +zk&TEj+cOn;^C^iz@4Fe3?&Eer%o7g$+**SkDy9v>vjWfYP0V~ozTICcI$+3n|6=Ds +z+Xe~#?dsA}BI)`}$#bmDJES{Vr#asn-JD^batI%6*JAa-*b(~?5FthjT+kJY)rvfA +z;>tTMe^rQwbL*VU(wcvV@TzXx@JX-gd)L5QN+?DV}@zUNR>Qg`=-? +z>MNqbV(sH0w;PFTL9Wnkw|?;17Jj!!+G_{PYV-@v&Ey90?W^a(^)vK-Vj1!M020xy +zUqq?$QA)kV8Ma6-RoMl~ifgO#-tych>&LkE6NSP$HQ8D4p~p)7a-kv^+NY5cE}S%q +zSl;G#IwWiGw#XA93EpvONW(iWk-j^xQNCcd>Z798PxG7pSxN>U<7aqyb@0VS_kQx? +g=D{J`avp339bWP!U*#mvn|@vpADa+!WhH9(AD4ee!2kdN + +literal 0 +HcmV?d00001 + diff --git a/sound/samples/sfx_mario_peach/desktop.ini b/sound/samples/sfx_mario_peach/desktop.ini new file mode 100644 index 00000000..15c0a4e4 --- /dev/null +++ b/sound/samples/sfx_mario_peach/desktop.ini @@ -0,0 +1,2 @@ +[LocalizedFileNames] +0D.aiff=@0D.aiff,0 diff --git a/sound/sequences.json b/sound/sequences.json index 1470c97d..5ca77253 100644 --- a/sound/sequences.json +++ b/sound/sequences.json @@ -1,38 +1,44 @@ { - "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", - "00_sound_player": ["00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach"], - "01_cutscene_collect_star": ["22"], - "02_menu_title_screen": ["11"], - "03_level_grass": ["22"], - "04_level_inside_castle": ["0E"], - "05_level_water": ["13"], - "06_level_hot": ["0F"], - "07_level_boss_koopa": ["12"], - "08_level_snow": ["0B"], - "09_level_slide": ["0D"], - "0A_level_spooky": ["10", "21"], - "0B_event_piranha_plant": ["14_piranha_music_box"], - "0C_level_underground": ["15"], - "0D_menu_star_select": ["16_course_start"], - "0E_event_powerup": ["17"], - "0F_event_metal_cap": ["18"], - "10_event_koopa_message": ["12"], - "11_level_koopa_road": ["19"], - "12_event_high_score": ["1F"], - "13_event_merry_go_round": ["21"], - "14_event_race": ["1A"], - "15_cutscene_star_spawn": ["0E"], - "16_event_boss": ["1B"], - "17_cutscene_collect_key": ["1A"], - "18_event_endless_stairs": ["1C_endless_stairs"], - "19_level_boss_koopa_final": ["1D_bowser_organ"], - "1A_cutscene_credits": ["25"], - "1B_event_solve_puzzle": ["14_piranha_music_box"], - "1C_event_toad_message": ["20"], - "1D_event_peach_message": ["1E"], - "1E_cutscene_intro": ["1B"], - "1F_cutscene_victory": ["1A"], - "20_cutscene_ending": ["23"], - "21_menu_file_select": ["24"], - "22_cutscene_lakitu": {"ifdef": ["VERSION_US", "VERSION_EU", "VERSION_SH"], "banks": ["1B"]} + "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", + "00_sound_player": [ "00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach" ], + "01_cutscene_collect_star": [ "22" ], + "02_menu_title_screen": [ "11" ], + "03_level_grass": [ "22" ], + "04_level_inside_castle": [ "0E" ], + "05_level_water": [ "13" ], + "06_level_hot": [ "0F" ], + "07_level_boss_koopa": [ "12" ], + "08_level_snow": [ "0B" ], + "09_level_slide": [ "0D" ], + "0A_level_spooky": [ "10", "21" ], + "0B_event_piranha_plant": [ "14_piranha_music_box" ], + "0C_level_underground": [ "15" ], + "0D_menu_star_select": [ "16_course_start" ], + "0E_event_powerup": [ "17" ], + "0F_event_metal_cap": [ "18" ], + "10_event_koopa_message": [ "12" ], + "11_level_koopa_road": [ "19" ], + "12_event_high_score": [ "1F" ], + "13_event_merry_go_round": [ "21" ], + "14_event_race": [ "1A" ], + "15_cutscene_star_spawn": [ "0E" ], + "16_event_boss": [ "1B" ], + "17_cutscene_collect_key": [ "1A" ], + "18_event_endless_stairs": [ "1C_endless_stairs" ], + "19_level_boss_koopa_final": [ "1D_bowser_organ" ], + "1A_cutscene_credits": [ "25" ], + "1B_event_solve_puzzle": [ "14_piranha_music_box" ], + "1C_event_toad_message": [ "20" ], + "1D_event_peach_message": [ "1E" ], + "1E_cutscene_intro": [ "1B" ], + "1F_cutscene_victory": [ "1A" ], + "20_cutscene_ending": [ "23" ], + "21_menu_file_select": [ "24" ], + "23_drown": [ "13" ], + "24_super": [ "17" ], + "25_emerald": [ "0E" ], + "22_cutscene_lakitu": { + "ifdef": [ "VERSION_US", "VERSION_EU" ], + "banks": [ "1B" ] + } } diff --git a/sound/sequences.json.rej b/sound/sequences.json.rej new file mode 100644 index 00000000..a39f68f6 --- /dev/null +++ b/sound/sequences.json.rej @@ -0,0 +1,82 @@ +diff a/sound/sequences.json b/sound/sequences.json (rejected hunks) +@@ -1,38 +1,44 @@ + { +- "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", +- "00_sound_player": ["00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach"], +- "01_cutscene_collect_star": ["22"], +- "02_menu_title_screen": ["11"], +- "03_level_grass": ["22"], +- "04_level_inside_castle": ["0E"], +- "05_level_water": ["13"], +- "06_level_hot": ["0F"], +- "07_level_boss_koopa": ["12"], +- "08_level_snow": ["0B"], +- "09_level_slide": ["0D"], +- "0A_level_spooky": ["10", "21"], +- "0B_event_piranha_plant": ["14_piranha_music_box"], +- "0C_level_underground": ["15"], +- "0D_menu_star_select": ["16_course_start"], +- "0E_event_powerup": ["17"], +- "0F_event_metal_cap": ["18"], +- "10_event_koopa_message": ["12"], +- "11_level_koopa_road": ["19"], +- "12_event_high_score": ["1F"], +- "13_event_merry_go_round": ["21"], +- "14_event_race": ["1A"], +- "15_cutscene_star_spawn": ["0E"], +- "16_event_boss": ["1B"], +- "17_cutscene_collect_key": ["1A"], +- "18_event_endless_stairs": ["1C_endless_stairs"], +- "19_level_boss_koopa_final": ["1D_bowser_organ"], +- "1A_cutscene_credits": ["25"], +- "1B_event_solve_puzzle": ["14_piranha_music_box"], +- "1C_event_toad_message": ["20"], +- "1D_event_peach_message": ["1E"], +- "1E_cutscene_intro": ["1B"], +- "1F_cutscene_victory": ["1A"], +- "20_cutscene_ending": ["23"], +- "21_menu_file_select": ["24"], +- "22_cutscene_lakitu": {"ifdef": ["VERSION_US", "VERSION_EU", "VERSION_SH"], "banks": ["1B"]} ++ "comment": "This file lists all sequences together with the sound banks they use. If a sequence uses multiple banks, the first bank will be used by default, and it can switch between them using the chan_setbank command; e.g. chan_setbank 0 will switch to the first bank in the given list.", ++ "00_sound_player": [ "00", "01_terrain", "02_water", "03", "04", "05", "06", "07", "08_mario", "09", "0A_mario_peach" ], ++ "01_cutscene_collect_star": [ "22" ], ++ "02_menu_title_screen": [ "11" ], ++ "03_level_grass": [ "22" ], ++ "04_level_inside_castle": [ "0E" ], ++ "05_level_water": [ "13" ], ++ "06_level_hot": [ "0F" ], ++ "07_level_boss_koopa": [ "12" ], ++ "08_level_snow": [ "0B" ], ++ "09_level_slide": [ "0D" ], ++ "0A_level_spooky": [ "10", "21" ], ++ "0B_event_piranha_plant": [ "14_piranha_music_box" ], ++ "0C_level_underground": [ "15" ], ++ "0D_menu_star_select": [ "16_course_start" ], ++ "0E_event_powerup": [ "17" ], ++ "0F_event_metal_cap": [ "18" ], ++ "10_event_koopa_message": [ "12" ], ++ "11_level_koopa_road": [ "19" ], ++ "12_event_high_score": [ "1F" ], ++ "13_event_merry_go_round": [ "21" ], ++ "14_event_race": [ "1A" ], ++ "15_cutscene_star_spawn": [ "0E" ], ++ "16_event_boss": [ "1B" ], ++ "17_cutscene_collect_key": [ "1A" ], ++ "18_event_endless_stairs": [ "1C_endless_stairs" ], ++ "19_level_boss_koopa_final": [ "1D_bowser_organ" ], ++ "1A_cutscene_credits": [ "25" ], ++ "1B_event_solve_puzzle": [ "14_piranha_music_box" ], ++ "1C_event_toad_message": [ "20" ], ++ "1D_event_peach_message": [ "1E" ], ++ "1E_cutscene_intro": [ "1B" ], ++ "1F_cutscene_victory": [ "1A" ], ++ "20_cutscene_ending": [ "23" ], ++ "21_menu_file_select": [ "24" ], ++ "23_drown": [ "13" ], ++ "24_super": [ "17" ], ++ "25_emerald": [ "0E" ], ++ "22_cutscene_lakitu": { ++ "ifdef": [ "VERSION_US", "VERSION_EU" ], ++ "banks": [ "1B" ] ++ } + } diff --git a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s index 68502f9c..28e6a134 100644 --- a/sound/sequences/00_sound_player.s +++ b/sound/sequences/00_sound_player.s @@ -3,20 +3,9 @@ .align 0 sequence_start: -.ifdef VERSION_SH - .set VERSION_EU_SH, 1 -.endif -.ifdef VERSION_EU - .set VERSION_EU_SH, 1 -.endif - seq_setmutebhv 0x60 seq_setmutescale 0 -.ifdef VERSION_SH - seq_setvol 100 -.else - seq_setvol 127 -.endif +seq_setvol 127 seq_settempo 120 seq_initchannels 0x3ff seq_startchannel 0, .channel0 @@ -77,7 +66,7 @@ chan_stereoheadseteffects 1 chan_setdyntable .channel59_table chan_jump .main_loop_023589 -# Main loop for standard, non-continuous sound effects + .main_loop_023589: chan_delay1 chan_ioreadval 0 @@ -91,17 +80,17 @@ chan_iowriteval 5 chan_ioreadval 4 chan_dyncall -# keep looping until layer 0 finishes or we are told to stop or to play something else + .poll_023589: chan_delay1 chan_ioreadval 0 -chan_bltz .skip_023589 # if we have a signal: - chan_beqz .force_stop_023589 # told to stop - chan_jump .start_playing_023589 # told to play something else +chan_bltz .skip_023589 + chan_beqz .force_stop_023589 + chan_jump .start_playing_023589 .skip_023589: chan_testlayerfinished 0 -chan_beqz .poll_023589 # if layer 0 hasn't finished, keep polling -chan_jump .main_loop_023589 # otherwise go back to the main loop +chan_beqz .poll_023589 +chan_jump .main_loop_023589 .force_stop_023589: chan_freelayer 0 chan_freelayer 1 @@ -144,7 +133,7 @@ chan_stereoheadseteffects 1 chan_setdyntable .channel6_table chan_jump .main_loop_146 -# Main loop for moving, env and air sound effects, which play continuously + .main_loop_146: chan_delay1 chan_ioreadval 0 @@ -159,7 +148,7 @@ chan_iowriteval 5 chan_ioreadval 4 chan_dyncall -# keep looping until we are told to stop or to play something else + .poll_146: chan_delay1 chan_ioreadval 0 @@ -181,7 +170,7 @@ chan_iowriteval 5 chan_stereoheadseteffects 1 chan_setdyntable .channel7_table -# Loop for menu sound effects + .main_loop_7: chan_delay1 chan_ioreadval 0 @@ -198,19 +187,19 @@ chan_setpanmix 127 chan_ioreadval 4 chan_dyncall -# keep looping until layer 0 finishes or we are told to stop or to play something else + .poll_7: chan_delay1 chan_ioreadval 0 -chan_bltz .skip_7 # if we have a signal: - chan_beqz .force_stop_7 # told to stop +chan_bltz .skip_7 + chan_beqz .force_stop_7 chan_unreservenotes - chan_jump .start_playing_7 # told to play something else + chan_jump .start_playing_7 .skip_7: chan_testlayerfinished 0 -chan_beqz .poll_7 # if layer 0 hasn't finished, keep polling +chan_beqz .poll_7 chan_unreservenotes -chan_jump .main_loop_7 # otherwise go back to the main loop +chan_jump .main_loop_7 .force_stop_7: chan_freelayer 0 chan_freelayer 1 @@ -218,7 +207,7 @@ chan_freelayer 2 chan_unreservenotes chan_jump .main_loop_7 -# Delay for a number of ticks (1-255) in an interruptible manner. + .delay: chan_writeseq_nextinstr 0, 1 chan_loop 20 @@ -233,15 +222,15 @@ chan_end chan_setpanmix 127 chan_setvolscale 127 chan_setvibratoextent 0 -chan_ioreadval 1 # IO slots 0-3 are reset to -1 when read; restore the value +chan_ioreadval 1 chan_iowriteval 0 -chan_break # break out of the loop -chan_break # force the caller to return immediately +chan_break +chan_break chan_end -# Set reverb in way that takes area echo level and volume into account. This -# is done by writing to IO slot 5 and letting get_sound_reverb in external.c -# do the necessary math. + + + .set_reverb: chan_writeseq_nextinstr 0, 1 chan_setreverb 10 @@ -988,7 +977,7 @@ layer_portamento 0x81, 42, 255 layer_note1 37, 0x1e, 105 layer_end -.sound_action_climb_down_tree: # unused +.sound_action_climb_down_tree: chan_setbank 0 chan_setinstr 1 chan_setlayer 0, .layer_579 @@ -999,7 +988,7 @@ layer_portamento 0x81, 44, 255 layer_note1 40, 0xb4, 100 layer_end -.chan_582: # unused +.chan_582: chan_setbank 0 chan_setinstr 2 chan_setlayer 0, .layer_58A @@ -1373,7 +1362,7 @@ chan_end layer_portamento 0x81, 27, 255 layer_note1 41, 0xb, 127 layer_somethingon -layer_transpose -4 +layer_transpose 252 layer_portamento 0x85, 32, 255 layer_note1 44, 0x5, 100 layer_jump .layer_fn_64A @@ -1419,7 +1408,7 @@ layer_note1 42, 0x8, 127 layer_end .ifndef VERSION_JP - .chan_828: # unused + .chan_828: chan_setbank 7 chan_setinstr 3 chan_setlayer 0, .layer_83C @@ -1805,7 +1794,7 @@ chan_end .layer_A97: layer_setinstr 13 -layer_transpose -12 +layer_transpose 244 .layer_A9B: layer_somethingon @@ -2080,11 +2069,11 @@ chan_setlayer 0, .layer_C3C chan_end .layer_C3C: -.ifdef VERSION_EU_SH +.ifdef VERSION_EU layer_transpose 2 .endif layer_portamento 0x82, 41, 127 -layer_note1 37, 0x14, 127 +layer_note1 38, 0x14, 127 layer_end .sound_mario_jump_wah: @@ -2094,7 +2083,7 @@ chan_setlayer 0, .layer_C4C chan_end .layer_C4C: -layer_transpose -2 +layer_transpose 254 .layer_C4E: layer_note1 38, 0x18, 127 layer_end @@ -2106,7 +2095,7 @@ chan_setlayer 0, .layer_C5A chan_end .layer_C5A: -layer_transpose -2 +layer_transpose 254 .layer_C5C: layer_portamento 0x82, 39, 200 layer_note1 38, 0x24, 120 @@ -2119,7 +2108,7 @@ chan_setlayer 0, .layer_C6C chan_end .layer_C6C: -.ifdef VERSION_EU_SH +.ifdef VERSION_EU layer_transpose 1 .endif layer_portamento 0x82, 44, 200 @@ -2133,7 +2122,7 @@ chan_setlayer 0, .layer_C7C chan_end .layer_C7C: -layer_transpose -2 +layer_transpose 254 layer_somethingon layer_portamento 0x85, 39, 255 layer_note1 42, 0x1e, 110 @@ -2147,9 +2136,9 @@ chan_setlayer 0, .layer_C92 chan_end .layer_C92: -layer_transpose -2 +layer_transpose 254 layer_portamento 0x81, 41, 255 -layer_note1 38, 0x2b, 115 +layer_note1 39, 0x2b, 115 layer_end .sound_mario_hrmm: @@ -2159,8 +2148,8 @@ chan_setlayer 0, .layer_CA4 chan_end .layer_CA4: -layer_transpose -2 -layer_note1 44, 0x1e, 110 +layer_transpose 254 +layer_note1 39, 0x1e, 110 layer_end .sound_mario_wah2: @@ -2170,7 +2159,7 @@ chan_setlayer 0, .layer_CB2 chan_end .layer_CB2: -layer_transpose -3 +layer_transpose 253 layer_note1 39, 0x1c, 127 layer_end @@ -2181,7 +2170,7 @@ chan_setlayer 0, .layer_CC0 chan_end .layer_CC0: -layer_transpose -2 +layer_transpose 254 layer_note1 40, 0x30, 110 layer_end @@ -2192,7 +2181,7 @@ chan_setlayer 0, .layer_CCE chan_end .layer_CCE: -layer_transpose -2 +layer_transpose 254 layer_note1 40, 0x44, 105 layer_end @@ -2203,7 +2192,7 @@ chan_setlayer 0, .layer_CDC chan_end .layer_CDC: -layer_transpose -2 +layer_transpose 254 layer_note1 41, 0x30, 120 layer_end @@ -2214,8 +2203,8 @@ chan_setlayer 0, .layer_CEA chan_end .layer_CEA: -layer_transpose -2 -layer_note1 38, 0x30, 127 +layer_transpose 254 +layer_note1 41, 0x30, 127 layer_end .sound_mario_here_we_go: @@ -2236,7 +2225,7 @@ chan_setlayer 0, .layer_D09 chan_end .layer_D09: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x7f, 105 layer_end @@ -2247,7 +2236,7 @@ chan_setlayer 0, .layer_D17 chan_end .layer_D17: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x60, 64 layer_end @@ -2258,7 +2247,7 @@ chan_setlayer 0, .layer_D25 chan_end .layer_D25: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x5c, 52 layer_end @@ -2269,8 +2258,8 @@ chan_setlayer 0, .layer_D33 chan_end .layer_D33: -layer_transpose -2 -layer_note1 39, 0xaa, 127 +layer_transpose 254 +layer_note1 40, 0xaa, 127 layer_end .sound_mario_haha: @@ -2280,7 +2269,7 @@ chan_setlayer 0, .layer_D42 chan_end .layer_D42: -layer_transpose -1 +layer_transpose 255 layer_note1 39, 0x4d, 120 layer_end @@ -2291,8 +2280,8 @@ chan_setlayer 0, .layer_D50 chan_end .layer_D50: -layer_transpose -2 -layer_note1 43, 0x1e, 105 +layer_transpose 254 +layer_note1 39, 0x1e, 105 layer_end .sound_mario_on_fire: @@ -2302,8 +2291,8 @@ chan_setlayer 0, .layer_D5E chan_end .layer_D5E: -layer_transpose -2 -layer_note1 39, 0xc8, 127 +layer_transpose 254 +layer_note1 41, 0xc8, 127 layer_end .sound_mario_dying: @@ -2313,7 +2302,7 @@ chan_setlayer 0, .layer_D6D chan_end .layer_D6D: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x8c, 110 layer_end @@ -2324,7 +2313,7 @@ chan_setlayer 0, .layer_D7C chan_end .layer_D7C: -layer_transpose -2 +layer_transpose 254 layer_portamento 0x82, 35, 255 layer_note1 38, 0x30, 127 layer_end @@ -2336,7 +2325,7 @@ chan_setlayer 0, .layer_D8E chan_end .layer_D8E: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x3c, 100 layer_end @@ -2347,7 +2336,7 @@ chan_setlayer 0, .layer_D9C chan_end .layer_D9C: -layer_transpose -2 +layer_transpose 254 layer_delay 0x4 layer_note1 38, 0x3c, 100 layer_end @@ -2359,7 +2348,7 @@ chan_setlayer 0, .layer_DAC chan_end .layer_DAC: -layer_transpose -2 +layer_transpose 254 layer_delay 0x8 layer_note1 40, 0x3c, 100 layer_end @@ -2371,7 +2360,7 @@ chan_setlayer 0, .layer_DBC chan_end .layer_DBC: -layer_transpose -2 +layer_transpose 254 layer_note1 39, 0x10, 115 layer_end @@ -2382,7 +2371,7 @@ chan_setlayer 0, .layer_DCA chan_end .layer_DCA: -layer_transpose -2 +layer_transpose 254 layer_portamento 0x81, 38, 255 layer_note1 41, 0x18, 115 layer_end @@ -2394,7 +2383,7 @@ chan_setlayer 0, .layer_DDC chan_end .layer_DDC: -layer_transpose -2 +layer_transpose 254 layer_somethingon layer_portamento 0x85, 38, 255 layer_note1 41, 0xc, 115 @@ -2413,7 +2402,7 @@ chan_setlayer 1, .layer_538 chan_end .layer_DFE: -layer_transpose -2 +layer_transpose 254 layer_jump .layer_C5C .sound_mario_punch_hoo: @@ -2428,7 +2417,7 @@ chan_setlayer 1, .layer_548 chan_end .layer_E17: -layer_transpose -2 +layer_transpose 254 layer_portamento 0x81, 42, 255 layer_note1 38, 0x30, 115 layer_end @@ -2441,7 +2430,7 @@ chan_end .layer_E29: layer_portamento 0x81, 38, 255 -layer_note1 36, 0x8c, 115 +layer_note1 39, 0x8c, 115 layer_end .sound_mario_okey_dokey: @@ -2479,7 +2468,7 @@ chan_setlayer 1, .layer_536 chan_end .layer_E62: -layer_transpose -1 +layer_transpose 255 layer_jump .layer_C4E .ifndef VERSION_JP @@ -2520,7 +2509,7 @@ layer_jump .layer_C4E chan_end .layer_E94: - layer_note1 41, 0x46, 127 + layer_note1 39, 0x46, 127 layer_end .sound_mario_game_over: @@ -2569,22 +2558,10 @@ layer_jump .layer_C4E chan_end .layer_ECF: - layer_delay 0x4e - .layer_ED1: - layer_loop 50 - layer_call .layer_fn_EE1 - layer_loopend layer_setinstr 21 - layer_note1 39, 0x44c, 127 - layer_jump .layer_ED1 + layer_note1 38, 0x44c, 127 layer_end - .layer_fn_EE1: - layer_setinstr 21 - layer_note1 37, 0x53, 127 - layer_setinstr 15 - layer_note1 37, 0x4e, 64 - layer_end .sound_mario_so_longa_bowser: chan_setbank 8 @@ -2699,7 +2676,7 @@ layer_jump .layer_C4E layer_end .endif -.ifdef VERSION_EU_SH +.ifdef VERSION_EU .chan_unused_F9A_eu: chan_setbank 8 chan_setinstr 0 @@ -2733,7 +2710,7 @@ sound_ref .sound_general_coin sound_ref .sound_general_coin_water sound_ref .sound_general_coin_water sound_ref .sound_general_coin_water -sound_ref .sound_general_coin_water +sound_ref .sound_general_ringloss sound_ref .sound_general_short_star sound_ref .sound_general_big_clock sound_ref .sound_general_loud_pound @@ -2852,8 +2829,11 @@ sound_ref .sound_general_boat_rock sound_ref .sound_general_boing2 sound_ref .sound_general_yoshi_walk sound_ref .sound_general_enemy_alert1 + + .endif + .sound_general_activate_cap_switch: chan_setbank 5 chan_setinstr 7 @@ -3037,7 +3017,7 @@ chan_setlayer 1, .layer_119D chan_end .layer_119D: -layer_transpose -12 +layer_transpose 244 .layer_fn_119F: layer_portamento 0x83, 27, 255 @@ -3127,6 +3107,18 @@ layer_transpose 23 layer_call .layer_fn_11E6 layer_end + + +.sound_general_ringloss: +chan_setbank 8 +chan_setinstr 0 +chan_setlayer 0, .layer_11E7 +chan_end + +.layer_11E7: +layer_note1 39, 0xAF, 120 +layer_end + .sound_general_short_star: chan_setbank 4 chan_setinstr 14 @@ -3408,17 +3400,11 @@ chan_setbank 9 chan_setinstr 3 chan_setval 40 chan_call .set_reverb -.ifdef VERSION_SH - chan_setreverb 40 -.endif chan_setlayer 0, .layer_141A chan_end .layer_141A: layer_transpose 24 -.ifdef VERSION_SH - layer_note1 51, 0xc, 90 -.endif layer_note1 39, 0x4, 90 layer_note1 51, 0xc, 90 layer_note1 39, 0x4, 50 @@ -3586,7 +3572,7 @@ chan_setlayer 0, .layer_1539 chan_end .layer_1537: -layer_transpose -3 +layer_transpose 253 .layer_1539: layer_note1 39, 0x6, 120 @@ -3775,7 +3761,7 @@ layer_end .layer_1665: layer_delay 0x4 -layer_transpose -12 +layer_transpose 244 .layer_1669: layer_note1 27, 0x4f, 93 @@ -3808,7 +3794,7 @@ layer_end .layer_16A6: layer_delay 0x4 -layer_transpose -12 +layer_transpose 244 .layer_16AA: layer_note1 46, 0xe, 116 @@ -3915,7 +3901,7 @@ chan_end .layer_1751: layer_call .layer_fn_1756 -layer_transpose -4 +layer_transpose 252 .layer_fn_1756: layer_note1 27, 0x5, 105 @@ -4056,7 +4042,7 @@ chan_setlayer 0, .layer_1844 chan_end .layer_1844: -layer_transpose -6 +layer_transpose 250 layer_portamento 0x81, 43, 127 layer_note1 31, 0xfa, 115 layer_end @@ -4161,7 +4147,7 @@ layer_end chan_setlayer 1, .layer_1902 chan_setlayer 2, .layer_1907 .else - .ifdef VERSION_EU_SH + .ifdef VERSION_EU chan_setbank 9 chan_setinstr 3 .else @@ -4302,7 +4288,7 @@ chan_setinstr 5 chan_end .layer_19FE: -layer_transpose -6 +layer_transpose 250 .layer_1A00: layer_note1 15, 0xc, 127 @@ -4357,7 +4343,7 @@ chan_end .layer_1A44: layer_transpose 7 layer_call .layer_fn_1A4B -layer_transpose -2 +layer_transpose 254 .layer_fn_1A4B: layer_portamento 0x83, 31, 255 @@ -4577,7 +4563,7 @@ chan_setlayer 1, .layer_1B8C chan_end .layer_1B8A: -layer_transpose -12 +layer_transpose 244 .layer_1B8C: layer_somethingon @@ -4796,7 +4782,7 @@ chan_setlayer 1, .layer_1D13 chan_end .layer_1D11: -layer_transpose -6 +layer_transpose 250 .layer_1D13: layer_somethingon @@ -4901,7 +4887,7 @@ chan_setlayer 2, .layer_1DE2 chan_end .layer_1DD4: -layer_transpose -12 +layer_transpose 244 layer_somethingon layer_portamento 0x82, 39, 255 .layer_1DDB: @@ -5320,7 +5306,7 @@ chan_end .layer_2087: layer_portamento 0x81, 33, 255 layer_note1 57, 0x4, 127 -layer_transpose -4 +layer_transpose 252 layer_portamento 0x81, 57, 255 layer_note1 33, 0x6, 127 layer_delay 0x14 @@ -5726,7 +5712,7 @@ chan_setlayer 0, .layer_22F3 chan_end .layer_unused_22F1: -layer_transpose -12 +layer_transpose 244 .layer_22F3: layer_somethingon @@ -5745,7 +5731,7 @@ chan_setlayer 0, .layer_230F chan_end .layer_230F: -layer_transpose -24 +layer_transpose 232 layer_somethingon layer_portamento 0x85, 25, 255 layer_note1 3, 0xf, 85 @@ -5762,7 +5748,7 @@ chan_setlayer 0, .layer_232C chan_end .layer_232C: -layer_transpose -3 +layer_transpose 253 layer_somethingon layer_portamento 0x85, 24, 255 layer_note1 17, 0xa, 100 @@ -5943,7 +5929,7 @@ chan_setlayer 0, .layer_2449 chan_end .layer_2449: -layer_transpose -8 +layer_transpose 248 layer_call .layer_fn_244E .layer_fn_244E: @@ -5998,13 +5984,13 @@ chan_setlayer 0, .layer_249F chan_end .layer_249F: -layer_transpose -5 +layer_transpose 251 layer_call .layer_fn_24AF layer_delay 0xb -layer_transpose -8 +layer_transpose 248 layer_call .layer_fn_24AF layer_delay 0xa -layer_transpose -10 +layer_transpose 246 .layer_fn_24AF: layer_portamento 0x85, 29, 255 @@ -6021,7 +6007,7 @@ chan_setlayer 0, .layer_24C7 chan_end .layer_24C7: -layer_transpose -12 +layer_transpose 244 layer_portamento 0x85, 25, 255 layer_note1 39, 0x4, 127 layer_note1 29, 0x30, 127 @@ -6564,9 +6550,9 @@ layer_setinstr 15 .layer_2856: layer_transpose 6 layer_call .layer_fn_119F -layer_transpose -9 +layer_transpose 247 layer_call .layer_fn_119F -layer_transpose -20 +layer_transpose 236 layer_jump .layer_fn_119F .sound_obj_chuckya_death: @@ -6639,7 +6625,7 @@ chan_setlayer 0, .layer_28EB chan_end .layer_28EB: -layer_transpose -2 +layer_transpose 254 layer_note0 31, 0xa, 127, 70 layer_note0 30, 0xb, 127, 70 layer_note0 29, 0xa, 127, 70 @@ -7473,11 +7459,11 @@ chan_setlayer 1, .layer_2E9E chan_end .layer_2E9E: -layer_transpose -12 +layer_transpose 244 layer_jump .layer_2EA5 .layer_2EA3: -layer_transpose -24 +layer_transpose 232 .layer_2EA5: layer_call .layer_fn_2EAB layer_call .layer_fn_2EAB @@ -7506,13 +7492,7 @@ layer_end chan_reservenotes 4 chan_setbank 9 chan_setinstr 2 -.ifdef VERSION_SH - chan_setval 15 - .set EXIT_PIPE_NOTE_VELOCITY, 106 -.else - chan_setval 30 - .set EXIT_PIPE_NOTE_VELOCITY, 126 -.endif +chan_setval 30 chan_call .set_reverb chan_setenvelope .envelope_3464 chan_setdecayrelease 220 @@ -7528,36 +7508,36 @@ layer_jump .layer_2EF6 layer_transpose 12 .layer_2EF6: layer_portamento 0x85, 15, 128 -layer_note1 15, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 19, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 31, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 23, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 47, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 25, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 29, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 41, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 49, 0x3, EXIT_PIPE_NOTE_VELOCITY -layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY +layer_note1 15, 0x3, 126 +layer_note1 19, 0x3, 126 +layer_note1 22, 0x3, 126 +layer_note1 27, 0x3, 126 +layer_note1 22, 0x3, 126 +layer_note1 27, 0x3, 126 +layer_note1 31, 0x3, 126 +layer_note1 34, 0x3, 126 +layer_note1 39, 0x3, 126 +layer_note1 34, 0x3, 126 +layer_note1 23, 0x3, 126 +layer_note1 27, 0x3, 126 +layer_note1 30, 0x3, 126 +layer_note1 35, 0x3, 126 +layer_note1 30, 0x3, 126 +layer_note1 35, 0x3, 126 +layer_note1 39, 0x3, 126 +layer_note1 42, 0x3, 126 +layer_note1 47, 0x3, 126 +layer_note1 42, 0x3, 126 +layer_note1 25, 0x3, 126 +layer_note1 29, 0x3, 126 +layer_note1 32, 0x3, 126 +layer_note1 37, 0x3, 126 +layer_note1 32, 0x3, 126 +layer_note1 37, 0x3, 126 +layer_note1 41, 0x3, 126 +layer_note1 44, 0x3, 126 +layer_note1 49, 0x3, 126 +layer_note1 44, 0x3, 126 layer_end .sound_menu_bowser_laugh: @@ -7587,7 +7567,7 @@ chan_setlayer 0, .layer_2F7C chan_end .layer_2F7C: -layer_transpose -12 +layer_transpose 244 layer_portamento 0x83, 3, 255 layer_note1 15, 0xa, 127 layer_somethingon @@ -7621,10 +7601,10 @@ chan_setlayer 1, .layer_2FB9 chan_end .layer_2FB9: -layer_transpose -24 +layer_transpose 232 layer_setpan 24 layer_call .layer_fn_300D -layer_transpose -12 +layer_transpose 244 layer_setpan 44 layer_call .layer_fn_300D layer_transpose 0 @@ -7674,9 +7654,9 @@ layer_note1 48, 0x2, 20 layer_end .layer_3032: -layer_transpose -24 +layer_transpose 232 layer_call .layer_fn_3072 -layer_transpose -12 +layer_transpose 244 layer_call .layer_fn_3072 layer_transpose 0 layer_call .layer_fn_3072 @@ -7828,33 +7808,26 @@ chan_end .layer_3146: layer_delay 0x6 - .ifdef VERSION_SH - .set RED_COIN_NOTE_VELOCITY_SUB, 10 - .else - .set RED_COIN_NOTE_VELOCITY_SUB, 0 - .endif - .layer_3148: layer_call .transpose_by_coin_index - layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 45, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 58, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 58, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 58, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 58, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 - + layer_note0 46, 0xc, 75, 20 + layer_note0 45, 0xc, 75, 20 + layer_note0 46, 0xc, 75, 20 + layer_note0 58, 0x10, 80, 80 + layer_note0 58, 0x10, 45, 80 + layer_note0 58, 0x10, 20, 80 + layer_note0 58, 0x10, 15, 80 layer_end .layer_3168: layer_call .transpose_by_coin_index - layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 40, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 - layer_note0 53, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 53, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 53, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 - layer_note0 53, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 + layer_note0 41, 0xc, 75, 20 + layer_note0 40, 0xc, 75, 20 + layer_note0 41, 0xc, 75, 20 + layer_note0 53, 0x10, 80, 80 + layer_note0 53, 0x10, 45, 80 + layer_note0 53, 0x10, 20, 80 + layer_note0 53, 0x10, 15, 80 layer_end .transpose_by_coin_index: @@ -8150,11 +8123,7 @@ envelope_goto 2 .envelope_341C: envelope_line 25 32760 envelope_line 60 10000 -.ifdef VERSION_SH - envelope_hang -.else - envelope_goto 2 -.endif +envelope_goto 2 .envelope_3428: envelope_line 1 10000 diff --git a/sound/sequences/00_sound_player.s.rej b/sound/sequences/00_sound_player.s.rej new file mode 100644 index 00000000..8130a4d5 --- /dev/null +++ b/sound/sequences/00_sound_player.s.rej @@ -0,0 +1,973 @@ +diff a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s (rejected hunks) +@@ -3,20 +3,9 @@ + .align 0 + sequence_start: + +-.ifdef VERSION_SH +- .set VERSION_EU_SH, 1 +-.endif +-.ifdef VERSION_EU +- .set VERSION_EU_SH, 1 +-.endif +- + seq_setmutebhv 0x60 + seq_setmutescale 0 +-.ifdef VERSION_SH +- seq_setvol 100 +-.else +- seq_setvol 127 +-.endif ++seq_setvol 127 + seq_settempo 120 + seq_initchannels 0x3ff + seq_startchannel 0, .channel0 +@@ -77,7 +66,7 @@ chan_stereoheadseteffects 1 + chan_setdyntable .channel59_table + chan_jump .main_loop_023589 + +-# Main loop for standard, non-continuous sound effects ++ + .main_loop_023589: + chan_delay1 + chan_ioreadval 0 +@@ -91,17 +80,17 @@ chan_iowriteval 5 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until layer 0 finishes or we are told to stop or to play something else ++ + .poll_023589: + chan_delay1 + chan_ioreadval 0 +-chan_bltz .skip_023589 # if we have a signal: +- chan_beqz .force_stop_023589 # told to stop +- chan_jump .start_playing_023589 # told to play something else ++chan_bltz .skip_023589 ++ chan_beqz .force_stop_023589 ++ chan_jump .start_playing_023589 + .skip_023589: + chan_testlayerfinished 0 +-chan_beqz .poll_023589 # if layer 0 hasn't finished, keep polling +-chan_jump .main_loop_023589 # otherwise go back to the main loop ++chan_beqz .poll_023589 ++chan_jump .main_loop_023589 + .force_stop_023589: + chan_freelayer 0 + chan_freelayer 1 +@@ -144,7 +133,7 @@ chan_stereoheadseteffects 1 + chan_setdyntable .channel6_table + chan_jump .main_loop_146 + +-# Main loop for moving, env and air sound effects, which play continuously ++ + .main_loop_146: + chan_delay1 + chan_ioreadval 0 +@@ -159,7 +148,7 @@ chan_iowriteval 5 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until we are told to stop or to play something else ++ + .poll_146: + chan_delay1 + chan_ioreadval 0 +@@ -181,7 +170,7 @@ chan_iowriteval 5 + chan_stereoheadseteffects 1 + chan_setdyntable .channel7_table + +-# Loop for menu sound effects ++ + .main_loop_7: + chan_delay1 + chan_ioreadval 0 +@@ -198,19 +187,19 @@ chan_setpanmix 127 + chan_ioreadval 4 + chan_dyncall + +-# keep looping until layer 0 finishes or we are told to stop or to play something else ++ + .poll_7: + chan_delay1 + chan_ioreadval 0 +-chan_bltz .skip_7 # if we have a signal: +- chan_beqz .force_stop_7 # told to stop ++chan_bltz .skip_7 ++ chan_beqz .force_stop_7 + chan_unreservenotes +- chan_jump .start_playing_7 # told to play something else ++ chan_jump .start_playing_7 + .skip_7: + chan_testlayerfinished 0 +-chan_beqz .poll_7 # if layer 0 hasn't finished, keep polling ++chan_beqz .poll_7 + chan_unreservenotes +-chan_jump .main_loop_7 # otherwise go back to the main loop ++chan_jump .main_loop_7 + .force_stop_7: + chan_freelayer 0 + chan_freelayer 1 +@@ -218,7 +207,7 @@ chan_freelayer 2 + chan_unreservenotes + chan_jump .main_loop_7 + +-# Delay for a number of ticks (1-255) in an interruptible manner. ++ + .delay: + chan_writeseq_nextinstr 0, 1 + chan_loop 20 +@@ -233,15 +222,15 @@ chan_end + chan_setpanmix 127 + chan_setvolscale 127 + chan_setvibratoextent 0 +-chan_ioreadval 1 # IO slots 0-3 are reset to -1 when read; restore the value ++chan_ioreadval 1 + chan_iowriteval 0 +-chan_break # break out of the loop +-chan_break # force the caller to return immediately ++chan_break ++chan_break + chan_end + +-# Set reverb in way that takes area echo level and volume into account. This +-# is done by writing to IO slot 5 and letting get_sound_reverb in external.c +-# do the necessary math. ++ ++ ++ + .set_reverb: + chan_writeseq_nextinstr 0, 1 + chan_setreverb 10 +@@ -988,7 +977,7 @@ layer_portamento 0x81, 42, 255 + layer_note1 37, 0x1e, 105 + layer_end + +-.sound_action_climb_down_tree: # unused ++.sound_action_climb_down_tree: + chan_setbank 0 + chan_setinstr 1 + chan_setlayer 0, .layer_579 +@@ -999,7 +988,7 @@ layer_portamento 0x81, 44, 255 + layer_note1 40, 0xb4, 100 + layer_end + +-.chan_582: # unused ++.chan_582: + chan_setbank 0 + chan_setinstr 2 + chan_setlayer 0, .layer_58A +@@ -1373,7 +1362,7 @@ chan_end + layer_portamento 0x81, 27, 255 + layer_note1 41, 0xb, 127 + layer_somethingon +-layer_transpose -4 ++layer_transpose 252 + layer_portamento 0x85, 32, 255 + layer_note1 44, 0x5, 100 + layer_jump .layer_fn_64A +@@ -1419,7 +1408,7 @@ layer_note1 42, 0x8, 127 + layer_end + + .ifndef VERSION_JP +- .chan_828: # unused ++ .chan_828: + chan_setbank 7 + chan_setinstr 3 + chan_setlayer 0, .layer_83C +@@ -1805,7 +1794,7 @@ chan_end + + .layer_A97: + layer_setinstr 13 +-layer_transpose -12 ++layer_transpose 244 + + .layer_A9B: + layer_somethingon +@@ -2080,11 +2069,11 @@ chan_setlayer 0, .layer_C3C + chan_end + + .layer_C3C: +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + layer_transpose 2 + .endif + layer_portamento 0x82, 41, 127 +-layer_note1 37, 0x14, 127 ++layer_note1 38, 0x14, 127 + layer_end + + .sound_mario_jump_wah: +@@ -2094,7 +2083,7 @@ chan_setlayer 0, .layer_C4C + chan_end + + .layer_C4C: +-layer_transpose -2 ++layer_transpose 254 + .layer_C4E: + layer_note1 38, 0x18, 127 + layer_end +@@ -2106,7 +2095,7 @@ chan_setlayer 0, .layer_C5A + chan_end + + .layer_C5A: +-layer_transpose -2 ++layer_transpose 254 + .layer_C5C: + layer_portamento 0x82, 39, 200 + layer_note1 38, 0x24, 120 +@@ -2119,7 +2108,7 @@ chan_setlayer 0, .layer_C6C + chan_end + + .layer_C6C: +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + layer_transpose 1 + .endif + layer_portamento 0x82, 44, 200 +@@ -2133,7 +2122,7 @@ chan_setlayer 0, .layer_C7C + chan_end + + .layer_C7C: +-layer_transpose -2 ++layer_transpose 254 + layer_somethingon + layer_portamento 0x85, 39, 255 + layer_note1 42, 0x1e, 110 +@@ -2147,9 +2136,9 @@ chan_setlayer 0, .layer_C92 + chan_end + + .layer_C92: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 41, 255 +-layer_note1 38, 0x2b, 115 ++layer_note1 39, 0x2b, 115 + layer_end + + .sound_mario_hrmm: +@@ -2159,8 +2148,8 @@ chan_setlayer 0, .layer_CA4 + chan_end + + .layer_CA4: +-layer_transpose -2 +-layer_note1 44, 0x1e, 110 ++layer_transpose 254 ++layer_note1 39, 0x1e, 110 + layer_end + + .sound_mario_wah2: +@@ -2170,7 +2159,7 @@ chan_setlayer 0, .layer_CB2 + chan_end + + .layer_CB2: +-layer_transpose -3 ++layer_transpose 253 + layer_note1 39, 0x1c, 127 + layer_end + +@@ -2181,7 +2170,7 @@ chan_setlayer 0, .layer_CC0 + chan_end + + .layer_CC0: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 40, 0x30, 110 + layer_end + +@@ -2192,7 +2181,7 @@ chan_setlayer 0, .layer_CCE + chan_end + + .layer_CCE: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 40, 0x44, 105 + layer_end + +@@ -2203,7 +2192,7 @@ chan_setlayer 0, .layer_CDC + chan_end + + .layer_CDC: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 41, 0x30, 120 + layer_end + +@@ -2214,8 +2203,8 @@ chan_setlayer 0, .layer_CEA + chan_end + + .layer_CEA: +-layer_transpose -2 +-layer_note1 38, 0x30, 127 ++layer_transpose 254 ++layer_note1 41, 0x30, 127 + layer_end + + .sound_mario_here_we_go: +@@ -2236,7 +2225,7 @@ chan_setlayer 0, .layer_D09 + chan_end + + .layer_D09: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x7f, 105 + layer_end + +@@ -2247,7 +2236,7 @@ chan_setlayer 0, .layer_D17 + chan_end + + .layer_D17: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x60, 64 + layer_end + +@@ -2258,7 +2247,7 @@ chan_setlayer 0, .layer_D25 + chan_end + + .layer_D25: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x5c, 52 + layer_end + +@@ -2269,8 +2258,8 @@ chan_setlayer 0, .layer_D33 + chan_end + + .layer_D33: +-layer_transpose -2 +-layer_note1 39, 0xaa, 127 ++layer_transpose 254 ++layer_note1 40, 0xaa, 127 + layer_end + + .sound_mario_haha: +@@ -2280,7 +2269,7 @@ chan_setlayer 0, .layer_D42 + chan_end + + .layer_D42: +-layer_transpose -1 ++layer_transpose 255 + layer_note1 39, 0x4d, 120 + layer_end + +@@ -2291,8 +2280,8 @@ chan_setlayer 0, .layer_D50 + chan_end + + .layer_D50: +-layer_transpose -2 +-layer_note1 43, 0x1e, 105 ++layer_transpose 254 ++layer_note1 39, 0x1e, 105 + layer_end + + .sound_mario_on_fire: +@@ -2302,8 +2291,8 @@ chan_setlayer 0, .layer_D5E + chan_end + + .layer_D5E: +-layer_transpose -2 +-layer_note1 39, 0xc8, 127 ++layer_transpose 254 ++layer_note1 41, 0xc8, 127 + layer_end + + .sound_mario_dying: +@@ -2313,7 +2302,7 @@ chan_setlayer 0, .layer_D6D + chan_end + + .layer_D6D: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x8c, 110 + layer_end + +@@ -2324,7 +2313,7 @@ chan_setlayer 0, .layer_D7C + chan_end + + .layer_D7C: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x82, 35, 255 + layer_note1 38, 0x30, 127 + layer_end +@@ -2336,7 +2325,7 @@ chan_setlayer 0, .layer_D8E + chan_end + + .layer_D8E: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x3c, 100 + layer_end + +@@ -2347,7 +2336,7 @@ chan_setlayer 0, .layer_D9C + chan_end + + .layer_D9C: +-layer_transpose -2 ++layer_transpose 254 + layer_delay 0x4 + layer_note1 38, 0x3c, 100 + layer_end +@@ -2359,7 +2348,7 @@ chan_setlayer 0, .layer_DAC + chan_end + + .layer_DAC: +-layer_transpose -2 ++layer_transpose 254 + layer_delay 0x8 + layer_note1 40, 0x3c, 100 + layer_end +@@ -2371,7 +2360,7 @@ chan_setlayer 0, .layer_DBC + chan_end + + .layer_DBC: +-layer_transpose -2 ++layer_transpose 254 + layer_note1 39, 0x10, 115 + layer_end + +@@ -2382,7 +2371,7 @@ chan_setlayer 0, .layer_DCA + chan_end + + .layer_DCA: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 38, 255 + layer_note1 41, 0x18, 115 + layer_end +@@ -2394,7 +2383,7 @@ chan_setlayer 0, .layer_DDC + chan_end + + .layer_DDC: +-layer_transpose -2 ++layer_transpose 254 + layer_somethingon + layer_portamento 0x85, 38, 255 + layer_note1 41, 0xc, 115 +@@ -2413,7 +2402,7 @@ chan_setlayer 1, .layer_538 + chan_end + + .layer_DFE: +-layer_transpose -2 ++layer_transpose 254 + layer_jump .layer_C5C + + .sound_mario_punch_hoo: +@@ -2428,7 +2417,7 @@ chan_setlayer 1, .layer_548 + chan_end + + .layer_E17: +-layer_transpose -2 ++layer_transpose 254 + layer_portamento 0x81, 42, 255 + layer_note1 38, 0x30, 115 + layer_end +@@ -2441,7 +2430,7 @@ chan_end + + .layer_E29: + layer_portamento 0x81, 38, 255 +-layer_note1 36, 0x8c, 115 ++layer_note1 39, 0x8c, 115 + layer_end + + .sound_mario_okey_dokey: +@@ -2479,7 +2468,7 @@ chan_setlayer 1, .layer_536 + chan_end + + .layer_E62: +-layer_transpose -1 ++layer_transpose 255 + layer_jump .layer_C4E + + .ifndef VERSION_JP +@@ -2520,7 +2509,7 @@ layer_jump .layer_C4E + chan_end + + .layer_E94: +- layer_note1 41, 0x46, 127 ++ layer_note1 39, 0x46, 127 + layer_end + + .sound_mario_game_over: +@@ -2569,22 +2558,10 @@ layer_jump .layer_C4E + chan_end + + .layer_ECF: +- layer_delay 0x4e +- .layer_ED1: +- layer_loop 50 +- layer_call .layer_fn_EE1 +- layer_loopend + layer_setinstr 21 +- layer_note1 39, 0x44c, 127 +- layer_jump .layer_ED1 ++ layer_note1 38, 0x44c, 127 + layer_end + +- .layer_fn_EE1: +- layer_setinstr 21 +- layer_note1 37, 0x53, 127 +- layer_setinstr 15 +- layer_note1 37, 0x4e, 64 +- layer_end + + .sound_mario_so_longa_bowser: + chan_setbank 8 +@@ -2699,7 +2676,7 @@ layer_jump .layer_C4E + layer_end + .endif + +-.ifdef VERSION_EU_SH ++.ifdef VERSION_EU + .chan_unused_F9A_eu: + chan_setbank 8 + chan_setinstr 0 +@@ -2733,7 +2710,7 @@ sound_ref .sound_general_coin + sound_ref .sound_general_coin_water + sound_ref .sound_general_coin_water + sound_ref .sound_general_coin_water +-sound_ref .sound_general_coin_water ++sound_ref .sound_general_ringloss + sound_ref .sound_general_short_star + sound_ref .sound_general_big_clock + sound_ref .sound_general_loud_pound +@@ -2852,8 +2829,11 @@ sound_ref .sound_general_boat_rock + sound_ref .sound_general_boing2 + sound_ref .sound_general_yoshi_walk + sound_ref .sound_general_enemy_alert1 ++ ++ + .endif + ++ + .sound_general_activate_cap_switch: + chan_setbank 5 + chan_setinstr 7 +@@ -3037,7 +3017,7 @@ chan_setlayer 1, .layer_119D + chan_end + + .layer_119D: +-layer_transpose -12 ++layer_transpose 244 + + .layer_fn_119F: + layer_portamento 0x83, 27, 255 +@@ -3127,6 +3107,18 @@ layer_transpose 23 + layer_call .layer_fn_11E6 + layer_end + ++ ++ ++.sound_general_ringloss: ++chan_setbank 8 ++chan_setinstr 0 ++chan_setlayer 0, .layer_11E7 ++chan_end ++ ++.layer_11E7: ++layer_note1 39, 0xAF, 120 ++layer_end ++ + .sound_general_short_star: + chan_setbank 4 + chan_setinstr 14 +@@ -3408,17 +3400,11 @@ chan_setbank 9 + chan_setinstr 3 + chan_setval 40 + chan_call .set_reverb +-.ifdef VERSION_SH +- chan_setreverb 40 +-.endif + chan_setlayer 0, .layer_141A + chan_end + + .layer_141A: + layer_transpose 24 +-.ifdef VERSION_SH +- layer_note1 51, 0xc, 90 +-.endif + layer_note1 39, 0x4, 90 + layer_note1 51, 0xc, 90 + layer_note1 39, 0x4, 50 +@@ -3586,7 +3572,7 @@ chan_setlayer 0, .layer_1539 + chan_end + + .layer_1537: +-layer_transpose -3 ++layer_transpose 253 + + .layer_1539: + layer_note1 39, 0x6, 120 +@@ -3775,7 +3761,7 @@ layer_end + + .layer_1665: + layer_delay 0x4 +-layer_transpose -12 ++layer_transpose 244 + + .layer_1669: + layer_note1 27, 0x4f, 93 +@@ -3808,7 +3794,7 @@ layer_end + + .layer_16A6: + layer_delay 0x4 +-layer_transpose -12 ++layer_transpose 244 + + .layer_16AA: + layer_note1 46, 0xe, 116 +@@ -3915,7 +3901,7 @@ chan_end + + .layer_1751: + layer_call .layer_fn_1756 +-layer_transpose -4 ++layer_transpose 252 + + .layer_fn_1756: + layer_note1 27, 0x5, 105 +@@ -4056,7 +4042,7 @@ chan_setlayer 0, .layer_1844 + chan_end + + .layer_1844: +-layer_transpose -6 ++layer_transpose 250 + layer_portamento 0x81, 43, 127 + layer_note1 31, 0xfa, 115 + layer_end +@@ -4161,7 +4147,7 @@ layer_end + chan_setlayer 1, .layer_1902 + chan_setlayer 2, .layer_1907 + .else +- .ifdef VERSION_EU_SH ++ .ifdef VERSION_EU + chan_setbank 9 + chan_setinstr 3 + .else +@@ -4302,7 +4288,7 @@ chan_setinstr 5 + chan_end + + .layer_19FE: +-layer_transpose -6 ++layer_transpose 250 + + .layer_1A00: + layer_note1 15, 0xc, 127 +@@ -4357,7 +4343,7 @@ chan_end + .layer_1A44: + layer_transpose 7 + layer_call .layer_fn_1A4B +-layer_transpose -2 ++layer_transpose 254 + + .layer_fn_1A4B: + layer_portamento 0x83, 31, 255 +@@ -4577,7 +4563,7 @@ chan_setlayer 1, .layer_1B8C + chan_end + + .layer_1B8A: +-layer_transpose -12 ++layer_transpose 244 + + .layer_1B8C: + layer_somethingon +@@ -4796,7 +4782,7 @@ chan_setlayer 1, .layer_1D13 + chan_end + + .layer_1D11: +-layer_transpose -6 ++layer_transpose 250 + + .layer_1D13: + layer_somethingon +@@ -4901,7 +4887,7 @@ chan_setlayer 2, .layer_1DE2 + chan_end + + .layer_1DD4: +-layer_transpose -12 ++layer_transpose 244 + layer_somethingon + layer_portamento 0x82, 39, 255 + .layer_1DDB: +@@ -5320,7 +5306,7 @@ chan_end + .layer_2087: + layer_portamento 0x81, 33, 255 + layer_note1 57, 0x4, 127 +-layer_transpose -4 ++layer_transpose 252 + layer_portamento 0x81, 57, 255 + layer_note1 33, 0x6, 127 + layer_delay 0x14 +@@ -5726,7 +5712,7 @@ chan_setlayer 0, .layer_22F3 + chan_end + + .layer_unused_22F1: +-layer_transpose -12 ++layer_transpose 244 + + .layer_22F3: + layer_somethingon +@@ -5745,7 +5731,7 @@ chan_setlayer 0, .layer_230F + chan_end + + .layer_230F: +-layer_transpose -24 ++layer_transpose 232 + layer_somethingon + layer_portamento 0x85, 25, 255 + layer_note1 3, 0xf, 85 +@@ -5762,7 +5748,7 @@ chan_setlayer 0, .layer_232C + chan_end + + .layer_232C: +-layer_transpose -3 ++layer_transpose 253 + layer_somethingon + layer_portamento 0x85, 24, 255 + layer_note1 17, 0xa, 100 +@@ -5943,7 +5929,7 @@ chan_setlayer 0, .layer_2449 + chan_end + + .layer_2449: +-layer_transpose -8 ++layer_transpose 248 + layer_call .layer_fn_244E + + .layer_fn_244E: +@@ -5998,13 +5984,13 @@ chan_setlayer 0, .layer_249F + chan_end + + .layer_249F: +-layer_transpose -5 ++layer_transpose 251 + layer_call .layer_fn_24AF + layer_delay 0xb +-layer_transpose -8 ++layer_transpose 248 + layer_call .layer_fn_24AF + layer_delay 0xa +-layer_transpose -10 ++layer_transpose 246 + + .layer_fn_24AF: + layer_portamento 0x85, 29, 255 +@@ -6021,7 +6007,7 @@ chan_setlayer 0, .layer_24C7 + chan_end + + .layer_24C7: +-layer_transpose -12 ++layer_transpose 244 + layer_portamento 0x85, 25, 255 + layer_note1 39, 0x4, 127 + layer_note1 29, 0x30, 127 +@@ -6564,9 +6550,9 @@ layer_setinstr 15 + .layer_2856: + layer_transpose 6 + layer_call .layer_fn_119F +-layer_transpose -9 ++layer_transpose 247 + layer_call .layer_fn_119F +-layer_transpose -20 ++layer_transpose 236 + layer_jump .layer_fn_119F + + .sound_obj_chuckya_death: +@@ -6639,7 +6625,7 @@ chan_setlayer 0, .layer_28EB + chan_end + + .layer_28EB: +-layer_transpose -2 ++layer_transpose 254 + layer_note0 31, 0xa, 127, 70 + layer_note0 30, 0xb, 127, 70 + layer_note0 29, 0xa, 127, 70 +@@ -7473,11 +7459,11 @@ chan_setlayer 1, .layer_2E9E + chan_end + + .layer_2E9E: +-layer_transpose -12 ++layer_transpose 244 + layer_jump .layer_2EA5 + + .layer_2EA3: +-layer_transpose -24 ++layer_transpose 232 + .layer_2EA5: + layer_call .layer_fn_2EAB + layer_call .layer_fn_2EAB +@@ -7506,13 +7492,7 @@ layer_end + chan_reservenotes 4 + chan_setbank 9 + chan_setinstr 2 +-.ifdef VERSION_SH +- chan_setval 15 +- .set EXIT_PIPE_NOTE_VELOCITY, 106 +-.else +- chan_setval 30 +- .set EXIT_PIPE_NOTE_VELOCITY, 126 +-.endif ++chan_setval 30 + chan_call .set_reverb + chan_setenvelope .envelope_3464 + chan_setdecayrelease 220 +@@ -7528,36 +7508,36 @@ layer_jump .layer_2EF6 + layer_transpose 12 + .layer_2EF6: + layer_portamento 0x85, 15, 128 +-layer_note1 15, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 19, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 22, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 31, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 34, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 23, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 27, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 30, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 35, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 39, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 47, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 42, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 25, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 29, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 32, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 37, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 41, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 49, 0x3, EXIT_PIPE_NOTE_VELOCITY +-layer_note1 44, 0x3, EXIT_PIPE_NOTE_VELOCITY ++layer_note1 15, 0x3, 126 ++layer_note1 19, 0x3, 126 ++layer_note1 22, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 22, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 31, 0x3, 126 ++layer_note1 34, 0x3, 126 ++layer_note1 39, 0x3, 126 ++layer_note1 34, 0x3, 126 ++layer_note1 23, 0x3, 126 ++layer_note1 27, 0x3, 126 ++layer_note1 30, 0x3, 126 ++layer_note1 35, 0x3, 126 ++layer_note1 30, 0x3, 126 ++layer_note1 35, 0x3, 126 ++layer_note1 39, 0x3, 126 ++layer_note1 42, 0x3, 126 ++layer_note1 47, 0x3, 126 ++layer_note1 42, 0x3, 126 ++layer_note1 25, 0x3, 126 ++layer_note1 29, 0x3, 126 ++layer_note1 32, 0x3, 126 ++layer_note1 37, 0x3, 126 ++layer_note1 32, 0x3, 126 ++layer_note1 37, 0x3, 126 ++layer_note1 41, 0x3, 126 ++layer_note1 44, 0x3, 126 ++layer_note1 49, 0x3, 126 ++layer_note1 44, 0x3, 126 + layer_end + + .sound_menu_bowser_laugh: +@@ -7587,7 +7567,7 @@ chan_setlayer 0, .layer_2F7C + chan_end + + .layer_2F7C: +-layer_transpose -12 ++layer_transpose 244 + layer_portamento 0x83, 3, 255 + layer_note1 15, 0xa, 127 + layer_somethingon +@@ -7621,10 +7601,10 @@ chan_setlayer 1, .layer_2FB9 + chan_end + + .layer_2FB9: +-layer_transpose -24 ++layer_transpose 232 + layer_setpan 24 + layer_call .layer_fn_300D +-layer_transpose -12 ++layer_transpose 244 + layer_setpan 44 + layer_call .layer_fn_300D + layer_transpose 0 +@@ -7674,9 +7654,9 @@ layer_note1 48, 0x2, 20 + layer_end + + .layer_3032: +-layer_transpose -24 ++layer_transpose 232 + layer_call .layer_fn_3072 +-layer_transpose -12 ++layer_transpose 244 + layer_call .layer_fn_3072 + layer_transpose 0 + layer_call .layer_fn_3072 +@@ -7828,33 +7808,26 @@ chan_end + .layer_3146: + layer_delay 0x6 + +- .ifdef VERSION_SH +- .set RED_COIN_NOTE_VELOCITY_SUB, 10 +- .else +- .set RED_COIN_NOTE_VELOCITY_SUB, 0 +- .endif +- + .layer_3148: + layer_call .transpose_by_coin_index +- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 45, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 46, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 58, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 58, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- ++ layer_note0 46, 0xc, 75, 20 ++ layer_note0 45, 0xc, 75, 20 ++ layer_note0 46, 0xc, 75, 20 ++ layer_note0 58, 0x10, 80, 80 ++ layer_note0 58, 0x10, 45, 80 ++ layer_note0 58, 0x10, 20, 80 ++ layer_note0 58, 0x10, 15, 80 + layer_end + + .layer_3168: + layer_call .transpose_by_coin_index +- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 40, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 41, 0xc, 75 - RED_COIN_NOTE_VELOCITY_SUB, 20 +- layer_note0 53, 0x10, 80 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 45 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 20 - RED_COIN_NOTE_VELOCITY_SUB, 80 +- layer_note0 53, 0x10, 15 - RED_COIN_NOTE_VELOCITY_SUB, 80 ++ layer_note0 41, 0xc, 75, 20 ++ layer_note0 40, 0xc, 75, 20 ++ layer_note0 41, 0xc, 75, 20 ++ layer_note0 53, 0x10, 80, 80 ++ layer_note0 53, 0x10, 45, 80 ++ layer_note0 53, 0x10, 20, 80 ++ layer_note0 53, 0x10, 15, 80 + layer_end + + .transpose_by_coin_index: +@@ -8150,11 +8123,7 @@ envelope_goto 2 + .envelope_341C: + envelope_line 25 32760 + envelope_line 60 10000 +-.ifdef VERSION_SH +- envelope_hang +-.else +- envelope_goto 2 +-.endif ++envelope_goto 2 + + .envelope_3428: + envelope_line 1 10000 diff --git a/sound/sequences/us/23_drown.m64 b/sound/sequences/us/23_drown.m64 new file mode 100644 index 00000000..22e90430 Binary files /dev/null and b/sound/sequences/us/23_drown.m64 differ diff --git a/sound/sequences/us/24_super.m64 b/sound/sequences/us/24_super.m64 new file mode 100644 index 00000000..5399b4d5 Binary files /dev/null and b/sound/sequences/us/24_super.m64 differ diff --git a/sound/sequences/us/25_emerald.m64 b/sound/sequences/us/25_emerald.m64 new file mode 100644 index 00000000..5de85289 Binary files /dev/null and b/sound/sequences/us/25_emerald.m64 differ diff --git a/src/.vs/ProjectSettings.json b/src/.vs/ProjectSettings.json new file mode 100644 index 00000000..f8b48885 --- /dev/null +++ b/src/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/src/.vs/VSWorkspaceState.json b/src/.vs/VSWorkspaceState.json new file mode 100644 index 00000000..f26af790 --- /dev/null +++ b/src/.vs/VSWorkspaceState.json @@ -0,0 +1,8 @@ +{ + "ExpandedNodes": [ + "", + "\\game" + ], + "SelectedNode": "\\game\\mario_actions_airborne.c", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/src/.vs/slnx.sqlite b/src/.vs/slnx.sqlite new file mode 100644 index 00000000..7800b105 Binary files /dev/null and b/src/.vs/slnx.sqlite differ diff --git a/src/.vs/src/v16/.suo b/src/.vs/src/v16/.suo new file mode 100644 index 00000000..5e9a3fff Binary files /dev/null and b/src/.vs/src/v16/.suo differ diff --git a/src/audio/external.c b/src/audio/external.c index eb5c3d7e..771d886c 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -312,6 +312,9 @@ u8 sBackgroundMusicDefaultVolume[] = { 70, // SEQ_EVENT_CUTSCENE_ENDING 65, // SEQ_MENU_FILE_SELECT 0, // SEQ_EVENT_CUTSCENE_LAKITU (not in JP) + 75, + 65, + 70, }; STATIC_ASSERT(ARRAY_COUNT(sBackgroundMusicDefaultVolume) == SEQ_COUNT, @@ -2646,10 +2649,24 @@ void play_star_fanfare(void) { * Called from threads: thread5_game_loop */ void play_power_star_jingle(u8 arg0) { + u8 curcoinstar; + curcoinstar = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); + + if (!arg0) { sBackgroundMusicTargetVolume = 0; } - seq_player_play_sequence(SEQ_PLAYER_ENV, SEQ_EVENT_CUTSCENE_STAR_SPAWN, 0); + + if (gMarioState->coinstartotal < 7 && gCurrLevelNum != LEVEL_CASTLE && gCurrLevelNum != LEVEL_PSS && curcoinstar == 0 && gMarioState->numCoins >= 100) + { + seq_player_play_sequence(SEQ_PLAYER_ENV, SEQ_EMERALD, 0); + } + else + { + seq_player_play_sequence(SEQ_PLAYER_ENV, SEQ_EVENT_CUTSCENE_STAR_SPAWN, 0); + + } + sBackgroundMusicMaxTargetVolume = TARGET_VOLUME_IS_PRESENT_FLAG | 20; #if defined(VERSION_EU) || defined(VERSION_SH) D_EU_80300558 = 2; @@ -2657,6 +2674,8 @@ void play_power_star_jingle(u8 arg0) { begin_background_music_fade(50); } + + /** * Called from threads: thread5_game_loop */ diff --git a/src/audio/external.c.rej b/src/audio/external.c.rej new file mode 100644 index 00000000..09a51c97 --- /dev/null +++ b/src/audio/external.c.rej @@ -0,0 +1,11 @@ +diff a/src/audio/external.c b/src/audio/external.c (rejected hunks) +@@ -312,6 +312,9 @@ u8 sBackgroundMusicDefaultVolume[] = { + 70, // SEQ_EVENT_CUTSCENE_ENDING + 65, // SEQ_MENU_FILE_SELECT + 0, // SEQ_EVENT_CUTSCENE_LAKITU (not in JP) ++ 75, ++ 65, ++ 70, + }; + + STATIC_ASSERT(ARRAY_COUNT(sBackgroundMusicDefaultVolume) == SEQ_COUNT, diff --git a/src/audio/external.h b/src/audio/external.h index ea33ceb7..fc81a615 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -59,6 +59,7 @@ void play_peachs_jingle(void); void play_puzzle_jingle(void); void play_star_fanfare(void); void play_power_star_jingle(u8 arg0); +void play_emerald_jingle(u8 arg0); void play_race_fanfare(void); void play_toads_jingle(void); void sound_reset(u8 presetId); diff --git a/src/audio/external.h.rej b/src/audio/external.h.rej new file mode 100644 index 00000000..ca432f16 --- /dev/null +++ b/src/audio/external.h.rej @@ -0,0 +1,9 @@ +diff a/src/audio/external.h b/src/audio/external.h (rejected hunks) +@@ -59,6 +59,7 @@ void play_peachs_jingle(void); + void play_puzzle_jingle(void); + void play_star_fanfare(void); + void play_power_star_jingle(u8 arg0); ++void play_emerald_jingle(u8 arg0); + void play_race_fanfare(void); + void play_toads_jingle(void); + void sound_reset(u8 presetId); diff --git a/src/game/behavior_actions.h b/src/game/behavior_actions.h index d068492e..6d552307 100644 --- a/src/game/behavior_actions.h +++ b/src/game/behavior_actions.h @@ -3,6 +3,9 @@ void spawn_mist_particles_variable(s32 count, s32 offsetY, f32 size); void bhv_spawn_star_no_level_exit(u32); +//sonic emerald +void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col); + void bhv_star_door_loop_2(void); void spawn_triangle_break_particles(s16 numTris, s16 triModel, f32 triSize, s16 triAnimState); @@ -551,6 +554,11 @@ void bhv_intro_scene_loop(void); void bhv_dust_smoke_loop(void); void bhv_yoshi_loop(void); void bhv_volcano_trap_loop(void); +//sonic +void bhv_reticle_init(void); +void bhv_reticle_update(void); +void bhv_emerald_circle_init(void); +void bhv_emerald_circle_loop(void); Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); diff --git a/src/game/behavior_actions.h.rej b/src/game/behavior_actions.h.rej new file mode 100644 index 00000000..8c565ac1 --- /dev/null +++ b/src/game/behavior_actions.h.rej @@ -0,0 +1,20 @@ +diff a/src/game/behavior_actions.h b/src/game/behavior_actions.h (rejected hunks) +@@ -3,6 +3,7 @@ + + void spawn_mist_particles_variable(s32 count, s32 offsetY, f32 size); + void bhv_spawn_star_no_level_exit(u32); ++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col); + void bhv_star_door_loop_2(void); + void spawn_triangle_break_particles(s16 numTris, s16 triModel, f32 triSize, s16 triAnimState); + +@@ -551,6 +552,10 @@ void bhv_intro_scene_loop(void); + void bhv_dust_smoke_loop(void); + void bhv_yoshi_loop(void); + void bhv_volcano_trap_loop(void); ++void bhv_reticle_init(void); ++void bhv_reticle_update(void); ++void bhv_emerald_circle_init(void); ++void bhv_emerald_circle_loop(void); + + Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); + diff --git a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c index 32c01894..0c9da5e1 100644 --- a/src/game/behaviors/boo.inc.c +++ b/src/game/behaviors/boo.inc.c @@ -357,7 +357,11 @@ static void boo_chase_mario(f32 a0, s16 a1, f32 a2) { } cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, a2); - + //boo sonic fix + if (o->oForwardVel >= 10.0f) + { + o->oForwardVel = 10.0f; + } if (o->oForwardVel != 0.0f) { boo_oscillate(FALSE); } diff --git a/src/game/behaviors/boo.inc.c.rej b/src/game/behaviors/boo.inc.c.rej new file mode 100644 index 00000000..999e0189 --- /dev/null +++ b/src/game/behaviors/boo.inc.c.rej @@ -0,0 +1,14 @@ +diff a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c (rejected hunks) +@@ -357,7 +357,11 @@ static void boo_chase_mario(f32 a0, s16 a1, f32 a2) { + } + + cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, a2); +- ++ //boo sonic fix ++ if (o->oForwardVel >= 10.0f) ++ { ++ o->oForwardVel = 10.0f; ++ } + if (o->oForwardVel != 0.0f) { + boo_oscillate(FALSE); + } diff --git a/src/game/behaviors/breakable_box.inc.c b/src/game/behaviors/breakable_box.inc.c index f46954c3..52426d63 100644 --- a/src/game/behaviors/breakable_box.inc.c +++ b/src/game/behaviors/breakable_box.inc.c @@ -1,6 +1,27 @@ // breakable_box.c.inc +struct ObjectHitbox sBreakableBoxHitboxSlide = { + /* interactType: */ INTERACT_BREAKABLE, + /* downOffset: */ 20, + /* damageOrCoinValue: */ 0, + /* health: */ 1, + /* numLootCoins: */ 0, + /* radius: */ 150, + /* height: */ 200, + /* hurtboxRadius: */ 150, + /* hurtboxHeight: */ 200, +}; void bhv_breakable_box_loop(void) { + if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) + { + + load_object_collision_model(); + } + else if (gMarioState->forwardVel < 20.0f) + { + load_object_collision_model(); + } + obj_set_hitbox(o, &sBreakableBoxHitbox); cur_obj_set_model(MODEL_BREAKABLE_BOX_SMALL); if (o->oTimer == 0) diff --git a/src/game/behaviors/breakable_box.inc.c.rej b/src/game/behaviors/breakable_box.inc.c.rej new file mode 100644 index 00000000..e001d81a --- /dev/null +++ b/src/game/behaviors/breakable_box.inc.c.rej @@ -0,0 +1,29 @@ +diff a/src/game/behaviors/breakable_box.inc.c b/src/game/behaviors/breakable_box.inc.c (rejected hunks) +@@ -1,6 +1,27 @@ + // breakable_box.c.inc ++struct ObjectHitbox sBreakableBoxHitboxSlide = { ++ /* interactType: */ INTERACT_BREAKABLE, ++ /* downOffset: */ 20, ++ /* damageOrCoinValue: */ 0, ++ /* health: */ 1, ++ /* numLootCoins: */ 0, ++ /* radius: */ 150, ++ /* height: */ 200, ++ /* hurtboxRadius: */ 150, ++ /* hurtboxHeight: */ 200, ++}; + + void bhv_breakable_box_loop(void) { ++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) ++ { ++ ++ load_object_collision_model(); ++ } ++ else if (gMarioState->forwardVel < 20.0f) ++ { ++ load_object_collision_model(); ++ } ++ + obj_set_hitbox(o, &sBreakableBoxHitbox); + cur_obj_set_model(MODEL_BREAKABLE_BOX_SMALL); + if (o->oTimer == 0) diff --git a/src/game/behaviors/celebration_star.inc.c b/src/game/behaviors/celebration_star.inc.c index 85f8964b..986c62c8 100644 --- a/src/game/behaviors/celebration_star.inc.c +++ b/src/game/behaviors/celebration_star.inc.c @@ -1,6 +1,8 @@ // celebration_star.c.inc void bhv_celebration_star_init(void) { + u8 curcoinstar; + curcoinstar = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); o->oHomeX = gMarioObject->header.gfx.pos[0]; o->oPosY = gMarioObject->header.gfx.pos[1] + 30.0f; o->oHomeZ = gMarioObject->header.gfx.pos[2]; @@ -14,11 +16,28 @@ void bhv_celebration_star_init(void) { cur_obj_scale(0.1f); o->oCelebStarUnkF4 = 1; } else { - o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; - o->oFaceAnglePitch = 0; - o->oFaceAngleRoll = 0; - cur_obj_scale(0.4f); - o->oCelebStarUnkF4 = 0; + if (curcoinstar != gMarioState->hasEmerald && gMarioState->coinstartotal < 8) + { + + o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_EMERALD]; + o->oAnimState = gMarioState->coinstartotal - 1; + o->oFaceAnglePitch = 0; + o->oFaceAngleRoll = 0; + cur_obj_scale(0.4f); + o->oCelebStarUnkF4 = 0; + gMarioState->hasEmerald = curcoinstar; + } + else + { + + + + o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; + o->oFaceAnglePitch = 0; + o->oFaceAngleRoll = 0; + cur_obj_scale(0.4f); + o->oCelebStarUnkF4 = 0; + } } #else o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; diff --git a/src/game/behaviors/celebration_star.inc.c.rej b/src/game/behaviors/celebration_star.inc.c.rej new file mode 100644 index 00000000..877528e4 --- /dev/null +++ b/src/game/behaviors/celebration_star.inc.c.rej @@ -0,0 +1,44 @@ +diff a/src/game/behaviors/celebration_star.inc.c b/src/game/behaviors/celebration_star.inc.c (rejected hunks) +@@ -1,6 +1,8 @@ + // celebration_star.c.inc + + void bhv_celebration_star_init(void) { ++ u8 curcoinstar; ++ curcoinstar = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); + o->oHomeX = gMarioObject->header.gfx.pos[0]; + o->oPosY = gMarioObject->header.gfx.pos[1] + 30.0f; + o->oHomeZ = gMarioObject->header.gfx.pos[2]; +@@ -14,11 +16,28 @@ void bhv_celebration_star_init(void) { + cur_obj_scale(0.1f); + o->oCelebStarUnkF4 = 1; + } else { +- o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; +- o->oFaceAnglePitch = 0; +- o->oFaceAngleRoll = 0; +- cur_obj_scale(0.4f); +- o->oCelebStarUnkF4 = 0; ++ if (curcoinstar != gMarioState->hasEmerald && gMarioState->coinstartotal < 8) ++ { ++ ++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_EMERALD]; ++ o->oAnimState = gMarioState->coinstartotal - 1; ++ o->oFaceAnglePitch = 0; ++ o->oFaceAngleRoll = 0; ++ cur_obj_scale(0.4f); ++ o->oCelebStarUnkF4 = 0; ++ gMarioState->hasEmerald = curcoinstar; ++ } ++ else ++ { ++ ++ ++ ++ o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; ++ o->oFaceAnglePitch = 0; ++ o->oFaceAngleRoll = 0; ++ cur_obj_scale(0.4f); ++ o->oCelebStarUnkF4 = 0; ++ } + } + #else + o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR]; diff --git a/src/game/behaviors/emerald_circle.inc.c b/src/game/behaviors/emerald_circle.inc.c new file mode 100644 index 00000000..94ff137f --- /dev/null +++ b/src/game/behaviors/emerald_circle.inc.c @@ -0,0 +1,40 @@ + + + +void bhv_emerald_circle_init(void) { + o->header.gfx.scale[0] = 0.1f; + o->header.gfx.scale[1] = 0.1f; + o->header.gfx.scale[2] = 0.1f; + o->oTimer = 0; +} + +void bhv_emerald_circle_loop(void) { + o->oFaceAngleYaw += 0x900; + + if (o->oTimer < 20) + { + cur_obj_play_sound_1(SOUND_ENV_STAR); + } + if (o->oTimer < 30) + { + + if (o->header.gfx.scale[1] <= 0.8f) + { + o->header.gfx.scale[0] += 0.05f * o->oTimer; + o->header.gfx.scale[1] += 0.05f * o->oTimer; + o->header.gfx.scale[2] += 0.05f * o->oTimer; + } + } + else + { + o->header.gfx.scale[0] -= 0.1f; + o->header.gfx.scale[1] -= 0.1f; + o->header.gfx.scale[2] -= 0.1f; + if (o->header.gfx.scale[1] <= 0.3f) + { + mark_obj_for_deletion(o); + } + } +} + + diff --git a/src/game/behaviors/goomba.inc.c b/src/game/behaviors/goomba.inc.c index 2dab2fec..30f622d9 100644 --- a/src/game/behaviors/goomba.inc.c +++ b/src/game/behaviors/goomba.inc.c @@ -140,8 +140,7 @@ static void goomba_begin_jump(void) { */ static void mark_goomba_as_dead(void) { if (o->parentObj != o) { - set_object_respawn_info_bits(o->parentObj, - (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); + set_object_respawn_info_bits(o->parentObj,(o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); o->parentObj->oBehParams = o->parentObj->oBehParams | (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) << 6; diff --git a/src/game/behaviors/goomba.inc.c.rej b/src/game/behaviors/goomba.inc.c.rej new file mode 100644 index 00000000..a69401fc --- /dev/null +++ b/src/game/behaviors/goomba.inc.c.rej @@ -0,0 +1,11 @@ +diff a/src/game/behaviors/goomba.inc.c b/src/game/behaviors/goomba.inc.c (rejected hunks) +@@ -140,8 +140,7 @@ static void goomba_begin_jump(void) { + */ + static void mark_goomba_as_dead(void) { + if (o->parentObj != o) { +- set_object_respawn_info_bits(o->parentObj, +- (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); ++ set_object_respawn_info_bits(o->parentObj,(o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) >> 2); + + o->parentObj->oBehParams = + o->parentObj->oBehParams | (o->oBehParams2ndByte & GOOMBA_BP_TRIPLET_FLAG_MASK) << 6; diff --git a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c index 46d7ffcc..7f91e899 100644 --- a/src/game/behaviors/klepto.inc.c +++ b/src/game/behaviors/klepto.inc.c @@ -81,11 +81,9 @@ void bhv_klepto_init(void) { o->oKleptoStartPosY = o->oPosY; o->oKleptoStartPosZ = o->oPosZ; - if (save_file_get_flags() & SAVE_FLAG_CAP_ON_KLEPTO) { - o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; - } else { + o->oAction = KLEPTO_ACT_WAIT_FOR_MARIO; - } + } } @@ -241,9 +239,7 @@ static void klepto_act_dive_at_mario(void) { if (gMarioStates[0].action != ACT_SLEEPING && !(gMarioStates[0].action & (ACT_FLAG_SHORT_HITBOX | ACT_FLAG_BUTT_OR_STOMACH_SLIDE)) && o->oDistanceToMario < 200.0f && dy > 50.0f && dy < 90.0f) { - if (mario_lose_cap_to_enemy(1)) { - o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; - } + } } } diff --git a/src/game/behaviors/klepto.inc.c.rej b/src/game/behaviors/klepto.inc.c.rej new file mode 100644 index 00000000..57addf95 --- /dev/null +++ b/src/game/behaviors/klepto.inc.c.rej @@ -0,0 +1,26 @@ +diff a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c (rejected hunks) +@@ -81,11 +81,9 @@ void bhv_klepto_init(void) { + o->oKleptoStartPosY = o->oPosY; + o->oKleptoStartPosZ = o->oPosZ; + +- if (save_file_get_flags() & SAVE_FLAG_CAP_ON_KLEPTO) { +- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; +- } else { ++ + o->oAction = KLEPTO_ACT_WAIT_FOR_MARIO; +- } ++ + } + } + +@@ -241,9 +239,7 @@ static void klepto_act_dive_at_mario(void) { + if (gMarioStates[0].action != ACT_SLEEPING + && !(gMarioStates[0].action & (ACT_FLAG_SHORT_HITBOX | ACT_FLAG_BUTT_OR_STOMACH_SLIDE)) + && o->oDistanceToMario < 200.0f && dy > 50.0f && dy < 90.0f) { +- if (mario_lose_cap_to_enemy(1)) { +- o->oAnimState = KLEPTO_ANIM_STATE_HOLDING_CAP; +- } ++ + } + } + } diff --git a/src/game/behaviors/reticle.inc.c b/src/game/behaviors/reticle.inc.c new file mode 100644 index 00000000..faec5c73 --- /dev/null +++ b/src/game/behaviors/reticle.inc.c @@ -0,0 +1,42 @@ + + +void bhv_reticle_init(void) { + o->oHomeX = o->oPosX; + o->oHomeY = o->oPosY; + o->oHomeZ = o->oPosZ; + o->oGravity = 0; + o->oFriction = 1.0; + o->oBuoyancy = 1.0; + o->header.gfx.scale[1] = 2.0f; + o->parentObj = gMarioState->homingObj; +} + +void bhv_reticle_update(void) { + + if (gMarioState->homingObj != NULL) + { + o->header.gfx.scale[1] -= 0.2f; + o->oPosX = gMarioState->homingObj->oPosX; + o->oPosY = gMarioState->homingObj->oPosY; + o->oPosZ = gMarioState->homingObj->oPosZ; + if (o->header.gfx.scale[1] <= 0.9f) + { + o->header.gfx.scale[1] = 0.9f; + } + cur_obj_scale(o->header.gfx.scale[1]); + } + else + { + obj_mark_for_deletion(o); + } + if (o->parentObj != gMarioState->homingObj) + { + obj_mark_for_deletion(o); + } + + if (!(gMarioState->action & ACT_FLAG_AIR)) + { + obj_mark_for_deletion(o); + } +} + diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c index b6608708..46f2c0a8 100644 --- a/src/game/behaviors/sparkle_spawn_star.inc.c +++ b/src/game/behaviors/sparkle_spawn_star.inc.c @@ -111,7 +111,18 @@ void bhv_spawned_star_loop(void) { } void bhv_spawn_star_no_level_exit(u32 sp20) { + struct Object *sp1C = spawn_object(o, MODEL_STAR, bhvSpawnedStarNoLevelExit); + + sp1C->oBehParams = sp20 << 24; + sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; + obj_set_angle(sp1C, 0, 0, 0); +} + +void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col) { + + struct Object* sp1C = spawn_object(o, MODEL_EMERALD, bhvSpawnedStarNoLevelExit); + sp1C->oAnimState = col; sp1C->oBehParams = sp20 << 24; sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; obj_set_angle(sp1C, 0, 0, 0); diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c.rej b/src/game/behaviors/sparkle_spawn_star.inc.c.rej new file mode 100644 index 00000000..5d7a3730 --- /dev/null +++ b/src/game/behaviors/sparkle_spawn_star.inc.c.rej @@ -0,0 +1,20 @@ +diff a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c (rejected hunks) +@@ -111,7 +111,18 @@ void bhv_spawned_star_loop(void) { + } + + void bhv_spawn_star_no_level_exit(u32 sp20) { ++ + struct Object *sp1C = spawn_object(o, MODEL_STAR, bhvSpawnedStarNoLevelExit); ++ ++ sp1C->oBehParams = sp20 << 24; ++ sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; ++ obj_set_angle(sp1C, 0, 0, 0); ++} ++ ++void bhv_spawn_emerald_no_level_exit(u32 sp20, u32 col) { ++ ++ struct Object* sp1C = spawn_object(o, MODEL_EMERALD, bhvSpawnedStarNoLevelExit); ++ sp1C->oAnimState = col; + sp1C->oBehParams = sp20 << 24; + sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; + obj_set_angle(sp1C, 0, 0, 0); diff --git a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c index 9a194a5c..b09a679d 100644 --- a/src/game/behaviors/spawn_star.inc.c +++ b/src/game/behaviors/spawn_star.inc.c @@ -15,6 +15,8 @@ static struct ObjectHitbox sCollectStarHitbox = { void bhv_collect_star_init(void) { s8 starId; u8 currentLevelStarFlags; + + starId = (o->oBehParams >> 24) & 0xFF; currentLevelStarFlags = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1); diff --git a/src/game/behaviors/spawn_star.inc.c.rej b/src/game/behaviors/spawn_star.inc.c.rej new file mode 100644 index 00000000..b87b81e8 --- /dev/null +++ b/src/game/behaviors/spawn_star.inc.c.rej @@ -0,0 +1,10 @@ +diff a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c (rejected hunks) +@@ -15,6 +15,8 @@ static struct ObjectHitbox sCollectStarHitbox = { + void bhv_collect_star_init(void) { + s8 starId; + u8 currentLevelStarFlags; ++ ++ + + starId = (o->oBehParams >> 24) & 0xFF; + currentLevelStarFlags = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1); diff --git a/src/game/behaviors/switch_hidden_objects.inc.c b/src/game/behaviors/switch_hidden_objects.inc.c index e159700f..5524d91a 100644 --- a/src/game/behaviors/switch_hidden_objects.inc.c +++ b/src/game/behaviors/switch_hidden_objects.inc.c @@ -58,7 +58,15 @@ void hidden_breakable_box_actions(void) { o->oAction++; cur_obj_play_sound_2(SOUND_GENERAL_BREAK_BOX); } - load_object_collision_model(); + if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) + { + + load_object_collision_model(); + } + else if (gMarioState->forwardVel < 20.0f) + { + load_object_collision_model(); + } } else { cur_obj_become_intangible(); cur_obj_disable_rendering(); diff --git a/src/game/behaviors/switch_hidden_objects.inc.c.rej b/src/game/behaviors/switch_hidden_objects.inc.c.rej new file mode 100644 index 00000000..634102b0 --- /dev/null +++ b/src/game/behaviors/switch_hidden_objects.inc.c.rej @@ -0,0 +1,18 @@ +diff a/src/game/behaviors/switch_hidden_objects.inc.c b/src/game/behaviors/switch_hidden_objects.inc.c (rejected hunks) +@@ -58,7 +58,15 @@ void hidden_breakable_box_actions(void) { + o->oAction++; + cur_obj_play_sound_2(SOUND_GENERAL_BREAK_BOX); + } +- load_object_collision_model(); ++ if (gMarioState->action != ACT_SLIDE_KICK_SLIDE) ++ { ++ ++ load_object_collision_model(); ++ } ++ else if (gMarioState->forwardVel < 20.0f) ++ { ++ load_object_collision_model(); ++ } + } else { + cur_obj_become_intangible(); + cur_obj_disable_rendering(); diff --git a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c index 2e6ce836..1c3795c7 100644 --- a/src/game/behaviors/ukiki.inc.c +++ b/src/game/behaviors/ukiki.inc.c @@ -28,9 +28,7 @@ void handle_cap_ukiki_reset(void) { */ s32 is_cap_ukiki_and_mario_has_normal_cap_on_head(void) { if (o->oBehParams2ndByte == UKIKI_CAP) { - if (does_mario_have_normal_cap_on_head(gMarioState)) { - return TRUE; - } + } return FALSE; diff --git a/src/game/behaviors/ukiki.inc.c.rej b/src/game/behaviors/ukiki.inc.c.rej new file mode 100644 index 00000000..bff3c8b3 --- /dev/null +++ b/src/game/behaviors/ukiki.inc.c.rej @@ -0,0 +1,12 @@ +diff a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c (rejected hunks) +@@ -28,9 +28,7 @@ void handle_cap_ukiki_reset(void) { + */ + s32 is_cap_ukiki_and_mario_has_normal_cap_on_head(void) { + if (o->oBehParams2ndByte == UKIKI_CAP) { +- if (does_mario_have_normal_cap_on_head(gMarioState)) { +- return TRUE; +- } ++ + } + + return FALSE; diff --git a/src/game/camera.c b/src/game/camera.c index 2ae110ce..d6e6d01d 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -6364,6 +6364,9 @@ struct CameraTrigger sCamBBH[] = { * * Each table is terminated with NULL_TRIGGER */ +struct CameraTrigger sCamCastleGrounds[] = { + NULL_TRIGGER +}; struct CameraTrigger *sCameraTriggers[LEVEL_COUNT + 1] = { NULL, #include "levels/level_defines.h" @@ -10798,26 +10801,26 @@ u8 sDanceCutsceneIndexTable[][4] = { * and if the result is non-zero, the camera will zoom out. */ u8 sZoomOutAreaMasks[] = { - ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused - ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // BBH | CCM - ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // CASTLE_INSIDE | HMC - ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SSL | BOB - ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SL | WDW - ZOOMOUT_AREA_MASK(0,0,0,0, 1,1,0,0), // JRB | THI - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // TTC | RR - ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // CASTLE_GROUNDS | BITDW - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // VCUTM | BITFS - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // SA | BITS - ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // LLL | DDD - ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // WF | ENDING - ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // COURTYARD | PSS - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // COTMC | TOTWC - ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // BOWSER_1 | WMOTR - ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // Unused | BOWSER_2 - ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // BOWSER_3 | Unused - ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // TTM | Unused - ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // BBH | CCM + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // CASTLE_INSIDE | HMC + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SSL | BOB + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SL | WDW + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 1, 0, 0), // JRB | THI + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // TTC | RR + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // CASTLE_GROUNDS | BITDW + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // VCUTM | BITFS + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // SA | BITS + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // LLL | DDD + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // WF | ENDING + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // COURTYARD | PSS + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // COTMC | TOTWC + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // BOWSER_1 | WMOTR + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // Unused | BOWSER_2 + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // BOWSER_3 | Unused + ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // TTM | Unused + ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused }; STATIC_ASSERT(ARRAY_COUNT(sZoomOutAreaMasks) - 1 == LEVEL_MAX / 2, "Make sure you edit sZoomOutAreaMasks when adding / removing courses."); diff --git a/src/game/camera.c.rej b/src/game/camera.c.rej new file mode 100644 index 00000000..63ea4e28 --- /dev/null +++ b/src/game/camera.c.rej @@ -0,0 +1,58 @@ +diff a/src/game/camera.c b/src/game/camera.c (rejected hunks) +@@ -6364,6 +6364,9 @@ struct CameraTrigger sCamBBH[] = { + * + * Each table is terminated with NULL_TRIGGER + */ ++struct CameraTrigger sCamCastleGrounds[] = { ++ NULL_TRIGGER ++}; + struct CameraTrigger *sCameraTriggers[LEVEL_COUNT + 1] = { + NULL, + #include "levels/level_defines.h" +@@ -10798,26 +10801,26 @@ u8 sDanceCutsceneIndexTable[][4] = { + * and if the result is non-zero, the camera will zoom out. + */ + u8 sZoomOutAreaMasks[] = { +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // BBH | CCM +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // CASTLE_INSIDE | HMC +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SSL | BOB +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SL | WDW +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,1,0,0), // JRB | THI +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // TTC | RR +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // CASTLE_GROUNDS | BITDW +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // VCUTM | BITFS +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // SA | BITS +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // LLL | DDD +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // WF | ENDING +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // COURTYARD | PSS +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // COTMC | TOTWC +- ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // BOWSER_1 | WMOTR +- ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // Unused | BOWSER_2 +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // BOWSER_3 | Unused +- ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // TTM | Unused +- ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // BBH | CCM ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // CASTLE_INSIDE | HMC ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SSL | BOB ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // SL | WDW ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 1, 0, 0), // JRB | THI ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // TTC | RR ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // CASTLE_GROUNDS | BITDW ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // VCUTM | BITFS ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // SA | BITS ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // LLL | DDD ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // WF | ENDING ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // COURTYARD | PSS ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // COTMC | TOTWC ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 1, 0, 0, 0), // BOWSER_1 | WMOTR ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 1, 0, 0, 0), // Unused | BOWSER_2 ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // BOWSER_3 | Unused ++ ZOOMOUT_AREA_MASK(1, 0, 0, 0, 0, 0, 0, 0), // TTM | Unused ++ ZOOMOUT_AREA_MASK(0, 0, 0, 0, 0, 0, 0, 0), // Unused | Unused + }; + + STATIC_ASSERT(ARRAY_COUNT(sZoomOutAreaMasks) - 1 == LEVEL_MAX / 2, "Make sure you edit sZoomOutAreaMasks when adding / removing courses."); diff --git a/src/game/crash.c b/src/game/crash.c new file mode 100644 index 00000000..716adfbd --- /dev/null +++ b/src/game/crash.c @@ -0,0 +1,260 @@ +/* SM64 Crash Handler */ + +#include + +#include "crash.h" + +extern u32 exceptionRegContext[]; + +extern char *pAssertFile; +extern int nAssertLine; +extern char *pAssertExpression; +extern int nAssertStopProgram; + +u16 fbFillColor = 0xFFFF; +u16 fbShadeColor = 0x0000; +u16 *fbAddress = NULL; + +extern u8 crashFont[]; + +const char *szErrCodes[] = { + "INTERRUPT", + "TLB MOD", + "UNMAPPED LOAD ADDR", + "UNMAPPED STORE ADDR", + "BAD LOAD ADDR", + "BAD STORE ADDR", + "BUS ERR ON INSTR FETCH", + "BUS ERR ON LOADSTORE", + "SYSCALL", + "BREAKPOINT", + "UNKNOWN INSTR", + "COP UNUSABLE", + "ARITHMETIC OVERFLOW", + "TRAP EXC", + "VIRTUAL COHERENCY INSTR", + "FLOAT EXC", +}; + +const char *szGPRegisters1[] = { "R0", "AT", "V0", "V1", "A0", "A1", "A2", "A3", + "T0", "T1", "T2", "T3", "T4", "T5", "T6", NULL }; + +const char *szGPRegisters2[] = { "T7", "S0", "S1", "S2", "S3", "S4", + "S5", "S6", "S7", "T8", "T9", /*"K0", "K1",*/ + "GP", "SP", "FP", "RA", NULL }; + +int crash_strlen(char *str) { + int len = 0; + while (*str++) { + len++; + } + return len; +} + +void show_crash_screen_and_hang(void) { + u32 cause; + u32 epc; + u8 errno; + + fb_set_address((void *) (*(u32 *) 0xA4400004 | 0x80000000)); // replace me + + cause = cop0_get_cause(); + epc = cop0_get_epc(); + + errno = (cause >> 2) & 0x1F; + + if (nAssertStopProgram == 0) { + fbFillColor = 0x6253; + fb_fill(10, 10, 300, 220); + + fb_print_str(80, 20, "AN ERROR HAS OCCURRED!"); + fb_print_int_hex(80, 30, errno, 8); + fb_print_str(95, 30, szErrCodes[errno]); + + if (errno >= 2 && errno <= 5) { + /* + 2 UNMAPPED LOAD ADDR + 3 UNMAPPED STORE ADDR + 4 BAD LOAD ADDR + 5 BAD STORE ADDR + */ + u32 badvaddr = cop0_get_badvaddr(); + + fb_print_str(145, 50, "VA"); + fb_print_int_hex(160, 50, badvaddr, 32); + } + } else { + int afterFileX; + int exprBoxWidth; + fbFillColor = 0x5263; + fb_fill(10, 10, 300, 220); + + fb_print_str(80, 20, "ASSERTION FAILED!"); + + afterFileX = fb_print_str(80, 30, pAssertFile); + fb_print_str(afterFileX, 30, ":"); + fb_print_uint(afterFileX + 5, 30, nAssertLine); + + exprBoxWidth = (crash_strlen(pAssertExpression) * 5) + 2; + fbFillColor = 0x0001; + fb_fill(80 - 1, 40 - 1, exprBoxWidth, 10); + fb_print_str(80, 40, pAssertExpression); + } + + fb_print_str(80, 50, "PC"); + fb_print_int_hex(95, 50, epc, 32); + + fb_print_gpr_states(80, 70, szGPRegisters1, &exceptionRegContext[6 + 0]); + fb_print_gpr_states(145, 70, szGPRegisters2, &exceptionRegContext[6 + 15 * 2]); + + fb_swap(); + osWritebackDCacheAll(); + + while (1) // hang forever + { + UNUSED volatile int t = 0; // keep pj64 happy + } +} + +u8 ascii_to_idx(char c) { + return c - 0x20; +} + +void fb_set_address(void *address) { + fbAddress = (u16 *) address; +} + +void fb_swap() { + // update VI frame buffer register + // todo other registers + *(u32 *) (0xA4400004) = (u32) fbAddress & 0x00FFFFFF; +} + +void fb_fill(int baseX, int baseY, int width, int height) { + int y, x; + + for (y = baseY; y < baseY + height; y++) { + for (x = baseX; x < baseX + width; x++) { + fbAddress[y * 320 + x] = fbFillColor; + } + } +} + +void fb_draw_char(int x, int y, u8 idx) { + u16 *out = &fbAddress[y * 320 + x]; + const u8 *in = &crashFont[idx * 3]; + int nbyte; + int nrow; + int ncol; + + for (nbyte = 0; nbyte < 3; nbyte++) { + u8 curbyte = in[nbyte]; + for (nrow = 0; nrow < 2; nrow++) { + for (ncol = 0; ncol < 4; ncol++) { + u8 px = curbyte & (1 << (7 - (nrow * 4 + ncol))); + if (px != 0) { + out[ncol] = fbFillColor; + } + } + out += 320; + } + } +} + +void fb_draw_char_shaded(int x, int y, u8 idx) { + fbFillColor = 0x0001; + fb_draw_char(x - 1, y + 1, idx); + + fbFillColor = 0xFFFF; + fb_draw_char(x, y, idx); +} + +int fb_print_str(int x, int y, const char *str) { + while (1) { + int yoffs = 0; + u8 idx; + char c = *str++; + + if (c == '\0') { + break; + } + + if (c == ' ') { + x += 5; + continue; + } + + switch (c) { + case 'j': + case 'g': + case 'p': + case 'q': + case 'y': + case 'Q': + yoffs = 1; + break; + case ',': + yoffs = 2; + break; + } + + idx = ascii_to_idx(c); + fb_draw_char_shaded(x, y + yoffs, idx); + x += 5; + } + + return x; +} + +void fb_print_int_hex(int x, int y, u32 value, int nbits) { + nbits -= 4; + + while (nbits >= 0) { + int nib = ((value >> nbits) & 0xF); + u8 idx; + + if (nib > 9) { + idx = ('A' - 0x20) + (nib - 0xa); + } else { + idx = ('0' - 0x20) + nib; + } + + fb_draw_char_shaded(x, y, idx); + x += 5; + + nbits -= 4; + } +} + +int fb_print_uint(int x, int y, u32 value) { + int nchars = 0; + + int v = value; + int i; + while (v /= 10) { + nchars++; + } + + x += nchars * 5; + + for (i = nchars; i >= 0; i--) { + fb_draw_char_shaded(x, y, ('0' - 0x20) + (value % 10)); + value /= 10; + x -= 5; + } + + return (x + nchars * 5); +} + +void fb_print_gpr_states(int x, int y, const char *regNames[], u32 *regContext) { + int i; + for (i = 0;; i++) { + if (regNames[i] == NULL) { + break; + } + + fb_print_str(x, y, regNames[i]); + fb_print_int_hex(x + 15, y, regContext[i * 2 + 1], 32); + y += 10; + } +} diff --git a/src/game/crash.h b/src/game/crash.h new file mode 100644 index 00000000..1386930d --- /dev/null +++ b/src/game/crash.h @@ -0,0 +1,28 @@ +#ifndef _CRASH_H_ +#define _CRASH_H_ + +#include + +#define CRASH_SCREEN_INCLUDED 1 + +extern u32 cop0_get_cause(void); +extern u32 cop0_get_epc(void); +extern u32 cop0_get_badvaddr(void); + +extern void _n64_assert(const char* pFile, int nLine, const char *pExpression, int nStopProgram); + +extern u8 __crash_handler_entry[]; + +void show_crash_screen_and_hang(void); +u8 ascii_to_idx(char c); +void fb_set_address(void *address); +void fb_swap(void); +void fb_fill(int baseX, int baseY, int width, int height); +void fb_draw_char(int x, int y, u8 idx); +void fb_draw_char_shaded(int x, int y, u8 idx); +int fb_print_str(int x, int y, const char *str); +int fb_print_uint(int x, int y, u32 value); +void fb_print_int_hex(int x, int y, u32 value, int nbits); +void fb_print_gpr_states(int x, int y, const char* regStrs[], u32 *regContext); + +#endif /* _CRASH_H_ */ diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index 8190f88d..9213eac5 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -22,6 +22,7 @@ #include "sm64.h" #include "text_strings.h" #include "types.h" +#include "macros.h" u16 gDialogColorFadeTimer; s8 gLastDialogLineNum; @@ -1656,6 +1657,7 @@ s16 gCutsceneMsgDuration = -1; s16 gCutsceneMsgTimer = 0; s8 gDialogCameraAngleIndex = CAM_SELECTION_MARIO; s8 gDialogCourseActNum = 1; +s8 gDialogHealthSystem = MARIO_HEALTH; #if defined(VERSION_JP) || defined(VERSION_SH) #define DIAG_VAL1 20 @@ -2596,8 +2598,32 @@ s32 gCourseDoneMenuTimer = 0; s32 gCourseCompleteCoins = 0; s8 gHudFlash = 0; +void change_dialog_mario_health(void) { + + if (gPlayer3Controller->buttonPressed & B_BUTTON) + { + play_sound(SOUND_MENU_CHANGE_SELECT, gGlobalSoundSource); + if (gDialogHealthSystem == SONIC_HEALTH) { + gDialogHealthSystem = MARIO_HEALTH; + } + else + { + gDialogHealthSystem = SONIC_HEALTH; + } + } +} + + + + s16 render_pause_courses_and_castle(void) { s16 num; + + u8 textHealthMario[] = { TEXT_HEALTH_MARIO }; + u8 textHealthSonic[] = { TEXT_HEALTH_SONIC }; + + + change_dialog_mario_health(); #ifdef VERSION_EU gInGameLanguage = eu_get_language(); @@ -2635,7 +2661,7 @@ s16 render_pause_courses_and_castle(void) { if (gPlayer3Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON)) #else if (gPlayer3Controller->buttonPressed & A_BUTTON - || gPlayer3Controller->buttonPressed & START_BUTTON) + || gPlayer3Controller->buttonPressed & START_BUTTON) #endif { level_set_transition(0, NULL); @@ -2662,7 +2688,7 @@ s16 render_pause_courses_and_castle(void) { if (gPlayer3Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON)) #else if (gPlayer3Controller->buttonPressed & A_BUTTON - || gPlayer3Controller->buttonPressed & START_BUTTON) + || gPlayer3Controller->buttonPressed & START_BUTTON) #endif { level_set_transition(0, NULL); @@ -2679,6 +2705,19 @@ s16 render_pause_courses_and_castle(void) { gDialogTextAlpha += 25; } + if (gDialogHealthSystem == MARIO_HEALTH) { + gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + print_generic_string(25, 170, textHealthMario); + gSPDisplayList(gDisplayListHead++, dl_ia_text_end); + + } + if (gDialogHealthSystem == SONIC_HEALTH) { + gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); + print_generic_string(25, 170, textHealthSonic); + gSPDisplayList(gDisplayListHead++, dl_ia_text_end); + + } + return 0; } diff --git a/src/game/ingame_menu.c.rej b/src/game/ingame_menu.c.rej new file mode 100644 index 00000000..b25282ac --- /dev/null +++ b/src/game/ingame_menu.c.rej @@ -0,0 +1,70 @@ +diff a/src/game/ingame_menu.c b/src/game/ingame_menu.c (rejected hunks) +@@ -22,6 +22,7 @@ + #include "sm64.h" + #include "text_strings.h" + #include "types.h" ++#include "macros.h" + + u16 gDialogColorFadeTimer; + s8 gLastDialogLineNum; +@@ -1656,6 +1657,7 @@ s16 gCutsceneMsgDuration = -1; + s16 gCutsceneMsgTimer = 0; + s8 gDialogCameraAngleIndex = CAM_SELECTION_MARIO; + s8 gDialogCourseActNum = 1; ++s8 gDialogHealthSystem = MARIO_HEALTH; + + #if defined(VERSION_JP) || defined(VERSION_SH) + #define DIAG_VAL1 20 +@@ -2596,8 +2598,32 @@ s32 gCourseDoneMenuTimer = 0; + s32 gCourseCompleteCoins = 0; + s8 gHudFlash = 0; + ++void change_dialog_mario_health(void) { ++ ++ if (gPlayer3Controller->buttonPressed & B_BUTTON) ++ { ++ play_sound(SOUND_MENU_CHANGE_SELECT, gGlobalSoundSource); ++ if (gDialogHealthSystem == SONIC_HEALTH) { ++ gDialogHealthSystem = MARIO_HEALTH; ++ } ++ else ++ { ++ gDialogHealthSystem = SONIC_HEALTH; ++ } ++ } ++} ++ ++ ++ ++ + s16 render_pause_courses_and_castle(void) { + s16 num; ++ ++ u8 textHealthMario[] = { TEXT_HEALTH_MARIO }; ++ u8 textHealthSonic[] = { TEXT_HEALTH_SONIC }; ++ ++ ++ change_dialog_mario_health(); + + #ifdef VERSION_EU + gInGameLanguage = eu_get_language(); +@@ -2679,6 +2705,19 @@ s16 render_pause_courses_and_castle(void) { + gDialogTextAlpha += 25; + } + ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); ++ print_generic_string(25, 170, textHealthMario); ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); ++ ++ } ++ if (gDialogHealthSystem == SONIC_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); ++ print_generic_string(25, 170, textHealthSonic); ++ gSPDisplayList(gDisplayListHead++, dl_ia_text_end); ++ ++ } ++ + return 0; + } + diff --git a/src/game/ingame_menu.h b/src/game/ingame_menu.h index c68e37ba..35e0f585 100644 --- a/src/game/ingame_menu.h +++ b/src/game/ingame_menu.h @@ -27,10 +27,14 @@ #define HUD_LUT_DIFF HUD_LUT_GLOBAL #endif -#define RENDER_PAUSE_SCREEN 1 +#define RENDER_PAUSE_SCREEN 1 #define RENDER_COURSE_DONE_SCREEN 2 +#define MARIO_HEALTH 1 +#define SONIC_HEALTH 2 +#define MARIO_HEALTH_SELECTED 0x02 +#define SONIC_HEALTH_SELECTED 0x04 - +extern s8 gDialogHealthSystem; extern s8 gDialogCourseActNum; extern s8 gHudFlash; diff --git a/src/game/ingame_menu.h.rej b/src/game/ingame_menu.h.rej new file mode 100644 index 00000000..143f810d --- /dev/null +++ b/src/game/ingame_menu.h.rej @@ -0,0 +1,18 @@ +diff a/src/game/ingame_menu.h b/src/game/ingame_menu.h (rejected hunks) +@@ -27,10 +27,14 @@ + #define HUD_LUT_DIFF HUD_LUT_GLOBAL + #endif + +-#define RENDER_PAUSE_SCREEN 1 ++#define RENDER_PAUSE_SCREEN 1 + #define RENDER_COURSE_DONE_SCREEN 2 ++#define MARIO_HEALTH 1 ++#define SONIC_HEALTH 2 ++#define MARIO_HEALTH_SELECTED 0x02 ++#define SONIC_HEALTH_SELECTED 0x04 + +- ++extern s8 gDialogHealthSystem; + extern s8 gDialogCourseActNum; + extern s8 gHudFlash; + diff --git a/src/game/interaction.c b/src/game/interaction.c index 1ae0b24e..cce3c152 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -23,6 +23,7 @@ #include "sm64.h" #include "sound_init.h" #include "rumble_init.h" +#include "game/ingame_menu.h" #define INT_GROUND_POUND_OR_TWIRL (1 << 0) // 0x01 #define INT_PUNCH (1 << 1) // 0x02 @@ -46,39 +47,39 @@ u8 sDelayInvincTimer; s16 sInvulnerable; -u32 interact_coin(struct MarioState *, u32, struct Object *); -u32 interact_water_ring(struct MarioState *, u32, struct Object *); -u32 interact_star_or_key(struct MarioState *, u32, struct Object *); -u32 interact_bbh_entrance(struct MarioState *, u32, struct Object *); -u32 interact_warp(struct MarioState *, u32, struct Object *); -u32 interact_warp_door(struct MarioState *, u32, struct Object *); -u32 interact_door(struct MarioState *, u32, struct Object *); -u32 interact_cannon_base(struct MarioState *, u32, struct Object *); -u32 interact_igloo_barrier(struct MarioState *, u32, struct Object *); -u32 interact_tornado(struct MarioState *, u32, struct Object *); -u32 interact_whirlpool(struct MarioState *, u32, struct Object *); -u32 interact_strong_wind(struct MarioState *, u32, struct Object *); -u32 interact_flame(struct MarioState *, u32, struct Object *); -u32 interact_snufit_bullet(struct MarioState *, u32, struct Object *); -u32 interact_clam_or_bubba(struct MarioState *, u32, struct Object *); -u32 interact_bully(struct MarioState *, u32, struct Object *); -u32 interact_shock(struct MarioState *, u32, struct Object *); -u32 interact_mr_blizzard(struct MarioState *, u32, struct Object *); -u32 interact_hit_from_below(struct MarioState *, u32, struct Object *); -u32 interact_bounce_top(struct MarioState *, u32, struct Object *); -u32 interact_unknown_08(struct MarioState *, u32, struct Object *); -u32 interact_damage(struct MarioState *, u32, struct Object *); -u32 interact_breakable(struct MarioState *, u32, struct Object *); -u32 interact_koopa_shell(struct MarioState *, u32, struct Object *); -u32 interact_pole(struct MarioState *, u32, struct Object *); -u32 interact_hoot(struct MarioState *, u32, struct Object *); -u32 interact_cap(struct MarioState *, u32, struct Object *); -u32 interact_grabbable(struct MarioState *, u32, struct Object *); -u32 interact_text(struct MarioState *, u32, struct Object *); +u32 interact_coin(struct MarioState*, u32, struct Object*); +u32 interact_water_ring(struct MarioState*, u32, struct Object*); +u32 interact_star_or_key(struct MarioState*, u32, struct Object*); +u32 interact_bbh_entrance(struct MarioState*, u32, struct Object*); +u32 interact_warp(struct MarioState*, u32, struct Object*); +u32 interact_warp_door(struct MarioState*, u32, struct Object*); +u32 interact_door(struct MarioState*, u32, struct Object*); +u32 interact_cannon_base(struct MarioState*, u32, struct Object*); +u32 interact_igloo_barrier(struct MarioState*, u32, struct Object*); +u32 interact_tornado(struct MarioState*, u32, struct Object*); +u32 interact_whirlpool(struct MarioState*, u32, struct Object*); +u32 interact_strong_wind(struct MarioState*, u32, struct Object*); +u32 interact_flame(struct MarioState*, u32, struct Object*); +u32 interact_snufit_bullet(struct MarioState*, u32, struct Object*); +u32 interact_clam_or_bubba(struct MarioState*, u32, struct Object*); +u32 interact_bully(struct MarioState*, u32, struct Object*); +u32 interact_shock(struct MarioState*, u32, struct Object*); +u32 interact_mr_blizzard(struct MarioState*, u32, struct Object*); +u32 interact_hit_from_below(struct MarioState*, u32, struct Object*); +u32 interact_bounce_top(struct MarioState*, u32, struct Object*); +u32 interact_unknown_08(struct MarioState*, u32, struct Object*); +u32 interact_damage(struct MarioState*, u32, struct Object*); +u32 interact_breakable(struct MarioState*, u32, struct Object*); +u32 interact_koopa_shell(struct MarioState*, u32, struct Object*); +u32 interact_pole(struct MarioState*, u32, struct Object*); +u32 interact_hoot(struct MarioState*, u32, struct Object*); +u32 interact_cap(struct MarioState*, u32, struct Object*); +u32 interact_grabbable(struct MarioState*, u32, struct Object*); +u32 interact_text(struct MarioState*, u32, struct Object*); struct InteractionHandler { u32 interactType; - u32 (*handler)(struct MarioState *, u32, struct Object *); + u32(*handler)(struct MarioState*, u32, struct Object*); }; static struct InteractionHandler sInteractionHandlers[] = { @@ -113,6 +114,7 @@ static struct InteractionHandler sInteractionHandlers[] = { { INTERACT_CAP, interact_cap }, { INTERACT_GRABBABLE, interact_grabbable }, { INTERACT_TEXT, interact_text }, + }; static u32 sForwardKnockbackActions[][3] = { @@ -132,29 +134,31 @@ static u8 sJustTeleported = FALSE; static u8 sPssSlideStarted = FALSE; /** - * Returns the type of cap Mario is wearing. + * Returns the type of hat Mario is wearing. */ -u32 get_mario_cap_flag(struct Object *capObject) { - const BehaviorScript *script = virtual_to_segmented(0x13, capObject->behavior); +u32 get_mario_cap_flag(struct Object* capObject) { + void* script = virtual_to_segmented(0x13, capObject->behavior); if (script == bhvNormalCap) { return MARIO_NORMAL_CAP; - } else if (script == bhvMetalCap) { + } + else if (script == bhvMetalCap) { return MARIO_METAL_CAP; - } else if (script == bhvWingCap) { + } + else if (script == bhvWingCap) { return MARIO_WING_CAP; - } else if (script == bhvVanishCap) { + } + else if (script == bhvVanishCap) { return MARIO_VANISH_CAP; } return 0; } - /** * Returns true if the passed in object has a moving angle yaw * in the angular range given towards Mario. */ -u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) { +u32 object_facing_mario(struct MarioState* m, struct Object* o, s16 angleRange) { f32 dx = m->pos[0] - o->oPosX; f32 dz = m->pos[2] - o->oPosZ; @@ -168,7 +172,7 @@ u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) return FALSE; } -s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { +s16 mario_obj_angle_to_object(struct MarioState* m, struct Object* o) { f32 dx = o->oPosX - m->pos[0]; f32 dz = o->oPosZ - m->pos[2]; @@ -179,7 +183,7 @@ s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { * Determines Mario's interaction with a given object depending on their proximity, * action, speed, and position. */ -u32 determine_interaction(struct MarioState *m, struct Object *o) { +u32 determine_interaction(struct MarioState* m, struct Object* o) { u32 interaction = 0; u32 action = m->action; @@ -205,11 +209,13 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { interaction = INT_TRIP; } } - } else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { + } + else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { if (m->vel[1] < 0.0f) { interaction = INT_GROUND_POUND_OR_TWIRL; } - } else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { + } + else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { // Neither ground pounding nor twirling change Mario's vertical speed on landing., // so the speed check is nearly always true (perhaps not if you land while going upwards?) // Additionally, actionState it set on each first thing in their action, so this is @@ -217,13 +223,19 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { if (m->vel[1] < 0.0f && m->actionState == 0) { interaction = INT_GROUND_POUND_OR_TWIRL; } - } else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { - interaction = INT_SLIDE_KICK; - } else if (action & ACT_FLAG_RIDING_SHELL) { + } + else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { interaction = INT_FAST_ATTACK_OR_SHELL; - } else if (m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) { + + } + else if (action & ACT_FLAG_RIDING_SHELL || m->flags & MARIO_IS_SUPER) { interaction = INT_FAST_ATTACK_OR_SHELL; } + + else if ((m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) && action != ACT_DIVE) { + interaction = INT_FAST_ATTACK_OR_SHELL; + + } } // Prior to this, the interaction type could be overwritten. This requires, however, @@ -234,50 +246,58 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { if (m->pos[1] > o->oPosY) { interaction = INT_HIT_FROM_ABOVE; } - } else { + } + else { if (m->pos[1] < o->oPosY) { interaction = INT_HIT_FROM_BELOW; } } } + if (action == ACT_DIVE) + { + interaction = INT_HIT_FROM_ABOVE; + } + return interaction; } /** * Sets the interaction types for INT_STATUS_INTERACTED, INT_STATUS_WAS_ATTACKED */ -u32 attack_object(struct Object *o, s32 interaction) { +u32 attack_object(struct Object* o, s32 interaction) { u32 attackType = 0; switch (interaction) { - case INT_GROUND_POUND_OR_TWIRL: - attackType = ATTACK_GROUND_POUND_OR_TWIRL; - break; - case INT_PUNCH: - attackType = ATTACK_PUNCH; - break; - case INT_KICK: - case INT_TRIP: - attackType = ATTACK_KICK_OR_TRIP; - break; - case INT_SLIDE_KICK: - case INT_FAST_ATTACK_OR_SHELL: + case INT_GROUND_POUND_OR_TWIRL: + attackType = ATTACK_GROUND_POUND_OR_TWIRL; + break; + case INT_PUNCH: + attackType = ATTACK_PUNCH; + break; + case INT_KICK: + case INT_TRIP: + attackType = ATTACK_KICK_OR_TRIP; + break; + case INT_SLIDE_KICK: + attackType = ATTACK_FAST_ATTACK; + break; + case INT_FAST_ATTACK_OR_SHELL: attackType = ATTACK_FAST_ATTACK; - break; - case INT_HIT_FROM_ABOVE: - attackType = ATTACK_FROM_ABOVE; - break; - case INT_HIT_FROM_BELOW: - attackType = ATTACK_FROM_BELOW; - break; + break; + case INT_HIT_FROM_ABOVE: + attackType = ATTACK_FROM_ABOVE; + break; + case INT_HIT_FROM_BELOW: + attackType = ATTACK_FROM_BELOW; + break; } o->oInteractStatus = attackType + (INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED); return attackType; } -void mario_stop_riding_object(struct MarioState *m) { +void mario_stop_riding_object(struct MarioState* m) { if (m->riddenObj != NULL) { m->riddenObj->oInteractStatus = INT_STATUS_STOP_RIDING; stop_shell_music(); @@ -285,14 +305,14 @@ void mario_stop_riding_object(struct MarioState *m) { } } -void mario_grab_used_object(struct MarioState *m) { +void mario_grab_used_object(struct MarioState* m) { if (m->heldObj == NULL) { m->heldObj = m->usedObj; obj_set_held_state(m->heldObj, bhvCarrySomething3); } } -void mario_drop_held_object(struct MarioState *m) { +void mario_drop_held_object(struct MarioState* m) { if (m->heldObj != NULL) { if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { stop_shell_music(); @@ -313,7 +333,7 @@ void mario_drop_held_object(struct MarioState *m) { } } -void mario_throw_held_object(struct MarioState *m) { +void mario_throw_held_object(struct MarioState* m) { if (m->heldObj != NULL) { if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { stop_shell_music(); @@ -331,7 +351,7 @@ void mario_throw_held_object(struct MarioState *m) { } } -void mario_stop_riding_and_holding(struct MarioState *m) { +void mario_stop_riding_and_holding(struct MarioState* m) { mario_drop_held_object(m); mario_stop_riding_object(m); @@ -341,40 +361,18 @@ void mario_stop_riding_and_holding(struct MarioState *m) { } } -u32 does_mario_have_normal_cap_on_head(struct MarioState *m) { - return (m->flags & (MARIO_CAPS | MARIO_CAP_ON_HEAD)) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +u32 does_mario_have_hat(struct MarioState* m) { + return (m->flags & MARIO_CAP_FLAGS) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); } -void mario_blow_off_cap(struct MarioState *m, f32 capSpeed) { - struct Object *capObject; +void mario_blow_off_cap(struct MarioState* m, f32 capSpeed) { + struct Object* capObject; - if (does_mario_have_normal_cap_on_head(m)) { - save_file_set_cap_pos(m->pos[0], m->pos[1], m->pos[2]); - m->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); - - capObject = spawn_object(m->marioObj, MODEL_MARIOS_CAP, bhvNormalCap); - - capObject->oPosY += (m->action & ACT_FLAG_SHORT_HITBOX) ? 120.0f : 180.0f; - capObject->oForwardVel = capSpeed; - capObject->oMoveAngleYaw = (s16)(m->faceAngle[1] + 0x400); - - if (m->forwardVel < 0.0f) { - capObject->oMoveAngleYaw = (s16)(capObject->oMoveAngleYaw + 0x8000); - } - } } u32 mario_lose_cap_to_enemy(u32 arg) { - u32 wasWearingCap = FALSE; - if (does_mario_have_normal_cap_on_head(gMarioState)) { - save_file_set_flags(arg == 1 ? SAVE_FLAG_CAP_ON_KLEPTO : SAVE_FLAG_CAP_ON_UKIKI); - gMarioState->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); - wasWearingCap = TRUE; - } - - return wasWearingCap; } void mario_retrieve_cap(void) { @@ -384,14 +382,15 @@ void mario_retrieve_cap(void) { gMarioState->flags |= MARIO_NORMAL_CAP | MARIO_CAP_IN_HAND; } -u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { +u32 able_to_grab_object(struct MarioState* m, UNUSED struct Object* o) { u32 action = m->action; if (action == ACT_DIVE_SLIDE || action == ACT_DIVE) { if (!(o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { return TRUE; } - } else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { + } + else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { if (m->actionArg < 2) { return TRUE; } @@ -400,9 +399,9 @@ u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { return FALSE; } -struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) { +struct Object* mario_get_collided_object(struct MarioState* m, u32 interactType) { s32 i; - struct Object *object; + struct Object* object; for (i = 0; i < m->marioObj->numCollidedObjs; i++) { object = m->marioObj->collidedObjs[i]; @@ -415,9 +414,13 @@ struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) return NULL; } -u32 mario_check_object_grab(struct MarioState *m) { +u32 mario_homing(struct MarioState* m) { + +} + +u32 mario_check_object_grab(struct MarioState* m) { u32 result = FALSE; - const BehaviorScript *script; + void* script; if (m->input & INPUT_INTERACT_OBJ_GRABBABLE) { script = virtual_to_segmented(0x13, m->interactObj->behavior); @@ -429,9 +432,10 @@ u32 mario_check_object_grab(struct MarioState *m) { m->usedObj = m->interactObj; result = set_mario_action(m, ACT_PICKING_UP_BOWSER, 0); } - } else { + } + else { s16 facingDYaw = mario_obj_angle_to_object(m, m->interactObj) - m->faceAngle[1]; - if (facingDYaw >= -0x2AAA && facingDYaw <= 0x2AAA) { + if (facingDYaw >= -0x8AAA && facingDYaw <= 0x8AAA) { m->usedObj = m->interactObj; if (!(m->action & ACT_FLAG_AIR)) { @@ -447,7 +451,7 @@ u32 mario_check_object_grab(struct MarioState *m) { return result; } -u32 bully_knock_back_mario(struct MarioState *mario) { +u32 bully_knock_back_mario(struct MarioState* mario) { struct BullyCollisionData marioData; struct BullyCollisionData bullyData; s16 newMarioYaw; @@ -457,7 +461,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { u32 bonkAction = 0; - struct Object *bully = mario->interactObj; + struct Object* bully = mario->interactObj; //! Conversion ratios multiply to more than 1 (could allow unbounded speed // with bonk cancel - but this isn't important for regular bully battery) @@ -465,14 +469,15 @@ u32 bully_knock_back_mario(struct MarioState *mario) { f32 marioToBullyRatio = 53.0f / bully->hitboxRadius; init_bully_collision_data(&marioData, mario->pos[0], mario->pos[2], mario->forwardVel, - mario->faceAngle[1], bullyToMarioRatio, 52.0f); + mario->faceAngle[1], bullyToMarioRatio, 52.0f); init_bully_collision_data(&bullyData, bully->oPosX, bully->oPosZ, bully->oForwardVel, - bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); + bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); if (mario->forwardVel != 0.0f) { transfer_bully_speed(&marioData, &bullyData); - } else { + } + else { transfer_bully_speed(&bullyData, &marioData); } @@ -498,13 +503,16 @@ u32 bully_knock_back_mario(struct MarioState *mario) { if (mario->action & ACT_FLAG_AIR) { bonkAction = ACT_BACKWARD_AIR_KB; - } else { + } + else { bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; } - } else { + } + else { if (mario->action & ACT_FLAG_AIR) { bonkAction = ACT_FORWARD_AIR_KB; - } else { + } + else { bonkAction = ACT_SOFT_FORWARD_GROUND_KB; } } @@ -512,7 +520,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { return bonkAction; } -void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { +void bounce_off_object(struct MarioState* m, struct Object* o, f32 velY) { m->pos[1] = o->oPosY + o->hitboxHeight; m->vel[1] = velY; @@ -521,12 +529,12 @@ void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { play_sound(SOUND_ACTION_BOUNCE_OFF_OBJECT, m->marioObj->header.gfx.cameraToObject); } -void hit_object_from_below(struct MarioState *m, UNUSED struct Object *o) { +void hit_object_from_below(struct MarioState* m, UNUSED struct Object* o) { m->vel[1] = 0.0f; set_camera_shake_from_hit(SHAKE_HIT_FROM_BELOW); } -static u32 unused_determine_knockback_action(struct MarioState *m) { +static u32 unused_determine_knockback_action(struct MarioState* m) { u32 bonkAction; s16 angleToObject = mario_obj_angle_to_object(m, m->interactObj); s16 facingDYaw = angleToObject - m->faceAngle[1]; @@ -541,14 +549,17 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { m->forwardVel *= -1.0f; if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { bonkAction = ACT_BACKWARD_AIR_KB; - } else { + } + else { bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; } - } else { + } + else { m->faceAngle[1] += 0x8000; if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { bonkAction = ACT_FORWARD_AIR_KB; - } else { + } + else { bonkAction = ACT_SOFT_FORWARD_GROUND_KB; } } @@ -556,7 +567,7 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { return bonkAction; } -u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { +u32 determine_knockback_action(struct MarioState* m, UNUSED s32 arg) { u32 bonkAction; s16 terrainIndex = 0; // 1 = air, 2 = water, 0 = default @@ -568,15 +579,18 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { terrainIndex = 2; - } else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + } + else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { terrainIndex = 1; } if (remainingHealth < 0x100) { strengthIndex = 2; - } else if (m->interactObj->oDamageOrCoinValue >= 4) { + } + else if (m->interactObj->oDamageOrCoinValue >= 4) { strengthIndex = 2; - } else if (m->interactObj->oDamageOrCoinValue >= 2) { + } + else if (m->interactObj->oDamageOrCoinValue >= 2) { strengthIndex = 1; } @@ -591,12 +605,14 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { if (m->vel[1] < 20.0f) { m->vel[1] = 20.0f; } - } else { + } + else { if (m->vel[1] > 0.0f) { m->vel[1] = 0.0f; } } - } else { + } + else { if (m->forwardVel < 16.0f) { mario_set_forward_vel(m, 16.0f); } @@ -605,7 +621,8 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { if (-0x4000 <= facingDYaw && facingDYaw <= 0x4000) { m->forwardVel *= -1.0f; bonkAction = sBackwardKnockbackActions[terrainIndex][strengthIndex]; - } else { + } + else { m->faceAngle[1] += 0x8000; bonkAction = sForwardKnockbackActions[terrainIndex][strengthIndex]; } @@ -613,7 +630,7 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { return bonkAction; } -void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 padding) { +void push_mario_out_of_object(struct MarioState* m, struct Object* o, f32 padding) { f32 minDistance = o->hitboxRadius + m->marioObj->hitboxRadius + padding; f32 offsetX = m->pos[0] - o->oPosX; @@ -621,14 +638,15 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin f32 distance = sqrtf(offsetX * offsetX + offsetZ * offsetZ); if (distance < minDistance) { - struct Surface *floor; + struct Surface* floor; s16 pushAngle; f32 newMarioX; f32 newMarioZ; if (distance == 0.0f) { pushAngle = m->faceAngle[1]; - } else { + } + else { pushAngle = atan2s(offsetZ, offsetX); } @@ -647,7 +665,7 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin } } -void bounce_back_from_attack(struct MarioState *m, u32 interaction) { +void bounce_back_from_attack(struct MarioState* m, u32 interaction) { if (interaction & (INT_PUNCH | INT_KICK | INT_TRIP)) { if (m->action == ACT_PUNCHING) { m->action = ACT_MOVE_PUNCHING; @@ -655,7 +673,8 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { if (m->action & ACT_FLAG_AIR) { mario_set_forward_vel(m, -16.0f); - } else { + } + else { mario_set_forward_vel(m, -48.0f); } @@ -668,7 +687,7 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { } } -u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { +u32 should_push_or_pull_door(struct MarioState* m, struct Object* o) { f32 dx = o->oPosX - m->pos[0]; f32 dz = o->oPosZ - m->pos[2]; @@ -677,40 +696,78 @@ u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { return (dYaw >= -0x4000 && dYaw <= 0x4000) ? 0x00000001 : 0x00000002; } -u32 take_damage_from_interact_object(struct MarioState *m) { +u32 take_damage_from_interact_object(struct MarioState* m) { s32 shake; s32 damage = m->interactObj->oDamageOrCoinValue; + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) + { + if (damage >= 4) { + shake = SHAKE_LARGE_DAMAGE; + } + else if (damage >= 2) { + shake = SHAKE_MED_DAMAGE; + } + else { + shake = SHAKE_SMALL_DAMAGE; + } - if (damage >= 4) { - shake = SHAKE_LARGE_DAMAGE; - } else if (damage >= 2) { - shake = SHAKE_MED_DAMAGE; - } else { - shake = SHAKE_SMALL_DAMAGE; + if (!(m->flags & MARIO_CAP_ON_HEAD)) { + damage += (damage + 1) / 2; + } + + if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { + + damage = 0; + } + + + + m->hurtCounter += 4 * damage; + } + } + if (!(m->flags & MARIO_METAL_CAP)) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem == SONIC_HEALTH) + { + if (gMarioState->numCoins > 0) + { + damage = 0; + shake = SHAKE_MED_DAMAGE; + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + } + else + { + shake = SHAKE_LARGE_DAMAGE; + m->health = 0xFF; + m->hurtCounter += 4 * damage; + } + } + } } - if (!(m->flags & MARIO_CAP_ON_HEAD)) { - damage += (damage + 1) / 2; - } - - if (m->flags & MARIO_METAL_CAP) { - damage = 0; - } - - m->hurtCounter += 4 * damage; - -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif set_camera_shake_from_hit(shake); - return damage; } -u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { +u32 take_damage_and_knock_back(struct MarioState* m, struct Object* o) { u32 damage; - if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) + if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; m->interactObj = o; @@ -727,45 +784,58 @@ u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { update_mario_sound_and_camera(m); return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), - damage); + damage); } return FALSE; } -void reset_mario_pitch(struct MarioState *m) { +void reset_mario_pitch(struct MarioState* m) { if (m->action == ACT_WATER_JUMP || m->action == ACT_SHOT_FROM_CANNON || m->action == ACT_FLYING) { set_camera_mode(m->area->camera, m->area->camera->defMode, 1); m->faceAngle[0] = 0; } } -u32 interact_coin(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_coin(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { m->numCoins += o->oDamageOrCoinValue; m->healCounter += 4 * o->oDamageOrCoinValue; o->oInteractStatus = INT_STATUS_INTERACTED; - + //add 100 coins if (COURSE_IS_MAIN_COURSE(gCurrCourseNum) && m->numCoins - o->oDamageOrCoinValue < 100 && m->numCoins >= 100) { - bhv_spawn_star_no_level_exit(6); + if (count_objects_with_behavior(bhvSpawnedStarNoLevelExit) < 1) { + if (m->coinstartotal > 6) + { + bhv_spawn_star_no_level_exit(6); + } + else + { + //sonic emerald + bhv_spawn_emerald_no_level_exit(6, m->coinstartotal); + } + } } -#ifdef VERSION_SH + if (o->oDamageOrCoinValue >= 2) { - queue_rumble_data(5, 80); + } -#endif return FALSE; } -u32 interact_water_ring(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_water_ring(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { m->healCounter += 4 * o->oDamageOrCoinValue; + //sonic + m->drownTimer = 0; + stop_drown_music(); + o->oInteractStatus = INT_STATUS_INTERACTED; return FALSE; } -u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_star_or_key(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 starIndex; u32 starGrabAction = ACT_STAR_DANCE_EXIT; u32 noExit = (o->oInteractionSubtype & INT_SUBTYPE_NO_EXIT) != 0; @@ -773,9 +843,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O if (m->health >= 0x100) { mario_stop_riding_and_holding(m); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + if (!noExit) { m->hurtCounter = 0; @@ -821,6 +889,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O play_sound(SOUND_MENU_STAR_SOUND, m->marioObj->header.gfx.cameraToObject); #ifndef VERSION_JP update_mario_sound_and_camera(m); + // func_802521A0 #endif if (grandStar) { @@ -833,7 +902,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O return FALSE; } -u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_bbh_entrance(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (m->action != ACT_BBH_ENTER_SPIN && m->action != ACT_BBH_ENTER_JUMP) { mario_stop_riding_and_holding(m); @@ -851,7 +920,7 @@ u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct return FALSE; } -u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_warp(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 action; if (o->oInteractionSubtype & INT_SUBTYPE_FADING_WARP) { @@ -860,7 +929,8 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * if (action == ACT_TELEPORT_FADE_IN) { sJustTeleported = TRUE; - } else if (!sJustTeleported) { + } + else if (!sJustTeleported) { if (action == ACT_IDLE || action == ACT_PANTING || action == ACT_STANDING_AGAINST_WALL || action == ACT_CROUCHING) { m->interactObj = o; @@ -870,26 +940,21 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * return set_mario_action(m, ACT_TELEPORT_FADE_OUT, 0); } } - } else { + } + else { if (m->action != ACT_EMERGE_FROM_PIPE) { o->oInteractStatus = INT_STATUS_INTERACTED; m->interactObj = o; m->usedObj = o; -#ifdef VERSION_SH if (o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8)) { play_sound(SOUND_MENU_ENTER_PIPE, m->marioObj->header.gfx.cameraToObject); - queue_rumble_data(15, 80); - } else { - play_sound(SOUND_MENU_ENTER_HOLE, m->marioObj->header.gfx.cameraToObject); - queue_rumble_data(12, 80); + + } + else { + play_sound(SOUND_MENU_ENTER_HOLE, m->marioObj->header.gfx.cameraToObject); + } -#else - play_sound(o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8) - ? SOUND_MENU_ENTER_PIPE - : SOUND_MENU_ENTER_HOLE, - m->marioObj->header.gfx.cameraToObject); -#endif mario_stop_riding_object(m); return set_mario_action(m, ACT_DISAPPEARED, (WARP_OP_WARP_OBJECT << 16) + 2); @@ -899,7 +964,7 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * return FALSE; } -u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_warp_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 doorAction = 0; u32 saveFlags = save_file_get_flags(); s16 warpDoorId = o->oBehParams >> 24; @@ -910,7 +975,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj if (!(saveFlags & SAVE_FLAG_HAVE_KEY_2)) { if (!sDisplayingDoorText) { set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, - (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? DIALOG_023 : DIALOG_022); + (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? DIALOG_023 : DIALOG_022); } sDisplayingDoorText = TRUE; @@ -925,7 +990,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj if (!sDisplayingDoorText) { // Moat door skip was intended confirmed set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, - (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? DIALOG_023 : DIALOG_022); + (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? DIALOG_023 : DIALOG_022); } sDisplayingDoorText = TRUE; @@ -941,7 +1006,8 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj if (doorAction == 0) { if (actionArg & 0x00000001) { doorAction = ACT_PULLING_DOOR; - } else { + } + else { doorAction = ACT_PUSHING_DOOR; } } @@ -955,7 +1021,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj return FALSE; } -u32 get_door_save_file_flag(struct Object *door) { +u32 get_door_save_file_flag(struct Object* door) { u32 saveFileFlag = 0; s16 requiredNumStars = door->oBehParams >> 24; @@ -963,39 +1029,41 @@ u32 get_door_save_file_flag(struct Object *door) { s16 isPssDoor = door->oPosY > 500.0f; switch (requiredNumStars) { - case 1: - if (isPssDoor) { - saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; - } else { - saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; - } - break; + case 1: + if (isPssDoor) { + saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; + } + else { + saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; + } + break; - case 3: - if (isCcmDoor) { - saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; - } else { - saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; - } - break; + case 3: + if (isCcmDoor) { + saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; + } + else { + saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; + } + break; - case 8: - saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; - break; + case 8: + saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; + break; - case 30: - saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; - break; + case 30: + saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; + break; - case 50: - saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; - break; + case 50: + saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; + break; } return saveFileFlag; } -u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { s16 requiredNumStars = o->oBehParams >> 24; s16 numStars = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); @@ -1007,7 +1075,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * if (actionArg & 0x00000001) { enterDoorAction = ACT_PULLING_DOOR; - } else { + } + else { enterDoorAction = ACT_PUSHING_DOOR; } @@ -1024,28 +1093,29 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * } return set_mario_action(m, enterDoorAction, actionArg); - } else if (!sDisplayingDoorText) { + } + else if (!sDisplayingDoorText) { u32 text = DIALOG_022 << 16; switch (requiredNumStars) { - case 1: - text = DIALOG_024 << 16; - break; - case 3: - text = DIALOG_025 << 16; - break; - case 8: - text = DIALOG_026 << 16; - break; - case 30: - text = DIALOG_027 << 16; - break; - case 50: - text = DIALOG_028 << 16; - break; - case 70: - text = DIALOG_029 << 16; - break; + case 1: + text = DIALOG_024 << 16; + break; + case 3: + text = DIALOG_025 << 16; + break; + case 8: + text = DIALOG_026 << 16; + break; + case 30: + text = DIALOG_027 << 16; + break; + case 50: + text = DIALOG_028 << 16; + break; + case 70: + text = DIALOG_029 << 16; + break; } text += requiredNumStars - numStars; @@ -1053,7 +1123,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * sDisplayingDoorText = TRUE; return set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, text); } - } else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { + } + else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { m->interactObj = o; m->usedObj = o; return set_mario_action(m, ACT_ENTERING_STAR_DOOR, should_push_or_pull_door(m, o)); @@ -1062,7 +1133,7 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * return FALSE; } -u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_cannon_base(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (m->action != ACT_IN_CANNON) { mario_stop_riding_and_holding(m); o->oInteractStatus = INT_STATUS_INTERACTED; @@ -1074,7 +1145,7 @@ u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct O return FALSE; } -u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_igloo_barrier(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { //! Sets used object without changing action (LOTS of interesting glitches, // but unfortunately the igloo barrier is the only object with this interaction // type) @@ -1084,8 +1155,8 @@ u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct return FALSE; } -u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { - struct Object *marioObj = m->marioObj; +u32 interact_tornado(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + struct Object* marioObj = m->marioObj; if (m->action != ACT_TORNADO_TWIRLING && m->action != ACT_SQUISHED) { mario_stop_riding_and_holding(m); @@ -1100,17 +1171,16 @@ u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Objec marioObj->oMarioTornadoPosY = m->pos[1] - o->oPosY; play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(30, 60); -#endif + + return set_mario_action(m, ACT_TORNADO_TWIRLING, m->action == ACT_TWIRLING); } return FALSE; } -u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { - struct Object *marioObj = m->marioObj; +u32 interact_whirlpool(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + struct Object* marioObj = m->marioObj; if (m->action != ACT_CAUGHT_IN_WHIRLPOOL) { mario_stop_riding_and_holding(m); @@ -1123,17 +1193,16 @@ u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Obj marioObj->oMarioWhirlpoolPosY = m->pos[1] - o->oPosY; play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(30, 60); -#endif + + return set_mario_action(m, ACT_CAUGHT_IN_WHIRLPOOL, 0); } return FALSE; } -u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { - UNUSED struct Object *marioObj = m->marioObj; +u32 interact_strong_wind(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + UNUSED struct Object* marioObj = m->marioObj; if (m->action != ACT_GETTING_BLOWN) { mario_stop_riding_and_holding(m); @@ -1154,21 +1223,45 @@ u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct O return FALSE; } -u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_flame(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 burningAction = ACT_BURNING_JUMP; - if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) + if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem == SONIC_HEALTH) + { + if (gMarioState->numCoins > 0) + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + } + else + { + m->health = 0xFF; + } + } + } o->oInteractStatus = INT_STATUS_INTERACTED; m->interactObj = o; if ((m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) || m->waterLevel - m->pos[1] > 50.0f) { play_sound(SOUND_GENERAL_FLAME_OUT, m->marioObj->header.gfx.cameraToObject); - } else { + } + else { m->marioObj->oMarioBurnTimer = 0; update_mario_sound_and_camera(m); play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); @@ -1184,12 +1277,13 @@ u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object return FALSE; } -u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_snufit_bullet(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP)) { - if (m->flags & MARIO_METAL_CAP) { + if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; play_sound(SOUND_ACTION_UNKNOWN458, m->marioObj->header.gfx.cameraToObject); - } else { + } + else { o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; m->interactObj = o; take_damage_from_interact_object(m); @@ -1198,49 +1292,53 @@ u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct update_mario_sound_and_camera(m); return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), - o->oDamageOrCoinValue); + o->oDamageOrCoinValue); } } if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_clam_or_bubba(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_clam_or_bubba(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (o->oInteractionSubtype & INT_SUBTYPE_EATS_MARIO) { o->oInteractStatus = INT_STATUS_INTERACTED; m->interactObj = o; return set_mario_action(m, ACT_EATEN_BY_BUBBA, 0); - } else if (take_damage_and_knock_back(m, o)) { + } + else if (take_damage_and_knock_back(m, o)) { return TRUE; } if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return TRUE; } -u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { + + + +u32 interact_bully(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { UNUSED u32 unused; u32 interaction; - if (m->flags & MARIO_METAL_CAP) { + if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER) ) { + interaction = INT_FAST_ATTACK_OR_SHELL; - } else { + } + else { interaction = determine_interaction(m, o); } m->interactObj = o; + m->homingObj = NULL; + if (interaction & INT_ATTACK_NOT_FROM_BELOW) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + push_mario_out_of_object(m, o, 5.0f); m->forwardVel = -16.0f; @@ -1253,7 +1351,7 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object } else if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) - && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { o->oInteractStatus = INT_STATUS_INTERACTED; m->invincTimer = 2; @@ -1263,16 +1361,15 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object push_mario_out_of_object(m, o, 5.0f); drop_and_set_mario_action(m, bully_knock_back_mario(m), 0); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + + return TRUE; } return FALSE; } -u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_shock(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { u32 actionArg = (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) == 0; @@ -1282,13 +1379,12 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object take_damage_from_interact_object(m); play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(70, 60); -#endif + if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { return drop_and_set_mario_action(m, ACT_WATER_SHOCKED, 0); - } else { + } + else { update_mario_sound_and_camera(m); return drop_and_set_mario_action(m, ACT_SHOCKED, actionArg); } @@ -1297,18 +1393,17 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -static u32 interact_stub(UNUSED struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +static u32 interact_stub(UNUSED struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } return FALSE; } -u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_mr_blizzard(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (take_damage_and_knock_back(m, o)) { return TRUE; } @@ -1316,24 +1411,25 @@ u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct O if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_hit_from_below(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { UNUSED u32 unused; u32 interaction; - if (m->flags & MARIO_METAL_CAP) { + if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { + if (m->action != ACT_DIVE ) + { interaction = INT_FAST_ATTACK_OR_SHELL; - } else { + } + } + else { interaction = determine_interaction(m, o); } if (interaction & INT_ANY_ATTACK) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + attack_object(o, interaction); bounce_back_from_attack(m, interaction); @@ -1349,33 +1445,39 @@ u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struc play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); #endif return drop_and_set_mario_action(m, ACT_TWIRLING, 0); - } else { + } + else { bounce_off_object(m, o, 30.0f); } } - } else if (take_damage_and_knock_back(m, o)) { + } + else if (take_damage_and_knock_back(m, o)) { return TRUE; } if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_bounce_top(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 interaction; - if (m->flags & MARIO_METAL_CAP) { + struct Object* goomba = o; + if (goomba->behavior == bhvGoomba) + { + m->interactObj = o; + } + + if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { interaction = INT_FAST_ATTACK_OR_SHELL; - } else { + } + else { interaction = determine_interaction(m, o); } if (interaction & INT_ATTACK_NOT_FROM_BELOW) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + attack_object(o, interaction); bounce_back_from_attack(m, interaction); @@ -1387,39 +1489,40 @@ u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Ob play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); #endif return drop_and_set_mario_action(m, ACT_TWIRLING, 0); - } else { + } + else { bounce_off_object(m, o, 30.0f); } } - } else if (take_damage_and_knock_back(m, o)) { + } + else if (take_damage_and_knock_back(m, o)) { return TRUE; } if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_unknown_08(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_unknown_08(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 interaction = determine_interaction(m, o); if (interaction & INT_PUNCH) { o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED | ATTACK_PUNCH; bounce_back_from_attack(m, interaction); - } else if (take_damage_and_knock_back(m, o)) { + } + else if (take_damage_and_knock_back(m, o)) { return TRUE; } if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_damage(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (take_damage_and_knock_back(m, o)) { return TRUE; } @@ -1427,20 +1530,27 @@ u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { sDelayInvincTimer = TRUE; } - return FALSE; } -u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { - u32 interaction = determine_interaction(m, o); +u32 interact_breakable(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + void* script = virtual_to_segmented(0x13, o->behavior); - if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { - attack_object(o, interaction); - bounce_back_from_attack(m, interaction); + u32 interaction = determine_interaction(m, o); + if (m->forwardVel >= 19.0f) + { + if (gMarioState->action == ACT_SLIDE_KICK_SLIDE || gMarioState->action == ACT_SLIDE_KICK) + { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; + } + } + if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { + attack_object(o, interaction); + bounce_back_from_attack(m, interaction); - m->interactObj = o; + m->interactObj = o; - switch (interaction) { + switch (interaction) { case INT_HIT_FROM_ABOVE: bounce_off_object(m, o, 30.0f); //! Not in the 0x8F mask break; @@ -1448,15 +1558,18 @@ u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Obj case INT_HIT_FROM_BELOW: hit_object_from_below(m, o); break; + + } + + return TRUE; + } - return TRUE; - } - - return FALSE; + return FALSE; + } -u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_koopa_shell(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if (!(m->action & ACT_FLAG_RIDING_SHELL)) { u32 interaction = determine_interaction(m, o); @@ -1482,7 +1595,7 @@ u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct O return FALSE; } -u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 check_object_grab_mario(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { if ((!(m->action & (ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ATTACKING)) || !sInvulnerable) && (o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { if (object_facing_mario(m, o, 0x2AAA)) { @@ -1495,9 +1608,7 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc update_mario_sound_and_camera(m); play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + return set_mario_action(m, ACT_GRABBED, 0); } } @@ -1506,17 +1617,17 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc return FALSE; } -u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_pole(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { s32 actionId = m->action & ACT_ID_MASK; if (actionId >= 0x080 && actionId < 0x0A0) { if (!(m->prevAction & ACT_FLAG_ON_POLE) || m->usedObj != o) { #ifdef VERSION_SH f32 velConv = m->forwardVel; // conserve the velocity. - struct Object *marioObj = m->marioObj; + struct Object* marioObj = m->marioObj; u32 lowSpeed; #else u32 lowSpeed = (m->forwardVel <= 10.0f); - struct Object *marioObj = m->marioObj; + struct Object* marioObj = m->marioObj; #endif mario_stop_riding_and_holding(m); @@ -1546,9 +1657,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * marioObj->oMarioPoleYawVel = (s32)(m->forwardVel * 0x100 + 0x1000); #endif reset_mario_pitch(m); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + return set_mario_action(m, ACT_GRAB_POLE_FAST, 0); } } @@ -1556,7 +1665,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * return FALSE; } -u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_hoot(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { s32 actionId = m->action & ACT_ID_MASK; //! Can pause to advance the global timer without falling too far, allowing @@ -1568,9 +1677,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * m->interactObj = o; m->usedObj = o; -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + update_mario_sound_and_camera(m); return set_mario_action(m, ACT_RIDING_HOOT, 0); } @@ -1578,7 +1685,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * return FALSE; } -u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_cap(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 capFlag = get_mario_cap_flag(o); u16 capMusic = 0; u16 capTime = 0; @@ -1587,24 +1694,24 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o m->interactObj = o; o->oInteractStatus = INT_STATUS_INTERACTED; - m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; + //m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; m->flags |= capFlag; switch (capFlag) { - case MARIO_VANISH_CAP: - capTime = 600; - capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); - break; + case MARIO_VANISH_CAP: + capTime = 600; + capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); + break; - case MARIO_METAL_CAP: - capTime = 600; - capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); - break; + case MARIO_METAL_CAP: + capTime = 600; + capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); + break; - case MARIO_WING_CAP: - capTime = 1800; - capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); - break; + case MARIO_WING_CAP: + capTime = 1800; + capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); + break; } if (capTime > m->capTimer) { @@ -1612,9 +1719,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o } if ((m->action & ACT_FLAG_IDLE) || m->action == ACT_WALKING) { - m->flags |= MARIO_CAP_IN_HAND; + set_mario_action(m, ACT_PUTTING_ON_CAP, 0); - } else { + } + else { m->flags |= MARIO_CAP_ON_HEAD; } @@ -1622,7 +1730,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); if (capMusic != 0) { - play_cap_music(capMusic); + if (!(m->flags & MARIO_IS_SUPER)) + { + play_cap_music(capMusic); + } } return TRUE; @@ -1631,8 +1742,8 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o return FALSE; } -u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) { - const BehaviorScript *script = virtual_to_segmented(0x13, o->behavior); +u32 interact_grabbable(struct MarioState* m, u32 interactType, struct Object* o) { + void* script = virtual_to_segmented(0x13, o->behavior); if (o->oInteractionSubtype & INT_SUBTYPE_KICKABLE) { u32 interaction = determine_interaction(m, o); @@ -1660,11 +1771,10 @@ u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) if (script != bhvBowser) { push_mario_out_of_object(m, o, -5.0f); } - return FALSE; } -u32 mario_can_talk(struct MarioState *m, u32 arg) { +u32 mario_can_talk(struct MarioState* m, u32 arg) { s16 val6; if ((m->action & ACT_FLAG_IDLE) != 0x00000000) { @@ -1698,7 +1808,7 @@ u32 mario_can_talk(struct MarioState *m, u32 arg) { #define SIGN_RANGE 0x4000 #endif -u32 check_read_sign(struct MarioState *m, struct Object *o) { +u32 check_read_sign(struct MarioState* m, struct Object* o) { if ((m->input & READ_MASK) && mario_can_talk(m, 0) && object_facing_mario(m, o, SIGN_RANGE)) { s16 facingDYaw = (s16)(o->oMoveAngleYaw + 0x8000) - m->faceAngle[1]; if (facingDYaw >= -SIGN_RANGE && facingDYaw <= SIGN_RANGE) { @@ -1718,7 +1828,7 @@ u32 check_read_sign(struct MarioState *m, struct Object *o) { return FALSE; } -u32 check_npc_talk(struct MarioState *m, struct Object *o) { +u32 check_npc_talk(struct MarioState* m, struct Object* o) { if ((m->input & READ_MASK) && mario_can_talk(m, 1)) { s16 facingDYaw = mario_obj_angle_to_object(m, o) - m->faceAngle[1]; if (facingDYaw >= -0x4000 && facingDYaw <= 0x4000) { @@ -1736,21 +1846,24 @@ u32 check_npc_talk(struct MarioState *m, struct Object *o) { return FALSE; } -u32 interact_text(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +u32 interact_text(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { u32 interact = FALSE; if (o->oInteractionSubtype & INT_SUBTYPE_SIGN) { interact = check_read_sign(m, o); - } else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { + } + else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { interact = check_npc_talk(m, o); - } else { + } + else { push_mario_out_of_object(m, o, 2.0f); } return interact; } -void check_kick_or_punch_wall(struct MarioState *m) { +void check_kick_or_punch_wall(struct MarioState* m) { + if (m->flags & (MARIO_PUNCHING | MARIO_KICKING | MARIO_TRIPPING)) { Vec3f detector; detector[0] = m->pos[0] + 50.0f * sins(m->faceAngle[1]); @@ -1766,7 +1879,8 @@ void check_kick_or_punch_wall(struct MarioState *m) { mario_set_forward_vel(m, -48.0f); play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); m->particleFlags |= PARTICLE_TRIANGLE; - } else if (m->action & ACT_FLAG_AIR) { + } + else if (m->action & ACT_FLAG_AIR) { mario_set_forward_vel(m, -16.0f); play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); m->particleFlags |= PARTICLE_TRIANGLE; @@ -1775,7 +1889,7 @@ void check_kick_or_punch_wall(struct MarioState *m) { } } -void mario_process_interactions(struct MarioState *m) { +void mario_process_interactions(struct MarioState* m) { sDelayInvincTimer = FALSE; sInvulnerable = (m->action & ACT_FLAG_INVULNERABLE) || m->invincTimer != 0; @@ -1784,7 +1898,7 @@ void mario_process_interactions(struct MarioState *m) { for (i = 0; i < 31; i++) { u32 interactType = sInteractionHandlers[i].interactType; if (m->collidedObjInteractTypes & interactType) { - struct Object *object = mario_get_collided_object(m, interactType); + struct Object* object = mario_get_collided_object(m, interactType); m->collidedObjInteractTypes &= ~interactType; @@ -1814,7 +1928,7 @@ void mario_process_interactions(struct MarioState *m) { } } -void check_death_barrier(struct MarioState *m) { +void check_death_barrier(struct MarioState* m) { if (m->pos[1] < m->floorHeight + 2048.0f) { if (level_trigger_warp(m, WARP_OP_WARP_FLOOR) == 20 && !(m->flags & MARIO_UNKNOWN_18)) { play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); @@ -1822,18 +1936,48 @@ void check_death_barrier(struct MarioState *m) { } } -void check_lava_boost(struct MarioState *m) { +void check_lava_boost(struct MarioState* m) { + if (!(m->flags & MARIO_IS_SUPER)) + { if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) { - if (!(m->flags & MARIO_METAL_CAP)) { - m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; - } + + if (gDialogHealthSystem != SONIC_HEALTH) + { + + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; + + } + else + { + if (gMarioState->numCoins > 0) + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + } + else + { + m->health = 0xFF; + } + } + update_mario_sound_and_camera(m); drop_and_set_mario_action(m, ACT_LAVA_BOOST, 0); } + } } -void pss_begin_slide(UNUSED struct MarioState *m) { +void pss_begin_slide(UNUSED struct MarioState* m) { if (!(gHudDisplay.flags & HUD_DISPLAY_FLAG_TIMER)) { level_control_timer(TIMER_CONTROL_SHOW); level_control_timer(TIMER_CONTROL_START); @@ -1841,7 +1985,7 @@ void pss_begin_slide(UNUSED struct MarioState *m) { } } -void pss_end_slide(struct MarioState *m) { +void pss_end_slide(struct MarioState* m) { //! This flag isn't set on death or level entry, allowing double star spawn if (sPssSlideStarted) { u16 slideTime = level_control_timer(TIMER_CONTROL_STOP); @@ -1853,7 +1997,7 @@ void pss_end_slide(struct MarioState *m) { } } -void mario_handle_special_floors(struct MarioState *m) { +void mario_handle_special_floors(struct MarioState* m) { if ((m->action & ACT_GROUP_MASK) == ACT_GROUP_CUTSCENE) { return; } @@ -1862,29 +2006,29 @@ void mario_handle_special_floors(struct MarioState *m) { s32 floorType = m->floor->type; switch (floorType) { - case SURFACE_DEATH_PLANE: - case SURFACE_VERTICAL_WIND: - check_death_barrier(m); - break; + case SURFACE_DEATH_PLANE: + case SURFACE_VERTICAL_WIND: + check_death_barrier(m); + break; - case SURFACE_WARP: - level_trigger_warp(m, WARP_OP_WARP_FLOOR); - break; + case SURFACE_WARP: + level_trigger_warp(m, WARP_OP_WARP_FLOOR); + break; - case SURFACE_TIMER_START: - pss_begin_slide(m); - break; + case SURFACE_TIMER_START: + pss_begin_slide(m); + break; - case SURFACE_TIMER_END: - pss_end_slide(m); - break; + case SURFACE_TIMER_END: + pss_end_slide(m); + break; } if (!(m->action & ACT_FLAG_AIR) && !(m->action & ACT_FLAG_SWIMMING)) { switch (floorType) { - case SURFACE_BURNING: - check_lava_boost(m); - break; + case SURFACE_BURNING: + check_lava_boost(m); + break; } } } diff --git a/src/game/interaction.c.rej b/src/game/interaction.c.rej new file mode 100644 index 00000000..cd817eef --- /dev/null +++ b/src/game/interaction.c.rej @@ -0,0 +1,1808 @@ +diff a/src/game/interaction.c b/src/game/interaction.c (rejected hunks) +@@ -23,6 +23,7 @@ + #include "sm64.h" + #include "sound_init.h" + #include "rumble_init.h" ++#include "game/ingame_menu.h" + + #define INT_GROUND_POUND_OR_TWIRL (1 << 0) // 0x01 + #define INT_PUNCH (1 << 1) // 0x02 +@@ -46,39 +47,39 @@ + + u8 sDelayInvincTimer; + s16 sInvulnerable; +-u32 interact_coin(struct MarioState *, u32, struct Object *); +-u32 interact_water_ring(struct MarioState *, u32, struct Object *); +-u32 interact_star_or_key(struct MarioState *, u32, struct Object *); +-u32 interact_bbh_entrance(struct MarioState *, u32, struct Object *); +-u32 interact_warp(struct MarioState *, u32, struct Object *); +-u32 interact_warp_door(struct MarioState *, u32, struct Object *); +-u32 interact_door(struct MarioState *, u32, struct Object *); +-u32 interact_cannon_base(struct MarioState *, u32, struct Object *); +-u32 interact_igloo_barrier(struct MarioState *, u32, struct Object *); +-u32 interact_tornado(struct MarioState *, u32, struct Object *); +-u32 interact_whirlpool(struct MarioState *, u32, struct Object *); +-u32 interact_strong_wind(struct MarioState *, u32, struct Object *); +-u32 interact_flame(struct MarioState *, u32, struct Object *); +-u32 interact_snufit_bullet(struct MarioState *, u32, struct Object *); +-u32 interact_clam_or_bubba(struct MarioState *, u32, struct Object *); +-u32 interact_bully(struct MarioState *, u32, struct Object *); +-u32 interact_shock(struct MarioState *, u32, struct Object *); +-u32 interact_mr_blizzard(struct MarioState *, u32, struct Object *); +-u32 interact_hit_from_below(struct MarioState *, u32, struct Object *); +-u32 interact_bounce_top(struct MarioState *, u32, struct Object *); +-u32 interact_unknown_08(struct MarioState *, u32, struct Object *); +-u32 interact_damage(struct MarioState *, u32, struct Object *); +-u32 interact_breakable(struct MarioState *, u32, struct Object *); +-u32 interact_koopa_shell(struct MarioState *, u32, struct Object *); +-u32 interact_pole(struct MarioState *, u32, struct Object *); +-u32 interact_hoot(struct MarioState *, u32, struct Object *); +-u32 interact_cap(struct MarioState *, u32, struct Object *); +-u32 interact_grabbable(struct MarioState *, u32, struct Object *); +-u32 interact_text(struct MarioState *, u32, struct Object *); ++u32 interact_coin(struct MarioState*, u32, struct Object*); ++u32 interact_water_ring(struct MarioState*, u32, struct Object*); ++u32 interact_star_or_key(struct MarioState*, u32, struct Object*); ++u32 interact_bbh_entrance(struct MarioState*, u32, struct Object*); ++u32 interact_warp(struct MarioState*, u32, struct Object*); ++u32 interact_warp_door(struct MarioState*, u32, struct Object*); ++u32 interact_door(struct MarioState*, u32, struct Object*); ++u32 interact_cannon_base(struct MarioState*, u32, struct Object*); ++u32 interact_igloo_barrier(struct MarioState*, u32, struct Object*); ++u32 interact_tornado(struct MarioState*, u32, struct Object*); ++u32 interact_whirlpool(struct MarioState*, u32, struct Object*); ++u32 interact_strong_wind(struct MarioState*, u32, struct Object*); ++u32 interact_flame(struct MarioState*, u32, struct Object*); ++u32 interact_snufit_bullet(struct MarioState*, u32, struct Object*); ++u32 interact_clam_or_bubba(struct MarioState*, u32, struct Object*); ++u32 interact_bully(struct MarioState*, u32, struct Object*); ++u32 interact_shock(struct MarioState*, u32, struct Object*); ++u32 interact_mr_blizzard(struct MarioState*, u32, struct Object*); ++u32 interact_hit_from_below(struct MarioState*, u32, struct Object*); ++u32 interact_bounce_top(struct MarioState*, u32, struct Object*); ++u32 interact_unknown_08(struct MarioState*, u32, struct Object*); ++u32 interact_damage(struct MarioState*, u32, struct Object*); ++u32 interact_breakable(struct MarioState*, u32, struct Object*); ++u32 interact_koopa_shell(struct MarioState*, u32, struct Object*); ++u32 interact_pole(struct MarioState*, u32, struct Object*); ++u32 interact_hoot(struct MarioState*, u32, struct Object*); ++u32 interact_cap(struct MarioState*, u32, struct Object*); ++u32 interact_grabbable(struct MarioState*, u32, struct Object*); ++u32 interact_text(struct MarioState*, u32, struct Object*); + + struct InteractionHandler { + u32 interactType; +- u32 (*handler)(struct MarioState *, u32, struct Object *); ++ u32(*handler)(struct MarioState*, u32, struct Object*); + }; + + static struct InteractionHandler sInteractionHandlers[] = { +@@ -113,6 +114,7 @@ static struct InteractionHandler sInteractionHandlers[] = { + { INTERACT_CAP, interact_cap }, + { INTERACT_GRABBABLE, interact_grabbable }, + { INTERACT_TEXT, interact_text }, ++ + }; + + static u32 sForwardKnockbackActions[][3] = { +@@ -132,29 +134,31 @@ static u8 sJustTeleported = FALSE; + static u8 sPssSlideStarted = FALSE; + + /** +- * Returns the type of cap Mario is wearing. ++ * Returns the type of hat Mario is wearing. + */ +-u32 get_mario_cap_flag(struct Object *capObject) { +- const BehaviorScript *script = virtual_to_segmented(0x13, capObject->behavior); ++u32 get_mario_cap_flag(struct Object* capObject) { ++ void* script = virtual_to_segmented(0x13, capObject->behavior); + + if (script == bhvNormalCap) { + return MARIO_NORMAL_CAP; +- } else if (script == bhvMetalCap) { ++ } ++ else if (script == bhvMetalCap) { + return MARIO_METAL_CAP; +- } else if (script == bhvWingCap) { ++ } ++ else if (script == bhvWingCap) { + return MARIO_WING_CAP; +- } else if (script == bhvVanishCap) { ++ } ++ else if (script == bhvVanishCap) { + return MARIO_VANISH_CAP; + } + + return 0; + } +- + /** + * Returns true if the passed in object has a moving angle yaw + * in the angular range given towards Mario. + */ +-u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) { ++u32 object_facing_mario(struct MarioState* m, struct Object* o, s16 angleRange) { + f32 dx = m->pos[0] - o->oPosX; + f32 dz = m->pos[2] - o->oPosZ; + +@@ -168,7 +172,7 @@ u32 object_facing_mario(struct MarioState *m, struct Object *o, s16 angleRange) + return FALSE; + } + +-s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { ++s16 mario_obj_angle_to_object(struct MarioState* m, struct Object* o) { + f32 dx = o->oPosX - m->pos[0]; + f32 dz = o->oPosZ - m->pos[2]; + +@@ -179,7 +183,7 @@ s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o) { + * Determines Mario's interaction with a given object depending on their proximity, + * action, speed, and position. + */ +-u32 determine_interaction(struct MarioState *m, struct Object *o) { ++u32 determine_interaction(struct MarioState* m, struct Object* o) { + u32 interaction = 0; + u32 action = m->action; + +@@ -205,11 +209,13 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + interaction = INT_TRIP; + } + } +- } else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { ++ } ++ else if (action == ACT_GROUND_POUND || action == ACT_TWIRLING) { + if (m->vel[1] < 0.0f) { + interaction = INT_GROUND_POUND_OR_TWIRL; + } +- } else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { ++ } ++ else if (action == ACT_GROUND_POUND_LAND || action == ACT_TWIRL_LAND) { + // Neither ground pounding nor twirling change Mario's vertical speed on landing., + // so the speed check is nearly always true (perhaps not if you land while going upwards?) + // Additionally, actionState it set on each first thing in their action, so this is +@@ -217,13 +223,19 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + if (m->vel[1] < 0.0f && m->actionState == 0) { + interaction = INT_GROUND_POUND_OR_TWIRL; + } +- } else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { +- interaction = INT_SLIDE_KICK; +- } else if (action & ACT_FLAG_RIDING_SHELL) { ++ } ++ else if (action == ACT_SLIDE_KICK || action == ACT_SLIDE_KICK_SLIDE) { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else if (m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) { ++ ++ } ++ else if (action & ACT_FLAG_RIDING_SHELL || m->flags & MARIO_IS_SUPER) { + interaction = INT_FAST_ATTACK_OR_SHELL; + } ++ ++ else if ((m->forwardVel <= -26.0f || 26.0f <= m->forwardVel) && action != ACT_DIVE) { ++ interaction = INT_FAST_ATTACK_OR_SHELL; ++ ++ } + } + + // Prior to this, the interaction type could be overwritten. This requires, however, +@@ -234,50 +246,58 @@ u32 determine_interaction(struct MarioState *m, struct Object *o) { + if (m->pos[1] > o->oPosY) { + interaction = INT_HIT_FROM_ABOVE; + } +- } else { ++ } ++ else { + if (m->pos[1] < o->oPosY) { + interaction = INT_HIT_FROM_BELOW; + } + } + } + ++ if (action == ACT_DIVE) ++ { ++ interaction = INT_HIT_FROM_ABOVE; ++ } ++ + return interaction; + } + + /** + * Sets the interaction types for INT_STATUS_INTERACTED, INT_STATUS_WAS_ATTACKED + */ +-u32 attack_object(struct Object *o, s32 interaction) { ++u32 attack_object(struct Object* o, s32 interaction) { + u32 attackType = 0; + + switch (interaction) { +- case INT_GROUND_POUND_OR_TWIRL: +- attackType = ATTACK_GROUND_POUND_OR_TWIRL; +- break; +- case INT_PUNCH: +- attackType = ATTACK_PUNCH; +- break; +- case INT_KICK: +- case INT_TRIP: +- attackType = ATTACK_KICK_OR_TRIP; +- break; +- case INT_SLIDE_KICK: +- case INT_FAST_ATTACK_OR_SHELL: ++ case INT_GROUND_POUND_OR_TWIRL: ++ attackType = ATTACK_GROUND_POUND_OR_TWIRL; ++ break; ++ case INT_PUNCH: ++ attackType = ATTACK_PUNCH; ++ break; ++ case INT_KICK: ++ case INT_TRIP: ++ attackType = ATTACK_KICK_OR_TRIP; ++ break; ++ case INT_SLIDE_KICK: ++ attackType = ATTACK_FAST_ATTACK; ++ break; ++ case INT_FAST_ATTACK_OR_SHELL: + attackType = ATTACK_FAST_ATTACK; +- break; +- case INT_HIT_FROM_ABOVE: +- attackType = ATTACK_FROM_ABOVE; +- break; +- case INT_HIT_FROM_BELOW: +- attackType = ATTACK_FROM_BELOW; +- break; ++ break; ++ case INT_HIT_FROM_ABOVE: ++ attackType = ATTACK_FROM_ABOVE; ++ break; ++ case INT_HIT_FROM_BELOW: ++ attackType = ATTACK_FROM_BELOW; ++ break; + } + + o->oInteractStatus = attackType + (INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED); + return attackType; + } + +-void mario_stop_riding_object(struct MarioState *m) { ++void mario_stop_riding_object(struct MarioState* m) { + if (m->riddenObj != NULL) { + m->riddenObj->oInteractStatus = INT_STATUS_STOP_RIDING; + stop_shell_music(); +@@ -285,14 +305,14 @@ void mario_stop_riding_object(struct MarioState *m) { + } + } + +-void mario_grab_used_object(struct MarioState *m) { ++void mario_grab_used_object(struct MarioState* m) { + if (m->heldObj == NULL) { + m->heldObj = m->usedObj; + obj_set_held_state(m->heldObj, bhvCarrySomething3); + } + } + +-void mario_drop_held_object(struct MarioState *m) { ++void mario_drop_held_object(struct MarioState* m) { + if (m->heldObj != NULL) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + stop_shell_music(); +@@ -313,7 +333,7 @@ void mario_drop_held_object(struct MarioState *m) { + } + } + +-void mario_throw_held_object(struct MarioState *m) { ++void mario_throw_held_object(struct MarioState* m) { + if (m->heldObj != NULL) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + stop_shell_music(); +@@ -331,7 +351,7 @@ void mario_throw_held_object(struct MarioState *m) { + } + } + +-void mario_stop_riding_and_holding(struct MarioState *m) { ++void mario_stop_riding_and_holding(struct MarioState* m) { + mario_drop_held_object(m); + mario_stop_riding_object(m); + +@@ -341,40 +361,18 @@ void mario_stop_riding_and_holding(struct MarioState *m) { + } + } + +-u32 does_mario_have_normal_cap_on_head(struct MarioState *m) { +- return (m->flags & (MARIO_CAPS | MARIO_CAP_ON_HEAD)) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); ++u32 does_mario_have_hat(struct MarioState* m) { ++ return (m->flags & MARIO_CAP_FLAGS) == (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); + } + +-void mario_blow_off_cap(struct MarioState *m, f32 capSpeed) { +- struct Object *capObject; ++void mario_blow_off_cap(struct MarioState* m, f32 capSpeed) { ++ struct Object* capObject; + +- if (does_mario_have_normal_cap_on_head(m)) { +- save_file_set_cap_pos(m->pos[0], m->pos[1], m->pos[2]); + +- m->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- +- capObject = spawn_object(m->marioObj, MODEL_MARIOS_CAP, bhvNormalCap); +- +- capObject->oPosY += (m->action & ACT_FLAG_SHORT_HITBOX) ? 120.0f : 180.0f; +- capObject->oForwardVel = capSpeed; +- capObject->oMoveAngleYaw = (s16)(m->faceAngle[1] + 0x400); +- +- if (m->forwardVel < 0.0f) { +- capObject->oMoveAngleYaw = (s16)(capObject->oMoveAngleYaw + 0x8000); +- } +- } + } + + u32 mario_lose_cap_to_enemy(u32 arg) { +- u32 wasWearingCap = FALSE; +- +- if (does_mario_have_normal_cap_on_head(gMarioState)) { +- save_file_set_flags(arg == 1 ? SAVE_FLAG_CAP_ON_KLEPTO : SAVE_FLAG_CAP_ON_UKIKI); +- gMarioState->flags &= ~(MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- wasWearingCap = TRUE; +- } + +- return wasWearingCap; + } + + void mario_retrieve_cap(void) { +@@ -384,14 +382,15 @@ void mario_retrieve_cap(void) { + gMarioState->flags |= MARIO_NORMAL_CAP | MARIO_CAP_IN_HAND; + } + +-u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { ++u32 able_to_grab_object(struct MarioState* m, UNUSED struct Object* o) { + u32 action = m->action; + + if (action == ACT_DIVE_SLIDE || action == ACT_DIVE) { + if (!(o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { + return TRUE; + } +- } else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { ++ } ++ else if (action == ACT_PUNCHING || action == ACT_MOVE_PUNCHING) { + if (m->actionArg < 2) { + return TRUE; + } +@@ -400,9 +399,9 @@ u32 able_to_grab_object(struct MarioState *m, UNUSED struct Object *o) { + return FALSE; + } + +-struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) { ++struct Object* mario_get_collided_object(struct MarioState* m, u32 interactType) { + s32 i; +- struct Object *object; ++ struct Object* object; + + for (i = 0; i < m->marioObj->numCollidedObjs; i++) { + object = m->marioObj->collidedObjs[i]; +@@ -415,9 +414,13 @@ struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType) + return NULL; + } + +-u32 mario_check_object_grab(struct MarioState *m) { ++u32 mario_homing(struct MarioState* m) { ++ ++} ++ ++u32 mario_check_object_grab(struct MarioState* m) { + u32 result = FALSE; +- const BehaviorScript *script; ++ void* script; + + if (m->input & INPUT_INTERACT_OBJ_GRABBABLE) { + script = virtual_to_segmented(0x13, m->interactObj->behavior); +@@ -429,9 +432,10 @@ u32 mario_check_object_grab(struct MarioState *m) { + m->usedObj = m->interactObj; + result = set_mario_action(m, ACT_PICKING_UP_BOWSER, 0); + } +- } else { ++ } ++ else { + s16 facingDYaw = mario_obj_angle_to_object(m, m->interactObj) - m->faceAngle[1]; +- if (facingDYaw >= -0x2AAA && facingDYaw <= 0x2AAA) { ++ if (facingDYaw >= -0x8AAA && facingDYaw <= 0x8AAA) { + m->usedObj = m->interactObj; + + if (!(m->action & ACT_FLAG_AIR)) { +@@ -447,7 +451,7 @@ u32 mario_check_object_grab(struct MarioState *m) { + return result; + } + +-u32 bully_knock_back_mario(struct MarioState *mario) { ++u32 bully_knock_back_mario(struct MarioState* mario) { + struct BullyCollisionData marioData; + struct BullyCollisionData bullyData; + s16 newMarioYaw; +@@ -457,7 +461,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + + u32 bonkAction = 0; + +- struct Object *bully = mario->interactObj; ++ struct Object* bully = mario->interactObj; + + //! Conversion ratios multiply to more than 1 (could allow unbounded speed + // with bonk cancel - but this isn't important for regular bully battery) +@@ -465,14 +469,15 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + f32 marioToBullyRatio = 53.0f / bully->hitboxRadius; + + init_bully_collision_data(&marioData, mario->pos[0], mario->pos[2], mario->forwardVel, +- mario->faceAngle[1], bullyToMarioRatio, 52.0f); ++ mario->faceAngle[1], bullyToMarioRatio, 52.0f); + + init_bully_collision_data(&bullyData, bully->oPosX, bully->oPosZ, bully->oForwardVel, +- bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); ++ bully->oMoveAngleYaw, marioToBullyRatio, bully->hitboxRadius + 2.0f); + + if (mario->forwardVel != 0.0f) { + transfer_bully_speed(&marioData, &bullyData); +- } else { ++ } ++ else { + transfer_bully_speed(&bullyData, &marioData); + } + +@@ -498,13 +503,16 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + + if (mario->action & ACT_FLAG_AIR) { + bonkAction = ACT_BACKWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; + } +- } else { ++ } ++ else { + if (mario->action & ACT_FLAG_AIR) { + bonkAction = ACT_FORWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_FORWARD_GROUND_KB; + } + } +@@ -512,7 +520,7 @@ u32 bully_knock_back_mario(struct MarioState *mario) { + return bonkAction; + } + +-void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { ++void bounce_off_object(struct MarioState* m, struct Object* o, f32 velY) { + m->pos[1] = o->oPosY + o->hitboxHeight; + m->vel[1] = velY; + +@@ -521,12 +529,12 @@ void bounce_off_object(struct MarioState *m, struct Object *o, f32 velY) { + play_sound(SOUND_ACTION_BOUNCE_OFF_OBJECT, m->marioObj->header.gfx.cameraToObject); + } + +-void hit_object_from_below(struct MarioState *m, UNUSED struct Object *o) { ++void hit_object_from_below(struct MarioState* m, UNUSED struct Object* o) { + m->vel[1] = 0.0f; + set_camera_shake_from_hit(SHAKE_HIT_FROM_BELOW); + } + +-static u32 unused_determine_knockback_action(struct MarioState *m) { ++static u32 unused_determine_knockback_action(struct MarioState* m) { + u32 bonkAction; + s16 angleToObject = mario_obj_angle_to_object(m, m->interactObj); + s16 facingDYaw = angleToObject - m->faceAngle[1]; +@@ -541,14 +549,17 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { + m->forwardVel *= -1.0f; + if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + bonkAction = ACT_BACKWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_BACKWARD_GROUND_KB; + } +- } else { ++ } ++ else { + m->faceAngle[1] += 0x8000; + if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + bonkAction = ACT_FORWARD_AIR_KB; +- } else { ++ } ++ else { + bonkAction = ACT_SOFT_FORWARD_GROUND_KB; + } + } +@@ -556,7 +567,7 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { + return bonkAction; + } + +-u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { ++u32 determine_knockback_action(struct MarioState* m, UNUSED s32 arg) { + u32 bonkAction; + + s16 terrainIndex = 0; // 1 = air, 2 = water, 0 = default +@@ -568,15 +579,18 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + + if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { + terrainIndex = 2; +- } else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { ++ } ++ else if (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) { + terrainIndex = 1; + } + + if (remainingHealth < 0x100) { + strengthIndex = 2; +- } else if (m->interactObj->oDamageOrCoinValue >= 4) { ++ } ++ else if (m->interactObj->oDamageOrCoinValue >= 4) { + strengthIndex = 2; +- } else if (m->interactObj->oDamageOrCoinValue >= 2) { ++ } ++ else if (m->interactObj->oDamageOrCoinValue >= 2) { + strengthIndex = 1; + } + +@@ -591,12 +605,14 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + if (m->vel[1] < 20.0f) { + m->vel[1] = 20.0f; + } +- } else { ++ } ++ else { + if (m->vel[1] > 0.0f) { + m->vel[1] = 0.0f; + } + } +- } else { ++ } ++ else { + if (m->forwardVel < 16.0f) { + mario_set_forward_vel(m, 16.0f); + } +@@ -605,7 +621,8 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + if (-0x4000 <= facingDYaw && facingDYaw <= 0x4000) { + m->forwardVel *= -1.0f; + bonkAction = sBackwardKnockbackActions[terrainIndex][strengthIndex]; +- } else { ++ } ++ else { + m->faceAngle[1] += 0x8000; + bonkAction = sForwardKnockbackActions[terrainIndex][strengthIndex]; + } +@@ -613,7 +630,7 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { + return bonkAction; + } + +-void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 padding) { ++void push_mario_out_of_object(struct MarioState* m, struct Object* o, f32 padding) { + f32 minDistance = o->hitboxRadius + m->marioObj->hitboxRadius + padding; + + f32 offsetX = m->pos[0] - o->oPosX; +@@ -621,14 +638,15 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin + f32 distance = sqrtf(offsetX * offsetX + offsetZ * offsetZ); + + if (distance < minDistance) { +- struct Surface *floor; ++ struct Surface* floor; + s16 pushAngle; + f32 newMarioX; + f32 newMarioZ; + + if (distance == 0.0f) { + pushAngle = m->faceAngle[1]; +- } else { ++ } ++ else { + pushAngle = atan2s(offsetZ, offsetX); + } + +@@ -647,7 +665,7 @@ void push_mario_out_of_object(struct MarioState *m, struct Object *o, f32 paddin + } + } + +-void bounce_back_from_attack(struct MarioState *m, u32 interaction) { ++void bounce_back_from_attack(struct MarioState* m, u32 interaction) { + if (interaction & (INT_PUNCH | INT_KICK | INT_TRIP)) { + if (m->action == ACT_PUNCHING) { + m->action = ACT_MOVE_PUNCHING; +@@ -655,7 +673,8 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { + + if (m->action & ACT_FLAG_AIR) { + mario_set_forward_vel(m, -16.0f); +- } else { ++ } ++ else { + mario_set_forward_vel(m, -48.0f); + } + +@@ -668,7 +687,7 @@ void bounce_back_from_attack(struct MarioState *m, u32 interaction) { + } + } + +-u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { ++u32 should_push_or_pull_door(struct MarioState* m, struct Object* o) { + f32 dx = o->oPosX - m->pos[0]; + f32 dz = o->oPosZ - m->pos[2]; + +@@ -677,40 +696,78 @@ u32 should_push_or_pull_door(struct MarioState *m, struct Object *o) { + return (dYaw >= -0x4000 && dYaw <= 0x4000) ? 0x00000001 : 0x00000002; + } + +-u32 take_damage_from_interact_object(struct MarioState *m) { ++u32 take_damage_from_interact_object(struct MarioState* m) { + s32 shake; + s32 damage = m->interactObj->oDamageOrCoinValue; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (damage >= 4) { ++ shake = SHAKE_LARGE_DAMAGE; ++ } ++ else if (damage >= 2) { ++ shake = SHAKE_MED_DAMAGE; ++ } ++ else { ++ shake = SHAKE_SMALL_DAMAGE; ++ } + +- if (damage >= 4) { +- shake = SHAKE_LARGE_DAMAGE; +- } else if (damage >= 2) { +- shake = SHAKE_MED_DAMAGE; +- } else { +- shake = SHAKE_SMALL_DAMAGE; +- } ++ if (!(m->flags & MARIO_CAP_ON_HEAD)) { ++ damage += (damage + 1) / 2; ++ } + +- if (!(m->flags & MARIO_CAP_ON_HEAD)) { +- damage += (damage + 1) / 2; +- } ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { + +- if (m->flags & MARIO_METAL_CAP) { +- damage = 0; +- } ++ damage = 0; ++ } + +- m->hurtCounter += 4 * damage; + +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(shake); + ++ m->hurtCounter += 4 * damage; ++ } ++ } ++ if (!(m->flags & MARIO_METAL_CAP)) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ damage = 0; ++ shake = SHAKE_MED_DAMAGE; ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ shake = SHAKE_LARGE_DAMAGE; ++ m->health = 0xFF; ++ m->hurtCounter += 4 * damage; ++ } ++ } ++ } ++ } ++ ++ set_camera_shake_from_hit(shake); + return damage; + } + +-u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { ++u32 take_damage_and_knock_back(struct MarioState* m, struct Object* o) { + u32 damage; + +- if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) ++ if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; + m->interactObj = o; +@@ -727,45 +784,55 @@ u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { + + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), +- damage); ++ damage); + } + + return FALSE; + } + +-void reset_mario_pitch(struct MarioState *m) { ++void reset_mario_pitch(struct MarioState* m) { + if (m->action == ACT_WATER_JUMP || m->action == ACT_SHOT_FROM_CANNON || m->action == ACT_FLYING) { + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + m->faceAngle[0] = 0; + } + } + +-u32 interact_coin(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_coin(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + m->numCoins += o->oDamageOrCoinValue; + m->healCounter += 4 * o->oDamageOrCoinValue; + + o->oInteractStatus = INT_STATUS_INTERACTED; +- ++ //add 100 coins + if (COURSE_IS_MAIN_COURSE(gCurrCourseNum) && m->numCoins - o->oDamageOrCoinValue < 100 + && m->numCoins >= 100) { +- bhv_spawn_star_no_level_exit(6); ++ if (count_objects_with_behavior(bhvSpawnedStarNoLevelExit) < 1) { ++ if (m->coinstartotal > 6) ++ { ++ bhv_spawn_star_no_level_exit(6); ++ } ++ else ++ { ++ bhv_spawn_emerald_no_level_exit(6, m->coinstartotal); ++ } ++ } + } +-#ifdef VERSION_SH ++ + if (o->oDamageOrCoinValue >= 2) { +- queue_rumble_data(5, 80); ++ + } +-#endif + + return FALSE; + } + +-u32 interact_water_ring(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_water_ring(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + m->healCounter += 4 * o->oDamageOrCoinValue; ++ m->drownTimer = 0; ++ stop_drown_music(); + o->oInteractStatus = INT_STATUS_INTERACTED; + return FALSE; + } + +-u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_star_or_key(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 starIndex; + u32 starGrabAction = ACT_STAR_DANCE_EXIT; + u32 noExit = (o->oInteractionSubtype & INT_SUBTYPE_NO_EXIT) != 0; +@@ -773,9 +840,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + + if (m->health >= 0x100) { + mario_stop_riding_and_holding(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + + if (!noExit) { + m->hurtCounter = 0; +@@ -821,6 +886,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + play_sound(SOUND_MENU_STAR_SOUND, m->marioObj->header.gfx.cameraToObject); + #ifndef VERSION_JP + update_mario_sound_and_camera(m); ++ // func_802521A0 + #endif + + if (grandStar) { +@@ -833,7 +899,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_bbh_entrance(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (m->action != ACT_BBH_ENTER_SPIN && m->action != ACT_BBH_ENTER_JUMP) { + mario_stop_riding_and_holding(m); + +@@ -851,7 +917,7 @@ u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct + return FALSE; + } + +-u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_warp(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 action; + + if (o->oInteractionSubtype & INT_SUBTYPE_FADING_WARP) { +@@ -860,7 +926,8 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + if (action == ACT_TELEPORT_FADE_IN) { + sJustTeleported = TRUE; + +- } else if (!sJustTeleported) { ++ } ++ else if (!sJustTeleported) { + if (action == ACT_IDLE || action == ACT_PANTING || action == ACT_STANDING_AGAINST_WALL + || action == ACT_CROUCHING) { + m->interactObj = o; +@@ -870,26 +937,21 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + return set_mario_action(m, ACT_TELEPORT_FADE_OUT, 0); + } + } +- } else { ++ } ++ else { + if (m->action != ACT_EMERGE_FROM_PIPE) { + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + m->usedObj = o; + +-#ifdef VERSION_SH + if (o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8)) { + play_sound(SOUND_MENU_ENTER_PIPE, m->marioObj->header.gfx.cameraToObject); +- queue_rumble_data(15, 80); +- } else { ++ ++ } ++ else { + play_sound(SOUND_MENU_ENTER_HOLE, m->marioObj->header.gfx.cameraToObject); +- queue_rumble_data(12, 80); ++ + } +-#else +- play_sound(o->collisionData == segmented_to_virtual(warp_pipe_seg3_collision_03009AC8) +- ? SOUND_MENU_ENTER_PIPE +- : SOUND_MENU_ENTER_HOLE, +- m->marioObj->header.gfx.cameraToObject); +-#endif + + mario_stop_riding_object(m); + return set_mario_action(m, ACT_DISAPPEARED, (WARP_OP_WARP_OBJECT << 16) + 2); +@@ -899,7 +961,7 @@ u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_warp_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 doorAction = 0; + u32 saveFlags = save_file_get_flags(); + s16 warpDoorId = o->oBehParams >> 24; +@@ -941,7 +1003,8 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + if (doorAction == 0) { + if (actionArg & 0x00000001) { + doorAction = ACT_PULLING_DOOR; +- } else { ++ } ++ else { + doorAction = ACT_PUSHING_DOOR; + } + } +@@ -955,7 +1018,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj + return FALSE; + } + +-u32 get_door_save_file_flag(struct Object *door) { ++u32 get_door_save_file_flag(struct Object* door) { + u32 saveFileFlag = 0; + s16 requiredNumStars = door->oBehParams >> 24; + +@@ -963,39 +1026,41 @@ u32 get_door_save_file_flag(struct Object *door) { + s16 isPssDoor = door->oPosY > 500.0f; + + switch (requiredNumStars) { +- case 1: +- if (isPssDoor) { +- saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; +- } else { +- saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; +- } +- break; ++ case 1: ++ if (isPssDoor) { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_PSS_DOOR; ++ } ++ else { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_WF_DOOR; ++ } ++ break; + +- case 3: +- if (isCcmDoor) { +- saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; +- } else { +- saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; +- } +- break; ++ case 3: ++ if (isCcmDoor) { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_CCM_DOOR; ++ } ++ else { ++ saveFileFlag = SAVE_FLAG_UNLOCKED_JRB_DOOR; ++ } ++ break; + +- case 8: +- saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; +- break; ++ case 8: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITDW_DOOR; ++ break; + +- case 30: +- saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; +- break; ++ case 30: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_BITFS_DOOR; ++ break; + +- case 50: +- saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; +- break; ++ case 50: ++ saveFileFlag = SAVE_FLAG_UNLOCKED_50_STAR_DOOR; ++ break; + } + + return saveFileFlag; + } + +-u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_door(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s16 requiredNumStars = o->oBehParams >> 24; + s16 numStars = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); + +@@ -1007,7 +1072,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + + if (actionArg & 0x00000001) { + enterDoorAction = ACT_PULLING_DOOR; +- } else { ++ } ++ else { + enterDoorAction = ACT_PUSHING_DOOR; + } + +@@ -1024,28 +1090,29 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + } + + return set_mario_action(m, enterDoorAction, actionArg); +- } else if (!sDisplayingDoorText) { ++ } ++ else if (!sDisplayingDoorText) { + u32 text = DIALOG_022 << 16; + + switch (requiredNumStars) { +- case 1: +- text = DIALOG_024 << 16; +- break; +- case 3: +- text = DIALOG_025 << 16; +- break; +- case 8: +- text = DIALOG_026 << 16; +- break; +- case 30: +- text = DIALOG_027 << 16; +- break; +- case 50: +- text = DIALOG_028 << 16; +- break; +- case 70: +- text = DIALOG_029 << 16; +- break; ++ case 1: ++ text = DIALOG_024 << 16; ++ break; ++ case 3: ++ text = DIALOG_025 << 16; ++ break; ++ case 8: ++ text = DIALOG_026 << 16; ++ break; ++ case 30: ++ text = DIALOG_027 << 16; ++ break; ++ case 50: ++ text = DIALOG_028 << 16; ++ break; ++ case 70: ++ text = DIALOG_029 << 16; ++ break; + } + + text += requiredNumStars - numStars; +@@ -1053,7 +1120,8 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + sDisplayingDoorText = TRUE; + return set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, text); + } +- } else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { ++ } ++ else if (m->action == ACT_IDLE && sDisplayingDoorText == TRUE && requiredNumStars == 70) { + m->interactObj = o; + m->usedObj = o; + return set_mario_action(m, ACT_ENTERING_STAR_DOOR, should_push_or_pull_door(m, o)); +@@ -1062,7 +1130,7 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_cannon_base(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (m->action != ACT_IN_CANNON) { + mario_stop_riding_and_holding(m); + o->oInteractStatus = INT_STATUS_INTERACTED; +@@ -1074,7 +1142,7 @@ u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_igloo_barrier(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + //! Sets used object without changing action (LOTS of interesting glitches, + // but unfortunately the igloo barrier is the only object with this interaction + // type) +@@ -1084,8 +1152,8 @@ u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct + return FALSE; + } + +-u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- struct Object *marioObj = m->marioObj; ++u32 interact_tornado(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ struct Object* marioObj = m->marioObj; + + if (m->action != ACT_TORNADO_TWIRLING && m->action != ACT_SQUISHED) { + mario_stop_riding_and_holding(m); +@@ -1100,17 +1168,16 @@ u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Objec + marioObj->oMarioTornadoPosY = m->pos[1] - o->oPosY; + + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(30, 60); +-#endif ++ ++ + return set_mario_action(m, ACT_TORNADO_TWIRLING, m->action == ACT_TWIRLING); + } + + return FALSE; + } + +-u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- struct Object *marioObj = m->marioObj; ++u32 interact_whirlpool(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ struct Object* marioObj = m->marioObj; + + if (m->action != ACT_CAUGHT_IN_WHIRLPOOL) { + mario_stop_riding_and_holding(m); +@@ -1123,17 +1190,16 @@ u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Obj + marioObj->oMarioWhirlpoolPosY = m->pos[1] - o->oPosY; + + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(30, 60); +-#endif ++ ++ + return set_mario_action(m, ACT_CAUGHT_IN_WHIRLPOOL, 0); + } + + return FALSE; + } + +-u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- UNUSED struct Object *marioObj = m->marioObj; ++u32 interact_strong_wind(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ UNUSED struct Object* marioObj = m->marioObj; + + if (m->action != ACT_GETTING_BLOWN) { + mario_stop_riding_and_holding(m); +@@ -1154,21 +1220,45 @@ u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_flame(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 burningAction = ACT_BURNING_JUMP; + +- if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) ++ if (!sInvulnerable && !(m->flags & MARIO_METAL_CAP) && !(m->flags & MARIO_VANISH_CAP) && !(m->flags & MARIO_IS_SUPER) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + + if ((m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) + || m->waterLevel - m->pos[1] > 50.0f) { + play_sound(SOUND_GENERAL_FLAME_OUT, m->marioObj->header.gfx.cameraToObject); +- } else { ++ } ++ else { + m->marioObj->oMarioBurnTimer = 0; + update_mario_sound_and_camera(m); + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); +@@ -1184,12 +1274,13 @@ u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object + return FALSE; + } + +-u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_snufit_bullet(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP)) { +- if (m->flags & MARIO_METAL_CAP) { ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; + play_sound(SOUND_ACTION_UNKNOWN458, m->marioObj->header.gfx.cameraToObject); +- } else { ++ } ++ else { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_ATTACKED_MARIO; + m->interactObj = o; + take_damage_from_interact_object(m); +@@ -1198,49 +1289,53 @@ u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct + update_mario_sound_and_camera(m); + + return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), +- o->oDamageOrCoinValue); ++ o->oDamageOrCoinValue); + } + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_clam_or_bubba(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_clam_or_bubba(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (o->oInteractionSubtype & INT_SUBTYPE_EATS_MARIO) { + o->oInteractStatus = INT_STATUS_INTERACTED; + m->interactObj = o; + return set_mario_action(m, ACT_EATEN_BY_BUBBA, 0); +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return TRUE; + } + +-u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++ ++ ++ ++u32 interact_bully(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + UNUSED u32 unused; + + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ if ((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER) ) { ++ + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ else { + interaction = determine_interaction(m, o); + } + + m->interactObj = o; ++ m->homingObj = NULL; ++ + + if (interaction & INT_ATTACK_NOT_FROM_BELOW) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + push_mario_out_of_object(m, o, 5.0f); + + m->forwardVel = -16.0f; +@@ -1263,16 +1358,15 @@ u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object + + push_mario_out_of_object(m, o, 5.0f); + drop_and_set_mario_action(m, bully_knock_back_mario(m), 0); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ + return TRUE; + } + + return FALSE; + } + +-u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_shock(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!sInvulnerable && !(m->flags & MARIO_VANISH_CAP) + && !(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + u32 actionArg = (m->action & (ACT_FLAG_AIR | ACT_FLAG_ON_POLE | ACT_FLAG_HANGING)) == 0; +@@ -1282,13 +1376,12 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object + + take_damage_from_interact_object(m); + play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(70, 60); +-#endif ++ + + if (m->action & (ACT_FLAG_SWIMMING | ACT_FLAG_METAL_WATER)) { + return drop_and_set_mario_action(m, ACT_WATER_SHOCKED, 0); +- } else { ++ } ++ else { + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, ACT_SHOCKED, actionArg); + } +@@ -1297,18 +1390,17 @@ u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-static u32 interact_stub(UNUSED struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++static u32 interact_stub(UNUSED struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } + return FALSE; + } + +-u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_mr_blizzard(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (take_damage_and_knock_back(m, o)) { + return TRUE; + } +@@ -1316,24 +1408,25 @@ u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct O + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_hit_from_below(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + UNUSED u32 unused; + + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { ++ if (m->action != ACT_DIVE ) ++ { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ } ++ else { + interaction = determine_interaction(m, o); + } + + if (interaction & INT_ANY_ATTACK) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + attack_object(o, interaction); + bounce_back_from_attack(m, interaction); + +@@ -1349,33 +1442,39 @@ u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struc + play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); + #endif + return drop_and_set_mario_action(m, ACT_TWIRLING, 0); +- } else { ++ } ++ else { + bounce_off_object(m, o, 30.0f); + } + } +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_bounce_top(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interaction; +- if (m->flags & MARIO_METAL_CAP) { ++ struct Object* goomba = o; ++ if (goomba->behavior == bhvGoomba) ++ { ++ m->interactObj = o; ++ } ++ ++ if (((m->flags & MARIO_METAL_CAP) || (m->flags & MARIO_IS_SUPER)) && m->action != ACT_DIVE) { + interaction = INT_FAST_ATTACK_OR_SHELL; +- } else { ++ } ++ else { + interaction = determine_interaction(m, o); + } + + if (interaction & INT_ATTACK_NOT_FROM_BELOW) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + attack_object(o, interaction); + bounce_back_from_attack(m, interaction); + +@@ -1387,39 +1486,40 @@ u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Ob + play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); + #endif + return drop_and_set_mario_action(m, ACT_TWIRLING, 0); +- } else { ++ } ++ else { + bounce_off_object(m, o, 30.0f); + } + } +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_unknown_08(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_unknown_08(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interaction = determine_interaction(m, o); + + if (interaction & INT_PUNCH) { + o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED | ATTACK_PUNCH; + bounce_back_from_attack(m, interaction); +- } else if (take_damage_and_knock_back(m, o)) { ++ } ++ else if (take_damage_and_knock_back(m, o)) { + return TRUE; + } + + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_damage(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (take_damage_and_knock_back(m, o)) { + return TRUE; + } +@@ -1427,20 +1527,27 @@ u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object + if (!(o->oInteractionSubtype & INT_SUBTYPE_DELAY_INVINCIBILITY)) { + sDelayInvincTimer = TRUE; + } +- + return FALSE; + } + +-u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { +- u32 interaction = determine_interaction(m, o); ++u32 interact_breakable(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { ++ void* script = virtual_to_segmented(0x13, o->behavior); + +- if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { +- attack_object(o, interaction); +- bounce_back_from_attack(m, interaction); ++ u32 interaction = determine_interaction(m, o); ++ if (m->forwardVel >= 19.0f) ++ { ++ if (gMarioState->action == ACT_SLIDE_KICK_SLIDE || gMarioState->action == ACT_SLIDE_KICK) ++ { ++ o->oInteractStatus = INT_STATUS_INTERACTED | INT_STATUS_WAS_ATTACKED; ++ } ++ } ++ if (interaction & INT_ATTACK_NOT_WEAK_FROM_ABOVE) { ++ attack_object(o, interaction); ++ bounce_back_from_attack(m, interaction); + +- m->interactObj = o; ++ m->interactObj = o; + +- switch (interaction) { ++ switch (interaction) { + case INT_HIT_FROM_ABOVE: + bounce_off_object(m, o, 30.0f); //! Not in the 0x8F mask + break; +@@ -1448,15 +1555,18 @@ u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Obj + case INT_HIT_FROM_BELOW: + hit_object_from_below(m, o); + break; +- } + +- return TRUE; +- } ++ } + +- return FALSE; ++ return TRUE; ++ ++ } ++ ++ return FALSE; ++ + } + +-u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_koopa_shell(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if (!(m->action & ACT_FLAG_RIDING_SHELL)) { + u32 interaction = determine_interaction(m, o); + +@@ -1482,7 +1592,7 @@ u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct O + return FALSE; + } + +-u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 check_object_grab_mario(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + if ((!(m->action & (ACT_FLAG_AIR | ACT_FLAG_INVULNERABLE | ACT_FLAG_ATTACKING)) || !sInvulnerable) + && (o->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO)) { + if (object_facing_mario(m, o, 0x2AAA)) { +@@ -1495,9 +1605,7 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc + + update_mario_sound_and_camera(m); + play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + return set_mario_action(m, ACT_GRABBED, 0); + } + } +@@ -1506,17 +1614,17 @@ u32 check_object_grab_mario(struct MarioState *m, UNUSED u32 interactType, struc + return FALSE; + } + +-u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_pole(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s32 actionId = m->action & ACT_ID_MASK; + if (actionId >= 0x080 && actionId < 0x0A0) { + if (!(m->prevAction & ACT_FLAG_ON_POLE) || m->usedObj != o) { + #ifdef VERSION_SH + f32 velConv = m->forwardVel; // conserve the velocity. +- struct Object *marioObj = m->marioObj; ++ struct Object* marioObj = m->marioObj; + u32 lowSpeed; + #else + u32 lowSpeed = (m->forwardVel <= 10.0f); +- struct Object *marioObj = m->marioObj; ++ struct Object* marioObj = m->marioObj; + #endif + + mario_stop_riding_and_holding(m); +@@ -1546,9 +1654,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * + marioObj->oMarioPoleYawVel = (s32)(m->forwardVel * 0x100 + 0x1000); + #endif + reset_mario_pitch(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + return set_mario_action(m, ACT_GRAB_POLE_FAST, 0); + } + } +@@ -1556,7 +1662,7 @@ u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_hoot(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + s32 actionId = m->action & ACT_ID_MASK; + + //! Can pause to advance the global timer without falling too far, allowing +@@ -1568,9 +1674,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * + m->interactObj = o; + m->usedObj = o; + +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + update_mario_sound_and_camera(m); + return set_mario_action(m, ACT_RIDING_HOOT, 0); + } +@@ -1578,7 +1682,7 @@ u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object * + return FALSE; + } + +-u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_cap(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 capFlag = get_mario_cap_flag(o); + u16 capMusic = 0; + u16 capTime = 0; +@@ -1587,24 +1691,24 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + m->interactObj = o; + o->oInteractStatus = INT_STATUS_INTERACTED; + +- m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; ++ //m->flags &= ~MARIO_CAP_ON_HEAD & ~MARIO_CAP_IN_HAND; + m->flags |= capFlag; + + switch (capFlag) { +- case MARIO_VANISH_CAP: +- capTime = 600; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +- break; ++ case MARIO_VANISH_CAP: ++ capTime = 600; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ break; + +- case MARIO_METAL_CAP: +- capTime = 600; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); +- break; ++ case MARIO_METAL_CAP: ++ capTime = 600; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP); ++ break; + +- case MARIO_WING_CAP: +- capTime = 1800; +- capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); +- break; ++ case MARIO_WING_CAP: ++ capTime = 1800; ++ capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ break; + } + + if (capTime > m->capTimer) { +@@ -1612,9 +1716,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + } + + if ((m->action & ACT_FLAG_IDLE) || m->action == ACT_WALKING) { +- m->flags |= MARIO_CAP_IN_HAND; ++ + set_mario_action(m, ACT_PUTTING_ON_CAP, 0); +- } else { ++ } ++ else { + m->flags |= MARIO_CAP_ON_HEAD; + } + +@@ -1622,7 +1727,10 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); + + if (capMusic != 0) { +- play_cap_music(capMusic); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ play_cap_music(capMusic); ++ } + } + + return TRUE; +@@ -1631,8 +1739,8 @@ u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o + return FALSE; + } + +-u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) { +- const BehaviorScript *script = virtual_to_segmented(0x13, o->behavior); ++u32 interact_grabbable(struct MarioState* m, u32 interactType, struct Object* o) { ++ void* script = virtual_to_segmented(0x13, o->behavior); + + if (o->oInteractionSubtype & INT_SUBTYPE_KICKABLE) { + u32 interaction = determine_interaction(m, o); +@@ -1660,11 +1768,10 @@ u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o) + if (script != bhvBowser) { + push_mario_out_of_object(m, o, -5.0f); + } +- + return FALSE; + } + +-u32 mario_can_talk(struct MarioState *m, u32 arg) { ++u32 mario_can_talk(struct MarioState* m, u32 arg) { + s16 val6; + + if ((m->action & ACT_FLAG_IDLE) != 0x00000000) { +@@ -1698,7 +1805,7 @@ u32 mario_can_talk(struct MarioState *m, u32 arg) { + #define SIGN_RANGE 0x4000 + #endif + +-u32 check_read_sign(struct MarioState *m, struct Object *o) { ++u32 check_read_sign(struct MarioState* m, struct Object* o) { + if ((m->input & READ_MASK) && mario_can_talk(m, 0) && object_facing_mario(m, o, SIGN_RANGE)) { + s16 facingDYaw = (s16)(o->oMoveAngleYaw + 0x8000) - m->faceAngle[1]; + if (facingDYaw >= -SIGN_RANGE && facingDYaw <= SIGN_RANGE) { +@@ -1718,7 +1825,7 @@ u32 check_read_sign(struct MarioState *m, struct Object *o) { + return FALSE; + } + +-u32 check_npc_talk(struct MarioState *m, struct Object *o) { ++u32 check_npc_talk(struct MarioState* m, struct Object* o) { + if ((m->input & READ_MASK) && mario_can_talk(m, 1)) { + s16 facingDYaw = mario_obj_angle_to_object(m, o) - m->faceAngle[1]; + if (facingDYaw >= -0x4000 && facingDYaw <= 0x4000) { +@@ -1736,21 +1843,24 @@ u32 check_npc_talk(struct MarioState *m, struct Object *o) { + return FALSE; + } + +-u32 interact_text(struct MarioState *m, UNUSED u32 interactType, struct Object *o) { ++u32 interact_text(struct MarioState* m, UNUSED u32 interactType, struct Object* o) { + u32 interact = FALSE; + + if (o->oInteractionSubtype & INT_SUBTYPE_SIGN) { + interact = check_read_sign(m, o); +- } else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { ++ } ++ else if (o->oInteractionSubtype & INT_SUBTYPE_NPC) { + interact = check_npc_talk(m, o); +- } else { ++ } ++ else { + push_mario_out_of_object(m, o, 2.0f); + } + + return interact; + } + +-void check_kick_or_punch_wall(struct MarioState *m) { ++void check_kick_or_punch_wall(struct MarioState* m) { ++ + if (m->flags & (MARIO_PUNCHING | MARIO_KICKING | MARIO_TRIPPING)) { + Vec3f detector; + detector[0] = m->pos[0] + 50.0f * sins(m->faceAngle[1]); +@@ -1766,7 +1876,8 @@ void check_kick_or_punch_wall(struct MarioState *m) { + mario_set_forward_vel(m, -48.0f); + play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); + m->particleFlags |= PARTICLE_TRIANGLE; +- } else if (m->action & ACT_FLAG_AIR) { ++ } ++ else if (m->action & ACT_FLAG_AIR) { + mario_set_forward_vel(m, -16.0f); + play_sound(SOUND_ACTION_HIT_2, m->marioObj->header.gfx.cameraToObject); + m->particleFlags |= PARTICLE_TRIANGLE; +@@ -1775,7 +1886,7 @@ void check_kick_or_punch_wall(struct MarioState *m) { + } + } + +-void mario_process_interactions(struct MarioState *m) { ++void mario_process_interactions(struct MarioState* m) { + sDelayInvincTimer = FALSE; + sInvulnerable = (m->action & ACT_FLAG_INVULNERABLE) || m->invincTimer != 0; + +@@ -1784,7 +1895,7 @@ void mario_process_interactions(struct MarioState *m) { + for (i = 0; i < 31; i++) { + u32 interactType = sInteractionHandlers[i].interactType; + if (m->collidedObjInteractTypes & interactType) { +- struct Object *object = mario_get_collided_object(m, interactType); ++ struct Object* object = mario_get_collided_object(m, interactType); + + m->collidedObjInteractTypes &= ~interactType; + +@@ -1814,7 +1925,7 @@ void mario_process_interactions(struct MarioState *m) { + } + } + +-void check_death_barrier(struct MarioState *m) { ++void check_death_barrier(struct MarioState* m) { + if (m->pos[1] < m->floorHeight + 2048.0f) { + if (level_trigger_warp(m, WARP_OP_WARP_FLOOR) == 20 && !(m->flags & MARIO_UNKNOWN_18)) { + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +@@ -1822,18 +1933,48 @@ void check_death_barrier(struct MarioState *m) { + } + } + +-void check_lava_boost(struct MarioState *m) { ++void check_lava_boost(struct MarioState* m) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { + if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +- } ++ ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ ++ } ++ else ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ + + update_mario_sound_and_camera(m); + drop_and_set_mario_action(m, ACT_LAVA_BOOST, 0); + } ++ } + } + +-void pss_begin_slide(UNUSED struct MarioState *m) { ++void pss_begin_slide(UNUSED struct MarioState* m) { + if (!(gHudDisplay.flags & HUD_DISPLAY_FLAG_TIMER)) { + level_control_timer(TIMER_CONTROL_SHOW); + level_control_timer(TIMER_CONTROL_START); +@@ -1841,7 +1982,7 @@ void pss_begin_slide(UNUSED struct MarioState *m) { + } + } + +-void pss_end_slide(struct MarioState *m) { ++void pss_end_slide(struct MarioState* m) { + //! This flag isn't set on death or level entry, allowing double star spawn + if (sPssSlideStarted) { + u16 slideTime = level_control_timer(TIMER_CONTROL_STOP); +@@ -1853,7 +1994,7 @@ void pss_end_slide(struct MarioState *m) { + } + } + +-void mario_handle_special_floors(struct MarioState *m) { ++void mario_handle_special_floors(struct MarioState* m) { + if ((m->action & ACT_GROUP_MASK) == ACT_GROUP_CUTSCENE) { + return; + } diff --git a/src/game/interaction.h b/src/game/interaction.h index dd27aad8..1c081e9f 100644 --- a/src/game/interaction.h +++ b/src/game/interaction.h @@ -81,6 +81,7 @@ #define INT_STATUS_ATTACK_MASK 0x000000FF #define INT_STATUS_HOOT_GRABBED_BY_MARIO (1 << 0) /* 0x00000001 */ +//grabbale and door #define INT_STATUS_MARIO_UNK1 (1 << 1) /* 0x00000002 */ #define INT_STATUS_MARIO_UNK2 (1 << 2) /* 0x00000004 */ #define INT_STATUS_MARIO_DROP_OBJECT (1 << 3) /* 0x00000008 */ diff --git a/src/game/level_update.c b/src/game/level_update.c index 4ecb9024..421b3053 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -1,3 +1,5 @@ +#include "texscroll.h" + #include #include "sm64.h" @@ -109,10 +111,10 @@ const char *credits15[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KA const char *credits16[] = { "5SCREEN TEXT WRITER", "TRANSLATION", "LESLIE SWAN", "MINA AKINO", "HIRO YAMADA" }; // ...in order to make room for these 2 new lines #else // VERSION_EU -const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", "KOJI KONDO", - "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; -const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", "SATORU TAKIZAWA", - "MASANAO ARIMOTO" }; +const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", + "KOJI KONDO", "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; +const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", + "SATORU TAKIZAWA", "MASANAO ARIMOTO" }; const char *credits11[] = { "3TECHNICAL SUPPORT", "TAKAO SAWANO", "HIROHITO YOSHIMOTO", "HIROTO YADA" }; const char *credits12[] = { "1TECHNICAL SUPPORT", "SGI N64 PROJECT STAFF" }; const char *credits13[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KATO" }; @@ -126,15 +128,14 @@ const char *credits16[] = { "4SCREEN TEXT WRITER", "GERMAN TRANSLATION", "THOMAS const char *credits17[] = { "4MARIO VOICE", "PEACH VOICE", "CHARLES MARTINET", "LESLIE SWAN" }; const char *credits18[] = { "3SPECIAL THANKS TO", "EAD STAFF", "ALL NINTENDO PERSONNEL", #ifdef VERSION_US - "MARIO CLUB STAFF" }; + "MARIO CLUB STAFF" }; #else // VERSION_EU - "SUPER MARIO CLUB STAFF" }; + "SUPER MARIO CLUB STAFF" }; #endif const char *credits19[] = { "1PRODUCER", "SHIGERU MIYAMOTO" }; const char *credits20[] = { "1EXECUTIVE PRODUCER", "HIROSHI YAMAUCHI" }; #endif - struct CreditsEntry sCreditsSequence[] = { { LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 8000, 0 }, NULL }, { LEVEL_BOB, 1, 1, 117, { 713, 3918, -3889 }, credits01 }, @@ -442,8 +443,7 @@ void init_mario_after_warp(void) { #ifndef VERSION_JP if (gCurrLevelNum == LEVEL_BOB - && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) - && sTimerRunning) { + && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) && sTimerRunning) { play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE), 0); } #endif @@ -713,7 +713,8 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { switch (warpOp) { case WARP_OP_DEMO_NEXT: - case WARP_OP_DEMO_END: sDelayedWarpTimer = 20; // Must be one line to match on -O2 + case WARP_OP_DEMO_END: + sDelayedWarpTimer = 20; // Must be one line to match on -O2 sSourceWarpNodeId = WARP_NODE_F0; gSavedCourseNum = COURSE_NONE; val04 = FALSE; @@ -1137,7 +1138,8 @@ s32 update_level(void) { switch (sCurrPlayMode) { case PLAY_MODE_NORMAL: - changeLevel = play_mode_normal(); + changeLevel = play_mode_normal(); scroll_textures(); + scroll_textures(); break; case PLAY_MODE_PAUSED: changeLevel = play_mode_paused(); @@ -1291,6 +1293,7 @@ s32 lvl_set_current_level(UNUSED s16 arg0, s32 levelNum) { sWarpCheckpointActive = FALSE; gCurrLevelNum = levelNum; gCurrCourseNum = gLevelToCourseNumTable[levelNum - 1]; + if (gCurrLevelNum == LEVEL_CASTLE_GROUNDS) return 0; if (gCurrDemoInput != NULL || gCurrCreditsEntry != NULL || gCurrCourseNum == COURSE_NONE) { return 0; diff --git a/src/game/level_update.c.rej b/src/game/level_update.c.rej new file mode 100644 index 00000000..a7fafad2 --- /dev/null +++ b/src/game/level_update.c.rej @@ -0,0 +1,78 @@ +diff a/src/game/level_update.c b/src/game/level_update.c (rejected hunks) +@@ -1,3 +1,5 @@ ++#include "texscroll.h" ++ + #include + + #include "sm64.h" +@@ -109,10 +111,10 @@ const char *credits15[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KA + const char *credits16[] = { "5SCREEN TEXT WRITER", "TRANSLATION", "LESLIE SWAN", "MINA AKINO", + "HIRO YAMADA" }; // ...in order to make room for these 2 new lines + #else // VERSION_EU +-const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", "KOJI KONDO", +- "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; +-const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", "SATORU TAKIZAWA", +- "MASANAO ARIMOTO" }; ++const char *credits09[] = { "7SOUND COMPOSER", "SOUND EFFECTS", "SOUND PROGRAMMER", ++ "KOJI KONDO", "YOJI INAGAKI", "HIDEAKI SHIMIZU" }; ++const char *credits10[] = { "63-D ANIMATORS", "ADDITIONAL GRAPHICS", "YOSHIAKI KOIZUMI", ++ "SATORU TAKIZAWA", "MASANAO ARIMOTO" }; + const char *credits11[] = { "3TECHNICAL SUPPORT", "TAKAO SAWANO", "HIROHITO YOSHIMOTO", "HIROTO YADA" }; + const char *credits12[] = { "1TECHNICAL SUPPORT", "SGI N64 PROJECT STAFF" }; + const char *credits13[] = { "2PROGRESS MANAGEMENT", "KIMIYOSHI FUKUI", "KEIZO KATO" }; +@@ -126,15 +128,14 @@ const char *credits16[] = { "4SCREEN TEXT WRITER", "GERMAN TRANSLATION", "THOMAS + const char *credits17[] = { "4MARIO VOICE", "PEACH VOICE", "CHARLES MARTINET", "LESLIE SWAN" }; + const char *credits18[] = { "3SPECIAL THANKS TO", "EAD STAFF", "ALL NINTENDO PERSONNEL", + #ifdef VERSION_US +- "MARIO CLUB STAFF" }; ++ "MARIO CLUB STAFF" }; + #else // VERSION_EU +- "SUPER MARIO CLUB STAFF" }; ++ "SUPER MARIO CLUB STAFF" }; + #endif + const char *credits19[] = { "1PRODUCER", "SHIGERU MIYAMOTO" }; + const char *credits20[] = { "1EXECUTIVE PRODUCER", "HIROSHI YAMAUCHI" }; + #endif + +- + struct CreditsEntry sCreditsSequence[] = { + { LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 8000, 0 }, NULL }, + { LEVEL_BOB, 1, 1, 117, { 713, 3918, -3889 }, credits01 }, +@@ -442,8 +443,7 @@ void init_mario_after_warp(void) { + + #ifndef VERSION_JP + if (gCurrLevelNum == LEVEL_BOB +- && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) +- && sTimerRunning) { ++ && get_current_background_music() != SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE) && sTimerRunning) { + play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE), 0); + } + #endif +@@ -713,7 +713,8 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { + + switch (warpOp) { + case WARP_OP_DEMO_NEXT: +- case WARP_OP_DEMO_END: sDelayedWarpTimer = 20; // Must be one line to match on -O2 ++ case WARP_OP_DEMO_END: ++ sDelayedWarpTimer = 20; // Must be one line to match on -O2 + sSourceWarpNodeId = WARP_NODE_F0; + gSavedCourseNum = COURSE_NONE; + val04 = FALSE; +@@ -1137,7 +1138,8 @@ s32 update_level(void) { + + switch (sCurrPlayMode) { + case PLAY_MODE_NORMAL: +- changeLevel = play_mode_normal(); ++ changeLevel = play_mode_normal(); scroll_textures(); ++ scroll_textures(); + break; + case PLAY_MODE_PAUSED: + changeLevel = play_mode_paused(); +@@ -1291,6 +1293,7 @@ s32 lvl_set_current_level(UNUSED s16 arg0, s32 levelNum) { + sWarpCheckpointActive = FALSE; + gCurrLevelNum = levelNum; + gCurrCourseNum = gLevelToCourseNumTable[levelNum - 1]; ++ if (gCurrLevelNum == LEVEL_CASTLE_GROUNDS) return 0; + + if (gCurrDemoInput != NULL || gCurrCreditsEntry != NULL || gCurrCourseNum == COURSE_NONE) { + return 0; diff --git a/src/game/mario.c b/src/game/mario.c index 96df7938..c5d486dd 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -2,6 +2,7 @@ #include "sm64.h" #include "area.h" +#include "audio/data.h" #include "audio/external.h" #include "behavior_actions.h" #include "behavior_data.h" @@ -25,6 +26,7 @@ #include "mario_misc.h" #include "mario_step.h" #include "memory.h" +#include "ingame_menu.h" #include "object_fields.h" #include "object_helpers.h" #include "object_list_processor.h" @@ -32,6 +34,7 @@ #include "save_file.h" #include "sound_init.h" #include "rumble_init.h" +#include "seq_ids.h" u32 unused80339F10; s8 filler80339F1C[20]; @@ -40,10 +43,14 @@ s8 filler80339F1C[20]; * ANIMATIONS * **************************************************/ + + + /** * Checks if Mario's animation has reached its end point. */ s32 is_anim_at_end(struct MarioState *m) { + struct Object *o = m->marioObj; return (o->header.gfx.animInfo.animFrame + 1) == o->header.gfx.animInfo.curAnim->loopEnd; @@ -238,7 +245,7 @@ s16 return_mario_anim_y_translation(struct MarioState *m) { * Plays a sound if if Mario doesn't have the flag being checked. */ void play_sound_if_no_flag(struct MarioState *m, u32 soundBits, u32 flags) { - if (!(m->flags & flags)) { + if ((m->flags & flags) == 0) { play_sound(soundBits, m->marioObj->header.gfx.cameraToObject); m->flags |= flags; } @@ -255,11 +262,12 @@ void play_mario_jump_sound(struct MarioState *m) { m->marioObj->header.gfx.cameraToObject); } else { #endif - play_sound(SOUND_MARIO_YAH_WAH_HOO + ((gAudioRandom % 3) << 16), + play_sound(SOUND_MARIO_TWIRL_BOUNCE, m->marioObj->header.gfx.cameraToObject); #ifndef VERSION_JP } #endif + m->flags |= MARIO_MARIO_SOUND_PLAYED; } } @@ -281,6 +289,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav m->particleFlags |= PARTICLE_SHALLOW_WATER_SPLASH; } else { m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; + spawn_object(m, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); } } else { if (m->terrainSoundAddend == (SOUND_TERRAIN_SAND << 16)) { @@ -302,7 +311,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav * Plays an environmental sound if one has not been played since the last action change. */ void play_mario_action_sound(struct MarioState *m, u32 soundBits, u32 waveParticleType) { - if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { + if ((m->flags & MARIO_ACTION_SOUND_PLAYED) == 0) { play_sound_and_spawn_particles(m, soundBits, waveParticleType); m->flags |= MARIO_ACTION_SOUND_PLAYED; } @@ -322,8 +331,8 @@ void play_mario_landing_sound(struct MarioState *m, u32 soundBits) { * played once per action. */ void play_mario_landing_sound_once(struct MarioState *m, u32 soundBits) { - play_mario_action_sound( - m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, 1); + play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, + 1); } /** @@ -349,8 +358,9 @@ void play_mario_heavy_landing_sound_once(struct MarioState *m, u32 soundBits) { */ void play_mario_sound(struct MarioState *m, s32 actionSound, s32 marioSound) { if (actionSound == SOUND_ACTION_TERRAIN_JUMP) { - play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? (s32) SOUND_ACTION_METAL_JUMP - : (s32) SOUND_ACTION_TERRAIN_JUMP, 1); + play_mario_action_sound( + m, (m->flags & MARIO_METAL_CAP) ? (s32)SOUND_ACTION_METAL_JUMP + : (s32)SOUND_ACTION_TERRAIN_JUMP, 1); } else { play_sound_if_no_flag(m, actionSound, MARIO_ACTION_SOUND_PLAYED); } @@ -379,6 +389,8 @@ void mario_set_forward_vel(struct MarioState *m, f32 forwardVel) { m->vel[0] = (f32) m->slideVelX; m->vel[2] = (f32) m->slideVelZ; + + } /** @@ -396,7 +408,7 @@ s32 mario_get_floor_class(struct MarioState *m) { floorClass = SURFACE_CLASS_DEFAULT; } - if (m->floor != NULL) { + if (m->floor) { switch (m->floor->type) { case SURFACE_NOT_SLIPPERY: case SURFACE_HARD_NOT_SLIPPERY: @@ -462,10 +474,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { s32 ret = SOUND_TERRAIN_DEFAULT << 16; s32 floorType; - if (m->floor != NULL) { + if (m->floor) { floorType = m->floor->type; - if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight < (m->waterLevel - 10))) { + if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight <= (m->waterLevel+1))) { // Water terrain sound, excluding LLL since it uses water in the volcano. ret = SOUND_TERRAIN_WATER << 16; } else if (SURFACE_IS_QUICKSAND(floorType)) { @@ -509,6 +521,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { } ret = sTerrainSounds[terrainType][floorSoundType] << 16; + + if (m->floor->type == SURFACE_BURNING && (m->flags & MARIO_IS_SUPER)) { + ret = SOUND_TERRAIN_WATER << 16; + } } } @@ -607,25 +623,26 @@ s32 mario_floor_is_slope(struct MarioState *m) { f32 normY; if ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE - && m->floor->normal.y < 0.9998477f) { // ~cos(1 deg) + && m->floor->normal.y < 0.9998477f //~cos(1 deg) + ) { return TRUE; } switch (mario_get_floor_class(m)) { case SURFACE_VERY_SLIPPERY: - normY = 0.9961947f; // ~cos(5 deg) + normY = 0.9961947f; //~cos(5 deg) break; case SURFACE_SLIPPERY: - normY = 0.9848077f; // ~cos(10 deg) + normY = 0.9848077f; //~cos(10 deg) break; default: - normY = 0.9659258f; // ~cos(15 deg) + normY = 0.9659258f; //~cos(15 deg) break; case SURFACE_NOT_SLIPPERY: - normY = 0.9396926f; // ~cos(20 deg) + normY = 0.9396926f; //~cos(20 deg) break; } @@ -646,19 +663,19 @@ s32 mario_floor_is_steep(struct MarioState *m) { if (!mario_facing_downhill(m, FALSE)) { switch (mario_get_floor_class(m)) { case SURFACE_VERY_SLIPPERY: - normY = 0.9659258f; // ~cos(15 deg) + normY = 0.9659258f; //~cos(15 deg) break; case SURFACE_SLIPPERY: - normY = 0.9396926f; // ~cos(20 deg) + normY = 0.9396926f; //~cos(20 deg) break; default: - normY = 0.8660254f; // ~cos(30 deg) + normY = 0.8660254f; //~cos(30 deg) break; case SURFACE_NOT_SLIPPERY: - normY = 0.8660254f; // ~cos(30 deg) + normY = 0.8660254f; //~cos(30 deg) break; } @@ -754,7 +771,7 @@ void set_steep_jump_action(struct MarioState *m) { m->faceAngle[1] = atan2s(x, y) + angleTemp; } - drop_and_set_mario_action(m, ACT_STEEP_JUMP, 0); + drop_and_set_mario_action(m, ACT_JUMP, 0); } /** @@ -773,24 +790,32 @@ static void set_mario_y_vel_based_on_fspeed(struct MarioState *m, f32 initialVel /** * Transitions for a variety of airborne actions. */ + + + + static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actionArg) { f32 fowardVel; - if ((m->squishTimer != 0 || m->quicksandDepth >= 1.0f) - && (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING)) { - action = ACT_JUMP; + if (m->squishTimer != 0 || m->quicksandDepth >= 1.0f) { + if (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING) { + action = ACT_JUMP; + + } } switch (action) { case ACT_DOUBLE_JUMP: - set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); - m->forwardVel *= 0.8f; + m->forwardVel = 40.0f; + set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); + + break; case ACT_BACKFLIP: m->marioObj->header.gfx.animInfo.animID = -1; - m->forwardVel = -16.0f; - set_mario_y_vel_based_on_fspeed(m, 62.0f, 0.0f); + m->forwardVel = -0.0f; + set_mario_y_vel_based_on_fspeed(m, 70.0f, 0.0f); break; case ACT_TRIPLE_JUMP: @@ -821,8 +846,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio case ACT_JUMP: case ACT_HOLD_JUMP: m->marioObj->header.gfx.animInfo.animID = -1; - set_mario_y_vel_based_on_fspeed(m, 42.0f, 0.25f); - m->forwardVel *= 0.8f; + + if (m->forwardVel > 140.0f) + { + m->forwardVel = 140.0f; + } + if (m->forwardVel <= 10.0f) + { + + m->forwardVel *= 0.5f; + if (!(m->flags & MARIO_IS_SUPER)) + { + set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); + } + else + { + set_mario_y_vel_based_on_fspeed(m, 59.0f, 0.25f); + } + } + else + { + m->forwardVel *= 0.4f; + if (!(m->flags & MARIO_IS_SUPER)) + { + set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); + } + else + { + set_mario_y_vel_based_on_fspeed(m, 49.0f, 0.25f); + } + } break; case ACT_WALL_KICK_AIR: @@ -850,14 +903,168 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio m->vel[1] = 84.0f; if (actionArg == 0) { m->forwardVel = 0.0f; + } break; case ACT_DIVE: - if ((fowardVel = m->forwardVel + 15.0f) > 48.0f) { - fowardVel = 48.0f; - } + if (m->homingObj != NULL) + { + if (m->homingObj == m->usedObj) + { + m->homingObj = NULL; + } + else + { + + } + + + } + /* + if ((fowardVel = m->forwardVel + 15.0f) > 28.0f) { + m->homingObj = NULL; + m->actionTimer = 0; + + //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) + { + + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); + } + + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); + } + + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); + } + + + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); + } + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); + } + //if (m->interactObj == NULL) + if (m->homingObj != NULL) + { + spawn_object(m->homingObj, MODEL_GOOMBA, bhvReticle); + if (m->homingObj->oPosY > m->pos[1]) + { + m->homingObj = NULL; + } + } + if (m->homingObj == NULL) + { + fowardVel = 48.0f; + + mario_set_forward_vel(m, fowardVel); + } + } + */ + +if (m->homingObj == NULL) +{ + fowardVel = 48.0f; + + + mario_set_forward_vel(m, fowardVel); +} break; case ACT_LONG_JUMP: @@ -873,12 +1080,12 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio break; case ACT_SLIDE_KICK: - m->vel[1] = 12.0f; - if (m->forwardVel < 32.0f) { - m->forwardVel = 32.0f; - } + // m->vel[1] = 1.0f; + m->forwardVel *= 1.5f; + break; + case ACT_JUMP_KICK: m->vel[1] = 20.0f; break; @@ -896,19 +1103,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 actionArg) { s16 floorClass = mario_get_floor_class(m); f32 forwardVel = m->forwardVel; - f32 mag = min(m->intendedMag, 8.0f); + f32 mag = min(m->intendedMag, 10.0f); + f32 val04; + val04 = m->intendedMag > m->forwardVel ? m->intendedMag : m->forwardVel; switch (action) { case ACT_WALKING: if (floorClass != SURFACE_CLASS_VERY_SLIPPERY) { - if (0.0f <= forwardVel && forwardVel < mag) { - m->forwardVel = mag; + if (0.0f <= forwardVel) { + if (m->forwardVel <= mag) + { + m->forwardVel = mag; + } + } } m->marioObj->oMarioWalkingPitch = 0; break; + case ACT_SLIDE_KICK: + + m->forwardVel *= 10.0f; + break; + + case ACT_SLIDE_KICK_SLIDE: + + m->forwardVel *= 10.0f; + break; + + case ACT_HOLD_WALKING: if (0.0f <= forwardVel && forwardVel < mag / 2.0f) { m->forwardVel = mag / 2.0f; @@ -939,9 +1163,14 @@ static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 * Transition for certain submerged actions, which is actually just the metal jump actions. */ static u32 set_mario_action_submerged(struct MarioState *m, u32 action, UNUSED u32 actionArg) { - if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { - m->vel[1] = 32.0f; - } + + if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { + + m->vel[1] = 32.0f; + + + } + return action; } @@ -1027,42 +1256,15 @@ s32 set_jump_from_landing(struct MarioState *m) { if (mario_floor_is_steep(m)) { set_steep_jump_action(m); } else { - if ((m->doubleJumpTimer == 0) || (m->squishTimer != 0)) { + if ((m->doubleJumpTimer == 0) ) { set_mario_action(m, ACT_JUMP, 0); } else { - switch (m->prevAction) { - case ACT_JUMP_LAND: - set_mario_action(m, ACT_DOUBLE_JUMP, 0); - break; - - case ACT_FREEFALL_LAND: - set_mario_action(m, ACT_DOUBLE_JUMP, 0); - break; - - case ACT_SIDE_FLIP_LAND_STOP: - set_mario_action(m, ACT_DOUBLE_JUMP, 0); - break; - - case ACT_DOUBLE_JUMP_LAND: - // If Mario has a wing cap, he ignores the typical speed - // requirement for a triple jump. - if (m->flags & MARIO_WING_CAP) { - set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); - } else if (m->forwardVel > 20.0f) { - set_mario_action(m, ACT_TRIPLE_JUMP, 0); - } else { - set_mario_action(m, ACT_JUMP, 0); - } - break; - - default: - set_mario_action(m, ACT_JUMP, 0); - break; - } + set_mario_action(m, ACT_JUMP, 0); + } } - m->doubleJumpTimer = 0; + return TRUE; } @@ -1105,9 +1307,42 @@ s32 drop_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg) { * Increment Mario's hurt counter and set a new action. */ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s16 hurtCounter) { - m->hurtCounter = hurtCounter; + //sonic bowser stomp + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) + { + m->hurtCounter = hurtCounter; + } + else + { + m->hurtCounter = 0; + if (gMarioState->numCoins > 0) + { - return set_mario_action(m, action, actionArg); + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + } + else + { + + m->health = 0xFF; + + } + } + } + return set_mario_action(m, action, actionArg); + } /** @@ -1115,6 +1350,7 @@ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s * actions. A common variant of the below function. */ s32 check_common_action_exits(struct MarioState *m) { + if (m->input & INPUT_A_PRESSED) { return set_mario_action(m, ACT_JUMP, 0); } @@ -1172,8 +1408,8 @@ s32 transition_submerged_to_walking(struct MarioState *m) { * non-submerged action. This also applies the water surface camera preset. */ s32 set_water_plunge_action(struct MarioState *m) { - m->forwardVel = m->forwardVel / 4.0f; - m->vel[1] = m->vel[1] / 2.0f; + m->forwardVel = m->forwardVel / 4.1f; + m->vel[1] = m->vel[1] / 2.1f; m->pos[1] = m->waterLevel - 100; @@ -1181,7 +1417,7 @@ s32 set_water_plunge_action(struct MarioState *m) { vec3s_set(m->angleVel, 0, 0, 0); - if (!(m->action & ACT_FLAG_DIVING)) { + if ((m->action & ACT_FLAG_DIVING) == 0) { m->faceAngle[0] = 0; } @@ -1205,8 +1441,12 @@ u8 sSquishScaleOverTime[16] = { 0x46, 0x32, 0x32, 0x3C, 0x46, 0x50, 0x50, 0x3C, void squish_mario_model(struct MarioState *m) { if (m->squishTimer != 0xFF) { // If no longer squished, scale back to default. + // Also handles the Tiny Mario and Huge Mario cheats. if (m->squishTimer == 0) { - vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); + + vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); + + } // If timer is less than 16, rubber-band Mario's size scale up and down. else if (m->squishTimer <= 16) { @@ -1282,7 +1522,7 @@ void update_mario_button_inputs(struct MarioState *m) { if (m->input & INPUT_B_PRESSED) { m->framesSinceB = 0; - } else if (m->framesSinceB < 0xFF) { + } else if (m->framesSinceB < 0xff) { m->framesSinceB += 1; } } @@ -1292,16 +1532,37 @@ void update_mario_button_inputs(struct MarioState *m) { */ void update_mario_joystick_inputs(struct MarioState *m) { struct Controller *controller = m->controller; - f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 64.0f; + f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 140.0f; if (m->squishTimer == 0) { - m->intendedMag = mag / 2.0f; + if (m->flags & MARIO_IS_SUPER) + { + m->intendedMag = mag / 1.7f; + } + else + { + m->intendedMag = mag / 2.0f; + } } else { - m->intendedMag = mag / 8.0f; + if (m->flags & MARIO_IS_SUPER) + { + m->intendedMag = mag / 2.7f; + } + else + { + m->intendedMag = mag / 3.0f; + } } if (m->intendedMag > 0.0f) { +#ifndef BETTERCAMERA m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; +#else + if (gLakituState.mode != CAMERA_MODE_NEWCAM) + m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; + else + m->intendedYaw = atan2s(-controller->stickY, controller->stickX)-newcam_yaw+0x4000; +#endif m->input |= INPUT_NONZERO_ANALOG; } else { m->intendedYaw = m->faceAngle[1]; @@ -1333,7 +1594,7 @@ void update_mario_geometry_inputs(struct MarioState *m) { gasLevel = find_poison_gas_level(m->pos[0], m->pos[2]); m->waterLevel = find_water_level(m->pos[0], m->pos[2]); - if (m->floor != NULL) { + if (m->floor) { m->floorAngle = atan2s(m->floor->normal.z, m->floor->normal.x); m->terrainSoundAddend = mario_get_terrain_sound_addend(m); @@ -1381,6 +1642,10 @@ void update_mario_inputs(struct MarioState *m) { update_mario_geometry_inputs(m); debug_print_speed_action_normal(m); + + /* Moonjump cheat */ + + /*End of moonjump cheat */ if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) { if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) { @@ -1407,9 +1672,7 @@ void update_mario_inputs(struct MarioState *m) { m->wallKickTimer--; } - if (m->doubleJumpTimer > 0) { - m->doubleJumpTimer--; - } + } /** @@ -1423,7 +1686,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { heightBelowWater = (f32)(m->waterLevel - 80) - m->pos[1]; camPreset = m->area->camera->mode; - if (m->action & ACT_FLAG_METAL_WATER) { + if ((m->action & ACT_FLAG_METAL_WATER)) { if (camPreset != CAMERA_MODE_CLOSE) { set_camera_mode(m->area->camera, CAMERA_MODE_CLOSE, 1); } @@ -1438,7 +1701,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { // As long as Mario isn't drowning or at the top // of the water with his head out, spawn bubbles. - if (!(m->action & ACT_FLAG_INTANGIBLE)) { + if ((m->action & ACT_FLAG_INTANGIBLE) == 0) { if ((m->pos[1] < (f32)(m->waterLevel - 160)) || (m->faceAngle[0] < -0x800)) { m->particleFlags |= PARTICLE_BUBBLE; } @@ -1450,30 +1713,655 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { /** * Both increments and decrements Mario's HP. */ -void update_mario_health(struct MarioState *m) { - s32 terrainIsSnow; +s32 update_mario_health(struct MarioState *m) { + s32 terrainIsSnow; + s32 gasTimer; + s32 coinTimer; + s32 allowTransform; + u8 starbob = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BOB - 1); + u8 starbbh = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BBH - 1); + u8 starccm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_CCM - 1); + u8 starhmc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_HMC - 1); + u8 starssl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SSL - 1); + u8 starsl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SL - 1); + u8 starwdw = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WDW - 1); + u8 starjrb = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_JRB - 1); + u8 starthi = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_THI - 1); + u8 starttc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTC - 1); + u8 starrr = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_RR - 1); + u8 starlll = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_LLL - 1); + u8 starddd = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_DDD - 1); + u8 starwf = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WF - 1); + u8 starttm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTM - 1); + + // gMarioState->flags &= ~MARIO_IS_SHADOW; + //update homing + + + if (m->action == ACT_JUMP || m->action == ACT_DOUBLE_JUMP || m->action == ACT_STEEP_JUMP || m->action == ACT_SIDE_FLIP) { + + m->homingObj = NULL; + + //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; + + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) + { + //gMarioState->numCoins = 1; + // gHudDisplay.coins = 1; + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) + { + + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBullyWithMinions) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBullyWithMinions); + } + //new piranha check + if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) + { + m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); + if (m->homingObj->oAction == PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN || m->homingObj->oAction == PIRANHA_PLANT_ACT_SHRINK_AND_DIE || m->homingObj->oAction == PIRANHA_PLANT_ACT_ATTACKED) + { + + m->homingObj = NULL; + } + + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvKlepto) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvKlepto); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); + + + + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); + } + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) + { + + m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); + } + //if (m->interactObj == NULL) + if (m->homingObj != NULL) + { + //if (m->homingObj->oPosY > m->pos[1] - 10.0f || m->homingObj->oDistanceToMario > 800.0f) BULLY + if (m->homingObj->oPosY > m->pos[1] - 10.0f) + { + m->homingObj = NULL; + } + else + { + if (count_objects_with_behavior(bhvReticle) < 1) + { + spawn_object(m->homingObj, MODEL_RETICLE, bhvReticle); + + } + + } + } + else + { + m->homingObj = NULL; + } + + + + + + + + } + + + m->coinstartotal = ((starbob & (1 << 6)) + (starbbh & (1 << 6)) + (starccm & (1 << 6)) + (starhmc & (1 << 6)) + (starssl & (1 << 6)) + (starsl & (1 << 6)) + (starwdw & (1 << 6)) + (starjrb & (1 << 6)) + (starthi & (1 << 6)) + (starttc & (1 << 6)) + (starrr & (1 << 6)) + (starlll & (1 << 6)) + (starddd & (1 << 6)) + (starwf & (1 << 6)) + (starttm & (1 << 6))) / 64; //+ starbbh + starccm + starhmc + starssl + starsl + starwdw + starjrb + starthi + starttc + starrr + starlll + starddd + starwf + starttm; + + + + if (cur_obj_dist_to_nearest_object_with_behavior(bhv_jet_stream_water_ring_loop) < 800.0f) + { + m->drownTimer = 0; + } + + if (cur_obj_dist_to_nearest_object_with_behavior(bhv_manta_ray_water_ring_init) < 800.0f) + { + m->drownTimer = 0; + } + + + //u16 capMusic = 0; + //gsDPSetEnvColor(100, 100, 100, 100); + m->coinTimer++; + //gMarioState->numLives = m->area->camera->defMode; + if (m->flags & MARIO_IS_SUPER) + { + // spawn_object(m, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); + m->particleFlags |= PARTICLE_SPARKLES; + + if (gCurrLevelNum != LEVEL_CASTLE_GROUNDS && gCurrLevelNum != LEVEL_CASTLE && gCurrLevelNum != LEVEL_CASTLE_COURTYARD) + { + if (gMarioState->numCoins > 0) + { + + + if (m->coinTimer >= 60) + { + + gMarioState->numCoins += -1; + gHudDisplay.coins += -1; + m->coinTimer = 0; + + + } + + } + else + { + if (m->capTimer <= 0) { + + stop_cap_music(); + + } + + if (m->flags & ( MARIO_VANISH_CAP | MARIO_WING_CAP)) + { + play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); + } + + if (m->flags & MARIO_METAL_CAP) + { + play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP)); + } + + m->flags &= ~MARIO_IS_SUPER; + } + } + + + + + if (m->action != ACT_DIVE) + { + if (m->action != ACT_SPINDASH) + { + + //gDPSetEnvColor(gDisplayListHead++, 255, 100, 255, 255); + cur_obj_set_model(MODEL_SUPER_SONIC); + } + } + //capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); + + + + //if (capMusic == 0) { + //play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); + //capMusic = 1; + //} + } + + + + if (m->action == ACT_JUMP) + { + + } + + + if (allowTransform != 1) + { + allowTransform = 0; + } + + //m->particleFlags |= PARTICLE_SPARKLES; + + + + if ((m->input & INPUT_A_PRESSED) && (m->action == ACT_GROUND_POUND)) + { + if ((gMarioState->numCoins >= 50) || (gCurrLevelNum == LEVEL_CASTLE_GROUNDS || gCurrLevelNum == LEVEL_CASTLE_COURTYARD || gCurrLevelNum == LEVEL_CASTLE)) { + if (count_objects_with_behavior(bhvWigglerHead) < 1) { + + allowTransform = 1.0; + } + } + //m->forwardVel += 50.0f; + //&& !(m->flags & MARIO_IS_SUPER) + } + + //if (stars & (1 << 6)) + //{ + //gMarioState->numLives = m->coinstartotal; + //} + //else + //{ + + //gMarioState->numCoins = 99; + //gHudDisplay.coins = 99; + //} + + if (m->input & INPUT_A_PRESSED) { + + // gMarioState->numCoins = 99; + // gHudDisplay.coins = 99; + } + + // change coinstar to 7y + if (allowTransform == 1 && !(m->flags & MARIO_IS_SUPER) && m->coinstartotal >= 7) + { + spawn_object_relative(0, 0, 0, 0, m->marioObj, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); + return set_mario_action(m, ACT_TRANSFORM, 0); + + + + + //m->forwardVel += 50.0f; + //play_cap_music(capMusic); + m->coinTimer = 0; + + + } + + + if (gDialogHealthSystem == SONIC_HEALTH) + { + if (gMarioState->numCoins == 0) + { + if (m->health > 0x100) + { + //m->health = 0x100; + } + } + //obj_spawn_yellow_coins(m->marioObj, 5); + //play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); + } + if (m->action == ACT_DIVE && m->interactObj != NULL) + { + m->marioObj->header.gfx.animInfo.animAccel = 0x30000; + //m->faceAngle[1] = mario_obj_angle_to_object(m, m->interactObj); + + + } + + if (m->action != ACT_JUMP) + { + if (m->action != ACT_SPINDASH) + { + if (m->action != ACT_DIVE) + { + if (m->action != ACT_GROUND_POUND) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_MARIO); + } + + } + } + } + } + + if (m->action == ACT_METAL_WATER_JUMP) + { + + if (m->vel[1] >= 1.0f) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + } + } + + if (m->action == ACT_JUMP) + { + + m->marioObj->header.gfx.animInfo.animAccel = 0x20000; + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + + } + + if (m->action == ACT_SHOT_FROM_CANNON) + { + + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + + + } + + if (m->action == ACT_DIVE_SLIDE) + { + + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + + + } + + if (m->action == ACT_GROUND_POUND) + { + + vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.15f, 0.8f); + m->marioObj->header.gfx.animInfo.animAccel = 0x20000; + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + + + } + + if (m->action == ACT_SPINDASH) + { + m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; + if (m->forwardVel < 50.0f) + { + m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 2900; + } + m->faceAngle[1] = m->intendedYaw; + vec3f_set(m->marioObj->header.gfx.scale, 0.85f, 1.0f, 0.85f); + + + + } + + + + + + + if (m->action == ACT_JUMP) + { + if (m->actionTimer > 0 && m->actionTimer < 3) + { + cur_obj_scale(0.8f); + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_MARIO); + } + else + { + cur_obj_set_model(MODEL_SUPER_SONIC); + } + + + } + else + { + + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + + //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 35; + m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; + + + } + } + if (m->health >= 0x100) { // When already healing or hurting Mario, Mario's HP is not changed any more here. if (((u32) m->healCounter | (u32) m->hurtCounter) == 0) { - if ((m->input & INPUT_IN_POISON_GAS) && !(m->action & ACT_FLAG_INTANGIBLE)) { - if (!(m->flags & MARIO_METAL_CAP) && !gDebugLevelSelect) { - m->health -= 4; + if ((m->input & INPUT_IN_POISON_GAS) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { + if (((m->flags & MARIO_METAL_CAP) == 0) && (gDebugLevelSelect == 0)) { + if (gDialogHealthSystem != SONIC_HEALTH) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + m->health -= 4; + } + } + else + { + if (!(m->flags & MARIO_IS_SUPER)) + { + m->gasTimer--; + + if (gMarioState->numCoins > 0) + { + if (m->gasTimer <= 0) + { + obj_spawn_yellow_coins(m->marioObj, 1); + gMarioState->numCoins -= 1; + gHudDisplay.coins -= 1; + m->gasTimer = 10; + } + } + else + { + m->health = 0xFF; + } + } + } } } else { - if ((m->action & ACT_FLAG_SWIMMING) && !(m->action & ACT_FLAG_INTANGIBLE)) { + if ((m->action & ACT_FLAG_SWIMMING) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { terrainIsSnow = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW; // When Mario is near the water surface, recover health (unless in snow), // when in snow terrains lose 3 health. // If using the debug level select, do not lose any HP to water. if ((m->pos[1] >= (m->waterLevel - 140)) && !terrainIsSnow) { - m->health += 0x1A; - } else if (!gDebugLevelSelect) { - m->health -= (terrainIsSnow ? 3 : 1); + m->health += 0x4F; + } else if (gDebugLevelSelect == 0) { + // m->health -= (terrainIsSnow ? 3 : 1); } } } + if (m->pos[1] <= (m->waterLevel - 140)) + { + if (m->flags & MARIO_METAL_CAP || m->flags & MARIO_IS_SUPER) + { + } + else + { + if (gDialogHealthSystem != SONIC_HEALTH) + { + m->health -= (terrainIsSnow ? 3 : 1); + } + else + { + + + if (m->action != ACT_STAR_DANCE_WATER) { + + m->drownTimer++; + } + } + //gMarioState->numLives = m->drownTimer; + if (m->drownTimer == 480) + { + play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); + } + + if (m->drownTimer == 540) + { + play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); + } + + if (m->drownTimer == 600) + { + play_drown_music(); + spawn_orange_number(5, 0, 0 + 110, 0); + } + if (m->drownTimer == 660) + { + spawn_orange_number(4, 0, 0 + 110, 0); + } + if (m->drownTimer == 720) + { + spawn_orange_number(3, 0, 0 + 110, 0); + } + if (m->drownTimer == 780) + { + spawn_orange_number(2, 0, 0 + 110, 0); + } + if (m->drownTimer == 840) + { + spawn_orange_number(1, 0, 0 + 110, 0); + } + + if + (m->drownTimer == 900) + { + spawn_orange_number(0, 0 , 0 + 110, 0); + } + + if (m->drownTimer == 950) + { + stop_drown_music(); + set_mario_action(m, ACT_DROWNING, 0); + + } + if (m->drownTimer > 950) + { + stop_drown_music(); + + } + + } + } + if (m->pos[1] >= (m->waterLevel - 120)) + { + if (gCurrLevelNum != LEVEL_SL) + { + m->drownTimer = 0; + + } + else + { + m->drownTimer = 590; + } + if (!(m->action & ACT_FLAG_RIDING_SHELL)) + { + stop_drown_music(); + } + } + if ((m->pos[1] >= (m->waterLevel - 120)) && !terrainIsSnow && ((m->action == ACT_METAL_WATER_WALKING) || (m->action == ACT_WATER_JUMP))) { + m->health += 0x1A; + } } if (m->healCounter > 0) { @@ -1485,7 +2373,7 @@ void update_mario_health(struct MarioState *m) { m->hurtCounter--; } - if (m->health > 0x880) { + if (m->health >= 0x881) { m->health = 0x880; } if (m->health < 0x100) { @@ -1509,6 +2397,8 @@ void update_mario_health(struct MarioState *m) { } } + + /** * Updates some basic info for camera usage. */ @@ -1518,7 +2408,7 @@ void update_mario_info_for_cam(struct MarioState *m) { vec3s_copy(m->statusForCamera->faceAngle, m->faceAngle); - if (!(m->flags & MARIO_UNKNOWN_25)) { + if ((m->flags & MARIO_UNKNOWN_25) == 0) { vec3f_copy(m->statusForCamera->pos, m->pos); } } @@ -1577,23 +2467,30 @@ u32 update_and_return_cap_flags(struct MarioState *m) { } if (m->capTimer == 0) { - stop_cap_music(); + if (!(m->flags & MARIO_IS_SUPER)) + { + stop_cap_music(); + } - m->flags &= ~MARIO_SPECIAL_CAPS; - if (!(m->flags & MARIO_CAPS)) { + m->flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); + if ((m->flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) + == 0) { m->flags &= ~MARIO_CAP_ON_HEAD; } } - - if (m->capTimer == 60) { - fadeout_cap_music(); - } + if (!(m->flags & MARIO_IS_SUPER)) + { + if (m->capTimer == 0x3C) { + fadeout_cap_music(); + } + } // This code flickers the cap through a long binary string, increasing in how // common it flickers near the end. - if ((m->capTimer < 64) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { - flags &= ~MARIO_SPECIAL_CAPS; - if (!(flags & MARIO_CAPS)) { + if ((m->capTimer < 0x40) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { + flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); + if ((flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) + == 0) { flags &= ~MARIO_CAP_ON_HEAD; } } @@ -1607,7 +2504,76 @@ u32 update_and_return_cap_flags(struct MarioState *m) { */ void mario_update_hitbox_and_cap_model(struct MarioState *m) { struct MarioBodyState *bodyState = m->marioBodyState; + extern const u16 super_sonic_sonic_super_surface_rgba16[]; + extern const u16 super_sonic_sonic_super_surface_replacer_rgba16[]; + u16* supertexture = segmented_to_virtual(super_sonic_sonic_super_surface_rgba16); + u16* supertexturereplacer = segmented_to_virtual(super_sonic_sonic_super_surface_replacer_rgba16); s32 flags = update_and_return_cap_flags(m); + + m->marioObj->oSuperTimer += 1; + + + if (flags & MARIO_IS_SUPER) { + if (m->floor->type == SURFACE_BURNING) { + if (5.0f > absf(gMarioState->marioObj->oPosY - m->floorHeight)) { + spawn_object(gMarioState->marioObj, MODEL_RED_FLAME, bhvKoopaShellFlame); + } + } + } + + switch (m->marioObj->oSuperTimer) { + + case 2: + bcopy(supertexturereplacer + 5, supertexture, 2 * 32 * 32); + + break; + case 4: + bcopy(supertexturereplacer + 10, supertexture, 2 * 32 * 32); + break; + case 6: + bcopy(supertexturereplacer + 15, supertexture, 2 * 32 * 32); + break; + case 8: + bcopy(supertexturereplacer + 20, supertexture, 2 * 32 * 32); + break; + case 10: + bcopy(supertexturereplacer + 25, supertexture, 2 * 32 * 32); + break; + case 12: + bcopy(supertexturereplacer + 30, supertexture, 2 * 32 * 32); + break; + case 14: + bcopy(supertexturereplacer + 35, supertexture, 2 * 32 * 32); + break; + case 16: + bcopy(supertexturereplacer + 40, supertexture, 2 * 32 * 32); + break; + case 18: + bcopy(supertexturereplacer + 45, supertexture, 2 * 32 * 32); + break; + case 20: + bcopy(supertexturereplacer + 50, supertexture, 2 * 32 * 32); + break; + case 22: + bcopy(supertexturereplacer + 55, supertexture, 2 * 32 * 32); + break; + case 24: + bcopy(supertexturereplacer + 60, supertexture, 2 * 32 * 32); + break; + case 26: + bcopy(supertexturereplacer + 0, supertexture, 2 * 32 * 32); + m->marioObj->oSuperTimer = 0; + break; + } + + + + + + + + + if (flags & MARIO_VANISH_CAP) { bodyState->modelState = MODEL_STATE_NOISE_ALPHA; @@ -1621,11 +2587,13 @@ void mario_update_hitbox_and_cap_model(struct MarioState *m) { bodyState->modelState |= MODEL_STATE_METAL; } - //! (Pause buffered hitstun) Since the global timer increments while paused, - // this can be paused through to give continual invisibility. This leads to - // no interaction with objects. - if ((m->invincTimer >= 3) && (gGlobalTimer & 1)) { - gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; + if (m->invincTimer >= 3) { + //! (Pause buffered hitstun) Since the global timer increments while paused, + // this can be paused through to give continual invisibility. This leads to + // no interaction with objects. + if (gGlobalTimer & 1) { + gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; + } } if (flags & MARIO_CAP_IN_HAND) { @@ -1666,7 +2634,7 @@ static void debug_update_mario_cap(u16 button, s32 flags, u16 capTimer, u16 capM // (which is also what other debug functions do), // so likely debug behavior rather than unused behavior. if ((gPlayer1Controller->buttonDown & Z_TRIG) && (gPlayer1Controller->buttonPressed & button) - && !(gMarioState->flags & flags)) { + && ((gMarioState->flags & flags) == 0)) { gMarioState->flags |= (flags + MARIO_CAP_ON_HEAD); if (capTimer > gMarioState->capTimer) { @@ -1785,11 +2753,12 @@ s32 execute_mario_action(UNUSED struct Object *o) { **************************************************/ void init_mario(void) { + Vec3s capPos; struct Object *capObject; unused80339F10 = 0; - + gMarioState->hasEmerald = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); gMarioState->actionTimer = 0; gMarioState->framesSinceA = 0xFF; gMarioState->framesSinceB = 0xFF; @@ -1798,12 +2767,15 @@ void init_mario(void) { if (save_file_get_flags() & (SAVE_FLAG_CAP_ON_GROUND | SAVE_FLAG_CAP_ON_KLEPTO | SAVE_FLAG_CAP_ON_UKIKI - | SAVE_FLAG_CAP_ON_MR_BLIZZARD)) { + | SAVE_FLAG_CAP_ON_MR_BLIZZARD )) { gMarioState->flags = 0; } else { - gMarioState->flags = (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); - } + gMarioState->flags = (MARIO_CAP_ON_HEAD | MARIO_NORMAL_CAP); + + } + //gMarioState->flags |= MARIO_IS_SHADOW; + gMarioState->flags &= ~MARIO_IS_SHADOW; gMarioState->forwardVel = 0.0f; gMarioState->squishTimer = 0; diff --git a/src/game/mario.c.rej b/src/game/mario.c.rej new file mode 100644 index 00000000..98100aa5 --- /dev/null +++ b/src/game/mario.c.rej @@ -0,0 +1,1625 @@ +diff a/src/game/mario.c b/src/game/mario.c (rejected hunks) +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_actions.h" + #include "behavior_data.h" +@@ -25,6 +26,7 @@ + #include "mario_misc.h" + #include "mario_step.h" + #include "memory.h" ++#include "ingame_menu.h" + #include "object_fields.h" + #include "object_helpers.h" + #include "object_list_processor.h" +@@ -32,6 +34,7 @@ + #include "save_file.h" + #include "sound_init.h" + #include "rumble_init.h" ++#include "seq_ids.h" + + u32 unused80339F10; + s8 filler80339F1C[20]; +@@ -40,10 +43,14 @@ s8 filler80339F1C[20]; + * ANIMATIONS * + **************************************************/ + ++ ++ ++ + /** + * Checks if Mario's animation has reached its end point. + */ + s32 is_anim_at_end(struct MarioState *m) { ++ + struct Object *o = m->marioObj; + + return (o->header.gfx.animInfo.animFrame + 1) == o->header.gfx.animInfo.curAnim->loopEnd; +@@ -238,7 +245,7 @@ s16 return_mario_anim_y_translation(struct MarioState *m) { + * Plays a sound if if Mario doesn't have the flag being checked. + */ + void play_sound_if_no_flag(struct MarioState *m, u32 soundBits, u32 flags) { +- if (!(m->flags & flags)) { ++ if ((m->flags & flags) == 0) { + play_sound(soundBits, m->marioObj->header.gfx.cameraToObject); + m->flags |= flags; + } +@@ -255,11 +262,12 @@ void play_mario_jump_sound(struct MarioState *m) { + m->marioObj->header.gfx.cameraToObject); + } else { + #endif +- play_sound(SOUND_MARIO_YAH_WAH_HOO + ((gAudioRandom % 3) << 16), ++ play_sound(SOUND_MARIO_TWIRL_BOUNCE, + m->marioObj->header.gfx.cameraToObject); + #ifndef VERSION_JP + } + #endif ++ + m->flags |= MARIO_MARIO_SOUND_PLAYED; + } + } +@@ -281,6 +289,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav + m->particleFlags |= PARTICLE_SHALLOW_WATER_SPLASH; + } else { + m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; ++ spawn_object(m, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); + } + } else { + if (m->terrainSoundAddend == (SOUND_TERRAIN_SAND << 16)) { +@@ -302,7 +311,7 @@ void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 wav + * Plays an environmental sound if one has not been played since the last action change. + */ + void play_mario_action_sound(struct MarioState *m, u32 soundBits, u32 waveParticleType) { +- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++ if ((m->flags & MARIO_ACTION_SOUND_PLAYED) == 0) { + play_sound_and_spawn_particles(m, soundBits, waveParticleType); + m->flags |= MARIO_ACTION_SOUND_PLAYED; + } +@@ -322,8 +331,8 @@ void play_mario_landing_sound(struct MarioState *m, u32 soundBits) { + * played once per action. + */ + void play_mario_landing_sound_once(struct MarioState *m, u32 soundBits) { +- play_mario_action_sound( +- m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, 1); ++ play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_LANDING : soundBits, ++ 1); + } + + /** +@@ -349,8 +358,9 @@ void play_mario_heavy_landing_sound_once(struct MarioState *m, u32 soundBits) { + */ + void play_mario_sound(struct MarioState *m, s32 actionSound, s32 marioSound) { + if (actionSound == SOUND_ACTION_TERRAIN_JUMP) { +- play_mario_action_sound(m, (m->flags & MARIO_METAL_CAP) ? (s32) SOUND_ACTION_METAL_JUMP +- : (s32) SOUND_ACTION_TERRAIN_JUMP, 1); ++ play_mario_action_sound( ++ m, (m->flags & MARIO_METAL_CAP) ? (s32)SOUND_ACTION_METAL_JUMP ++ : (s32)SOUND_ACTION_TERRAIN_JUMP, 1); + } else { + play_sound_if_no_flag(m, actionSound, MARIO_ACTION_SOUND_PLAYED); + } +@@ -379,6 +389,8 @@ void mario_set_forward_vel(struct MarioState *m, f32 forwardVel) { + + m->vel[0] = (f32) m->slideVelX; + m->vel[2] = (f32) m->slideVelZ; ++ ++ + } + + /** +@@ -396,7 +408,7 @@ s32 mario_get_floor_class(struct MarioState *m) { + floorClass = SURFACE_CLASS_DEFAULT; + } + +- if (m->floor != NULL) { ++ if (m->floor) { + switch (m->floor->type) { + case SURFACE_NOT_SLIPPERY: + case SURFACE_HARD_NOT_SLIPPERY: +@@ -462,10 +474,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { + s32 ret = SOUND_TERRAIN_DEFAULT << 16; + s32 floorType; + +- if (m->floor != NULL) { ++ if (m->floor) { + floorType = m->floor->type; + +- if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight < (m->waterLevel - 10))) { ++ if ((gCurrLevelNum != LEVEL_LLL) && (m->floorHeight <= (m->waterLevel+1))) { + // Water terrain sound, excluding LLL since it uses water in the volcano. + ret = SOUND_TERRAIN_WATER << 16; + } else if (SURFACE_IS_QUICKSAND(floorType)) { +@@ -509,6 +521,10 @@ u32 mario_get_terrain_sound_addend(struct MarioState *m) { + } + + ret = sTerrainSounds[terrainType][floorSoundType] << 16; ++ ++ if (m->floor->type == SURFACE_BURNING && (m->flags & MARIO_IS_SUPER)) { ++ ret = SOUND_TERRAIN_WATER << 16; ++ } + } + } + +@@ -607,25 +623,26 @@ s32 mario_floor_is_slope(struct MarioState *m) { + f32 normY; + + if ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE +- && m->floor->normal.y < 0.9998477f) { // ~cos(1 deg) ++ && m->floor->normal.y < 0.9998477f //~cos(1 deg) ++ ) { + return TRUE; + } + + switch (mario_get_floor_class(m)) { + case SURFACE_VERY_SLIPPERY: +- normY = 0.9961947f; // ~cos(5 deg) ++ normY = 0.9961947f; //~cos(5 deg) + break; + + case SURFACE_SLIPPERY: +- normY = 0.9848077f; // ~cos(10 deg) ++ normY = 0.9848077f; //~cos(10 deg) + break; + + default: +- normY = 0.9659258f; // ~cos(15 deg) ++ normY = 0.9659258f; //~cos(15 deg) + break; + + case SURFACE_NOT_SLIPPERY: +- normY = 0.9396926f; // ~cos(20 deg) ++ normY = 0.9396926f; //~cos(20 deg) + break; + } + +@@ -646,19 +663,19 @@ s32 mario_floor_is_steep(struct MarioState *m) { + if (!mario_facing_downhill(m, FALSE)) { + switch (mario_get_floor_class(m)) { + case SURFACE_VERY_SLIPPERY: +- normY = 0.9659258f; // ~cos(15 deg) ++ normY = 0.9659258f; //~cos(15 deg) + break; + + case SURFACE_SLIPPERY: +- normY = 0.9396926f; // ~cos(20 deg) ++ normY = 0.9396926f; //~cos(20 deg) + break; + + default: +- normY = 0.8660254f; // ~cos(30 deg) ++ normY = 0.8660254f; //~cos(30 deg) + break; + + case SURFACE_NOT_SLIPPERY: +- normY = 0.8660254f; // ~cos(30 deg) ++ normY = 0.8660254f; //~cos(30 deg) + break; + } + +@@ -754,7 +771,7 @@ void set_steep_jump_action(struct MarioState *m) { + m->faceAngle[1] = atan2s(x, y) + angleTemp; + } + +- drop_and_set_mario_action(m, ACT_STEEP_JUMP, 0); ++ drop_and_set_mario_action(m, ACT_JUMP, 0); + } + + /** +@@ -773,24 +790,32 @@ static void set_mario_y_vel_based_on_fspeed(struct MarioState *m, f32 initialVel + /** + * Transitions for a variety of airborne actions. + */ ++ ++ ++ ++ + static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actionArg) { + f32 fowardVel; + +- if ((m->squishTimer != 0 || m->quicksandDepth >= 1.0f) +- && (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING)) { +- action = ACT_JUMP; ++ if (m->squishTimer != 0 || m->quicksandDepth >= 1.0f) { ++ if (action == ACT_DOUBLE_JUMP || action == ACT_TWIRLING) { ++ action = ACT_JUMP; ++ ++ } + } + + switch (action) { + case ACT_DOUBLE_JUMP: +- set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); +- m->forwardVel *= 0.8f; ++ m->forwardVel = 40.0f; ++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); ++ ++ + break; + + case ACT_BACKFLIP: + m->marioObj->header.gfx.animInfo.animID = -1; +- m->forwardVel = -16.0f; +- set_mario_y_vel_based_on_fspeed(m, 62.0f, 0.0f); ++ m->forwardVel = -0.0f; ++ set_mario_y_vel_based_on_fspeed(m, 70.0f, 0.0f); + break; + + case ACT_TRIPLE_JUMP: +@@ -821,8 +846,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + case ACT_JUMP: + case ACT_HOLD_JUMP: + m->marioObj->header.gfx.animInfo.animID = -1; +- set_mario_y_vel_based_on_fspeed(m, 42.0f, 0.25f); +- m->forwardVel *= 0.8f; ++ ++ if (m->forwardVel > 140.0f) ++ { ++ m->forwardVel = 140.0f; ++ } ++ if (m->forwardVel <= 10.0f) ++ { ++ ++ m->forwardVel *= 0.5f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ set_mario_y_vel_based_on_fspeed(m, 52.0f, 0.25f); ++ } ++ else ++ { ++ set_mario_y_vel_based_on_fspeed(m, 59.0f, 0.25f); ++ } ++ } ++ else ++ { ++ m->forwardVel *= 0.4f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ set_mario_y_vel_based_on_fspeed(m, 40.0f, 0.25f); ++ } ++ else ++ { ++ set_mario_y_vel_based_on_fspeed(m, 49.0f, 0.25f); ++ } ++ } + break; + + case ACT_WALL_KICK_AIR: +@@ -850,14 +903,168 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + m->vel[1] = 84.0f; + if (actionArg == 0) { + m->forwardVel = 0.0f; ++ + } + break; + + case ACT_DIVE: +- if ((fowardVel = m->forwardVel + 15.0f) > 48.0f) { +- fowardVel = 48.0f; +- } ++ if (m->homingObj != NULL) ++ { ++ if (m->homingObj == m->usedObj) ++ { ++ m->homingObj = NULL; ++ } ++ else ++ { ++ ++ } ++ ++ ++ } ++ /* ++ if ((fowardVel = m->forwardVel + 15.0f) > 28.0f) { ++ m->homingObj = NULL; ++ m->actionTimer = 0; ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) ++ { ++ ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); ++ } ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); ++ } ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); ++ } ++ ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); ++ } ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); ++ } ++ //if (m->interactObj == NULL) ++ if (m->homingObj != NULL) ++ { ++ spawn_object(m->homingObj, MODEL_GOOMBA, bhvReticle); ++ if (m->homingObj->oPosY > m->pos[1]) ++ { ++ m->homingObj = NULL; ++ } ++ } ++ if (m->homingObj == NULL) ++ { ++ fowardVel = 48.0f; ++ ++ + mario_set_forward_vel(m, fowardVel); ++ } ++ } ++ */ ++ ++if (m->homingObj == NULL) ++{ ++ fowardVel = 48.0f; ++ ++ ++ mario_set_forward_vel(m, fowardVel); ++} + break; + + case ACT_LONG_JUMP: +@@ -873,12 +1080,12 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + break; + + case ACT_SLIDE_KICK: +- m->vel[1] = 12.0f; +- if (m->forwardVel < 32.0f) { +- m->forwardVel = 32.0f; +- } ++ // m->vel[1] = 1.0f; ++ m->forwardVel *= 1.5f; ++ + break; + ++ + case ACT_JUMP_KICK: + m->vel[1] = 20.0f; + break; +@@ -896,19 +1103,36 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio + static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 actionArg) { + s16 floorClass = mario_get_floor_class(m); + f32 forwardVel = m->forwardVel; +- f32 mag = min(m->intendedMag, 8.0f); ++ f32 mag = min(m->intendedMag, 10.0f); ++ f32 val04; ++ val04 = m->intendedMag > m->forwardVel ? m->intendedMag : m->forwardVel; + + switch (action) { + case ACT_WALKING: + if (floorClass != SURFACE_CLASS_VERY_SLIPPERY) { +- if (0.0f <= forwardVel && forwardVel < mag) { +- m->forwardVel = mag; ++ if (0.0f <= forwardVel) { ++ if (m->forwardVel <= mag) ++ { ++ m->forwardVel = mag; ++ } ++ + } + } + + m->marioObj->oMarioWalkingPitch = 0; + break; + ++ case ACT_SLIDE_KICK: ++ ++ m->forwardVel *= 10.0f; ++ break; ++ ++ case ACT_SLIDE_KICK_SLIDE: ++ ++ m->forwardVel *= 10.0f; ++ break; ++ ++ + case ACT_HOLD_WALKING: + if (0.0f <= forwardVel && forwardVel < mag / 2.0f) { + m->forwardVel = mag / 2.0f; +@@ -939,9 +1163,14 @@ static u32 set_mario_action_moving(struct MarioState *m, u32 action, UNUSED u32 + * Transition for certain submerged actions, which is actually just the metal jump actions. + */ + static u32 set_mario_action_submerged(struct MarioState *m, u32 action, UNUSED u32 actionArg) { +- if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { +- m->vel[1] = 32.0f; +- } ++ ++ if (action == ACT_METAL_WATER_JUMP || action == ACT_HOLD_METAL_WATER_JUMP) { ++ ++ m->vel[1] = 32.0f; ++ ++ ++ } ++ + + return action; + } +@@ -1027,42 +1256,15 @@ s32 set_jump_from_landing(struct MarioState *m) { + if (mario_floor_is_steep(m)) { + set_steep_jump_action(m); + } else { +- if ((m->doubleJumpTimer == 0) || (m->squishTimer != 0)) { ++ if ((m->doubleJumpTimer == 0) ) { + set_mario_action(m, ACT_JUMP, 0); + } else { +- switch (m->prevAction) { +- case ACT_JUMP_LAND: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_FREEFALL_LAND: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_SIDE_FLIP_LAND_STOP: +- set_mario_action(m, ACT_DOUBLE_JUMP, 0); +- break; +- +- case ACT_DOUBLE_JUMP_LAND: +- // If Mario has a wing cap, he ignores the typical speed +- // requirement for a triple jump. +- if (m->flags & MARIO_WING_CAP) { +- set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); +- } else if (m->forwardVel > 20.0f) { +- set_mario_action(m, ACT_TRIPLE_JUMP, 0); +- } else { +- set_mario_action(m, ACT_JUMP, 0); +- } +- break; +- +- default: +- set_mario_action(m, ACT_JUMP, 0); +- break; +- } ++ set_mario_action(m, ACT_JUMP, 0); ++ + } + } + +- m->doubleJumpTimer = 0; ++ + + return TRUE; + } +@@ -1105,9 +1307,42 @@ s32 drop_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg) { + * Increment Mario's hurt counter and set a new action. + */ + s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s16 hurtCounter) { +- m->hurtCounter = hurtCounter; ++ //sonic bowser stomp ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter = hurtCounter; ++ } ++ else ++ { ++ m->hurtCounter = 0; ++ if (gMarioState->numCoins > 0) ++ { ++ ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { + +- return set_mario_action(m, action, actionArg); ++ m->health = 0xFF; ++ ++ } ++ } ++ } ++ return set_mario_action(m, action, actionArg); ++ + } + + /** +@@ -1115,6 +1350,7 @@ s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s + * actions. A common variant of the below function. + */ + s32 check_common_action_exits(struct MarioState *m) { ++ + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_JUMP, 0); + } +@@ -1172,8 +1408,8 @@ s32 transition_submerged_to_walking(struct MarioState *m) { + * non-submerged action. This also applies the water surface camera preset. + */ + s32 set_water_plunge_action(struct MarioState *m) { +- m->forwardVel = m->forwardVel / 4.0f; +- m->vel[1] = m->vel[1] / 2.0f; ++ m->forwardVel = m->forwardVel / 4.1f; ++ m->vel[1] = m->vel[1] / 2.1f; + + m->pos[1] = m->waterLevel - 100; + +@@ -1181,7 +1417,7 @@ s32 set_water_plunge_action(struct MarioState *m) { + + vec3s_set(m->angleVel, 0, 0, 0); + +- if (!(m->action & ACT_FLAG_DIVING)) { ++ if ((m->action & ACT_FLAG_DIVING) == 0) { + m->faceAngle[0] = 0; + } + +@@ -1205,8 +1441,12 @@ u8 sSquishScaleOverTime[16] = { 0x46, 0x32, 0x32, 0x3C, 0x46, 0x50, 0x50, 0x3C, + void squish_mario_model(struct MarioState *m) { + if (m->squishTimer != 0xFF) { + // If no longer squished, scale back to default. ++ // Also handles the Tiny Mario and Huge Mario cheats. + if (m->squishTimer == 0) { +- vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); ++ ++ vec3f_set(m->marioObj->header.gfx.scale, 1.0f, 1.0f, 1.0f); ++ ++ + } + // If timer is less than 16, rubber-band Mario's size scale up and down. + else if (m->squishTimer <= 16) { +@@ -1282,7 +1522,7 @@ void update_mario_button_inputs(struct MarioState *m) { + + if (m->input & INPUT_B_PRESSED) { + m->framesSinceB = 0; +- } else if (m->framesSinceB < 0xFF) { ++ } else if (m->framesSinceB < 0xff) { + m->framesSinceB += 1; + } + } +@@ -1292,16 +1532,37 @@ void update_mario_button_inputs(struct MarioState *m) { + */ + void update_mario_joystick_inputs(struct MarioState *m) { + struct Controller *controller = m->controller; +- f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 64.0f; ++ f32 mag = ((controller->stickMag / 64.0f) * (controller->stickMag / 64.0f)) * 140.0f; + + if (m->squishTimer == 0) { +- m->intendedMag = mag / 2.0f; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ m->intendedMag = mag / 1.7f; ++ } ++ else ++ { ++ m->intendedMag = mag / 2.0f; ++ } + } else { +- m->intendedMag = mag / 8.0f; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ m->intendedMag = mag / 2.7f; ++ } ++ else ++ { ++ m->intendedMag = mag / 3.0f; ++ } + } + + if (m->intendedMag > 0.0f) { ++#ifndef BETTERCAMERA + m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; ++#else ++ if (gLakituState.mode != CAMERA_MODE_NEWCAM) ++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX) + m->area->camera->yaw; ++ else ++ m->intendedYaw = atan2s(-controller->stickY, controller->stickX)-newcam_yaw+0x4000; ++#endif + m->input |= INPUT_NONZERO_ANALOG; + } else { + m->intendedYaw = m->faceAngle[1]; +@@ -1333,7 +1594,7 @@ void update_mario_geometry_inputs(struct MarioState *m) { + gasLevel = find_poison_gas_level(m->pos[0], m->pos[2]); + m->waterLevel = find_water_level(m->pos[0], m->pos[2]); + +- if (m->floor != NULL) { ++ if (m->floor) { + m->floorAngle = atan2s(m->floor->normal.z, m->floor->normal.x); + m->terrainSoundAddend = mario_get_terrain_sound_addend(m); + +@@ -1381,6 +1642,10 @@ void update_mario_inputs(struct MarioState *m) { + update_mario_geometry_inputs(m); + + debug_print_speed_action_normal(m); ++ ++ /* Moonjump cheat */ ++ ++ /*End of moonjump cheat */ + + if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) { + if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) { +@@ -1407,9 +1672,7 @@ void update_mario_inputs(struct MarioState *m) { + m->wallKickTimer--; + } + +- if (m->doubleJumpTimer > 0) { +- m->doubleJumpTimer--; +- } ++ + } + + /** +@@ -1423,7 +1686,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + heightBelowWater = (f32)(m->waterLevel - 80) - m->pos[1]; + camPreset = m->area->camera->mode; + +- if (m->action & ACT_FLAG_METAL_WATER) { ++ if ((m->action & ACT_FLAG_METAL_WATER)) { + if (camPreset != CAMERA_MODE_CLOSE) { + set_camera_mode(m->area->camera, CAMERA_MODE_CLOSE, 1); + } +@@ -1438,7 +1701,7 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + + // As long as Mario isn't drowning or at the top + // of the water with his head out, spawn bubbles. +- if (!(m->action & ACT_FLAG_INTANGIBLE)) { ++ if ((m->action & ACT_FLAG_INTANGIBLE) == 0) { + if ((m->pos[1] < (f32)(m->waterLevel - 160)) || (m->faceAngle[0] < -0x800)) { + m->particleFlags |= PARTICLE_BUBBLE; + } +@@ -1450,30 +1713,648 @@ void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) { + /** + * Both increments and decrements Mario's HP. + */ +-void update_mario_health(struct MarioState *m) { +- s32 terrainIsSnow; ++s32 update_mario_health(struct MarioState *m) { ++ s32 terrainIsSnow; ++ s32 gasTimer; ++ s32 coinTimer; ++ s32 allowTransform; ++ u8 starbob = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BOB - 1); ++ u8 starbbh = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_BBH - 1); ++ u8 starccm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_CCM - 1); ++ u8 starhmc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_HMC - 1); ++ u8 starssl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SSL - 1); ++ u8 starsl = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_SL - 1); ++ u8 starwdw = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WDW - 1); ++ u8 starjrb = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_JRB - 1); ++ u8 starthi = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_THI - 1); ++ u8 starttc = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTC - 1); ++ u8 starrr = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_RR - 1); ++ u8 starlll = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_LLL - 1); ++ u8 starddd = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_DDD - 1); ++ u8 starwf = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_WF - 1); ++ u8 starttm = save_file_get_star_flags(gCurrSaveFileNum - 1, COURSE_TTM - 1); ++ ++ // gMarioState->flags &= ~MARIO_IS_SHADOW; ++ //update homing ++ ++ ++ if (m->action == ACT_JUMP || m->action == ACT_DOUBLE_JUMP || m->action == ACT_STEEP_JUMP || m->action == ACT_SIDE_FLIP) { ++ ++ m->homingObj = NULL; ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 25; ++ ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvJumpingBox) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvJumpingBox); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSnufit) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSnufit); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSmallBully) < 800.0f) ++ { ++ //gMarioState->numCoins = 1; ++ // gHudDisplay.coins = 1; ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSmallBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBobomb) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBobomb); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvGoomba) < 800.0f) ++ { ++ ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvGoomba); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBully); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigBullyWithMinions) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigBullyWithMinions); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvPiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvPiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvScuttlebug) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvScuttlebug); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKlepto) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKlepto); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMoneybag) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMoneybag); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvKoopa) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvKoopa); ++ ++ ++ ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFlyGuy) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFlyGuy); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvEnemyLakitu) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvEnemyLakitu); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvMontyMole) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvMontyMole); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvFirePiranhaPlant) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvFirePiranhaPlant); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSkeeter) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSkeeter); ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvSpindrift) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvSpindrift); ++ } ++ ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhvBigChillBully) < 800.0f) ++ { ++ ++ m->homingObj = cur_obj_nearest_object_with_behavior(bhvBigChillBully); ++ } ++ //if (m->interactObj == NULL) ++ if (m->homingObj != NULL) ++ { ++ //if (m->homingObj->oPosY > m->pos[1] - 10.0f || m->homingObj->oDistanceToMario > 800.0f) BULLY ++ if (m->homingObj->oPosY > m->pos[1] - 10.0f) ++ { ++ m->homingObj = NULL; ++ } ++ else ++ { ++ if (count_objects_with_behavior(bhvReticle) < 1) ++ { ++ spawn_object(m->homingObj, MODEL_RETICLE, bhvReticle); ++ ++ } ++ ++ } ++ } ++ else ++ { ++ m->homingObj = NULL; ++ } ++ ++ ++ ++ ++ ++ ++ ++ } ++ ++ ++ m->coinstartotal = ((starbob & (1 << 6)) + (starbbh & (1 << 6)) + (starccm & (1 << 6)) + (starhmc & (1 << 6)) + (starssl & (1 << 6)) + (starsl & (1 << 6)) + (starwdw & (1 << 6)) + (starjrb & (1 << 6)) + (starthi & (1 << 6)) + (starttc & (1 << 6)) + (starrr & (1 << 6)) + (starlll & (1 << 6)) + (starddd & (1 << 6)) + (starwf & (1 << 6)) + (starttm & (1 << 6))) / 64; //+ starbbh + starccm + starhmc + starssl + starsl + starwdw + starjrb + starthi + starttc + starrr + starlll + starddd + starwf + starttm; ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_jet_stream_water_ring_loop) < 800.0f) ++ { ++ m->drownTimer = 0; ++ } ++ ++ if (cur_obj_dist_to_nearest_object_with_behavior(bhv_manta_ray_water_ring_init) < 800.0f) ++ { ++ m->drownTimer = 0; ++ } ++ ++ ++ //u16 capMusic = 0; ++ //gsDPSetEnvColor(100, 100, 100, 100); ++ m->coinTimer++; ++ //gMarioState->numLives = m->area->camera->defMode; ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ // spawn_object(m, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); ++ m->particleFlags |= PARTICLE_SPARKLES; ++ ++ if (gCurrLevelNum != LEVEL_CASTLE_GROUNDS && gCurrLevelNum != LEVEL_CASTLE && gCurrLevelNum != LEVEL_CASTLE_COURTYARD) ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ ++ ++ if (m->coinTimer >= 60) ++ { ++ ++ gMarioState->numCoins += -1; ++ gHudDisplay.coins += -1; ++ m->coinTimer = 0; ++ ++ ++ } ++ ++ } ++ else ++ { ++ if (m->capTimer <= 0) { ++ ++ stop_cap_music(); ++ ++ } ++ ++ if (m->flags & ( MARIO_VANISH_CAP | MARIO_WING_CAP)) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); ++ } ++ ++ if (m->flags & MARIO_METAL_CAP) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_METAL_CAP)); ++ } ++ ++ m->flags &= ~MARIO_IS_SUPER; ++ } ++ } ++ ++ ++ ++ ++ if (m->action != ACT_DIVE) ++ { ++ if (m->action != ACT_SPINDASH) ++ { ++ ++ //gDPSetEnvColor(gDisplayListHead++, 255, 100, 255, 255); ++ cur_obj_set_model(MODEL_SUPER_SONIC); ++ } ++ } ++ //capMusic = SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP); ++ ++ ++ ++ //if (capMusic == 0) { ++ //play_cap_music(SEQUENCE_ARGS(4, SEQ_EVENT_POWERUP)); ++ //capMusic = 1; ++ //} ++ } ++ ++ ++ ++ if (m->action == ACT_JUMP) ++ { ++ ++ } ++ ++ ++ if (allowTransform != 1) ++ { ++ allowTransform = 0; ++ } ++ ++ //m->particleFlags |= PARTICLE_SPARKLES; ++ ++ ++ ++ if ((m->input & INPUT_A_PRESSED) && (m->action == ACT_GROUND_POUND)) ++ { ++ if ((gMarioState->numCoins >= 50) || (gCurrLevelNum == LEVEL_CASTLE_GROUNDS || gCurrLevelNum == LEVEL_CASTLE_COURTYARD || gCurrLevelNum == LEVEL_CASTLE)) { ++ if (count_objects_with_behavior(bhvWigglerHead) < 1) { ++ ++ allowTransform = 1.0; ++ } ++ } ++ //m->forwardVel += 50.0f; ++ //&& !(m->flags & MARIO_IS_SUPER) ++ } ++ ++ //if (stars & (1 << 6)) ++ //{ ++ //gMarioState->numLives = m->coinstartotal; ++ //} ++ //else ++ //{ ++ ++ //gMarioState->numCoins = 99; ++ //gHudDisplay.coins = 99; ++ //} ++ ++ if (m->input & INPUT_A_PRESSED) { ++ ++ // gMarioState->numCoins = 99; ++ // gHudDisplay.coins = 99; ++ } ++ ++ // change coinstar to 7y ++ if (allowTransform == 1 && !(m->flags & MARIO_IS_SUPER) && m->coinstartotal >= 7) ++ { ++ spawn_object_relative(0, 0, 0, 0, m->marioObj, MODEL_EMERALD_CIRCLE, bhvEmeraldCircle); ++ return set_mario_action(m, ACT_TRANSFORM, 0); ++ ++ ++ ++ ++ //m->forwardVel += 50.0f; ++ //play_cap_music(capMusic); ++ m->coinTimer = 0; ++ ++ ++ } ++ ++ ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins == 0) ++ { ++ if (m->health > 0x100) ++ { ++ //m->health = 0x100; ++ } ++ } ++ //obj_spawn_yellow_coins(m->marioObj, 5); ++ //play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ if (m->action == ACT_DIVE && m->interactObj != NULL) ++ { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; ++ //m->faceAngle[1] = mario_obj_angle_to_object(m, m->interactObj); ++ ++ ++ } ++ ++ if (m->action != ACT_JUMP) ++ { ++ if (m->action != ACT_SPINDASH) ++ { ++ if (m->action != ACT_DIVE) ++ { ++ if (m->action != ACT_GROUND_POUND) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_MARIO); ++ } ++ ++ } ++ } ++ } ++ } ++ ++ if (m->action == ACT_METAL_WATER_JUMP) ++ { ++ ++ if (m->vel[1] >= 1.0f) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ } ++ } ++ ++ if (m->action == ACT_JUMP) ++ { ++ ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ } ++ ++ if (m->action == ACT_SHOT_FROM_CANNON) ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_GROUND_POUND) ++ { ++ ++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.15f, 0.8f); ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ ++ } ++ ++ if (m->action == ACT_SPINDASH) ++ { ++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; ++ if (m->forwardVel < 50.0f) ++ { ++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 2900; ++ } ++ m->faceAngle[1] = m->intendedYaw; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.85f, 1.0f, 0.85f); ++ ++ ++ ++ } ++ ++ ++ ++ ++ ++ ++ if (m->action == ACT_JUMP) ++ { ++ if (m->actionTimer > 0 && m->actionTimer < 3) ++ { ++ cur_obj_scale(0.8f); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_MARIO); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_SONIC); ++ } ++ ++ ++ } ++ else ++ { ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] - 35; ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; ++ ++ ++ } ++ } ++ + + if (m->health >= 0x100) { + // When already healing or hurting Mario, Mario's HP is not changed any more here. + if (((u32) m->healCounter | (u32) m->hurtCounter) == 0) { +- if ((m->input & INPUT_IN_POISON_GAS) && !(m->action & ACT_FLAG_INTANGIBLE)) { +- if (!(m->flags & MARIO_METAL_CAP) && !gDebugLevelSelect) { +- m->health -= 4; ++ if ((m->input & INPUT_IN_POISON_GAS) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { ++ if (((m->flags & MARIO_METAL_CAP) == 0) && (gDebugLevelSelect == 0)) { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->health -= 4; ++ } ++ } ++ else ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->gasTimer--; ++ ++ if (gMarioState->numCoins > 0) ++ { ++ if (m->gasTimer <= 0) ++ { ++ obj_spawn_yellow_coins(m->marioObj, 1); ++ gMarioState->numCoins -= 1; ++ gHudDisplay.coins -= 1; ++ m->gasTimer = 10; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + } + } else { +- if ((m->action & ACT_FLAG_SWIMMING) && !(m->action & ACT_FLAG_INTANGIBLE)) { ++ if ((m->action & ACT_FLAG_SWIMMING) && ((m->action & ACT_FLAG_INTANGIBLE) == 0)) { + terrainIsSnow = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW; + + // When Mario is near the water surface, recover health (unless in snow), + // when in snow terrains lose 3 health. + // If using the debug level select, do not lose any HP to water. + if ((m->pos[1] >= (m->waterLevel - 140)) && !terrainIsSnow) { +- m->health += 0x1A; +- } else if (!gDebugLevelSelect) { +- m->health -= (terrainIsSnow ? 3 : 1); ++ m->health += 0x4F; ++ } else if (gDebugLevelSelect == 0) { ++ // m->health -= (terrainIsSnow ? 3 : 1); + } + } + } ++ if (m->pos[1] <= (m->waterLevel - 140)) ++ { ++ if (m->flags & MARIO_METAL_CAP || m->flags & MARIO_IS_SUPER) ++ { ++ } ++ else ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->health -= (terrainIsSnow ? 3 : 1); ++ } ++ else ++ { ++ ++ ++ if (m->action != ACT_STAR_DANCE_WATER) { ++ ++ m->drownTimer++; ++ } ++ } ++ //gMarioState->numLives = m->drownTimer; ++ if (m->drownTimer == 480) ++ { ++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ ++ if (m->drownTimer == 540) ++ { ++ play_sound(SOUND_MOVING_ALMOST_DROWNING, gGlobalSoundSource); ++ } ++ ++ if (m->drownTimer == 600) ++ { ++ play_drown_music(); ++ spawn_orange_number(5, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 660) ++ { ++ spawn_orange_number(4, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 720) ++ { ++ spawn_orange_number(3, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 780) ++ { ++ spawn_orange_number(2, 0, 0 + 110, 0); ++ } ++ if (m->drownTimer == 840) ++ { ++ spawn_orange_number(1, 0, 0 + 110, 0); ++ } ++ ++ if ++ (m->drownTimer == 900) ++ { ++ spawn_orange_number(0, 0 , 0 + 110, 0); ++ } ++ ++ if (m->drownTimer == 950) ++ { ++ stop_drown_music(); ++ set_mario_action(m, ACT_DROWNING, 0); ++ ++ } ++ if (m->drownTimer > 950) ++ { ++ stop_drown_music(); ++ ++ } ++ ++ } ++ } ++ if (m->pos[1] >= (m->waterLevel - 120)) ++ { ++ if (gCurrLevelNum != LEVEL_SL) ++ { ++ m->drownTimer = 0; ++ ++ } ++ else ++ { ++ m->drownTimer = 590; ++ } ++ if (!(m->action & ACT_FLAG_RIDING_SHELL)) ++ { ++ stop_drown_music(); ++ } ++ } ++ if ((m->pos[1] >= (m->waterLevel - 120)) && !terrainIsSnow && ((m->action == ACT_METAL_WATER_WALKING) || (m->action == ACT_WATER_JUMP))) { ++ m->health += 0x1A; ++ } + } + + if (m->healCounter > 0) { +@@ -1485,7 +2366,7 @@ void update_mario_health(struct MarioState *m) { + m->hurtCounter--; + } + +- if (m->health > 0x880) { ++ if (m->health >= 0x881) { + m->health = 0x880; + } + if (m->health < 0x100) { +@@ -1518,7 +2399,7 @@ void update_mario_info_for_cam(struct MarioState *m) { + + vec3s_copy(m->statusForCamera->faceAngle, m->faceAngle); + +- if (!(m->flags & MARIO_UNKNOWN_25)) { ++ if ((m->flags & MARIO_UNKNOWN_25) == 0) { + vec3f_copy(m->statusForCamera->pos, m->pos); + } + } +@@ -1577,23 +2458,30 @@ u32 update_and_return_cap_flags(struct MarioState *m) { + } + + if (m->capTimer == 0) { +- stop_cap_music(); +- +- m->flags &= ~MARIO_SPECIAL_CAPS; +- if (!(m->flags & MARIO_CAPS)) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ stop_cap_music(); ++ } ++ ++ m->flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); ++ if ((m->flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) ++ == 0) { + m->flags &= ~MARIO_CAP_ON_HEAD; + } + } +- +- if (m->capTimer == 60) { +- fadeout_cap_music(); +- } ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (m->capTimer == 0x3C) { ++ fadeout_cap_music(); ++ } ++ } + + // This code flickers the cap through a long binary string, increasing in how + // common it flickers near the end. +- if ((m->capTimer < 64) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { +- flags &= ~MARIO_SPECIAL_CAPS; +- if (!(flags & MARIO_CAPS)) { ++ if ((m->capTimer < 0x40) && ((1ULL << m->capTimer) & sCapFlickerFrames)) { ++ flags &= ~(MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP); ++ if ((flags & (MARIO_NORMAL_CAP | MARIO_VANISH_CAP | MARIO_METAL_CAP | MARIO_WING_CAP)) ++ == 0) { + flags &= ~MARIO_CAP_ON_HEAD; + } + } +@@ -1607,7 +2495,76 @@ u32 update_and_return_cap_flags(struct MarioState *m) { + */ + void mario_update_hitbox_and_cap_model(struct MarioState *m) { + struct MarioBodyState *bodyState = m->marioBodyState; ++ extern const u16 super_sonic_sonic_super_surface_rgba16[]; ++ extern const u16 super_sonic_sonic_super_surface_replacer_rgba16[]; ++ u16* supertexture = segmented_to_virtual(super_sonic_sonic_super_surface_rgba16); ++ u16* supertexturereplacer = segmented_to_virtual(super_sonic_sonic_super_surface_replacer_rgba16); + s32 flags = update_and_return_cap_flags(m); ++ ++ m->marioObj->oSuperTimer += 1; ++ ++ ++ if (flags & MARIO_IS_SUPER) { ++ if (m->floor->type == SURFACE_BURNING) { ++ if (5.0f > absf(gMarioState->marioObj->oPosY - m->floorHeight)) { ++ spawn_object(gMarioState->marioObj, MODEL_RED_FLAME, bhvKoopaShellFlame); ++ } ++ } ++ } ++ ++ switch (m->marioObj->oSuperTimer) { ++ ++ case 2: ++ bcopy(supertexturereplacer + 5, supertexture, 2 * 32 * 32); ++ ++ break; ++ case 4: ++ bcopy(supertexturereplacer + 10, supertexture, 2 * 32 * 32); ++ break; ++ case 6: ++ bcopy(supertexturereplacer + 15, supertexture, 2 * 32 * 32); ++ break; ++ case 8: ++ bcopy(supertexturereplacer + 20, supertexture, 2 * 32 * 32); ++ break; ++ case 10: ++ bcopy(supertexturereplacer + 25, supertexture, 2 * 32 * 32); ++ break; ++ case 12: ++ bcopy(supertexturereplacer + 30, supertexture, 2 * 32 * 32); ++ break; ++ case 14: ++ bcopy(supertexturereplacer + 35, supertexture, 2 * 32 * 32); ++ break; ++ case 16: ++ bcopy(supertexturereplacer + 40, supertexture, 2 * 32 * 32); ++ break; ++ case 18: ++ bcopy(supertexturereplacer + 45, supertexture, 2 * 32 * 32); ++ break; ++ case 20: ++ bcopy(supertexturereplacer + 50, supertexture, 2 * 32 * 32); ++ break; ++ case 22: ++ bcopy(supertexturereplacer + 55, supertexture, 2 * 32 * 32); ++ break; ++ case 24: ++ bcopy(supertexturereplacer + 60, supertexture, 2 * 32 * 32); ++ break; ++ case 26: ++ bcopy(supertexturereplacer + 0, supertexture, 2 * 32 * 32); ++ m->marioObj->oSuperTimer = 0; ++ break; ++ } ++ ++ ++ ++ ++ ++ ++ ++ ++ + + if (flags & MARIO_VANISH_CAP) { + bodyState->modelState = MODEL_STATE_NOISE_ALPHA; +@@ -1621,11 +2578,13 @@ void mario_update_hitbox_and_cap_model(struct MarioState *m) { + bodyState->modelState |= MODEL_STATE_METAL; + } + +- //! (Pause buffered hitstun) Since the global timer increments while paused, +- // this can be paused through to give continual invisibility. This leads to +- // no interaction with objects. +- if ((m->invincTimer >= 3) && (gGlobalTimer & 1)) { +- gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; ++ if (m->invincTimer >= 3) { ++ //! (Pause buffered hitstun) Since the global timer increments while paused, ++ // this can be paused through to give continual invisibility. This leads to ++ // no interaction with objects. ++ if (gGlobalTimer & 1) { ++ gMarioState->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; ++ } + } + + if (flags & MARIO_CAP_IN_HAND) { +@@ -1666,7 +2625,7 @@ static void debug_update_mario_cap(u16 button, s32 flags, u16 capTimer, u16 capM + // (which is also what other debug functions do), + // so likely debug behavior rather than unused behavior. + if ((gPlayer1Controller->buttonDown & Z_TRIG) && (gPlayer1Controller->buttonPressed & button) +- && !(gMarioState->flags & flags)) { ++ && ((gMarioState->flags & flags) == 0)) { + gMarioState->flags |= (flags + MARIO_CAP_ON_HEAD); + + if (capTimer > gMarioState->capTimer) { +@@ -1785,11 +2744,12 @@ s32 execute_mario_action(UNUSED struct Object *o) { + **************************************************/ + + void init_mario(void) { ++ + Vec3s capPos; + struct Object *capObject; + + unused80339F10 = 0; +- ++ gMarioState->hasEmerald = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1) & (1 << 6); + gMarioState->actionTimer = 0; + gMarioState->framesSinceA = 0xFF; + gMarioState->framesSinceB = 0xFF; +@@ -1798,12 +2758,15 @@ void init_mario(void) { + + if (save_file_get_flags() + & (SAVE_FLAG_CAP_ON_GROUND | SAVE_FLAG_CAP_ON_KLEPTO | SAVE_FLAG_CAP_ON_UKIKI +- | SAVE_FLAG_CAP_ON_MR_BLIZZARD)) { ++ | SAVE_FLAG_CAP_ON_MR_BLIZZARD )) { + gMarioState->flags = 0; + } else { +- gMarioState->flags = (MARIO_NORMAL_CAP | MARIO_CAP_ON_HEAD); +- } + ++ gMarioState->flags = (MARIO_CAP_ON_HEAD | MARIO_NORMAL_CAP); ++ ++ } ++ //gMarioState->flags |= MARIO_IS_SHADOW; ++ gMarioState->flags &= ~MARIO_IS_SHADOW; + gMarioState->forwardVel = 0.0f; + gMarioState->squishTimer = 0; + diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index 34090a55..89ba756e 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -2,6 +2,7 @@ #include "sm64.h" #include "area.h" +#include "audio/data.h" #include "audio/external.h" #include "camera.h" #include "engine/graph_node.h" @@ -13,6 +14,11 @@ #include "mario_step.h" #include "save_file.h" #include "rumble_init.h" +#include "ingame_menu.h" +#include "level_update.h" +#include "object_helpers.h" +#include "sound_init.h" +#include "seq_ids.h" void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) { s32 animFrame = m->marioObj->header.gfx.animInfo.animFrame; @@ -25,10 +31,13 @@ void play_far_fall_sound(struct MarioState *m) { u32 action = m->action; if (!(action & ACT_FLAG_INVULNERABLE) && action != ACT_TWIRLING && action != ACT_FLYING && !(m->flags & MARIO_UNKNOWN_18)) { - if (m->peakHeight - m->pos[1] > 1150.0f) { - play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); - m->flags |= MARIO_UNKNOWN_18; - } + if (gDialogHealthSystem != SONIC_HEALTH) + { + if (m->peakHeight - m->pos[1] > 1150.0f) { + play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); + m->flags |= MARIO_UNKNOWN_18; + } + } } } @@ -49,9 +58,30 @@ s32 lava_boost_on_wall(struct MarioState *m) { m->forwardVel = 24.0f; } - if (!(m->flags & MARIO_METAL_CAP)) { - m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; - } + if (!(m->flags & MARIO_METAL_CAP)) { + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) + { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; + } + else + { + if (gMarioState->numCoins >= 50) { + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } else { + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + if (gMarioState->numCoins == 0) { + m->health = 0xFF; + } + } + } + } play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); update_mario_sound_and_camera(m); @@ -61,49 +91,69 @@ s32 lava_boost_on_wall(struct MarioState *m) { s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) { f32 fallHeight; f32 damageHeight; - - fallHeight = m->peakHeight - m->pos[1]; - + if (gDialogHealthSystem != SONIC_HEALTH ) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + fallHeight = m->peakHeight - m->pos[1]; + } + } + else + { + fallHeight = 0; + } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wtype-limits" //! Never true - if (m->actionState == ACT_GROUND_POUND) { - damageHeight = 600.0f; - } else { - damageHeight = 1150.0f; - } + + + if (m->actionState == ACT_GROUND_POUND) { + damageHeight = 600.0f; + } + else { + damageHeight = 1150.0f; + } #pragma GCC diagnostic pop - if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { - if (m->vel[1] < -55.0f) { - if (fallHeight > 3000.0f) { - m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif - set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); - play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); - return drop_and_set_mario_action(m, hardFallAction, 4); - } else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { - m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; - m->squishTimer = 30; -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif - set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); - play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); - } - } - } + if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { + if (m->vel[1] < -55.0f) { + if (fallHeight > 3000.0f) { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; - return FALSE; + set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); + play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); + return drop_and_set_mario_action(m, hardFallAction, 4); + } + else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; + m->squishTimer = 30; + + + set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); + play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); + } + } + } + + return FALSE; + } s32 check_kick_or_dive_in_air(struct MarioState *m) { if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, m->forwardVel > 28.0f ? ACT_DIVE : ACT_JUMP_KICK, 0); + if (m->action == ACT_DIVE_SLIDE) + { + // m->forwardVel *= 4.4f; + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); + + return set_mario_action(m, m->forwardVel > 0.3f ? ACT_SLIDE_KICK_SLIDE : ACT_JUMP_KICK, 0); + } + else + { + return set_mario_action(m, m->forwardVel > 0.3f ? ACT_DIVE : ACT_JUMP_KICK, 0); + } } return FALSE; } @@ -133,9 +183,8 @@ s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction) { #endif m->particleFlags |= PARTICLE_MIST_CIRCLE; drop_and_set_mario_action(m, ACT_FEET_STUCK_IN_GROUND, 0); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + + return TRUE; } @@ -180,33 +229,122 @@ s32 check_horizontal_wind(struct MarioState *m) { } void update_air_with_turn(struct MarioState *m) { - f32 dragThreshold; - s16 intendedDYaw; - f32 intendedMag; + f32 dragThreshold; + s16 intendedDYaw; + f32 intendedMag; + f32 homingDist; + f32 sp34; + f32 sp30; + f32 sp2C; + s16 sp2A; + struct Object *object; + object = 0; - if (!check_horizontal_wind(m)) { - dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; - m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); + if (m->homingObj == NULL) + { - if (m->input & INPUT_NONZERO_ANALOG) { - intendedDYaw = m->intendedYaw - m->faceAngle[1]; - intendedMag = m->intendedMag / 32.0f; - m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; - m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; + if (!check_horizontal_wind(m)) { + + dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); + + if (m->input & INPUT_NONZERO_ANALOG) { + + intendedDYaw = m->intendedYaw - m->faceAngle[1]; + intendedMag = m->intendedMag / 32.0f; + + m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; + m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; + + } + + //! Uncapped air speed. Net positive when moving forward. + if (m->forwardVel > dragThreshold) { + m->forwardVel -= 1.0f; + } + if (m->forwardVel < -16.0f) { + m->forwardVel += 2.0f; + } + + m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + } + } + else + { + + if (m->marioObj->collidedObjInteractTypes & INTERACT_BOUNCE_TOP) { + object = mario_get_collided_object(m, INTERACT_BOUNCE_TOP); } - - //! Uncapped air speed. Net positive when moving forward. - if (m->forwardVel > dragThreshold) { - m->forwardVel -= 1.0f; - } - if (m->forwardVel < -16.0f) { - m->forwardVel += 2.0f; + if (m->marioObj->collidedObjInteractTypes & INTERACT_HIT_FROM_BELOW) { + object = mario_get_collided_object(m, INTERACT_HIT_FROM_BELOW); } + m->actionTimer++; + // if (m->homingObj->oDistanceToMario <= 800.0f) + // { + homingDist = lateral_dist_between_objects(gMarioState->marioObj, m->homingObj); + //BULLY + // } + /* + else + { + homingDist = 800.0f; + } + if (homingDist >= 800.0f) + { + homingDist = 800.0f; + } + */ - m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); - m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); - } + if (m->action == ACT_DIVE) + { + + if (m->homingObj != object) + { + + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + sp34 = m->homingObj->oPosX - m->pos[0]; + sp30 = m->homingObj->oPosY - m->pos[1] + 15.0f; + sp2C = m->homingObj->oPosZ - m->pos[2]; + sp2A = atan2s(sqrtf(sqr(sp34) + sqr(sp2C)), sp30); + + + m->faceAngle[1] = mario_obj_angle_to_object(m, m->homingObj); + m->faceAngle[0] = approach_s16_symmetric(m->faceAngle[0], sp2A, 0x800); + + m->forwardVel = coss(m->faceAngle[0]) * 1.0f * (homingDist / 3.0f); + if (m->forwardVel >= 300.0f || homingDist >= 500.0f) + { + m->forwardVel = 300.0f; + } + + m->intendedYaw = m->faceAngle[1]; + m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + + + if (m->actionTimer > 120) + { + drop_and_set_mario_action(m, ACT_FREEFALL, 0); + } + } + + if (m->homingObj->oInteractStatus & INT_STATUS_INTERACTED) + { + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + + m->homingObj = NULL; + + + + m->faceAngle[1] = m->intendedYaw; + m->action = ACT_DOUBLE_JUMP; + } + + + } + } } void update_air_without_turn(struct MarioState *m) { @@ -222,9 +360,23 @@ void update_air_without_turn(struct MarioState *m) { if (m->input & INPUT_NONZERO_ANALOG) { intendedDYaw = m->intendedYaw - m->faceAngle[1]; intendedMag = m->intendedMag / 32.0f; - - m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; - sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; + if (m->action != ACT_JUMP) + { + m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; + sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; + } + else + { + if (m->forwardVel < 55.0f) { + m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; + sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; + } + else + { + m->forwardVel += intendedMag * coss(intendedDYaw) * 1.0f; + sidewaysSpeed = intendedMag * sins(intendedDYaw) * 5.0f; + } + } } //! Uncapped air speed. Net positive when moving forward. @@ -324,6 +476,7 @@ void update_flying_pitch(struct MarioState *m) { } else { m->angleVel[0] = approach_s32(m->angleVel[0], 0, 0x40, 0x40); } + } void update_flying(struct MarioState *m) { @@ -331,6 +484,16 @@ void update_flying(struct MarioState *m) { update_flying_pitch(m); update_flying_yaw(m); + if (!(m->flags & MARIO_IS_SUPER )) + { + set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + } + + if (m->flags & MARIO_IS_SUPER && m->forwardVel < 800.0f) + { + m->forwardVel += 0.6f; + } + m->forwardVel -= 2.0f * ((f32) m->faceAngle[0] / 0x4000) + 0.1f; m->forwardVel -= 0.5f * (1.0f - coss(m->angleVel[1])); @@ -338,14 +501,25 @@ void update_flying(struct MarioState *m) { if (m->forwardVel < 0.0f) { m->forwardVel = 0.0f; } + if (!(m->flags & MARIO_IS_SUPER)) + { + if (m->forwardVel > 16.0f) { + m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; + } + else if (m->forwardVel > 4.0f) { + m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; + } + else { + m->faceAngle[0] -= 0x400; + } + } + else + { + if (m->forwardVel < 4.0f) { + m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; + } + } - if (m->forwardVel > 16.0f) { - m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; - } else if (m->forwardVel > 4.0f) { - m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; - } else { - m->faceAngle[0] -= 0x400; - } m->faceAngle[0] += m->angleVel[0]; @@ -385,9 +559,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, set_mario_animation(m, animation); if (m->forwardVel > 16.0f) { -#ifdef VERSION_SH - queue_rumble_data(5, 40); -#endif + mario_bonk_reflection(m, FALSE); m->faceAngle[1] += 0x8000; @@ -440,25 +612,84 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, } s32 act_jump(struct MarioState *m) { - if (check_kick_or_dive_in_air(m)) { - return TRUE; - } + + m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x1000, 0x1000); - if (m->input & INPUT_Z_PRESSED) { - return set_mario_action(m, ACT_GROUND_POUND, 0); - } + if (m->actionTimer > 7) + { + m->actionTimer = 0; + } + m->actionTimer++; + if (check_kick_or_dive_in_air(m)) { + return TRUE; + } + if (m->input & INPUT_Z_PRESSED) { + return set_mario_action(m, ACT_GROUND_POUND, 0); + } + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SINGLE_JUMP, + common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_FORWARD_SPINNING, AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); return FALSE; } +s32 act_transform(struct MarioState *m) { + m->actionTimer += 1; + set_mario_animation(m, MARIO_ANIM_START_FORWARD_SPINNING); + if (is_anim_past_end(m)) { + drop_and_set_mario_action(m, ACT_FREEFALL, 0); + } + if (m->actionTimer > 0 && m->actionTimer < 16) + { + } + if (m->actionTimer > 3 && m->actionTimer < 7) + { + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + } + + if (m->actionTimer > 7 && m->actionTimer < 18) + { + m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + } + + if (m->actionTimer == 18) + { + play_cap_music(SEQUENCE_ARGS(4, SEQ_SUPER)); + //gMarioState->isSuper = 1; + m->flags |= MARIO_IS_SUPER; + //gMarioState->flags = MARIO_IS_SUPER; + play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); + //play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); + // play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); + //play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); + } + + + + m->pos[1] = m->pos[1]; + m->pos[2] = m->pos[2]; + m->pos[0] = m->pos[0]; +} + s32 act_double_jump(struct MarioState *m) { s32 animation = (m->vel[1] >= 0.0f) ? MARIO_ANIM_DOUBLE_JUMP_RISE : MARIO_ANIM_DOUBLE_JUMP_FALL; + update_air_with_turn(m); + + + + + m->forwardVel = 50.0f; + if (m->forwardVel >= 50.0f) + { + m->forwardVel = 50.0f; + } + + + if (check_kick_or_dive_in_air(m)) { return TRUE; } @@ -493,11 +724,9 @@ s32 act_triple_jump(struct MarioState *m) { #endif common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_TRIPLE_JUMP, 0); -#ifdef VERSION_SH if (m->action == ACT_TRIPLE_JUMP_LAND) { - queue_rumble_data(5, 40); + } -#endif play_flip_sounds(m, 2, 8, 20); return FALSE; } @@ -508,19 +737,22 @@ s32 act_backflip(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_YAH_WAH_HOO); - common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_BACKFLIP, 0); -#ifdef VERSION_SH + common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_FORWARD_SPINNING, 0); + if (m->action == ACT_BACKFLIP_LAND) { - queue_rumble_data(5, 40); + } -#endif play_flip_sounds(m, 2, 3, 17); return FALSE; } s32 act_freefall(struct MarioState *m) { s32 animation; - + //limits fall speed after roll + if (m->forwardVel >= 130.0f && m->prevAction == ACT_DIVE_SLIDE) + { + m->forwardVel = 130.0f; + } if (m->input & INPUT_B_PRESSED) { return set_mario_action(m, ACT_DIVE, 0); } @@ -604,7 +836,7 @@ s32 act_side_flip(struct MarioState *m) { m->marioObj->header.gfx.angle[1] += 0x8000; } - // This must be one line to match on -O2 + // (this need to be on one line to match on PAL) // clang-format off if (m->marioObj->header.gfx.animInfo.animFrame == 6) play_sound(SOUND_ACTION_SIDE_FLIP_UNK, m->marioObj->header.gfx.cameraToObject); // clang-format on @@ -641,11 +873,10 @@ s32 act_long_jump(struct MarioState *m) { } common_air_action_step(m, ACT_LONG_JUMP_LAND, animation, AIR_STEP_CHECK_LEDGE_GRAB); -#ifdef VERSION_SH + if (m->action == ACT_LONG_JUMP_LAND) { - queue_rumble_data(5, 40); + } -#endif return FALSE; } @@ -677,6 +908,9 @@ s32 act_twirling(struct MarioState *m) { s16 startTwirlYaw = m->twirlYaw; s16 yawVelTarget; + //homing fix + m->homingObj = NULL; + if (m->input & INPUT_A_DOWN) { yawVelTarget = 0x2000; } else { @@ -718,14 +952,33 @@ s32 act_twirling(struct MarioState *m) { return FALSE; } + + + s32 act_dive(struct MarioState *m) { + + + if ((m->flags & MARIO_WING_CAP) ) { + set_mario_action(m, ACT_FLYING, 0); + } if (m->actionArg == 0) { play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_HOOHOO); } else { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); } + //m->particleFlags |= PARTICLE_SPARKLES; - set_mario_animation(m, MARIO_ANIM_DIVE); +if (!(m->flags & MARIO_IS_SUPER)) +{ + cur_obj_set_model(MODEL_SONIC_BALL); + m->particleFlags |= PARTICLE_SONIC_TRAIL; +} +else +{ + cur_obj_set_model(MODEL_SUPER_BALL); + m->particleFlags |= PARTICLE_SUPER_TRAIL; +} + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); if (mario_check_object_grab(m)) { mario_grab_used_object(m); m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; @@ -734,34 +987,23 @@ s32 act_dive(struct MarioState *m) { } } - update_air_without_turn(m); + update_air_with_turn(m); switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: - if (m->vel[1] < 0.0f && m->faceAngle[0] > -0x2AAA) { - m->faceAngle[0] -= 0x200; - if (m->faceAngle[0] < -0x2AAA) { - m->faceAngle[0] = -0x2AAA; - } - } - m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; break; case AIR_STEP_LANDED: if (should_get_stuck_in_ground(m) && m->faceAngle[0] == -0x2AAA) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif -#ifdef VERSION_JP - play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); -#else + + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); -#endif + m->particleFlags |= PARTICLE_MIST_CIRCLE; drop_and_set_mario_action(m, ACT_HEAD_STUCK_IN_GROUND, 0); } else if (!check_fall_damage(m, ACT_HARD_FORWARD_GROUND_KB)) { if (m->heldObj == NULL) { - set_mario_action(m, ACT_DIVE_SLIDE, 0); + set_mario_action(m, ACT_WALKING, 0); } else { set_mario_action(m, ACT_DIVE_PICKING_UP, 0); } @@ -828,7 +1070,7 @@ s32 act_water_jump(struct MarioState *m) { switch (perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB)) { case AIR_STEP_LANDED: set_mario_action(m, ACT_JUMP_LAND, 0); - set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); break; case AIR_STEP_HIT_WALL: @@ -840,7 +1082,7 @@ s32 act_water_jump(struct MarioState *m) { set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); #endif set_mario_action(m, ACT_LEDGE_GRAB, 0); - set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); break; case AIR_STEP_HIT_LAVA_WALL: @@ -917,20 +1159,22 @@ s32 act_ground_pound(struct MarioState *m) { play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); - if (m->actionState == 0) { + if (m->actionState != 0) { if (m->actionTimer < 10) { yOffset = 20 - 2 * m->actionTimer; if (m->pos[1] + yOffset + 160.0f < m->ceilHeight) { m->pos[1] += yOffset; + m->peakHeight = m->pos[1]; vec3f_copy(m->marioObj->header.gfx.pos, m->pos); } } - m->vel[1] = -50.0f; + m->vel[1] = -80.0f; + mario_set_forward_vel(m, 0.0f); - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_GROUND_POUND + set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_FORWARD_SPINNING : MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND); if (m->actionTimer == 0) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); @@ -942,14 +1186,28 @@ s32 act_ground_pound(struct MarioState *m) { m->actionState = 1; } } else { - set_mario_animation(m, MARIO_ANIM_GROUND_POUND); + m->vel[1] = -50.0f; + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + m->particleFlags |= PARTICLE_SONIC_TRAIL; + + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + m->particleFlags |= PARTICLE_SUPER_TRAIL; + } + + //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; + m->marioObj->header.gfx.animInfo.animAccel = 0x30000; + + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); stepResult = perform_air_step(m, 0); if (stepResult == AIR_STEP_LANDED) { if (should_get_stuck_in_ground(m)) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + #ifdef VERSION_JP play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); #else @@ -958,7 +1216,7 @@ s32 act_ground_pound(struct MarioState *m) { m->particleFlags |= PARTICLE_MIST_CIRCLE; set_mario_action(m, ACT_BUTT_STUCK_IN_GROUND, 0); } else { - play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_HEAVY_LANDING); + play_sound(SOUND_OBJ_WATER_BOMB_BOUNCING, m->marioObj->header.gfx.cameraToObject); if (!check_fall_damage(m, ACT_HARD_BACKWARD_GROUND_KB)) { m->particleFlags |= PARTICLE_MIST_CIRCLE | PARTICLE_HORIZONTAL_STAR; set_mario_action(m, ACT_GROUND_POUND_LAND, 0); @@ -993,14 +1251,21 @@ s32 act_burning_jump(struct MarioState *m) { play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); m->marioObj->oMarioBurnTimer += 3; + if (gDialogHealthSystem != SONIC_HEALTH) + { + + + if (!(m->flags & MARIO_IS_SUPER)) + { + m->health -= 10; + } + if (m->health < 0x100) { + m->health = 0xFF; + } + + + } - m->health -= 10; - if (m->health < 0x100) { - m->health = 0xFF; - } -#ifdef VERSION_SH - reset_rumble_timers(); -#endif return FALSE; } @@ -1020,9 +1285,8 @@ s32 act_burning_fall(struct MarioState *m) { if (m->health < 0x100) { m->health = 0xFF; } -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + + return FALSE; } @@ -1071,9 +1335,7 @@ s32 act_crazy_box_bounce(struct MarioState *m) { m->heldObj = NULL; set_mario_action(m, ACT_STOMACH_SLIDE, 0); } -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + ; m->particleFlags |= PARTICLE_MIST_CIRCLE; break; @@ -1151,7 +1413,7 @@ s32 check_wall_kick(struct MarioState *m) { s32 act_backward_air_kb(struct MarioState *m) { if (check_wall_kick(m)) { - return TRUE; + return 1; } #ifndef VERSION_JP @@ -1165,7 +1427,7 @@ s32 act_backward_air_kb(struct MarioState *m) { s32 act_forward_air_kb(struct MarioState *m) { if (check_wall_kick(m)) { - return TRUE; + return 1; } #ifndef VERSION_JP @@ -1242,7 +1504,7 @@ s32 act_thrown_forward(struct MarioState *m) { s32 act_soft_bonk(struct MarioState *m) { if (check_wall_kick(m)) { - return TRUE; + return 1; } #ifndef VERSION_JP @@ -1341,9 +1603,10 @@ s32 act_air_hit_wall(struct MarioState *m) { //! Missing return statement. The returned value is the result of the call // to set_mario_animation. In practice, this value is nonzero. // This results in this action "cancelling" into itself. It is supposed to - // execute on two frames, but instead it executes twice on the same frame. + // execute three times, each on a separate frame, but instead it executes + // three times on the same frame. // This results in firsties only being possible for a single frame, instead - // of two. + // of three. } s32 act_forward_rollout(struct MarioState *m) { @@ -1505,14 +1768,11 @@ s32 act_hold_butt_slide_air(struct MarioState *m) { } s32 act_lava_boost(struct MarioState *m) { -#ifdef VERSION_SH if (!(m->flags & MARIO_MARIO_SOUND_PLAYED)) { play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); - queue_rumble_data(5, 80); + } -#else play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); -#endif if (!(m->input & INPUT_NONZERO_ANALOG)) { m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); @@ -1525,13 +1785,35 @@ s32 act_lava_boost(struct MarioState *m) { if (m->floor->type == SURFACE_BURNING) { m->actionState = 0; if (!(m->flags & MARIO_METAL_CAP)) { - m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) + { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; + } + else + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } else { + obj_spawn_yellow_coins(m->marioObj, + gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + + if (gMarioState->numCoins == 0) { + m->health = 0xFF; + } + } + } } m->vel[1] = 84.0f; play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + } else { play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); if (m->actionState < 2 && m->vel[1] < 0.0f) { @@ -1567,42 +1849,32 @@ s32 act_lava_boost(struct MarioState *m) { } m->marioBodyState->eyeState = MARIO_EYES_DEAD; -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + + return FALSE; } s32 act_slide_kick(struct MarioState *m) { if (m->actionState == 0 && m->actionTimer == 0) { - play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HOOHOO); + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); } - if (++(m->actionTimer) > 30 && m->pos[1] - m->floorHeight > 500.0f) { - return set_mario_action(m, ACT_FREEFALL, 2); - } - update_air_without_turn(m); + + switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: if (m->actionState == 0) { - m->marioObj->header.gfx.angle[0] = atan2s(m->forwardVel, -m->vel[1]); - if (m->marioObj->header.gfx.angle[0] > 0x1800) { - m->marioObj->header.gfx.angle[0] = 0x1800; - } + set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); } break; case AIR_STEP_LANDED: - if (m->actionState == 0 && m->vel[1] < 0.0f) { - m->vel[1] = -m->vel[1] / 2.0f; - m->actionState = 1; - m->actionTimer = 0; - } else { + set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); - } + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); break; @@ -1670,7 +1942,8 @@ s32 act_shot_from_cannon(struct MarioState *m) { switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: - set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); + set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_SPINNING, 0x20000); + //set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); m->faceAngle[0] = atan2s(m->forwardVel, m->vel[1]); m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; break; @@ -1678,10 +1951,18 @@ s32 act_shot_from_cannon(struct MarioState *m) { case AIR_STEP_LANDED: set_mario_action(m, ACT_DIVE_SLIDE, 0); m->faceAngle[0] = 0; +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, m->area->camera->defMode, 1); -#ifdef VERSION_SH - queue_rumble_data(5, 80); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } #endif + break; case AIR_STEP_HIT_WALL: @@ -1694,7 +1975,17 @@ s32 act_shot_from_cannon(struct MarioState *m) { m->particleFlags |= PARTICLE_VERTICAL_STAR; set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif break; case AIR_STEP_HIT_LAVA_WALL: @@ -1713,38 +2004,83 @@ s32 act_shot_from_cannon(struct MarioState *m) { if (m->vel[1] > 0.0f) { m->particleFlags |= PARTICLE_DUST; } -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + + return FALSE; } s32 act_flying(struct MarioState *m) { s16 startPitch = m->faceAngle[0]; + f32 val14; + val14 = (s32)(m->forwardVel / 10.5f * 0x10000); if (m->input & INPUT_Z_PRESSED) { if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } return set_mario_action(m, ACT_GROUND_POUND, 1); } if (!(m->flags & MARIO_WING_CAP)) { if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } return set_mario_action(m, ACT_FREEFALL, 0); } if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } if (m->actionState == 0) { if (m->actionArg == 0) { - set_mario_animation(m, MARIO_ANIM_FLY_FROM_CANNON); + if (m->flags & MARIO_IS_SUPER) + { + set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); + } + else + { + set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + } } else { - set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + if (m->flags & MARIO_IS_SUPER) + { + set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); + } + else + { + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + } if (m->marioObj->header.gfx.animInfo.animFrame == 1) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } @@ -1756,7 +2092,18 @@ s32 act_flying(struct MarioState *m) { m->actionArg = 1; } - set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + + + if (m->flags & MARIO_IS_SUPER) + { + + set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); + } + else + { + set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + } + m->actionState = 1; } } @@ -1798,7 +2145,17 @@ s32 act_flying(struct MarioState *m) { m->particleFlags |= PARTICLE_VERTICAL_STAR; set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); +#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +#else + if (newcam_active == 0) set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } else { if (m->actionTimer++ == 0) { play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); @@ -1822,10 +2179,16 @@ s32 act_flying(struct MarioState *m) { lava_boost_on_wall(m); break; } - - if (m->faceAngle[0] > 0x800 && m->forwardVel >= 48.0f) { - m->particleFlags |= PARTICLE_DUST; - } + if (m->forwardVel >= 48.0f) + { + if (m->faceAngle[0] > 0x800 || m->flags & MARIO_IS_SUPER) { + if (m->forwardVel >= 90.0f) + { + m->forwardVel = 90.0f; + } + m->particleFlags |= PARTICLE_DUST; + } + } if (startPitch <= 0 && m->faceAngle[0] > 0 && m->forwardVel >= 48.0f) { play_sound(SOUND_ACTION_FLYING_FAST, m->marioObj->header.gfx.cameraToObject); @@ -1833,9 +2196,7 @@ s32 act_flying(struct MarioState *m) { play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), m->marioObj->header.gfx.cameraToObject); #endif -#ifdef VERSION_SH - queue_rumble_data(50, 40); -#endif + } play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); @@ -1849,9 +2210,7 @@ s32 act_riding_hoot(struct MarioState *m) { m->usedObj->oHootMarioReleaseTime = gGlobalTimer; play_sound_if_no_flag(m, SOUND_MARIO_UH, MARIO_MARIO_SOUND_PLAYED); -#ifdef VERSION_SH - queue_rumble_data(4, 40); -#endif + return set_mario_action(m, ACT_FREEFALL, 0); } @@ -1879,7 +2238,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { #ifndef VERSION_JP if (m->input & (INPUT_B_PRESSED | INPUT_Z_PRESSED)) { if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } if (m->input & INPUT_B_PRESSED) { return set_mario_action(m, ACT_DIVE, 0); @@ -1907,9 +2276,7 @@ s32 act_flying_triple_jump(struct MarioState *m) { if (is_anim_past_end(m)) { set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); -#ifdef VERSION_SH - queue_rumble_data(8, 80); -#endif + m->actionState = 1; } } @@ -1920,7 +2287,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { if (m->vel[1] < 4.0f) { if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { +#ifndef BETTERCAMERA set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); +#else + if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + else + { + m->area->camera->mode = CAMERA_MODE_NEWCAM; + gLakituState.mode = CAMERA_MODE_NEWCAM; + } +#endif } if (m->forwardVel < 32.0f) { @@ -1930,9 +2307,11 @@ s32 act_flying_triple_jump(struct MarioState *m) { set_mario_action(m, ACT_FLYING, 1); } +#ifndef BETTERCAMERA if (m->actionTimer++ == 10 && m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); } +#endif update_air_without_turn(m); @@ -1970,9 +2349,7 @@ s32 act_vertical_wind(struct MarioState *m) { set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); if (m->marioObj->header.gfx.animInfo.animFrame == 1) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - queue_rumble_data(8, 80); -#endif + } if (is_anim_past_end(m)) { @@ -2112,6 +2489,7 @@ s32 mario_execute_airborne_action(struct MarioState *m) { case ACT_RIDING_HOOT: cancel = act_riding_hoot(m); break; case ACT_TOP_OF_POLE_JUMP: cancel = act_top_of_pole_jump(m); break; case ACT_VERTICAL_WIND: cancel = act_vertical_wind(m); break; + case ACT_TRANSFORM: cancel = act_transform(m); break; } /* clang-format on */ diff --git a/src/game/mario_actions_airborne.c.rej b/src/game/mario_actions_airborne.c.rej new file mode 100644 index 00000000..6943acda --- /dev/null +++ b/src/game/mario_actions_airborne.c.rej @@ -0,0 +1,1241 @@ +diff a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c (rejected hunks) +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "camera.h" + #include "engine/graph_node.h" +@@ -13,6 +14,11 @@ + #include "mario_step.h" + #include "save_file.h" + #include "rumble_init.h" ++#include "ingame_menu.h" ++#include "level_update.h" ++#include "object_helpers.h" ++#include "sound_init.h" ++#include "seq_ids.h" + + void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) { + s32 animFrame = m->marioObj->header.gfx.animInfo.animFrame; +@@ -25,10 +31,13 @@ void play_far_fall_sound(struct MarioState *m) { + u32 action = m->action; + if (!(action & ACT_FLAG_INVULNERABLE) && action != ACT_TWIRLING && action != ACT_FLYING + && !(m->flags & MARIO_UNKNOWN_18)) { +- if (m->peakHeight - m->pos[1] > 1150.0f) { +- play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); +- m->flags |= MARIO_UNKNOWN_18; +- } ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ if (m->peakHeight - m->pos[1] > 1150.0f) { ++ play_sound(SOUND_MARIO_WAAAOOOW, m->marioObj->header.gfx.cameraToObject); ++ m->flags |= MARIO_UNKNOWN_18; ++ } ++ } + } + } + +@@ -49,9 +58,30 @@ s32 lava_boost_on_wall(struct MarioState *m) { + m->forwardVel = 24.0f; + } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; +- } ++ if (!(m->flags & MARIO_METAL_CAP)) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins >= 50) { ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ if (gMarioState->numCoins == 0) { ++ m->health = 0xFF; ++ } ++ } ++ } ++ } + + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); + update_mario_sound_and_camera(m); +@@ -61,49 +91,69 @@ s32 lava_boost_on_wall(struct MarioState *m) { + s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) { + f32 fallHeight; + f32 damageHeight; +- +- fallHeight = m->peakHeight - m->pos[1]; +- ++ if (gDialogHealthSystem != SONIC_HEALTH ) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ fallHeight = m->peakHeight - m->pos[1]; ++ } ++ } ++ else ++ { ++ fallHeight = 0; ++ } + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wtype-limits" + + //! Never true +- if (m->actionState == ACT_GROUND_POUND) { +- damageHeight = 600.0f; +- } else { +- damageHeight = 1150.0f; +- } ++ ++ ++ if (m->actionState == ACT_GROUND_POUND) { ++ damageHeight = 600.0f; ++ } ++ else { ++ damageHeight = 1150.0f; ++ } + + #pragma GCC diagnostic pop + +- if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { +- if (m->vel[1] < -55.0f) { +- if (fallHeight > 3000.0f) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +- return drop_and_set_mario_action(m, hardFallAction, 4); +- } else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; +- m->squishTimer = 30; +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); +- play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); +- } +- } +- } ++ if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { ++ if (m->vel[1] < -55.0f) { ++ if (fallHeight > 3000.0f) { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; + +- return FALSE; ++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++ return drop_and_set_mario_action(m, hardFallAction, 4); ++ } ++ else if (fallHeight > damageHeight && !mario_floor_is_slippery(m)) { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 8 : 12; ++ m->squishTimer = 30; ++ ++ ++ set_camera_shake_from_hit(SHAKE_FALL_DAMAGE); ++ play_sound(SOUND_MARIO_ATTACKED, m->marioObj->header.gfx.cameraToObject); ++ } ++ } ++ } ++ ++ return FALSE; ++ + } + + s32 check_kick_or_dive_in_air(struct MarioState *m) { + if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, m->forwardVel > 28.0f ? ACT_DIVE : ACT_JUMP_KICK, 0); ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ // m->forwardVel *= 4.4f; ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); ++ ++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_SLIDE_KICK_SLIDE : ACT_JUMP_KICK, 0); ++ } ++ else ++ { ++ return set_mario_action(m, m->forwardVel > 0.3f ? ACT_DIVE : ACT_JUMP_KICK, 0); ++ } + } + return FALSE; + } +@@ -133,9 +183,8 @@ s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction) { + #endif + m->particleFlags |= PARTICLE_MIST_CIRCLE; + drop_and_set_mario_action(m, ACT_FEET_STUCK_IN_GROUND, 0); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ++ + return TRUE; + } + +@@ -180,33 +229,122 @@ s32 check_horizontal_wind(struct MarioState *m) { + } + + void update_air_with_turn(struct MarioState *m) { +- f32 dragThreshold; +- s16 intendedDYaw; +- f32 intendedMag; ++ f32 dragThreshold; ++ s16 intendedDYaw; ++ f32 intendedMag; ++ f32 homingDist; ++ f32 sp34; ++ f32 sp30; ++ f32 sp2C; ++ s16 sp2A; ++ struct Object *object; ++ object = 0; ++ ++ if (m->homingObj == NULL) ++ { ++ ++ ++ if (!check_horizontal_wind(m)) { ++ ++ dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ ++ intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ intendedMag = m->intendedMag / 32.0f; ++ ++ m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; ++ m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; ++ ++ } ++ ++ //! Uncapped air speed. Net positive when moving forward. ++ if (m->forwardVel > dragThreshold) { ++ m->forwardVel -= 1.0f; ++ } ++ if (m->forwardVel < -16.0f) { ++ m->forwardVel += 2.0f; ++ } ++ ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ } ++ } ++ else ++ { ++ ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_BOUNCE_TOP) { ++ object = mario_get_collided_object(m, INTERACT_BOUNCE_TOP); ++ } ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_HIT_FROM_BELOW) { ++ object = mario_get_collided_object(m, INTERACT_HIT_FROM_BELOW); ++ } ++ m->actionTimer++; ++ // if (m->homingObj->oDistanceToMario <= 800.0f) ++ // { ++ homingDist = lateral_dist_between_objects(gMarioState->marioObj, m->homingObj); ++ //BULLY ++ // } ++ /* ++ else ++ { ++ homingDist = 800.0f; ++ } ++ if (homingDist >= 800.0f) ++ { ++ homingDist = 800.0f; ++ } ++ */ ++ ++ if (m->action == ACT_DIVE) ++ { ++ ++ if (m->homingObj != object) ++ { ++ ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ sp34 = m->homingObj->oPosX - m->pos[0]; ++ sp30 = m->homingObj->oPosY - m->pos[1] + 15.0f; ++ sp2C = m->homingObj->oPosZ - m->pos[2]; ++ sp2A = atan2s(sqrtf(sqr(sp34) + sqr(sp2C)), sp30); ++ ++ ++ m->faceAngle[1] = mario_obj_angle_to_object(m, m->homingObj); ++ m->faceAngle[0] = approach_s16_symmetric(m->faceAngle[0], sp2A, 0x800); ++ ++ m->forwardVel = coss(m->faceAngle[0]) * 1.0f * (homingDist / 3.0f); ++ if (m->forwardVel >= 300.0f || homingDist >= 500.0f) ++ { ++ m->forwardVel = 300.0f; ++ } + +- if (!check_horizontal_wind(m)) { +- dragThreshold = m->action == ACT_LONG_JUMP ? 48.0f : 32.0f; +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); ++ m->intendedYaw = m->faceAngle[1]; ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + +- if (m->input & INPUT_NONZERO_ANALOG) { +- intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- intendedMag = m->intendedMag / 32.0f; + +- m->forwardVel += 1.5f * coss(intendedDYaw) * intendedMag; +- m->faceAngle[1] += 512.0f * sins(intendedDYaw) * intendedMag; +- } ++ if (m->actionTimer > 120) ++ { ++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ } + +- //! Uncapped air speed. Net positive when moving forward. +- if (m->forwardVel > dragThreshold) { +- m->forwardVel -= 1.0f; +- } +- if (m->forwardVel < -16.0f) { +- m->forwardVel += 2.0f; +- } ++ if (m->homingObj->oInteractStatus & INT_STATUS_INTERACTED) ++ { ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + +- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- } ++ m->homingObj = NULL; ++ ++ ++ ++ m->faceAngle[1] = m->intendedYaw; ++ m->action = ACT_DOUBLE_JUMP; ++ } ++ ++ ++ } ++ } + } + + void update_air_without_turn(struct MarioState *m) { +@@ -222,9 +360,23 @@ void update_air_without_turn(struct MarioState *m) { + if (m->input & INPUT_NONZERO_ANALOG) { + intendedDYaw = m->intendedYaw - m->faceAngle[1]; + intendedMag = m->intendedMag / 32.0f; +- +- m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; +- sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ if (m->action != ACT_JUMP) ++ { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ } ++ else ++ { ++ if (m->forwardVel < 55.0f) { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 10.0f; ++ } ++ else ++ { ++ m->forwardVel += intendedMag * coss(intendedDYaw) * 1.0f; ++ sidewaysSpeed = intendedMag * sins(intendedDYaw) * 5.0f; ++ } ++ } + } + + //! Uncapped air speed. Net positive when moving forward. +@@ -324,6 +476,7 @@ void update_flying_pitch(struct MarioState *m) { + } else { + m->angleVel[0] = approach_s32(m->angleVel[0], 0, 0x40, 0x40); + } ++ + } + + void update_flying(struct MarioState *m) { +@@ -331,6 +484,16 @@ void update_flying(struct MarioState *m) { + + update_flying_pitch(m); + update_flying_yaw(m); ++ if (!(m->flags & MARIO_IS_SUPER )) ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } ++ ++ if (m->flags & MARIO_IS_SUPER && m->forwardVel < 800.0f) ++ { ++ m->forwardVel += 0.6f; ++ } ++ + + m->forwardVel -= 2.0f * ((f32) m->faceAngle[0] / 0x4000) + 0.1f; + m->forwardVel -= 0.5f * (1.0f - coss(m->angleVel[1])); +@@ -338,14 +501,25 @@ void update_flying(struct MarioState *m) { + if (m->forwardVel < 0.0f) { + m->forwardVel = 0.0f; + } ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (m->forwardVel > 16.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; ++ } ++ else if (m->forwardVel > 4.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; ++ } ++ else { ++ m->faceAngle[0] -= 0x400; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 4.0f) { ++ m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; ++ } ++ } + +- if (m->forwardVel > 16.0f) { +- m->faceAngle[0] += (m->forwardVel - 32.0f) * 6.0f; +- } else if (m->forwardVel > 4.0f) { +- m->faceAngle[0] += (m->forwardVel - 32.0f) * 10.0f; +- } else { +- m->faceAngle[0] -= 0x400; +- } + + m->faceAngle[0] += m->angleVel[0]; + +@@ -385,9 +559,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, + set_mario_animation(m, animation); + + if (m->forwardVel > 16.0f) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 40); +-#endif ++ + mario_bonk_reflection(m, FALSE); + m->faceAngle[1] += 0x8000; + +@@ -440,18 +612,64 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, + } + + s32 act_jump(struct MarioState *m) { +- if (check_kick_or_dive_in_air(m)) { +- return TRUE; ++ ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x1000, 0x1000); ++ ++ if (m->actionTimer > 7) ++ { ++ m->actionTimer = 0; ++ } ++ m->actionTimer++; ++ if (check_kick_or_dive_in_air(m)) { ++ return TRUE; ++ } ++ ++ if (m->input & INPUT_Z_PRESSED) { ++ return set_mario_action(m, ACT_GROUND_POUND, 0); ++ } ++ ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); ++ common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_FORWARD_SPINNING, ++ AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); ++ return FALSE; ++} ++ ++s32 act_transform(struct MarioState *m) { ++ m->actionTimer += 1; ++ set_mario_animation(m, MARIO_ANIM_START_FORWARD_SPINNING); ++ if (is_anim_past_end(m)) { ++ drop_and_set_mario_action(m, ACT_FREEFALL, 0); ++ } ++ if (m->actionTimer > 0 && m->actionTimer < 16) ++ { ++ } ++ if (m->actionTimer > 3 && m->actionTimer < 7) ++ { ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + } + +- if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_GROUND_POUND, 0); ++ if (m->actionTimer > 7 && m->actionTimer < 18) ++ { ++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + } + +- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); +- common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SINGLE_JUMP, +- AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); +- return FALSE; ++ if (m->actionTimer == 18) ++ { ++ play_cap_music(SEQUENCE_ARGS(4, SEQ_SUPER)); ++ //gMarioState->isSuper = 1; ++ m->flags |= MARIO_IS_SUPER; ++ //gMarioState->flags = MARIO_IS_SUPER; ++ play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); ++ //play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_OKEY_DOKEY); ++ // play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); ++ //play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ ++ ++ m->pos[1] = m->pos[1]; ++ m->pos[2] = m->pos[2]; ++ m->pos[0] = m->pos[0]; + } + + s32 act_double_jump(struct MarioState *m) { +@@ -459,6 +677,19 @@ s32 act_double_jump(struct MarioState *m) { + ? MARIO_ANIM_DOUBLE_JUMP_RISE + : MARIO_ANIM_DOUBLE_JUMP_FALL; + ++ update_air_with_turn(m); ++ ++ ++ ++ ++ m->forwardVel = 50.0f; ++ if (m->forwardVel >= 50.0f) ++ { ++ m->forwardVel = 50.0f; ++ } ++ ++ ++ + if (check_kick_or_dive_in_air(m)) { + return TRUE; + } +@@ -493,11 +724,9 @@ s32 act_triple_jump(struct MarioState *m) { + #endif + + common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_TRIPLE_JUMP, 0); +-#ifdef VERSION_SH + if (m->action == ACT_TRIPLE_JUMP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + play_flip_sounds(m, 2, 8, 20); + return FALSE; + } +@@ -508,19 +737,22 @@ s32 act_backflip(struct MarioState *m) { + } + + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_YAH_WAH_HOO); +- common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_BACKFLIP, 0); +-#ifdef VERSION_SH ++ common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_FORWARD_SPINNING, 0); ++ + if (m->action == ACT_BACKFLIP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + play_flip_sounds(m, 2, 3, 17); + return FALSE; + } + + s32 act_freefall(struct MarioState *m) { + s32 animation; +- ++ //limits fall speed after roll ++ if (m->forwardVel >= 130.0f && m->prevAction == ACT_DIVE_SLIDE) ++ { ++ m->forwardVel = 130.0f; ++ } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_DIVE, 0); + } +@@ -604,7 +836,7 @@ s32 act_side_flip(struct MarioState *m) { + m->marioObj->header.gfx.angle[1] += 0x8000; + } + +- // This must be one line to match on -O2 ++ // (this need to be on one line to match on PAL) + // clang-format off + if (m->marioObj->header.gfx.animInfo.animFrame == 6) play_sound(SOUND_ACTION_SIDE_FLIP_UNK, m->marioObj->header.gfx.cameraToObject); + // clang-format on +@@ -641,11 +873,10 @@ s32 act_long_jump(struct MarioState *m) { + } + + common_air_action_step(m, ACT_LONG_JUMP_LAND, animation, AIR_STEP_CHECK_LEDGE_GRAB); +-#ifdef VERSION_SH ++ + if (m->action == ACT_LONG_JUMP_LAND) { +- queue_rumble_data(5, 40); ++ + } +-#endif + return FALSE; + } + +@@ -718,14 +949,33 @@ s32 act_twirling(struct MarioState *m) { + return FALSE; + } + ++ ++ ++ + s32 act_dive(struct MarioState *m) { ++ ++ ++ if ((m->flags & MARIO_WING_CAP) ) { ++ set_mario_action(m, ACT_FLYING, 0); ++ } + if (m->actionArg == 0) { + play_mario_sound(m, SOUND_ACTION_THROW, SOUND_MARIO_HOOHOO); + } else { + play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); + } ++ //m->particleFlags |= PARTICLE_SPARKLES; + +- set_mario_animation(m, MARIO_ANIM_DIVE); ++if (!(m->flags & MARIO_IS_SUPER)) ++{ ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ m->particleFlags |= PARTICLE_SONIC_TRAIL; ++} ++else ++{ ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ m->particleFlags |= PARTICLE_SUPER_TRAIL; ++} ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + if (mario_check_object_grab(m)) { + mario_grab_used_object(m); + m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; +@@ -734,34 +984,23 @@ s32 act_dive(struct MarioState *m) { + } + } + +- update_air_without_turn(m); ++ update_air_with_turn(m); + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: +- if (m->vel[1] < 0.0f && m->faceAngle[0] > -0x2AAA) { +- m->faceAngle[0] -= 0x200; +- if (m->faceAngle[0] < -0x2AAA) { +- m->faceAngle[0] = -0x2AAA; +- } +- } +- m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; + break; + + case AIR_STEP_LANDED: + if (should_get_stuck_in_ground(m) && m->faceAngle[0] == -0x2AAA) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +-#ifdef VERSION_JP +- play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); +-#else ++ ++ + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); +-#endif ++ + m->particleFlags |= PARTICLE_MIST_CIRCLE; + drop_and_set_mario_action(m, ACT_HEAD_STUCK_IN_GROUND, 0); + } else if (!check_fall_damage(m, ACT_HARD_FORWARD_GROUND_KB)) { + if (m->heldObj == NULL) { +- set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ set_mario_action(m, ACT_WALKING, 0); + } else { + set_mario_action(m, ACT_DIVE_PICKING_UP, 0); + } +@@ -828,7 +1067,7 @@ s32 act_water_jump(struct MarioState *m) { + switch (perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_JUMP_LAND, 0); +- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + break; + + case AIR_STEP_HIT_WALL: +@@ -840,7 +1079,7 @@ s32 act_water_jump(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); + #endif + set_mario_action(m, ACT_LEDGE_GRAB, 0); +- set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ //set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + break; + + case AIR_STEP_HIT_LAVA_WALL: +@@ -917,20 +1156,22 @@ s32 act_ground_pound(struct MarioState *m) { + + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); + +- if (m->actionState == 0) { ++ if (m->actionState != 0) { + if (m->actionTimer < 10) { + yOffset = 20 - 2 * m->actionTimer; + if (m->pos[1] + yOffset + 160.0f < m->ceilHeight) { + m->pos[1] += yOffset; ++ + m->peakHeight = m->pos[1]; + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + } + } + +- m->vel[1] = -50.0f; ++ m->vel[1] = -80.0f; ++ + mario_set_forward_vel(m, 0.0f); + +- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_GROUND_POUND ++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_FORWARD_SPINNING + : MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND); + if (m->actionTimer == 0) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); +@@ -942,14 +1183,28 @@ s32 act_ground_pound(struct MarioState *m) { + m->actionState = 1; + } + } else { +- set_mario_animation(m, MARIO_ANIM_GROUND_POUND); ++ m->vel[1] = -50.0f; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ m->particleFlags |= PARTICLE_SONIC_TRAIL; ++ ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ m->particleFlags |= PARTICLE_SUPER_TRAIL; ++ } ++ ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 50; ++ m->marioObj->header.gfx.animInfo.animAccel = 0x30000; ++ ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + + stepResult = perform_air_step(m, 0); + if (stepResult == AIR_STEP_LANDED) { + if (should_get_stuck_in_ground(m)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + #ifdef VERSION_JP + play_sound(SOUND_MARIO_OOOF, m->marioObj->header.gfx.cameraToObject); + #else +@@ -958,7 +1213,7 @@ s32 act_ground_pound(struct MarioState *m) { + m->particleFlags |= PARTICLE_MIST_CIRCLE; + set_mario_action(m, ACT_BUTT_STUCK_IN_GROUND, 0); + } else { +- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_HEAVY_LANDING); ++ play_sound(SOUND_OBJ_WATER_BOMB_BOUNCING, m->marioObj->header.gfx.cameraToObject); + if (!check_fall_damage(m, ACT_HARD_BACKWARD_GROUND_KB)) { + m->particleFlags |= PARTICLE_MIST_CIRCLE | PARTICLE_HORIZONTAL_STAR; + set_mario_action(m, ACT_GROUND_POUND_LAND, 0); +@@ -993,14 +1248,21 @@ s32 act_burning_jump(struct MarioState *m) { + play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); + + m->marioObj->oMarioBurnTimer += 3; ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ ++ ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->health -= 10; ++ } ++ if (m->health < 0x100) { ++ m->health = 0xFF; ++ } ++ ++ ++ } + +- m->health -= 10; +- if (m->health < 0x100) { +- m->health = 0xFF; +- } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif + return FALSE; + } + +@@ -1020,9 +1282,8 @@ s32 act_burning_fall(struct MarioState *m) { + if (m->health < 0x100) { + m->health = 0xFF; + } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + +@@ -1071,9 +1332,7 @@ s32 act_crazy_box_bounce(struct MarioState *m) { + m->heldObj = NULL; + set_mario_action(m, ACT_STOMACH_SLIDE, 0); + } +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ ; + m->particleFlags |= PARTICLE_MIST_CIRCLE; + break; + +@@ -1151,7 +1410,7 @@ s32 check_wall_kick(struct MarioState *m) { + + s32 act_backward_air_kb(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1165,7 +1424,7 @@ s32 act_backward_air_kb(struct MarioState *m) { + + s32 act_forward_air_kb(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1242,7 +1501,7 @@ s32 act_thrown_forward(struct MarioState *m) { + + s32 act_soft_bonk(struct MarioState *m) { + if (check_wall_kick(m)) { +- return TRUE; ++ return 1; + } + + #ifndef VERSION_JP +@@ -1341,9 +1600,10 @@ s32 act_air_hit_wall(struct MarioState *m) { + //! Missing return statement. The returned value is the result of the call + // to set_mario_animation. In practice, this value is nonzero. + // This results in this action "cancelling" into itself. It is supposed to +- // execute on two frames, but instead it executes twice on the same frame. ++ // execute three times, each on a separate frame, but instead it executes ++ // three times on the same frame. + // This results in firsties only being possible for a single frame, instead +- // of two. ++ // of three. + } + + s32 act_forward_rollout(struct MarioState *m) { +@@ -1505,14 +1765,11 @@ s32 act_hold_butt_slide_air(struct MarioState *m) { + } + + s32 act_lava_boost(struct MarioState *m) { +-#ifdef VERSION_SH + if (!(m->flags & MARIO_MARIO_SOUND_PLAYED)) { + play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); +- queue_rumble_data(5, 80); ++ + } +-#else + play_sound_if_no_flag(m, SOUND_MARIO_ON_FIRE, MARIO_MARIO_SOUND_PLAYED); +-#endif + + if (!(m->input & INPUT_NONZERO_ANALOG)) { + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.35f, 0.35f); +@@ -1525,13 +1782,35 @@ s32 act_lava_boost(struct MarioState *m) { + if (m->floor->type == SURFACE_BURNING) { + m->actionState = 0; + if (!(m->flags & MARIO_METAL_CAP)) { +- m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { ++ m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ obj_spawn_yellow_coins(m->marioObj, ++ gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ ++ if (gMarioState->numCoins == 0) { ++ m->health = 0xFF; ++ } ++ } ++ } + } + m->vel[1] = 84.0f; + play_sound(SOUND_MARIO_ON_FIRE, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + } else { + play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + if (m->actionState < 2 && m->vel[1] < 0.0f) { +@@ -1567,42 +1846,32 @@ s32 act_lava_boost(struct MarioState *m) { + } + + m->marioBodyState->eyeState = MARIO_EYES_DEAD; +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + + s32 act_slide_kick(struct MarioState *m) { + if (m->actionState == 0 && m->actionTimer == 0) { +- play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HOOHOO); ++ play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, SOUND_MARIO_HAHA); + set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + } + +- if (++(m->actionTimer) > 30 && m->pos[1] - m->floorHeight > 500.0f) { +- return set_mario_action(m, ACT_FREEFALL, 2); +- } + +- update_air_without_turn(m); ++ ++ + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: + if (m->actionState == 0) { +- m->marioObj->header.gfx.angle[0] = atan2s(m->forwardVel, -m->vel[1]); +- if (m->marioObj->header.gfx.angle[0] > 0x1800) { +- m->marioObj->header.gfx.angle[0] = 0x1800; +- } ++ set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); + } + break; + + case AIR_STEP_LANDED: +- if (m->actionState == 0 && m->vel[1] < 0.0f) { +- m->vel[1] = -m->vel[1] / 2.0f; +- m->actionState = 1; +- m->actionTimer = 0; +- } else { ++ + set_mario_action(m, ACT_SLIDE_KICK_SLIDE, 0); +- } ++ + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + break; + +@@ -1670,7 +1939,8 @@ s32 act_shot_from_cannon(struct MarioState *m) { + + switch (perform_air_step(m, 0)) { + case AIR_STEP_NONE: +- set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); ++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_SPINNING, 0x20000); ++ //set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + m->faceAngle[0] = atan2s(m->forwardVel, m->vel[1]); + m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; + break; +@@ -1678,10 +1948,18 @@ s32 act_shot_from_cannon(struct MarioState *m) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_DIVE_SLIDE, 0); + m->faceAngle[0] = 0; ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } + #endif ++ + break; + + case AIR_STEP_HIT_WALL: +@@ -1694,7 +1972,17 @@ s32 act_shot_from_cannon(struct MarioState *m) { + + m->particleFlags |= PARTICLE_VERTICAL_STAR; + set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + break; + + case AIR_STEP_HIT_LAVA_WALL: +@@ -1713,38 +2001,83 @@ s32 act_shot_from_cannon(struct MarioState *m) { + if (m->vel[1] > 0.0f) { + m->particleFlags |= PARTICLE_DUST; + } +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + + s32 act_flying(struct MarioState *m) { + s16 startPitch = m->faceAngle[0]; ++ f32 val14; ++ val14 = (s32)(m->forwardVel / 10.5f * 0x10000); + + if (m->input & INPUT_Z_PRESSED) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + return set_mario_action(m, ACT_GROUND_POUND, 1); + } + + if (!(m->flags & MARIO_WING_CAP)) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + return set_mario_action(m, ACT_FREEFALL, 0); + } + + if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + + if (m->actionState == 0) { + if (m->actionArg == 0) { +- set_mario_animation(m, MARIO_ANIM_FLY_FROM_CANNON); ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } + } else { +- set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); ++ } + if (m->marioObj->header.gfx.animInfo.animFrame == 1) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); + } +@@ -1756,7 +2089,18 @@ s32 act_flying(struct MarioState *m) { + m->actionArg = 1; + } + +- set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ ++ ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); ++ } ++ + m->actionState = 1; + } + } +@@ -1798,7 +2142,17 @@ s32 act_flying(struct MarioState *m) { + + m->particleFlags |= PARTICLE_VERTICAL_STAR; + set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); ++#ifndef BETTERCAMERA ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } else { + if (m->actionTimer++ == 0) { + play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); +@@ -1822,10 +2176,16 @@ s32 act_flying(struct MarioState *m) { + lava_boost_on_wall(m); + break; + } +- +- if (m->faceAngle[0] > 0x800 && m->forwardVel >= 48.0f) { +- m->particleFlags |= PARTICLE_DUST; +- } ++ if (m->forwardVel >= 48.0f) ++ { ++ if (m->faceAngle[0] > 0x800 || m->flags & MARIO_IS_SUPER) { ++ if (m->forwardVel >= 90.0f) ++ { ++ m->forwardVel = 90.0f; ++ } ++ m->particleFlags |= PARTICLE_DUST; ++ } ++ } + + if (startPitch <= 0 && m->faceAngle[0] > 0 && m->forwardVel >= 48.0f) { + play_sound(SOUND_ACTION_FLYING_FAST, m->marioObj->header.gfx.cameraToObject); +@@ -1833,9 +2193,7 @@ s32 act_flying(struct MarioState *m) { + play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), + m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(50, 40); +-#endif ++ + } + + play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); +@@ -1849,9 +2207,7 @@ s32 act_riding_hoot(struct MarioState *m) { + m->usedObj->oHootMarioReleaseTime = gGlobalTimer; + + play_sound_if_no_flag(m, SOUND_MARIO_UH, MARIO_MARIO_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(4, 40); +-#endif ++ + return set_mario_action(m, ACT_FREEFALL, 0); + } + +@@ -1879,7 +2235,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { + #ifndef VERSION_JP + if (m->input & (INPUT_B_PRESSED | INPUT_Z_PRESSED)) { + if (m->area->camera->mode == CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_DIVE, 0); +@@ -1907,9 +2273,7 @@ s32 act_flying_triple_jump(struct MarioState *m) { + + if (is_anim_past_end(m)) { + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); +-#ifdef VERSION_SH +- queue_rumble_data(8, 80); +-#endif ++ + m->actionState = 1; + } + } +@@ -1920,7 +2284,17 @@ s32 act_flying_triple_jump(struct MarioState *m) { + + if (m->vel[1] < 4.0f) { + if (m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { ++#ifndef BETTERCAMERA + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); ++#else ++ if (newcam_active == 0) ++ set_camera_mode(m->area->camera, m->area->camera->defMode, 1); ++ else ++ { ++ m->area->camera->mode = CAMERA_MODE_NEWCAM; ++ gLakituState.mode = CAMERA_MODE_NEWCAM; ++ } ++#endif + } + + if (m->forwardVel < 32.0f) { +@@ -1930,9 +2304,11 @@ s32 act_flying_triple_jump(struct MarioState *m) { + set_mario_action(m, ACT_FLYING, 1); + } + ++#ifndef BETTERCAMERA + if (m->actionTimer++ == 10 && m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { + set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); + } ++#endif + + update_air_without_turn(m); + +@@ -1970,9 +2346,7 @@ s32 act_vertical_wind(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + if (m->marioObj->header.gfx.animInfo.animFrame == 1) { + play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- queue_rumble_data(8, 80); +-#endif ++ + } + + if (is_anim_past_end(m)) { +@@ -2112,6 +2486,7 @@ s32 mario_execute_airborne_action(struct MarioState *m) { + case ACT_RIDING_HOOT: cancel = act_riding_hoot(m); break; + case ACT_TOP_OF_POLE_JUMP: cancel = act_top_of_pole_jump(m); break; + case ACT_VERTICAL_WIND: cancel = act_vertical_wind(m); break; ++ case ACT_TRANSFORM: cancel = act_transform(m); break; + } + /* clang-format on */ + diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c index 22690873..32cff6b0 100644 --- a/src/game/mario_actions_automatic.c +++ b/src/game/mario_actions_automatic.c @@ -16,6 +16,8 @@ #include "camera.h" #include "level_table.h" #include "rumble_init.h" +#include "game/ingame_menu.h" +#include "level_update.h" #define POLE_NONE 0 #define POLE_TOUCHED_FLOOR 1 @@ -143,7 +145,7 @@ s32 act_holding_pole(struct MarioState *m) { if (m->controller->stickY > 16.0f) { f32 poleTop = m->usedObj->hitboxHeight - 100.0f; - const BehaviorScript *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); + void *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); if (marioObj->oMarioPolePos < poleTop - 0.4f) { return set_mario_action(m, ACT_CLIMBING_POLE, 0); @@ -250,7 +252,7 @@ s32 act_grab_pole_fast(struct MarioState *m) { set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART1); } else { set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART2); - if (is_anim_at_end(m)) { + if (is_anim_at_end(m) != 0) { marioObj->oMarioPoleYawVel = 0; set_mario_action(m, ACT_HOLDING_POLE, 0); } @@ -272,7 +274,7 @@ s32 act_top_of_pole_transition(struct MarioState *m) { } } else { set_mario_animation(m, MARIO_ANIM_RETURN_FROM_HANDSTAND); - if (m->marioObj->header.gfx.animInfo.animFrame == 0) { + if (m->marioObj->header.gfx.animInfo.animFrame == 0) { return set_mario_action(m, ACT_HOLDING_POLE, 0); } } @@ -385,13 +387,9 @@ void update_hang_stationary(struct MarioState *m) { } s32 act_start_hanging(struct MarioState *m) { -#ifdef VERSION_SH if (m->actionTimer++ == 0) { - queue_rumble_data(5, 80); + //_data(5, 80); } -#else - m->actionTimer++; -#endif if ((m->input & INPUT_NONZERO_ANALOG) && m->actionTimer >= 31) { return set_mario_action(m, ACT_HANGING, 0); @@ -565,12 +563,40 @@ s32 act_ledge_grab(struct MarioState *m) { if (m->input & INPUT_UNKNOWN_10) { if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) + { m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; + } + else + { + if (gMarioState->numCoins > 0) + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + } + else + { + m->health = 0xFF; + } + } + } } return let_go_of_ledge(m); } #ifdef VERSION_EU - // On EU, you can't slow climb up ledges while holding A. + // On PAL, you can't slow climb up ledges while holding A. if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG) && !(m->input & INPUT_A_DOWN)) #else if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG)) @@ -662,9 +688,7 @@ s32 act_grabbed(struct MarioState *m) { m->faceAngle[1] = m->usedObj->oMoveAngleYaw; vec3f_copy(m->pos, m->marioObj->header.gfx.pos); -#ifdef VERSION_SH - queue_rumble_data(5, 60); -#endif + //_data(5, 60); return set_mario_action(m, (m->forwardVel >= 0.0f) ? ACT_THROWN_FORWARD : ACT_THROWN_BACKWARD, thrown); @@ -744,16 +768,14 @@ s32 act_in_cannon(struct MarioState *m) { m->marioObj->header.gfx.node.flags |= GRAPH_RENDER_ACTIVE; set_mario_action(m, ACT_SHOT_FROM_CANNON, 0); -#ifdef VERSION_SH - queue_rumble_data(60, 70); -#endif + //_data(60, 70); m->usedObj->oAction = 2; return FALSE; - } else if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { - play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - reset_rumble_timers_2(0); -#endif + } else { + if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { + play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); + //_timers_2(0); + } } } @@ -838,9 +860,7 @@ s32 act_tornado_twirling(struct MarioState *m) { vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1] + m->twirlYaw, 0); -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + //_timers(); return FALSE; } diff --git a/src/game/mario_actions_automatic.c.rej b/src/game/mario_actions_automatic.c.rej new file mode 100644 index 00000000..362d2b7d --- /dev/null +++ b/src/game/mario_actions_automatic.c.rej @@ -0,0 +1,130 @@ +diff a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c (rejected hunks) +@@ -16,6 +16,8 @@ + #include "camera.h" + #include "level_table.h" + #include "rumble_init.h" ++#include "game/ingame_menu.h" ++#include "level_update.h" + + #define POLE_NONE 0 + #define POLE_TOUCHED_FLOOR 1 +@@ -143,7 +145,7 @@ s32 act_holding_pole(struct MarioState *m) { + + if (m->controller->stickY > 16.0f) { + f32 poleTop = m->usedObj->hitboxHeight - 100.0f; +- const BehaviorScript *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); ++ void *poleBehavior = virtual_to_segmented(0x13, m->usedObj->behavior); + + if (marioObj->oMarioPolePos < poleTop - 0.4f) { + return set_mario_action(m, ACT_CLIMBING_POLE, 0); +@@ -250,7 +252,7 @@ s32 act_grab_pole_fast(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART1); + } else { + set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART2); +- if (is_anim_at_end(m)) { ++ if (is_anim_at_end(m) != 0) { + marioObj->oMarioPoleYawVel = 0; + set_mario_action(m, ACT_HOLDING_POLE, 0); + } +@@ -385,13 +387,9 @@ void update_hang_stationary(struct MarioState *m) { + } + + s32 act_start_hanging(struct MarioState *m) { +-#ifdef VERSION_SH + if (m->actionTimer++ == 0) { +- queue_rumble_data(5, 80); ++ //_data(5, 80); + } +-#else +- m->actionTimer++; +-#endif + + if ((m->input & INPUT_NONZERO_ANALOG) && m->actionTimer >= 31) { + return set_mario_action(m, ACT_HANGING, 0); +@@ -565,12 +563,40 @@ s32 act_ledge_grab(struct MarioState *m) { + + if (m->input & INPUT_UNKNOWN_10) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) ++ { + m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18; ++ } ++ else ++ { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ } + } + return let_go_of_ledge(m); + } + #ifdef VERSION_EU +- // On EU, you can't slow climb up ledges while holding A. ++ // On PAL, you can't slow climb up ledges while holding A. + if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG) && !(m->input & INPUT_A_DOWN)) + #else + if (m->actionTimer == 10 && (m->input & INPUT_NONZERO_ANALOG)) +@@ -662,9 +688,7 @@ s32 act_grabbed(struct MarioState *m) { + + m->faceAngle[1] = m->usedObj->oMoveAngleYaw; + vec3f_copy(m->pos, m->marioObj->header.gfx.pos); +-#ifdef VERSION_SH +- queue_rumble_data(5, 60); +-#endif ++ //_data(5, 60); + + return set_mario_action(m, (m->forwardVel >= 0.0f) ? ACT_THROWN_FORWARD : ACT_THROWN_BACKWARD, + thrown); +@@ -744,16 +768,14 @@ s32 act_in_cannon(struct MarioState *m) { + m->marioObj->header.gfx.node.flags |= GRAPH_RENDER_ACTIVE; + + set_mario_action(m, ACT_SHOT_FROM_CANNON, 0); +-#ifdef VERSION_SH +- queue_rumble_data(60, 70); +-#endif ++ //_data(60, 70); + m->usedObj->oAction = 2; + return FALSE; +- } else if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { +- play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); +-#ifdef VERSION_SH +- reset_rumble_timers_2(0); +-#endif ++ } else { ++ if (m->faceAngle[0] != startFacePitch || m->faceAngle[1] != startFaceYaw) { ++ play_sound(SOUND_MOVING_AIM_CANNON, m->marioObj->header.gfx.cameraToObject); ++ //_timers_2(0); ++ } + } + } + +@@ -838,9 +860,7 @@ s32 act_tornado_twirling(struct MarioState *m) { + + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1] + m->twirlYaw, 0); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ //_timers(); + + return FALSE; + } diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index e2cbbb6b..b4bfb6bb 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -3,6 +3,7 @@ #include "prevent_bss_reordering.h" #include "sm64.h" #include "area.h" +#include "audio/data.h" #include "audio/external.h" #include "behavior_data.h" #include "camera.h" @@ -28,6 +29,7 @@ #include "sound_init.h" #include "rumble_init.h" + // TODO: put this elsewhere enum SaveOption { SAVE_OPT_SAVE_AND_CONTINUE = 1, SAVE_OPT_SAVE_AND_QUIT, SAVE_OPT_CONTINUE_DONT_SAVE }; @@ -48,7 +50,7 @@ static s8 D_8032CBE4 = 0; static s8 D_8032CBE8 = 0; static s8 D_8032CBEC[7] = { 2, 3, 2, 1, 2, 3, 2 }; -static u8 sStarsNeededForDialog[] = { 1, 3, 8, 30, 50, 70 }; +static u8 sStarsNeededForDialog[6] = { 1, 3, 8, 30, 50, 70 }; /** * Data for the jumbo star cutscene. It specifies the flight path after triple @@ -234,7 +236,7 @@ s32 get_star_collection_dialog(struct MarioState *m) { s32 dialogID = 0; s32 numStarsRequired; - for (i = 0; i < ARRAY_COUNT(sStarsNeededForDialog); i++) { + for (i = 0; i < 6; i++) { numStarsRequired = sStarsNeededForDialog[i]; if (m->prevNumStarsForDialog < numStarsRequired && m->numStars >= numStarsRequired) { dialogID = i + DIALOG_141; @@ -252,7 +254,8 @@ void handle_save_menu(struct MarioState *m) { // wait for the menu to show up if (is_anim_past_end(m) && gSaveOptSelectIndex != 0) { // save and continue / save and quit - if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { + if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE + || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { save_file_do_save(gCurrSaveFileNum - 1); if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { @@ -277,6 +280,7 @@ void handle_save_menu(struct MarioState *m) { } } + /** * spawn_obj_at_mario_rel_yaw: Spawns object at Mario with relative yaw. * Spawns object with given behavior and model and copies over Mario's position @@ -299,9 +303,7 @@ struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, const * SOUND_ACTION_UNKNOWN43D. */ void cutscene_take_cap_off(struct MarioState *m) { - m->flags &= ~MARIO_CAP_ON_HEAD; - m->flags |= MARIO_CAP_IN_HAND; - play_sound(SOUND_ACTION_UNKNOWN43D, m->marioObj->header.gfx.cameraToObject); + } /** @@ -310,9 +312,10 @@ void cutscene_take_cap_off(struct MarioState *m) { * SOUND_ACTION_UNKNOWN43E. */ void cutscene_put_cap_on(struct MarioState *m) { - m->flags &= ~MARIO_CAP_IN_HAND; + /* m->flags &= ~MARIO_CAP_IN_HAND; m->flags |= MARIO_CAP_ON_HEAD; play_sound(SOUND_ACTION_UNKNOWN43E, m->marioObj->header.gfx.cameraToObject); + */ } /** @@ -421,8 +424,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { // puts Mario in a state where he's waiting for (npc) dialog; doesn't do much s32 act_waiting_for_dialog(struct MarioState *m) { - set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON - : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_mario_animation(m, + m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); return FALSE; @@ -535,6 +538,7 @@ s32 act_reading_sign(struct MarioState *m) { return FALSE; } +// debug free move action s32 act_debug_free_move(struct MarioState *m) { struct Surface *surf; f32 floorHeight; @@ -589,6 +593,7 @@ s32 act_debug_free_move(struct MarioState *m) { return FALSE; } +// star dance handler void general_star_dance_handler(struct MarioState *m, s32 isInWater) { s32 dialogID; if (m->actionState == 0) { @@ -616,7 +621,14 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { level_trigger_warp(m, WARP_OP_STAR_EXIT); } else { enable_time_stop(); - create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); + if (m->coinstartotal != 7) + { + create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); + } + else + { + create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_099 : DIALOG_014); + } m->actionState = 1; } break; @@ -641,11 +653,17 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { s32 act_star_dance(struct MarioState *m) { m->faceAngle[1] = m->area->camera->yaw; + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_STAR_DANCE : MARIO_ANIM_STAR_DANCE); general_star_dance_handler(m, 0); if (m->actionState != 2 && m->actionTimer >= 40) { m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; + m->flags &= ~MARIO_CAP_ON_HEAD; + } + else + { + m->flags |= MARIO_CAP_ON_HEAD; } stop_and_set_height_to_floor(m); return FALSE; @@ -653,14 +671,20 @@ s32 act_star_dance(struct MarioState *m) { s32 act_star_dance_water(struct MarioState *m) { m->faceAngle[1] = m->area->camera->yaw; + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE : MARIO_ANIM_WATER_STAR_DANCE); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); general_star_dance_handler(m, 1); if (m->actionState != 2 && m->actionTimer >= 62) { + m->flags &= ~MARIO_CAP_ON_HEAD; m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; } + else + { + m->flags |= MARIO_CAP_ON_HEAD; + } return FALSE; } @@ -679,6 +703,7 @@ s32 act_fall_after_star_grab(struct MarioState *m) { return FALSE; } +// general death hander s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp) { s32 animFrame = set_mario_animation(m, animation); if (animFrame == frameToDeathWarp) { @@ -857,6 +882,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { return FALSE; } +// not sure what kind of door this is s32 act_entering_star_door(struct MarioState *m) { f32 targetDX; f32 targetDZ; @@ -939,11 +965,13 @@ s32 act_going_through_door(struct MarioState *m) { if (m->actionTimer == 16) { level_trigger_warp(m, WARP_OP_WARP_DOOR); } - } else if (is_anim_at_end(m)) { - if (m->actionArg & 2) { - m->faceAngle[1] += 0x8000; + } else { + if (is_anim_at_end(m)) { + if (m->actionArg & 2) { + m->faceAngle[1] += 0x8000; + } + set_mario_action(m, ACT_IDLE, 0); } - set_mario_action(m, ACT_IDLE, 0); } m->actionTimer++; @@ -1103,8 +1131,16 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { // key exit case 1: animFrame = set_mario_animation(m, MARIO_ANIM_THROW_CATCH_KEY); + if ( animFrame <= 105) { + m->flags &= ~MARIO_CAP_ON_HEAD; + } + else + { + m->flags |= MARIO_CAP_ON_HEAD; + } switch (animFrame) { case -1: + spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyCourseExit, -32768); //! fall through case 67: @@ -1116,6 +1152,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { case 111: play_sound(SOUND_ACTION_UNKNOWN45C, m->marioObj->header.gfx.cameraToObject); // no break + } handle_save_menu(m); break; @@ -1133,21 +1170,52 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { break; // exit with cap case 3: + m->flags &= ~MARIO_CAP_ON_HEAD; + animFrame = set_mario_animation(m, MARIO_ANIM_TAKE_CAP_OFF_THEN_ON); + if (animFrame >= 3 && animFrame < 42) { + m->marioBodyState->handState = MARIO_HAND_OPEN; + } switch (animFrame) { + case 3: + + + break; + case 12: cutscene_take_cap_off(m); + play_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); break; - case 37: - // fall through - case 53: - play_sound(SOUND_ACTION_BRUSH_HAIR, m->marioObj->header.gfx.cameraToObject); + + case 14: + + break; + case 24: + break; - case 82: - cutscene_put_cap_on(m); + + case 42: + + break; + + case 64: + + break; + + + + case 70: + + + break; + case 99: + stop_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); + //cutscene_put_cap_on(m); + m->flags |= MARIO_CAP_ON_HEAD; break; } handle_save_menu(m); + break; } @@ -1163,9 +1231,7 @@ s32 act_death_exit(struct MarioState *m) { #else play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); #endif -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + m->numLives--; // restore 7.75 units of health m->healCounter = 31; @@ -1198,9 +1264,7 @@ s32 act_falling_death_exit(struct MarioState *m) { #else play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); #endif -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + m->numLives--; // restore 7.75 units of health m->healCounter = 31; @@ -1245,9 +1309,7 @@ s32 act_special_death_exit(struct MarioState *m) { } if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, MARIO_ANIM_BACKWARD_AIR_KB, -24.0f)) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + m->numLives--; m->healCounter = 31; } @@ -1331,9 +1393,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { m->flags &= ~MARIO_UNKNOWN_08; if (perform_air_step(m, 0) == AIR_STEP_LANDED) { level_trigger_warp(m, WARP_OP_UNKNOWN_02); -#ifdef VERSION_SH - queue_rumble_data(15, 80); -#endif + m->actionState = 4; } if (m->actionState == 2) { @@ -1401,7 +1461,7 @@ s32 act_teleport_fade_out(struct MarioState *m) { #ifdef VERSION_SH if (m->actionTimer == 0) { - queue_rumble_data(30, 70); + //(30, 70); func_sh_8024C89C(2); } #endif @@ -1427,7 +1487,7 @@ s32 act_teleport_fade_in(struct MarioState *m) { #ifdef VERSION_SH if (m->actionTimer == 0) { - queue_rumble_data(30, 70); + //(30, 70); func_sh_8024C89C(2); } #endif @@ -1511,16 +1571,40 @@ s32 act_squished(struct MarioState *m) { } else { if (!(m->flags & MARIO_METAL_CAP) && m->invincTimer == 0) { // cap on: 3 units; cap off: 4.5 units - m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; - play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem != SONIC_HEALTH) { + m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; + } else { + if (gMarioState->numCoins > 0) + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + + } + else + { + m->health = 0xFF; + } + } + play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); + } } // Both of the 1.8's are really floats, but one of them has to - // be written as a double for this to match on -O2. + // be written as a double for this to match on EU. vec3f_set(m->marioObj->header.gfx.scale, 1.8, 0.05f, 1.8f); -#ifdef VERSION_SH - queue_rumble_data(10, 80); -#endif + m->actionState = 1; } break; @@ -1592,9 +1676,6 @@ s32 act_putting_on_cap(struct MarioState *m) { enable_time_stop(); } - if (animFrame == 28) { - cutscene_put_cap_on(m); - } if (is_anim_at_end(m)) { set_mario_action(m, ACT_IDLE, 0); @@ -1622,9 +1703,7 @@ void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFra if (animFrame == -1) { play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STUCK_IN_GROUND, 1); } else if (animFrame == unstuckFrame) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + play_sound_and_spawn_particles(m, SOUND_ACTION_UNSTUCK_FROM_GROUND, 1); } else if (animFrame == target2 || animFrame == target3) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); @@ -1840,7 +1919,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { struct Object *marioObj = m->marioObj; s32 animFrame; - + m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); if (m->actionState == 0) { set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); marioObj->rawData.asF32[0x22] = 0.0f; @@ -1898,7 +1977,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { f32 targetDZ; f32 targetHyp; s16 targetAngle; - + m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); switch (m->actionState) { case 0: set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); @@ -1943,6 +2022,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { enum { JUMBO_STAR_CUTSCENE_FALLING, JUMBO_STAR_CUTSCENE_TAKING_OFF, JUMBO_STAR_CUTSCENE_FLYING }; static s32 act_jumbo_star_cutscene(struct MarioState *m) { + m->flags &= ~MARIO_CAP_ON_HEAD; switch (m->actionArg) { case JUMBO_STAR_CUTSCENE_FALLING: jumbo_star_cutscene_falling(m); @@ -2176,6 +2256,7 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { static void end_peach_cutscene_dialog_1(struct MarioState *m) { s32 animFrame = set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_TAKE_OFF_CAP : MARIO_ANIM_CREDITS_LOOK_UP); + m->flags &= ~MARIO_CAP_ON_HEAD; if (m->actionState == 0) { if (animFrame == 8) { @@ -2339,7 +2420,7 @@ static u8 sMarioBlinkOverride[20] = { static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { sEndPeachAnimation = 10; - + m->flags &= ~MARIO_CAP_ON_HEAD; if (m->actionTimer >= 90) { m->marioBodyState->eyeState = m->actionTimer < 110 ? sMarioBlinkOverride[m->actionTimer - 90] : MARIO_EYES_HALF_CLOSED; @@ -2382,18 +2463,19 @@ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { static void end_peach_cutscene_star_dance(struct MarioState *m) { s32 animFrame = set_mario_animation(m, MARIO_ANIM_CREDITS_PEACE_SIGN); - + m->flags &= ~MARIO_CAP_ON_HEAD; if (animFrame == 77) { cutscene_put_cap_on(m); } if (animFrame == 88) { play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); } - if (animFrame >= 98) { + + if (animFrame >= 77) { m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; } - if (m->actionTimer < 52) { + if (m->actionTimer < 44) { m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; } @@ -2433,7 +2515,7 @@ static void end_peach_cutscene_star_dance(struct MarioState *m) { // "...for Mario..." static void end_peach_cutscene_dialog_3(struct MarioState *m) { set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); - + m->flags &= ~MARIO_CAP_ON_HEAD; sEndPeachObj->oPosY = end_obj_set_visual_pos(sEndPeachObj); sEndRightToadObj->oPosY = end_obj_set_visual_pos(sEndRightToadObj); sEndLeftToadObj->oPosY = end_obj_set_visual_pos(sEndLeftToadObj); @@ -2630,7 +2712,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { } if (m->actionTimer++ == TIMER_CREDITS_WARP) { - level_trigger_warp(m, WARP_OP_CREDITS_NEXT); + level_trigger_warp(m, 24); } m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; @@ -2640,6 +2722,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { static s32 act_end_waving_cutscene(struct MarioState *m) { if (m->actionState == 0) { + m->flags &= ~MARIO_CAP_ON_HEAD; m->statusForCamera->cameraEvent = CAM_EVENT_START_END_WAVING; sEndPeachObj = spawn_object_abs_with_rot(gCurrentObject, 0, MODEL_PEACH, bhvEndPeach, 60, 906, @@ -2748,8 +2831,10 @@ s32 mario_execute_cutscene_action(struct MarioState *m) { } /* clang-format on */ - if (!cancel && (m->input & INPUT_IN_WATER)) { - m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + if (!cancel) { + if (m->input & INPUT_IN_WATER) { + m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + } } return cancel; diff --git a/src/game/mario_actions_cutscene.c.rej b/src/game/mario_actions_cutscene.c.rej new file mode 100644 index 00000000..309c1450 --- /dev/null +++ b/src/game/mario_actions_cutscene.c.rej @@ -0,0 +1,511 @@ +diff a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c (rejected hunks) +@@ -3,6 +3,7 @@ + #include "prevent_bss_reordering.h" + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_data.h" + #include "camera.h" +@@ -28,6 +29,7 @@ + #include "sound_init.h" + #include "rumble_init.h" + ++ + // TODO: put this elsewhere + enum SaveOption { SAVE_OPT_SAVE_AND_CONTINUE = 1, SAVE_OPT_SAVE_AND_QUIT, SAVE_OPT_CONTINUE_DONT_SAVE }; + +@@ -48,7 +50,7 @@ static s8 D_8032CBE4 = 0; + static s8 D_8032CBE8 = 0; + static s8 D_8032CBEC[7] = { 2, 3, 2, 1, 2, 3, 2 }; + +-static u8 sStarsNeededForDialog[] = { 1, 3, 8, 30, 50, 70 }; ++static u8 sStarsNeededForDialog[6] = { 1, 3, 8, 30, 50, 70 }; + + /** + * Data for the jumbo star cutscene. It specifies the flight path after triple +@@ -234,7 +236,7 @@ s32 get_star_collection_dialog(struct MarioState *m) { + s32 dialogID = 0; + s32 numStarsRequired; + +- for (i = 0; i < ARRAY_COUNT(sStarsNeededForDialog); i++) { ++ for (i = 0; i < 6; i++) { + numStarsRequired = sStarsNeededForDialog[i]; + if (m->prevNumStarsForDialog < numStarsRequired && m->numStars >= numStarsRequired) { + dialogID = i + DIALOG_141; +@@ -252,7 +254,8 @@ void handle_save_menu(struct MarioState *m) { + // wait for the menu to show up + if (is_anim_past_end(m) && gSaveOptSelectIndex != 0) { + // save and continue / save and quit +- if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { ++ if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_CONTINUE ++ || gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { + save_file_do_save(gCurrSaveFileNum - 1); + + if (gSaveOptSelectIndex == SAVE_OPT_SAVE_AND_QUIT) { +@@ -277,6 +280,7 @@ void handle_save_menu(struct MarioState *m) { + } + } + ++ + /** + * spawn_obj_at_mario_rel_yaw: Spawns object at Mario with relative yaw. + * Spawns object with given behavior and model and copies over Mario's position +@@ -299,9 +303,7 @@ struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, const + * SOUND_ACTION_UNKNOWN43D. + */ + void cutscene_take_cap_off(struct MarioState *m) { +- m->flags &= ~MARIO_CAP_ON_HEAD; +- m->flags |= MARIO_CAP_IN_HAND; +- play_sound(SOUND_ACTION_UNKNOWN43D, m->marioObj->header.gfx.cameraToObject); ++ + } + + /** +@@ -310,9 +312,10 @@ void cutscene_take_cap_off(struct MarioState *m) { + * SOUND_ACTION_UNKNOWN43E. + */ + void cutscene_put_cap_on(struct MarioState *m) { +- m->flags &= ~MARIO_CAP_IN_HAND; ++ /* m->flags &= ~MARIO_CAP_IN_HAND; + m->flags |= MARIO_CAP_ON_HEAD; + play_sound(SOUND_ACTION_UNKNOWN43E, m->marioObj->header.gfx.cameraToObject); ++ */ + } + + /** +@@ -421,8 +424,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { + + // puts Mario in a state where he's waiting for (npc) dialog; doesn't do much + s32 act_waiting_for_dialog(struct MarioState *m) { +- set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON +- : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ set_mario_animation(m, ++ m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + return FALSE; +@@ -535,6 +538,7 @@ s32 act_reading_sign(struct MarioState *m) { + return FALSE; + } + ++// debug free move action + s32 act_debug_free_move(struct MarioState *m) { + struct Surface *surf; + f32 floorHeight; +@@ -589,6 +593,7 @@ s32 act_debug_free_move(struct MarioState *m) { + return FALSE; + } + ++// star dance handler + void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + s32 dialogID; + if (m->actionState == 0) { +@@ -616,7 +621,14 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + level_trigger_warp(m, WARP_OP_STAR_EXIT); + } else { + enable_time_stop(); +- create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); ++ if (m->coinstartotal != 7) ++ { ++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); ++ } ++ else ++ { ++ create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_099 : DIALOG_014); ++ } + m->actionState = 1; + } + break; +@@ -641,11 +653,17 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { + + s32 act_star_dance(struct MarioState *m) { + m->faceAngle[1] = m->area->camera->yaw; ++ + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_STAR_DANCE + : MARIO_ANIM_STAR_DANCE); + general_star_dance_handler(m, 0); + if (m->actionState != 2 && m->actionTimer >= 40) { + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; + } + stop_and_set_height_to_floor(m); + return FALSE; +@@ -653,14 +671,20 @@ s32 act_star_dance(struct MarioState *m) { + + s32 act_star_dance_water(struct MarioState *m) { + m->faceAngle[1] = m->area->camera->yaw; ++ + set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE + : MARIO_ANIM_WATER_STAR_DANCE); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + general_star_dance_handler(m, 1); + if (m->actionState != 2 && m->actionTimer >= 62) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; + } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; ++ } + return FALSE; + } + +@@ -679,6 +703,7 @@ s32 act_fall_after_star_grab(struct MarioState *m) { + return FALSE; + } + ++// general death hander + s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp) { + s32 animFrame = set_mario_animation(m, animation); + if (animFrame == frameToDeathWarp) { +@@ -857,6 +882,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { + return FALSE; + } + ++// not sure what kind of door this is + s32 act_entering_star_door(struct MarioState *m) { + f32 targetDX; + f32 targetDZ; +@@ -939,11 +965,13 @@ s32 act_going_through_door(struct MarioState *m) { + if (m->actionTimer == 16) { + level_trigger_warp(m, WARP_OP_WARP_DOOR); + } +- } else if (is_anim_at_end(m)) { +- if (m->actionArg & 2) { +- m->faceAngle[1] += 0x8000; ++ } else { ++ if (is_anim_at_end(m)) { ++ if (m->actionArg & 2) { ++ m->faceAngle[1] += 0x8000; ++ } ++ set_mario_action(m, ACT_IDLE, 0); + } +- set_mario_action(m, ACT_IDLE, 0); + } + + m->actionTimer++; +@@ -1103,8 +1131,16 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + // key exit + case 1: + animFrame = set_mario_animation(m, MARIO_ANIM_THROW_CATCH_KEY); ++ if ( animFrame <= 105) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ } ++ else ++ { ++ m->flags |= MARIO_CAP_ON_HEAD; ++ } + switch (animFrame) { + case -1: ++ + spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyCourseExit, -32768); + //! fall through + case 67: +@@ -1116,6 +1152,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + case 111: + play_sound(SOUND_ACTION_UNKNOWN45C, m->marioObj->header.gfx.cameraToObject); + // no break ++ + } + handle_save_menu(m); + break; +@@ -1133,21 +1170,52 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { + break; + // exit with cap + case 3: ++ m->flags &= ~MARIO_CAP_ON_HEAD; ++ + animFrame = set_mario_animation(m, MARIO_ANIM_TAKE_CAP_OFF_THEN_ON); ++ if (animFrame >= 3 && animFrame < 42) { ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } + switch (animFrame) { ++ case 3: ++ ++ ++ break; ++ + case 12: + cutscene_take_cap_off(m); ++ play_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); ++ break; ++ ++ case 14: ++ ++ break; ++ case 24: ++ + break; +- case 37: +- // fall through +- case 53: +- play_sound(SOUND_ACTION_BRUSH_HAIR, m->marioObj->header.gfx.cameraToObject); ++ ++ case 42: ++ + break; +- case 82: +- cutscene_put_cap_on(m); ++ ++ case 64: ++ ++ break; ++ ++ ++ ++ case 70: ++ ++ ++ break; ++ case 99: ++ stop_sound(SOUND_MARIO_SNORING3, m->marioObj->header.gfx.cameraToObject); ++ //cutscene_put_cap_on(m); ++ m->flags |= MARIO_CAP_ON_HEAD; + break; + } + handle_save_menu(m); ++ + break; + } + +@@ -1163,9 +1231,7 @@ s32 act_death_exit(struct MarioState *m) { + #else + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + // restore 7.75 units of health + m->healCounter = 31; +@@ -1198,9 +1264,7 @@ s32 act_falling_death_exit(struct MarioState *m) { + #else + play_sound(SOUND_MARIO_OOOF2, m->marioObj->header.gfx.cameraToObject); + #endif +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + // restore 7.75 units of health + m->healCounter = 31; +@@ -1245,9 +1309,7 @@ s32 act_special_death_exit(struct MarioState *m) { + } + + if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, MARIO_ANIM_BACKWARD_AIR_KB, -24.0f)) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + m->numLives--; + m->healCounter = 31; + } +@@ -1331,9 +1393,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { + m->flags &= ~MARIO_UNKNOWN_08; + if (perform_air_step(m, 0) == AIR_STEP_LANDED) { + level_trigger_warp(m, WARP_OP_UNKNOWN_02); +-#ifdef VERSION_SH +- queue_rumble_data(15, 80); +-#endif ++ + m->actionState = 4; + } + if (m->actionState == 2) { +@@ -1401,7 +1461,7 @@ s32 act_teleport_fade_out(struct MarioState *m) { + + #ifdef VERSION_SH + if (m->actionTimer == 0) { +- queue_rumble_data(30, 70); ++ //(30, 70); + func_sh_8024C89C(2); + } + #endif +@@ -1427,7 +1487,7 @@ s32 act_teleport_fade_in(struct MarioState *m) { + + #ifdef VERSION_SH + if (m->actionTimer == 0) { +- queue_rumble_data(30, 70); ++ //(30, 70); + func_sh_8024C89C(2); + } + #endif +@@ -1511,16 +1571,40 @@ s32 act_squished(struct MarioState *m) { + } else { + if (!(m->flags & MARIO_METAL_CAP) && m->invincTimer == 0) { + // cap on: 3 units; cap off: 4.5 units +- m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; +- play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem != SONIC_HEALTH) { ++ m->hurtCounter += m->flags & MARIO_CAP_ON_HEAD ? 12 : 18; ++ } else { ++ if (gMarioState->numCoins > 0) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ ++ } ++ else ++ { ++ m->health = 0xFF; ++ } ++ } ++ play_sound_if_no_flag(m, SOUND_MARIO_ATTACKED, MARIO_MARIO_SOUND_PLAYED); ++ } + } + + // Both of the 1.8's are really floats, but one of them has to +- // be written as a double for this to match on -O2. ++ // be written as a double for this to match on EU. + vec3f_set(m->marioObj->header.gfx.scale, 1.8, 0.05f, 1.8f); +-#ifdef VERSION_SH +- queue_rumble_data(10, 80); +-#endif ++ + m->actionState = 1; + } + break; +@@ -1592,9 +1676,6 @@ s32 act_putting_on_cap(struct MarioState *m) { + enable_time_stop(); + } + +- if (animFrame == 28) { +- cutscene_put_cap_on(m); +- } + + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_IDLE, 0); +@@ -1622,9 +1703,7 @@ void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFra + if (animFrame == -1) { + play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STUCK_IN_GROUND, 1); + } else if (animFrame == unstuckFrame) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + play_sound_and_spawn_particles(m, SOUND_ACTION_UNSTUCK_FROM_GROUND, 1); + } else if (animFrame == target2 || animFrame == target3) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); +@@ -1840,7 +1919,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { + static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { + struct Object *marioObj = m->marioObj; + s32 animFrame; +- ++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); + if (m->actionState == 0) { + set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); + marioObj->rawData.asF32[0x22] = 0.0f; +@@ -1898,7 +1977,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { + f32 targetDZ; + f32 targetHyp; + s16 targetAngle; +- ++ m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); +@@ -1943,6 +2022,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { + enum { JUMBO_STAR_CUTSCENE_FALLING, JUMBO_STAR_CUTSCENE_TAKING_OFF, JUMBO_STAR_CUTSCENE_FLYING }; + + static s32 act_jumbo_star_cutscene(struct MarioState *m) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + switch (m->actionArg) { + case JUMBO_STAR_CUTSCENE_FALLING: + jumbo_star_cutscene_falling(m); +@@ -2176,6 +2256,7 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { + static void end_peach_cutscene_dialog_1(struct MarioState *m) { + s32 animFrame = set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_TAKE_OFF_CAP + : MARIO_ANIM_CREDITS_LOOK_UP); ++ m->flags &= ~MARIO_CAP_ON_HEAD; + + if (m->actionState == 0) { + if (animFrame == 8) { +@@ -2339,7 +2420,7 @@ static u8 sMarioBlinkOverride[20] = { + + static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { + sEndPeachAnimation = 10; +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + if (m->actionTimer >= 90) { + m->marioBodyState->eyeState = + m->actionTimer < 110 ? sMarioBlinkOverride[m->actionTimer - 90] : MARIO_EYES_HALF_CLOSED; +@@ -2382,18 +2463,19 @@ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { + + static void end_peach_cutscene_star_dance(struct MarioState *m) { + s32 animFrame = set_mario_animation(m, MARIO_ANIM_CREDITS_PEACE_SIGN); +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + if (animFrame == 77) { + cutscene_put_cap_on(m); + } + if (animFrame == 88) { + play_sound(SOUND_MARIO_HERE_WE_GO, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame >= 98) { ++ ++ if (animFrame >= 77) { + m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; + } + +- if (m->actionTimer < 52) { ++ if (m->actionTimer < 44) { + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + } + +@@ -2433,7 +2515,7 @@ static void end_peach_cutscene_star_dance(struct MarioState *m) { + // "...for Mario..." + static void end_peach_cutscene_dialog_3(struct MarioState *m) { + set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); +- ++ m->flags &= ~MARIO_CAP_ON_HEAD; + sEndPeachObj->oPosY = end_obj_set_visual_pos(sEndPeachObj); + sEndRightToadObj->oPosY = end_obj_set_visual_pos(sEndRightToadObj); + sEndLeftToadObj->oPosY = end_obj_set_visual_pos(sEndLeftToadObj); +@@ -2630,7 +2712,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { + } + + if (m->actionTimer++ == TIMER_CREDITS_WARP) { +- level_trigger_warp(m, WARP_OP_CREDITS_NEXT); ++ level_trigger_warp(m, 24); + } + + m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; +@@ -2640,6 +2722,7 @@ static s32 act_credits_cutscene(struct MarioState *m) { + + static s32 act_end_waving_cutscene(struct MarioState *m) { + if (m->actionState == 0) { ++ m->flags &= ~MARIO_CAP_ON_HEAD; + m->statusForCamera->cameraEvent = CAM_EVENT_START_END_WAVING; + + sEndPeachObj = spawn_object_abs_with_rot(gCurrentObject, 0, MODEL_PEACH, bhvEndPeach, 60, 906, +@@ -2748,8 +2831,10 @@ s32 mario_execute_cutscene_action(struct MarioState *m) { + } + /* clang-format on */ + +- if (!cancel && (m->input & INPUT_IN_WATER)) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ if (!cancel) { ++ if (m->input & INPUT_IN_WATER) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } + } + + return cancel; diff --git a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c index 8b8e8e1b..eaa83ecc 100644 --- a/src/game/mario_actions_moving.c +++ b/src/game/mario_actions_moving.c @@ -1,5 +1,5 @@ #include - +#include "types.h" #include "sm64.h" #include "mario.h" #include "audio/external.h" @@ -12,6 +12,8 @@ #include "memory.h" #include "behavior_data.h" #include "rumble_init.h" +#include "ingame_menu.h" +#include "level_update.h" struct LandingAction { s16 numFrames; @@ -24,15 +26,15 @@ struct LandingAction { }; struct LandingAction sJumpLandAction = { - 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, }; struct LandingAction sFreefallLandAction = { - 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, }; struct LandingAction sSideFlipLandAction = { - 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, }; struct LandingAction sHoldJumpLandAction = { @@ -62,9 +64,12 @@ struct LandingAction sBackflipLandAction = { Mat4 sFloorAlignMatrix[2]; s16 tilt_body_running(struct MarioState *m) { - s16 pitch = find_floor_slope(m, 0); - pitch = pitch * m->forwardVel / 40.0f; - return -pitch; + if (m->floorHeight != m->waterLevel) + { + s16 pitch = find_floor_slope(m, 0); + pitch = pitch * m->forwardVel / 40.0f; + return -pitch; + } } void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { @@ -86,9 +91,37 @@ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { } void align_with_floor(struct MarioState *m) { - m->pos[1] = m->floorHeight; - mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); - m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; + if (m->action != ACT_DIVE_SLIDE) + { + m->pos[1] = m->floorHeight; + } + else + { + m->pos[1] = m->floorHeight + 30; + } + mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); + m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; + + + + + + if (m->action == ACT_SPINDASH) + { + //m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 280; + m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; + vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.05f, 0.8f); + + } + else + { + if (m->action != ACT_DIVE_SLIDE) + { + mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); + m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; + } + } + } s32 begin_walking_action(struct MarioState *m, f32 forwardVel, u32 action, u32 actionArg) { @@ -114,20 +147,22 @@ void check_ledge_climb_down(struct MarioState *m) { if (find_wall_collisions(&wallCols) != 0) { floorHeight = find_floor(wallCols.x, wallCols.y, wallCols.z, &floor); - if (floor != NULL && (wallCols.y - floorHeight > 160.0f)) { - wall = wallCols.walls[wallCols.numWalls - 1]; - wallAngle = atan2s(wall->normal.z, wall->normal.x); - wallDYaw = wallAngle - m->faceAngle[1]; + if (floor != NULL) { + if (wallCols.y - floorHeight > 160.0f) { + wall = wallCols.walls[wallCols.numWalls - 1]; + wallAngle = atan2s(wall->normal.z, wall->normal.x); + wallDYaw = wallAngle - m->faceAngle[1]; - if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { - m->pos[0] = wallCols.x - 20.0f * wall->normal.x; - m->pos[2] = wallCols.z - 20.0f * wall->normal.z; + if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { + m->pos[0] = wallCols.x - 20.0f * wall->normal.x; + m->pos[2] = wallCols.z - 20.0f * wall->normal.z; - m->faceAngle[0] = 0; - m->faceAngle[1] = wallAngle + 0x8000; + m->faceAngle[0] = 0; + m->faceAngle[1] = wallAngle + 0x8000; - set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); - set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); + set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); + set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); + } } } } @@ -135,7 +170,7 @@ void check_ledge_climb_down(struct MarioState *m) { } void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { - if (m->forwardVel > 16.0f) { + if (m->forwardVel > 70.0f) { mario_bonk_reflection(m, TRUE); drop_and_set_mario_action(m, fastAction, 0); } else { @@ -144,6 +179,65 @@ void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { } } + + + +s32 act_spindash(struct MarioState *m) { + m->faceAngle[1] = m->intendedYaw; + if (!(m->flags & MARIO_IS_SUPER)) + { + cur_obj_set_model(MODEL_SONIC_BALL); + } + else + { + cur_obj_set_model(MODEL_SUPER_BALL); + } + m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; + + //play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + + + + if (!(m->input & INPUT_Z_DOWN)) { + m->actionTimer = 0; + set_mario_action(m, ACT_DIVE_SLIDE, 0); + mario_set_forward_vel(m, m->forwardVel); + } + + vec3f_set(m->marioObj->header.gfx.scale, 0.6f, 1.0f, 0.6f); + + if (m->forwardVel < 50.0f) + { + m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 200; + m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 30; + + m->forwardVel = 50.0f; + } + + if (m->input & INPUT_B_PRESSED ) { + if (m->forwardVel <= 200) + { + m->particleFlags |= PARTICLE_DUST; + + m->forwardVel += 40.0f; + + } + else + { + m->forwardVel = 200; + } + play_sound(SOUND_MARIO_YAWNING, + m->marioObj->header.gfx.cameraToObject); + set_mario_action(m, ACT_SPINDASH, m->forwardVel/10); + + + //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); + } + + return FALSE; +} + s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { if (m->flags & MARIO_WING_CAP) { return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); @@ -153,67 +247,127 @@ s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 a return set_mario_action(m, ACT_JUMP, 0); } - return FALSE; + return 0; } void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { - s32 newFacingDYaw; - s16 facingDYaw; + s32 newFacingDYaw; + s16 facingDYaw; + s32 setdash = FALSE; - struct Surface *floor = m->floor; - s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); - f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); - UNUSED f32 normalY = floor->normal.y; + struct Surface *floor = m->floor; + s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); + f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); + UNUSED f32 normalY = floor->normal.y; - m->slideVelX += accel * steepness * sins(slopeAngle); - m->slideVelZ += accel * steepness * coss(slopeAngle); + m->slideVelX += accel * steepness * sins(slopeAngle); + m->slideVelZ += accel * steepness * coss(slopeAngle); - m->slideVelX *= lossFactor; - m->slideVelZ *= lossFactor; + m->slideVelX *= lossFactor; + m->slideVelZ *= lossFactor; - m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); + m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); - facingDYaw = m->faceAngle[1] - m->slideYaw; - newFacingDYaw = facingDYaw; + facingDYaw = m->faceAngle[1] - m->slideYaw; + newFacingDYaw = facingDYaw; - //! -0x4000 not handled - can slide down a slope while facing perpendicular to it - if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { - if ((newFacingDYaw -= 0x200) < 0) { - newFacingDYaw = 0; - } - } else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { - if ((newFacingDYaw += 0x200) > 0) { - newFacingDYaw = 0; - } - } else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { - if ((newFacingDYaw += 0x200) > 0x8000) { - newFacingDYaw = 0x8000; - } - } else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { - if ((newFacingDYaw -= 0x200) < -0x8000) { - newFacingDYaw = -0x8000; - } + + //! -0x4000 not handled - can slide down a slope while facing perpendicular to it + if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { + if ((newFacingDYaw -= 0x200) < 0) { + newFacingDYaw = 0; + } + } + else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { + if ((newFacingDYaw += 0x200) > 0) { + newFacingDYaw = 0; + } + } + else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { + if ((newFacingDYaw += 0x200) > 0x8000) { + newFacingDYaw = 0x8000; + } + } + else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { + if ((newFacingDYaw -= 0x200) < -0x8000) { + newFacingDYaw = -0x8000; + } + } + + + + if (m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) + { + m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + } + else + { + m->faceAngle[1] = m->slideYaw + newFacingDYaw; + + } + if (m->action == ACT_SLIDE_KICK_SLIDE && m->actionTimer == 1) + { + m->vel[0] = m->slideVelX *= 1.6; + m->vel[1] = 0.0f; + m->vel[2] = m->slideVelZ *= 1.6; + } + else + { + m->vel[0] = m->slideVelX; + m->vel[1] = 0.0f; + m->vel[2] = m->slideVelZ; } - m->faceAngle[1] = m->slideYaw + newFacingDYaw; + mario_update_moving_sand(m); + mario_update_windy_ground(m); - m->vel[0] = m->slideVelX; - m->vel[1] = 0.0f; - m->vel[2] = m->slideVelZ; + //! Speed is capped a frame late (butt slide HSG) + m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); + if (m->forwardVel > 150.0f && m->action == ACT_DIVE_SLIDE && m->prevAction == ACT_SPINDASH) + { + if (!(m->flags & MARIO_IS_SUPER)) + { + m->actionTimer++; + } - mario_update_moving_sand(m); - mario_update_windy_ground(m); + if (m->forwardVel > 150.0f) { + if (!(m->flags & MARIO_IS_SUPER)) + { + m->particleFlags |= PARTICLE_SONIC_TRAIL_ROLLING; + } + else + { + m->particleFlags |= PARTICLE_SUPER_TRAIL_ROLLING; + } - //! Speed is capped a frame late (butt slide HSG) - m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); - if (m->forwardVel > 100.0f) { - m->slideVelX = m->slideVelX * 100.0f / m->forwardVel; - m->slideVelZ = m->slideVelZ * 100.0f / m->forwardVel; - } + } + if (m->forwardVel > 200.0f) { + if (!(m->flags & MARIO_IS_SUPER)) + { + m->forwardVel--; + } + else + { + m->forwardVel += 10.0f; + } + m->slideVelX = m->slideVelX * 200.0f / m->forwardVel; + m->slideVelZ = m->slideVelZ * 200.0f / m->forwardVel; + + } + } + else + { + if (m->forwardVel > 150.0f) { + m->slideVelX = m->slideVelX * 150.0f / m->forwardVel; + m->slideVelZ = m->slideVelZ * 150.0f / m->forwardVel; + } - if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { - m->forwardVel *= -1.0f; - } + + } + + if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { + m->forwardVel *= -1.0f; + } } s32 update_sliding(struct MarioState *m, f32 stopSpeed) { @@ -228,6 +382,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { f32 forward = coss(intendedDYaw); f32 sideward = sins(intendedDYaw); + //! 10k glitch if (forward < 0.0f && m->forwardVel >= 0.0f) { forward *= 0.5f + 0.5f * m->forwardVel / 100.0f; @@ -235,23 +390,65 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { switch (mario_get_floor_class(m)) { case SURFACE_CLASS_VERY_SLIPPERY: - accel = 10.0f; - lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; + if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) + { + + accel = 26.0f; + + lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.98f; + } + else + { + + accel = 10.0f; + lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; + } + break; case SURFACE_CLASS_SLIPPERY: - accel = 8.0f; - lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; + if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) + { + + accel = 23.0f; + lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.96f; + } + else + { + accel = 8.0f; + lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; + } + break; default: - accel = 7.0f; - lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; + if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) + { + + accel = 20.0f; + lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; + } + else + { + accel = 7.0f; + lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; + } + break; case SURFACE_CLASS_NOT_SLIPPERY: - accel = 5.0f; - lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; + if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) + { + + accel = 5.0f; + lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; + } + else + { + accel = 0.1f; + lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; + } + break; } @@ -272,6 +469,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { update_sliding_angle(m, accel, lossFactor); + if (!mario_floor_is_slope(m) && m->forwardVel * m->forwardVel < stopSpeed * stopSpeed) { mario_set_forward_vel(m, 0.0f); stopped = TRUE; @@ -297,18 +495,94 @@ void apply_slope_accel(struct MarioState *m) { } switch (slopeClass) { - case SURFACE_CLASS_VERY_SLIPPERY: - slopeAccel = 5.3f; - break; - case SURFACE_CLASS_SLIPPERY: - slopeAccel = 2.7f; - break; - default: - slopeAccel = 1.7f; - break; - case SURFACE_CLASS_NOT_SLIPPERY: - slopeAccel = 0.0f; - break; + + { + case SURFACE_CLASS_VERY_SLIPPERY: + if (m->action == ACT_DIVE_SLIDE) + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 5.3f; + } + else + { + slopeAccel = 0.0f; + } + } + else + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 5.3f; + } + else + { + slopeAccel = 0.0f; + } + } + break; + case SURFACE_CLASS_SLIPPERY: + if (m->action == ACT_DIVE_SLIDE) + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 2.7f; + } + else + { + slopeAccel = 0.0f; + } + } + else + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 2.7f; + } + else + { + slopeAccel = 0.0f; + } + } + + break; + default: + if (m->action == ACT_DIVE_SLIDE) + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 1.0f; + } + else + { + slopeAccel = 0.0f; + } + } + else + { + if (m->forwardVel < 50.0f) + { + slopeAccel = 1.0f; + } + else + { + slopeAccel = 0.0f; + } + } + break; + case SURFACE_CLASS_NOT_SLIPPERY: + if (m->forwardVel < 50.0f) + { + slopeAccel = 0.4f; + } + else + { + slopeAccel = 0.0f; + } + break; + + + } } if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { @@ -347,6 +621,7 @@ s32 apply_landing_accel(struct MarioState *m, f32 frictionFactor) { return stopped; } + void update_shell_speed(struct MarioState *m) { f32 maxTargetSpeed; f32 targetSpeed; @@ -355,6 +630,7 @@ void update_shell_speed(struct MarioState *m) { m->floorHeight = m->waterLevel; m->floor = &gWaterSurfacePseudoFloor; m->floor->originOffset = m->waterLevel; //! Negative origin offset + } if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { @@ -384,8 +660,7 @@ void update_shell_speed(struct MarioState *m) { m->forwardVel = 64.0f; } - m->faceAngle[1] = - m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); apply_slope_accel(m); } @@ -395,18 +670,20 @@ s32 apply_slope_decel(struct MarioState *m, f32 decelCoef) { s32 stopped = FALSE; switch (mario_get_floor_class(m)) { + case SURFACE_CLASS_VERY_SLIPPERY: - decel = decelCoef * 0.2f; + decel = decelCoef * 0.8f ; break; case SURFACE_CLASS_SLIPPERY: - decel = decelCoef * 0.7f; + decel = decelCoef * 0.9f ; break; default: - decel = decelCoef * 2.0f; + decel = decelCoef * 1.5f ; break; case SURFACE_CLASS_NOT_SLIPPERY: - decel = decelCoef * 3.0f; + decel = decelCoef * 1.0f ; break; + } if ((m->forwardVel = approach_f32(m->forwardVel, 0.0f, decel, decel)) == 0.0f) { @@ -435,10 +712,14 @@ void update_walking_speed(struct MarioState *m) { f32 maxTargetSpeed; f32 targetSpeed; + + + + if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { - maxTargetSpeed = 24.0f; + maxTargetSpeed = 800.0f; } else { - maxTargetSpeed = 32.0f; + maxTargetSpeed = 1000.0f; } targetSpeed = m->intendedMag < maxTargetSpeed ? m->intendedMag : maxTargetSpeed; @@ -450,25 +731,28 @@ void update_walking_speed(struct MarioState *m) { if (m->forwardVel <= 0.0f) { m->forwardVel += 1.1f; } else if (m->forwardVel <= targetSpeed) { - m->forwardVel += 1.1f - m->forwardVel / 43.0f; + m->forwardVel += 1.1f - m->forwardVel / 1050.0f; } else if (m->floor->normal.y >= 0.95f) { m->forwardVel -= 1.0f; } - if (m->forwardVel > 48.0f) { - m->forwardVel = 48.0f; + if (m->forwardVel > 200.0f) { + m->forwardVel = 200.0f; } - m->faceAngle[1] = - m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + /* Handles the "Super responsive controls" cheat. The content of the "else" is Mario's original code for turning around.*/ + m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + apply_slope_accel(m); } s32 should_begin_sliding(struct MarioState *m) { if (m->input & INPUT_ABOVE_SLIDE) { s32 slideLevel = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE; + s32 movingBackward = m->forwardVel <= -1.0f; + if (slideLevel || movingBackward || mario_facing_downhill(m, FALSE)) { return TRUE; } @@ -486,11 +770,7 @@ s32 check_ground_dive_or_punch(struct MarioState *m) { UNUSED s32 unused; if (m->input & INPUT_B_PRESSED) { - //! Speed kick (shoutouts to SimpleFlips) - if (m->forwardVel >= 29.0f && m->controller->stickMag > 48.0f) { - m->vel[1] = 20.0f; - return set_mario_action(m, ACT_DIVE, 1); - } + return set_mario_action(m, ACT_MOVE_PUNCHING, 0); } @@ -570,7 +850,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { case 2: if (val04 < 5.0f) { m->actionTimer = 1; - } else if (val04 > 22.0f) { + } else if (val04 > 60.0f) { m->actionTimer = 3; } else { //! (Speed Crash) If Mario's speed is more than 2^17. @@ -583,13 +863,76 @@ void anim_and_audio_for_walk(struct MarioState *m) { break; case 3: - if (val04 < 18.0f) { + if (val04 < 55.0f) { m->actionTimer = 2; } else { //! (Speed Crash) If Mario's speed is more than 2^17. - val14 = (s32)(val04 / 4.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); - play_step_sound(m, 9, 45); + + if (m->forwardVel < 45.0f) + { + val14 = (s32)(val04 / 7.5f * 0x10000); + + set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); + + + + } + else + { + + + if (m->flags & MARIO_IS_SUPER) + { + val14 = (s32)(val04 / 10.5f * 0x10000); + //sonic super flying + set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); + } + else + { + if (!(m->flags & MARIO_IS_SHADOW)) { + val14 = (s32)(val04 / 6.8f * 0x10000); + //sonic full speed run + set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_FLIP, val14); + } + else + { + val14 = (s32)(val04 / 30.5f * 0x10000); + //shadow full speed run + set_mario_anim_with_accel(m, MARIO_ANIM_QUICKLY_PUT_CAP_ON, val14); + } + } + if (m->forwardVel < 85.0f) + { + m->marioBodyState->handState = MARIO_HAND_OPEN; + } + } + if (!(m->flags & MARIO_IS_SUPER) || (m->forwardVel < 45.0f) ) + { + + if (m->flags & MARIO_IS_SHADOW && m->forwardVel > 45.0f) + { + play_step_sound(m, 2, 27); + if ((m->marioObj->header.gfx.animInfo.animFrame > 2 && 21 > m->marioObj->header.gfx.animInfo.animFrame) || (m->marioObj->header.gfx.animInfo.animFrame > 27 && 46 > m->marioObj->header.gfx.animInfo.animFrame)) { + play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); + //|| m->marioObj->header.gfx.animInfo.animFrame == 30) + m->particleFlags |= PARTICLE_DUST; + } + } + else + { + play_step_sound(m, 9, 45); + } + + } + else + { + + play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); + adjust_sound_for_speed(m); + + } + + //play_step_sound(m, 27, 63); targetPitch = tilt_body_running(m); val0C = FALSE; @@ -713,7 +1056,7 @@ void tilt_body_walking(struct MarioState *m, s16 startYaw) { UNUSED struct Object *marioObj = m->marioObj; s16 animID = m->marioObj->header.gfx.animInfo.animID; - if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { + if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING || animID == MARIO_ANIM_FORWARD_FLIP || animID == MARIO_ANIM_BEND_KNESS_RIDING_SHELL || animID == MARIO_ANIM_QUICKLY_PUT_CAP_ON) { s16 dYaw = m->faceAngle[1] - startYaw; //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or //! (forwardVel * 170) exceed or equal 2^31. @@ -774,18 +1117,46 @@ void tilt_body_ground_shell(struct MarioState *m, s16 startYaw) { marioObj->header.gfx.pos[1] += 45.0f; } + + + + + s32 act_walking(struct MarioState *m) { Vec3f startPos; s16 startYaw = m->faceAngle[1]; - mario_drop_held_object(m); + + + + //m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; + + + + if (m->floorHeight < m->waterLevel && m->forwardVel > 45.0f) { + m->floorHeight = m->waterLevel; + m->floor = &gWaterSurfacePseudoFloor; + m->floor->originOffset = m->waterLevel; //! Negative origin offset + + + spawn_object(m->marioObj, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); + + } + + + if (should_begin_sliding(m)) { - return set_mario_action(m, ACT_BEGIN_SLIDING, 0); + if (ACT_WALKING && m->forwardVel > 100.0f) + { + return set_mario_action(m, ACT_BEGIN_SLIDING, 0); + } } if (m->input & INPUT_FIRST_PERSON) { - return begin_braking_action(m); + + return begin_braking_action(m); + } if (m->input & INPUT_A_PRESSED) { @@ -805,7 +1176,15 @@ s32 act_walking(struct MarioState *m) { } if (m->input & INPUT_Z_PRESSED) { - return set_mario_action(m, ACT_CROUCH_SLIDE, 0); + + if (m->forwardVel >= 2.0f) + { + return set_mario_action(m, ACT_DIVE_SLIDE, 0); + } + else + { + return set_mario_action(m, ACT_START_CROUCHING, 0); + } } m->actionState = 0; @@ -851,6 +1230,7 @@ s32 act_move_punching(struct MarioState *m) { mario_update_punch_sequence(m); if (m->forwardVel >= 0.0f) { + apply_slope_decel(m, 0.5f); } else { if ((m->forwardVel += 8.0f) >= 0.0f) { @@ -873,6 +1253,7 @@ s32 act_move_punching(struct MarioState *m) { } s32 act_hold_walking(struct MarioState *m) { + if (m->heldObj->behavior == segmented_to_virtual(bhvJumpingBox)) { return set_mario_action(m, ACT_CRAZY_BOX_BOUNCE, 0); } @@ -898,7 +1279,7 @@ s32 act_hold_walking(struct MarioState *m) { } if (m->input & INPUT_Z_PRESSED) { - return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); + return drop_and_set_mario_action(m, ACT_CROUCHING, 0); } m->intendedMag *= 0.4f; @@ -1091,7 +1472,7 @@ s32 act_decelerating(struct MarioState *m) { } if (m->input & INPUT_Z_PRESSED) { - return set_mario_action(m, ACT_CROUCH_SLIDE, 0); + return set_mario_action(m, ACT_START_CROUCHING, 0); } } @@ -1152,7 +1533,7 @@ s32 act_hold_decelerating(struct MarioState *m) { } if (m->input & INPUT_Z_PRESSED) { - return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); + return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); } if (m->input & INPUT_NONZERO_ANALOG) { @@ -1198,7 +1579,7 @@ s32 act_hold_decelerating(struct MarioState *m) { } s32 act_riding_shell_ground(struct MarioState *m) { - s16 startYaw = m->faceAngle[1]; + /*06*/ s16 startYaw = m->faceAngle[1]; if (m->input & INPUT_A_PRESSED) { return set_mario_action(m, ACT_RIDING_SHELL_JUMP, 0); @@ -1209,7 +1590,7 @@ s32 act_riding_shell_ground(struct MarioState *m) { if (m->forwardVel < 24.0f) { mario_set_forward_vel(m, 24.0f); } - return set_mario_action(m, ACT_CROUCH_SLIDE, 0); + return set_mario_action(m, ACT_DIVE_SLIDE, 0); } update_shell_speed(m); @@ -1238,9 +1619,8 @@ s32 act_riding_shell_ground(struct MarioState *m) { } adjust_sound_for_speed(m); -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + + return FALSE; } @@ -1319,7 +1699,7 @@ s32 act_burning_ground(struct MarioState *m) { m->forwardVel = 48.0f; } - m->forwardVel = approach_f32(m->forwardVel, 32.0f, 4.0f, 1.0f); + m->forwardVel = approach_f32(m->forwardVel, 42.0f, 4.0f, 1.0f); if (m->input & INPUT_NONZERO_ANALOG) { m->faceAngle[1] = @@ -1337,34 +1717,56 @@ s32 act_burning_ground(struct MarioState *m) { m->particleFlags |= PARTICLE_FIRE; play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); + if (!(m->flags & MARIO_IS_SUPER)) + { + if (gDialogHealthSystem == SONIC_HEALTH) + { + if (gMarioState->numCoins >= 50) { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, 50); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } else { + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); + gMarioState->numCoins = 0; + gHudDisplay.coins = 0; + } + if (gMarioState->numCoins == 0) { + // m->health -= 100; + } + } + else + { + m->health -= 10; + } + } - m->health -= 10; - if (m->health < 0x100) { - set_mario_action(m, ACT_STANDING_DEATH, 0); - } - + if (m->health < 0x100 ) { + set_mario_action(m, ACT_STANDING_DEATH, 0); + } m->marioBodyState->eyeState = MARIO_EYES_DEAD; -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + + return FALSE; } void tilt_body_butt_slide(struct MarioState *m) { s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; - m->marioBodyState->torsoAngle[0] = (s32)(5461.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); - m->marioBodyState->torsoAngle[2] = (s32)(-(5461.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); + m->marioBodyState->torsoAngle[0] = (s32)(1961.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); + m->marioBodyState->torsoAngle[2] = (s32)(-(1961.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); } void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 animation) { - Vec3f pos; + Vec3f val14; - vec3f_copy(pos, m->pos); + + m->homingObj = NULL; + + vec3f_copy(val14, m->pos); play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + adjust_sound_for_speed(m); @@ -1488,17 +1890,16 @@ s32 act_crouch_slide(struct MarioState *m) { s32 act_slide_kick_slide(struct MarioState *m) { if (m->input & INPUT_A_PRESSED) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif - return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0); - } + return set_jumping_action(m, ACT_JUMP, 0); + } + m->actionTimer++; set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); if (is_anim_at_end(m) && m->forwardVel < 1.0f) { return set_mario_action(m, ACT_SLIDE_KICK_SLIDE_STOP, 0); } + update_sliding(m, 1.0f); switch (perform_ground_step(m)) { case GROUND_STEP_LEFT_GROUND: @@ -1518,13 +1919,15 @@ s32 act_slide_kick_slide(struct MarioState *m) { } s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s32 animation) { + if (m->actionTimer == 5) { if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif - return drop_and_set_mario_action( - m, m->forwardVel >= 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, 0); + + if (m->forwardVel < 180) + { + return drop_and_set_mario_action( + m, m->forwardVel >= 0.0f ? ACT_JUMP : ACT_JUMP, 0); + } } } else { m->actionTimer++; @@ -1539,8 +1942,13 @@ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s3 } s32 act_stomach_slide(struct MarioState *m) { - s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_SLIDE_DIVE); + + s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); return cancel; + m->marioObj->header.gfx.animInfo.animAccel = 0x10000; + + + } s32 act_hold_stomach_slide(struct MarioState *m) { @@ -1550,16 +1958,23 @@ s32 act_hold_stomach_slide(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_STOMACH_SLIDE, 0); } - cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_SLIDE_DIVE); + cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); return cancel; } s32 act_dive_slide(struct MarioState *m) { + m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 650; + //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 55; + //cur_obj_scale(0.9f); + if (check_kick_or_dive_in_air(m)) { + return TRUE; + } + m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; + if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif - return set_mario_action(m, m->forwardVel > 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, + + + return set_mario_action(m, m->forwardVel > 0.0f ? ACT_JUMP : ACT_JUMP, 0); } @@ -1570,7 +1985,15 @@ s32 act_dive_slide(struct MarioState *m) { // mario_check_object_grab, and so will end up in the regular picking action, // rather than the picking up after dive action. - if (update_sliding(m, 8.0f) && is_anim_at_end(m)) { + if (m->forwardVel < 0.2f) + { + mario_set_forward_vel(m, 0.0f); + set_mario_action(m, ACT_IDLE, 0); + } + + + + if (update_sliding(m, 0.0f) && is_anim_at_end(m)) { mario_set_forward_vel(m, 0.0f); set_mario_action(m, ACT_STOMACH_SLIDE_STOP, 0); } @@ -1581,12 +2004,12 @@ s32 act_dive_slide(struct MarioState *m) { return TRUE; } - common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_DIVE); + common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); return FALSE; } s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4) { - s32 animFrame; + s32 val04; if (arg3) { play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); @@ -1609,8 +2032,8 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 m->forwardVel = -32.0f; } - animFrame = set_mario_animation(m, animation); - if (animFrame < arg2) { + val04 = set_mario_animation(m, animation); + if (val04 < arg2) { apply_landing_accel(m, 0.9f); } else if (m->forwardVel >= 0.0f) { mario_set_forward_vel(m, 0.1f); @@ -1635,23 +2058,23 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 } } - return animFrame; + return val04; } s32 act_hard_backward_ground_kb(struct MarioState *m) { - s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); - if (animFrame == 43 && m->health < 0x100) { + s32 val04 = + common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 0x2B, TRUE, m->actionArg); + if (val04 == 0x2B && m->health < 0x100) { set_mario_action(m, ACT_DEATH_ON_BACK, 0); } #ifndef VERSION_JP - if (animFrame == 54 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { + if (val04 == 0x36 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); } #endif - if (animFrame == 69) { + if (val04 == 0x45) { play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); } @@ -1659,9 +2082,9 @@ s32 act_hard_backward_ground_kb(struct MarioState *m) { } s32 act_hard_forward_ground_kb(struct MarioState *m) { - s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); - if (animFrame == 23 && m->health < 0x100) { + + s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 0x15, TRUE, m->actionArg); + if (val04 == 0x17 && m->health < 0x100) { set_mario_action(m, ACT_DEATH_ON_STOMACH, 0); } @@ -1669,46 +2092,49 @@ s32 act_hard_forward_ground_kb(struct MarioState *m) { } s32 act_backward_ground_kb(struct MarioState *m) { - common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); + common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 0x16, TRUE, m->actionArg); return FALSE; + } s32 act_forward_ground_kb(struct MarioState *m) { - common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); + common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 0x14, TRUE, m->actionArg); + return FALSE; } s32 act_soft_backward_ground_kb(struct MarioState *m) { - common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); + + common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 0x64, FALSE, m->actionArg); return FALSE; } s32 act_soft_forward_ground_kb(struct MarioState *m) { - common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); + + common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 0x64, FALSE, m->actionArg); return FALSE; } s32 act_ground_bonk(struct MarioState *m) { - s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); - if (animFrame == 32) { + s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 0x20, TRUE, m->actionArg); + if (val04 == 0x20) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } return FALSE; } s32 act_death_exit_land(struct MarioState *m) { - s32 animFrame; + s32 val04; apply_landing_accel(m, 0.9f); play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); - animFrame = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); + val04 = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); - if (animFrame == 54) { + if (val04 == 0x36) { play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); } - if (animFrame == 68) { + if (val04 == 0x44) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } @@ -1725,6 +2151,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { if (m->input & INPUT_NONZERO_ANALOG) { apply_landing_accel(m, 0.98f); } else if (m->forwardVel >= 16.0f) { + apply_slope_decel(m, 2.0f); } else { m->vel[1] = 0.0f; @@ -1764,7 +2191,8 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc return mario_push_off_steep_floor(m, landingAction->verySteepAction, 0); } - m->doubleJumpTimer = landingAction->unk02; + //m->doubleJumpTimer = landingAction->unk02; + if (should_begin_sliding(m)) { return set_mario_action(m, landingAction->slideAction, 0); @@ -1790,6 +2218,7 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc } s32 act_jump_land(struct MarioState *m) { + if (common_landing_cancels(m, &sJumpLandAction, set_jumping_action)) { return TRUE; } @@ -1851,7 +2280,7 @@ s32 act_long_jump_land(struct MarioState *m) { m->forwardVel = 0.0f; } #endif - + if (!(m->input & INPUT_Z_DOWN)) { m->input &= ~INPUT_A_PRESSED; } @@ -1872,8 +2301,8 @@ s32 act_long_jump_land(struct MarioState *m) { } s32 act_double_jump_land(struct MarioState *m) { - if (common_landing_cancels(m, &sDoubleJumpLandAction, set_triple_jump_action)) { - return TRUE; + if (common_landing_cancels(m, &sDoubleJumpLandAction, set_jumping_action)) { + return FALSE; } common_landing_action(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); return FALSE; @@ -2023,6 +2452,7 @@ s32 mario_execute_moving_action(struct MarioState *m) { case ACT_QUICKSAND_JUMP_LAND: cancel = act_quicksand_jump_land(m); break; case ACT_HOLD_QUICKSAND_JUMP_LAND: cancel = act_hold_quicksand_jump_land(m); break; case ACT_LONG_JUMP_LAND: cancel = act_long_jump_land(m); break; + case ACT_SPINDASH: cancel = act_spindash(m); break; } /* clang-format on */ diff --git a/src/game/mario_actions_moving.c.rej b/src/game/mario_actions_moving.c.rej new file mode 100644 index 00000000..059de191 --- /dev/null +++ b/src/game/mario_actions_moving.c.rej @@ -0,0 +1,1309 @@ +diff a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c (rejected hunks) +@@ -1,5 +1,5 @@ + #include +- ++#include "types.h" + #include "sm64.h" + #include "mario.h" + #include "audio/external.h" +@@ -12,6 +12,8 @@ + #include "memory.h" + #include "behavior_data.h" + #include "rumble_init.h" ++#include "ingame_menu.h" ++#include "level_update.h" + + struct LandingAction { + s16 numFrames; +@@ -24,15 +26,15 @@ struct LandingAction { + }; + + struct LandingAction sJumpLandAction = { +- 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_JUMP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sFreefallLandAction = { +- 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_FREEFALL_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sSideFlipLandAction = { +- 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_DOUBLE_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, ++ 4, 5, ACT_FREEFALL, ACT_SIDE_FLIP_LAND_STOP, ACT_JUMP, ACT_FREEFALL, ACT_BEGIN_SLIDING, + }; + + struct LandingAction sHoldJumpLandAction = { +@@ -62,9 +64,12 @@ struct LandingAction sBackflipLandAction = { + Mat4 sFloorAlignMatrix[2]; + + s16 tilt_body_running(struct MarioState *m) { +- s16 pitch = find_floor_slope(m, 0); +- pitch = pitch * m->forwardVel / 40.0f; +- return -pitch; ++ if (m->floorHeight != m->waterLevel) ++ { ++ s16 pitch = find_floor_slope(m, 0); ++ pitch = pitch * m->forwardVel / 40.0f; ++ return -pitch; ++ } + } + + void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { +@@ -86,9 +91,37 @@ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { + } + + void align_with_floor(struct MarioState *m) { +- m->pos[1] = m->floorHeight; +- mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); +- m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ if (m->action != ACT_DIVE_SLIDE) ++ { ++ m->pos[1] = m->floorHeight; ++ } ++ else ++ { ++ m->pos[1] = m->floorHeight + 30; ++ } ++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); ++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ ++ ++ ++ ++ ++ if (m->action == ACT_SPINDASH) ++ { ++ //m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 280; ++ m->marioObj->header.gfx.angle[1] = m->faceAngle[1]; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.8f, 1.05f, 0.8f); ++ ++ } ++ else ++ { ++ if (m->action != ACT_DIVE_SLIDE) ++ { ++ mtxf_align_terrain_triangle(sFloorAlignMatrix[m->unk00], m->pos, m->faceAngle[1], 40.0f); ++ m->marioObj->header.gfx.throwMatrix = &sFloorAlignMatrix[m->unk00]; ++ } ++ } ++ + } + + s32 begin_walking_action(struct MarioState *m, f32 forwardVel, u32 action, u32 actionArg) { +@@ -114,20 +147,22 @@ void check_ledge_climb_down(struct MarioState *m) { + + if (find_wall_collisions(&wallCols) != 0) { + floorHeight = find_floor(wallCols.x, wallCols.y, wallCols.z, &floor); +- if (floor != NULL && (wallCols.y - floorHeight > 160.0f)) { +- wall = wallCols.walls[wallCols.numWalls - 1]; +- wallAngle = atan2s(wall->normal.z, wall->normal.x); +- wallDYaw = wallAngle - m->faceAngle[1]; ++ if (floor != NULL) { ++ if (wallCols.y - floorHeight > 160.0f) { ++ wall = wallCols.walls[wallCols.numWalls - 1]; ++ wallAngle = atan2s(wall->normal.z, wall->normal.x); ++ wallDYaw = wallAngle - m->faceAngle[1]; + +- if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { +- m->pos[0] = wallCols.x - 20.0f * wall->normal.x; +- m->pos[2] = wallCols.z - 20.0f * wall->normal.z; ++ if (wallDYaw > -0x4000 && wallDYaw < 0x4000) { ++ m->pos[0] = wallCols.x - 20.0f * wall->normal.x; ++ m->pos[2] = wallCols.z - 20.0f * wall->normal.z; + +- m->faceAngle[0] = 0; +- m->faceAngle[1] = wallAngle + 0x8000; ++ m->faceAngle[0] = 0; ++ m->faceAngle[1] = wallAngle + 0x8000; + +- set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); +- set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); ++ set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); ++ set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); ++ } + } + } + } +@@ -135,7 +170,7 @@ void check_ledge_climb_down(struct MarioState *m) { + } + + void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { +- if (m->forwardVel > 16.0f) { ++ if (m->forwardVel > 70.0f) { + mario_bonk_reflection(m, TRUE); + drop_and_set_mario_action(m, fastAction, 0); + } else { +@@ -144,76 +179,195 @@ void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction) { + } + } + +-s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { +- if (m->flags & MARIO_WING_CAP) { +- return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); +- } else if (m->forwardVel > 20.0f) { +- return set_mario_action(m, ACT_TRIPLE_JUMP, 0); +- } else { +- return set_mario_action(m, ACT_JUMP, 0); +- } +- +- return FALSE; +-} + +-void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { +- s32 newFacingDYaw; +- s16 facingDYaw; + +- struct Surface *floor = m->floor; +- s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); +- f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); +- UNUSED f32 normalY = floor->normal.y; + +- m->slideVelX += accel * steepness * sins(slopeAngle); +- m->slideVelZ += accel * steepness * coss(slopeAngle); ++s32 act_spindash(struct MarioState *m) { ++ m->faceAngle[1] = m->intendedYaw; ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SUPER_BALL); ++ } ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; ++ ++ //play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ + +- m->slideVelX *= lossFactor; +- m->slideVelZ *= lossFactor; + +- m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); ++ if (!(m->input & INPUT_Z_DOWN)) { ++ m->actionTimer = 0; ++ set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ mario_set_forward_vel(m, m->forwardVel); ++ } + +- facingDYaw = m->faceAngle[1] - m->slideYaw; +- newFacingDYaw = facingDYaw; ++ vec3f_set(m->marioObj->header.gfx.scale, 0.6f, 1.0f, 0.6f); + +- //! -0x4000 not handled - can slide down a slope while facing perpendicular to it +- if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { +- if ((newFacingDYaw -= 0x200) < 0) { +- newFacingDYaw = 0; +- } +- } else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { +- if ((newFacingDYaw += 0x200) > 0) { +- newFacingDYaw = 0; +- } +- } else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { +- if ((newFacingDYaw += 0x200) > 0x8000) { +- newFacingDYaw = 0x8000; +- } +- } else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { +- if ((newFacingDYaw -= 0x200) < -0x8000) { +- newFacingDYaw = -0x8000; +- } +- } ++ if (m->forwardVel < 50.0f) ++ { ++ m->marioObj->header.gfx.angle[0] = m->marioObj->header.gfx.angle[0] + 200; ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 30; ++ ++ m->forwardVel = 50.0f; ++ } + +- m->faceAngle[1] = m->slideYaw + newFacingDYaw; ++ if (m->input & INPUT_B_PRESSED ) { ++ if (m->forwardVel <= 200) ++ { ++ m->particleFlags |= PARTICLE_DUST; ++ ++ m->forwardVel += 40.0f; + +- m->vel[0] = m->slideVelX; +- m->vel[1] = 0.0f; +- m->vel[2] = m->slideVelZ; ++ } ++ else ++ { ++ m->forwardVel = 200; ++ } ++ play_sound(SOUND_MARIO_YAWNING, ++ m->marioObj->header.gfx.cameraToObject); ++ set_mario_action(m, ACT_SPINDASH, m->forwardVel/10); ++ ++ ++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); ++ } + +- mario_update_moving_sand(m); +- mario_update_windy_ground(m); ++ return FALSE; ++} + +- //! Speed is capped a frame late (butt slide HSG) +- m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); +- if (m->forwardVel > 100.0f) { +- m->slideVelX = m->slideVelX * 100.0f / m->forwardVel; +- m->slideVelZ = m->slideVelZ * 100.0f / m->forwardVel; ++s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg) { ++ if (m->flags & MARIO_WING_CAP) { ++ return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0); ++ } else if (m->forwardVel > 20.0f) { ++ return set_mario_action(m, ACT_TRIPLE_JUMP, 0); ++ } else { ++ return set_mario_action(m, ACT_JUMP, 0); + } + +- if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { +- m->forwardVel *= -1.0f; +- } ++ return 0; ++} ++ ++void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor) { ++ s32 newFacingDYaw; ++ s16 facingDYaw; ++ s32 setdash = FALSE; ++ ++ struct Surface *floor = m->floor; ++ s16 slopeAngle = atan2s(floor->normal.z, floor->normal.x); ++ f32 steepness = sqrtf(floor->normal.x * floor->normal.x + floor->normal.z * floor->normal.z); ++ UNUSED f32 normalY = floor->normal.y; ++ ++ m->slideVelX += accel * steepness * sins(slopeAngle); ++ m->slideVelZ += accel * steepness * coss(slopeAngle); ++ ++ m->slideVelX *= lossFactor; ++ m->slideVelZ *= lossFactor; ++ ++ m->slideYaw = atan2s(m->slideVelZ, m->slideVelX); ++ ++ facingDYaw = m->faceAngle[1] - m->slideYaw; ++ newFacingDYaw = facingDYaw; ++ ++ ++ //! -0x4000 not handled - can slide down a slope while facing perpendicular to it ++ if (newFacingDYaw > 0 && newFacingDYaw <= 0x4000) { ++ if ((newFacingDYaw -= 0x200) < 0) { ++ newFacingDYaw = 0; ++ } ++ } ++ else if (newFacingDYaw > -0x4000 && newFacingDYaw < 0) { ++ if ((newFacingDYaw += 0x200) > 0) { ++ newFacingDYaw = 0; ++ } ++ } ++ else if (newFacingDYaw > 0x4000 && newFacingDYaw < 0x8000) { ++ if ((newFacingDYaw += 0x200) > 0x8000) { ++ newFacingDYaw = 0x8000; ++ } ++ } ++ else if (newFacingDYaw > -0x8000 && newFacingDYaw < -0x4000) { ++ if ((newFacingDYaw -= 0x200) < -0x8000) { ++ newFacingDYaw = -0x8000; ++ } ++ } ++ ++ ++ ++ if (m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) ++ { ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ } ++ else ++ { ++ m->faceAngle[1] = m->slideYaw + newFacingDYaw; ++ ++ } ++ if (m->action == ACT_SLIDE_KICK_SLIDE && m->actionTimer == 1) ++ { ++ m->vel[0] = m->slideVelX *= 1.6; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ *= 1.6; ++ } ++ else ++ { ++ m->vel[0] = m->slideVelX; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ; ++ } ++ ++ mario_update_moving_sand(m); ++ mario_update_windy_ground(m); ++ ++ //! Speed is capped a frame late (butt slide HSG) ++ m->forwardVel = sqrtf(m->slideVelX * m->slideVelX + m->slideVelZ * m->slideVelZ); ++ if (m->forwardVel > 150.0f && m->action == ACT_DIVE_SLIDE && m->prevAction == ACT_SPINDASH) ++ { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->actionTimer++; ++ } ++ ++ if (m->forwardVel > 150.0f) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->particleFlags |= PARTICLE_SONIC_TRAIL_ROLLING; ++ } ++ else ++ { ++ m->particleFlags |= PARTICLE_SUPER_TRAIL_ROLLING; ++ } ++ ++ } ++ if (m->forwardVel > 200.0f) { ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ m->forwardVel--; ++ } ++ else ++ { ++ m->forwardVel += 10.0f; ++ } ++ m->slideVelX = m->slideVelX * 200.0f / m->forwardVel; ++ m->slideVelZ = m->slideVelZ * 200.0f / m->forwardVel; ++ ++ } ++ } ++ else ++ { ++ if (m->forwardVel > 150.0f) { ++ m->slideVelX = m->slideVelX * 150.0f / m->forwardVel; ++ m->slideVelZ = m->slideVelZ * 150.0f / m->forwardVel; ++ } ++ ++ ++ } ++ ++ if (newFacingDYaw < -0x4000 || newFacingDYaw > 0x4000) { ++ m->forwardVel *= -1.0f; ++ } + } + + s32 update_sliding(struct MarioState *m, f32 stopSpeed) { +@@ -228,6 +382,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + f32 forward = coss(intendedDYaw); + f32 sideward = sins(intendedDYaw); + ++ + //! 10k glitch + if (forward < 0.0f && m->forwardVel >= 0.0f) { + forward *= 0.5f + 0.5f * m->forwardVel / 100.0f; +@@ -235,23 +390,65 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + + switch (mario_get_floor_class(m)) { + case SURFACE_CLASS_VERY_SLIPPERY: +- accel = 10.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 26.0f; ++ ++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.98f; ++ } ++ else ++ { ++ ++ accel = 10.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.98f; ++ } ++ + break; + + case SURFACE_CLASS_SLIPPERY: +- accel = 8.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 23.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.02f + 0.96f; ++ } ++ else ++ { ++ accel = 8.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.96f; ++ } ++ + break; + + default: +- accel = 7.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 20.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; ++ } ++ else ++ { ++ accel = 7.0f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ } ++ + break; + + case SURFACE_CLASS_NOT_SLIPPERY: +- accel = 5.0f; +- lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ if ((m->action == ACT_DIVE_SLIDE || m->action == ACT_HOLD_STOMACH_SLIDE) && mario_facing_downhill(m, TRUE)) ++ { ++ ++ accel = 5.0f; ++ lossFactor = m->intendedMag / 11.0f * forward * 0.01f + 0.92f; ++ } ++ else ++ { ++ accel = 0.1f; ++ lossFactor = m->intendedMag / 32.0f * forward * 0.02f + 0.92f; ++ } ++ + break; + } + +@@ -272,6 +469,7 @@ s32 update_sliding(struct MarioState *m, f32 stopSpeed) { + + update_sliding_angle(m, accel, lossFactor); + ++ + if (!mario_floor_is_slope(m) && m->forwardVel * m->forwardVel < stopSpeed * stopSpeed) { + mario_set_forward_vel(m, 0.0f); + stopped = TRUE; +@@ -297,18 +495,94 @@ void apply_slope_accel(struct MarioState *m) { + } + + switch (slopeClass) { +- case SURFACE_CLASS_VERY_SLIPPERY: +- slopeAccel = 5.3f; +- break; +- case SURFACE_CLASS_SLIPPERY: +- slopeAccel = 2.7f; +- break; +- default: +- slopeAccel = 1.7f; +- break; +- case SURFACE_CLASS_NOT_SLIPPERY: +- slopeAccel = 0.0f; +- break; ++ ++ { ++ case SURFACE_CLASS_VERY_SLIPPERY: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 5.3f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 5.3f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ break; ++ case SURFACE_CLASS_SLIPPERY: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 2.7f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 2.7f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ ++ break; ++ default: ++ if (m->action == ACT_DIVE_SLIDE) ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 1.0f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ else ++ { ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 1.0f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ } ++ break; ++ case SURFACE_CLASS_NOT_SLIPPERY: ++ if (m->forwardVel < 50.0f) ++ { ++ slopeAccel = 0.4f; ++ } ++ else ++ { ++ slopeAccel = 0.0f; ++ } ++ break; ++ ++ ++ } + } + + if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { +@@ -347,6 +621,7 @@ s32 apply_landing_accel(struct MarioState *m, f32 frictionFactor) { + return stopped; + } + ++ + void update_shell_speed(struct MarioState *m) { + f32 maxTargetSpeed; + f32 targetSpeed; +@@ -355,6 +630,7 @@ void update_shell_speed(struct MarioState *m) { + m->floorHeight = m->waterLevel; + m->floor = &gWaterSurfacePseudoFloor; + m->floor->originOffset = m->waterLevel; //! Negative origin offset ++ + } + + if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { +@@ -384,8 +660,7 @@ void update_shell_speed(struct MarioState *m) { + m->forwardVel = 64.0f; + } + +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + + apply_slope_accel(m); + } +@@ -395,18 +670,20 @@ s32 apply_slope_decel(struct MarioState *m, f32 decelCoef) { + s32 stopped = FALSE; + + switch (mario_get_floor_class(m)) { ++ + case SURFACE_CLASS_VERY_SLIPPERY: +- decel = decelCoef * 0.2f; ++ decel = decelCoef * 0.8f ; + break; + case SURFACE_CLASS_SLIPPERY: +- decel = decelCoef * 0.7f; ++ decel = decelCoef * 0.9f ; + break; + default: +- decel = decelCoef * 2.0f; ++ decel = decelCoef * 1.5f ; + break; + case SURFACE_CLASS_NOT_SLIPPERY: +- decel = decelCoef * 3.0f; ++ decel = decelCoef * 1.0f ; + break; ++ + } + + if ((m->forwardVel = approach_f32(m->forwardVel, 0.0f, decel, decel)) == 0.0f) { +@@ -435,10 +712,14 @@ void update_walking_speed(struct MarioState *m) { + f32 maxTargetSpeed; + f32 targetSpeed; + ++ ++ ++ ++ + if (m->floor != NULL && m->floor->type == SURFACE_SLOW) { +- maxTargetSpeed = 24.0f; ++ maxTargetSpeed = 800.0f; + } else { +- maxTargetSpeed = 32.0f; ++ maxTargetSpeed = 1000.0f; + } + + targetSpeed = m->intendedMag < maxTargetSpeed ? m->intendedMag : maxTargetSpeed; +@@ -450,25 +731,28 @@ void update_walking_speed(struct MarioState *m) { + if (m->forwardVel <= 0.0f) { + m->forwardVel += 1.1f; + } else if (m->forwardVel <= targetSpeed) { +- m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++ m->forwardVel += 1.1f - m->forwardVel / 1050.0f; + } else if (m->floor->normal.y >= 0.95f) { + m->forwardVel -= 1.0f; + } + +- if (m->forwardVel > 48.0f) { +- m->forwardVel = 48.0f; ++ if (m->forwardVel > 200.0f) { ++ m->forwardVel = 200.0f; + } + +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ /* Handles the "Super responsive controls" cheat. The content of the "else" is Mario's original code for turning around.*/ ++ m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ + apply_slope_accel(m); + } + + s32 should_begin_sliding(struct MarioState *m) { + if (m->input & INPUT_ABOVE_SLIDE) { + s32 slideLevel = (m->area->terrainType & TERRAIN_MASK) == TERRAIN_SLIDE; ++ + s32 movingBackward = m->forwardVel <= -1.0f; + ++ + if (slideLevel || movingBackward || mario_facing_downhill(m, FALSE)) { + return TRUE; + } +@@ -486,11 +770,7 @@ s32 check_ground_dive_or_punch(struct MarioState *m) { + UNUSED s32 unused; + + if (m->input & INPUT_B_PRESSED) { +- //! Speed kick (shoutouts to SimpleFlips) +- if (m->forwardVel >= 29.0f && m->controller->stickMag > 48.0f) { +- m->vel[1] = 20.0f; +- return set_mario_action(m, ACT_DIVE, 1); +- } ++ + + return set_mario_action(m, ACT_MOVE_PUNCHING, 0); + } +@@ -570,7 +850,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { + case 2: + if (val04 < 5.0f) { + m->actionTimer = 1; +- } else if (val04 > 22.0f) { ++ } else if (val04 > 60.0f) { + m->actionTimer = 3; + } else { + //! (Speed Crash) If Mario's speed is more than 2^17. +@@ -583,13 +863,76 @@ void anim_and_audio_for_walk(struct MarioState *m) { + break; + + case 3: +- if (val04 < 18.0f) { ++ if (val04 < 55.0f) { + m->actionTimer = 2; + } else { + //! (Speed Crash) If Mario's speed is more than 2^17. +- val14 = (s32)(val04 / 4.0f * 0x10000); +- set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); +- play_step_sound(m, 9, 45); ++ ++ if (m->forwardVel < 45.0f) ++ { ++ val14 = (s32)(val04 / 7.5f * 0x10000); ++ ++ set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); ++ ++ ++ ++ } ++ else ++ { ++ ++ ++ if (m->flags & MARIO_IS_SUPER) ++ { ++ val14 = (s32)(val04 / 10.5f * 0x10000); ++ //sonic super flying ++ set_mario_anim_with_accel(m, MARIO_ANIM_BEND_KNESS_RIDING_SHELL, val14); ++ } ++ else ++ { ++ if (!(m->flags & MARIO_IS_SHADOW)) { ++ val14 = (s32)(val04 / 6.8f * 0x10000); ++ //sonic full speed run ++ set_mario_anim_with_accel(m, MARIO_ANIM_FORWARD_FLIP, val14); ++ } ++ else ++ { ++ val14 = (s32)(val04 / 30.5f * 0x10000); ++ //shadow full speed run ++ set_mario_anim_with_accel(m, MARIO_ANIM_QUICKLY_PUT_CAP_ON, val14); ++ } ++ } ++ if (m->forwardVel < 85.0f) ++ { ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } ++ } ++ if (!(m->flags & MARIO_IS_SUPER) || (m->forwardVel < 45.0f) ) ++ { ++ ++ if (m->flags & MARIO_IS_SHADOW && m->forwardVel > 45.0f) ++ { ++ play_step_sound(m, 2, 27); ++ if ((m->marioObj->header.gfx.animInfo.animFrame > 2 && 21 > m->marioObj->header.gfx.animInfo.animFrame) || (m->marioObj->header.gfx.animInfo.animFrame > 27 && 46 > m->marioObj->header.gfx.animInfo.animFrame)) { ++ play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); ++ //|| m->marioObj->header.gfx.animInfo.animFrame == 30) ++ m->particleFlags |= PARTICLE_DUST; ++ } ++ } ++ else ++ { ++ play_step_sound(m, 9, 45); ++ } ++ ++ } ++ else ++ { ++ ++ play_sound(SOUND_MOVING_FLYING, m->marioObj->header.gfx.cameraToObject); ++ adjust_sound_for_speed(m); ++ ++ } ++ ++ //play_step_sound(m, 27, 63); + targetPitch = tilt_body_running(m); + + val0C = FALSE; +@@ -713,7 +1056,7 @@ void tilt_body_walking(struct MarioState *m, s16 startYaw) { + UNUSED struct Object *marioObj = m->marioObj; + s16 animID = m->marioObj->header.gfx.animInfo.animID; + +- if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { ++ if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING || animID == MARIO_ANIM_FORWARD_FLIP || animID == MARIO_ANIM_BEND_KNESS_RIDING_SHELL || animID == MARIO_ANIM_QUICKLY_PUT_CAP_ON) { + s16 dYaw = m->faceAngle[1] - startYaw; + //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or + //! (forwardVel * 170) exceed or equal 2^31. +@@ -774,18 +1117,46 @@ void tilt_body_ground_shell(struct MarioState *m, s16 startYaw) { + marioObj->header.gfx.pos[1] += 45.0f; + } + ++ ++ ++ ++ ++ + s32 act_walking(struct MarioState *m) { + Vec3f startPos; + s16 startYaw = m->faceAngle[1]; +- + mario_drop_held_object(m); + ++ ++ ++ ++ //m->particleFlags |= PARTICLE_SHALLOW_WATER_WAVE; ++ ++ ++ ++ if (m->floorHeight < m->waterLevel && m->forwardVel > 45.0f) { ++ m->floorHeight = m->waterLevel; ++ m->floor = &gWaterSurfacePseudoFloor; ++ m->floor->originOffset = m->waterLevel; //! Negative origin offset ++ ++ ++ spawn_object(m->marioObj, MODEL_WAVE_TRAIL, bhvObjectWaveTrail); ++ ++ } ++ ++ ++ + if (should_begin_sliding(m)) { +- return set_mario_action(m, ACT_BEGIN_SLIDING, 0); ++ if (ACT_WALKING && m->forwardVel > 100.0f) ++ { ++ return set_mario_action(m, ACT_BEGIN_SLIDING, 0); ++ } + } + + if (m->input & INPUT_FIRST_PERSON) { +- return begin_braking_action(m); ++ ++ return begin_braking_action(m); ++ + } + + if (m->input & INPUT_A_PRESSED) { +@@ -805,7 +1176,15 @@ s32 act_walking(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ ++ if (m->forwardVel >= 2.0f) ++ { ++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ } ++ else ++ { ++ return set_mario_action(m, ACT_START_CROUCHING, 0); ++ } + } + + m->actionState = 0; +@@ -851,6 +1230,7 @@ s32 act_move_punching(struct MarioState *m) { + mario_update_punch_sequence(m); + + if (m->forwardVel >= 0.0f) { ++ + apply_slope_decel(m, 0.5f); + } else { + if ((m->forwardVel += 8.0f) >= 0.0f) { +@@ -873,6 +1253,7 @@ s32 act_move_punching(struct MarioState *m) { + } + + s32 act_hold_walking(struct MarioState *m) { ++ + if (m->heldObj->behavior == segmented_to_virtual(bhvJumpingBox)) { + return set_mario_action(m, ACT_CRAZY_BOX_BOUNCE, 0); + } +@@ -898,7 +1279,7 @@ s32 act_hold_walking(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return drop_and_set_mario_action(m, ACT_CROUCHING, 0); + } + + m->intendedMag *= 0.4f; +@@ -1091,7 +1472,7 @@ s32 act_decelerating(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return set_mario_action(m, ACT_START_CROUCHING, 0); + } + } + +@@ -1152,7 +1533,7 @@ s32 act_hold_decelerating(struct MarioState *m) { + } + + if (m->input & INPUT_Z_PRESSED) { +- return drop_and_set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { +@@ -1198,7 +1579,7 @@ s32 act_hold_decelerating(struct MarioState *m) { + } + + s32 act_riding_shell_ground(struct MarioState *m) { +- s16 startYaw = m->faceAngle[1]; ++ /*06*/ s16 startYaw = m->faceAngle[1]; + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_RIDING_SHELL_JUMP, 0); +@@ -1209,7 +1590,7 @@ s32 act_riding_shell_ground(struct MarioState *m) { + if (m->forwardVel < 24.0f) { + mario_set_forward_vel(m, 24.0f); + } +- return set_mario_action(m, ACT_CROUCH_SLIDE, 0); ++ return set_mario_action(m, ACT_DIVE_SLIDE, 0); + } + + update_shell_speed(m); +@@ -1238,9 +1619,8 @@ s32 act_riding_shell_ground(struct MarioState *m) { + } + + adjust_sound_for_speed(m); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ ++ + return FALSE; + } + +@@ -1319,7 +1699,7 @@ s32 act_burning_ground(struct MarioState *m) { + m->forwardVel = 48.0f; + } + +- m->forwardVel = approach_f32(m->forwardVel, 32.0f, 4.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 42.0f, 4.0f, 1.0f); + + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] = +@@ -1337,34 +1717,56 @@ s32 act_burning_ground(struct MarioState *m) { + + m->particleFlags |= PARTICLE_FIRE; + play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); ++ if (!(m->flags & MARIO_IS_SUPER)) ++ { ++ if (gDialogHealthSystem == SONIC_HEALTH) ++ { ++ if (gMarioState->numCoins >= 50) { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, 50); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } else { ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ obj_spawn_yellow_coins(m->marioObj, gMarioState->numCoins); ++ gMarioState->numCoins = 0; ++ gHudDisplay.coins = 0; ++ } ++ if (gMarioState->numCoins == 0) { ++ // m->health -= 100; ++ } ++ } ++ else ++ { ++ m->health -= 10; ++ } ++ } ++ ++ if (m->health < 0x100 ) { ++ set_mario_action(m, ACT_STANDING_DEATH, 0); ++ } ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; + +- m->health -= 10; +- if (m->health < 0x100) { +- set_mario_action(m, ACT_STANDING_DEATH, 0); +- } + +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif + return FALSE; + } + + void tilt_body_butt_slide(struct MarioState *m) { + s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- m->marioBodyState->torsoAngle[0] = (s32)(5461.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); +- m->marioBodyState->torsoAngle[2] = (s32)(-(5461.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); ++ m->marioBodyState->torsoAngle[0] = (s32)(1961.3335f * m->intendedMag / 32.0f * coss(intendedDYaw)); ++ m->marioBodyState->torsoAngle[2] = (s32)(-(1961.3335f * m->intendedMag / 32.0f * sins(intendedDYaw))); + } + + void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 animation) { +- Vec3f pos; ++ Vec3f val14; + +- vec3f_copy(pos, m->pos); ++ ++ m->homingObj = NULL; ++ ++ vec3f_copy(val14, m->pos); + play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); + +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif ++ + + adjust_sound_for_speed(m); + +@@ -1488,17 +1890,16 @@ s32 act_crouch_slide(struct MarioState *m) { + + s32 act_slide_kick_slide(struct MarioState *m) { + if (m->input & INPUT_A_PRESSED) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0); +- } + ++ return set_jumping_action(m, ACT_JUMP, 0); ++ } ++ m->actionTimer++; + set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + if (is_anim_at_end(m) && m->forwardVel < 1.0f) { + return set_mario_action(m, ACT_SLIDE_KICK_SLIDE_STOP, 0); + } + ++ + update_sliding(m, 1.0f); + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: +@@ -1518,13 +1919,15 @@ s32 act_slide_kick_slide(struct MarioState *m) { + } + + s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s32 animation) { ++ + if (m->actionTimer == 5) { + if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return drop_and_set_mario_action( +- m, m->forwardVel >= 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, 0); ++ ++ if (m->forwardVel < 180) ++ { ++ return drop_and_set_mario_action( ++ m, m->forwardVel >= 0.0f ? ACT_JUMP : ACT_JUMP, 0); ++ } + } + } else { + m->actionTimer++; +@@ -1539,8 +1942,13 @@ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s3 + } + + s32 act_stomach_slide(struct MarioState *m) { +- s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_SLIDE_DIVE); ++ ++ s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return cancel; ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; ++ ++ ++ + } + + s32 act_hold_stomach_slide(struct MarioState *m) { +@@ -1550,16 +1958,23 @@ s32 act_hold_stomach_slide(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_STOMACH_SLIDE, 0); + } + +- cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_SLIDE_DIVE); ++ cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return cancel; + } + + s32 act_dive_slide(struct MarioState *m) { ++ m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 650; ++ //m->marioObj->header.gfx.pos[1] = m->marioObj->header.gfx.pos[1] + 55; ++ //cur_obj_scale(0.9f); ++ if (check_kick_or_dive_in_air(m)) { ++ return TRUE; ++ } ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000 + 0x0200 * m->forwardVel; ++ + if (!(m->input & INPUT_ABOVE_SLIDE) && (m->input & (INPUT_A_PRESSED | INPUT_B_PRESSED))) { +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif +- return set_mario_action(m, m->forwardVel > 0.0f ? ACT_FORWARD_ROLLOUT : ACT_BACKWARD_ROLLOUT, ++ ++ ++ return set_mario_action(m, m->forwardVel > 0.0f ? ACT_JUMP : ACT_JUMP, + 0); + } + +@@ -1570,7 +1985,15 @@ s32 act_dive_slide(struct MarioState *m) { + // mario_check_object_grab, and so will end up in the regular picking action, + // rather than the picking up after dive action. + +- if (update_sliding(m, 8.0f) && is_anim_at_end(m)) { ++ if (m->forwardVel < 0.2f) ++ { ++ mario_set_forward_vel(m, 0.0f); ++ set_mario_action(m, ACT_IDLE, 0); ++ } ++ ++ ++ ++ if (update_sliding(m, 0.0f) && is_anim_at_end(m)) { + mario_set_forward_vel(m, 0.0f); + set_mario_action(m, ACT_STOMACH_SLIDE_STOP, 0); + } +@@ -1581,12 +2004,12 @@ s32 act_dive_slide(struct MarioState *m) { + return TRUE; + } + +- common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_DIVE); ++ common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING); + return FALSE; + } + + s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4) { +- s32 animFrame; ++ s32 val04; + + if (arg3) { + play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); +@@ -1609,8 +2032,8 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 + m->forwardVel = -32.0f; + } + +- animFrame = set_mario_animation(m, animation); +- if (animFrame < arg2) { ++ val04 = set_mario_animation(m, animation); ++ if (val04 < arg2) { + apply_landing_accel(m, 0.9f); + } else if (m->forwardVel >= 0.0f) { + mario_set_forward_vel(m, 0.1f); +@@ -1635,23 +2058,23 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 + } + } + +- return animFrame; ++ return val04; + } + + s32 act_hard_backward_ground_kb(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); +- if (animFrame == 43 && m->health < 0x100) { ++ s32 val04 = ++ common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 0x2B, TRUE, m->actionArg); ++ if (val04 == 0x2B && m->health < 0x100) { + set_mario_action(m, ACT_DEATH_ON_BACK, 0); + } + + #ifndef VERSION_JP +- if (animFrame == 54 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { ++ if (val04 == 0x36 && m->prevAction == ACT_SPECIAL_DEATH_EXIT) { + play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); + } + #endif + +- if (animFrame == 69) { ++ if (val04 == 0x45) { + play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); + } + +@@ -1659,9 +2082,9 @@ s32 act_hard_backward_ground_kb(struct MarioState *m) { + } + + s32 act_hard_forward_ground_kb(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); +- if (animFrame == 23 && m->health < 0x100) { ++ ++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 0x15, TRUE, m->actionArg); ++ if (val04 == 0x17 && m->health < 0x100) { + set_mario_action(m, ACT_DEATH_ON_STOMACH, 0); + } + +@@ -1669,46 +2092,49 @@ s32 act_hard_forward_ground_kb(struct MarioState *m) { + } + + s32 act_backward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); ++ common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 0x16, TRUE, m->actionArg); + return FALSE; ++ + } + + s32 act_forward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); ++ common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 0x14, TRUE, m->actionArg); ++ + return FALSE; + } + + s32 act_soft_backward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); ++ ++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 0x64, FALSE, m->actionArg); + return FALSE; + } + + s32 act_soft_forward_ground_kb(struct MarioState *m) { +- common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); ++ ++ common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 0x64, FALSE, m->actionArg); + return FALSE; + } + + s32 act_ground_bonk(struct MarioState *m) { +- s32 animFrame = +- common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); +- if (animFrame == 32) { ++ s32 val04 = common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 0x20, TRUE, m->actionArg); ++ if (val04 == 0x20) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + return FALSE; + } + + s32 act_death_exit_land(struct MarioState *m) { +- s32 animFrame; ++ s32 val04; + + apply_landing_accel(m, 0.9f); + play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + +- animFrame = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); ++ val04 = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); + +- if (animFrame == 54) { ++ if (val04 == 0x36) { + play_sound(SOUND_MARIO_MAMA_MIA, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame == 68) { ++ if (val04 == 0x44) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + +@@ -1725,6 +2151,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { + if (m->input & INPUT_NONZERO_ANALOG) { + apply_landing_accel(m, 0.98f); + } else if (m->forwardVel >= 16.0f) { ++ + apply_slope_decel(m, 2.0f); + } else { + m->vel[1] = 0.0f; +@@ -1764,7 +2191,8 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc + return mario_push_off_steep_floor(m, landingAction->verySteepAction, 0); + } + +- m->doubleJumpTimer = landingAction->unk02; ++ //m->doubleJumpTimer = landingAction->unk02; ++ + + if (should_begin_sliding(m)) { + return set_mario_action(m, landingAction->slideAction, 0); +@@ -1790,6 +2218,7 @@ s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAc + } + + s32 act_jump_land(struct MarioState *m) { ++ + if (common_landing_cancels(m, &sJumpLandAction, set_jumping_action)) { + return TRUE; + } +@@ -1851,7 +2280,7 @@ s32 act_long_jump_land(struct MarioState *m) { + m->forwardVel = 0.0f; + } + #endif +- ++ + if (!(m->input & INPUT_Z_DOWN)) { + m->input &= ~INPUT_A_PRESSED; + } +@@ -1872,8 +2301,8 @@ s32 act_long_jump_land(struct MarioState *m) { + } + + s32 act_double_jump_land(struct MarioState *m) { +- if (common_landing_cancels(m, &sDoubleJumpLandAction, set_triple_jump_action)) { +- return TRUE; ++ if (common_landing_cancels(m, &sDoubleJumpLandAction, set_jumping_action)) { ++ return FALSE; + } + common_landing_action(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); + return FALSE; +@@ -2023,6 +2452,7 @@ s32 mario_execute_moving_action(struct MarioState *m) { + case ACT_QUICKSAND_JUMP_LAND: cancel = act_quicksand_jump_land(m); break; + case ACT_HOLD_QUICKSAND_JUMP_LAND: cancel = act_hold_quicksand_jump_land(m); break; + case ACT_LONG_JUMP_LAND: cancel = act_long_jump_land(m); break; ++ case ACT_SPINDASH: cancel = act_spindash(m); break; + } + /* clang-format on */ + diff --git a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c index fabc3635..5b46b097 100644 --- a/src/game/mario_actions_object.c +++ b/src/game/mario_actions_object.c @@ -28,8 +28,13 @@ s32 mario_update_punch_sequence(struct MarioState *m) { u32 endAction, crouchEndAction; s32 animFrame; + + + + + if (m->action & ACT_FLAG_MOVING) { - endAction = ACT_WALKING, crouchEndAction = ACT_CROUCH_SLIDE; + endAction = ACT_WALKING, crouchEndAction = ACT_DIVE_SLIDE; } else { endAction = ACT_IDLE, crouchEndAction = ACT_CROUCHING; } @@ -114,6 +119,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); animFrame = set_mario_animation(m, MARIO_ANIM_GROUND_KICK); if (animFrame == 0) { + m->marioBodyState->punchState = (2 << 6) | 6; } @@ -128,22 +134,49 @@ s32 mario_update_punch_sequence(struct MarioState *m) { case 9: play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); - set_mario_animation(m, MARIO_ANIM_BREAKDANCE); - animFrame = m->marioObj->header.gfx.animInfo.animFrame; + // set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + //animFrame = m->marioObj->header.gfx.unk38.animFrame; + + set_mario_action(m, ACT_SPINDASH, 0); + + + + + + if (!(m->input & INPUT_Z_DOWN)) { + + //set_mario_action(m, crouchEndAction, 0); + //set_mario_action(m, ACT_DIVE_SLIDE, 0); + //mario_set_forward_vel(m, Accel); + } + else + { + //Accel += 50.0f; + //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); + } + //mario_set_forward_vel(m, 100.0f); if (animFrame >= 2 && animFrame < 8) { - m->flags |= MARIO_TRIPPING; + //m->flags |= MARIO_TRIPPING; } if (is_anim_at_end(m)) { - set_mario_action(m, crouchEndAction, 0); + + + + //set_mario_action(m, crouchEndAction, 0); + + } - break; + } return FALSE; } + + + s32 act_punching(struct MarioState *m) { if (m->input & INPUT_UNKNOWN_10) { return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); @@ -264,9 +297,7 @@ s32 act_throwing(struct MarioState *m) { mario_throw_held_object(m); play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); -#ifdef VERSION_SH - queue_rumble_data(3, 50); -#endif + } animated_stationary_ground_step(m, MARIO_ANIM_GROUND_THROW, ACT_IDLE); @@ -286,9 +317,7 @@ s32 act_heavy_throw(struct MarioState *m) { mario_drop_held_object(m); play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); -#ifdef VERSION_SH - queue_rumble_data(3, 50); -#endif + } animated_stationary_ground_step(m, MARIO_ANIM_HEAVY_THROW, ACT_IDLE); @@ -318,9 +347,7 @@ s32 act_picking_up_bowser(struct MarioState *m) { m->angleVel[1] = 0; m->marioBodyState->grabPos = GRAB_POS_BOWSER; mario_grab_used_object(m); -#ifdef VERSION_SH - queue_rumble_data(5, 80); -#endif + play_sound(SOUND_MARIO_HRMM, m->marioObj->header.gfx.cameraToObject); } @@ -396,15 +423,11 @@ s32 act_holding_bowser(struct MarioState *m) { // play sound on overflow if (m->angleVel[1] <= -0x100 && spin < m->faceAngle[1]) { -#ifdef VERSION_SH - queue_rumble_data(4, 20); -#endif + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); } if (m->angleVel[1] >= 0x100 && spin > m->faceAngle[1]) { -#ifdef VERSION_SH - queue_rumble_data(4, 20); -#endif + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); } @@ -478,6 +501,7 @@ s32 mario_execute_object_action(struct MarioState *m) { case ACT_PICKING_UP_BOWSER: cancel = act_picking_up_bowser(m); break; case ACT_HOLDING_BOWSER: cancel = act_holding_bowser(m); break; case ACT_RELEASING_BOWSER: cancel = act_releasing_bowser(m); break; + case ACT_SPINDASH: cancel = act_spindash(m); break; } /* clang-format on */ diff --git a/src/game/mario_actions_object.c.rej b/src/game/mario_actions_object.c.rej new file mode 100644 index 00000000..a900deff --- /dev/null +++ b/src/game/mario_actions_object.c.rej @@ -0,0 +1,138 @@ +diff a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c (rejected hunks) +@@ -28,8 +28,13 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + u32 endAction, crouchEndAction; + s32 animFrame; + ++ ++ ++ ++ ++ + if (m->action & ACT_FLAG_MOVING) { +- endAction = ACT_WALKING, crouchEndAction = ACT_CROUCH_SLIDE; ++ endAction = ACT_WALKING, crouchEndAction = ACT_DIVE_SLIDE; + } else { + endAction = ACT_IDLE, crouchEndAction = ACT_CROUCHING; + } +@@ -114,6 +119,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); + animFrame = set_mario_animation(m, MARIO_ANIM_GROUND_KICK); + if (animFrame == 0) { ++ + m->marioBodyState->punchState = (2 << 6) | 6; + } + +@@ -128,22 +134,49 @@ s32 mario_update_punch_sequence(struct MarioState *m) { + + case 9: + play_mario_action_sound(m, SOUND_MARIO_PUNCH_HOO, 1); +- set_mario_animation(m, MARIO_ANIM_BREAKDANCE); +- animFrame = m->marioObj->header.gfx.animInfo.animFrame; ++ // set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ //animFrame = m->marioObj->header.gfx.unk38.animFrame; ++ ++ set_mario_action(m, ACT_SPINDASH, 0); ++ ++ ++ ++ ++ ++ if (!(m->input & INPUT_Z_DOWN)) { ++ ++ //set_mario_action(m, crouchEndAction, 0); ++ //set_mario_action(m, ACT_DIVE_SLIDE, 0); ++ //mario_set_forward_vel(m, Accel); ++ } ++ else ++ { ++ //Accel += 50.0f; ++ //play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 1); ++ } ++ //mario_set_forward_vel(m, 100.0f); + + if (animFrame >= 2 && animFrame < 8) { +- m->flags |= MARIO_TRIPPING; ++ //m->flags |= MARIO_TRIPPING; + } + + if (is_anim_at_end(m)) { +- set_mario_action(m, crouchEndAction, 0); ++ ++ ++ ++ //set_mario_action(m, crouchEndAction, 0); ++ ++ + } +- break; ++ + } + + return FALSE; + } + ++ ++ ++ + s32 act_punching(struct MarioState *m) { + if (m->input & INPUT_UNKNOWN_10) { + return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); +@@ -264,9 +297,7 @@ s32 act_throwing(struct MarioState *m) { + mario_throw_held_object(m); + play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif ++ + } + + animated_stationary_ground_step(m, MARIO_ANIM_GROUND_THROW, ACT_IDLE); +@@ -286,9 +317,7 @@ s32 act_heavy_throw(struct MarioState *m) { + mario_drop_held_object(m); + play_sound_if_no_flag(m, SOUND_MARIO_WAH2, MARIO_MARIO_SOUND_PLAYED); + play_sound_if_no_flag(m, SOUND_ACTION_THROW, MARIO_ACTION_SOUND_PLAYED); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif ++ + } + + animated_stationary_ground_step(m, MARIO_ANIM_HEAVY_THROW, ACT_IDLE); +@@ -318,9 +347,7 @@ s32 act_picking_up_bowser(struct MarioState *m) { + m->angleVel[1] = 0; + m->marioBodyState->grabPos = GRAB_POS_BOWSER; + mario_grab_used_object(m); +-#ifdef VERSION_SH +- queue_rumble_data(5, 80); +-#endif ++ + play_sound(SOUND_MARIO_HRMM, m->marioObj->header.gfx.cameraToObject); + } + +@@ -396,15 +423,11 @@ s32 act_holding_bowser(struct MarioState *m) { + + // play sound on overflow + if (m->angleVel[1] <= -0x100 && spin < m->faceAngle[1]) { +-#ifdef VERSION_SH +- queue_rumble_data(4, 20); +-#endif ++ + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); + } + if (m->angleVel[1] >= 0x100 && spin > m->faceAngle[1]) { +-#ifdef VERSION_SH +- queue_rumble_data(4, 20); +-#endif ++ + play_sound(SOUND_OBJ_BOWSER_SPINNING, m->marioObj->header.gfx.cameraToObject); + } + +@@ -478,6 +501,7 @@ s32 mario_execute_object_action(struct MarioState *m) { + case ACT_PICKING_UP_BOWSER: cancel = act_picking_up_bowser(m); break; + case ACT_HOLDING_BOWSER: cancel = act_holding_bowser(m); break; + case ACT_RELEASING_BOWSER: cancel = act_releasing_bowser(m); break; ++ case ACT_SPINDASH: cancel = act_spindash(m); break; + } + /* clang-format on */ + diff --git a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c index 580d2544..755b06f3 100644 --- a/src/game/mario_actions_stationary.c +++ b/src/game/mario_actions_stationary.c @@ -2,6 +2,7 @@ #include "sm64.h" #include "area.h" +#include "audio/data.h" #include "audio/external.h" #include "behavior_data.h" #include "camera.h" @@ -56,7 +57,7 @@ s32 check_common_idle_cancels(struct MarioState *m) { return set_mario_action(m, ACT_START_CROUCHING, 0); } - return FALSE; + return 0; } s32 check_common_hold_idle_cancels(struct MarioState *m) { @@ -99,10 +100,11 @@ s32 check_common_hold_idle_cancels(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); } - return FALSE; + return 0; } s32 act_idle(struct MarioState *m) { + //m->faceAngle[1] += 10; if (m->quicksandDepth > 30.0f) { return set_mario_action(m, ACT_IN_QUICKSAND, 0); } @@ -116,7 +118,7 @@ s32 act_idle(struct MarioState *m) { } if (check_common_idle_cancels(m)) { - return TRUE; + return 1; } if (m->actionState == 3) { @@ -169,7 +171,7 @@ s32 act_idle(struct MarioState *m) { stationary_ground_step(m); - return FALSE; + return 0; } void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 sound) { @@ -180,84 +182,92 @@ void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 s s32 act_start_sleeping(struct MarioState *m) { #ifndef VERSION_JP - s32 animFrame; + s32 sp24; #endif if (check_common_idle_cancels(m)) { - return TRUE; + return 1; } if (m->quicksandDepth > 30.0f) { return set_mario_action(m, ACT_IN_QUICKSAND, 0); } - if (m->actionState == 4) { - return set_mario_action(m, ACT_SLEEPING, 0); - } - + if (m->actionState == 6) { + return set_mario_action(m, ACT_SLEEPING, 0); + } + switch (m->actionState) { case 0: #ifndef VERSION_JP - animFrame = -#endif + sp24 = set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); +#else set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); +#endif break; - case 1: -#ifndef VERSION_JP - animFrame = -#endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_SCRATCH); - break; - - case 2: -#ifndef VERSION_JP - animFrame = -#endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_YAWN); - m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; - break; - - case 3: -#ifndef VERSION_JP - animFrame = -#endif + case 1: set_mario_animation(m, MARIO_ANIM_START_SLEEP_SITTING); + if (m->marioObj->header.gfx.animInfo.animFrame > 84) { + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + m->marioBodyState->handState = MARIO_HAND_OPEN; + } + break; + + case 2: m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; - break; + m->marioBodyState->handState = MARIO_HAND_OPEN; + set_mario_action(m, ACT_SLEEPING, 0); + break; + + + + } - play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); - play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); - play_anim_sound(m, 3, 15, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + // play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); + // play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); + play_anim_sound(m, 0, 67, SOUND_ACTION_TERRAIN_JUMP); + play_anim_sound(m, 0, 84, SOUND_ACTION_TERRAIN_JUMP); + play_anim_sound(m, 1, 5, SOUND_ACTION_TERRAIN_JUMP); + play_anim_sound(m, 1, 41, SOUND_ACTION_TERRAIN_JUMP); + play_anim_sound(m, 1, 58, SOUND_ACTION_TERRAIN_JUMP); + //play_anim_sound(m, 4, 38, SOUND_ACTION_TERRAIN_JUMP); + play_anim_sound(m, 1, 91, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); if (is_anim_at_end(m)) { + if (m->action != ACT_SLEEPING) + { m->actionState++; + } } #ifndef VERSION_JP - if (m->actionState == 2 && animFrame == -1) { - play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); + if (m->actionState == 2) { + if (sp24 == -1) { + // play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); + } } - if (m->actionState == 1 && animFrame == -1) { - play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); + if (m->actionState == 0) { + if (sp24 == -1) { + //play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); + } } #else if (m->actionState == 2) { - play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); + // play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); } #endif stationary_ground_step(m); - return FALSE; + return 0; } s32 act_sleeping(struct MarioState *m) { - s32 animFrame; - if (m->input - & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE - | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { + s32 sp24; + + if (m->input & INPUT_UNKNOWN_A41F /* ? */) { return set_mario_action(m, ACT_WAKING_UP, m->actionState); } @@ -269,58 +279,48 @@ s32 act_sleeping(struct MarioState *m) { return set_mario_action(m, ACT_WAKING_UP, m->actionState); } - m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + m->marioBodyState->handState = MARIO_HAND_OPEN; stationary_ground_step(m); switch (m->actionState) { - case 0: - animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); - if (animFrame == -1 && !m->actionTimer) { + case 0: { + if (sp24 == -1 && !m->actionTimer) { lower_background_noise(2); - } - if (animFrame == 2) { - play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); - } + - if (animFrame == 20) { - play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); + } - if (is_anim_at_end(m)) { m->actionTimer++; - if (m->actionTimer > 45) { - m->actionState++; + + if (m->actionTimer == 4 || m->actionTimer == 13) { + + m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + + } + if (m->actionTimer == 10) { + play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); + } + if (m->actionTimer == 24) { + m->actionTimer = 0; + } + + if (m->actionTimer == 10) { + play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); } } + + // + sp24 = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); + + + break; - - case 1: - if (set_mario_animation(m, MARIO_ANIM_SLEEP_START_LYING) == 18) { - play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); - } - - if (is_anim_at_end(m)) { - m->actionState++; - } - break; - - case 2: - animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); -#ifndef VERSION_JP - play_sound_if_no_flag(m, SOUND_MARIO_SNORING3, MARIO_ACTION_SOUND_PLAYED); -#else - if (animFrame == 2) { - play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); - } - - if (animFrame == 25) { - play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); - } -#endif - break; + } } - return FALSE; + return 0; } s32 act_waking_up(struct MarioState *m) { @@ -355,11 +355,11 @@ s32 act_waking_up(struct MarioState *m) { set_mario_animation(m, !m->actionArg ? MARIO_ANIM_WAKE_FROM_SLEEP : MARIO_ANIM_WAKE_FROM_LYING); - return FALSE; + return 0; } s32 act_shivering(struct MarioState *m) { - s32 animFrame; + s32 sp24; if (m->input & INPUT_UNKNOWN_10) { return set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); @@ -373,67 +373,66 @@ s32 act_shivering(struct MarioState *m) { return set_mario_action(m, ACT_BEGIN_SLIDING, 0); } - if (m->input - & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE - | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { + if (m->input & INPUT_UNKNOWN_A41F) { m->actionState = 2; } stationary_ground_step(m); switch (m->actionState) { - case 0: - animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); - if (animFrame == 49) { + case 0: { + sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); + if (sp24 == 0x31) { m->particleFlags |= PARTICLE_BREATH; play_sound(SOUND_MARIO_PANTING_COLD, m->marioObj->header.gfx.cameraToObject); } - if (animFrame == 7 || animFrame == 81) { + if (sp24 == 7 || sp24 == 0x51) { play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); } if (is_anim_past_end(m)) { m->actionState = 1; } break; - - case 1: - animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING); - if (animFrame == 9 || animFrame == 25 || animFrame == 44) { + } + case 1: { + sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING); + if (sp24 == 9 || sp24 == 0x19 || sp24 == 0x2C) { play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); } break; - - case 2: + } + case 2: { set_mario_animation(m, MARIO_ANIM_SHIVERING_RETURN_TO_IDLE); if (is_anim_past_end(m)) { set_mario_action(m, ACT_IDLE, 0); } break; + } } - return FALSE; + return 0; } s32 act_coughing(struct MarioState *m) { - s32 animFrame; + s32 sp1C; if (check_common_idle_cancels(m)) { - return TRUE; + return 1; } stationary_ground_step(m); - animFrame = set_mario_animation(m, MARIO_ANIM_COUGHING); - if (animFrame == 25 || animFrame == 35) { + sp1C = set_mario_animation(m, MARIO_ANIM_COUGHING); + if (sp1C == 0x19 || sp1C == 0x23) { play_sound(SOUND_MARIO_COUGHING3, m->marioObj->header.gfx.cameraToObject); } - if (animFrame == 50 || animFrame == 58) { + if (sp1C == 0x32 || sp1C == 0x3A) { play_sound(SOUND_MARIO_COUGHING2, m->marioObj->header.gfx.cameraToObject); } - if (animFrame == 71 || animFrame == 80) { + if (sp1C == 0x47 || sp1C == 0x50) { play_sound(SOUND_MARIO_COUGHING1, m->marioObj->header.gfx.cameraToObject); } - return FALSE; + return 0; } s32 act_hold_idle(struct MarioState *m) { @@ -450,12 +449,12 @@ s32 act_hold_idle(struct MarioState *m) { } if (check_common_hold_idle_cancels(m)) { - return TRUE; + return 1; } stationary_ground_step(m); set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); - return FALSE; + return 0; } s32 act_hold_heavy_idle(struct MarioState *m) { @@ -481,7 +480,7 @@ s32 act_hold_heavy_idle(struct MarioState *m) { stationary_ground_step(m); set_mario_animation(m, MARIO_ANIM_IDLE_HEAVY_OBJ); - return FALSE; + return 0; } s32 act_standing_against_wall(struct MarioState *m) { @@ -503,7 +502,7 @@ s32 act_standing_against_wall(struct MarioState *m) { set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); stationary_ground_step(m); - return FALSE; + return 0; } s32 act_in_quicksand(struct MarioState *m) { @@ -511,8 +510,8 @@ s32 act_in_quicksand(struct MarioState *m) { return set_mario_action(m, ACT_IDLE, 0); } - if (check_common_idle_cancels(m)) { - return TRUE; + if (check_common_idle_cancels(m) != 0) { + return 1; } if (m->quicksandDepth > 70.0f) { @@ -522,7 +521,7 @@ s32 act_in_quicksand(struct MarioState *m) { } stationary_ground_step(m); - return FALSE; + return 0; } s32 act_crouching(struct MarioState *m) { @@ -531,7 +530,7 @@ s32 act_crouching(struct MarioState *m) { } if (m->input & INPUT_A_PRESSED) { - return set_jumping_action(m, ACT_BACKFLIP, 0); + return set_jumping_action(m, ACT_JUMP, 0); } if (m->input & INPUT_OFF_FLOOR) { @@ -560,7 +559,7 @@ s32 act_crouching(struct MarioState *m) { stationary_ground_step(m); set_mario_animation(m, MARIO_ANIM_CROUCHING); - return FALSE; + return 0; } s32 act_panting(struct MarioState *m) { @@ -573,7 +572,7 @@ s32 act_panting(struct MarioState *m) { } if (check_common_idle_cancels(m)) { - return TRUE; + return 1; } if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { @@ -583,7 +582,7 @@ s32 act_panting(struct MarioState *m) { stationary_ground_step(m); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; - return FALSE; + return 0; } s32 act_hold_panting_unused(struct MarioState *m) { @@ -599,20 +598,20 @@ s32 act_hold_panting_unused(struct MarioState *m) { return set_mario_action(m, ACT_HOLD_IDLE, 0); } - if (check_common_hold_idle_cancels(m)) { - return TRUE; + if (check_common_hold_idle_cancels(m) != 0) { + return 1; } set_mario_animation(m, MARIO_ANIM_WALK_PANTING); stationary_ground_step(m); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; - return FALSE; + return 0; } void stopping_step(struct MarioState *m, s32 animID, u32 action) { stationary_ground_step(m); set_mario_animation(m, animID); - if (is_anim_at_end(m)) { + if (is_anim_at_end(m) != 0) { set_mario_action(m, action, 0); } } @@ -636,7 +635,7 @@ s32 act_braking_stop(struct MarioState *m) { } stopping_step(m, MARIO_ANIM_STOP_SKID, ACT_IDLE); - return FALSE; + return 0; } s32 act_butt_slide_stop(struct MarioState *m) { @@ -653,7 +652,7 @@ s32 act_butt_slide_stop(struct MarioState *m) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } - return FALSE; + return 0; } s32 act_hold_butt_slide_stop(struct MarioState *m) { @@ -674,7 +673,7 @@ s32 act_hold_butt_slide_stop(struct MarioState *m) { } stopping_step(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); - return FALSE; + return 0; } s32 act_slide_kick_slide_stop(struct MarioState *m) { @@ -687,7 +686,7 @@ s32 act_slide_kick_slide_stop(struct MarioState *m) { } stopping_step(m, MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); - return FALSE; + return 0; } s32 act_start_crouching(struct MarioState *m) { @@ -700,7 +699,7 @@ s32 act_start_crouching(struct MarioState *m) { } if (m->input & INPUT_A_PRESSED) { - return set_jumping_action(m, ACT_BACKFLIP, 0); + return set_jumping_action(m, ACT_JUMP, 0); } if (m->input & INPUT_ABOVE_SLIDE) { @@ -712,7 +711,7 @@ s32 act_start_crouching(struct MarioState *m) { if (is_anim_past_end(m)) { set_mario_action(m, ACT_CROUCHING, 0); } - return FALSE; + return 0; } s32 act_stop_crouching(struct MarioState *m) { @@ -725,7 +724,7 @@ s32 act_stop_crouching(struct MarioState *m) { } if (m->input & INPUT_A_PRESSED) { - return set_jumping_action(m, ACT_BACKFLIP, 0); + return set_jumping_action(m, ACT_JUMP, 0); } if (m->input & INPUT_ABOVE_SLIDE) { @@ -737,7 +736,7 @@ s32 act_stop_crouching(struct MarioState *m) { if (is_anim_past_end(m)) { set_mario_action(m, ACT_IDLE, 0); } - return FALSE; + return 0; } s32 act_start_crawling(struct MarioState *m) { @@ -763,7 +762,7 @@ s32 act_start_crawling(struct MarioState *m) { set_mario_action(m, ACT_CRAWLING, 0); } - return FALSE; + return 0; } s32 act_stop_crawling(struct MarioState *m) { @@ -784,34 +783,30 @@ s32 act_stop_crawling(struct MarioState *m) { if (is_anim_past_end(m)) { set_mario_action(m, ACT_CROUCHING, 0); } - return FALSE; + return 0; } s32 act_shockwave_bounce(struct MarioState *m) { s16 sp1E; f32 sp18; - if (m->marioObj->oInteractStatus & INT_STATUS_HIT_BY_SHOCKWAVE) { -#ifdef VERSION_SH - queue_rumble_data(70, 40); -#endif + if (m->marioObj->oInteractStatus & 0x10) { + //(70, 40); return hurt_and_set_mario_action(m, ACT_SHOCKED, 0, 4); } if (m->actionTimer == 0) { -#ifdef VERSION_SH - queue_rumble_data(70, 40); -#endif + //(70, 40); if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { return hurt_and_set_mario_action(m, ACT_BACKWARD_GROUND_KB, 0, 0xc); } } - if (++m->actionTimer == 48) { + if (++m->actionTimer == 0x30) { return set_mario_action(m, ACT_IDLE, 0); } - sp1E = (m->actionTimer % 16) << 12; + sp1E = (m->actionTimer % 0x10) << 0xC; sp18 = (f32)(((f32)(6 - m->actionTimer / 8) * 8.0f) + 4.0f); mario_set_forward_vel(m, 0); vec3f_set(m->vel, 0.0f, 0.0f, 0.0f); @@ -824,7 +819,7 @@ s32 act_shockwave_bounce(struct MarioState *m) { vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); set_mario_animation(m, MARIO_ANIM_A_POSE); - return FALSE; + return 0; } s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { @@ -833,7 +828,7 @@ s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { if (is_anim_at_end(m)) { return set_mario_action(m, action, 0); } - return FALSE; + return 0; } s32 check_common_landing_cancels(struct MarioState *m, u32 action) { @@ -861,89 +856,90 @@ s32 check_common_landing_cancels(struct MarioState *m, u32 action) { return set_mario_action(m, ACT_PUNCHING, 0); } - return FALSE; + return 0; } s32 act_jump_land_stop(struct MarioState *m) { if (check_common_landing_cancels(m, 0)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); - return FALSE; + return 0; } s32 act_double_jump_land_stop(struct MarioState *m) { if (check_common_landing_cancels(m, 0)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); - return FALSE; + return 0; } s32 act_side_flip_land_stop(struct MarioState *m) { if (check_common_landing_cancels(m, 0)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_IDLE); m->marioObj->header.gfx.angle[1] += 0x8000; - return FALSE; + return 0; } s32 act_freefall_land_stop(struct MarioState *m) { if (check_common_landing_cancels(m, 0)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_GENERAL_LAND, ACT_IDLE); - return FALSE; + return 0; } s32 act_triple_jump_land_stop(struct MarioState *m) { if (check_common_landing_cancels(m, ACT_JUMP)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); - return FALSE; + return 0; } s32 act_backflip_land_stop(struct MarioState *m) { if (!(m->input & INPUT_Z_DOWN) || m->marioObj->header.gfx.animInfo.animFrame >= 6) { - m->input &= ~INPUT_A_PRESSED; + m->input &= -3; } if (check_common_landing_cancels(m, ACT_BACKFLIP)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); - return FALSE; + return 0; } s32 act_lava_boost_land(struct MarioState *m) { - m->input &= ~(INPUT_FIRST_PERSON | INPUT_B_PRESSED); + m->input &= -0x2011; if (check_common_landing_cancels(m, 0)) { - return TRUE; + return 1; } landing_step(m, MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); - return FALSE; + return 0; } s32 act_long_jump_land_stop(struct MarioState *m) { - m->input &= ~INPUT_B_PRESSED; + m->input &= -0x2001; if (check_common_landing_cancels(m, ACT_JUMP)) { - return TRUE; + return 1; } - landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP - : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, - ACT_CROUCHING); - return FALSE; + landing_step(m, + !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP + : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + ACT_CROUCHING); + return 0; } s32 act_hold_jump_land_stop(struct MarioState *m) { @@ -964,7 +960,7 @@ s32 act_hold_jump_land_stop(struct MarioState *m) { } landing_step(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); - return FALSE; + return 0; } s32 act_hold_freefall_land_stop(struct MarioState *m) { @@ -984,7 +980,7 @@ s32 act_hold_freefall_land_stop(struct MarioState *m) { return set_mario_action(m, ACT_THROWING, 0); } landing_step(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); - return FALSE; + return 0; } s32 act_air_throw_land(struct MarioState *m) { @@ -1001,7 +997,7 @@ s32 act_air_throw_land(struct MarioState *m) { } landing_step(m, MARIO_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); - return FALSE; + return 0; } s32 act_twirl_land(struct MarioState *m) { @@ -1026,16 +1022,20 @@ s32 act_twirl_land(struct MarioState *m) { } m->marioObj->header.gfx.angle[1] += m->twirlYaw; - if (is_anim_at_end(m) && m->angleVel[1] == 0) { - m->faceAngle[1] += m->twirlYaw; - set_mario_action(m, ACT_IDLE, 0); + if (is_anim_at_end(m)) { + if (m->angleVel[1] == 0) { + m->faceAngle[1] += m->twirlYaw; + set_mario_action(m, ACT_IDLE, 0); + } } - return FALSE; + return 0; } - +//sonic bound jump s32 act_ground_pound_land(struct MarioState *m) { m->actionState = 1; + + set_mario_action(m, ACT_BACKFLIP, 0); if (m->input & INPUT_UNKNOWN_10) { return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); } @@ -1049,35 +1049,43 @@ s32 act_ground_pound_land(struct MarioState *m) { } landing_step(m, MARIO_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); - return FALSE; + return 0; } s32 act_first_person(struct MarioState *m) { - s32 sp1C = (m->input & (INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE | INPUT_UNKNOWN_10)) != 0; + s32 sp1C; + s16 sp1A; + s16 sp18; + sp1C = 0 != (m->input & (INPUT_UNKNOWN_10 | 0xC)); if (m->actionState == 0) { lower_background_noise(2); set_camera_mode(m->area->camera, CAMERA_MODE_C_UP, 0x10); m->actionState = 1; - } else if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { - raise_background_noise(2); - // Go back to the last camera mode - set_camera_mode(m->area->camera, -1, 1); - return set_mario_action(m, ACT_IDLE, 0); + } else { + if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { + raise_background_noise(2); + // Go back to the last camera mode + set_camera_mode(m->area->camera, -1, 1); + return set_mario_action(m, ACT_IDLE, 0); + } } - if (m->floor->type == SURFACE_LOOK_UP_WARP - && save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1) >= 10) { - s16 sp1A = m->statusForCamera->headRotation[0]; - s16 sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; - if (sp1A == -0x1800 && (sp18 < -0x6FFF || sp18 >= 0x7000)) { - level_trigger_warp(m, WARP_OP_UNKNOWN_01); + if (m->floor->type == SURFACE_LOOK_UP_WARP) { + if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 0x18) >= 10) { + sp1A = m->statusForCamera->headRotation[0]; + sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; + if (sp1A == -0x1800) { + if (sp18 < -0x6FFF || sp18 >= 0x7000) { + level_trigger_warp(m, 1); + } + } } } stationary_ground_step(m); set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); - return FALSE; + return 0; } s32 check_common_stationary_cancels(struct MarioState *m) { @@ -1094,70 +1102,72 @@ s32 check_common_stationary_cancels(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_SQUISHED, 0); } - if (m->action != ACT_UNKNOWN_0002020E) { + if (m->action != 0x0002020E) { if (m->health < 0x100) { update_mario_sound_and_camera(m); return drop_and_set_mario_action(m, ACT_STANDING_DEATH, 0); } } - return FALSE; + return 0; } s32 mario_execute_stationary_action(struct MarioState *m) { - s32 cancel; + s32 sp24; if (check_common_stationary_cancels(m)) { - return TRUE; + return 1; } if (mario_update_quicksand(m, 0.5f)) { - return TRUE; + return 1; } /* clang-format off */ switch (m->action) { - case ACT_IDLE: cancel = act_idle(m); break; - case ACT_START_SLEEPING: cancel = act_start_sleeping(m); break; - case ACT_SLEEPING: cancel = act_sleeping(m); break; - case ACT_WAKING_UP: cancel = act_waking_up(m); break; - case ACT_PANTING: cancel = act_panting(m); break; - case ACT_HOLD_PANTING_UNUSED: cancel = act_hold_panting_unused(m); break; - case ACT_HOLD_IDLE: cancel = act_hold_idle(m); break; - case ACT_HOLD_HEAVY_IDLE: cancel = act_hold_heavy_idle(m); break; - case ACT_IN_QUICKSAND: cancel = act_in_quicksand(m); break; - case ACT_STANDING_AGAINST_WALL: cancel = act_standing_against_wall(m); break; - case ACT_COUGHING: cancel = act_coughing(m); break; - case ACT_SHIVERING: cancel = act_shivering(m); break; - case ACT_CROUCHING: cancel = act_crouching(m); break; - case ACT_START_CROUCHING: cancel = act_start_crouching(m); break; - case ACT_STOP_CROUCHING: cancel = act_stop_crouching(m); break; - case ACT_START_CRAWLING: cancel = act_start_crawling(m); break; - case ACT_STOP_CRAWLING: cancel = act_stop_crawling(m); break; - case ACT_SLIDE_KICK_SLIDE_STOP: cancel = act_slide_kick_slide_stop(m); break; - case ACT_SHOCKWAVE_BOUNCE: cancel = act_shockwave_bounce(m); break; - case ACT_FIRST_PERSON: cancel = act_first_person(m); break; - case ACT_JUMP_LAND_STOP: cancel = act_jump_land_stop(m); break; - case ACT_DOUBLE_JUMP_LAND_STOP: cancel = act_double_jump_land_stop(m); break; - case ACT_FREEFALL_LAND_STOP: cancel = act_freefall_land_stop(m); break; - case ACT_SIDE_FLIP_LAND_STOP: cancel = act_side_flip_land_stop(m); break; - case ACT_HOLD_JUMP_LAND_STOP: cancel = act_hold_jump_land_stop(m); break; - case ACT_HOLD_FREEFALL_LAND_STOP: cancel = act_hold_freefall_land_stop(m); break; - case ACT_AIR_THROW_LAND: cancel = act_air_throw_land(m); break; - case ACT_LAVA_BOOST_LAND: cancel = act_lava_boost_land(m); break; - case ACT_TWIRL_LAND: cancel = act_twirl_land(m); break; - case ACT_TRIPLE_JUMP_LAND_STOP: cancel = act_triple_jump_land_stop(m); break; - case ACT_BACKFLIP_LAND_STOP: cancel = act_backflip_land_stop(m); break; - case ACT_LONG_JUMP_LAND_STOP: cancel = act_long_jump_land_stop(m); break; - case ACT_GROUND_POUND_LAND: cancel = act_ground_pound_land(m); break; - case ACT_BRAKING_STOP: cancel = act_braking_stop(m); break; - case ACT_BUTT_SLIDE_STOP: cancel = act_butt_slide_stop(m); break; - case ACT_HOLD_BUTT_SLIDE_STOP: cancel = act_hold_butt_slide_stop(m); break; + case ACT_IDLE: sp24 = act_idle(m); break; + case ACT_START_SLEEPING: sp24 = act_start_sleeping(m); break; + case ACT_SLEEPING: sp24 = act_sleeping(m); break; + case ACT_WAKING_UP: sp24 = act_waking_up(m); break; + case ACT_PANTING: sp24 = act_panting(m); break; + case ACT_HOLD_PANTING_UNUSED: sp24 = act_hold_panting_unused(m); break; + case ACT_HOLD_IDLE: sp24 = act_hold_idle(m); break; + case ACT_HOLD_HEAVY_IDLE: sp24 = act_hold_heavy_idle(m); break; + case ACT_IN_QUICKSAND: sp24 = act_in_quicksand(m); break; + case ACT_STANDING_AGAINST_WALL: sp24 = act_standing_against_wall(m); break; + case ACT_COUGHING: sp24 = act_coughing(m); break; + case ACT_SHIVERING: sp24 = act_shivering(m); break; + case ACT_CROUCHING: sp24 = act_crouching(m); break; + case ACT_START_CROUCHING: sp24 = act_start_crouching(m); break; + case ACT_STOP_CROUCHING: sp24 = act_stop_crouching(m); break; + case ACT_START_CRAWLING: sp24 = act_start_crawling(m); break; + case ACT_STOP_CRAWLING: sp24 = act_stop_crawling(m); break; + case ACT_SLIDE_KICK_SLIDE_STOP: sp24 = act_slide_kick_slide_stop(m); break; + case ACT_SHOCKWAVE_BOUNCE: sp24 = act_shockwave_bounce(m); break; + case ACT_FIRST_PERSON: sp24 = act_first_person(m); break; + case ACT_JUMP_LAND_STOP: sp24 = act_jump_land_stop(m); break; + case ACT_DOUBLE_JUMP_LAND_STOP: sp24 = act_double_jump_land_stop(m); break; + case ACT_FREEFALL_LAND_STOP: sp24 = act_freefall_land_stop(m); break; + case ACT_SIDE_FLIP_LAND_STOP: sp24 = act_side_flip_land_stop(m); break; + case ACT_HOLD_JUMP_LAND_STOP: sp24 = act_hold_jump_land_stop(m); break; + case ACT_HOLD_FREEFALL_LAND_STOP: sp24 = act_hold_freefall_land_stop(m); break; + case ACT_AIR_THROW_LAND: sp24 = act_air_throw_land(m); break; + case ACT_LAVA_BOOST_LAND: sp24 = act_lava_boost_land(m); break; + case ACT_TWIRL_LAND: sp24 = act_twirl_land(m); break; + case ACT_TRIPLE_JUMP_LAND_STOP: sp24 = act_triple_jump_land_stop(m); break; + case ACT_BACKFLIP_LAND_STOP: sp24 = act_backflip_land_stop(m); break; + case ACT_LONG_JUMP_LAND_STOP: sp24 = act_long_jump_land_stop(m); break; + case ACT_GROUND_POUND_LAND: sp24 = act_ground_pound_land(m); break; + case ACT_BRAKING_STOP: sp24 = act_braking_stop(m); break; + case ACT_BUTT_SLIDE_STOP: sp24 = act_butt_slide_stop(m); break; + case ACT_HOLD_BUTT_SLIDE_STOP: sp24 = act_hold_butt_slide_stop(m); break; } /* clang-format on */ - if (!cancel && (m->input & INPUT_IN_WATER)) { - m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + if (!sp24) { + if (m->input & INPUT_IN_WATER) { + m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + } } - return cancel; + return sp24; } diff --git a/src/game/mario_actions_stationary.c.rej b/src/game/mario_actions_stationary.c.rej new file mode 100644 index 00000000..3d20700c --- /dev/null +++ b/src/game/mario_actions_stationary.c.rej @@ -0,0 +1,964 @@ +diff a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c (rejected hunks) +@@ -2,6 +2,7 @@ + + #include "sm64.h" + #include "area.h" ++#include "audio/data.h" + #include "audio/external.h" + #include "behavior_data.h" + #include "camera.h" +@@ -56,7 +57,7 @@ s32 check_common_idle_cancels(struct MarioState *m) { + return set_mario_action(m, ACT_START_CROUCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 check_common_hold_idle_cancels(struct MarioState *m) { +@@ -99,10 +100,11 @@ s32 check_common_hold_idle_cancels(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_START_CROUCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_idle(struct MarioState *m) { ++ //m->faceAngle[1] += 10; + if (m->quicksandDepth > 30.0f) { + return set_mario_action(m, ACT_IN_QUICKSAND, 0); + } +@@ -116,7 +118,7 @@ s32 act_idle(struct MarioState *m) { + } + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (m->actionState == 3) { +@@ -169,7 +171,7 @@ s32 act_idle(struct MarioState *m) { + + stationary_ground_step(m); + +- return FALSE; ++ return 0; + } + + void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 sound) { +@@ -180,84 +182,92 @@ void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 s + + s32 act_start_sleeping(struct MarioState *m) { + #ifndef VERSION_JP +- s32 animFrame; ++ s32 sp24; + #endif + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (m->quicksandDepth > 30.0f) { + return set_mario_action(m, ACT_IN_QUICKSAND, 0); + } + +- if (m->actionState == 4) { +- return set_mario_action(m, ACT_SLEEPING, 0); +- } +- ++ if (m->actionState == 6) { ++ return set_mario_action(m, ACT_SLEEPING, 0); ++ } ++ + switch (m->actionState) { + case 0: + #ifndef VERSION_JP +- animFrame = +-#endif ++ sp24 = set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); ++#else + set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); +- break; +- +- case 1: +-#ifndef VERSION_JP +- animFrame = + #endif +- set_mario_animation(m, MARIO_ANIM_START_SLEEP_SCRATCH); + break; + +- case 2: +-#ifndef VERSION_JP +- animFrame = +-#endif +- set_mario_animation(m, MARIO_ANIM_START_SLEEP_YAWN); +- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- break; +- +- case 3: +-#ifndef VERSION_JP +- animFrame = +-#endif ++ case 1: + set_mario_animation(m, MARIO_ANIM_START_SLEEP_SITTING); ++ if (m->marioObj->header.gfx.animInfo.animFrame > 84) { ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ } ++ break; ++ ++ case 2: + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- break; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; ++ set_mario_action(m, ACT_SLEEPING, 0); ++ break; ++ ++ ++ ++ + } + +- play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); +- play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); +- play_anim_sound(m, 3, 15, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); ++ // play_anim_sound(m, 1, 41, SOUND_ACTION_PAT_BACK); ++ // play_anim_sound(m, 1, 49, SOUND_ACTION_PAT_BACK); ++ play_anim_sound(m, 0, 67, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 0, 84, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 5, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 41, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 58, SOUND_ACTION_TERRAIN_JUMP); ++ //play_anim_sound(m, 4, 38, SOUND_ACTION_TERRAIN_JUMP); ++ play_anim_sound(m, 1, 91, m->terrainSoundAddend + SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); + + if (is_anim_at_end(m)) { ++ if (m->action != ACT_SLEEPING) ++ { + m->actionState++; ++ } + } + + #ifndef VERSION_JP +- if (m->actionState == 2 && animFrame == -1) { +- play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); ++ if (m->actionState == 2) { ++ if (sp24 == -1) { ++ // play_sound(SOUND_MARIO_YAWNING, m->marioObj->header.gfx.cameraToObject); ++ } + } + +- if (m->actionState == 1 && animFrame == -1) { +- play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ if (m->actionState == 0) { ++ if (sp24 == -1) { ++ //play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } + } + #else + if (m->actionState == 2) { +- play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); ++ // play_sound_if_no_flag(m, SOUND_MARIO_YAWNING, MARIO_MARIO_SOUND_PLAYED); + } + #endif + + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_sleeping(struct MarioState *m) { +- s32 animFrame; +- if (m->input +- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE +- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { ++ s32 sp24; ++ ++ if (m->input & INPUT_UNKNOWN_A41F /* ? */) { + return set_mario_action(m, ACT_WAKING_UP, m->actionState); + } + +@@ -269,58 +279,48 @@ s32 act_sleeping(struct MarioState *m) { + return set_mario_action(m, ACT_WAKING_UP, m->actionState); + } + +- m->marioBodyState->eyeState = MARIO_EYES_CLOSED; ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ m->marioBodyState->handState = MARIO_HAND_OPEN; + stationary_ground_step(m); + switch (m->actionState) { +- case 0: +- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); + +- if (animFrame == -1 && !m->actionTimer) { ++ case 0: { ++ if (sp24 == -1 && !m->actionTimer) { + lower_background_noise(2); +- } + +- if (animFrame == 2) { +- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); +- } ++ + +- if (animFrame == 20) { +- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); ++ + } +- + if (is_anim_at_end(m)) { + m->actionTimer++; +- if (m->actionTimer > 45) { +- m->actionState++; +- } +- } +- break; + +- case 1: +- if (set_mario_animation(m, MARIO_ANIM_SLEEP_START_LYING) == 18) { +- play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); +- } ++ if (m->actionTimer == 4 || m->actionTimer == 13) { + +- if (is_anim_at_end(m)) { +- m->actionState++; +- } +- break; ++ m->marioBodyState->eyeState = MARIO_EYES_CLOSED; + +- case 2: +- animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); +-#ifndef VERSION_JP +- play_sound_if_no_flag(m, SOUND_MARIO_SNORING3, MARIO_ACTION_SOUND_PLAYED); +-#else +- if (animFrame == 2) { +- play_sound(SOUND_MARIO_SNORING2, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (m->actionTimer == 10) { ++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } ++ if (m->actionTimer == 24) { ++ m->actionTimer = 0; ++ } ++ ++ if (m->actionTimer == 10) { ++ play_sound(SOUND_MARIO_IMA_TIRED, m->marioObj->header.gfx.cameraToObject); ++ } + } + +- if (animFrame == 25) { +- play_sound(SOUND_MARIO_SNORING1, m->marioObj->header.gfx.cameraToObject); +- } +-#endif ++ // ++ sp24 = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); ++ ++ ++ + break; ++ } + } +- return FALSE; ++ return 0; + } + + s32 act_waking_up(struct MarioState *m) { +@@ -355,11 +355,11 @@ s32 act_waking_up(struct MarioState *m) { + + set_mario_animation(m, !m->actionArg ? MARIO_ANIM_WAKE_FROM_SLEEP : MARIO_ANIM_WAKE_FROM_LYING); + +- return FALSE; ++ return 0; + } + + s32 act_shivering(struct MarioState *m) { +- s32 animFrame; ++ s32 sp24; + + if (m->input & INPUT_UNKNOWN_10) { + return set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); +@@ -373,67 +373,66 @@ s32 act_shivering(struct MarioState *m) { + return set_mario_action(m, ACT_BEGIN_SLIDING, 0); + } + +- if (m->input +- & (INPUT_NONZERO_ANALOG | INPUT_A_PRESSED | INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE +- | INPUT_FIRST_PERSON | INPUT_UNKNOWN_10 | INPUT_B_PRESSED | INPUT_Z_PRESSED)) { ++ if (m->input & INPUT_UNKNOWN_A41F) { + m->actionState = 2; + } + + stationary_ground_step(m); + switch (m->actionState) { +- case 0: +- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); +- if (animFrame == 49) { ++ case 0: { ++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); ++ if (sp24 == 0x31) { + m->particleFlags |= PARTICLE_BREATH; + play_sound(SOUND_MARIO_PANTING_COLD, m->marioObj->header.gfx.cameraToObject); + } +- if (animFrame == 7 || animFrame == 81) { ++ if (sp24 == 7 || sp24 == 0x51) { + play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); + } + if (is_anim_past_end(m)) { + m->actionState = 1; + } + break; +- +- case 1: +- animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING); +- if (animFrame == 9 || animFrame == 25 || animFrame == 44) { ++ } ++ case 1: { ++ sp24 = set_mario_animation(m, MARIO_ANIM_SHIVERING); ++ if (sp24 == 9 || sp24 == 0x19 || sp24 == 0x2C) { + play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); + } + break; +- +- case 2: ++ } ++ case 2: { + set_mario_animation(m, MARIO_ANIM_SHIVERING_RETURN_TO_IDLE); + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_IDLE, 0); + } + break; ++ } + } +- return FALSE; ++ return 0; + } + + s32 act_coughing(struct MarioState *m) { +- s32 animFrame; ++ s32 sp1C; + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + stationary_ground_step(m); +- animFrame = set_mario_animation(m, MARIO_ANIM_COUGHING); +- if (animFrame == 25 || animFrame == 35) { ++ sp1C = set_mario_animation(m, MARIO_ANIM_COUGHING); ++ if (sp1C == 0x19 || sp1C == 0x23) { + play_sound(SOUND_MARIO_COUGHING3, m->marioObj->header.gfx.cameraToObject); + } + +- if (animFrame == 50 || animFrame == 58) { ++ if (sp1C == 0x32 || sp1C == 0x3A) { + play_sound(SOUND_MARIO_COUGHING2, m->marioObj->header.gfx.cameraToObject); + } + +- if (animFrame == 71 || animFrame == 80) { ++ if (sp1C == 0x47 || sp1C == 0x50) { + play_sound(SOUND_MARIO_COUGHING1, m->marioObj->header.gfx.cameraToObject); + } + +- return FALSE; ++ return 0; + } + + s32 act_hold_idle(struct MarioState *m) { +@@ -450,12 +449,12 @@ s32 act_hold_idle(struct MarioState *m) { + } + + if (check_common_hold_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +- return FALSE; ++ return 0; + } + + s32 act_hold_heavy_idle(struct MarioState *m) { +@@ -481,7 +480,7 @@ s32 act_hold_heavy_idle(struct MarioState *m) { + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_IDLE_HEAVY_OBJ); +- return FALSE; ++ return 0; + } + + s32 act_standing_against_wall(struct MarioState *m) { +@@ -503,7 +502,7 @@ s32 act_standing_against_wall(struct MarioState *m) { + + set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_in_quicksand(struct MarioState *m) { +@@ -511,8 +510,8 @@ s32 act_in_quicksand(struct MarioState *m) { + return set_mario_action(m, ACT_IDLE, 0); + } + +- if (check_common_idle_cancels(m)) { +- return TRUE; ++ if (check_common_idle_cancels(m) != 0) { ++ return 1; + } + + if (m->quicksandDepth > 70.0f) { +@@ -522,7 +521,7 @@ s32 act_in_quicksand(struct MarioState *m) { + } + + stationary_ground_step(m); +- return FALSE; ++ return 0; + } + + s32 act_crouching(struct MarioState *m) { +@@ -531,7 +530,7 @@ s32 act_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_OFF_FLOOR) { +@@ -560,7 +559,7 @@ s32 act_crouching(struct MarioState *m) { + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_CROUCHING); +- return FALSE; ++ return 0; + } + + s32 act_panting(struct MarioState *m) { +@@ -573,7 +572,7 @@ s32 act_panting(struct MarioState *m) { + } + + if (check_common_idle_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { +@@ -583,7 +582,7 @@ s32 act_panting(struct MarioState *m) { + + stationary_ground_step(m); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- return FALSE; ++ return 0; + } + + s32 act_hold_panting_unused(struct MarioState *m) { +@@ -599,20 +598,20 @@ s32 act_hold_panting_unused(struct MarioState *m) { + return set_mario_action(m, ACT_HOLD_IDLE, 0); + } + +- if (check_common_hold_idle_cancels(m)) { +- return TRUE; ++ if (check_common_hold_idle_cancels(m) != 0) { ++ return 1; + } + + set_mario_animation(m, MARIO_ANIM_WALK_PANTING); + stationary_ground_step(m); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- return FALSE; ++ return 0; + } + + void stopping_step(struct MarioState *m, s32 animID, u32 action) { + stationary_ground_step(m); + set_mario_animation(m, animID); +- if (is_anim_at_end(m)) { ++ if (is_anim_at_end(m) != 0) { + set_mario_action(m, action, 0); + } + } +@@ -636,7 +635,7 @@ s32 act_braking_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_STOP_SKID, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_butt_slide_stop(struct MarioState *m) { +@@ -653,7 +652,7 @@ s32 act_butt_slide_stop(struct MarioState *m) { + play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); + } + +- return FALSE; ++ return 0; + } + + s32 act_hold_butt_slide_stop(struct MarioState *m) { +@@ -674,7 +673,7 @@ s32 act_hold_butt_slide_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_slide_kick_slide_stop(struct MarioState *m) { +@@ -687,7 +686,7 @@ s32 act_slide_kick_slide_stop(struct MarioState *m) { + } + + stopping_step(m, MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); +- return FALSE; ++ return 0; + } + + s32 act_start_crouching(struct MarioState *m) { +@@ -700,7 +699,7 @@ s32 act_start_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_ABOVE_SLIDE) { +@@ -712,7 +711,7 @@ s32 act_start_crouching(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_CROUCHING, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_stop_crouching(struct MarioState *m) { +@@ -725,7 +724,7 @@ s32 act_stop_crouching(struct MarioState *m) { + } + + if (m->input & INPUT_A_PRESSED) { +- return set_jumping_action(m, ACT_BACKFLIP, 0); ++ return set_jumping_action(m, ACT_JUMP, 0); + } + + if (m->input & INPUT_ABOVE_SLIDE) { +@@ -737,7 +736,7 @@ s32 act_stop_crouching(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_IDLE, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_start_crawling(struct MarioState *m) { +@@ -763,7 +762,7 @@ s32 act_start_crawling(struct MarioState *m) { + set_mario_action(m, ACT_CRAWLING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_stop_crawling(struct MarioState *m) { +@@ -784,34 +783,30 @@ s32 act_stop_crawling(struct MarioState *m) { + if (is_anim_past_end(m)) { + set_mario_action(m, ACT_CROUCHING, 0); + } +- return FALSE; ++ return 0; + } + + s32 act_shockwave_bounce(struct MarioState *m) { + s16 sp1E; + f32 sp18; + +- if (m->marioObj->oInteractStatus & INT_STATUS_HIT_BY_SHOCKWAVE) { +-#ifdef VERSION_SH +- queue_rumble_data(70, 40); +-#endif ++ if (m->marioObj->oInteractStatus & 0x10) { ++ //(70, 40); + return hurt_and_set_mario_action(m, ACT_SHOCKED, 0, 4); + } + + if (m->actionTimer == 0) { +-#ifdef VERSION_SH +- queue_rumble_data(70, 40); +-#endif ++ //(70, 40); + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_UNK1) { + return hurt_and_set_mario_action(m, ACT_BACKWARD_GROUND_KB, 0, 0xc); + } + } + +- if (++m->actionTimer == 48) { ++ if (++m->actionTimer == 0x30) { + return set_mario_action(m, ACT_IDLE, 0); + } + +- sp1E = (m->actionTimer % 16) << 12; ++ sp1E = (m->actionTimer % 0x10) << 0xC; + sp18 = (f32)(((f32)(6 - m->actionTimer / 8) * 8.0f) + 4.0f); + mario_set_forward_vel(m, 0); + vec3f_set(m->vel, 0.0f, 0.0f, 0.0f); +@@ -824,7 +819,7 @@ s32 act_shockwave_bounce(struct MarioState *m) { + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + set_mario_animation(m, MARIO_ANIM_A_POSE); +- return FALSE; ++ return 0; + } + + s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { +@@ -833,7 +828,7 @@ s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { + if (is_anim_at_end(m)) { + return set_mario_action(m, action, 0); + } +- return FALSE; ++ return 0; + } + + s32 check_common_landing_cancels(struct MarioState *m, u32 action) { +@@ -861,89 +856,90 @@ s32 check_common_landing_cancels(struct MarioState *m, u32 action) { + return set_mario_action(m, ACT_PUNCHING, 0); + } + +- return FALSE; ++ return 0; + } + + s32 act_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_double_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_side_flip_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_IDLE); + m->marioObj->header.gfx.angle[1] += 0x8000; +- return FALSE; ++ return 0; + } + + s32 act_freefall_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_GENERAL_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_triple_jump_land_stop(struct MarioState *m) { + if (check_common_landing_cancels(m, ACT_JUMP)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_backflip_land_stop(struct MarioState *m) { + if (!(m->input & INPUT_Z_DOWN) || m->marioObj->header.gfx.animInfo.animFrame >= 6) { +- m->input &= ~INPUT_A_PRESSED; ++ m->input &= -3; + } + + if (check_common_landing_cancels(m, ACT_BACKFLIP)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_lava_boost_land(struct MarioState *m) { +- m->input &= ~(INPUT_FIRST_PERSON | INPUT_B_PRESSED); ++ m->input &= -0x2011; + + if (check_common_landing_cancels(m, 0)) { +- return TRUE; ++ return 1; + } + + landing_step(m, MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_long_jump_land_stop(struct MarioState *m) { +- m->input &= ~INPUT_B_PRESSED; ++ m->input &= -0x2001; + if (check_common_landing_cancels(m, ACT_JUMP)) { +- return TRUE; ++ return 1; + } + +- landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP +- : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, +- ACT_CROUCHING); +- return FALSE; ++ landing_step(m, ++ !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP ++ : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, ++ ACT_CROUCHING); ++ return 0; + } + + s32 act_hold_jump_land_stop(struct MarioState *m) { +@@ -964,7 +960,7 @@ s32 act_hold_jump_land_stop(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_hold_freefall_land_stop(struct MarioState *m) { +@@ -984,7 +980,7 @@ s32 act_hold_freefall_land_stop(struct MarioState *m) { + return set_mario_action(m, ACT_THROWING, 0); + } + landing_step(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_air_throw_land(struct MarioState *m) { +@@ -1001,7 +997,7 @@ s32 act_air_throw_land(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); +- return FALSE; ++ return 0; + } + + s32 act_twirl_land(struct MarioState *m) { +@@ -1026,16 +1022,20 @@ s32 act_twirl_land(struct MarioState *m) { + } + + m->marioObj->header.gfx.angle[1] += m->twirlYaw; +- if (is_anim_at_end(m) && m->angleVel[1] == 0) { +- m->faceAngle[1] += m->twirlYaw; +- set_mario_action(m, ACT_IDLE, 0); ++ if (is_anim_at_end(m)) { ++ if (m->angleVel[1] == 0) { ++ m->faceAngle[1] += m->twirlYaw; ++ set_mario_action(m, ACT_IDLE, 0); ++ } + } + +- return FALSE; ++ return 0; + } + + s32 act_ground_pound_land(struct MarioState *m) { + m->actionState = 1; ++ ++ set_mario_action(m, ACT_BACKFLIP, 0); + if (m->input & INPUT_UNKNOWN_10) { + return drop_and_set_mario_action(m, ACT_SHOCKWAVE_BOUNCE, 0); + } +@@ -1049,35 +1049,43 @@ s32 act_ground_pound_land(struct MarioState *m) { + } + + landing_step(m, MARIO_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); +- return FALSE; ++ return 0; + } + + s32 act_first_person(struct MarioState *m) { +- s32 sp1C = (m->input & (INPUT_OFF_FLOOR | INPUT_ABOVE_SLIDE | INPUT_UNKNOWN_10)) != 0; ++ s32 sp1C; ++ s16 sp1A; ++ s16 sp18; + ++ sp1C = 0 != (m->input & (INPUT_UNKNOWN_10 | 0xC)); + if (m->actionState == 0) { + lower_background_noise(2); + set_camera_mode(m->area->camera, CAMERA_MODE_C_UP, 0x10); + m->actionState = 1; +- } else if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { +- raise_background_noise(2); +- // Go back to the last camera mode +- set_camera_mode(m->area->camera, -1, 1); +- return set_mario_action(m, ACT_IDLE, 0); ++ } else { ++ if (!(m->input & INPUT_FIRST_PERSON) || sp1C) { ++ raise_background_noise(2); ++ // Go back to the last camera mode ++ set_camera_mode(m->area->camera, -1, 1); ++ return set_mario_action(m, ACT_IDLE, 0); ++ } + } + +- if (m->floor->type == SURFACE_LOOK_UP_WARP +- && save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1) >= 10) { +- s16 sp1A = m->statusForCamera->headRotation[0]; +- s16 sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; +- if (sp1A == -0x1800 && (sp18 < -0x6FFF || sp18 >= 0x7000)) { +- level_trigger_warp(m, WARP_OP_UNKNOWN_01); ++ if (m->floor->type == SURFACE_LOOK_UP_WARP) { ++ if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 0x18) >= 10) { ++ sp1A = m->statusForCamera->headRotation[0]; ++ sp18 = ((m->statusForCamera->headRotation[1] * 4) / 3) + m->faceAngle[1]; ++ if (sp1A == -0x1800) { ++ if (sp18 < -0x6FFF || sp18 >= 0x7000) { ++ level_trigger_warp(m, 1); ++ } ++ } + } + } + + stationary_ground_step(m); + set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); +- return FALSE; ++ return 0; + } + + s32 check_common_stationary_cancels(struct MarioState *m) { +@@ -1094,70 +1102,72 @@ s32 check_common_stationary_cancels(struct MarioState *m) { + return drop_and_set_mario_action(m, ACT_SQUISHED, 0); + } + +- if (m->action != ACT_UNKNOWN_0002020E) { ++ if (m->action != 0x0002020E) { + if (m->health < 0x100) { + update_mario_sound_and_camera(m); + return drop_and_set_mario_action(m, ACT_STANDING_DEATH, 0); + } + } +- return FALSE; ++ return 0; + } + + s32 mario_execute_stationary_action(struct MarioState *m) { +- s32 cancel; ++ s32 sp24; + + if (check_common_stationary_cancels(m)) { +- return TRUE; ++ return 1; + } + + if (mario_update_quicksand(m, 0.5f)) { +- return TRUE; ++ return 1; + } + + /* clang-format off */ + switch (m->action) { +- case ACT_IDLE: cancel = act_idle(m); break; +- case ACT_START_SLEEPING: cancel = act_start_sleeping(m); break; +- case ACT_SLEEPING: cancel = act_sleeping(m); break; +- case ACT_WAKING_UP: cancel = act_waking_up(m); break; +- case ACT_PANTING: cancel = act_panting(m); break; +- case ACT_HOLD_PANTING_UNUSED: cancel = act_hold_panting_unused(m); break; +- case ACT_HOLD_IDLE: cancel = act_hold_idle(m); break; +- case ACT_HOLD_HEAVY_IDLE: cancel = act_hold_heavy_idle(m); break; +- case ACT_IN_QUICKSAND: cancel = act_in_quicksand(m); break; +- case ACT_STANDING_AGAINST_WALL: cancel = act_standing_against_wall(m); break; +- case ACT_COUGHING: cancel = act_coughing(m); break; +- case ACT_SHIVERING: cancel = act_shivering(m); break; +- case ACT_CROUCHING: cancel = act_crouching(m); break; +- case ACT_START_CROUCHING: cancel = act_start_crouching(m); break; +- case ACT_STOP_CROUCHING: cancel = act_stop_crouching(m); break; +- case ACT_START_CRAWLING: cancel = act_start_crawling(m); break; +- case ACT_STOP_CRAWLING: cancel = act_stop_crawling(m); break; +- case ACT_SLIDE_KICK_SLIDE_STOP: cancel = act_slide_kick_slide_stop(m); break; +- case ACT_SHOCKWAVE_BOUNCE: cancel = act_shockwave_bounce(m); break; +- case ACT_FIRST_PERSON: cancel = act_first_person(m); break; +- case ACT_JUMP_LAND_STOP: cancel = act_jump_land_stop(m); break; +- case ACT_DOUBLE_JUMP_LAND_STOP: cancel = act_double_jump_land_stop(m); break; +- case ACT_FREEFALL_LAND_STOP: cancel = act_freefall_land_stop(m); break; +- case ACT_SIDE_FLIP_LAND_STOP: cancel = act_side_flip_land_stop(m); break; +- case ACT_HOLD_JUMP_LAND_STOP: cancel = act_hold_jump_land_stop(m); break; +- case ACT_HOLD_FREEFALL_LAND_STOP: cancel = act_hold_freefall_land_stop(m); break; +- case ACT_AIR_THROW_LAND: cancel = act_air_throw_land(m); break; +- case ACT_LAVA_BOOST_LAND: cancel = act_lava_boost_land(m); break; +- case ACT_TWIRL_LAND: cancel = act_twirl_land(m); break; +- case ACT_TRIPLE_JUMP_LAND_STOP: cancel = act_triple_jump_land_stop(m); break; +- case ACT_BACKFLIP_LAND_STOP: cancel = act_backflip_land_stop(m); break; +- case ACT_LONG_JUMP_LAND_STOP: cancel = act_long_jump_land_stop(m); break; +- case ACT_GROUND_POUND_LAND: cancel = act_ground_pound_land(m); break; +- case ACT_BRAKING_STOP: cancel = act_braking_stop(m); break; +- case ACT_BUTT_SLIDE_STOP: cancel = act_butt_slide_stop(m); break; +- case ACT_HOLD_BUTT_SLIDE_STOP: cancel = act_hold_butt_slide_stop(m); break; ++ case ACT_IDLE: sp24 = act_idle(m); break; ++ case ACT_START_SLEEPING: sp24 = act_start_sleeping(m); break; ++ case ACT_SLEEPING: sp24 = act_sleeping(m); break; ++ case ACT_WAKING_UP: sp24 = act_waking_up(m); break; ++ case ACT_PANTING: sp24 = act_panting(m); break; ++ case ACT_HOLD_PANTING_UNUSED: sp24 = act_hold_panting_unused(m); break; ++ case ACT_HOLD_IDLE: sp24 = act_hold_idle(m); break; ++ case ACT_HOLD_HEAVY_IDLE: sp24 = act_hold_heavy_idle(m); break; ++ case ACT_IN_QUICKSAND: sp24 = act_in_quicksand(m); break; ++ case ACT_STANDING_AGAINST_WALL: sp24 = act_standing_against_wall(m); break; ++ case ACT_COUGHING: sp24 = act_coughing(m); break; ++ case ACT_SHIVERING: sp24 = act_shivering(m); break; ++ case ACT_CROUCHING: sp24 = act_crouching(m); break; ++ case ACT_START_CROUCHING: sp24 = act_start_crouching(m); break; ++ case ACT_STOP_CROUCHING: sp24 = act_stop_crouching(m); break; ++ case ACT_START_CRAWLING: sp24 = act_start_crawling(m); break; ++ case ACT_STOP_CRAWLING: sp24 = act_stop_crawling(m); break; ++ case ACT_SLIDE_KICK_SLIDE_STOP: sp24 = act_slide_kick_slide_stop(m); break; ++ case ACT_SHOCKWAVE_BOUNCE: sp24 = act_shockwave_bounce(m); break; ++ case ACT_FIRST_PERSON: sp24 = act_first_person(m); break; ++ case ACT_JUMP_LAND_STOP: sp24 = act_jump_land_stop(m); break; ++ case ACT_DOUBLE_JUMP_LAND_STOP: sp24 = act_double_jump_land_stop(m); break; ++ case ACT_FREEFALL_LAND_STOP: sp24 = act_freefall_land_stop(m); break; ++ case ACT_SIDE_FLIP_LAND_STOP: sp24 = act_side_flip_land_stop(m); break; ++ case ACT_HOLD_JUMP_LAND_STOP: sp24 = act_hold_jump_land_stop(m); break; ++ case ACT_HOLD_FREEFALL_LAND_STOP: sp24 = act_hold_freefall_land_stop(m); break; ++ case ACT_AIR_THROW_LAND: sp24 = act_air_throw_land(m); break; ++ case ACT_LAVA_BOOST_LAND: sp24 = act_lava_boost_land(m); break; ++ case ACT_TWIRL_LAND: sp24 = act_twirl_land(m); break; ++ case ACT_TRIPLE_JUMP_LAND_STOP: sp24 = act_triple_jump_land_stop(m); break; ++ case ACT_BACKFLIP_LAND_STOP: sp24 = act_backflip_land_stop(m); break; ++ case ACT_LONG_JUMP_LAND_STOP: sp24 = act_long_jump_land_stop(m); break; ++ case ACT_GROUND_POUND_LAND: sp24 = act_ground_pound_land(m); break; ++ case ACT_BRAKING_STOP: sp24 = act_braking_stop(m); break; ++ case ACT_BUTT_SLIDE_STOP: sp24 = act_butt_slide_stop(m); break; ++ case ACT_HOLD_BUTT_SLIDE_STOP: sp24 = act_hold_butt_slide_stop(m); break; + } + /* clang-format on */ + +- if (!cancel && (m->input & INPUT_IN_WATER)) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ if (!sp24) { ++ if (m->input & INPUT_IN_WATER) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } + } + +- return cancel; ++ return sp24; + } diff --git a/src/game/mario_actions_stationary.h b/src/game/mario_actions_stationary.h index c4b4c069..a4633c7c 100644 --- a/src/game/mario_actions_stationary.h +++ b/src/game/mario_actions_stationary.h @@ -5,6 +5,8 @@ #include "types.h" +#define INPUT_UNKNOWN_A41F 0xA41F + s32 check_common_idle_cancels(struct MarioState *m); s32 check_common_hold_idle_cancels(struct MarioState *m); s32 act_idle(struct MarioState *m); diff --git a/src/game/mario_actions_stationary.h.rej b/src/game/mario_actions_stationary.h.rej new file mode 100644 index 00000000..1d47e388 --- /dev/null +++ b/src/game/mario_actions_stationary.h.rej @@ -0,0 +1,10 @@ +diff a/src/game/mario_actions_stationary.h b/src/game/mario_actions_stationary.h (rejected hunks) +@@ -5,6 +5,8 @@ + + #include "types.h" + ++#define INPUT_UNKNOWN_A41F 0xA41F ++ + s32 check_common_idle_cancels(struct MarioState *m); + s32 check_common_hold_idle_cancels(struct MarioState *m); + s32 act_idle(struct MarioState *m); diff --git a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c index 2db01580..65d35ebd 100644 --- a/src/game/mario_actions_submerged.c +++ b/src/game/mario_actions_submerged.c @@ -29,1545 +29,1583 @@ static s16 D_80339FD2; static f32 D_80339FD4; static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { - s16 atSurface = m->pos[1] >= m->waterLevel - 130; + s16 atSurface = m->pos[1] >= m->waterLevel - 130; - if (atSurface) { - m->particleFlags |= particleFlag; - if (atSurface ^ sWasAtSurface) { - play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); - } - } + if (atSurface) { + m->particleFlags |= particleFlag; + if (atSurface ^ sWasAtSurface) { + play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); + } + } - sWasAtSurface = atSurface; + sWasAtSurface = atSurface; } static s32 swimming_near_surface(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return FALSE; - } - return (m->waterLevel - 80) - m->pos[1] < 400.0f; + return FALSE; + + + return (m->waterLevel - 80) - m->pos[1] < 400.0f; } static f32 get_buoyancy(struct MarioState *m) { - f32 buoyancy = 0.0f; + f32 buoyancy = 0.0f; - if (m->flags & MARIO_METAL_CAP) { - if (m->action & ACT_FLAG_INVULNERABLE) { - buoyancy = -2.0f; - } else { - buoyancy = -18.0f; - } - } else if (swimming_near_surface(m)) { - buoyancy = 1.25f; - } else if (!(m->action & ACT_FLAG_MOVING)) { - buoyancy = -2.0f; - } + if (m->flags & MARIO_METAL_CAP) { + if (m->action & ACT_FLAG_INVULNERABLE) { + buoyancy = -39.0f; + } + else { + buoyancy = -39.0f; + } + } + else if (swimming_near_surface(m)) { + buoyancy = -11.0f; + } + else if (!(m->action & ACT_FLAG_MOVING)) { + buoyancy = -11.0f; + } - return buoyancy; + return buoyancy; } static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { - struct Surface *wall; - struct Surface *ceil; - struct Surface *floor; - f32 ceilHeight; - f32 floorHeight; + struct Surface *wall; + struct Surface *ceil; + struct Surface *floor; + f32 ceilHeight; + f32 floorHeight; - wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); - floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); - ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); + wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); + floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); + ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); - if (floor == NULL) { - return WATER_STEP_CANCELLED; - } + if (floor == NULL) { + return WATER_STEP_CANCELLED; + } - if (nextPos[1] >= floorHeight) { - if (ceilHeight - nextPos[1] >= 160.0f) { - vec3f_copy(m->pos, nextPos); - m->floor = floor; - m->floorHeight = floorHeight; + if (nextPos[1] >= floorHeight) { + if (ceilHeight - nextPos[1] >= 160.0f) { + vec3f_copy(m->pos, nextPos); + m->floor = floor; + m->floorHeight = floorHeight; - if (wall != NULL) { - return WATER_STEP_HIT_WALL; - } else { - return WATER_STEP_NONE; - } - } + if (wall != NULL) { + return WATER_STEP_HIT_WALL; + } + else { + return WATER_STEP_NONE; + } + } - if (ceilHeight - floorHeight < 160.0f) { - return WATER_STEP_CANCELLED; - } + if (ceilHeight - floorHeight < 160.0f) { + return WATER_STEP_CANCELLED; + } - //! Water ceiling downwarp - vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); - m->floor = floor; - m->floorHeight = floorHeight; - return WATER_STEP_HIT_CEILING; - } else { - if (ceilHeight - floorHeight < 160.0f) { - return WATER_STEP_CANCELLED; - } + //! Water ceiling downwarp + vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); + m->floor = floor; + m->floorHeight = floorHeight; + return WATER_STEP_HIT_CEILING; + } + else { + if (ceilHeight - floorHeight < 160.0f) { + return WATER_STEP_CANCELLED; + } - vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); - m->floor = floor; - m->floorHeight = floorHeight; - return WATER_STEP_HIT_FLOOR; - } + vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); + m->floor = floor; + m->floorHeight = floorHeight; + return WATER_STEP_HIT_FLOOR; + } } static void apply_water_current(struct MarioState *m, Vec3f step) { - s32 i; - f32 whirlpoolRadius = 2000.0f; + s32 i; + f32 whirlpoolRadius = 2000.0f; - if (m->floor->type == SURFACE_FLOWING_WATER) { - s16 currentAngle = m->floor->force << 8; - f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; + if (m->floor->type == SURFACE_FLOWING_WATER) { + s16 currentAngle = m->floor->force << 8; + f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; - step[0] += currentSpeed * sins(currentAngle); - step[2] += currentSpeed * coss(currentAngle); - } + step[0] += currentSpeed * sins(currentAngle); + step[2] += currentSpeed * coss(currentAngle); + } - for (i = 0; i < 2; i++) { - struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; - if (whirlpool != NULL) { - f32 strength = 0.0f; + for (i = 0; i < 2; i++) { + struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; + if (whirlpool != NULL) { + f32 strength = 0.0f; - f32 dx = whirlpool->pos[0] - m->pos[0]; - f32 dy = whirlpool->pos[1] - m->pos[1]; - f32 dz = whirlpool->pos[2] - m->pos[2]; + f32 dx = whirlpool->pos[0] - m->pos[0]; + f32 dy = whirlpool->pos[1] - m->pos[1]; + f32 dz = whirlpool->pos[2] - m->pos[2]; - f32 lateralDist = sqrtf(dx * dx + dz * dz); - f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); + f32 lateralDist = sqrtf(dx * dx + dz * dz); + f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); - s16 pitchToWhirlpool = atan2s(lateralDist, dy); - s16 yawToWhirlpool = atan2s(dz, dx); + s16 pitchToWhirlpool = atan2s(lateralDist, dy); + s16 yawToWhirlpool = atan2s(dz, dx); - yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); + yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); - if (whirlpool->strength >= 0) { - if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { - whirlpoolRadius = 4000.0f; - } + if (whirlpool->strength >= 0) { + if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { + whirlpoolRadius = 4000.0f; + } - if (distance >= 26.0f && distance < whirlpoolRadius) { - strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); - } - } else if (distance < 2000.0f) { - strength = whirlpool->strength * (1.0f - distance / 2000.0f); - } + if (distance >= 26.0f && distance < whirlpoolRadius) { + strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); + } + } + else if (distance < 2000.0f) { + strength = whirlpool->strength * (1.0f - distance / 2000.0f); + } - step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); - step[1] += strength * sins(pitchToWhirlpool); - step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); - } - } + step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); + step[1] += strength * sins(pitchToWhirlpool); + step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); + } + } } static u32 perform_water_step(struct MarioState *m) { - UNUSED u32 unused; - u32 stepResult; - Vec3f nextPos; - Vec3f step; - struct Object *marioObj = m->marioObj; + UNUSED u32 unused; + u32 stepResult; + Vec3f nextPos; + Vec3f step; + struct Object *marioObj = m->marioObj; - vec3f_copy(step, m->vel); + vec3f_copy(step, m->vel); - if (m->action & ACT_FLAG_SWIMMING) { - apply_water_current(m, step); - } + if (m->action & ACT_FLAG_SWIMMING) { + apply_water_current(m, step); + } - nextPos[0] = m->pos[0] + step[0]; - nextPos[1] = m->pos[1] + step[1]; - nextPos[2] = m->pos[2] + step[2]; + nextPos[0] = m->pos[0] + step[0]; + nextPos[1] = m->pos[1] + step[1]; + nextPos[2] = m->pos[2] + step[2]; - if (nextPos[1] > m->waterLevel - 80) { - nextPos[1] = m->waterLevel - 80; - m->vel[1] = 0.0f; - } + if (nextPos[1] > m->waterLevel - 80) { + nextPos[1] = m->waterLevel - 80; + m->vel[1] = 0.0f; + } - stepResult = perform_water_full_step(m, nextPos); + stepResult = perform_water_full_step(m, nextPos); - vec3f_copy(marioObj->header.gfx.pos, m->pos); - vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); + vec3f_copy(marioObj->header.gfx.pos, m->pos); + vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); - return stepResult; + return stepResult; } static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { - struct Object *marioObj = m->marioObj; + struct Object *marioObj = m->marioObj; - if (marioObj->header.gfx.angle[0] > 0) { - marioObj->header.gfx.pos[1] += - 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); - } + if (marioObj->header.gfx.angle[0] > 0) { + marioObj->header.gfx.pos[1] += + 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); + } - if (marioObj->header.gfx.angle[0] < 0) { - marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; - } + if (marioObj->header.gfx.angle[0] < 0) { + marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; + } - if (marioObj->header.gfx.angle[0] > 0) { - marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; - } + if (marioObj->header.gfx.angle[0] > 0) { + marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; + } } static void stationary_slow_down(struct MarioState *m) { - f32 buoyancy = get_buoyancy(m); + f32 buoyancy = get_buoyancy(m); - m->angleVel[0] = 0; - m->angleVel[1] = 0; + m->angleVel[0] = 0; + m->angleVel[1] = 0; - m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); - m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); + m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); - m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); - m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); + m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); + m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); - m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); - m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); + m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); } static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { - f32 buoyancy = get_buoyancy(m); - f32 maxSpeed = 28.0f; + f32 buoyancy = get_buoyancy(m); + f32 maxSpeed = 28.0f; - if (m->action & ACT_FLAG_STATIONARY) { - m->forwardVel -= 2.0f; - } + if (m->action & ACT_FLAG_STATIONARY) { + m->forwardVel -= 2.0f; + } - if (m->forwardVel < 0.0f) { - m->forwardVel = 0.0f; - } + if (m->forwardVel < 0.0f) { + m->forwardVel = 0.0f; + } - if (m->forwardVel > maxSpeed) { - m->forwardVel = maxSpeed; - } + if (m->forwardVel > maxSpeed) { + m->forwardVel = maxSpeed; + } - if (m->forwardVel > decelThreshold) { - m->forwardVel -= 0.5f; - } + if (m->forwardVel > decelThreshold) { + m->forwardVel -= 0.5f; + } - m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); - m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; - m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); + m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; + m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); } static void update_swimming_yaw(struct MarioState *m) { - s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); + s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); - if (targetYawVel > 0) { - if (m->angleVel[1] < 0) { - m->angleVel[1] += 0x40; - if (m->angleVel[1] > 0x10) { - m->angleVel[1] = 0x10; - } - } else { - m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); - } - } else if (targetYawVel < 0) { - if (m->angleVel[1] > 0) { - m->angleVel[1] -= 0x40; - if (m->angleVel[1] < -0x10) { - m->angleVel[1] = -0x10; - } - } else { - m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); - } - } else { - m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); - } + if (targetYawVel > 0) { + if (m->angleVel[1] < 0) { + m->angleVel[1] += 0x40; + if (m->angleVel[1] > 0x10) { + m->angleVel[1] = 0x10; + } + } + else { + m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); + } + } + else if (targetYawVel < 0) { + if (m->angleVel[1] > 0) { + m->angleVel[1] -= 0x40; + if (m->angleVel[1] < -0x10) { + m->angleVel[1] = -0x10; + } + } + else { + m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); + } + } + else { + m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); + } - m->faceAngle[1] += m->angleVel[1]; - m->faceAngle[2] = -m->angleVel[1] * 8; + m->faceAngle[1] += m->angleVel[1]; + m->faceAngle[2] = -m->angleVel[1] * 8; } static void update_swimming_pitch(struct MarioState *m) { - s16 targetPitch = -(s16)(252.0f * m->controller->stickY); + s16 targetPitch = -(s16)(252.0f * m->controller->stickY); - s16 pitchVel; - if (m->faceAngle[0] < 0) { - pitchVel = 0x100; - } else { - pitchVel = 0x200; - } + s16 pitchVel; + if (m->faceAngle[0] < 0) { + pitchVel = 0x100; + } + else { + pitchVel = 0x200; + } - if (m->faceAngle[0] < targetPitch) { - if ((m->faceAngle[0] += pitchVel) > targetPitch) { - m->faceAngle[0] = targetPitch; - } - } else if (m->faceAngle[0] > targetPitch) { - if ((m->faceAngle[0] -= pitchVel) < targetPitch) { - m->faceAngle[0] = targetPitch; - } - } + if (m->faceAngle[0] < targetPitch) { + if ((m->faceAngle[0] += pitchVel) > targetPitch) { + m->faceAngle[0] = targetPitch; + } + } + else if (m->faceAngle[0] > targetPitch) { + if ((m->faceAngle[0] -= pitchVel) < targetPitch) { + m->faceAngle[0] = targetPitch; + } + } } static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { - s16 *val = &m->marioBodyState->headAngle[0]; + s16 *val = &m->marioBodyState->headAngle[0]; - update_swimming_yaw(m); - update_swimming_pitch(m); - update_swimming_speed(m, MIN_SWIM_SPEED); - perform_water_step(m); - update_water_pitch(m); + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); - if (m->faceAngle[0] > 0) { - *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); - } else { - *val = approach_s32(*val, 0, 0x200, 0x200); - } + if (m->faceAngle[0] > 0) { + *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); + } + else { + *val = approach_s32(*val, 0, 0x200, 0x200); + } - if (arg == 0) { - set_mario_animation(m, animation); - } else { - set_mario_anim_with_accel(m, animation, arg); - } + if (arg == 0) { + set_mario_animation(m, animation); + } + else { + set_mario_anim_with_accel(m, animation, arg); + } - set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); + set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); } static s32 act_water_idle(struct MarioState *m) { - u32 val = 0x10000; + u32 val = 0x10000; - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_PUNCH, 0); - } + if (gCurrLevelNum == LEVEL_SA) { - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_BREASTSTROKE, 0); - } + m->drownTimer = -700; + } - if (m->faceAngle[0] < -0x1000) { - val = 0x30000; - } + return set_mario_action(m, ACT_METAL_WATER_JUMP, 1); - common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); - return FALSE; + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_BREASTSTROKE, 0); + } + + if (m->faceAngle[0] < -0x1000) { + val = 0x30000; + } + + common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); + return FALSE; } static s32 act_hold_water_idle(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - } - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); - return FALSE; + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } + + common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); + return FALSE; } static s32 act_water_action_end(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_PUNCH, 0); - } + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_BREASTSTROKE, 0); - } - common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); - if (is_anim_at_end(m)) { - set_mario_action(m, ACT_WATER_IDLE, 0); - } - return FALSE; + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_BREASTSTROKE, 0); + } + + common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_IDLE, 0); + } + return FALSE; } static s32 act_hold_water_action_end(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - } - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } - common_idle_step( - m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, - 0); - if (is_anim_at_end(m)) { - set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - return FALSE; + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } + + common_idle_step( + m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, + 0); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + return FALSE; } static void reset_float_globals(struct MarioState *m) { - D_80339FD0 = 0; - D_80339FD2 = 0x800; - D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; + D_80339FD0 = 0; + D_80339FD2 = 0x800; + D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; } static void float_surface_gfx(struct MarioState *m) { - if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { - if ((D_80339FD0 += D_80339FD2) >= 0) { - m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); - return; - } - } + if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { + if ((D_80339FD0 += D_80339FD2) >= 0) { + m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); + return; + } + } - D_80339FD2 = 0; + D_80339FD2 = 0; } static void common_swimming_step(struct MarioState *m, s16 swimStrength) { - s16 floorPitch; - UNUSED struct Object *marioObj = m->marioObj; + s16 floorPitch; + UNUSED struct Object *marioObj = m->marioObj; - update_swimming_yaw(m); - update_swimming_pitch(m); - update_swimming_speed(m, swimStrength / 10.0f); + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, swimStrength / 10.0f); - switch (perform_water_step(m)) { - case WATER_STEP_HIT_FLOOR: - floorPitch = -find_floor_slope(m, -0x8000); - if (m->faceAngle[0] < floorPitch) { - m->faceAngle[0] = floorPitch; - } - break; + switch (perform_water_step(m)) { + case WATER_STEP_HIT_FLOOR: + floorPitch = -find_floor_slope(m, -0x8000); + if (m->faceAngle[0] < floorPitch) { + m->faceAngle[0] = floorPitch; + } + break; - case WATER_STEP_HIT_CEILING: - if (m->faceAngle[0] > -0x3000) { - m->faceAngle[0] -= 0x100; - } - break; + case WATER_STEP_HIT_CEILING: + if (m->faceAngle[0] > -0x3000) { + m->faceAngle[0] -= 0x100; + } + break; - case WATER_STEP_HIT_WALL: - if (m->controller->stickY == 0.0f) { - if (m->faceAngle[0] > 0.0f) { - m->faceAngle[0] += 0x200; - if (m->faceAngle[0] > 0x3F00) { - m->faceAngle[0] = 0x3F00; - } - } else { - m->faceAngle[0] -= 0x200; - if (m->faceAngle[0] < -0x3F00) { - m->faceAngle[0] = -0x3F00; - } - } - } - break; - } + case WATER_STEP_HIT_WALL: + if (m->controller->stickY == 0.0f) { + if (m->faceAngle[0] > 0.0f) { + m->faceAngle[0] += 0x200; + if (m->faceAngle[0] > 0x3F00) { + m->faceAngle[0] = 0x3F00; + } + } + else { + m->faceAngle[0] -= 0x200; + if (m->faceAngle[0] < -0x3F00) { + m->faceAngle[0] = -0x3F00; + } + } + } + break; + } - update_water_pitch(m); - m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + update_water_pitch(m); + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); - float_surface_gfx(m); - set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); + float_surface_gfx(m); + set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); } static void play_swimming_noise(struct MarioState *m) { s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; - // This must be one line to match on -O2 - if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); + // (this need to be on one line to match on PAL) + if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); } static s32 check_water_jump(struct MarioState *m) { - s32 probe = (s32)(m->pos[1] + 1.5f); + + s32 probe = (s32)(m->pos[1] + 1.5f); - if (m->input & INPUT_A_PRESSED) { - if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { - vec3s_set(m->angleVel, 0, 0, 0); + if (m->input & INPUT_A_PRESSED) { + if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { + vec3s_set(m->angleVel, 0, 0, 0); - m->vel[1] = 62.0f; + m->vel[1] = 65.0f; - if (m->heldObj == NULL) { - return set_mario_action(m, ACT_WATER_JUMP, 0); - } else { - return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); - } - } - } + if (m->heldObj == NULL) { + return set_mario_action(m, ACT_WATER_JUMP, 0); + } + else { + return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); + } + } + } - return FALSE; + return FALSE; } static s32 act_breaststroke(struct MarioState *m) { - if (m->actionArg == 0) { - sSwimStrength = MIN_SWIM_STRENGTH; - } + if (m->actionArg == 0) { + sSwimStrength = MIN_SWIM_STRENGTH; + } - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_PUNCH, 0); - } + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - if (++m->actionTimer == 14) { - return set_mario_action(m, ACT_FLUTTER_KICK, 0); - } - if (check_water_jump(m)) { - return TRUE; - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } - if (m->actionTimer < 6) { - m->forwardVel += 0.5f; - } + if (++m->actionTimer == 14) { + return set_mario_action(m, ACT_FLUTTER_KICK, 0); + } - if (m->actionTimer >= 9) { - m->forwardVel += 1.5f; - } + if (check_water_jump(m)) { + return TRUE; + } - if (m->actionTimer >= 2) { - if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { - m->actionState = 1; - } + if (m->actionTimer < 6) { + m->forwardVel += 0.5f; + } - if (m->actionTimer == 9 && m->actionState == 1) { - set_anim_to_frame(m, 0); - m->actionState = 0; - m->actionTimer = 1; - sSwimStrength = MIN_SWIM_STRENGTH; - } - } + if (m->actionTimer >= 9) { + m->forwardVel += 1.5f; + } - if (m->actionTimer == 1) { - play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, - m->marioObj->header.gfx.cameraToObject); - reset_float_globals(m); - } + if (m->actionTimer >= 2) { + if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { + m->actionState = 1; + } -#ifdef VERSION_SH - if (m->actionTimer < 6) { - func_sh_8024CA04(); - } -#endif + if (m->actionTimer == 9 && m->actionState == 1) { + set_anim_to_frame(m, 0); + m->actionState = 0; + m->actionTimer = 1; + sSwimStrength = MIN_SWIM_STRENGTH; + } + } - set_mario_animation(m, MARIO_ANIM_SWIM_PART1); - common_swimming_step(m, sSwimStrength); + if (m->actionTimer == 1) { + play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, + m->marioObj->header.gfx.cameraToObject); + reset_float_globals(m); + } - return FALSE; + if (m->actionTimer < 6) { + //func_sh_8024CA04(); + } + + set_mario_animation(m, MARIO_ANIM_SWIM_PART1); + common_swimming_step(m, sSwimStrength); + + return FALSE; } static s32 act_swimming_end(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_PUNCH, 0); - } + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + - if (m->actionTimer >= 15) { - return set_mario_action(m, ACT_WATER_ACTION_END, 0); - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } - if (check_water_jump(m)) { - return TRUE; - } + if (m->actionTimer >= 15) { + return set_mario_action(m, ACT_WATER_ACTION_END, 0); + } - if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { - if (m->actionTimer == 7 && sSwimStrength < 280) { - sSwimStrength += 10; - } - return set_mario_action(m, ACT_BREASTSTROKE, 1); - } + if (check_water_jump(m)) { + return TRUE; + } - if (m->actionTimer >= 7) { - sSwimStrength = MIN_SWIM_STRENGTH; - } + if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { + if (m->actionTimer == 7 && sSwimStrength < 280) { + sSwimStrength += 10; + } + return set_mario_action(m, ACT_BREASTSTROKE, 1); + } - m->actionTimer++; + if (m->actionTimer >= 7) { + sSwimStrength = MIN_SWIM_STRENGTH; + } - m->forwardVel -= 0.25f; - set_mario_animation(m, MARIO_ANIM_SWIM_PART2); - common_swimming_step(m, sSwimStrength); + m->actionTimer++; - return FALSE; + m->forwardVel -= 0.25f; + set_mario_animation(m, MARIO_ANIM_SWIM_PART2); + common_swimming_step(m, sSwimStrength); + + return FALSE; } static s32 act_flutter_kick(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_PUNCH, 0); - } + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + - if (!(m->input & INPUT_A_DOWN)) { - if (m->actionTimer == 0 && sSwimStrength < 280) { - sSwimStrength += 10; - } - return set_mario_action(m, ACT_SWIMMING_END, 0); - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } - m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); - m->actionTimer = 1; - sSwimStrength = MIN_SWIM_STRENGTH; + if (!(m->input & INPUT_A_DOWN)) { + if (m->actionTimer == 0 && sSwimStrength < 280) { + sSwimStrength += 10; + } + return set_mario_action(m, ACT_SWIMMING_END, 0); + } - if (m->forwardVel < 14.0f) { - play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); - } + m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); + m->actionTimer = 1; + sSwimStrength = MIN_SWIM_STRENGTH; - common_swimming_step(m, sSwimStrength); - return FALSE; + if (m->forwardVel < 14.0f) { + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + } + + common_swimming_step(m, sSwimStrength); + return FALSE; } static s32 act_hold_breaststroke(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - } - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + - if (++m->actionTimer == 17) { - return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } + if (++m->actionTimer == 17) { + return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); + } - if (check_water_jump(m)) { - return TRUE; - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } - if (m->actionTimer < 6) { - m->forwardVel += 0.5f; - } + if (check_water_jump(m)) { + return TRUE; + } - if (m->actionTimer >= 9) { - m->forwardVel += 1.5f; - } + if (m->actionTimer < 6) { + m->forwardVel += 0.5f; + } - if (m->actionTimer >= 2) { - if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { - m->actionState = 1; - } + if (m->actionTimer >= 9) { + m->forwardVel += 1.5f; + } - if (m->actionTimer == 9 && m->actionState == 1) { - set_anim_to_frame(m, 0); - m->actionState = 0; - m->actionTimer = 1; - } - } + if (m->actionTimer >= 2) { + if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { + m->actionState = 1; + } - if (m->actionTimer == 1) { - play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); - reset_float_globals(m); - } + if (m->actionTimer == 9 && m->actionState == 1) { + set_anim_to_frame(m, 0); + m->actionState = 0; + m->actionTimer = 1; + } + } - set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); - common_swimming_step(m, 0x00A0); - return FALSE; + if (m->actionTimer == 1) { + play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); + reset_float_globals(m); + } + + set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); + common_swimming_step(m, 0x00A0); + return FALSE; } static s32 act_hold_swimming_end(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - } - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + - if (m->actionTimer >= 15) { - return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } + if (m->actionTimer >= 15) { + return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); + } - if (check_water_jump(m)) { - return TRUE; - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } - if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { - return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); - } + if (check_water_jump(m)) { + return TRUE; + } - m->actionTimer++; + if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } - m->forwardVel -= 0.25f; - set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); - common_swimming_step(m, 0x00A0); - return FALSE; + m->actionTimer++; + + m->forwardVel -= 0.25f; + set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); + common_swimming_step(m, 0x00A0); + return FALSE; } static s32 act_hold_flutter_kick(struct MarioState *m) { - if (m->flags & MARIO_METAL_CAP) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - } - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - if (!(m->input & INPUT_A_DOWN)) { - return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } - m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); - if (m->forwardVel < 14.0f) { - play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); - } - common_swimming_step(m, 0x00A0); - return FALSE; + if (!(m->input & INPUT_A_DOWN)) { + return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); + } + + m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); + if (m->forwardVel < 14.0f) { + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + } + common_swimming_step(m, 0x00A0); + return FALSE; } static s32 act_water_shell_swimming(struct MarioState *m) { - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } - if (m->input & INPUT_B_PRESSED) { - return set_mario_action(m, ACT_WATER_THROW, 0); - } + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } - if (m->actionTimer++ == 240) { - m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; - m->heldObj = NULL; - stop_shell_music(); - set_mario_action(m, ACT_FLUTTER_KICK, 0); - } + if (m->actionTimer++ == 240) { + m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; + m->heldObj = NULL; + stop_shell_music(); + set_mario_action(m, ACT_FLUTTER_KICK, 0); + } - m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); + m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); - play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); - common_swimming_step(m, 0x012C); + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + common_swimming_step(m, 0x012C); - return FALSE; + return FALSE; } static s32 check_water_grab(struct MarioState *m) { - //! Heave hos have the grabbable interaction type but are not normally - // grabbable. Since water grabbing doesn't check the appropriate input flag, - // you can use water grab to pick up heave ho. - if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { - struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); - f32 dx = object->oPosX - m->pos[0]; - f32 dz = object->oPosZ - m->pos[2]; - s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; + //! Heave hos have the grabbable interaction type but are not normally + // grabbable. Since water grabbing doesn't check the appropriate input flag, + // you can use water grab to pick up heave ho. + if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { + struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); + f32 dx = object->oPosX - m->pos[0]; + f32 dz = object->oPosZ - m->pos[2]; + s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; - if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { - m->usedObj = object; - mario_grab_used_object(m); - m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; - return TRUE; - } - } + if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { + m->usedObj = object; + mario_grab_used_object(m); + m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; + return TRUE; + } + } - return FALSE; + return FALSE; } static s32 act_water_throw(struct MarioState *m) { - update_swimming_yaw(m); - update_swimming_pitch(m); - update_swimming_speed(m, MIN_SWIM_SPEED); - perform_water_step(m); - update_water_pitch(m); + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); - set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); - play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); + play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); - m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); - if (m->actionTimer++ == 5) { - mario_throw_held_object(m); -#ifdef VERSION_SH - queue_rumble_data(3, 50); -#endif - } + if (m->actionTimer++ == 5) { + mario_throw_held_object(m); + //(3, 50); + } - if (is_anim_at_end(m)) { - set_mario_action(m, ACT_WATER_IDLE, 0); - } + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_IDLE, 0); + } - return FALSE; + return FALSE; } static s32 act_water_punch(struct MarioState *m) { - if (m->forwardVel < 7.0f) { - m->forwardVel += 1.0f; - } + if (m->forwardVel < 7.0f) { + m->forwardVel += 1.0f; + } - update_swimming_yaw(m); - update_swimming_pitch(m); - update_swimming_speed(m, MIN_SWIM_SPEED); - perform_water_step(m); - update_water_pitch(m); + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); - m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); - play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); - switch (m->actionState) { - case 0: - set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); - if (is_anim_at_end(m)) { - m->actionState = check_water_grab(m) + 1; - } - break; + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); + if (is_anim_at_end(m)) { + m->actionState = check_water_grab(m) + 1; + } + break; - case 1: - set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); - if (is_anim_at_end(m)) { - set_mario_action(m, ACT_WATER_ACTION_END, 0); - } - break; + case 1: + set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_ACTION_END, 0); + } + break; - case 2: - set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); - if (is_anim_at_end(m)) { - if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { - play_shell_music(); - set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); - } else { - set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); - } - } - break; - } + case 2: + set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); + if (is_anim_at_end(m)) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + play_shell_music(); + set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); + } + else { + set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); + } + } + break; + } - return FALSE; + return FALSE; } static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { - stationary_slow_down(m); - perform_water_step(m); - set_mario_animation(m, animation); + stationary_slow_down(m); + perform_water_step(m); + set_mario_animation(m, animation); - m->marioBodyState->headAngle[0] = 0; + m->marioBodyState->headAngle[0] = 0; - if (is_anim_at_end(m)) { - if (arg3 > 0) { - m->invincTimer = 30; - } + if (is_anim_at_end(m)) { + if (arg3 > 0) { + m->invincTimer = 30; + } - set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); - } + set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); + } } static s32 act_backward_water_kb(struct MarioState *m) { - common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); - return FALSE; + common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); + return FALSE; } static s32 act_forward_water_kb(struct MarioState *m) { - common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); - return FALSE; + common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); + return FALSE; } static s32 act_water_shocked(struct MarioState *m) { - play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); - play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); - set_camera_shake_from_hit(SHAKE_SHOCK); + play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); + play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); + set_camera_shake_from_hit(SHAKE_SHOCK); - if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { - m->actionTimer++; - m->flags |= MARIO_METAL_SHOCK; - } + if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { + m->actionTimer++; + m->flags |= MARIO_METAL_SHOCK; + } - if (m->actionTimer >= 6) { - m->invincTimer = 30; - set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); - } + if (m->actionTimer >= 6) { + m->invincTimer = 30; + set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); + } - stationary_slow_down(m); - perform_water_step(m); - m->marioBodyState->headAngle[0] = 0; - return FALSE; + stationary_slow_down(m); + perform_water_step(m); + m->marioBodyState->headAngle[0] = 0; + return FALSE; } static s32 act_drowning(struct MarioState *m) { - switch (m->actionState) { - case 0: - set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); - m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; - if (is_anim_at_end(m)) { - m->actionState = 1; - } - break; + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + if (is_anim_at_end(m)) { + m->actionState = 1; + } + break; - case 1: - set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); - m->marioBodyState->eyeState = MARIO_EYES_DEAD; - if (m->marioObj->header.gfx.animInfo.animFrame == 30) { - level_trigger_warp(m, WARP_OP_DEATH); - } - break; - } + case 1: + set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); + m->marioBodyState->eyeState = MARIO_EYES_DEAD; + if (m->marioObj->header.gfx.animInfo.animFrame == 30) { + level_trigger_warp(m, WARP_OP_DEATH); + } + break; + } - play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); - stationary_slow_down(m); - perform_water_step(m); + play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); + stationary_slow_down(m); + perform_water_step(m); - return FALSE; + return FALSE; } static s32 act_water_death(struct MarioState *m) { - stationary_slow_down(m); - perform_water_step(m); + stationary_slow_down(m); + perform_water_step(m); - m->marioBodyState->eyeState = MARIO_EYES_DEAD; + m->marioBodyState->eyeState = MARIO_EYES_DEAD; - set_mario_animation(m, MARIO_ANIM_WATER_DYING); - if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { - level_trigger_warp(m, WARP_OP_DEATH); - } + set_mario_animation(m, MARIO_ANIM_WATER_DYING); + if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { + level_trigger_warp(m, WARP_OP_DEATH); + } - return FALSE; + return FALSE; } static s32 act_water_plunge(struct MarioState *m) { - u32 stepResult; - s32 stateFlags = m->heldObj != NULL; + u32 stepResult; + s32 stateFlags = m->heldObj != NULL; - f32 endVSpeed; - if (swimming_near_surface(m)) { - endVSpeed = 0.0f; - } else { - endVSpeed = -5.0f; - } + f32 endVSpeed; + if (swimming_near_surface(m)) { + endVSpeed = 0.0f; + } + else { + endVSpeed = -5.0f; + } - if (m->flags & MARIO_METAL_CAP) { - stateFlags |= 4; - } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { - stateFlags |= 2; - } - m->actionTimer++; + stateFlags |= 4; - stationary_slow_down(m); + m->actionTimer++; - stepResult = perform_water_step(m); + stationary_slow_down(m); - if (m->actionState == 0) { - play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); - if (m->peakHeight - m->pos[1] > 1150.0f) { - play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); - } + stepResult = perform_water_step(m); - m->particleFlags |= PARTICLE_WATER_SPLASH; - m->actionState = 1; -#ifdef VERSION_SH - if (m->prevAction & ACT_FLAG_AIR) { - queue_rumble_data(5, 80); - } -#endif - } + if (m->actionState == 0) { + play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); + if (m->peakHeight - m->pos[1] > 1150.0f) { + play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); + } - if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { - switch (stateFlags) { - case 0: - set_mario_action(m, ACT_WATER_ACTION_END, 0); - break; - case 1: - set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); - break; - case 2: - set_mario_action(m, ACT_FLUTTER_KICK, 0); - break; - case 3: - set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); - break; - case 4: - set_mario_action(m, ACT_METAL_WATER_FALLING, 0); - break; - case 5: - set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); - break; - } - D_80339FD2 = 0; - } + m->particleFlags |= PARTICLE_WATER_SPLASH; + m->actionState = 1; + if (m->prevAction & ACT_FLAG_AIR) { + //(5, 80); + } + } - switch (stateFlags) { - case 0: - set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); - break; - case 1: - set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); - break; - case 2: - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); - break; - case 3: - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); - break; - case 4: - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); - break; - case 5: - set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); - break; - } + if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { + switch (stateFlags) { + case 0: + set_mario_action(m, ACT_WATER_ACTION_END, 0); + break; + case 1: + set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); + break; + case 2: + set_mario_action(m, ACT_FLUTTER_KICK, 0); + break; + case 3: + set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); + break; + case 4: + set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + m->vel[1] = -32.0f; + break; + case 5: + set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + break; + } + D_80339FD2 = 0; + } - m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; - return FALSE; + switch (stateFlags) { + case 0: + set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); + break; + case 1: + set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); + break; + case 2: + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + break; + case 3: + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + break; + case 4: + set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + break; + case 5: + set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + break; + } + + m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; + return FALSE; } static s32 act_caught_in_whirlpool(struct MarioState *m) { - f32 sinAngleChange; - f32 cosAngleChange; - f32 newDistance; - s16 angleChange; + f32 sinAngleChange; + f32 cosAngleChange; + f32 newDistance; + s16 angleChange; - struct Object *marioObj = m->marioObj; - struct Object *whirlpool = m->usedObj; + struct Object *marioObj = m->marioObj; + struct Object *whirlpool = m->usedObj; - f32 dx = m->pos[0] - whirlpool->oPosX; - f32 dz = m->pos[2] - whirlpool->oPosZ; - f32 distance = sqrtf(dx * dx + dz * dz); + f32 dx = m->pos[0] - whirlpool->oPosX; + f32 dz = m->pos[2] - whirlpool->oPosZ; + f32 distance = sqrtf(dx * dx + dz * dz); - if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { - marioObj->oMarioWhirlpoolPosY = 0.0f; - if (distance < 16.1f && m->actionTimer++ == 16) { - level_trigger_warp(m, WARP_OP_DEATH); - } - } + if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { + marioObj->oMarioWhirlpoolPosY = 0.0f; + if (distance < 16.1f && m->actionTimer++ == 16) { + level_trigger_warp(m, WARP_OP_DEATH); + } + } - if (distance <= 28.0f) { - newDistance = 16.0f; - angleChange = 0x1800; - } else if (distance < 256.0f) { - newDistance = distance - (12.0f - distance / 32.0f); - angleChange = (s16)(0x1C00 - distance * 20.0f); - } else { - newDistance = distance - 4.0f; - angleChange = 0x800; - } + if (distance <= 28.0f) { + newDistance = 16.0f; + angleChange = 0x1800; + } + else if (distance < 256.0f) { + newDistance = distance - (12.0f - distance / 32.0f); + angleChange = (s16)(0x1C00 - distance * 20.0f); + } + else { + newDistance = distance - 4.0f; + angleChange = 0x800; + } - m->vel[1] = -640.0f / (newDistance + 16.0f); + m->vel[1] = -640.0f / (newDistance + 16.0f); - sinAngleChange = sins(angleChange); - cosAngleChange = coss(angleChange); + sinAngleChange = sins(angleChange); + cosAngleChange = coss(angleChange); - if (distance < 1.0f) { - dx = newDistance * sins(m->faceAngle[1]); - dz = newDistance * coss(m->faceAngle[1]); - } else { - dx *= newDistance / distance; - dz *= newDistance / distance; - } + if (distance < 1.0f) { + dx = newDistance * sins(m->faceAngle[1]); + dz = newDistance * coss(m->faceAngle[1]); + } + else { + dx *= newDistance / distance; + dz *= newDistance / distance; + } - m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; - m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; - m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; + m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; + m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; + m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; - m->faceAngle[1] = atan2s(dz, dx) + 0x8000; + m->faceAngle[1] = atan2s(dz, dx) + 0x8000; - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); - vec3f_copy(m->marioObj->header.gfx.pos, m->pos); - vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); -#ifdef VERSION_SH - reset_rumble_timers(); -#endif + set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); - return FALSE; + //umble_timers(); + return FALSE; } static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { - if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { - m->particleFlags |= PARTICLE_MIST_CIRCLE; - } + if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { + m->particleFlags |= PARTICLE_MIST_CIRCLE; + } + if (m->flags & MARIO_METAL_CAP) { - play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, - MARIO_ACTION_SOUND_PLAYED); + play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, + MARIO_ACTION_SOUND_PLAYED); + } + else { + play_sound_if_no_flag(m, landing ? SOUND_GENERAL_QUIET_BUBBLE : SOUND_ACTION_SWIM, + MARIO_ACTION_SOUND_PLAYED); + } } static void play_metal_water_walking_sound(struct MarioState *m) { - if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { - play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); - m->particleFlags |= PARTICLE_DUST; - } + if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { + if (m->flags & MARIO_METAL_CAP) { + play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); + } + else { + play_sound(SOUND_GENERAL_QUIET_BUBBLE2, m->marioObj->header.gfx.cameraToObject); + } + + m->particleFlags |= PARTICLE_DUST; + } } static void update_metal_water_walking_speed(struct MarioState *m) { - f32 val = m->intendedMag / 1.5f; + f32 val = m->intendedMag / 1.0f; - if (m->forwardVel <= 0.0f) { - m->forwardVel += 1.1f; - } else if (m->forwardVel <= val) { - m->forwardVel += 1.1f - m->forwardVel / 43.0f; - } else if (m->floor->normal.y >= 0.95f) { - m->forwardVel -= 1.0f; - } + if (m->forwardVel <= 0.0f) { + m->forwardVel += 1.1f; + } + else if (m->forwardVel <= val) { + m->forwardVel += 1.1f - m->forwardVel / 43.0f; + } + else if (m->floor->normal.y >= 0.95f) { + m->forwardVel -= 1.0f; + } - if (m->forwardVel > 32.0f) { - m->forwardVel = 32.0f; - } + if (m->forwardVel > 42.0f) { + m->forwardVel = 42.0f; + } - m->faceAngle[1] = - m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + m->faceAngle[1] = + m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); - m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); - m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); - m->vel[0] = m->slideVelX; - m->vel[1] = 0.0f; - m->vel[2] = m->slideVelZ; + m->vel[0] = m->slideVelX; + m->vel[1] = 0.0f; + m->vel[2] = m->slideVelZ; } static s32 update_metal_water_jump_speed(struct MarioState *m) { - UNUSED f32 nextY = m->pos[1] + m->vel[1]; - f32 waterSurface = m->waterLevel - 100; + UNUSED f32 nextY = m->pos[1] + m->vel[1]; + f32 waterSurface = m->waterLevel - 100; - if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { - return TRUE; - } + if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { + return TRUE; + } - if (m->input & INPUT_NONZERO_ANALOG) { - s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; - m->forwardVel += 0.8f * coss(intendedDYaw); - m->faceAngle[1] += 0x200 * sins(intendedDYaw); - } else { - m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); - } + if (m->input & INPUT_NONZERO_ANALOG) { + s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; + m->forwardVel += 0.8f * coss(intendedDYaw); + m->faceAngle[1] += 0x200 * sins(intendedDYaw); + } + else { + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); + } - if (m->forwardVel > 16.0f) { - m->forwardVel -= 1.0f; - } + if (m->forwardVel > 18.0f) { + m->forwardVel -= 1.0f; + } - if (m->forwardVel < 0.0f) { - m->forwardVel += 2.0f; - } + if (m->forwardVel < 0.0f) { + m->forwardVel += 2.0f; + } - m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); - m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); - return FALSE; + m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + return FALSE; } static s32 act_metal_water_standing(struct MarioState *m) { - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); - } + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + } - switch (m->actionState) { - case 0: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); - break; - case 1: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); - break; - case 2: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); - break; - } + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } - if (is_anim_at_end(m) && ++m->actionState == 3) { - m->actionState = 0; - } + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + break; + case 1: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); + break; + case 2: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); + break; + } - stop_and_set_height_to_floor(m); - if (m->pos[1] >= m->waterLevel - 150) { - m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; - } + if (is_anim_at_end(m) && ++m->actionState == 3) { + m->actionState = 0; + } - return FALSE; + stop_and_set_height_to_floor(m); + if (m->pos[1] >= m->waterLevel - 150) { + m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + } + + return FALSE; } static s32 act_hold_metal_water_standing(struct MarioState *m) { - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); - } + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); + } - stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); - return FALSE; + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + return FALSE; } static s32 act_metal_water_walking(struct MarioState *m) { - s32 val04; + s32 val04; - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } - if (m->input & INPUT_FIRST_PERSON) { - return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); - } + if (m->input & INPUT_FIRST_PERSON) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } - if (m->input & INPUT_UNKNOWN_5) { - return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + } - if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { - val04 = 0x1000; - } + if (m->input & INPUT_UNKNOWN_5) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); - play_metal_water_walking_sound(m); - update_metal_water_walking_speed(m); + if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { + val04 = 0x1000; + } - switch (perform_ground_step(m)) { - case GROUND_STEP_LEFT_GROUND: - set_mario_action(m, ACT_METAL_WATER_FALLING, 1); - break; + set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); + play_metal_water_walking_sound(m); + update_metal_water_walking_speed(m); - case GROUND_STEP_HIT_WALL: - m->forwardVel = 0.0f; - break; - } + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: + set_mario_action(m, ACT_METAL_WATER_JUMP, 1); + m->vel[1] = -60.0f; + break; - return FALSE; + case GROUND_STEP_HIT_WALL: + m->forwardVel = 0; + break; + } + + return FALSE; } static s32 act_hold_metal_water_walking(struct MarioState *m) { - s32 val04; + s32 val04; - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (m->input & INPUT_A_PRESSED) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); - } - if (m->input & INPUT_UNKNOWN_5) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); - } + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); + } - m->intendedMag *= 0.4f; + if (m->input & INPUT_UNKNOWN_5) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } - if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { - val04 = 0x1000; - } + m->intendedMag *= 0.4f; - set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); - play_metal_water_walking_sound(m); - update_metal_water_walking_speed(m); + if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { + val04 = 0x1000; + } - switch (perform_ground_step(m)) { - case GROUND_STEP_LEFT_GROUND: - set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); - break; + set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); + play_metal_water_walking_sound(m); + update_metal_water_walking_speed(m); - case GROUND_STEP_HIT_WALL: - m->forwardVel = 0.0f; - break; - } + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: + set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); + break; - return FALSE; + case GROUND_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; } static s32 act_metal_water_jump(struct MarioState *m) { - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } + m->actionTimer++; + //exit water fix + set_camera_mode(m->area->camera, m->area->camera->defMode, 1); + if (m->flags & MARIO_METAL_CAP) + { + if (m->vel[1] < 3.0f) + { - if (update_metal_water_jump_speed(m)) { - return set_mario_action(m, ACT_WATER_JUMP, 1); - } + m->vel[1] -= 10; + } + } + if (m->vel[1] < 1.0f) + { + m->marioObj->header.gfx.animInfo.animAccel = 0x10000; + //set_camera_mode(m->area->camera, CAMERA_MODE_WATER_SURFACE, 1); + //set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); + } + else + { + cur_obj_set_model(MODEL_SONIC_BALL); + } - play_metal_water_jumping_sound(m, FALSE); - set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + if (m->input & INPUT_A_PRESSED && m->actionTimer >= 1) { + m->marioObj->header.gfx.animInfo.animAccel = 0x20000; + //set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); + set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + m->actionTimer = 0; + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + + + } - switch (perform_air_step(m, 0)) { - case AIR_STEP_LANDED: - set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); - break; + if (update_metal_water_jump_speed(m)) { + return set_mario_action(m, ACT_WATER_JUMP, 1); + } - case AIR_STEP_HIT_WALL: - m->forwardVel = 0.0f; - break; - } + play_metal_water_jumping_sound(m, FALSE); + set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); - return FALSE; + switch (perform_air_step(m, 0)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); + break; + + case AIR_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; } static s32 act_hold_metal_water_jump(struct MarioState *m) { - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (update_metal_water_jump_speed(m)) { - return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); - } - play_metal_water_jumping_sound(m, FALSE); - set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + if (update_metal_water_jump_speed(m)) { + return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); + } - switch (perform_air_step(m, 0)) { - case AIR_STEP_LANDED: - set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); - break; + play_metal_water_jumping_sound(m, FALSE); + set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); - case AIR_STEP_HIT_WALL: - m->forwardVel = 0.0f; - break; - } + switch (perform_air_step(m, 0)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); + break; - return FALSE; + case AIR_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; } static s32 act_metal_water_falling(struct MarioState *m) { - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); - } + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); + } - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); - stationary_slow_down(m); + set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); + stationary_slow_down(m); - if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled - set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); - } + if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled + set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); + } - return FALSE; + return FALSE; } static s32 act_hold_metal_water_falling(struct MarioState *m) { - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); - } + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); + } - set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); - stationary_slow_down(m); + set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + stationary_slow_down(m); - if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled - set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); - } + if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled + set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); + } - return FALSE; + return FALSE; } static s32 act_metal_water_jump_land(struct MarioState *m) { - play_metal_water_jumping_sound(m, TRUE); + play_metal_water_jumping_sound(m, TRUE); - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); - } - stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } - if (is_anim_at_end(m)) { - return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); - return FALSE; + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + return FALSE; } static s32 act_hold_metal_water_jump_land(struct MarioState *m) { - play_metal_water_jumping_sound(m, TRUE); + play_metal_water_jumping_sound(m, TRUE); - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); - } - stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } - if (is_anim_at_end(m)) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); - } + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); - return FALSE; + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } + + return FALSE; } static s32 act_metal_water_fall_land(struct MarioState *m) { - play_metal_water_jumping_sound(m, TRUE); + play_metal_water_jumping_sound(m, TRUE); - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); - } - stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } - if (is_anim_at_end(m)) { - return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); - return FALSE; + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + return FALSE; } static s32 act_hold_metal_water_fall_land(struct MarioState *m) { - play_metal_water_jumping_sound(m, TRUE); + play_metal_water_jumping_sound(m, TRUE); - if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { - return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); - } + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } - if (!(m->flags & MARIO_METAL_CAP)) { - return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); - } - if (m->input & INPUT_NONZERO_ANALOG) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); - } - stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } - if (is_anim_at_end(m)) { - return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); - } + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); - return FALSE; + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } + + return FALSE; } static s32 check_common_submerged_cancels(struct MarioState *m) { - if (m->pos[1] > m->waterLevel - 80) { - if (m->waterLevel - 80 > m->floorHeight) { - m->pos[1] = m->waterLevel - 80; - } else { - //! If you press B to throw the shell, there is a ~5 frame window - // where your held object is the shell, but you are not in the - // water shell swimming action. This allows you to hold the water - // shell on land (used for cloning in DDD). - if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { - m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; - m->heldObj = NULL; - stop_shell_music(); - } + if (m->pos[1] > m->waterLevel - 80) { + if (m->waterLevel - 80 > m->floorHeight) { + m->pos[1] = m->waterLevel - 80; + } + else { + //! If you press B to throw the shell, there is a ~5 frame window + // where your held object is the shell, but you are not in the + // water shell swimming action. This allows you to hold the water + // shell on land (used for cloning in DDD). + if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { + m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; + m->heldObj = NULL; + stop_shell_music(); + } - return transition_submerged_to_walking(m); - } - } + return transition_submerged_to_walking(m); + } + } - if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { - set_mario_action(m, ACT_DROWNING, 0); - } + if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { + set_mario_action(m, ACT_DROWNING, 0); + } - return FALSE; + return FALSE; } s32 mario_execute_submerged_action(struct MarioState *m) { - s32 cancel; + s32 cancel; - if (check_common_submerged_cancels(m)) { - return TRUE; - } + if (check_common_submerged_cancels(m)) { + return TRUE; + } - m->quicksandDepth = 0.0f; + m->quicksandDepth = 0.0f; - m->marioBodyState->headAngle[1] = 0; - m->marioBodyState->headAngle[2] = 0; + m->marioBodyState->headAngle[1] = 0; + m->marioBodyState->headAngle[2] = 0; - /* clang-format off */ - switch (m->action) { - case ACT_WATER_IDLE: cancel = act_water_idle(m); break; - case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; - case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; - case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; - case ACT_DROWNING: cancel = act_drowning(m); break; - case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; - case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; - case ACT_WATER_DEATH: cancel = act_water_death(m); break; - case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; - case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; - case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; - case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; - case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; - case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; - case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; - case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; - case ACT_WATER_THROW: cancel = act_water_throw(m); break; - case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; - case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; - case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; - case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; - case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; - case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; - case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; - case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; - case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; - case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; - case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; - case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; - case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; - case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; - case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; - } - /* clang-format on */ + /* clang-format off */ + switch (m->action) { + case ACT_WATER_IDLE: cancel = act_water_idle(m); break; + case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; + case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; + case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; + case ACT_DROWNING: cancel = act_drowning(m); break; + case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; + case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; + case ACT_WATER_DEATH: cancel = act_water_death(m); break; + case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; + case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; + case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; + case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; + case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; + case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; + case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; + case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; + case ACT_WATER_THROW: cancel = act_water_throw(m); break; + case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; + case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; + case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; + case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; + case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; + case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; + case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; + case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; + case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; + case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; + case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; + case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; + case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; + case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; + case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; + } + /* clang-format on */ - return cancel; + return cancel; } diff --git a/src/game/mario_actions_submerged.c.orig b/src/game/mario_actions_submerged.c.orig new file mode 100644 index 00000000..59070663 --- /dev/null +++ b/src/game/mario_actions_submerged.c.orig @@ -0,0 +1,1573 @@ +#include + +#include "sm64.h" +#include "level_update.h" +#include "memory.h" +#include "engine/math_util.h" +#include "area.h" +#include "save_file.h" +#include "sound_init.h" +#include "engine/surface_collision.h" +#include "interaction.h" +#include "mario.h" +#include "mario_step.h" +#include "camera.h" +#include "audio/external.h" +#include "behavior_data.h" +#include "level_table.h" +#include "thread6.h" + +#define MIN_SWIM_STRENGTH 160 +#define MIN_SWIM_SPEED 16.0f + +static s16 sWasAtSurface = FALSE; +static s16 sSwimStrength = MIN_SWIM_STRENGTH; +static s16 sWaterCurrentSpeeds[] = { 28, 12, 8, 4 }; + +static s16 D_80339FD0; +static s16 D_80339FD2; +static f32 D_80339FD4; + +static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { + s16 atSurface = m->pos[1] >= m->waterLevel - 130; + + if (atSurface) { + m->particleFlags |= particleFlag; + if (atSurface ^ sWasAtSurface) { + play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); + } + } + + sWasAtSurface = atSurface; +} + +static s32 swimming_near_surface(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return FALSE; + } + + return (m->waterLevel - 80) - m->pos[1] < 400.0f; +} + +static f32 get_buoyancy(struct MarioState *m) { + f32 buoyancy = 0.0f; + + if (m->flags & MARIO_METAL_CAP) { + if (m->action & ACT_FLAG_INVULNERABLE) { + buoyancy = -2.0f; + } else { + buoyancy = -18.0f; + } + } else if (swimming_near_surface(m)) { + buoyancy = 1.25f; + } else if (!(m->action & ACT_FLAG_MOVING)) { + buoyancy = -2.0f; + } + + return buoyancy; +} + +static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { + struct Surface *wall; + struct Surface *ceil; + struct Surface *floor; + f32 ceilHeight; + f32 floorHeight; + + wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); + floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); + ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); + + if (floor == NULL) { + return WATER_STEP_CANCELLED; + } + + if (nextPos[1] >= floorHeight) { + if (ceilHeight - nextPos[1] >= 160.0f) { + vec3f_copy(m->pos, nextPos); + m->floor = floor; + m->floorHeight = floorHeight; + + if (wall != NULL) { + return WATER_STEP_HIT_WALL; + } else { + return WATER_STEP_NONE; + } + } + + if (ceilHeight - floorHeight < 160.0f) { + return WATER_STEP_CANCELLED; + } + + //! Water ceiling downwarp + vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); + m->floor = floor; + m->floorHeight = floorHeight; + return WATER_STEP_HIT_CEILING; + } else { + if (ceilHeight - floorHeight < 160.0f) { + return WATER_STEP_CANCELLED; + } + + vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); + m->floor = floor; + m->floorHeight = floorHeight; + return WATER_STEP_HIT_FLOOR; + } +} + +static void apply_water_current(struct MarioState *m, Vec3f step) { + s32 i; + f32 whirlpoolRadius = 2000.0f; + + if (m->floor->type == SURFACE_FLOWING_WATER) { + s16 currentAngle = m->floor->force << 8; + f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; + + step[0] += currentSpeed * sins(currentAngle); + step[2] += currentSpeed * coss(currentAngle); + } + + for (i = 0; i < 2; i++) { + struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; + if (whirlpool != NULL) { + f32 strength = 0.0f; + + f32 dx = whirlpool->pos[0] - m->pos[0]; + f32 dy = whirlpool->pos[1] - m->pos[1]; + f32 dz = whirlpool->pos[2] - m->pos[2]; + + f32 lateralDist = sqrtf(dx * dx + dz * dz); + f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); + + s16 pitchToWhirlpool = atan2s(lateralDist, dy); + s16 yawToWhirlpool = atan2s(dz, dx); + + yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); + + if (whirlpool->strength >= 0) { + if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { + whirlpoolRadius = 4000.0f; + } + + if (distance >= 26.0f && distance < whirlpoolRadius) { + strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); + } + } else if (distance < 2000.0f) { + strength = whirlpool->strength * (1.0f - distance / 2000.0f); + } + + step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); + step[1] += strength * sins(pitchToWhirlpool); + step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); + } + } +} + +static u32 perform_water_step(struct MarioState *m) { + UNUSED u32 unused; + u32 stepResult; + Vec3f nextPos; + Vec3f step; + struct Object *marioObj = m->marioObj; + + vec3f_copy(step, m->vel); + + if (m->action & ACT_FLAG_SWIMMING) { + apply_water_current(m, step); + } + + nextPos[0] = m->pos[0] + step[0]; + nextPos[1] = m->pos[1] + step[1]; + nextPos[2] = m->pos[2] + step[2]; + + if (nextPos[1] > m->waterLevel - 80) { + nextPos[1] = m->waterLevel - 80; + m->vel[1] = 0.0f; + } + + stepResult = perform_water_full_step(m, nextPos); + + vec3f_copy(marioObj->header.gfx.pos, m->pos); + vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); + + return stepResult; +} + +static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { + struct Object *marioObj = m->marioObj; + + if (marioObj->header.gfx.angle[0] > 0) { + marioObj->header.gfx.pos[1] += + 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); + } + + if (marioObj->header.gfx.angle[0] < 0) { + marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; + } + + if (marioObj->header.gfx.angle[0] > 0) { + marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; + } +} + +static void stationary_slow_down(struct MarioState *m) { + f32 buoyancy = get_buoyancy(m); + + m->angleVel[0] = 0; + m->angleVel[1] = 0; + + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); + m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); + + m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); + m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); + + m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); + m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); +} + +static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { + f32 buoyancy = get_buoyancy(m); + f32 maxSpeed = 28.0f; + + if (m->action & ACT_FLAG_STATIONARY) { + m->forwardVel -= 2.0f; + } + + if (m->forwardVel < 0.0f) { + m->forwardVel = 0.0f; + } + + if (m->forwardVel > maxSpeed) { + m->forwardVel = maxSpeed; + } + + if (m->forwardVel > decelThreshold) { + m->forwardVel -= 0.5f; + } + + m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); + m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; + m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); +} + +static void update_swimming_yaw(struct MarioState *m) { + s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); + + if (targetYawVel > 0) { + if (m->angleVel[1] < 0) { + m->angleVel[1] += 0x40; + if (m->angleVel[1] > 0x10) { + m->angleVel[1] = 0x10; + } + } else { + m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); + } + } else if (targetYawVel < 0) { + if (m->angleVel[1] > 0) { + m->angleVel[1] -= 0x40; + if (m->angleVel[1] < -0x10) { + m->angleVel[1] = -0x10; + } + } else { + m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); + } + } else { + m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); + } + + m->faceAngle[1] += m->angleVel[1]; + m->faceAngle[2] = -m->angleVel[1] * 8; +} + +static void update_swimming_pitch(struct MarioState *m) { + s16 targetPitch = -(s16)(252.0f * m->controller->stickY); + + s16 pitchVel; + if (m->faceAngle[0] < 0) { + pitchVel = 0x100; + } else { + pitchVel = 0x200; + } + + if (m->faceAngle[0] < targetPitch) { + if ((m->faceAngle[0] += pitchVel) > targetPitch) { + m->faceAngle[0] = targetPitch; + } + } else if (m->faceAngle[0] > targetPitch) { + if ((m->faceAngle[0] -= pitchVel) < targetPitch) { + m->faceAngle[0] = targetPitch; + } + } +} + +static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { + s16 *val = &m->marioBodyState->headAngle[0]; + + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); + + if (m->faceAngle[0] > 0) { + *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); + } else { + *val = approach_s32(*val, 0, 0x200, 0x200); + } + + if (arg == 0) { + set_mario_animation(m, animation); + } else { + set_mario_anim_with_accel(m, animation, arg); + } + + set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); +} + +static s32 act_water_idle(struct MarioState *m) { + u32 val = 0x10000; + + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_BREASTSTROKE, 0); + } + + if (m->faceAngle[0] < -0x1000) { + val = 0x30000; + } + + common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); + return FALSE; +} + +static s32 act_hold_water_idle(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + } + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } + + common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); + return FALSE; +} + +static s32 act_water_action_end(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_BREASTSTROKE, 0); + } + + common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_IDLE, 0); + } + return FALSE; +} + +static s32 act_hold_water_action_end(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + } + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } + + common_idle_step( + m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, + 0); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + return FALSE; +} + +static void reset_float_globals(struct MarioState *m) { + D_80339FD0 = 0; + D_80339FD2 = 0x800; + D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; +} + +static void float_surface_gfx(struct MarioState *m) { + if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { + if ((D_80339FD0 += D_80339FD2) >= 0) { + m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); + return; + } + } + + D_80339FD2 = 0; +} + +static void common_swimming_step(struct MarioState *m, s16 swimStrength) { + s16 floorPitch; + UNUSED struct Object *marioObj = m->marioObj; + + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, swimStrength / 10.0f); + + switch (perform_water_step(m)) { + case WATER_STEP_HIT_FLOOR: + floorPitch = -find_floor_slope(m, -0x8000); + if (m->faceAngle[0] < floorPitch) { + m->faceAngle[0] = floorPitch; + } + break; + + case WATER_STEP_HIT_CEILING: + if (m->faceAngle[0] > -0x3000) { + m->faceAngle[0] -= 0x100; + } + break; + + case WATER_STEP_HIT_WALL: + if (m->controller->stickY == 0.0f) { + if (m->faceAngle[0] > 0.0f) { + m->faceAngle[0] += 0x200; + if (m->faceAngle[0] > 0x3F00) { + m->faceAngle[0] = 0x3F00; + } + } else { + m->faceAngle[0] -= 0x200; + if (m->faceAngle[0] < -0x3F00) { + m->faceAngle[0] = -0x3F00; + } + } + } + break; + } + + update_water_pitch(m); + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + + float_surface_gfx(m); + set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); +} + +static void play_swimming_noise(struct MarioState *m) { + s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; + + // This must be one line to match on -O2 + if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); +} + +static s32 check_water_jump(struct MarioState *m) { + s32 probe = (s32)(m->pos[1] + 1.5f); + + if (m->input & INPUT_A_PRESSED) { + if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { + vec3s_set(m->angleVel, 0, 0, 0); + + m->vel[1] = 62.0f; + + if (m->heldObj == NULL) { + return set_mario_action(m, ACT_WATER_JUMP, 0); + } else { + return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); + } + } + } + + return FALSE; +} + +static s32 act_breaststroke(struct MarioState *m) { + if (m->actionArg == 0) { + sSwimStrength = MIN_SWIM_STRENGTH; + } + + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (++m->actionTimer == 14) { + return set_mario_action(m, ACT_FLUTTER_KICK, 0); + } + + if (check_water_jump(m)) { + return TRUE; + } + + if (m->actionTimer < 6) { + m->forwardVel += 0.5f; + } + + if (m->actionTimer >= 9) { + m->forwardVel += 1.5f; + } + + if (m->actionTimer >= 2) { + if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { + m->actionState = 1; + } + + if (m->actionTimer == 9 && m->actionState == 1) { + set_anim_to_frame(m, 0); + m->actionState = 0; + m->actionTimer = 1; + sSwimStrength = MIN_SWIM_STRENGTH; + } + } + + if (m->actionTimer == 1) { + play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, + m->marioObj->header.gfx.cameraToObject); + reset_float_globals(m); + } + +#ifdef VERSION_SH + if (m->actionTimer < 6) { + func_sh_8024CA04(); + } +#endif + + set_mario_animation(m, MARIO_ANIM_SWIM_PART1); + common_swimming_step(m, sSwimStrength); + + return FALSE; +} + +static s32 act_swimming_end(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (m->actionTimer >= 15) { + return set_mario_action(m, ACT_WATER_ACTION_END, 0); + } + + if (check_water_jump(m)) { + return TRUE; + } + + if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { + if (m->actionTimer == 7 && sSwimStrength < 280) { + sSwimStrength += 10; + } + return set_mario_action(m, ACT_BREASTSTROKE, 1); + } + + if (m->actionTimer >= 7) { + sSwimStrength = MIN_SWIM_STRENGTH; + } + + m->actionTimer++; + + m->forwardVel -= 0.25f; + set_mario_animation(m, MARIO_ANIM_SWIM_PART2); + common_swimming_step(m, sSwimStrength); + + return FALSE; +} + +static s32 act_flutter_kick(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_PUNCH, 0); + } + + if (!(m->input & INPUT_A_DOWN)) { + if (m->actionTimer == 0 && sSwimStrength < 280) { + sSwimStrength += 10; + } + return set_mario_action(m, ACT_SWIMMING_END, 0); + } + + m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); + m->actionTimer = 1; + sSwimStrength = MIN_SWIM_STRENGTH; + + if (m->forwardVel < 14.0f) { + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + } + + common_swimming_step(m, sSwimStrength); + return FALSE; +} + +static s32 act_hold_breaststroke(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + } + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (++m->actionTimer == 17) { + return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (check_water_jump(m)) { + return TRUE; + } + + if (m->actionTimer < 6) { + m->forwardVel += 0.5f; + } + + if (m->actionTimer >= 9) { + m->forwardVel += 1.5f; + } + + if (m->actionTimer >= 2) { + if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { + m->actionState = 1; + } + + if (m->actionTimer == 9 && m->actionState == 1) { + set_anim_to_frame(m, 0); + m->actionState = 0; + m->actionTimer = 1; + } + } + + if (m->actionTimer == 1) { + play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); + reset_float_globals(m); + } + + set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); + common_swimming_step(m, 0x00A0); + return FALSE; +} + +static s32 act_hold_swimming_end(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + } + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->actionTimer >= 15) { + return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (check_water_jump(m)) { + return TRUE; + } + + if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { + return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); + } + + m->actionTimer++; + + m->forwardVel -= 0.25f; + set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); + common_swimming_step(m, 0x00A0); + return FALSE; +} + +static s32 act_hold_flutter_kick(struct MarioState *m) { + if (m->flags & MARIO_METAL_CAP) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + } + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (!(m->input & INPUT_A_DOWN)) { + return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); + } + + m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); + if (m->forwardVel < 14.0f) { + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + } + common_swimming_step(m, 0x00A0); + return FALSE; +} + +static s32 act_water_shell_swimming(struct MarioState *m) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_B_PRESSED) { + return set_mario_action(m, ACT_WATER_THROW, 0); + } + + if (m->actionTimer++ == 240) { + m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; + m->heldObj = NULL; + stop_shell_music(); + set_mario_action(m, ACT_FLUTTER_KICK, 0); + } + + m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); + + play_swimming_noise(m); + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + common_swimming_step(m, 0x012C); + + return FALSE; +} + +static s32 check_water_grab(struct MarioState *m) { + //! Heave hos have the grabbable interaction type but are not normally + // grabbable. Since water grabbing doesn't check the appropriate input flag, + // you can use water grab to pick up heave ho. + if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { + struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); + f32 dx = object->oPosX - m->pos[0]; + f32 dz = object->oPosZ - m->pos[2]; + s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; + + if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { + m->usedObj = object; + mario_grab_used_object(m); + m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; + return TRUE; + } + } + + return FALSE; +} + +static s32 act_water_throw(struct MarioState *m) { + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); + + set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); + play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + + if (m->actionTimer++ == 5) { + mario_throw_held_object(m); +#ifdef VERSION_SH + //(3, 50); +#endif + } + + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_IDLE, 0); + } + + return FALSE; +} + +static s32 act_water_punch(struct MarioState *m) { + if (m->forwardVel < 7.0f) { + m->forwardVel += 1.0f; + } + + update_swimming_yaw(m); + update_swimming_pitch(m); + update_swimming_speed(m, MIN_SWIM_SPEED); + perform_water_step(m); + update_water_pitch(m); + + m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + + play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); + if (is_anim_at_end(m)) { + m->actionState = check_water_grab(m) + 1; + } + break; + + case 1: + set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); + if (is_anim_at_end(m)) { + set_mario_action(m, ACT_WATER_ACTION_END, 0); + } + break; + + case 2: + set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); + if (is_anim_at_end(m)) { + if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { + play_shell_music(); + set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); + } else { + set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); + } + } + break; + } + + return FALSE; +} + +static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { + stationary_slow_down(m); + perform_water_step(m); + set_mario_animation(m, animation); + + m->marioBodyState->headAngle[0] = 0; + + if (is_anim_at_end(m)) { + if (arg3 > 0) { + m->invincTimer = 30; + } + + set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); + } +} + +static s32 act_backward_water_kb(struct MarioState *m) { + common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); + return FALSE; +} + +static s32 act_forward_water_kb(struct MarioState *m) { + common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); + return FALSE; +} + +static s32 act_water_shocked(struct MarioState *m) { + play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); + play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); + set_camera_shake_from_hit(SHAKE_SHOCK); + + if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { + m->actionTimer++; + m->flags |= MARIO_METAL_SHOCK; + } + + if (m->actionTimer >= 6) { + m->invincTimer = 30; + set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); + } + + stationary_slow_down(m); + perform_water_step(m); + m->marioBodyState->headAngle[0] = 0; + return FALSE; +} + +static s32 act_drowning(struct MarioState *m) { + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); + m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; + if (is_anim_at_end(m)) { + m->actionState = 1; + } + break; + + case 1: + set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); + m->marioBodyState->eyeState = MARIO_EYES_DEAD; + if (m->marioObj->header.gfx.animInfo.animFrame == 30) { + level_trigger_warp(m, WARP_OP_DEATH); + } + break; + } + + play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); + stationary_slow_down(m); + perform_water_step(m); + + return FALSE; +} + +static s32 act_water_death(struct MarioState *m) { + stationary_slow_down(m); + perform_water_step(m); + + m->marioBodyState->eyeState = MARIO_EYES_DEAD; + + set_mario_animation(m, MARIO_ANIM_WATER_DYING); + if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { + level_trigger_warp(m, WARP_OP_DEATH); + } + + return FALSE; +} + +static s32 act_water_plunge(struct MarioState *m) { + u32 stepResult; + s32 stateFlags = m->heldObj != NULL; + + f32 endVSpeed; + if (swimming_near_surface(m)) { + endVSpeed = 0.0f; + } else { + endVSpeed = -5.0f; + } + + if (m->flags & MARIO_METAL_CAP) { + stateFlags |= 4; + } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { + stateFlags |= 2; + } + + m->actionTimer++; + + stationary_slow_down(m); + + stepResult = perform_water_step(m); + + if (m->actionState == 0) { + play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); + if (m->peakHeight - m->pos[1] > 1150.0f) { + play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); + } + + m->particleFlags |= PARTICLE_WATER_SPLASH; + m->actionState = 1; +#ifdef VERSION_SH + if (m->prevAction & ACT_FLAG_AIR) { + //(5, 80); + } +#endif + } + + if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { + switch (stateFlags) { + case 0: + set_mario_action(m, ACT_WATER_ACTION_END, 0); + break; + case 1: + set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); + break; + case 2: + set_mario_action(m, ACT_FLUTTER_KICK, 0); + break; + case 3: + set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); + break; + case 4: + set_mario_action(m, ACT_METAL_WATER_FALLING, 0); + break; + case 5: + set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); + break; + } + D_80339FD2 = 0; + } + + switch (stateFlags) { + case 0: + set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); + break; + case 1: + set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); + break; + case 2: + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + break; + case 3: + set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + break; + case 4: + set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + break; + case 5: + set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + break; + } + + m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; + return FALSE; +} + +static s32 act_caught_in_whirlpool(struct MarioState *m) { + f32 sinAngleChange; + f32 cosAngleChange; + f32 newDistance; + s16 angleChange; + + struct Object *marioObj = m->marioObj; + struct Object *whirlpool = m->usedObj; + + f32 dx = m->pos[0] - whirlpool->oPosX; + f32 dz = m->pos[2] - whirlpool->oPosZ; + f32 distance = sqrtf(dx * dx + dz * dz); + + if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { + marioObj->oMarioWhirlpoolPosY = 0.0f; + if (distance < 16.1f && m->actionTimer++ == 16) { + level_trigger_warp(m, WARP_OP_DEATH); + } + } + + if (distance <= 28.0f) { + newDistance = 16.0f; + angleChange = 0x1800; + } else if (distance < 256.0f) { + newDistance = distance - (12.0f - distance / 32.0f); + angleChange = (s16)(0x1C00 - distance * 20.0f); + } else { + newDistance = distance - 4.0f; + angleChange = 0x800; + } + + m->vel[1] = -640.0f / (newDistance + 16.0f); + + sinAngleChange = sins(angleChange); + cosAngleChange = coss(angleChange); + + if (distance < 1.0f) { + dx = newDistance * sins(m->faceAngle[1]); + dz = newDistance * coss(m->faceAngle[1]); + } else { + dx *= newDistance / distance; + dz *= newDistance / distance; + } + + m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; + m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; + m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; + + m->faceAngle[1] = atan2s(dz, dx) + 0x8000; + + set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + vec3f_copy(m->marioObj->header.gfx.pos, m->pos); + vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +#ifdef VERSION_SH + reset_rumble_timers(); +#endif + + return FALSE; +} + +static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { + if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { + m->particleFlags |= PARTICLE_MIST_CIRCLE; + } + + play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, + MARIO_ACTION_SOUND_PLAYED); +} + +static void play_metal_water_walking_sound(struct MarioState *m) { + if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { + play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); + m->particleFlags |= PARTICLE_DUST; + } +} + +static void update_metal_water_walking_speed(struct MarioState *m) { + f32 val = m->intendedMag / 1.5f; + + if (m->forwardVel <= 0.0f) { + m->forwardVel += 1.1f; + } else if (m->forwardVel <= val) { + m->forwardVel += 1.1f - m->forwardVel / 43.0f; + } else if (m->floor->normal.y >= 0.95f) { + m->forwardVel -= 1.0f; + } + + if (m->forwardVel > 32.0f) { + m->forwardVel = 32.0f; + } + + m->faceAngle[1] = + m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); + + m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + + m->vel[0] = m->slideVelX; + m->vel[1] = 0.0f; + m->vel[2] = m->slideVelZ; +} + +static s32 update_metal_water_jump_speed(struct MarioState *m) { + UNUSED f32 nextY = m->pos[1] + m->vel[1]; + f32 waterSurface = m->waterLevel - 100; + + if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { + return TRUE; + } + + if (m->input & INPUT_NONZERO_ANALOG) { + s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; + m->forwardVel += 0.8f * coss(intendedDYaw); + m->faceAngle[1] += 0x200 * sins(intendedDYaw); + } else { + m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); + } + + if (m->forwardVel > 16.0f) { + m->forwardVel -= 1.0f; + } + + if (m->forwardVel < 0.0f) { + m->forwardVel += 2.0f; + } + + m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); + m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + return FALSE; +} + +static s32 act_metal_water_standing(struct MarioState *m) { + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } + + switch (m->actionState) { + case 0: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + break; + case 1: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); + break; + case 2: + set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); + break; + } + + if (is_anim_at_end(m) && ++m->actionState == 3) { + m->actionState = 0; + } + + stop_and_set_height_to_floor(m); + if (m->pos[1] >= m->waterLevel - 150) { + m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; + } + + return FALSE; +} + +static s32 act_hold_metal_water_standing(struct MarioState *m) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + return FALSE; +} + +static s32 act_metal_water_walking(struct MarioState *m) { + s32 val04; + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_FIRST_PERSON) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); + } + + if (m->input & INPUT_UNKNOWN_5) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { + val04 = 0x1000; + } + + set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); + play_metal_water_walking_sound(m); + update_metal_water_walking_speed(m); + + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: + set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + break; + + case GROUND_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; +} + +static s32 act_hold_metal_water_walking(struct MarioState *m) { + s32 val04; + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (m->input & INPUT_A_PRESSED) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); + } + + if (m->input & INPUT_UNKNOWN_5) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } + + m->intendedMag *= 0.4f; + + if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { + val04 = 0x1000; + } + + set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); + play_metal_water_walking_sound(m); + update_metal_water_walking_speed(m); + + switch (perform_ground_step(m)) { + case GROUND_STEP_LEFT_GROUND: + set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); + break; + + case GROUND_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; +} + +static s32 act_metal_water_jump(struct MarioState *m) { + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (update_metal_water_jump_speed(m)) { + return set_mario_action(m, ACT_WATER_JUMP, 1); + } + + play_metal_water_jumping_sound(m, FALSE); + set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + + switch (perform_air_step(m, 0)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); + break; + + case AIR_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; +} + +static s32 act_hold_metal_water_jump(struct MarioState *m) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (update_metal_water_jump_speed(m)) { + return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); + } + + play_metal_water_jumping_sound(m, FALSE); + set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + + switch (perform_air_step(m, 0)) { + case AIR_STEP_LANDED: + set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); + break; + + case AIR_STEP_HIT_WALL: + m->forwardVel = 0.0f; + break; + } + + return FALSE; +} + +static s32 act_metal_water_falling(struct MarioState *m) { + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); + } + + set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); + stationary_slow_down(m); + + if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled + set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); + } + + return FALSE; +} + +static s32 act_hold_metal_water_falling(struct MarioState *m) { + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); + } + + set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + stationary_slow_down(m); + + if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled + set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); + } + + return FALSE; +} + +static s32 act_metal_water_jump_land(struct MarioState *m) { + play_metal_water_jumping_sound(m, TRUE); + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + return FALSE; +} + +static s32 act_hold_metal_water_jump_land(struct MarioState *m) { + play_metal_water_jumping_sound(m, TRUE); + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); + + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } + + return FALSE; +} + +static s32 act_metal_water_fall_land(struct MarioState *m) { + play_metal_water_jumping_sound(m, TRUE); + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + return FALSE; +} + +static s32 act_hold_metal_water_fall_land(struct MarioState *m) { + play_metal_water_jumping_sound(m, TRUE); + + if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { + return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); + } + + if (!(m->flags & MARIO_METAL_CAP)) { + return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); + } + + if (m->input & INPUT_NONZERO_ANALOG) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); + } + + stop_and_set_height_to_floor(m); + set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); + + if (is_anim_at_end(m)) { + return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); + } + + return FALSE; +} + +static s32 check_common_submerged_cancels(struct MarioState *m) { + if (m->pos[1] > m->waterLevel - 80) { + if (m->waterLevel - 80 > m->floorHeight) { + m->pos[1] = m->waterLevel - 80; + } else { + //! If you press B to throw the shell, there is a ~5 frame window + // where your held object is the shell, but you are not in the + // water shell swimming action. This allows you to hold the water + // shell on land (used for cloning in DDD). + if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { + m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; + m->heldObj = NULL; + stop_shell_music(); + } + + return transition_submerged_to_walking(m); + } + } + + if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { + set_mario_action(m, ACT_DROWNING, 0); + } + + return FALSE; +} + +s32 mario_execute_submerged_action(struct MarioState *m) { + s32 cancel; + + if (check_common_submerged_cancels(m)) { + return TRUE; + } + + m->quicksandDepth = 0.0f; + + m->marioBodyState->headAngle[1] = 0; + m->marioBodyState->headAngle[2] = 0; + + /* clang-format off */ + switch (m->action) { + case ACT_WATER_IDLE: cancel = act_water_idle(m); break; + case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; + case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; + case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; + case ACT_DROWNING: cancel = act_drowning(m); break; + case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; + case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; + case ACT_WATER_DEATH: cancel = act_water_death(m); break; + case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; + case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; + case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; + case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; + case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; + case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; + case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; + case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; + case ACT_WATER_THROW: cancel = act_water_throw(m); break; + case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; + case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; + case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; + case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; + case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; + case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; + case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; + case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; + case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; + case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; + case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; + case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; + case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; + case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; + case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; + } + /* clang-format on */ + + return cancel; +} diff --git a/src/game/mario_actions_submerged.c.rej b/src/game/mario_actions_submerged.c.rej new file mode 100644 index 00000000..171f9827 --- /dev/null +++ b/src/game/mario_actions_submerged.c.rej @@ -0,0 +1,2808 @@ +diff a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c (rejected hunks) +@@ -29,1545 +29,1582 @@ static s16 D_80339FD2; + static f32 D_80339FD4; + + static void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag) { +- s16 atSurface = m->pos[1] >= m->waterLevel - 130; ++ s16 atSurface = m->pos[1] >= m->waterLevel - 130; + +- if (atSurface) { +- m->particleFlags |= particleFlag; +- if (atSurface ^ sWasAtSurface) { +- play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); +- } +- } ++ if (atSurface) { ++ m->particleFlags |= particleFlag; ++ if (atSurface ^ sWasAtSurface) { ++ play_sound(SOUND_ACTION_UNKNOWN431, m->marioObj->header.gfx.cameraToObject); ++ } ++ } + +- sWasAtSurface = atSurface; ++ sWasAtSurface = atSurface; + } + + static s32 swimming_near_surface(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return FALSE; +- } + +- return (m->waterLevel - 80) - m->pos[1] < 400.0f; +-} ++ return FALSE; + +-static f32 get_buoyancy(struct MarioState *m) { +- f32 buoyancy = 0.0f; + +- if (m->flags & MARIO_METAL_CAP) { +- if (m->action & ACT_FLAG_INVULNERABLE) { +- buoyancy = -2.0f; +- } else { +- buoyancy = -18.0f; +- } +- } else if (swimming_near_surface(m)) { +- buoyancy = 1.25f; +- } else if (!(m->action & ACT_FLAG_MOVING)) { +- buoyancy = -2.0f; +- } ++ return (m->waterLevel - 80) - m->pos[1] < 400.0f; ++} + +- return buoyancy; ++static f32 get_buoyancy(struct MarioState *m) { ++ f32 buoyancy = 0.0f; ++ ++ if (m->flags & MARIO_METAL_CAP) { ++ if (m->action & ACT_FLAG_INVULNERABLE) { ++ buoyancy = -39.0f; ++ } ++ else { ++ buoyancy = -39.0f; ++ } ++ } ++ else if (swimming_near_surface(m)) { ++ buoyancy = -11.0f; ++ } ++ else if (!(m->action & ACT_FLAG_MOVING)) { ++ buoyancy = -11.0f; ++ } ++ ++ return buoyancy; + } + + static u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos) { +- struct Surface *wall; +- struct Surface *ceil; +- struct Surface *floor; +- f32 ceilHeight; +- f32 floorHeight; +- +- wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); +- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +- +- if (floor == NULL) { +- return WATER_STEP_CANCELLED; +- } +- +- if (nextPos[1] >= floorHeight) { +- if (ceilHeight - nextPos[1] >= 160.0f) { +- vec3f_copy(m->pos, nextPos); +- m->floor = floor; +- m->floorHeight = floorHeight; +- +- if (wall != NULL) { +- return WATER_STEP_HIT_WALL; +- } else { +- return WATER_STEP_NONE; +- } +- } +- +- if (ceilHeight - floorHeight < 160.0f) { +- return WATER_STEP_CANCELLED; +- } +- +- //! Water ceiling downwarp +- vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return WATER_STEP_HIT_CEILING; +- } else { +- if (ceilHeight - floorHeight < 160.0f) { +- return WATER_STEP_CANCELLED; +- } +- +- vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return WATER_STEP_HIT_FLOOR; +- } ++ struct Surface *wall; ++ struct Surface *ceil; ++ struct Surface *floor; ++ f32 ceilHeight; ++ f32 floorHeight; ++ ++ wall = resolve_and_return_wall_collisions(nextPos, 10.0f, 110.0f); ++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++ ++ if (floor == NULL) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ if (nextPos[1] >= floorHeight) { ++ if (ceilHeight - nextPos[1] >= 160.0f) { ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ ++ if (wall != NULL) { ++ return WATER_STEP_HIT_WALL; ++ } ++ else { ++ return WATER_STEP_NONE; ++ } ++ } ++ ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ //! Water ceiling downwarp ++ vec3f_set(m->pos, nextPos[0], ceilHeight - 160.0f, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_CEILING; ++ } ++ else { ++ if (ceilHeight - floorHeight < 160.0f) { ++ return WATER_STEP_CANCELLED; ++ } ++ ++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return WATER_STEP_HIT_FLOOR; ++ } + } + + static void apply_water_current(struct MarioState *m, Vec3f step) { +- s32 i; +- f32 whirlpoolRadius = 2000.0f; +- +- if (m->floor->type == SURFACE_FLOWING_WATER) { +- s16 currentAngle = m->floor->force << 8; +- f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; +- +- step[0] += currentSpeed * sins(currentAngle); +- step[2] += currentSpeed * coss(currentAngle); +- } +- +- for (i = 0; i < 2; i++) { +- struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; +- if (whirlpool != NULL) { +- f32 strength = 0.0f; +- +- f32 dx = whirlpool->pos[0] - m->pos[0]; +- f32 dy = whirlpool->pos[1] - m->pos[1]; +- f32 dz = whirlpool->pos[2] - m->pos[2]; +- +- f32 lateralDist = sqrtf(dx * dx + dz * dz); +- f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); +- +- s16 pitchToWhirlpool = atan2s(lateralDist, dy); +- s16 yawToWhirlpool = atan2s(dz, dx); +- +- yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); +- +- if (whirlpool->strength >= 0) { +- if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { +- whirlpoolRadius = 4000.0f; +- } +- +- if (distance >= 26.0f && distance < whirlpoolRadius) { +- strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); +- } +- } else if (distance < 2000.0f) { +- strength = whirlpool->strength * (1.0f - distance / 2000.0f); +- } +- +- step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); +- step[1] += strength * sins(pitchToWhirlpool); +- step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); +- } +- } ++ s32 i; ++ f32 whirlpoolRadius = 2000.0f; ++ ++ if (m->floor->type == SURFACE_FLOWING_WATER) { ++ s16 currentAngle = m->floor->force << 8; ++ f32 currentSpeed = sWaterCurrentSpeeds[m->floor->force >> 8]; ++ ++ step[0] += currentSpeed * sins(currentAngle); ++ step[2] += currentSpeed * coss(currentAngle); ++ } ++ ++ for (i = 0; i < 2; i++) { ++ struct Whirlpool *whirlpool = gCurrentArea->whirlpools[i]; ++ if (whirlpool != NULL) { ++ f32 strength = 0.0f; ++ ++ f32 dx = whirlpool->pos[0] - m->pos[0]; ++ f32 dy = whirlpool->pos[1] - m->pos[1]; ++ f32 dz = whirlpool->pos[2] - m->pos[2]; ++ ++ f32 lateralDist = sqrtf(dx * dx + dz * dz); ++ f32 distance = sqrtf(lateralDist * lateralDist + dy * dy); ++ ++ s16 pitchToWhirlpool = atan2s(lateralDist, dy); ++ s16 yawToWhirlpool = atan2s(dz, dx); ++ ++ yawToWhirlpool -= (s16)(0x2000 * 1000.0f / (distance + 1000.0f)); ++ ++ if (whirlpool->strength >= 0) { ++ if (gCurrLevelNum == LEVEL_DDD && gCurrAreaIndex == 2) { ++ whirlpoolRadius = 4000.0f; ++ } ++ ++ if (distance >= 26.0f && distance < whirlpoolRadius) { ++ strength = whirlpool->strength * (1.0f - distance / whirlpoolRadius); ++ } ++ } ++ else if (distance < 2000.0f) { ++ strength = whirlpool->strength * (1.0f - distance / 2000.0f); ++ } ++ ++ step[0] += strength * coss(pitchToWhirlpool) * sins(yawToWhirlpool); ++ step[1] += strength * sins(pitchToWhirlpool); ++ step[2] += strength * coss(pitchToWhirlpool) * coss(yawToWhirlpool); ++ } ++ } + } + + static u32 perform_water_step(struct MarioState *m) { +- UNUSED u32 unused; +- u32 stepResult; +- Vec3f nextPos; +- Vec3f step; +- struct Object *marioObj = m->marioObj; ++ UNUSED u32 unused; ++ u32 stepResult; ++ Vec3f nextPos; ++ Vec3f step; ++ struct Object *marioObj = m->marioObj; + +- vec3f_copy(step, m->vel); ++ vec3f_copy(step, m->vel); + +- if (m->action & ACT_FLAG_SWIMMING) { +- apply_water_current(m, step); +- } ++ if (m->action & ACT_FLAG_SWIMMING) { ++ apply_water_current(m, step); ++ } + +- nextPos[0] = m->pos[0] + step[0]; +- nextPos[1] = m->pos[1] + step[1]; +- nextPos[2] = m->pos[2] + step[2]; ++ nextPos[0] = m->pos[0] + step[0]; ++ nextPos[1] = m->pos[1] + step[1]; ++ nextPos[2] = m->pos[2] + step[2]; + +- if (nextPos[1] > m->waterLevel - 80) { +- nextPos[1] = m->waterLevel - 80; +- m->vel[1] = 0.0f; +- } ++ if (nextPos[1] > m->waterLevel - 80) { ++ nextPos[1] = m->waterLevel - 80; ++ m->vel[1] = 0.0f; ++ } + +- stepResult = perform_water_full_step(m, nextPos); ++ stepResult = perform_water_full_step(m, nextPos); + +- vec3f_copy(marioObj->header.gfx.pos, m->pos); +- vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); ++ vec3f_copy(marioObj->header.gfx.pos, m->pos); ++ vec3s_set(marioObj->header.gfx.angle, -m->faceAngle[0], m->faceAngle[1], m->faceAngle[2]); + +- return stepResult; ++ return stepResult; + } + + static BAD_RETURN(u32) update_water_pitch(struct MarioState *m) { +- struct Object *marioObj = m->marioObj; ++ struct Object *marioObj = m->marioObj; + +- if (marioObj->header.gfx.angle[0] > 0) { +- marioObj->header.gfx.pos[1] += +- 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); +- } ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.pos[1] += ++ 60.0f * sins(marioObj->header.gfx.angle[0]) * sins(marioObj->header.gfx.angle[0]); ++ } + +- if (marioObj->header.gfx.angle[0] < 0) { +- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; +- } ++ if (marioObj->header.gfx.angle[0] < 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 6 / 10; ++ } + +- if (marioObj->header.gfx.angle[0] > 0) { +- marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; +- } ++ if (marioObj->header.gfx.angle[0] > 0) { ++ marioObj->header.gfx.angle[0] = marioObj->header.gfx.angle[0] * 10 / 8; ++ } + } + + static void stationary_slow_down(struct MarioState *m) { +- f32 buoyancy = get_buoyancy(m); ++ f32 buoyancy = get_buoyancy(m); + +- m->angleVel[0] = 0; +- m->angleVel[1] = 0; ++ m->angleVel[0] = 0; ++ m->angleVel[1] = 0; + +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); +- m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 1.0f, 1.0f); ++ m->vel[1] = approach_f32(m->vel[1], buoyancy, 2.0f, 1.0f); + +- m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); +- m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); ++ m->faceAngle[0] = approach_s32(m->faceAngle[0], 0, 0x200, 0x200); ++ m->faceAngle[2] = approach_s32(m->faceAngle[2], 0, 0x100, 0x100); + +- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + } + + static void update_swimming_speed(struct MarioState *m, f32 decelThreshold) { +- f32 buoyancy = get_buoyancy(m); +- f32 maxSpeed = 28.0f; ++ f32 buoyancy = get_buoyancy(m); ++ f32 maxSpeed = 28.0f; + +- if (m->action & ACT_FLAG_STATIONARY) { +- m->forwardVel -= 2.0f; +- } ++ if (m->action & ACT_FLAG_STATIONARY) { ++ m->forwardVel -= 2.0f; ++ } + +- if (m->forwardVel < 0.0f) { +- m->forwardVel = 0.0f; +- } ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel = 0.0f; ++ } + +- if (m->forwardVel > maxSpeed) { +- m->forwardVel = maxSpeed; +- } ++ if (m->forwardVel > maxSpeed) { ++ m->forwardVel = maxSpeed; ++ } + +- if (m->forwardVel > decelThreshold) { +- m->forwardVel -= 0.5f; +- } ++ if (m->forwardVel > decelThreshold) { ++ m->forwardVel -= 0.5f; ++ } + +- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +- m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; +- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]) + buoyancy; ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + } + + static void update_swimming_yaw(struct MarioState *m) { +- s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); +- +- if (targetYawVel > 0) { +- if (m->angleVel[1] < 0) { +- m->angleVel[1] += 0x40; +- if (m->angleVel[1] > 0x10) { +- m->angleVel[1] = 0x10; +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); +- } +- } else if (targetYawVel < 0) { +- if (m->angleVel[1] > 0) { +- m->angleVel[1] -= 0x40; +- if (m->angleVel[1] < -0x10) { +- m->angleVel[1] = -0x10; +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); +- } +- } else { +- m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); +- } +- +- m->faceAngle[1] += m->angleVel[1]; +- m->faceAngle[2] = -m->angleVel[1] * 8; ++ s16 targetYawVel = -(s16)(10.0f * m->controller->stickX); ++ ++ if (targetYawVel > 0) { ++ if (m->angleVel[1] < 0) { ++ m->angleVel[1] += 0x40; ++ if (m->angleVel[1] > 0x10) { ++ m->angleVel[1] = 0x10; ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x10, 0x20); ++ } ++ } ++ else if (targetYawVel < 0) { ++ if (m->angleVel[1] > 0) { ++ m->angleVel[1] -= 0x40; ++ if (m->angleVel[1] < -0x10) { ++ m->angleVel[1] = -0x10; ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], targetYawVel, 0x20, 0x10); ++ } ++ } ++ else { ++ m->angleVel[1] = approach_s32(m->angleVel[1], 0, 0x40, 0x40); ++ } ++ ++ m->faceAngle[1] += m->angleVel[1]; ++ m->faceAngle[2] = -m->angleVel[1] * 8; + } + + static void update_swimming_pitch(struct MarioState *m) { +- s16 targetPitch = -(s16)(252.0f * m->controller->stickY); +- +- s16 pitchVel; +- if (m->faceAngle[0] < 0) { +- pitchVel = 0x100; +- } else { +- pitchVel = 0x200; +- } +- +- if (m->faceAngle[0] < targetPitch) { +- if ((m->faceAngle[0] += pitchVel) > targetPitch) { +- m->faceAngle[0] = targetPitch; +- } +- } else if (m->faceAngle[0] > targetPitch) { +- if ((m->faceAngle[0] -= pitchVel) < targetPitch) { +- m->faceAngle[0] = targetPitch; +- } +- } ++ s16 targetPitch = -(s16)(252.0f * m->controller->stickY); ++ ++ s16 pitchVel; ++ if (m->faceAngle[0] < 0) { ++ pitchVel = 0x100; ++ } ++ else { ++ pitchVel = 0x200; ++ } ++ ++ if (m->faceAngle[0] < targetPitch) { ++ if ((m->faceAngle[0] += pitchVel) > targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } ++ else if (m->faceAngle[0] > targetPitch) { ++ if ((m->faceAngle[0] -= pitchVel) < targetPitch) { ++ m->faceAngle[0] = targetPitch; ++ } ++ } + } + + static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { +- s16 *val = &m->marioBodyState->headAngle[0]; +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); +- +- if (m->faceAngle[0] > 0) { +- *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); +- } else { +- *val = approach_s32(*val, 0, 0x200, 0x200); +- } +- +- if (arg == 0) { +- set_mario_animation(m, animation); +- } else { +- set_mario_anim_with_accel(m, animation, arg); +- } +- +- set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); ++ s16 *val = &m->marioBodyState->headAngle[0]; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ if (m->faceAngle[0] > 0) { ++ *val = approach_s32(*val, m->faceAngle[0] / 2, 0x80, 0x200); ++ } ++ else { ++ *val = approach_s32(*val, 0, 0x200, 0x200); ++ } ++ ++ if (arg == 0) { ++ set_mario_animation(m, animation); ++ } ++ else { ++ set_mario_anim_with_accel(m, animation, arg); ++ } ++ ++ set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); + } + + static s32 act_water_idle(struct MarioState *m) { +- u32 val = 0x10000; ++ u32 val = 0x10000; ++ + +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } ++ if (gCurrLevelNum == LEVEL_SA) { ++ ++ m->drownTimer = -700; ++ } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 1); + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_BREASTSTROKE, 0); +- } + +- if (m->faceAngle[0] < -0x1000) { +- val = 0x30000; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); +- return FALSE; ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ if (m->faceAngle[0] < -0x1000) { ++ val = 0x30000; ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); ++ return FALSE; + } + + static s32 act_hold_water_idle(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); +- return FALSE; ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); ++ return FALSE; + } + + static s32 act_water_action_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_BREASTSTROKE, 0); +- } +- +- common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- return FALSE; ++ ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ return FALSE; + } + + static s32 act_hold_water_action_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } +- +- common_idle_step( +- m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, +- 0); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } +- return FALSE; ++ ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } ++ ++ common_idle_step( ++ m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, ++ 0); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); ++ } ++ return FALSE; + } + + static void reset_float_globals(struct MarioState *m) { +- D_80339FD0 = 0; +- D_80339FD2 = 0x800; +- D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; ++ D_80339FD0 = 0; ++ D_80339FD2 = 0x800; ++ D_80339FD4 = m->faceAngle[0] / 256.0f + 20.0f; + } + + static void float_surface_gfx(struct MarioState *m) { +- if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { +- if ((D_80339FD0 += D_80339FD2) >= 0) { +- m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); +- return; +- } +- } +- +- D_80339FD2 = 0; ++ if (D_80339FD2 != 0 && m->pos[1] > m->waterLevel - 85 && m->faceAngle[0] >= 0) { ++ if ((D_80339FD0 += D_80339FD2) >= 0) { ++ m->marioObj->header.gfx.pos[1] += D_80339FD4 * sins(D_80339FD0); ++ return; ++ } ++ } ++ ++ D_80339FD2 = 0; + } + + static void common_swimming_step(struct MarioState *m, s16 swimStrength) { +- s16 floorPitch; +- UNUSED struct Object *marioObj = m->marioObj; +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, swimStrength / 10.0f); +- +- switch (perform_water_step(m)) { +- case WATER_STEP_HIT_FLOOR: +- floorPitch = -find_floor_slope(m, -0x8000); +- if (m->faceAngle[0] < floorPitch) { +- m->faceAngle[0] = floorPitch; +- } +- break; +- +- case WATER_STEP_HIT_CEILING: +- if (m->faceAngle[0] > -0x3000) { +- m->faceAngle[0] -= 0x100; +- } +- break; +- +- case WATER_STEP_HIT_WALL: +- if (m->controller->stickY == 0.0f) { +- if (m->faceAngle[0] > 0.0f) { +- m->faceAngle[0] += 0x200; +- if (m->faceAngle[0] > 0x3F00) { +- m->faceAngle[0] = 0x3F00; +- } +- } else { +- m->faceAngle[0] -= 0x200; +- if (m->faceAngle[0] < -0x3F00) { +- m->faceAngle[0] = -0x3F00; +- } +- } +- } +- break; +- } +- +- update_water_pitch(m); +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +- +- float_surface_gfx(m); +- set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); ++ s16 floorPitch; ++ UNUSED struct Object *marioObj = m->marioObj; ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, swimStrength / 10.0f); ++ ++ switch (perform_water_step(m)) { ++ case WATER_STEP_HIT_FLOOR: ++ floorPitch = -find_floor_slope(m, -0x8000); ++ if (m->faceAngle[0] < floorPitch) { ++ m->faceAngle[0] = floorPitch; ++ } ++ break; ++ ++ case WATER_STEP_HIT_CEILING: ++ if (m->faceAngle[0] > -0x3000) { ++ m->faceAngle[0] -= 0x100; ++ } ++ break; ++ ++ case WATER_STEP_HIT_WALL: ++ if (m->controller->stickY == 0.0f) { ++ if (m->faceAngle[0] > 0.0f) { ++ m->faceAngle[0] += 0x200; ++ if (m->faceAngle[0] > 0x3F00) { ++ m->faceAngle[0] = 0x3F00; ++ } ++ } ++ else { ++ m->faceAngle[0] -= 0x200; ++ if (m->faceAngle[0] < -0x3F00) { ++ m->faceAngle[0] = -0x3F00; ++ } ++ } ++ } ++ break; ++ } ++ ++ update_water_pitch(m); ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ float_surface_gfx(m); ++ set_swimming_at_surface_particles(m, PARTICLE_WAVE_TRAIL); + } + + static void play_swimming_noise(struct MarioState *m) { + s16 animFrame = m->marioObj->header.gfx.animInfo.animFrame; + +- // This must be one line to match on -O2 +- if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); ++ // (this need to be on one line to match on PAL) ++ if (animFrame == 0 || animFrame == 12) play_sound(SOUND_ACTION_UNKNOWN434, m->marioObj->header.gfx.cameraToObject); + } + + static s32 check_water_jump(struct MarioState *m) { +- s32 probe = (s32)(m->pos[1] + 1.5f); ++ ++ s32 probe = (s32)(m->pos[1] + 1.5f); + +- if (m->input & INPUT_A_PRESSED) { +- if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { +- vec3s_set(m->angleVel, 0, 0, 0); ++ if (m->input & INPUT_A_PRESSED) { ++ if (probe >= m->waterLevel - 80 && m->faceAngle[0] >= 0 && m->controller->stickY < -60.0f) { ++ vec3s_set(m->angleVel, 0, 0, 0); + +- m->vel[1] = 62.0f; ++ m->vel[1] = 65.0f; + +- if (m->heldObj == NULL) { +- return set_mario_action(m, ACT_WATER_JUMP, 0); +- } else { +- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); +- } +- } +- } ++ if (m->heldObj == NULL) { ++ return set_mario_action(m, ACT_WATER_JUMP, 0); ++ } ++ else { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 0); ++ } ++ } ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_breaststroke(struct MarioState *m) { +- if (m->actionArg == 0) { +- sSwimStrength = MIN_SWIM_STRENGTH; +- } ++ if (m->actionArg == 0) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } + +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); + +- if (++m->actionTimer == 14) { +- return set_mario_action(m, ACT_FLUTTER_KICK, 0); +- } + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- if (m->actionTimer < 6) { +- m->forwardVel += 0.5f; +- } ++ if (++m->actionTimer == 14) { ++ return set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } + +- if (m->actionTimer >= 9) { +- m->forwardVel += 1.5f; +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer >= 2) { +- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +- m->actionState = 1; +- } ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } + +- if (m->actionTimer == 9 && m->actionState == 1) { +- set_anim_to_frame(m, 0); +- m->actionState = 0; +- m->actionTimer = 1; +- sSwimStrength = MIN_SWIM_STRENGTH; +- } +- } ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } + +- if (m->actionTimer == 1) { +- play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, +- m->marioObj->header.gfx.cameraToObject); +- reset_float_globals(m); +- } ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } + +-#ifdef VERSION_SH +- if (m->actionTimer < 6) { +- func_sh_8024CA04(); +- } +-#endif ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } ++ } + +- set_mario_animation(m, MARIO_ANIM_SWIM_PART1); +- common_swimming_step(m, sSwimStrength); ++ if (m->actionTimer == 1) { ++ play_sound(sSwimStrength == MIN_SWIM_STRENGTH ? SOUND_ACTION_SWIM : SOUND_ACTION_SWIM_FAST, ++ m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } + +- return FALSE; ++ if (m->actionTimer < 6) { ++ //func_sh_8024CA04(); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART1); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; + } + + static s32 act_swimming_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ + +- if (m->actionTimer >= 15) { +- return set_mario_action(m, ACT_WATER_ACTION_END, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } + +- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +- if (m->actionTimer == 7 && sSwimStrength < 280) { +- sSwimStrength += 10; +- } +- return set_mario_action(m, ACT_BREASTSTROKE, 1); +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer >= 7) { +- sSwimStrength = MIN_SWIM_STRENGTH; +- } ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ if (m->actionTimer == 7 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_BREASTSTROKE, 1); ++ } + +- m->actionTimer++; ++ if (m->actionTimer >= 7) { ++ sSwimStrength = MIN_SWIM_STRENGTH; ++ } + +- m->forwardVel -= 0.25f; +- set_mario_animation(m, MARIO_ANIM_SWIM_PART2); +- common_swimming_step(m, sSwimStrength); ++ m->actionTimer++; + +- return FALSE; ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_PART2); ++ common_swimming_step(m, sSwimStrength); ++ ++ return FALSE; + } + + static s32 act_flutter_kick(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_PUNCH, 0); +- } ++ return set_mario_action(m, ACT_METAL_WATER_FALLING, 1); ++ + +- if (!(m->input & INPUT_A_DOWN)) { +- if (m->actionTimer == 0 && sSwimStrength < 280) { +- sSwimStrength += 10; +- } +- return set_mario_action(m, ACT_SWIMMING_END, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_PUNCH, 0); ++ } + +- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +- m->actionTimer = 1; +- sSwimStrength = MIN_SWIM_STRENGTH; ++ if (!(m->input & INPUT_A_DOWN)) { ++ if (m->actionTimer == 0 && sSwimStrength < 280) { ++ sSwimStrength += 10; ++ } ++ return set_mario_action(m, ACT_SWIMMING_END, 0); ++ } + +- if (m->forwardVel < 14.0f) { +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +- } ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ m->actionTimer = 1; ++ sSwimStrength = MIN_SWIM_STRENGTH; + +- common_swimming_step(m, sSwimStrength); +- return FALSE; ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ } ++ ++ common_swimming_step(m, sSwimStrength); ++ return FALSE; + } + + static s32 act_hold_breaststroke(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } ++ ++ if (++m->actionTimer == 17) { ++ return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ } ++ ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } ++ ++ if (check_water_jump(m)) { ++ return TRUE; ++ } ++ ++ if (m->actionTimer < 6) { ++ m->forwardVel += 0.5f; ++ } ++ ++ if (m->actionTimer >= 9) { ++ m->forwardVel += 1.5f; ++ } ++ ++ if (m->actionTimer >= 2) { ++ if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { ++ m->actionState = 1; ++ } ++ ++ if (m->actionTimer == 9 && m->actionState == 1) { ++ set_anim_to_frame(m, 0); ++ m->actionState = 0; ++ m->actionTimer = 1; ++ } ++ } ++ ++ if (m->actionTimer == 1) { ++ play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); ++ reset_float_globals(m); ++ } ++ ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; ++} + +- if (++m->actionTimer == 17) { +- return set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +- } ++static s32 act_hold_swimming_end(struct MarioState *m) { + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->actionTimer < 6) { +- m->forwardVel += 0.5f; +- } ++ if (m->actionTimer >= 15) { ++ return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ } + +- if (m->actionTimer >= 9) { +- m->forwardVel += 1.5f; +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- if (m->actionTimer >= 2) { +- if (m->actionTimer < 6 && (m->input & INPUT_A_PRESSED)) { +- m->actionState = 1; +- } ++ if (check_water_jump(m)) { ++ return TRUE; ++ } + +- if (m->actionTimer == 9 && m->actionState == 1) { +- set_anim_to_frame(m, 0); +- m->actionState = 0; +- m->actionTimer = 1; +- } +- } ++ if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { ++ return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); ++ } + +- if (m->actionTimer == 1) { +- play_sound(SOUND_ACTION_SWIM, m->marioObj->header.gfx.cameraToObject); +- reset_float_globals(m); +- } ++ m->actionTimer++; + +- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); +- common_swimming_step(m, 0x00A0); +- return FALSE; ++ m->forwardVel -= 0.25f; ++ set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); ++ common_swimming_step(m, 0x00A0); ++ return FALSE; + } + +-static s32 act_hold_swimming_end(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->actionTimer >= 15) { +- return set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++static s32 act_hold_flutter_kick(struct MarioState *m) { + +- if (check_water_jump(m)) { +- return TRUE; +- } ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ + +- if ((m->input & INPUT_A_DOWN) && m->actionTimer >= 7) { +- return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- m->actionTimer++; ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- m->forwardVel -= 0.25f; +- set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); +- common_swimming_step(m, 0x00A0); +- return FALSE; +-} ++ if (!(m->input & INPUT_A_DOWN)) { ++ return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); ++ } + +-static s32 act_hold_flutter_kick(struct MarioState *m) { +- if (m->flags & MARIO_METAL_CAP) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- } +- +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } +- +- if (!(m->input & INPUT_A_DOWN)) { +- return set_mario_action(m, ACT_HOLD_SWIMMING_END, 0); +- } +- +- m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); +- if (m->forwardVel < 14.0f) { +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- } +- common_swimming_step(m, 0x00A0); +- return FALSE; ++ m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); ++ if (m->forwardVel < 14.0f) { ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ } ++ common_swimming_step(m, 0x00A0); ++ return FALSE; + } + + static s32 act_water_shell_swimming(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- if (m->input & INPUT_B_PRESSED) { +- return set_mario_action(m, ACT_WATER_THROW, 0); +- } ++ if (m->input & INPUT_B_PRESSED) { ++ return set_mario_action(m, ACT_WATER_THROW, 0); ++ } + +- if (m->actionTimer++ == 240) { +- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +- m->heldObj = NULL; +- stop_shell_music(); +- set_mario_action(m, ACT_FLUTTER_KICK, 0); +- } ++ if (m->actionTimer++ == 240) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ } + +- m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); ++ m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); + +- play_swimming_noise(m); +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- common_swimming_step(m, 0x012C); ++ play_swimming_noise(m); ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ common_swimming_step(m, 0x012C); + +- return FALSE; ++ return FALSE; + } + + static s32 check_water_grab(struct MarioState *m) { +- //! Heave hos have the grabbable interaction type but are not normally +- // grabbable. Since water grabbing doesn't check the appropriate input flag, +- // you can use water grab to pick up heave ho. +- if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { +- struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); +- f32 dx = object->oPosX - m->pos[0]; +- f32 dz = object->oPosZ - m->pos[2]; +- s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; +- +- if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { +- m->usedObj = object; +- mario_grab_used_object(m); +- m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; +- return TRUE; +- } +- } +- +- return FALSE; ++ //! Heave hos have the grabbable interaction type but are not normally ++ // grabbable. Since water grabbing doesn't check the appropriate input flag, ++ // you can use water grab to pick up heave ho. ++ if (m->marioObj->collidedObjInteractTypes & INTERACT_GRABBABLE) { ++ struct Object *object = mario_get_collided_object(m, INTERACT_GRABBABLE); ++ f32 dx = object->oPosX - m->pos[0]; ++ f32 dz = object->oPosZ - m->pos[2]; ++ s16 dAngleToObject = atan2s(dz, dx) - m->faceAngle[1]; ++ ++ if (dAngleToObject >= -0x2AAA && dAngleToObject <= 0x2AAA) { ++ m->usedObj = object; ++ mario_grab_used_object(m); ++ m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; ++ return TRUE; ++ } ++ } ++ ++ return FALSE; + } + + static s32 act_water_throw(struct MarioState *m) { +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); + +- set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); +- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); + +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); + +- if (m->actionTimer++ == 5) { +- mario_throw_held_object(m); +-#ifdef VERSION_SH +- queue_rumble_data(3, 50); +-#endif +- } ++ if (m->actionTimer++ == 5) { ++ mario_throw_held_object(m); ++ //(3, 50); ++ } + +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_IDLE, 0); +- } ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_IDLE, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_water_punch(struct MarioState *m) { +- if (m->forwardVel < 7.0f) { +- m->forwardVel += 1.0f; +- } +- +- update_swimming_yaw(m); +- update_swimming_pitch(m); +- update_swimming_speed(m, MIN_SWIM_SPEED); +- perform_water_step(m); +- update_water_pitch(m); +- +- m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); +- +- play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); +- +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); +- if (is_anim_at_end(m)) { +- m->actionState = check_water_grab(m) + 1; +- } +- break; +- +- case 1: +- set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); +- if (is_anim_at_end(m)) { +- set_mario_action(m, ACT_WATER_ACTION_END, 0); +- } +- break; +- +- case 2: +- set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); +- if (is_anim_at_end(m)) { +- if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { +- play_shell_music(); +- set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); +- } else { +- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); +- } +- } +- break; +- } +- +- return FALSE; ++ if (m->forwardVel < 7.0f) { ++ m->forwardVel += 1.0f; ++ } ++ ++ update_swimming_yaw(m); ++ update_swimming_pitch(m); ++ update_swimming_speed(m, MIN_SWIM_SPEED); ++ perform_water_step(m); ++ update_water_pitch(m); ++ ++ m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); ++ ++ play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); ++ if (is_anim_at_end(m)) { ++ m->actionState = check_water_grab(m) + 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); ++ if (is_anim_at_end(m)) { ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ } ++ break; ++ ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); ++ if (is_anim_at_end(m)) { ++ if (m->heldObj->behavior == segmented_to_virtual(bhvKoopaShellUnderwater)) { ++ play_shell_music(); ++ set_mario_action(m, ACT_WATER_SHELL_SWIMMING, 0); ++ } ++ else { ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 1); ++ } ++ } ++ break; ++ } ++ ++ return FALSE; + } + + static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 endAction, s32 arg3) { +- stationary_slow_down(m); +- perform_water_step(m); +- set_mario_animation(m, animation); ++ stationary_slow_down(m); ++ perform_water_step(m); ++ set_mario_animation(m, animation); + +- m->marioBodyState->headAngle[0] = 0; ++ m->marioBodyState->headAngle[0] = 0; + +- if (is_anim_at_end(m)) { +- if (arg3 > 0) { +- m->invincTimer = 30; +- } ++ if (is_anim_at_end(m)) { ++ if (arg3 > 0) { ++ m->invincTimer = 30; ++ } + +- set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); +- } ++ set_mario_action(m, m->health >= 0x100 ? endAction : ACT_WATER_DEATH, 0); ++ } + } + + static s32 act_backward_water_kb(struct MarioState *m) { +- common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); +- return FALSE; ++ common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; + } + + static s32 act_forward_water_kb(struct MarioState *m) { +- common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); +- return FALSE; ++ common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); ++ return FALSE; + } + + static s32 act_water_shocked(struct MarioState *m) { +- play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); +- play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); +- set_camera_shake_from_hit(SHAKE_SHOCK); +- +- if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { +- m->actionTimer++; +- m->flags |= MARIO_METAL_SHOCK; +- } +- +- if (m->actionTimer >= 6) { +- m->invincTimer = 30; +- set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); +- } +- +- stationary_slow_down(m); +- perform_water_step(m); +- m->marioBodyState->headAngle[0] = 0; +- return FALSE; ++ play_sound_if_no_flag(m, SOUND_MARIO_WAAAOOOW, MARIO_ACTION_SOUND_PLAYED); ++ play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); ++ set_camera_shake_from_hit(SHAKE_SHOCK); ++ ++ if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { ++ m->actionTimer++; ++ m->flags |= MARIO_METAL_SHOCK; ++ } ++ ++ if (m->actionTimer >= 6) { ++ m->invincTimer = 30; ++ set_mario_action(m, m->health < 0x100 ? ACT_WATER_DEATH : ACT_WATER_IDLE, 0); ++ } ++ ++ stationary_slow_down(m); ++ perform_water_step(m); ++ m->marioBodyState->headAngle[0] = 0; ++ return FALSE; + } + + static s32 act_drowning(struct MarioState *m) { +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); +- m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; +- if (is_anim_at_end(m)) { +- m->actionState = 1; +- } +- break; +- +- case 1: +- set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; +- if (m->marioObj->header.gfx.animInfo.animFrame == 30) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } +- break; +- } +- +- play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); +- stationary_slow_down(m); +- perform_water_step(m); +- +- return FALSE; ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); ++ m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; ++ if (is_anim_at_end(m)) { ++ m->actionState = 1; ++ } ++ break; ++ ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ if (m->marioObj->header.gfx.animInfo.animFrame == 30) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ break; ++ } ++ ++ play_sound_if_no_flag(m, SOUND_MARIO_DROWNING, MARIO_ACTION_SOUND_PLAYED); ++ stationary_slow_down(m); ++ perform_water_step(m); ++ ++ return FALSE; + } + + static s32 act_water_death(struct MarioState *m) { +- stationary_slow_down(m); +- perform_water_step(m); ++ stationary_slow_down(m); ++ perform_water_step(m); + +- m->marioBodyState->eyeState = MARIO_EYES_DEAD; ++ m->marioBodyState->eyeState = MARIO_EYES_DEAD; + +- set_mario_animation(m, MARIO_ANIM_WATER_DYING); +- if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } ++ set_mario_animation(m, MARIO_ANIM_WATER_DYING); ++ if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_water_plunge(struct MarioState *m) { +- u32 stepResult; +- s32 stateFlags = m->heldObj != NULL; +- +- f32 endVSpeed; +- if (swimming_near_surface(m)) { +- endVSpeed = 0.0f; +- } else { +- endVSpeed = -5.0f; +- } +- +- if (m->flags & MARIO_METAL_CAP) { +- stateFlags |= 4; +- } else if ((m->prevAction & ACT_FLAG_DIVING) || (m->input & INPUT_A_DOWN)) { +- stateFlags |= 2; +- } +- +- m->actionTimer++; +- +- stationary_slow_down(m); +- +- stepResult = perform_water_step(m); +- +- if (m->actionState == 0) { +- play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); +- if (m->peakHeight - m->pos[1] > 1150.0f) { +- play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); +- } +- +- m->particleFlags |= PARTICLE_WATER_SPLASH; +- m->actionState = 1; +-#ifdef VERSION_SH +- if (m->prevAction & ACT_FLAG_AIR) { +- queue_rumble_data(5, 80); +- } +-#endif +- } +- +- if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { +- switch (stateFlags) { +- case 0: +- set_mario_action(m, ACT_WATER_ACTION_END, 0); +- break; +- case 1: +- set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); +- break; +- case 2: +- set_mario_action(m, ACT_FLUTTER_KICK, 0); +- break; +- case 3: +- set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); +- break; +- case 4: +- set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- break; +- case 5: +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); +- break; +- } +- D_80339FD2 = 0; +- } +- +- switch (stateFlags) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); +- break; +- case 1: +- set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); +- break; +- case 2: +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); +- break; +- case 3: +- set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); +- break; +- case 4: +- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +- break; +- case 5: +- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +- break; +- } +- +- m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; +- return FALSE; ++ u32 stepResult; ++ s32 stateFlags = m->heldObj != NULL; ++ ++ f32 endVSpeed; ++ if (swimming_near_surface(m)) { ++ endVSpeed = 0.0f; ++ } ++ else { ++ endVSpeed = -5.0f; ++ } ++ ++ ++ stateFlags |= 4; ++ ++ m->actionTimer++; ++ ++ stationary_slow_down(m); ++ ++ stepResult = perform_water_step(m); ++ ++ if (m->actionState == 0) { ++ play_sound(SOUND_ACTION_UNKNOWN430, m->marioObj->header.gfx.cameraToObject); ++ if (m->peakHeight - m->pos[1] > 1150.0f) { ++ play_sound(SOUND_MARIO_HAHA_2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ m->particleFlags |= PARTICLE_WATER_SPLASH; ++ m->actionState = 1; ++ if (m->prevAction & ACT_FLAG_AIR) { ++ //(5, 80); ++ } ++ } ++ ++ if (stepResult == WATER_STEP_HIT_FLOOR || m->vel[1] >= endVSpeed || m->actionTimer > 20) { ++ switch (stateFlags) { ++ case 0: ++ set_mario_action(m, ACT_WATER_ACTION_END, 0); ++ break; ++ case 1: ++ set_mario_action(m, ACT_HOLD_WATER_ACTION_END, 0); ++ break; ++ case 2: ++ set_mario_action(m, ACT_FLUTTER_KICK, 0); ++ break; ++ case 3: ++ set_mario_action(m, ACT_HOLD_FLUTTER_KICK, 0); ++ break; ++ case 4: ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ m->vel[1] = -32.0f; ++ break; ++ case 5: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 0); ++ break; ++ } ++ D_80339FD2 = 0; ++ } ++ ++ switch (stateFlags) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); ++ break; ++ case 3: ++ set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); ++ break; ++ case 4: ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ break; ++ case 5: ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ break; ++ } ++ ++ m->particleFlags |= PARTICLE_PLUNGE_BUBBLE; ++ return FALSE; + } + + static s32 act_caught_in_whirlpool(struct MarioState *m) { +- f32 sinAngleChange; +- f32 cosAngleChange; +- f32 newDistance; +- s16 angleChange; +- +- struct Object *marioObj = m->marioObj; +- struct Object *whirlpool = m->usedObj; +- +- f32 dx = m->pos[0] - whirlpool->oPosX; +- f32 dz = m->pos[2] - whirlpool->oPosZ; +- f32 distance = sqrtf(dx * dx + dz * dz); +- +- if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { +- marioObj->oMarioWhirlpoolPosY = 0.0f; +- if (distance < 16.1f && m->actionTimer++ == 16) { +- level_trigger_warp(m, WARP_OP_DEATH); +- } +- } +- +- if (distance <= 28.0f) { +- newDistance = 16.0f; +- angleChange = 0x1800; +- } else if (distance < 256.0f) { +- newDistance = distance - (12.0f - distance / 32.0f); +- angleChange = (s16)(0x1C00 - distance * 20.0f); +- } else { +- newDistance = distance - 4.0f; +- angleChange = 0x800; +- } +- +- m->vel[1] = -640.0f / (newDistance + 16.0f); +- +- sinAngleChange = sins(angleChange); +- cosAngleChange = coss(angleChange); +- +- if (distance < 1.0f) { +- dx = newDistance * sins(m->faceAngle[1]); +- dz = newDistance * coss(m->faceAngle[1]); +- } else { +- dx *= newDistance / distance; +- dz *= newDistance / distance; +- } +- +- m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; +- m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; +- m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; +- +- m->faceAngle[1] = atan2s(dz, dx) + 0x8000; +- +- set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); +- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +-#ifdef VERSION_SH +- reset_rumble_timers(); +-#endif +- +- return FALSE; ++ f32 sinAngleChange; ++ f32 cosAngleChange; ++ f32 newDistance; ++ s16 angleChange; ++ ++ struct Object *marioObj = m->marioObj; ++ struct Object *whirlpool = m->usedObj; ++ ++ f32 dx = m->pos[0] - whirlpool->oPosX; ++ f32 dz = m->pos[2] - whirlpool->oPosZ; ++ f32 distance = sqrtf(dx * dx + dz * dz); ++ ++ if ((marioObj->oMarioWhirlpoolPosY += m->vel[1]) < 0.0f) { ++ marioObj->oMarioWhirlpoolPosY = 0.0f; ++ if (distance < 16.1f && m->actionTimer++ == 16) { ++ level_trigger_warp(m, WARP_OP_DEATH); ++ } ++ } ++ ++ if (distance <= 28.0f) { ++ newDistance = 16.0f; ++ angleChange = 0x1800; ++ } ++ else if (distance < 256.0f) { ++ newDistance = distance - (12.0f - distance / 32.0f); ++ angleChange = (s16)(0x1C00 - distance * 20.0f); ++ } ++ else { ++ newDistance = distance - 4.0f; ++ angleChange = 0x800; ++ } ++ ++ m->vel[1] = -640.0f / (newDistance + 16.0f); ++ ++ sinAngleChange = sins(angleChange); ++ cosAngleChange = coss(angleChange); ++ ++ if (distance < 1.0f) { ++ dx = newDistance * sins(m->faceAngle[1]); ++ dz = newDistance * coss(m->faceAngle[1]); ++ } ++ else { ++ dx *= newDistance / distance; ++ dz *= newDistance / distance; ++ } ++ ++ m->pos[0] = whirlpool->oPosX + dx * cosAngleChange + dz * sinAngleChange; ++ m->pos[2] = whirlpool->oPosZ - dx * sinAngleChange + dz * cosAngleChange; ++ m->pos[1] = whirlpool->oPosY + marioObj->oMarioWhirlpoolPosY; ++ ++ m->faceAngle[1] = atan2s(dz, dx) + 0x8000; ++ ++ set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ ++ //umble_timers(); ++ return FALSE; + } + + static void play_metal_water_jumping_sound(struct MarioState *m, u32 landing) { +- if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { +- m->particleFlags |= PARTICLE_MIST_CIRCLE; +- } +- +- play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, +- MARIO_ACTION_SOUND_PLAYED); ++ if (!(m->flags & MARIO_ACTION_SOUND_PLAYED)) { ++ m->particleFlags |= PARTICLE_MIST_CIRCLE; ++ } ++ if (m->flags & MARIO_METAL_CAP) { ++ ++ play_sound_if_no_flag(m, landing ? SOUND_ACTION_METAL_LAND_WATER : SOUND_ACTION_METAL_JUMP_WATER, ++ MARIO_ACTION_SOUND_PLAYED); ++ } ++ else { ++ play_sound_if_no_flag(m, landing ? SOUND_GENERAL_QUIET_BUBBLE : SOUND_ACTION_SWIM, ++ MARIO_ACTION_SOUND_PLAYED); ++ } + } + + static void play_metal_water_walking_sound(struct MarioState *m) { +- if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { +- play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); +- m->particleFlags |= PARTICLE_DUST; +- } ++ if (is_anim_past_frame(m, 10) || is_anim_past_frame(m, 49)) { ++ if (m->flags & MARIO_METAL_CAP) { ++ play_sound(SOUND_ACTION_METAL_STEP_WATER, m->marioObj->header.gfx.cameraToObject); ++ } ++ else { ++ play_sound(SOUND_GENERAL_QUIET_BUBBLE2, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ m->particleFlags |= PARTICLE_DUST; ++ } + } + + static void update_metal_water_walking_speed(struct MarioState *m) { +- f32 val = m->intendedMag / 1.5f; +- +- if (m->forwardVel <= 0.0f) { +- m->forwardVel += 1.1f; +- } else if (m->forwardVel <= val) { +- m->forwardVel += 1.1f - m->forwardVel / 43.0f; +- } else if (m->floor->normal.y >= 0.95f) { +- m->forwardVel -= 1.0f; +- } +- +- if (m->forwardVel > 32.0f) { +- m->forwardVel = 32.0f; +- } +- +- m->faceAngle[1] = +- m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); +- +- m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- +- m->vel[0] = m->slideVelX; +- m->vel[1] = 0.0f; +- m->vel[2] = m->slideVelZ; ++ f32 val = m->intendedMag / 1.0f; ++ ++ if (m->forwardVel <= 0.0f) { ++ m->forwardVel += 1.1f; ++ } ++ else if (m->forwardVel <= val) { ++ m->forwardVel += 1.1f - m->forwardVel / 43.0f; ++ } ++ else if (m->floor->normal.y >= 0.95f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel > 42.0f) { ++ m->forwardVel = 42.0f; ++ } ++ ++ m->faceAngle[1] = ++ m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800); ++ ++ m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ ++ m->vel[0] = m->slideVelX; ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ; + } + + static s32 update_metal_water_jump_speed(struct MarioState *m) { +- UNUSED f32 nextY = m->pos[1] + m->vel[1]; +- f32 waterSurface = m->waterLevel - 100; +- +- if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { +- return TRUE; +- } +- +- if (m->input & INPUT_NONZERO_ANALOG) { +- s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; +- m->forwardVel += 0.8f * coss(intendedDYaw); +- m->faceAngle[1] += 0x200 * sins(intendedDYaw); +- } else { +- m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); +- } +- +- if (m->forwardVel > 16.0f) { +- m->forwardVel -= 1.0f; +- } +- +- if (m->forwardVel < 0.0f) { +- m->forwardVel += 2.0f; +- } +- +- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); +- return FALSE; ++ UNUSED f32 nextY = m->pos[1] + m->vel[1]; ++ f32 waterSurface = m->waterLevel - 100; ++ ++ if (m->vel[1] > 0.0f && m->pos[1] > waterSurface) { ++ return TRUE; ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ s16 intendedDYaw = m->intendedYaw - m->faceAngle[1]; ++ m->forwardVel += 0.8f * coss(intendedDYaw); ++ m->faceAngle[1] += 0x200 * sins(intendedDYaw); ++ } ++ else { ++ m->forwardVel = approach_f32(m->forwardVel, 0.0f, 0.25f, 0.25f); ++ } ++ ++ if (m->forwardVel > 18.0f) { ++ m->forwardVel -= 1.0f; ++ } ++ ++ if (m->forwardVel < 0.0f) { ++ m->forwardVel += 2.0f; ++ } ++ ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ return FALSE; + } + + static s32 act_metal_water_standing(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +- } +- +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } +- +- switch (m->actionState) { +- case 0: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); +- break; +- case 1: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); +- break; +- case 2: +- set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); +- break; +- } +- +- if (is_anim_at_end(m) && ++m->actionState == 3) { +- m->actionState = 0; +- } +- +- stop_and_set_height_to_floor(m); +- if (m->pos[1] >= m->waterLevel - 150) { +- m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; +- } +- +- return FALSE; ++ ++ ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } ++ ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } ++ ++ switch (m->actionState) { ++ case 0: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); ++ break; ++ case 1: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); ++ break; ++ case 2: ++ set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); ++ break; ++ } ++ ++ if (is_anim_at_end(m) && ++m->actionState == 3) { ++ m->actionState = 0; ++ } ++ ++ stop_and_set_height_to_floor(m); ++ if (m->pos[1] >= m->waterLevel - 150) { ++ m->particleFlags |= PARTICLE_IDLE_WATER_WAVE; ++ } ++ ++ return FALSE; + } + + static s32 act_hold_metal_water_standing(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); +- return FALSE; ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } ++ ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); ++ return FALSE; + } + + static s32 act_metal_water_walking(struct MarioState *m) { +- s32 val04; ++ s32 val04; ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_FIRST_PERSON) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_FIRST_PERSON) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ } + +- if (m->input & INPUT_UNKNOWN_5) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { +- val04 = 0x1000; +- } ++ if ((val04 = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } + +- set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); +- play_metal_water_walking_sound(m); +- update_metal_water_walking_speed(m); ++ set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); + +- switch (perform_ground_step(m)) { +- case GROUND_STEP_LEFT_GROUND: +- set_mario_action(m, ACT_METAL_WATER_FALLING, 1); +- break; ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 1); ++ m->vel[1] = -60.0f; ++ break; + +- case GROUND_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_walking(struct MarioState *m) { +- s32 val04; ++ s32 val04; ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_A_PRESSED) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); +- } ++ if (m->input & INPUT_A_PRESSED) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP, 0); ++ } + +- if (m->input & INPUT_UNKNOWN_5) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ if (m->input & INPUT_UNKNOWN_5) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } + +- m->intendedMag *= 0.4f; ++ m->intendedMag *= 0.4f; + +- if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { +- val04 = 0x1000; +- } ++ if ((val04 = (s32)(m->forwardVel / 2.0f * 0x10000)) < 0x1000) { ++ val04 = 0x1000; ++ } + +- set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); +- play_metal_water_walking_sound(m); +- update_metal_water_walking_speed(m); ++ set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); ++ play_metal_water_walking_sound(m); ++ update_metal_water_walking_speed(m); + +- switch (perform_ground_step(m)) { +- case GROUND_STEP_LEFT_GROUND: +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); +- break; ++ switch (perform_ground_step(m)) { ++ case GROUND_STEP_LEFT_GROUND: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALLING, 1); ++ break; + +- case GROUND_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case GROUND_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_jump(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } +- +- if (update_metal_water_jump_speed(m)) { +- return set_mario_action(m, ACT_WATER_JUMP, 1); +- } +- +- play_metal_water_jumping_sound(m, FALSE); +- set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); +- +- switch (perform_air_step(m, 0)) { +- case AIR_STEP_LANDED: +- set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); +- break; +- +- case AIR_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } +- +- return FALSE; ++ m->actionTimer++; ++ ++ if (m->flags & MARIO_METAL_CAP) ++ { ++ if (m->vel[1] < 3.0f) ++ { ++ ++ m->vel[1] -= 10; ++ } ++ } ++ if (m->vel[1] < 1.0f) ++ { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x10000; ++ //set_camera_mode(m->area->camera, CAMERA_MODE_WATER_SURFACE, 1); ++ set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); ++ } ++ else ++ { ++ cur_obj_set_model(MODEL_SONIC_BALL); ++ } ++ ++ if (m->input & INPUT_A_PRESSED && m->actionTimer >= 1) { ++ m->marioObj->header.gfx.animInfo.animAccel = 0x20000; ++ //set_camera_mode(m->area->camera, CAMERA_MODE_FREE_ROAM, 1); ++ set_mario_action(m, ACT_METAL_WATER_JUMP, 0); ++ m->actionTimer = 0; ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ ++ ++ } ++ ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_WATER_JUMP, 1); ++ } ++ ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); ++ ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_METAL_WATER_JUMP_LAND, 0); ++ break; ++ ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } ++ ++ return FALSE; + } + + static s32 act_hold_metal_water_jump(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (update_metal_water_jump_speed(m)) { +- return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); +- } ++ if (update_metal_water_jump_speed(m)) { ++ return set_mario_action(m, ACT_HOLD_WATER_JUMP, 1); ++ } + +- play_metal_water_jumping_sound(m, FALSE); +- set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); ++ play_metal_water_jumping_sound(m, FALSE); ++ set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + +- switch (perform_air_step(m, 0)) { +- case AIR_STEP_LANDED: +- set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); +- break; ++ switch (perform_air_step(m, 0)) { ++ case AIR_STEP_LANDED: ++ set_mario_action(m, ACT_HOLD_METAL_WATER_JUMP_LAND, 0); ++ break; + +- case AIR_STEP_HIT_WALL: +- m->forwardVel = 0.0f; +- break; +- } ++ case AIR_STEP_HIT_WALL: ++ m->forwardVel = 0.0f; ++ break; ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_falling(struct MarioState *m) { +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } + +- set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); +- stationary_slow_down(m); ++ set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); ++ stationary_slow_down(m); + +- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +- set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); +- } ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_METAL_WATER_FALL_LAND, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_falling(struct MarioState *m) { +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_FALLING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); ++ } + +- set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); +- stationary_slow_down(m); ++ set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); ++ stationary_slow_down(m); + +- if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled +- set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); +- } ++ if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled ++ set_mario_action(m, ACT_HOLD_METAL_WATER_FALL_LAND, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_metal_water_jump_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_jump_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); + +- return FALSE; ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } ++ ++ return FALSE; + } + + static s32 act_metal_water_fall_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 act_hold_metal_water_fall_land(struct MarioState *m) { +- play_metal_water_jumping_sound(m, TRUE); ++ play_metal_water_jumping_sound(m, TRUE); ++ ++ if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { ++ return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); ++ } + +- if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { +- return drop_and_set_mario_action(m, ACT_METAL_WATER_STANDING, 0); +- } + +- if (!(m->flags & MARIO_METAL_CAP)) { +- return set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); +- } + +- if (m->input & INPUT_NONZERO_ANALOG) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); +- } ++ if (m->input & INPUT_NONZERO_ANALOG) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_WALKING, 0); ++ } + +- stop_and_set_height_to_floor(m); +- set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); ++ stop_and_set_height_to_floor(m); ++ set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); + +- if (is_anim_at_end(m)) { +- return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); +- } ++ if (is_anim_at_end(m)) { ++ return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); ++ } + +- return FALSE; ++ return FALSE; + } + + static s32 check_common_submerged_cancels(struct MarioState *m) { +- if (m->pos[1] > m->waterLevel - 80) { +- if (m->waterLevel - 80 > m->floorHeight) { +- m->pos[1] = m->waterLevel - 80; +- } else { +- //! If you press B to throw the shell, there is a ~5 frame window +- // where your held object is the shell, but you are not in the +- // water shell swimming action. This allows you to hold the water +- // shell on land (used for cloning in DDD). +- if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { +- m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; +- m->heldObj = NULL; +- stop_shell_music(); +- } +- +- return transition_submerged_to_walking(m); +- } +- } +- +- if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { +- set_mario_action(m, ACT_DROWNING, 0); +- } +- +- return FALSE; ++ if (m->pos[1] > m->waterLevel - 80) { ++ if (m->waterLevel - 80 > m->floorHeight) { ++ m->pos[1] = m->waterLevel - 80; ++ } ++ else { ++ //! If you press B to throw the shell, there is a ~5 frame window ++ // where your held object is the shell, but you are not in the ++ // water shell swimming action. This allows you to hold the water ++ // shell on land (used for cloning in DDD). ++ if (m->action == ACT_WATER_SHELL_SWIMMING && m->heldObj != NULL) { ++ m->heldObj->oInteractStatus = INT_STATUS_STOP_RIDING; ++ m->heldObj = NULL; ++ stop_shell_music(); ++ } ++ ++ return transition_submerged_to_walking(m); ++ } ++ } ++ ++ if (m->health < 0x100 && !(m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE))) { ++ set_mario_action(m, ACT_DROWNING, 0); ++ } ++ ++ return FALSE; + } + + s32 mario_execute_submerged_action(struct MarioState *m) { +- s32 cancel; +- +- if (check_common_submerged_cancels(m)) { +- return TRUE; +- } +- +- m->quicksandDepth = 0.0f; +- +- m->marioBodyState->headAngle[1] = 0; +- m->marioBodyState->headAngle[2] = 0; +- +- /* clang-format off */ +- switch (m->action) { +- case ACT_WATER_IDLE: cancel = act_water_idle(m); break; +- case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; +- case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; +- case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; +- case ACT_DROWNING: cancel = act_drowning(m); break; +- case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; +- case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; +- case ACT_WATER_DEATH: cancel = act_water_death(m); break; +- case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; +- case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; +- case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; +- case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; +- case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; +- case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; +- case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; +- case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; +- case ACT_WATER_THROW: cancel = act_water_throw(m); break; +- case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; +- case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; +- case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; +- case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; +- case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; +- case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; +- case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; +- case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; +- case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; +- case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; +- case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; +- case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; +- case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; +- case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; +- case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; +- } +- /* clang-format on */ +- +- return cancel; ++ s32 cancel; ++ ++ if (check_common_submerged_cancels(m)) { ++ return TRUE; ++ } ++ ++ m->quicksandDepth = 0.0f; ++ ++ m->marioBodyState->headAngle[1] = 0; ++ m->marioBodyState->headAngle[2] = 0; ++ ++ /* clang-format off */ ++ switch (m->action) { ++ case ACT_WATER_IDLE: cancel = act_water_idle(m); break; ++ case ACT_HOLD_WATER_IDLE: cancel = act_hold_water_idle(m); break; ++ case ACT_WATER_ACTION_END: cancel = act_water_action_end(m); break; ++ case ACT_HOLD_WATER_ACTION_END: cancel = act_hold_water_action_end(m); break; ++ case ACT_DROWNING: cancel = act_drowning(m); break; ++ case ACT_BACKWARD_WATER_KB: cancel = act_backward_water_kb(m); break; ++ case ACT_FORWARD_WATER_KB: cancel = act_forward_water_kb(m); break; ++ case ACT_WATER_DEATH: cancel = act_water_death(m); break; ++ case ACT_WATER_SHOCKED: cancel = act_water_shocked(m); break; ++ case ACT_BREASTSTROKE: cancel = act_breaststroke(m); break; ++ case ACT_SWIMMING_END: cancel = act_swimming_end(m); break; ++ case ACT_FLUTTER_KICK: cancel = act_flutter_kick(m); break; ++ case ACT_HOLD_BREASTSTROKE: cancel = act_hold_breaststroke(m); break; ++ case ACT_HOLD_SWIMMING_END: cancel = act_hold_swimming_end(m); break; ++ case ACT_HOLD_FLUTTER_KICK: cancel = act_hold_flutter_kick(m); break; ++ case ACT_WATER_SHELL_SWIMMING: cancel = act_water_shell_swimming(m); break; ++ case ACT_WATER_THROW: cancel = act_water_throw(m); break; ++ case ACT_WATER_PUNCH: cancel = act_water_punch(m); break; ++ case ACT_WATER_PLUNGE: cancel = act_water_plunge(m); break; ++ case ACT_CAUGHT_IN_WHIRLPOOL: cancel = act_caught_in_whirlpool(m); break; ++ case ACT_METAL_WATER_STANDING: cancel = act_metal_water_standing(m); break; ++ case ACT_METAL_WATER_WALKING: cancel = act_metal_water_walking(m); break; ++ case ACT_METAL_WATER_FALLING: cancel = act_metal_water_falling(m); break; ++ case ACT_METAL_WATER_FALL_LAND: cancel = act_metal_water_fall_land(m); break; ++ case ACT_METAL_WATER_JUMP: cancel = act_metal_water_jump(m); break; ++ case ACT_METAL_WATER_JUMP_LAND: cancel = act_metal_water_jump_land(m); break; ++ case ACT_HOLD_METAL_WATER_STANDING: cancel = act_hold_metal_water_standing(m); break; ++ case ACT_HOLD_METAL_WATER_WALKING: cancel = act_hold_metal_water_walking(m); break; ++ case ACT_HOLD_METAL_WATER_FALLING: cancel = act_hold_metal_water_falling(m); break; ++ case ACT_HOLD_METAL_WATER_FALL_LAND: cancel = act_hold_metal_water_fall_land(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP: cancel = act_hold_metal_water_jump(m); break; ++ case ACT_HOLD_METAL_WATER_JUMP_LAND: cancel = act_hold_metal_water_jump_land(m); break; ++ } ++ /* clang-format on */ ++ ++ return cancel; + } diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c index 5184a807..215a8110 100644 --- a/src/game/mario_misc.c +++ b/src/game/mario_misc.c @@ -88,7 +88,7 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * UNUSED Mat4 *transform = c; if (callContext == GEO_CONTEXT_RENDER) { - if (gPlayer1Controller->controllerData != NULL && !gWarpTransition.isActive) { + if (gPlayer1Controller->controllerData != NULL && gWarpTransition.isActive == 0) { gd_copy_p1_contpad(gPlayer1Controller->controllerData); } gfx = (Gfx *) PHYSICAL_TO_VIRTUAL(gdm_gettestdl(asGenerated->parameter)); @@ -101,9 +101,9 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * static void toad_message_faded(void) { if (gCurrentObject->oDistanceToMario > 700.0f) { - gCurrentObject->oToadMessageRecentlyTalked = FALSE; + gCurrentObject->oToadMessageRecentlyTalked = 0; } - if (!gCurrentObject->oToadMessageRecentlyTalked && gCurrentObject->oDistanceToMario < 600.0f) { + if (gCurrentObject->oToadMessageRecentlyTalked == 0 && gCurrentObject->oDistanceToMario < 600.0f) { gCurrentObject->oToadMessageState = TOAD_MESSAGE_OPACIFYING; } } @@ -111,12 +111,14 @@ static void toad_message_faded(void) { static void toad_message_opaque(void) { if (gCurrentObject->oDistanceToMario > 700.0f) { gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; - } else if (!gCurrentObject->oToadMessageRecentlyTalked) { - gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; - if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { - gCurrentObject->oInteractStatus = 0; - gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; - play_toads_jingle(); + } else { + if (gCurrentObject->oToadMessageRecentlyTalked == 0) { + gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; + if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { + gCurrentObject->oInteractStatus = 0; + gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; + play_toads_jingle(); + } } } } @@ -124,7 +126,7 @@ static void toad_message_opaque(void) { static void toad_message_talking(void) { if (cur_obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG, gCurrentObject->oToadMessageDialogId) != 0) { - gCurrentObject->oToadMessageRecentlyTalked = TRUE; + gCurrentObject->oToadMessageRecentlyTalked = 1; gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; switch (gCurrentObject->oToadMessageDialogId) { case TOAD_STAR_1_DIALOG: @@ -180,33 +182,33 @@ void bhv_toad_message_loop(void) { void bhv_toad_message_init(void) { s32 saveFlags = save_file_get_flags(); - s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); + s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24); s32 dialogId = (gCurrentObject->oBehParams >> 24) & 0xFF; s32 enoughStars = TRUE; switch (dialogId) { case TOAD_STAR_1_DIALOG: enoughStars = (starCount >= TOAD_STAR_1_REQUIREMENT); - if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_1) { + if (saveFlags & (1 << 24)) { dialogId = TOAD_STAR_1_DIALOG_AFTER; } break; case TOAD_STAR_2_DIALOG: enoughStars = (starCount >= TOAD_STAR_2_REQUIREMENT); - if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_2) { + if (saveFlags & (1 << 25)) { dialogId = TOAD_STAR_2_DIALOG_AFTER; } break; case TOAD_STAR_3_DIALOG: enoughStars = (starCount >= TOAD_STAR_3_REQUIREMENT); - if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_3) { + if (saveFlags & (1 << 26)) { dialogId = TOAD_STAR_3_DIALOG_AFTER; } break; } if (enoughStars) { gCurrentObject->oToadMessageDialogId = dialogId; - gCurrentObject->oToadMessageRecentlyTalked = FALSE; + gCurrentObject->oToadMessageRecentlyTalked = 0; gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADED; gCurrentObject->oOpacity = 81; } else { @@ -345,7 +347,7 @@ Gfx *geo_switch_mario_stand_run(s32 callContext, struct GraphNode *node, UNUSED if (callContext == GEO_CONTEXT_RENDER) { // assign result. 0 if moving, 1 if stationary. - switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == 0); + switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == FALSE); } return NULL; } @@ -525,7 +527,7 @@ Gfx *geo_mario_rotate_wing_cap_wings(s32 callContext, struct GraphNode *node, UN if (callContext == GEO_CONTEXT_RENDER) { struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) node->next; - if (!gBodyStates[asGenerated->parameter >> 1].wingFlutter) { + if (gBodyStates[asGenerated->parameter >> 1].wingFlutter == FALSE) { rotX = (coss((gAreaUpdateCounter & 0xF) << 12) + 1.0f) * 4096.0f; } else { rotX = (coss((gAreaUpdateCounter & 7) << 13) + 1.0f) * 6144.0f; @@ -586,7 +588,7 @@ Gfx *geo_switch_mario_hand_grab_pos(s32 callContext, struct GraphNode *b, Mat4 * */ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat4 *c) { f32 mirroredX; - struct Object *mario = gMarioStates[0].marioObj; + struct Object *mario = gMarioStates->marioObj; switch (callContext) { case GEO_CONTEXT_CREATE: @@ -606,15 +608,20 @@ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat vec3s_copy(gMirrorMario.angle, mario->header.gfx.angle); vec3f_copy(gMirrorMario.pos, mario->header.gfx.pos); vec3f_copy(gMirrorMario.scale, mario->header.gfx.scale); - + // FIXME: why does this set unk38, an inline struct, to a ptr to another one? wrong + // GraphNode types again? gMirrorMario.animInfo = mario->header.gfx.animInfo; mirroredX = MIRROR_X - gMirrorMario.pos[0]; gMirrorMario.pos[0] = mirroredX + MIRROR_X; gMirrorMario.angle[1] = -gMirrorMario.angle[1]; gMirrorMario.scale[0] *= -1.0f; - ((struct GraphNode *) &gMirrorMario)->flags |= 1; + // FIXME: Why doesn't this match? + // gMirrorMario.node.flags |= 1; + ((s16 *) &gMirrorMario)[1] |= 1; } else { - ((struct GraphNode *) &gMirrorMario)->flags &= ~1; + // FIXME: Why doesn't this match? + // gMirrorMario.node.flags &= ~1; + ((s16 *) &gMirrorMario)[1] &= ~1; } break; } diff --git a/src/game/mario_misc.c.rej b/src/game/mario_misc.c.rej new file mode 100644 index 00000000..937a78b9 --- /dev/null +++ b/src/game/mario_misc.c.rej @@ -0,0 +1,142 @@ +diff a/src/game/mario_misc.c b/src/game/mario_misc.c (rejected hunks) +@@ -88,7 +88,7 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * + UNUSED Mat4 *transform = c; + + if (callContext == GEO_CONTEXT_RENDER) { +- if (gPlayer1Controller->controllerData != NULL && !gWarpTransition.isActive) { ++ if (gPlayer1Controller->controllerData != NULL && gWarpTransition.isActive == 0) { + gd_copy_p1_contpad(gPlayer1Controller->controllerData); + } + gfx = (Gfx *) PHYSICAL_TO_VIRTUAL(gdm_gettestdl(asGenerated->parameter)); +@@ -101,9 +101,9 @@ Gfx *geo_draw_mario_head_goddard(s32 callContext, struct GraphNode *node, Mat4 * + + static void toad_message_faded(void) { + if (gCurrentObject->oDistanceToMario > 700.0f) { +- gCurrentObject->oToadMessageRecentlyTalked = FALSE; ++ gCurrentObject->oToadMessageRecentlyTalked = 0; + } +- if (!gCurrentObject->oToadMessageRecentlyTalked && gCurrentObject->oDistanceToMario < 600.0f) { ++ if (gCurrentObject->oToadMessageRecentlyTalked == 0 && gCurrentObject->oDistanceToMario < 600.0f) { + gCurrentObject->oToadMessageState = TOAD_MESSAGE_OPACIFYING; + } + } +@@ -111,12 +111,14 @@ static void toad_message_faded(void) { + static void toad_message_opaque(void) { + if (gCurrentObject->oDistanceToMario > 700.0f) { + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; +- } else if (!gCurrentObject->oToadMessageRecentlyTalked) { +- gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; +- if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { +- gCurrentObject->oInteractStatus = 0; +- gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; +- play_toads_jingle(); ++ } else { ++ if (gCurrentObject->oToadMessageRecentlyTalked == 0) { ++ gCurrentObject->oInteractionSubtype = INT_SUBTYPE_NPC; ++ if (gCurrentObject->oInteractStatus & INT_STATUS_INTERACTED) { ++ gCurrentObject->oInteractStatus = 0; ++ gCurrentObject->oToadMessageState = TOAD_MESSAGE_TALKING; ++ play_toads_jingle(); ++ } + } + } + } +@@ -124,7 +126,7 @@ static void toad_message_opaque(void) { + static void toad_message_talking(void) { + if (cur_obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG, gCurrentObject->oToadMessageDialogId) + != 0) { +- gCurrentObject->oToadMessageRecentlyTalked = TRUE; ++ gCurrentObject->oToadMessageRecentlyTalked = 1; + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; + switch (gCurrentObject->oToadMessageDialogId) { + case TOAD_STAR_1_DIALOG: +@@ -180,33 +182,33 @@ void bhv_toad_message_loop(void) { + + void bhv_toad_message_init(void) { + s32 saveFlags = save_file_get_flags(); +- s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_MIN - 1, COURSE_MAX - 1); ++ s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24); + s32 dialogId = (gCurrentObject->oBehParams >> 24) & 0xFF; + s32 enoughStars = TRUE; + + switch (dialogId) { + case TOAD_STAR_1_DIALOG: + enoughStars = (starCount >= TOAD_STAR_1_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_1) { ++ if (saveFlags & (1 << 24)) { + dialogId = TOAD_STAR_1_DIALOG_AFTER; + } + break; + case TOAD_STAR_2_DIALOG: + enoughStars = (starCount >= TOAD_STAR_2_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_2) { ++ if (saveFlags & (1 << 25)) { + dialogId = TOAD_STAR_2_DIALOG_AFTER; + } + break; + case TOAD_STAR_3_DIALOG: + enoughStars = (starCount >= TOAD_STAR_3_REQUIREMENT); +- if (saveFlags & SAVE_FLAG_COLLECTED_TOAD_STAR_3) { ++ if (saveFlags & (1 << 26)) { + dialogId = TOAD_STAR_3_DIALOG_AFTER; + } + break; + } + if (enoughStars) { + gCurrentObject->oToadMessageDialogId = dialogId; +- gCurrentObject->oToadMessageRecentlyTalked = FALSE; ++ gCurrentObject->oToadMessageRecentlyTalked = 0; + gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADED; + gCurrentObject->oOpacity = 81; + } else { +@@ -345,7 +347,7 @@ Gfx *geo_switch_mario_stand_run(s32 callContext, struct GraphNode *node, UNUSED + + if (callContext == GEO_CONTEXT_RENDER) { + // assign result. 0 if moving, 1 if stationary. +- switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == 0); ++ switchCase->selectedCase = ((bodyState->action & ACT_FLAG_STATIONARY) == FALSE); + } + return NULL; + } +@@ -525,7 +527,7 @@ Gfx *geo_mario_rotate_wing_cap_wings(s32 callContext, struct GraphNode *node, UN + if (callContext == GEO_CONTEXT_RENDER) { + struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) node->next; + +- if (!gBodyStates[asGenerated->parameter >> 1].wingFlutter) { ++ if (gBodyStates[asGenerated->parameter >> 1].wingFlutter == FALSE) { + rotX = (coss((gAreaUpdateCounter & 0xF) << 12) + 1.0f) * 4096.0f; + } else { + rotX = (coss((gAreaUpdateCounter & 7) << 13) + 1.0f) * 6144.0f; +@@ -586,7 +588,7 @@ Gfx *geo_switch_mario_hand_grab_pos(s32 callContext, struct GraphNode *b, Mat4 * + */ + Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat4 *c) { + f32 mirroredX; +- struct Object *mario = gMarioStates[0].marioObj; ++ struct Object *mario = gMarioStates->marioObj; + + switch (callContext) { + case GEO_CONTEXT_CREATE: +@@ -606,15 +608,20 @@ Gfx *geo_render_mirror_mario(s32 callContext, struct GraphNode *node, UNUSED Mat + vec3s_copy(gMirrorMario.angle, mario->header.gfx.angle); + vec3f_copy(gMirrorMario.pos, mario->header.gfx.pos); + vec3f_copy(gMirrorMario.scale, mario->header.gfx.scale); +- ++ // FIXME: why does this set unk38, an inline struct, to a ptr to another one? wrong ++ // GraphNode types again? + gMirrorMario.animInfo = mario->header.gfx.animInfo; + mirroredX = MIRROR_X - gMirrorMario.pos[0]; + gMirrorMario.pos[0] = mirroredX + MIRROR_X; + gMirrorMario.angle[1] = -gMirrorMario.angle[1]; + gMirrorMario.scale[0] *= -1.0f; +- ((struct GraphNode *) &gMirrorMario)->flags |= 1; ++ // FIXME: Why doesn't this match? ++ // gMirrorMario.node.flags |= 1; ++ ((s16 *) &gMirrorMario)[1] |= 1; + } else { +- ((struct GraphNode *) &gMirrorMario)->flags &= ~1; ++ // FIXME: Why doesn't this match? ++ // gMirrorMario.node.flags &= ~1; ++ ((s16 *) &gMirrorMario)[1] &= ~1; + } + break; + } diff --git a/src/game/mario_step.c b/src/game/mario_step.c index c3da0cbb..3d8e6e9b 100644 --- a/src/game/mario_step.c +++ b/src/game/mario_step.c @@ -284,6 +284,18 @@ static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { floor->originOffset = floorHeight; //! Wrong origin offset (no effect) } + if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { + floorHeight = waterLevel; + floor = &gWaterSurfacePseudoFloor; + floor->originOffset = floorHeight; //! Wrong origin offset (no effect) + } + + if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { + floorHeight = waterLevel; + floor = &gWaterSurfacePseudoFloor; + floor->originOffset = floorHeight; //! Wrong origin offset (no effect) + } + if (nextPos[1] > floorHeight + 100.0f) { if (nextPos[1] + 160.0f >= ceilHeight) { return GROUND_STEP_HIT_WALL_STOP_QSTEPS; diff --git a/src/game/mario_step.c.rej b/src/game/mario_step.c.rej new file mode 100644 index 00000000..44226634 --- /dev/null +++ b/src/game/mario_step.c.rej @@ -0,0 +1,1235 @@ +diff a/src/game/mario_step.c b/src/game/mario_step.c (rejected hunks) +@@ -12,658 +12,696 @@ + static s16 sMovingSandSpeeds[] = { 12, 8, 4, 0 }; + + struct Surface gWaterSurfacePseudoFloor = { +- SURFACE_VERY_SLIPPERY, 0, 0, 0, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, +- { 0.0f, 1.0f, 0.0f }, 0.0f, NULL, ++ SURFACE_VERY_SLIPPERY, 0, 0, 0, 0, 0,{ 0, 0, 0 },{ 0, 0, 0 },{ 0, 0, 0 }, ++ { 0.0f, 1.0f, 0.0f }, 0.0f, NULL, + }; + + /** +- * Always returns zero. This may have been intended +- * to be used for the beta trampoline. Its return value +- * is used by set_mario_y_vel_based_on_fspeed as a constant +- * addition to Mario's Y velocity. Given the closeness of +- * this function to stub_mario_step_2, it is probable that this +- * was intended to check whether a trampoline had made itself +- * known through stub_mario_step_2 and whether Mario was on it, +- * and if so return a higher value than 0. +- */ ++* Always returns zero. This may have been intended ++* to be used for the beta trampoline. Its return value ++* is used by set_mario_y_vel_based_on_fspeed as a constant ++* addition to Mario's Y velocity. Given the closeness of ++* this function to stub_mario_step_2, it is probable that this ++* was intended to check whether a trampoline had made itself ++* known through stub_mario_step_2 and whether Mario was on it, ++* and if so return a higher value than 0. ++*/ + f32 get_additive_y_vel_for_jumps(void) { +- return 0.0f; ++ return 0.0f; + } + + /** +- * Does nothing, but takes in a MarioState. This is only ever +- * called by update_mario_inputs, which is called as part of Mario's +- * update routine. Due to its proximity to stub_mario_step_2, an +- * incomplete trampoline function, and get_additive_y_vel_for_jumps, +- * a potentially trampoline-related function, it is plausible that +- * this could be used for checking if Mario was on the trampoline. +- * It could, for example, make him bounce. +- */ ++* Does nothing, but takes in a MarioState. This is only ever ++* called by update_mario_inputs, which is called as part of Mario's ++* update routine. Due to its proximity to stub_mario_step_2, an ++* incomplete trampoline function, and get_additive_y_vel_for_jumps, ++* a potentially trampoline-related function, it is plausible that ++* this could be used for checking if Mario was on the trampoline. ++* It could, for example, make him bounce. ++*/ + void stub_mario_step_1(UNUSED struct MarioState *x) { + } + + /** +- * Does nothing. This is only called by the beta trampoline. +- * Due to its proximity to get_additive_y_vel_for_jumps, another +- * currently-pointless function, it is probable that this was used +- * by the trampoline to make itself known to get_additive_y_vel_for_jumps, +- * or to set a variable with its intended additive Y vel. +- */ ++* Does nothing. This is only called by the beta trampoline. ++* Due to its proximity to get_additive_y_vel_for_jumps, another ++* currently-pointless function, it is probable that this was used ++* by the trampoline to make itself known to get_additive_y_vel_for_jumps, ++* or to set a variable with its intended additive Y vel. ++*/ + void stub_mario_step_2(void) { + } + + void transfer_bully_speed(struct BullyCollisionData *obj1, struct BullyCollisionData *obj2) { +- f32 rx = obj2->posX - obj1->posX; +- f32 rz = obj2->posZ - obj1->posZ; ++ f32 rx = obj2->posX - obj1->posX; ++ f32 rz = obj2->posZ - obj1->posZ; + +- //! Bully NaN crash +- f32 projectedV1 = (rx * obj1->velX + rz * obj1->velZ) / (rx * rx + rz * rz); +- f32 projectedV2 = (-rx * obj2->velX - rz * obj2->velZ) / (rx * rx + rz * rz); ++ //! Bully NaN crash ++ f32 projectedV1 = (rx * obj1->velX + rz * obj1->velZ) / (rx * rx + rz * rz); ++ f32 projectedV2 = (-rx * obj2->velX - rz * obj2->velZ) / (rx * rx + rz * rz); + +- // Kill speed along r. Convert one object's speed along r and transfer it to +- // the other object. +- obj2->velX += obj2->conversionRatio * projectedV1 * rx - projectedV2 * -rx; +- obj2->velZ += obj2->conversionRatio * projectedV1 * rz - projectedV2 * -rz; ++ // Kill speed along r. Convert one object's speed along r and transfer it to ++ // the other object. ++ obj2->velX += obj2->conversionRatio * projectedV1 * rx - projectedV2 * -rx; ++ obj2->velZ += obj2->conversionRatio * projectedV1 * rz - projectedV2 * -rz; + +- obj1->velX += -projectedV1 * rx + obj1->conversionRatio * projectedV2 * -rx; +- obj1->velZ += -projectedV1 * rz + obj1->conversionRatio * projectedV2 * -rz; ++ obj1->velX += -projectedV1 * rx + obj1->conversionRatio * projectedV2 * -rx; ++ obj1->velZ += -projectedV1 * rz + obj1->conversionRatio * projectedV2 * -rz; + +- //! Bully battery ++ //! Bully battery + } + + BAD_RETURN(s32) init_bully_collision_data(struct BullyCollisionData *data, f32 posX, f32 posZ, +- f32 forwardVel, s16 yaw, f32 conversionRatio, f32 radius) { +- if (forwardVel < 0.0f) { +- forwardVel *= -1.0f; +- yaw += 0x8000; +- } +- +- data->radius = radius; +- data->conversionRatio = conversionRatio; +- data->posX = posX; +- data->posZ = posZ; +- data->velX = forwardVel * sins(yaw); +- data->velZ = forwardVel * coss(yaw); ++ f32 forwardVel, s16 yaw, f32 conversionRatio, f32 radius) { ++ if (forwardVel < 0.0f) { ++ forwardVel *= -1.0f; ++ yaw += 0x8000; ++ } ++ ++ data->radius = radius; ++ data->conversionRatio = conversionRatio; ++ data->posX = posX; ++ data->posZ = posZ; ++ data->velX = forwardVel * sins(yaw); ++ data->velZ = forwardVel * coss(yaw); + } + + void mario_bonk_reflection(struct MarioState *m, u32 negateSpeed) { +- if (m->wall != NULL) { +- s16 wallAngle = atan2s(m->wall->normal.z, m->wall->normal.x); +- m->faceAngle[1] = wallAngle - (s16)(m->faceAngle[1] - wallAngle); +- +- play_sound((m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_BONK : SOUND_ACTION_BONK, +- m->marioObj->header.gfx.cameraToObject); +- } else { +- play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); +- } +- +- if (negateSpeed) { +- mario_set_forward_vel(m, -m->forwardVel); +- } else { +- m->faceAngle[1] += 0x8000; +- } ++ if (m->wall != NULL) { ++ s16 wallAngle = atan2s(m->wall->normal.z, m->wall->normal.x); ++ m->faceAngle[1] = wallAngle - (s16)(m->faceAngle[1] - wallAngle); ++ ++ play_sound((m->flags & MARIO_METAL_CAP) ? SOUND_ACTION_METAL_BONK : SOUND_ACTION_BONK, ++ m->marioObj->header.gfx.cameraToObject); ++ } ++ else { ++ play_sound(SOUND_ACTION_HIT, m->marioObj->header.gfx.cameraToObject); ++ } ++ ++ if (negateSpeed) { ++ mario_set_forward_vel(m, -m->forwardVel); ++ } ++ else { ++ m->faceAngle[1] += 0x8000; ++ } + } + + u32 mario_update_quicksand(struct MarioState *m, f32 sinkingSpeed) { +- if (m->action & ACT_FLAG_RIDING_SHELL) { +- m->quicksandDepth = 0.0f; +- } else { +- if (m->quicksandDepth < 1.1f) { +- m->quicksandDepth = 1.1f; +- } +- +- switch (m->floor->type) { +- case SURFACE_SHALLOW_QUICKSAND: +- if ((m->quicksandDepth += sinkingSpeed) >= 10.0f) { +- m->quicksandDepth = 10.0f; +- } +- break; +- +- case SURFACE_SHALLOW_MOVING_QUICKSAND: +- if ((m->quicksandDepth += sinkingSpeed) >= 25.0f) { +- m->quicksandDepth = 25.0f; +- } +- break; +- +- case SURFACE_QUICKSAND: +- case SURFACE_MOVING_QUICKSAND: +- if ((m->quicksandDepth += sinkingSpeed) >= 60.0f) { +- m->quicksandDepth = 60.0f; +- } +- break; +- +- case SURFACE_DEEP_QUICKSAND: +- case SURFACE_DEEP_MOVING_QUICKSAND: +- if ((m->quicksandDepth += sinkingSpeed) >= 160.0f) { +- update_mario_sound_and_camera(m); +- return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); +- } +- break; +- +- case SURFACE_INSTANT_QUICKSAND: +- case SURFACE_INSTANT_MOVING_QUICKSAND: +- update_mario_sound_and_camera(m); +- return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); +- break; +- +- default: +- m->quicksandDepth = 0.0f; +- break; +- } +- } +- +- return FALSE; ++ if (m->action & ACT_FLAG_RIDING_SHELL) { ++ m->quicksandDepth = 0.0f; ++ } ++ else { ++ if (m->quicksandDepth < 1.1f) { ++ m->quicksandDepth = 1.1f; ++ } ++ ++ switch (m->floor->type) { ++ case SURFACE_SHALLOW_QUICKSAND: ++ if ((m->quicksandDepth += sinkingSpeed) >= 10.0f) { ++ m->quicksandDepth = 10.0f; ++ } ++ break; ++ ++ case SURFACE_SHALLOW_MOVING_QUICKSAND: ++ if ((m->quicksandDepth += sinkingSpeed) >= 25.0f) { ++ m->quicksandDepth = 25.0f; ++ } ++ break; ++ ++ case SURFACE_QUICKSAND: ++ case SURFACE_MOVING_QUICKSAND: ++ if ((m->quicksandDepth += sinkingSpeed) >= 60.0f) { ++ m->quicksandDepth = 60.0f; ++ } ++ break; ++ ++ case SURFACE_DEEP_QUICKSAND: ++ case SURFACE_DEEP_MOVING_QUICKSAND: ++ if ((m->quicksandDepth += sinkingSpeed) >= 160.0f) { ++ update_mario_sound_and_camera(m); ++ return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); ++ } ++ break; ++ ++ case SURFACE_INSTANT_QUICKSAND: ++ case SURFACE_INSTANT_MOVING_QUICKSAND: ++ update_mario_sound_and_camera(m); ++ return drop_and_set_mario_action(m, ACT_QUICKSAND_DEATH, 0); ++ break; ++ ++ default: ++ m->quicksandDepth = 0.0f; ++ break; ++ } ++ } ++ ++ return 0; + } + + u32 mario_push_off_steep_floor(struct MarioState *m, u32 action, u32 actionArg) { +- s16 floorDYaw = m->floorAngle - m->faceAngle[1]; +- +- if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { +- m->forwardVel = 16.0f; +- m->faceAngle[1] = m->floorAngle; +- } else { +- m->forwardVel = -16.0f; +- m->faceAngle[1] = m->floorAngle + 0x8000; +- } +- +- return set_mario_action(m, action, actionArg); ++ s16 floorDYaw = m->floorAngle - m->faceAngle[1]; ++ ++ if (floorDYaw > -0x4000 && floorDYaw < 0x4000) { ++ m->forwardVel = 16.0f; ++ m->faceAngle[1] = m->floorAngle; ++ } ++ else { ++ m->forwardVel = -16.0f; ++ m->faceAngle[1] = m->floorAngle + 0x8000; ++ } ++ ++ return set_mario_action(m, action, actionArg); + } + + u32 mario_update_moving_sand(struct MarioState *m) { +- struct Surface *floor = m->floor; +- s32 floorType = floor->type; ++ struct Surface *floor = m->floor; ++ s32 floorType = floor->type; + +- if (floorType == SURFACE_DEEP_MOVING_QUICKSAND || floorType == SURFACE_SHALLOW_MOVING_QUICKSAND +- || floorType == SURFACE_MOVING_QUICKSAND || floorType == SURFACE_INSTANT_MOVING_QUICKSAND) { +- s16 pushAngle = floor->force << 8; +- f32 pushSpeed = sMovingSandSpeeds[floor->force >> 8]; ++ if (floorType == SURFACE_DEEP_MOVING_QUICKSAND || floorType == SURFACE_SHALLOW_MOVING_QUICKSAND ++ || floorType == SURFACE_MOVING_QUICKSAND || floorType == SURFACE_INSTANT_MOVING_QUICKSAND) { ++ s16 pushAngle = floor->force << 8; ++ f32 pushSpeed = sMovingSandSpeeds[floor->force >> 8]; + +- m->vel[0] += pushSpeed * sins(pushAngle); +- m->vel[2] += pushSpeed * coss(pushAngle); ++ m->vel[0] += pushSpeed * sins(pushAngle); ++ m->vel[2] += pushSpeed * coss(pushAngle); + +- return TRUE; +- } ++ return 1; ++ } + +- return FALSE; ++ return 0; + } + + u32 mario_update_windy_ground(struct MarioState *m) { +- struct Surface *floor = m->floor; ++ struct Surface *floor = m->floor; + +- if (floor->type == SURFACE_HORIZONTAL_WIND) { +- f32 pushSpeed; +- s16 pushAngle = floor->force << 8; ++ if (floor->type == SURFACE_HORIZONTAL_WIND) { ++ f32 pushSpeed; ++ s16 pushAngle = floor->force << 8; + +- if (m->action & ACT_FLAG_MOVING) { +- s16 pushDYaw = m->faceAngle[1] - pushAngle; ++ if (m->action & ACT_FLAG_MOVING) { ++ s16 pushDYaw = m->faceAngle[1] - pushAngle; + +- pushSpeed = m->forwardVel > 0.0f ? -m->forwardVel * 0.5f : -8.0f; ++ pushSpeed = m->forwardVel > 0.0f ? -m->forwardVel * 0.5f : -8.0f; + +- if (pushDYaw > -0x4000 && pushDYaw < 0x4000) { +- pushSpeed *= -1.0f; +- } ++ if (pushDYaw > -0x4000 && pushDYaw < 0x4000) { ++ pushSpeed *= -1.0f; ++ } + +- pushSpeed *= coss(pushDYaw); +- } else { +- pushSpeed = 3.2f + (gGlobalTimer % 4); +- } ++ pushSpeed *= coss(pushDYaw); ++ } ++ else { ++ pushSpeed = 3.2f + (gGlobalTimer % 4); ++ } + +- m->vel[0] += pushSpeed * sins(pushAngle); +- m->vel[2] += pushSpeed * coss(pushAngle); ++ m->vel[0] += pushSpeed * sins(pushAngle); ++ m->vel[2] += pushSpeed * coss(pushAngle); + + #if VERSION_JP +- play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); ++ play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); + #endif +- return TRUE; +- } ++ return 1; ++ } + +- return FALSE; ++ return 0; + } + + void stop_and_set_height_to_floor(struct MarioState *m) { +- struct Object *marioObj = m->marioObj; ++ struct Object *marioObj = m->marioObj; + +- mario_set_forward_vel(m, 0.0f); +- m->vel[1] = 0.0f; ++ mario_set_forward_vel(m, 0.0f); ++ m->vel[1] = 0.0f; + +- //! This is responsible for some downwarps. +- m->pos[1] = m->floorHeight; ++ //! This is responsible for some downwarps. ++ m->pos[1] = m->floorHeight; + +- vec3f_copy(marioObj->header.gfx.pos, m->pos); +- vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ vec3f_copy(marioObj->header.gfx.pos, m->pos); ++ vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + } + + s32 stationary_ground_step(struct MarioState *m) { +- u32 takeStep; +- struct Object *marioObj = m->marioObj; +- u32 stepResult = GROUND_STEP_NONE; ++ u32 takeStep; ++ struct Object *marioObj = m->marioObj; ++ u32 stepResult = GROUND_STEP_NONE; ++ ++ mario_set_forward_vel(m, 0.0f); ++ ++ takeStep = mario_update_moving_sand(m); ++ takeStep |= mario_update_windy_ground(m); ++ if (takeStep) { ++ stepResult = perform_ground_step(m); ++ } ++ else { ++ //! This is responsible for several stationary downwarps. ++ m->pos[1] = m->floorHeight; ++ ++ vec3f_copy(marioObj->header.gfx.pos, m->pos); ++ vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ } ++ ++ return stepResult; ++} ++ ++static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { ++ UNUSED struct Surface *lowerWall; ++ struct Surface *upperWall; ++ struct Surface *ceil; ++ struct Surface *floor; ++ f32 ceilHeight; ++ f32 floorHeight; ++ f32 waterLevel; + +- mario_set_forward_vel(m, 0.0f); + +- takeStep = mario_update_moving_sand(m); +- takeStep |= mario_update_windy_ground(m); +- if (takeStep) { +- stepResult = perform_ground_step(m); +- } else { +- //! This is responsible for several stationary downwarps. +- m->pos[1] = m->floorHeight; + +- vec3f_copy(marioObj->header.gfx.pos, m->pos); +- vec3s_set(marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +- } ++ lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 24.0f); ++ upperWall = resolve_and_return_wall_collisions(nextPos, 60.0f, 50.0f); + +- return stepResult; +-} ++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); + +-static s32 perform_ground_quarter_step(struct MarioState *m, Vec3f nextPos) { +- UNUSED struct Surface *lowerWall; +- struct Surface *upperWall; +- struct Surface *ceil; +- struct Surface *floor; +- f32 ceilHeight; +- f32 floorHeight; +- f32 waterLevel; +- +- lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 24.0f); +- upperWall = resolve_and_return_wall_collisions(nextPos, 60.0f, 50.0f); +- +- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +- +- waterLevel = find_water_level(nextPos[0], nextPos[2]); +- +- m->wall = upperWall; +- +- if (floor == NULL) { +- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +- } +- +- if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { +- floorHeight = waterLevel; +- floor = &gWaterSurfacePseudoFloor; +- floor->originOffset = floorHeight; //! Wrong origin offset (no effect) +- } +- +- if (nextPos[1] > floorHeight + 100.0f) { +- if (nextPos[1] + 160.0f >= ceilHeight) { +- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +- } +- +- vec3f_copy(m->pos, nextPos); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return GROUND_STEP_LEFT_GROUND; +- } +- +- if (floorHeight + 160.0f >= ceilHeight) { +- return GROUND_STEP_HIT_WALL_STOP_QSTEPS; +- } +- +- vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); +- m->floor = floor; +- m->floorHeight = floorHeight; +- +- if (upperWall != NULL) { +- s16 wallDYaw = atan2s(upperWall->normal.z, upperWall->normal.x) - m->faceAngle[1]; +- +- if (wallDYaw >= 0x2AAA && wallDYaw <= 0x5555) { +- return GROUND_STEP_NONE; +- } +- if (wallDYaw <= -0x2AAA && wallDYaw >= -0x5555) { +- return GROUND_STEP_NONE; +- } +- +- return GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS; +- } +- +- return GROUND_STEP_NONE; ++ waterLevel = find_water_level(nextPos[0], nextPos[2]); ++ ++ m->wall = upperWall; ++ ++ if (floor == NULL) { ++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++ } ++ ++ if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) ++ } ++ ++ if ((m->action == ACT_WALKING ) && floorHeight < waterLevel && m->forwardVel > 45.0f) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) ++ } ++ ++ if (nextPos[1] > floorHeight + 100.0f) { ++ if (nextPos[1] + 160.0f >= ceilHeight) { ++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++ } ++ ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return GROUND_STEP_LEFT_GROUND; ++ } ++ ++ if (floorHeight + 160.0f >= ceilHeight) { ++ return GROUND_STEP_HIT_WALL_STOP_QSTEPS; ++ } ++ ++ vec3f_set(m->pos, nextPos[0], floorHeight, nextPos[2]); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ ++ if (upperWall != NULL) { ++ s16 wallDYaw = atan2s(upperWall->normal.z, upperWall->normal.x) - m->faceAngle[1]; ++ ++ if (wallDYaw >= 0x2AAA && wallDYaw <= 0x5555) { ++ return GROUND_STEP_NONE; ++ } ++ if (wallDYaw <= -0x2AAA && wallDYaw >= -0x5555) { ++ return GROUND_STEP_NONE; ++ } ++ ++ return GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS; ++ } ++ ++ return GROUND_STEP_NONE; + } + + s32 perform_ground_step(struct MarioState *m) { +- s32 i; +- u32 stepResult; +- Vec3f intendedPos; +- +- for (i = 0; i < 4; i++) { +- intendedPos[0] = m->pos[0] + m->floor->normal.y * (m->vel[0] / 4.0f); +- intendedPos[2] = m->pos[2] + m->floor->normal.y * (m->vel[2] / 4.0f); +- intendedPos[1] = m->pos[1]; +- +- stepResult = perform_ground_quarter_step(m, intendedPos); +- if (stepResult == GROUND_STEP_LEFT_GROUND || stepResult == GROUND_STEP_HIT_WALL_STOP_QSTEPS) { +- break; +- } +- } +- +- m->terrainSoundAddend = mario_get_terrain_sound_addend(m); +- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); +- +- if (stepResult == GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS) { +- stepResult = GROUND_STEP_HIT_WALL; +- } +- return stepResult; ++ s32 i; ++ u32 stepResult; ++ Vec3f intendedPos; ++ ++ ++ ++ ++ ++ ++ for (i = 0; i < 4; i++) { ++ intendedPos[0] = m->pos[0] + m->floor->normal.y * (m->vel[0] / 4.0f); ++ intendedPos[2] = m->pos[2] + m->floor->normal.y * (m->vel[2] / 4.0f); ++ intendedPos[1] = m->pos[1]; ++ ++ stepResult = perform_ground_quarter_step(m, intendedPos); ++ if (stepResult == GROUND_STEP_LEFT_GROUND || stepResult == GROUND_STEP_HIT_WALL_STOP_QSTEPS) { ++ break; ++ } ++ } ++ ++ m->terrainSoundAddend = mario_get_terrain_sound_addend(m); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ ++ if (stepResult == GROUND_STEP_HIT_WALL_CONTINUE_QSTEPS) { ++ stepResult = GROUND_STEP_HIT_WALL; ++ } ++ return stepResult; + } + + u32 check_ledge_grab(struct MarioState *m, struct Surface *wall, Vec3f intendedPos, Vec3f nextPos) { +- struct Surface *ledgeFloor; +- Vec3f ledgePos; +- f32 displacementX; +- f32 displacementZ; +- +- if (m->vel[1] > 0) { +- return FALSE; +- } +- +- displacementX = nextPos[0] - intendedPos[0]; +- displacementZ = nextPos[2] - intendedPos[2]; +- +- // Only ledge grab if the wall displaced Mario in the opposite direction of +- // his velocity. +- if (displacementX * m->vel[0] + displacementZ * m->vel[2] > 0.0f) { +- return FALSE; +- } +- +- //! Since the search for floors starts at y + 160, we will sometimes grab +- // a higher ledge than expected (glitchy ledge grab) +- ledgePos[0] = nextPos[0] - wall->normal.x * 60.0f; +- ledgePos[2] = nextPos[2] - wall->normal.z * 60.0f; +- ledgePos[1] = find_floor(ledgePos[0], nextPos[1] + 160.0f, ledgePos[2], &ledgeFloor); +- +- if (ledgePos[1] - nextPos[1] <= 100.0f) { +- return FALSE; +- } +- +- vec3f_copy(m->pos, ledgePos); +- m->floor = ledgeFloor; +- m->floorHeight = ledgePos[1]; +- +- m->floorAngle = atan2s(ledgeFloor->normal.z, ledgeFloor->normal.x); +- +- m->faceAngle[0] = 0; +- m->faceAngle[1] = atan2s(wall->normal.z, wall->normal.x) + 0x8000; +- return TRUE; ++ struct Surface *ledgeFloor; ++ Vec3f ledgePos; ++ f32 displacementX; ++ f32 displacementZ; ++ ++ if (m->vel[1] > 0) { ++ return 0; ++ } ++ ++ displacementX = nextPos[0] - intendedPos[0]; ++ displacementZ = nextPos[2] - intendedPos[2]; ++ ++ // Only ledge grab if the wall displaced Mario in the opposite direction of ++ // his velocity. ++ if (displacementX * m->vel[0] + displacementZ * m->vel[2] > 0.0f) { ++ return 0; ++ } ++ ++ //! Since the search for floors starts at y + 160, we will sometimes grab ++ // a higher ledge than expected (glitchy ledge grab) ++ ledgePos[0] = nextPos[0] - wall->normal.x * 60.0f; ++ ledgePos[2] = nextPos[2] - wall->normal.z * 60.0f; ++ ledgePos[1] = find_floor(ledgePos[0], nextPos[1] + 160.0f, ledgePos[2], &ledgeFloor); ++ ++ if (ledgePos[1] - nextPos[1] <= 100.0f) { ++ return 0; ++ } ++ ++ vec3f_copy(m->pos, ledgePos); ++ m->floor = ledgeFloor; ++ m->floorHeight = ledgePos[1]; ++ ++ m->floorAngle = atan2s(ledgeFloor->normal.z, ledgeFloor->normal.x); ++ ++ m->faceAngle[0] = 0; ++ m->faceAngle[1] = atan2s(wall->normal.z, wall->normal.x) + 0x8000; ++ return 1; + } + + s32 perform_air_quarter_step(struct MarioState *m, Vec3f intendedPos, u32 stepArg) { +- s16 wallDYaw; +- Vec3f nextPos; +- struct Surface *upperWall; +- struct Surface *lowerWall; +- struct Surface *ceil; +- struct Surface *floor; +- f32 ceilHeight; +- f32 floorHeight; +- f32 waterLevel; +- +- vec3f_copy(nextPos, intendedPos); +- +- upperWall = resolve_and_return_wall_collisions(nextPos, 150.0f, 50.0f); +- lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 50.0f); +- +- floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); +- ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); +- +- waterLevel = find_water_level(nextPos[0], nextPos[2]); +- +- m->wall = NULL; +- +- //! The water pseudo floor is not referenced when your intended qstep is +- // out of bounds, so it won't detect you as landing. +- +- if (floor == NULL) { +- if (nextPos[1] <= m->floorHeight) { +- m->pos[1] = m->floorHeight; +- return AIR_STEP_LANDED; +- } +- +- m->pos[1] = nextPos[1]; +- return AIR_STEP_HIT_WALL; +- } +- +- if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { +- floorHeight = waterLevel; +- floor = &gWaterSurfacePseudoFloor; +- floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) +- } +- +- //! This check uses f32, but findFloor uses short (overflow jumps) +- if (nextPos[1] <= floorHeight) { +- if (ceilHeight - floorHeight > 160.0f) { +- m->pos[0] = nextPos[0]; +- m->pos[2] = nextPos[2]; +- m->floor = floor; +- m->floorHeight = floorHeight; +- } +- +- //! When ceilHeight - floorHeight <= 160, the step result says that +- // Mario landed, but his movement is cancelled and his referenced floor +- // isn't updated (pedro spots) +- m->pos[1] = floorHeight; +- return AIR_STEP_LANDED; +- } +- +- if (nextPos[1] + 160.0f > ceilHeight) { +- if (m->vel[1] >= 0.0f) { +- m->vel[1] = 0.0f; +- +- //! Uses referenced ceiling instead of ceil (ceiling hang upwarp) +- if ((stepArg & AIR_STEP_CHECK_HANG) && m->ceil != NULL +- && m->ceil->type == SURFACE_HANGABLE) { +- return AIR_STEP_GRABBED_CEILING; +- } +- +- return AIR_STEP_NONE; +- } +- +- //! Potential subframe downwarp->upwarp? +- if (nextPos[1] <= m->floorHeight) { +- m->pos[1] = m->floorHeight; +- return AIR_STEP_LANDED; +- } +- +- m->pos[1] = nextPos[1]; +- return AIR_STEP_HIT_WALL; +- } +- +- //! When the wall is not completely vertical or there is a slight wall +- // misalignment, you can activate these conditions in unexpected situations +- if ((stepArg & AIR_STEP_CHECK_LEDGE_GRAB) && upperWall == NULL && lowerWall != NULL) { +- if (check_ledge_grab(m, lowerWall, intendedPos, nextPos)) { +- return AIR_STEP_GRABBED_LEDGE; +- } +- +- vec3f_copy(m->pos, nextPos); +- m->floor = floor; +- m->floorHeight = floorHeight; +- return AIR_STEP_NONE; +- } +- +- vec3f_copy(m->pos, nextPos); +- m->floor = floor; +- m->floorHeight = floorHeight; +- +- if (upperWall != NULL || lowerWall != NULL) { +- m->wall = upperWall != NULL ? upperWall : lowerWall; +- wallDYaw = atan2s(m->wall->normal.z, m->wall->normal.x) - m->faceAngle[1]; +- +- if (m->wall->type == SURFACE_BURNING) { +- return AIR_STEP_HIT_LAVA_WALL; +- } +- +- if (wallDYaw < -0x6000 || wallDYaw > 0x6000) { +- m->flags |= MARIO_UNKNOWN_30; +- return AIR_STEP_HIT_WALL; +- } +- } +- +- return AIR_STEP_NONE; ++ s16 wallDYaw; ++ Vec3f nextPos; ++ struct Surface *upperWall; ++ struct Surface *lowerWall; ++ struct Surface *ceil; ++ struct Surface *floor; ++ f32 ceilHeight; ++ f32 floorHeight; ++ f32 waterLevel; ++ ++ ++ ++ if ((m->action == ACT_WALKING) && floorHeight < waterLevel && m->forwardVel > 45.0f) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Wrong origin offset (no effect) ++ } ++ ++ vec3f_copy(nextPos, intendedPos); ++ ++ upperWall = resolve_and_return_wall_collisions(nextPos, 150.0f, 50.0f); ++ lowerWall = resolve_and_return_wall_collisions(nextPos, 30.0f, 50.0f); ++ ++ floorHeight = find_floor(nextPos[0], nextPos[1], nextPos[2], &floor); ++ ceilHeight = vec3f_find_ceil(nextPos, floorHeight, &ceil); ++ ++ waterLevel = find_water_level(nextPos[0], nextPos[2]); ++ ++ m->wall = NULL; ++ ++ //! The water pseudo floor is not referenced when your intended qstep is ++ // out of bounds, so it won't detect you as landing. ++ ++ if (floor == NULL) { ++ if (nextPos[1] <= m->floorHeight) { ++ m->pos[1] = m->floorHeight; ++ return AIR_STEP_LANDED; ++ } ++ ++ m->pos[1] = nextPos[1]; ++ return AIR_STEP_HIT_WALL; ++ } ++ ++ if ((m->action & ACT_FLAG_RIDING_SHELL) && floorHeight < waterLevel) { ++ floorHeight = waterLevel; ++ floor = &gWaterSurfacePseudoFloor; ++ floor->originOffset = floorHeight; //! Incorrect origin offset (no effect) ++ } ++ ++ ++ //! This check uses f32, but findFloor uses short (overflow jumps) ++ if (nextPos[1] <= floorHeight) { ++ if (ceilHeight - floorHeight > 160.0f) { ++ m->pos[0] = nextPos[0]; ++ m->pos[2] = nextPos[2]; ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ } ++ ++ //! When ceilHeight - floorHeight <= 160, the step result says that ++ // Mario landed, but his movement is cancelled and his referenced floor ++ // isn't updated (pedro spots) ++ m->pos[1] = floorHeight; ++ return AIR_STEP_LANDED; ++ } ++ ++ if (nextPos[1] + 160.0f > ceilHeight) { ++ if (m->vel[1] >= 0.0f) { ++ m->vel[1] = 0.0f; ++ ++ //! Uses referenced ceiling instead of ceil (ceiling hang upwarp) ++ if ((stepArg & AIR_STEP_CHECK_HANG) && m->ceil != NULL ++ && m->ceil->type == SURFACE_HANGABLE) { ++ return AIR_STEP_GRABBED_CEILING; ++ } ++ ++ return AIR_STEP_NONE; ++ } ++ ++ //! Potential subframe downwarp->upwarp? ++ if (nextPos[1] <= m->floorHeight) { ++ m->pos[1] = m->floorHeight; ++ return AIR_STEP_LANDED; ++ } ++ ++ m->pos[1] = nextPos[1]; ++ return AIR_STEP_HIT_WALL; ++ } ++ ++ //! When the wall is not completely vertical or there is a slight wall ++ // misalignment, you can activate these conditions in unexpected situations ++ if ((stepArg & AIR_STEP_CHECK_LEDGE_GRAB) && upperWall == NULL && lowerWall != NULL) { ++ if (check_ledge_grab(m, lowerWall, intendedPos, nextPos)) { ++ return AIR_STEP_GRABBED_LEDGE; ++ } ++ ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ return AIR_STEP_NONE; ++ } ++ ++ vec3f_copy(m->pos, nextPos); ++ m->floor = floor; ++ m->floorHeight = floorHeight; ++ ++ if (upperWall != NULL || lowerWall != NULL) { ++ m->wall = upperWall != NULL ? upperWall : lowerWall; ++ wallDYaw = atan2s(m->wall->normal.z, m->wall->normal.x) - m->faceAngle[1]; ++ ++ if (m->wall->type == SURFACE_BURNING) { ++ return AIR_STEP_HIT_LAVA_WALL; ++ } ++ ++ if (wallDYaw < -0x6000 || wallDYaw > 0x6000) { ++ m->flags |= MARIO_UNKNOWN_30; ++ return AIR_STEP_HIT_WALL; ++ } ++ } ++ ++ return AIR_STEP_NONE; + } + + void apply_twirl_gravity(struct MarioState *m) { +- f32 terminalVelocity; +- f32 heaviness = 1.0f; ++ f32 terminalVelocity; ++ f32 heaviness = 1.0f; + +- if (m->angleVel[1] > 1024) { +- heaviness = 1024.0f / m->angleVel[1]; +- } ++ if (m->angleVel[1] > 1024) { ++ heaviness = 1024.0f / m->angleVel[1]; ++ } + +- terminalVelocity = -75.0f * heaviness; ++ terminalVelocity = -75.0f * heaviness; + +- m->vel[1] -= 4.0f * heaviness; +- if (m->vel[1] < terminalVelocity) { +- m->vel[1] = terminalVelocity; +- } ++ m->vel[1] -= 4.0f * heaviness; ++ if (m->vel[1] < terminalVelocity) { ++ m->vel[1] = terminalVelocity; ++ } + } + + u32 should_strengthen_gravity_for_jump_ascent(struct MarioState *m) { +- if (!(m->flags & MARIO_UNKNOWN_08)) { +- return FALSE; +- } ++ if (!(m->flags & MARIO_UNKNOWN_08)) { ++ return FALSE; ++ } + +- if (m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)) { +- return FALSE; +- } ++ if (m->action & (ACT_FLAG_INTANGIBLE | ACT_FLAG_INVULNERABLE)) { ++ return FALSE; ++ } + +- if (!(m->input & INPUT_A_DOWN) && m->vel[1] > 20.0f) { +- return (m->action & ACT_FLAG_CONTROL_JUMP_HEIGHT) != 0; +- } ++ if (!(m->input & INPUT_A_DOWN) && m->vel[1] > 20.0f) { ++ return (m->action & ACT_FLAG_CONTROL_JUMP_HEIGHT) != 0; ++ } + +- return FALSE; ++ return FALSE; + } + + void apply_gravity(struct MarioState *m) { +- if (m->action == ACT_TWIRLING && m->vel[1] < 0.0f) { +- apply_twirl_gravity(m); +- } else if (m->action == ACT_SHOT_FROM_CANNON) { +- m->vel[1] -= 1.0f; +- if (m->vel[1] < -75.0f) { +- m->vel[1] = -75.0f; +- } +- } else if (m->action == ACT_LONG_JUMP || m->action == ACT_SLIDE_KICK +- || m->action == ACT_BBH_ENTER_SPIN) { +- m->vel[1] -= 2.0f; +- if (m->vel[1] < -75.0f) { +- m->vel[1] = -75.0f; +- } +- } else if (m->action == ACT_LAVA_BOOST || m->action == ACT_FALL_AFTER_STAR_GRAB) { +- m->vel[1] -= 3.2f; +- if (m->vel[1] < -65.0f) { +- m->vel[1] = -65.0f; +- } +- } else if (m->action == ACT_GETTING_BLOWN) { +- m->vel[1] -= m->unkC4; +- if (m->vel[1] < -75.0f) { +- m->vel[1] = -75.0f; +- } +- } else if (should_strengthen_gravity_for_jump_ascent(m)) { +- m->vel[1] /= 4.0f; +- } else if (m->action & ACT_FLAG_METAL_WATER) { +- m->vel[1] -= 1.6f; +- if (m->vel[1] < -16.0f) { +- m->vel[1] = -16.0f; +- } +- } else if ((m->flags & MARIO_WING_CAP) && m->vel[1] < 0.0f && (m->input & INPUT_A_DOWN)) { +- m->marioBodyState->wingFlutter = TRUE; +- +- m->vel[1] -= 2.0f; +- if (m->vel[1] < -37.5f) { +- if ((m->vel[1] += 4.0f) > -37.5f) { +- m->vel[1] = -37.5f; +- } +- } +- } else { +- m->vel[1] -= 4.0f; +- if (m->vel[1] < -75.0f) { +- m->vel[1] = -75.0f; +- } +- } ++ if (m->action == ACT_TWIRLING && m->vel[1] < 0.0f) { ++ apply_twirl_gravity(m); ++ } ++ else if (m->action == ACT_SHOT_FROM_CANNON) { ++ m->vel[1] -= 1.0f; ++ if (m->vel[1] < -75.0f) { ++ m->vel[1] = -75.0f; ++ } ++ } ++ else if (m->action == ACT_LONG_JUMP || m->action == ACT_SLIDE_KICK ++ || m->action == ACT_BBH_ENTER_SPIN) { ++ m->vel[1] -= 2.0f; ++ if (m->vel[1] < -75.0f) { ++ m->vel[1] = -75.0f; ++ } ++ } ++ else if (m->action == ACT_LAVA_BOOST || m->action == ACT_FALL_AFTER_STAR_GRAB) { ++ m->vel[1] -= 3.2f; ++ if (m->vel[1] < -65.0f) { ++ m->vel[1] = -65.0f; ++ } ++ } ++ else if (m->action == ACT_GETTING_BLOWN) { ++ m->vel[1] -= m->unkC4; ++ if (m->vel[1] < -75.0f) { ++ m->vel[1] = -75.0f; ++ } ++ } ++ else if (should_strengthen_gravity_for_jump_ascent(m)) { ++ m->vel[1] /= 4.0f; ++ } ++ else if (m->action & ACT_FLAG_METAL_WATER) { ++ m->vel[1] -= 1.6f; ++ if (m->vel[1] < -16.0f) { ++ m->vel[1] = -16.0f; ++ } ++ } ++ else if ((m->flags & MARIO_WING_CAP) && m->vel[1] < 0.0f && (m->input & INPUT_A_DOWN)) { ++ m->marioBodyState->wingFlutter = TRUE; ++ ++ m->vel[1] -= 2.0f; ++ if (m->vel[1] < -37.5f) { ++ if ((m->vel[1] += 4.0f) > -37.5f) { ++ m->vel[1] = -37.5f; ++ } ++ } ++ } ++ else { ++ m->vel[1] -= 4.0f; ++ if (m->vel[1] < -75.0f) { ++ m->vel[1] = -75.0f; ++ } ++ } + } + + void apply_vertical_wind(struct MarioState *m) { +- f32 maxVelY; +- f32 offsetY; +- +- if (m->action != ACT_GROUND_POUND) { +- offsetY = m->pos[1] - -1500.0f; +- +- if (m->floor->type == SURFACE_VERTICAL_WIND && -3000.0f < offsetY && offsetY < 2000.0f) { +- if (offsetY >= 0.0f) { +- maxVelY = 10000.0f / (offsetY + 200.0f); +- } else { +- maxVelY = 50.0f; +- } +- +- if (m->vel[1] < maxVelY) { +- if ((m->vel[1] += maxVelY / 8.0f) > maxVelY) { +- m->vel[1] = maxVelY; +- } +- } ++ f32 maxVelY; ++ f32 offsetY; ++ ++ if (m->action != ACT_GROUND_POUND) { ++ offsetY = m->pos[1] - -1500.0f; ++ ++ if (m->floor->type == SURFACE_VERTICAL_WIND && -3000.0f < offsetY && offsetY < 2000.0f) { ++ if (offsetY >= 0.0f) { ++ maxVelY = 10000.0f / (offsetY + 200.0f); ++ } ++ else { ++ maxVelY = 50.0f; ++ } ++ ++ if (m->vel[1] < maxVelY) { ++ if ((m->vel[1] += maxVelY / 8.0f) > maxVelY) { ++ m->vel[1] = maxVelY; ++ } ++ } + + #ifdef VERSION_JP +- play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); ++ play_sound(SOUND_ENV_WIND2, m->marioObj->header.gfx.cameraToObject); + #endif +- } +- } ++ } ++ } + } + + s32 perform_air_step(struct MarioState *m, u32 stepArg) { +- Vec3f intendedPos; +- s32 i; +- s32 quarterStepResult; +- s32 stepResult = AIR_STEP_NONE; ++ Vec3f intendedPos; ++ s32 i; ++ s32 quarterStepResult; ++ s32 stepResult = AIR_STEP_NONE; ++ ++ m->wall = NULL; + +- m->wall = NULL; + +- for (i = 0; i < 4; i++) { +- intendedPos[0] = m->pos[0] + m->vel[0] / 4.0f; +- intendedPos[1] = m->pos[1] + m->vel[1] / 4.0f; +- intendedPos[2] = m->pos[2] + m->vel[2] / 4.0f; ++ for (i = 0; i < 4; i++) { ++ intendedPos[0] = m->pos[0] + m->vel[0] / 4.0f; ++ intendedPos[1] = m->pos[1] + m->vel[1] / 4.0f; ++ intendedPos[2] = m->pos[2] + m->vel[2] / 4.0f; + +- quarterStepResult = perform_air_quarter_step(m, intendedPos, stepArg); ++ quarterStepResult = perform_air_quarter_step(m, intendedPos, stepArg); + +- //! On one qf, hit OOB/ceil/wall to store the 2 return value, and continue +- // getting 0s until your last qf. Graze a wall on your last qf, and it will +- // return the stored 2 with a sharply angled reference wall. (some gwks) ++ //! On one qf, hit OOB/ceil/wall to store the 2 return value, and continue ++ // getting 0s until your last qf. Graze a wall on your last qf, and it will ++ // return the stored 2 with a sharply angled reference wall. (some gwks) + +- if (quarterStepResult != AIR_STEP_NONE) { +- stepResult = quarterStepResult; +- } ++ if (quarterStepResult != AIR_STEP_NONE) { ++ stepResult = quarterStepResult; ++ } + +- if (quarterStepResult == AIR_STEP_LANDED || quarterStepResult == AIR_STEP_GRABBED_LEDGE +- || quarterStepResult == AIR_STEP_GRABBED_CEILING +- || quarterStepResult == AIR_STEP_HIT_LAVA_WALL) { +- break; +- } +- } ++ if (quarterStepResult == AIR_STEP_LANDED || quarterStepResult == AIR_STEP_GRABBED_LEDGE ++ || quarterStepResult == AIR_STEP_GRABBED_CEILING ++ || quarterStepResult == AIR_STEP_HIT_LAVA_WALL) { ++ break; ++ } ++ } + +- if (m->vel[1] >= 0.0f) { +- m->peakHeight = m->pos[1]; +- } ++ if (m->vel[1] >= 0.0f) { ++ m->peakHeight = m->pos[1]; ++ } + +- m->terrainSoundAddend = mario_get_terrain_sound_addend(m); ++ m->terrainSoundAddend = mario_get_terrain_sound_addend(m); + +- if (m->action != ACT_FLYING) { +- apply_gravity(m); +- } +- apply_vertical_wind(m); ++ if (m->action != ACT_FLYING) { ++ apply_gravity(m); ++ } ++ apply_vertical_wind(m); + +- vec3f_copy(m->marioObj->header.gfx.pos, m->pos); +- vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); ++ vec3f_copy(m->marioObj->header.gfx.pos, m->pos); ++ vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); + +- return stepResult; ++ return stepResult; + } + + // They had these functions the whole time and never used them? Lol + + void set_vel_from_pitch_and_yaw(struct MarioState *m) { +- m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); +- m->vel[1] = m->forwardVel * sins(m->faceAngle[0]); +- m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); ++ m->vel[0] = m->forwardVel * coss(m->faceAngle[0]) * sins(m->faceAngle[1]); ++ m->vel[1] = m->forwardVel * sins(m->faceAngle[0]); ++ m->vel[2] = m->forwardVel * coss(m->faceAngle[0]) * coss(m->faceAngle[1]); + } + + void set_vel_from_yaw(struct MarioState *m) { +- m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); +- m->vel[1] = 0.0f; +- m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); ++ m->vel[0] = m->slideVelX = m->forwardVel * sins(m->faceAngle[1]); ++ m->vel[1] = 0.0f; ++ m->vel[2] = m->slideVelZ = m->forwardVel * coss(m->faceAngle[1]); + } diff --git a/src/game/memory.c b/src/game/memory.c index 5f3b329d..326e24c1 100644 --- a/src/game/memory.c +++ b/src/game/memory.c @@ -54,7 +54,9 @@ extern struct MainPoolBlock *sPoolListHeadR; */ struct MemoryPool *gEffectsMemoryPool; + uintptr_t sSegmentTable[32]; +uintptr_t sSegmentROMTable[32]; u32 sPoolFreeSpace; u8 *sPoolStart; u8 *sPoolEnd; @@ -284,7 +286,7 @@ void *load_segment(s32 segment, u8 *srcStart, u8 *srcEnd, u32 side) { void *addr = dynamic_dma_read(srcStart, srcEnd, side); if (addr != NULL) { - set_segment_base_addr(segment, addr); + set_segment_base_addr(segment, addr); sSegmentROMTable[segment] = (uintptr_t) srcStart; } return addr; } @@ -333,7 +335,7 @@ void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd) { dest = main_pool_alloc(*size, MEMORY_POOL_LEFT); if (dest != NULL) { decompress(compressed, dest); - set_segment_base_addr(segment, dest); + set_segment_base_addr(segment, dest); sSegmentROMTable[segment] = (uintptr_t) srcStart; main_pool_free(compressed); } else { } @@ -351,7 +353,7 @@ void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd) { if (compressed != NULL) { dma_read(compressed, srcStart, srcEnd); decompress(compressed, gDecompressionHeap); - set_segment_base_addr(segment, gDecompressionHeap); + set_segment_base_addr(segment, gDecompressionHeap); sSegmentROMTable[segment] = (uintptr_t) srcStart; main_pool_free(compressed); } else { } diff --git a/src/game/memory.c.rej b/src/game/memory.c.rej new file mode 100644 index 00000000..6162b515 --- /dev/null +++ b/src/game/memory.c.rej @@ -0,0 +1,38 @@ +diff a/src/game/memory.c b/src/game/memory.c (rejected hunks) +@@ -54,7 +54,9 @@ extern struct MainPoolBlock *sPoolListHeadR; + */ + struct MemoryPool *gEffectsMemoryPool; + ++ + uintptr_t sSegmentTable[32]; ++uintptr_t sSegmentROMTable[32]; + u32 sPoolFreeSpace; + u8 *sPoolStart; + u8 *sPoolEnd; +@@ -284,7 +286,7 @@ void *load_segment(s32 segment, u8 *srcStart, u8 *srcEnd, u32 side) { + void *addr = dynamic_dma_read(srcStart, srcEnd, side); + + if (addr != NULL) { +- set_segment_base_addr(segment, addr); ++ set_segment_base_addr(segment, addr); sSegmentROMTable[segment] = (uintptr_t) srcStart; + } + return addr; + } +@@ -333,7 +335,7 @@ void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd) { + dest = main_pool_alloc(*size, MEMORY_POOL_LEFT); + if (dest != NULL) { + decompress(compressed, dest); +- set_segment_base_addr(segment, dest); ++ set_segment_base_addr(segment, dest); sSegmentROMTable[segment] = (uintptr_t) srcStart; + main_pool_free(compressed); + } else { + } +@@ -351,7 +353,7 @@ void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd) { + if (compressed != NULL) { + dma_read(compressed, srcStart, srcEnd); + decompress(compressed, gDecompressionHeap); +- set_segment_base_addr(segment, gDecompressionHeap); ++ set_segment_base_addr(segment, gDecompressionHeap); sSegmentROMTable[segment] = (uintptr_t) srcStart; + main_pool_free(compressed); + } else { + } diff --git a/src/game/memory.h b/src/game/memory.h index 7a51e590..90fa61b8 100644 --- a/src/game/memory.h +++ b/src/game/memory.h @@ -66,4 +66,6 @@ void *alloc_display_list(u32 size); void func_80278A78(struct MarioAnimation *a, void *b, struct Animation *target); s32 load_patchable_table(struct MarioAnimation *a, u32 b); + +extern uintptr_t sSegmentROMTable[32]; #endif // MEMORY_H diff --git a/src/game/memory.h.rej b/src/game/memory.h.rej new file mode 100644 index 00000000..c9499d79 --- /dev/null +++ b/src/game/memory.h.rej @@ -0,0 +1,8 @@ +diff a/src/game/memory.h b/src/game/memory.h (rejected hunks) +@@ -66,4 +66,6 @@ void *alloc_display_list(u32 size); + void func_80278A78(struct MarioAnimation *a, void *b, struct Animation *target); + s32 load_patchable_table(struct MarioAnimation *a, u32 b); + ++ ++extern uintptr_t sSegmentROMTable[32]; + #endif // MEMORY_H diff --git a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c index 64bb141e..2b4f5fb0 100644 --- a/src/game/obj_behaviors.c +++ b/src/game/obj_behaviors.c @@ -852,3 +852,7 @@ s8 UNUSED debug_sequence_tracker(s16 debugInputSequence[]) { #include "behaviors/treasure_chest.inc.c" #include "behaviors/mips.inc.c" #include "behaviors/yoshi.inc.c" + +//sonic +#include "behaviors/reticle.inc.c" +#include "behaviors/emerald_circle.inc.c" diff --git a/src/game/obj_behaviors.c.rej b/src/game/obj_behaviors.c.rej new file mode 100644 index 00000000..1123a806 --- /dev/null +++ b/src/game/obj_behaviors.c.rej @@ -0,0 +1,7 @@ +diff a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c (rejected hunks) +@@ -852,3 +852,5 @@ s8 UNUSED debug_sequence_tracker(s16 debugInputSequence[]) { + #include "behaviors/treasure_chest.inc.c" + #include "behaviors/mips.inc.c" + #include "behaviors/yoshi.inc.c" ++#include "behaviors/reticle.inc.c" ++#include "behaviors/emerald_circle.inc.c" diff --git a/src/game/obj_behaviors.h b/src/game/obj_behaviors.h index 02a0567f..4beac62a 100644 --- a/src/game/obj_behaviors.h +++ b/src/game/obj_behaviors.h @@ -11,6 +11,9 @@ void set_yoshi_as_not_dead(void); s32 coin_step(s16 *collisionFlagsPtr); void moving_coin_flicker(void); void coin_collected(void); + + + void bhv_moving_yellow_coin_init(void); void bhv_moving_yellow_coin_loop(void); void bhv_moving_blue_coin_init(void); diff --git a/src/game/obj_behaviors_2.c b/src/game/obj_behaviors_2.c index 056d178a..96ab1b00 100644 --- a/src/game/obj_behaviors_2.c +++ b/src/game/obj_behaviors_2.c @@ -640,6 +640,11 @@ static void obj_die_if_health_non_positive(void) { } } + + + + + static void obj_unused_die(void) { o->oHealth = 0; obj_die_if_health_non_positive(); diff --git a/src/game/obj_behaviors_2.c.rej b/src/game/obj_behaviors_2.c.rej new file mode 100644 index 00000000..2ca8dbf5 --- /dev/null +++ b/src/game/obj_behaviors_2.c.rej @@ -0,0 +1,13 @@ +diff a/src/game/obj_behaviors_2.c b/src/game/obj_behaviors_2.c (rejected hunks) +@@ -640,6 +640,11 @@ static void obj_die_if_health_non_positive(void) { + } + } + ++ ++ ++ ++ ++ + static void obj_unused_die(void) { + o->oHealth = 0; + obj_die_if_health_non_positive(); diff --git a/src/game/object_helpers.c b/src/game/object_helpers.c index 0d86000b..74feb1a9 100644 --- a/src/game/object_helpers.c +++ b/src/game/object_helpers.c @@ -849,7 +849,7 @@ struct Object *cur_obj_find_nearest_object_with_behavior(const BehaviorScript *b while (obj != (struct Object *) listHead) { if (obj->behavior == behaviorAddr) { - if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o) { + if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o && obj->oAction != OBJ_ACT_HORIZONTAL_KNOCKBACK && obj->oAction != OBJ_ACT_VERTICAL_KNOCKBACK && obj->oAction != OBJ_ACT_SQUISHED) { f32 objDist = dist_between_objects(o, obj); if (objDist < minDist) { closestObj = obj; @@ -2787,6 +2787,10 @@ s32 obj_attack_collided_from_other_object(struct Object *obj) { s32 cur_obj_was_attacked_or_ground_pounded(void) { s32 attacked = FALSE; + if ((o->oInteractStatus & INT_STATUS_INTERACTED) && (gMarioState->action == ACT_SLIDE_KICK_SLIDE)) + { + attacked = TRUE; + } if ((o->oInteractStatus & INT_STATUS_INTERACTED) && (o->oInteractStatus & INT_STATUS_WAS_ATTACKED)) { diff --git a/src/game/object_helpers.c.rej b/src/game/object_helpers.c.rej new file mode 100644 index 00000000..b2416786 --- /dev/null +++ b/src/game/object_helpers.c.rej @@ -0,0 +1,21 @@ +diff a/src/game/object_helpers.c b/src/game/object_helpers.c (rejected hunks) +@@ -849,7 +849,7 @@ struct Object *cur_obj_find_nearest_object_with_behavior(const BehaviorScript *b + + while (obj != (struct Object *) listHead) { + if (obj->behavior == behaviorAddr) { +- if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o) { ++ if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && obj != o && obj->oAction != OBJ_ACT_HORIZONTAL_KNOCKBACK && obj->oAction != OBJ_ACT_VERTICAL_KNOCKBACK && obj->oAction != OBJ_ACT_SQUISHED) { + f32 objDist = dist_between_objects(o, obj); + if (objDist < minDist) { + closestObj = obj; +@@ -2787,6 +2787,10 @@ s32 obj_attack_collided_from_other_object(struct Object *obj) { + + s32 cur_obj_was_attacked_or_ground_pounded(void) { + s32 attacked = FALSE; ++ if ((o->oInteractStatus & INT_STATUS_INTERACTED) && (gMarioState->action == ACT_SLIDE_KICK_SLIDE)) ++ { ++ attacked = TRUE; ++ } + + if ((o->oInteractStatus & INT_STATUS_INTERACTED) + && (o->oInteractStatus & INT_STATUS_WAS_ATTACKED)) { diff --git a/src/game/object_list_processor.c b/src/game/object_list_processor.c index d01f5eb4..446189b8 100644 --- a/src/game/object_list_processor.c +++ b/src/game/object_list_processor.c @@ -200,6 +200,10 @@ struct ParticleProperties sParticleTypes[] = { { PARTICLE_VERTICAL_STAR, ACTIVE_PARTICLE_V_STAR, MODEL_NONE, bhvVertStarParticleSpawner }, { PARTICLE_HORIZONTAL_STAR, ACTIVE_PARTICLE_H_STAR, MODEL_NONE, bhvHorStarParticleSpawner }, { PARTICLE_SPARKLES, ACTIVE_PARTICLE_SPARKLES, MODEL_SPARKLES, bhvSparkleParticleSpawner }, + { PARTICLE_SONIC_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawner }, + { PARTICLE_SONIC_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawnerRolling }, + { PARTICLE_SUPER_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawner }, + { PARTICLE_SUPER_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawnerRolling }, { PARTICLE_BUBBLE, ACTIVE_PARTICLE_BUBBLE, MODEL_BUBBLE, bhvBubbleParticleSpawner }, { PARTICLE_WATER_SPLASH, ACTIVE_PARTICLE_WATER_SPLASH, MODEL_WATER_SPLASH, bhvWaterSplash }, { PARTICLE_IDLE_WATER_WAVE, ACTIVE_PARTICLE_IDLE_WATER_WAVE, MODEL_IDLE_WATER_WAVE, bhvIdleWaterWave }, @@ -455,7 +459,7 @@ void spawn_objects_from_info(UNUSED s32 unused, struct SpawnInfo *spawnInfo) { gTimeStopState = 0; gWDWWaterLevelChanging = FALSE; - gMarioOnMerryGoRound = FALSE; + gMarioOnMerryGoRound = 0; //! (Spawning Displacement) On the Japanese version, Mario's platform object // isn't cleared when transitioning between areas. This can cause Mario to diff --git a/src/game/object_list_processor.c.rej b/src/game/object_list_processor.c.rej new file mode 100644 index 00000000..730ce59c --- /dev/null +++ b/src/game/object_list_processor.c.rej @@ -0,0 +1,21 @@ +diff a/src/game/object_list_processor.c b/src/game/object_list_processor.c (rejected hunks) +@@ -200,6 +200,10 @@ struct ParticleProperties sParticleTypes[] = { + { PARTICLE_VERTICAL_STAR, ACTIVE_PARTICLE_V_STAR, MODEL_NONE, bhvVertStarParticleSpawner }, + { PARTICLE_HORIZONTAL_STAR, ACTIVE_PARTICLE_H_STAR, MODEL_NONE, bhvHorStarParticleSpawner }, + { PARTICLE_SPARKLES, ACTIVE_PARTICLE_SPARKLES, MODEL_SPARKLES, bhvSparkleParticleSpawner }, ++ { PARTICLE_SONIC_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawner }, ++ { PARTICLE_SONIC_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SONIC_TRAIL, bhvSonicTrailParticleSpawnerRolling }, ++ { PARTICLE_SUPER_TRAIL, ACTIVE_PARTICLE_SONIC_TRAIL, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawner }, ++ { PARTICLE_SUPER_TRAIL_ROLLING, ACTIVE_PARTICLE_SONIC_TRAIL_ROLLING, MODEL_SUPER_TRAIL, bhvSonicTrailParticleSpawnerRolling }, + { PARTICLE_BUBBLE, ACTIVE_PARTICLE_BUBBLE, MODEL_BUBBLE, bhvBubbleParticleSpawner }, + { PARTICLE_WATER_SPLASH, ACTIVE_PARTICLE_WATER_SPLASH, MODEL_WATER_SPLASH, bhvWaterSplash }, + { PARTICLE_IDLE_WATER_WAVE, ACTIVE_PARTICLE_IDLE_WATER_WAVE, MODEL_IDLE_WATER_WAVE, bhvIdleWaterWave }, +@@ -455,7 +459,7 @@ void spawn_objects_from_info(UNUSED s32 unused, struct SpawnInfo *spawnInfo) { + gTimeStopState = 0; + + gWDWWaterLevelChanging = FALSE; +- gMarioOnMerryGoRound = FALSE; ++ gMarioOnMerryGoRound = 0; + + //! (Spawning Displacement) On the Japanese version, Mario's platform object + // isn't cleared when transitioning between areas. This can cause Mario to diff --git a/src/game/sound_init.c b/src/game/sound_init.c index 49122920..6979005c 100644 --- a/src/game/sound_init.c +++ b/src/game/sound_init.c @@ -184,7 +184,7 @@ void play_menu_sounds(s16 soundMenuFlags) { void play_painting_eject_sound(void) { if (gRipplingPainting != NULL && gRipplingPainting->state == PAINTING_ENTERED) { // ripple when Mario enters painting - if (!sPaintingEjectSoundPlayed) { + if (sPaintingEjectSoundPlayed == FALSE) { play_sound(SOUND_GENERAL_PAINTING_EJECT, gMarioStates[0].marioObj->header.gfx.cameraToObject); } @@ -283,6 +283,23 @@ void stop_shell_music(void) { } } +void play_drown_music(void) { + play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(7, SEQ_DROWN), 0); + sCurrentShellMusic = SEQUENCE_ARGS(7, SEQ_DROWN); + //sCurrentShellMusic = SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE); + //sCurrentShellMusic = SEQUENCE_ARGS(4, SEQ_LEVEL_SLIDE); +} + +void stop_drown_music(void) { + if (sCurrentShellMusic != MUSIC_NONE) { + //play_music(0, SEQUENCE_ARGS(4, 0), 0); + stop_background_music(sCurrentShellMusic); + sCurrentShellMusic = MUSIC_NONE; + sCurrentMusic = MUSIC_NONE; + } +} + + /** * Called from threads: thread5_game_loop */ @@ -303,6 +320,8 @@ void fadeout_cap_music(void) { } } + + /** * Called from threads: thread5_game_loop */ diff --git a/src/game/sound_init.c.rej b/src/game/sound_init.c.rej new file mode 100644 index 00000000..cd79f217 --- /dev/null +++ b/src/game/sound_init.c.rej @@ -0,0 +1,10 @@ +diff a/src/game/sound_init.c b/src/game/sound_init.c (rejected hunks) +@@ -184,7 +184,7 @@ void play_menu_sounds(s16 soundMenuFlags) { + void play_painting_eject_sound(void) { + if (gRipplingPainting != NULL && gRipplingPainting->state == PAINTING_ENTERED) { + // ripple when Mario enters painting +- if (!sPaintingEjectSoundPlayed) { ++ if (sPaintingEjectSoundPlayed == FALSE) { + play_sound(SOUND_GENERAL_PAINTING_EJECT, + gMarioStates[0].marioObj->header.gfx.cameraToObject); + } diff --git a/src/game/sound_init.h b/src/game/sound_init.h index a03c5d84..52e77d4c 100644 --- a/src/game/sound_init.h +++ b/src/game/sound_init.h @@ -33,6 +33,10 @@ void fadeout_level_music(s16 fadeTimer); void play_cutscene_music(u16 seqArgs); void play_shell_music(void); void stop_shell_music(void); +//sonic +void play_drown_music(void); +void stop_drown_music(void); + void play_cap_music(u16 seqArgs); void fadeout_cap_music(void); void stop_cap_music(void); diff --git a/src/game/sound_init.h.rej b/src/game/sound_init.h.rej new file mode 100644 index 00000000..39341cc4 --- /dev/null +++ b/src/game/sound_init.h.rej @@ -0,0 +1,10 @@ +diff a/src/game/sound_init.h b/src/game/sound_init.h (rejected hunks) +@@ -33,6 +33,8 @@ void fadeout_level_music(s16 fadeTimer); + void play_cutscene_music(u16 seqArgs); + void play_shell_music(void); + void stop_shell_music(void); ++void play_drown_music(void); ++void stop_drown_music(void); + void play_cap_music(u16 seqArgs); + void fadeout_cap_music(void); + void stop_cap_music(void); diff --git a/src/game/texscroll.c b/src/game/texscroll.c new file mode 100644 index 00000000..cb59e13a --- /dev/null +++ b/src/game/texscroll.c @@ -0,0 +1,26 @@ +#include "types.h" +#include "include/segment_symbols.h" +#include "memory.h" +#include "engine/math_util.h" +#include "src/engine/behavior_script.h" +#include "texscroll.h" + +#ifdef TARGET_N64 +#define SCROLL_CONDITION(condition) condition +#else +#define SCROLL_CONDITION(condition) 1 +#endif + + +#include "src/game/texscroll/group0_texscroll.inc.c" +#include "src/game/texscroll/castle_grounds_texscroll.inc.c" +void scroll_textures() { + if(SCROLL_CONDITION(sSegmentROMTable[0x4] == (uintptr_t)_group0_mio0SegmentRomStart)) { + scroll_textures_group0(); + } + + if(SCROLL_CONDITION(sSegmentROMTable[0x7] == (uintptr_t)_castle_grounds_segment_7SegmentRomStart)) { + scroll_textures_castle_grounds(); + } + +} diff --git a/src/game/texscroll.h b/src/game/texscroll.h new file mode 100644 index 00000000..8b364065 --- /dev/null +++ b/src/game/texscroll.h @@ -0,0 +1,8 @@ +#ifndef TEXSCROLL_H +#define TEXSCROLL_H + +#include "src/game/texscroll/group0_texscroll.inc.h" +#include "src/game/texscroll/castle_grounds_texscroll.inc.h" +extern void scroll_textures(); + +#endif diff --git a/src/game/texscroll/castle_grounds_texscroll.inc.c b/src/game/texscroll/castle_grounds_texscroll.inc.c new file mode 100644 index 00000000..e52a1908 --- /dev/null +++ b/src/game/texscroll/castle_grounds_texscroll.inc.c @@ -0,0 +1,4 @@ +#include "levels/castle_grounds/header.h" +void scroll_textures_castle_grounds() { + +} diff --git a/src/game/texscroll/castle_grounds_texscroll.inc.h b/src/game/texscroll/castle_grounds_texscroll.inc.h new file mode 100644 index 00000000..404d82ff --- /dev/null +++ b/src/game/texscroll/castle_grounds_texscroll.inc.h @@ -0,0 +1 @@ +extern void scroll_textures_castle_grounds(); diff --git a/src/game/texscroll/group0_texscroll.inc.c b/src/game/texscroll/group0_texscroll.inc.c new file mode 100644 index 00000000..5d9e0e31 --- /dev/null +++ b/src/game/texscroll/group0_texscroll.inc.c @@ -0,0 +1,8 @@ +#include "actors/group0.h" + +void scroll_textures_group0() { + + + + + } diff --git a/src/game/texscroll/group0_texscroll.inc.h b/src/game/texscroll/group0_texscroll.inc.h new file mode 100644 index 00000000..021d470b --- /dev/null +++ b/src/game/texscroll/group0_texscroll.inc.h @@ -0,0 +1 @@ +extern void scroll_textures_group0(); diff --git a/src/menu/file_select.c b/src/menu/file_select.c index c8947978..7b960fa9 100644 --- a/src/menu/file_select.c +++ b/src/menu/file_select.c @@ -158,6 +158,9 @@ static unsigned char textMarioB[] = { TEXT_FILE_MARIO_B }; static unsigned char textMarioC[] = { TEXT_FILE_MARIO_C }; static unsigned char textMarioD[] = { TEXT_FILE_MARIO_D }; +static unsigned char textHealthM[] = { TEXT_MARIO_HEALTH_FILE }; +static unsigned char textHealthS[] = { TEXT_SONIC_HEALTH_FILE }; + #ifndef VERSION_EU static unsigned char textNew[] = { TEXT_NEW }; static unsigned char starIcon[] = { GLYPH_STAR, GLYPH_SPACE }; @@ -1616,6 +1619,17 @@ void bhv_menu_button_manager_loop(void) { * If the cursor is clicked, sClickPos uses the same value as sCursorPos. */ void handle_cursor_button_input(void) { + if (gPlayer3Controller->buttonPressed & Z_TRIG) { + if (gDialogHealthSystem == MARIO_HEALTH) { + gDialogHealthSystem = SONIC_HEALTH; + play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); + } + else + { + gDialogHealthSystem = MARIO_HEALTH; + play_sound(SOUND_GENERAL_HEART_SPIN, gGlobalSoundSource); + } +} // If scoring a file, pressing A just changes the coin score mode. if (sSelectedButtonID == MENU_BUTTON_SCORE_FILE_A || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_B || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_C @@ -1792,7 +1806,7 @@ void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { #define MARIOTEXT_X1 92 #define MARIOTEXT_X2 207 #elif defined(VERSION_US) - #define SELECT_FILE_X 93 +#define SELECT_FILE_X 50 #define SCORE_X 52 #define COPY_X 117 #define ERASE_X 177 @@ -1820,6 +1834,29 @@ void print_main_menu_strings(void) { // The current sound mode is automatically centered on US and Shindou. static s16 sSoundTextX; // TODO: There should be a way to make this match on both US and Shindou. #endif + + if (gDialogHealthSystem == MARIO_HEALTH) { + gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); + gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); + + print_menu_generic_string(193, 41, textHealthM); + + + gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); + + + } + else + { + gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); + gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); + + print_menu_generic_string(193, 41, textHealthS); + + gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); + + } + // Print "SELECT FILE" text gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); @@ -1951,6 +1988,9 @@ void print_score_menu_strings(void) { s16 centeredX; #endif + + + // Update and print the message at the top of the menu. if (sMainMenuTimer == FADEOUT_TIMER) { sFadeOutText = TRUE; diff --git a/src/menu/file_select.c.rej b/src/menu/file_select.c.rej new file mode 100644 index 00000000..fa2272df --- /dev/null +++ b/src/menu/file_select.c.rej @@ -0,0 +1,78 @@ +diff a/src/menu/file_select.c b/src/menu/file_select.c (rejected hunks) +@@ -158,6 +158,9 @@ static unsigned char textMarioB[] = { TEXT_FILE_MARIO_B }; + static unsigned char textMarioC[] = { TEXT_FILE_MARIO_C }; + static unsigned char textMarioD[] = { TEXT_FILE_MARIO_D }; + ++static unsigned char textHealthM[] = { TEXT_MARIO_HEALTH_FILE }; ++static unsigned char textHealthS[] = { TEXT_SONIC_HEALTH_FILE }; ++ + #ifndef VERSION_EU + static unsigned char textNew[] = { TEXT_NEW }; + static unsigned char starIcon[] = { GLYPH_STAR, GLYPH_SPACE }; +@@ -1616,6 +1619,17 @@ void bhv_menu_button_manager_loop(void) { + * If the cursor is clicked, sClickPos uses the same value as sCursorPos. + */ + void handle_cursor_button_input(void) { ++ if (gPlayer3Controller->buttonPressed & Z_TRIG) { ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gDialogHealthSystem = SONIC_HEALTH; ++ play_sound(SOUND_GENERAL_RINGLOSS, gGlobalSoundSource); ++ } ++ else ++ { ++ gDialogHealthSystem = MARIO_HEALTH; ++ play_sound(SOUND_GENERAL_HEART_SPIN, gGlobalSoundSource); ++ } ++} + // If scoring a file, pressing A just changes the coin score mode. + if (sSelectedButtonID == MENU_BUTTON_SCORE_FILE_A || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_B + || sSelectedButtonID == MENU_BUTTON_SCORE_FILE_C +@@ -1792,7 +1806,7 @@ void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { + #define MARIOTEXT_X1 92 + #define MARIOTEXT_X2 207 + #elif defined(VERSION_US) +- #define SELECT_FILE_X 93 ++#define SELECT_FILE_X 50 + #define SCORE_X 52 + #define COPY_X 117 + #define ERASE_X 177 +@@ -1820,6 +1834,29 @@ void print_main_menu_strings(void) { + // The current sound mode is automatically centered on US and Shindou. + static s16 sSoundTextX; // TODO: There should be a way to make this match on both US and Shindou. + #endif ++ ++ if (gDialogHealthSystem == MARIO_HEALTH) { ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); ++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); ++ ++ print_menu_generic_string(193, 41, textHealthM); ++ ++ ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); ++ ++ ++ } ++ else ++ { ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); ++ gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); ++ ++ print_menu_generic_string(193, 41, textHealthS); ++ ++ gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end); ++ ++ } ++ + // Print "SELECT FILE" text + gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); + gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); +@@ -1951,6 +1988,9 @@ void print_score_menu_strings(void) { + s16 centeredX; + #endif + ++ ++ ++ + // Update and print the message at the top of the menu. + if (sMainMenuTimer == FADEOUT_TIMER) { + sFadeOutText = TRUE; diff --git a/src/menu/intro_geo.c b/src/menu/intro_geo.c index e2e5bb92..2d49d062 100644 --- a/src/menu/intro_geo.c +++ b/src/menu/intro_geo.c @@ -7,9 +7,6 @@ #include "sm64.h" #include "textures.h" #include "types.h" -#include "buffers/framebuffers.h" -#include "game/game_init.h" -#include "audio/external.h" #include "prevent_bss_reordering.h" // frame counts for the zoom in, hold, and zoom out of title model @@ -28,157 +25,29 @@ struct GraphNodeMore { }; // intro geo bss -#ifdef VERSION_SH -static u16 *sFrameBuffers[3]; -#endif -static s32 sGameOverFrameCounter; -static s32 sGameOverTableIndex; -static s16 sIntroFrameCounter; -static s32 sTmCopyrightAlpha; +s32 gGameOverFrameCounter; +s32 gGameOverTableIndex; +s16 gTitleZoomCounter; +s32 gTitleFadeCounter; -/** - * Geo callback to render the "Super Mario 64" logo on the title screen - */ -Gfx *geo_intro_super_mario_64_logo(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNode *graphNode = node; - Gfx *dl = NULL; - Gfx *dlIter = NULL; - Mtx *scaleMat; - f32 *scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); - f32 *scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); - f32 scaleX; - f32 scaleY; - f32 scaleZ; +// intro screen background display lists for each of four 80x20 textures +const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, + title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; - if (state != 1) { - sIntroFrameCounter = 0; - } else if (state == 1) { - graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); - scaleMat = alloc_display_list(sizeof(*scaleMat)); - dl = alloc_display_list(4 * sizeof(*dl)); - dlIter = dl; +// intro screen background texture X offsets +float introBackgroundOffsetX[] = { + 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, +}; - // determine scale based on the frame counter - if (sIntroFrameCounter >= 0 && sIntroFrameCounter < INTRO_STEPS_ZOOM_IN) { - // zooming in - scaleX = scaleTable1[sIntroFrameCounter * 3]; - scaleY = scaleTable1[sIntroFrameCounter * 3 + 1]; - scaleZ = scaleTable1[sIntroFrameCounter * 3 + 2]; - } else if (sIntroFrameCounter >= INTRO_STEPS_ZOOM_IN && sIntroFrameCounter < INTRO_STEPS_HOLD_1) { - // holding - scaleX = 1.0f; - scaleY = 1.0f; - scaleZ = 1.0f; - } else if (sIntroFrameCounter >= INTRO_STEPS_HOLD_1 && sIntroFrameCounter < INTRO_STEPS_ZOOM_OUT) { - // zooming out - scaleX = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3]; - scaleY = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; - scaleZ = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; - } else { - // disappeared - scaleX = 0.0f; - scaleY = 0.0f; - scaleZ = 0.0f; - } - guScale(scaleMat, scaleX, scaleY, scaleZ); +// intro screen background texture Y offsets +float introBackgroundOffsetY[] = { + 160.0, 160.0, 160.0, 160.0, 80.0, 80.0, 80.0, 80.0, 0.0, 0.0, 0.0, 0.0, +}; - gSPMatrix(dlIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); - gSPDisplayList(dlIter++, &intro_seg7_dl_0700B3A0); // draw model - gSPPopMatrix(dlIter++, G_MTX_MODELVIEW); - gSPEndDisplayList(dlIter); +// table that points to either the "Super Mario 64" or "Game Over" tables +const u8 *const *introBackgroundTextureType[] = { mario_title_texture_table, game_over_texture_table }; - sIntroFrameCounter++; - } - return dl; -} - -/** - * Geo callback to render TM and Copyright on the title screen - */ -Gfx *geo_intro_tm_copyright(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNode *graphNode = node; - Gfx *dl = NULL; - Gfx *dlIter = NULL; - - if (state != 1) { // reset - sTmCopyrightAlpha = 0; - } else if (state == 1) { // draw - dl = alloc_display_list(5 * sizeof(*dl)); - dlIter = dl; - gSPDisplayList(dlIter++, dl_proj_mtx_fullscreen); - gDPSetEnvColor(dlIter++, 255, 255, 255, sTmCopyrightAlpha); - switch (sTmCopyrightAlpha) { - case 255: // opaque - graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); - gDPSetRenderMode(dlIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); - break; - default: // blend - graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_TRANSPARENT << 8); - gDPSetRenderMode(dlIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - break; - } - gSPDisplayList(dlIter++, &intro_seg7_dl_0700C6A0); // draw model - gSPEndDisplayList(dlIter); - - // Once the "Super Mario 64" logo has just about zoomed fully, fade in the "TM" and copyright text - if (sIntroFrameCounter >= 19) { - sTmCopyrightAlpha += 26; - if (sTmCopyrightAlpha > 255) { - sTmCopyrightAlpha = 255; - } - } - } - return dl; -} - -/** - * Generates a display list for a single background tile - * - * @param index which tile to render (value from 0 to 11) - * @param backgroundTable array describing which image to use for each tile (0 denotes a "Super Mario 64" image, and 1 denotes a "Game Over" image) - */ -static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { - // intro screen background display lists for each of four 80x20 textures - static const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, - title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; - - // intro screen background texture X offsets - static float xCoords[] = { - 0, 80, 160, 240, - 0, 80, 160, 240, - 0, 80, 160, 240, - }; - - // intro screen background texture Y offsets - static float yCoords[] = { - 160, 160, 160, 160, - 80, 80, 80, 80, - 0, 0, 0, 0, - }; - - // table that points to either the "Super Mario 64" or "Game Over" tables - static const u8 *const *textureTables[] = { mario_title_texture_table, game_over_texture_table }; - - Mtx *mtx = alloc_display_list(sizeof(*mtx)); - Gfx *displayList = alloc_display_list(36 * sizeof(*displayList)); - Gfx *displayListIter = displayList; - const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[index]]); - s32 i; - - guTranslate(mtx, xCoords[index], yCoords[index], 0.0f); - gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); - gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118); - for (i = 0; i < 4; ++i) { - gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, - G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) - gSPDisplayList(displayListIter++, introBackgroundDlRows[i]); - } - gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); - gSPEndDisplayList(displayListIter); - return displayList; -} - -static s8 introBackgroundIndexTable[] = { +s8 introBackgroundIndexTable[] = { INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, @@ -186,283 +55,195 @@ static s8 introBackgroundIndexTable[] = { }; // only one table of indexes listed -static s8 *introBackgroundTables[] = { introBackgroundIndexTable }; +s8 *introBackgroundTables[] = { introBackgroundIndexTable }; -/** - * Geo callback to render the intro background tiles - */ -Gfx *geo_intro_regular_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNodeMore *graphNode = (struct GraphNodeMore *) node; - s32 index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode (always ends up being 0) - s8 *backgroundTable = introBackgroundTables[index]; - Gfx *dl = NULL; - Gfx *dlIter = NULL; - s32 i; - - if (state == 1) { // draw - dl = alloc_display_list(16 * sizeof(*dl)); - dlIter = dl; - graphNode->node.flags = (graphNode->node.flags & 0xFF) | (LAYER_OPAQUE << 8); - gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); - gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); - for (i = 0; i < 12; ++i) { - gSPDisplayList(dlIter++, intro_backdrop_one_image(i, backgroundTable)); - } - gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); - gSPEndDisplayList(dlIter); - } - return dl; -} - -static s8 gameOverBackgroundTable[] = { +s8 gameOverBackgroundTable[] = { INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, }; -/** - * Geo callback to render the Game Over background tiles - */ -Gfx *geo_intro_gameover_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNode *graphNode = node; - Gfx *dl = NULL; - Gfx *dlIter = NULL; - s32 j; - s32 i; +// order of tiles that are flipped from "Game Over" to "Super Mario 64" +s8 gameOverBackgroundFlipOrder[] = { 0x00, 0x01, 0x02, 0x03, 0x07, 0x0B, + 0x0a, 0x09, 0x08, 0x04, 0x05, 0x06 }; - if (state != 1) { // reset - sGameOverFrameCounter = 0; - sGameOverTableIndex = -2; - for (i = 0; i < ARRAY_COUNT(gameOverBackgroundTable); ++i) +Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context) { + struct GraphNode *graphNode; // sp4c + Gfx *displayList; // sp48 + Gfx *displayListIter; // sp44 + Mtx *scaleMat; // sp40 + f32 *scaleTable1; // sp3c + f32 *scaleTable2; // sp38 + f32 scaleX; // sp34 + f32 scaleY; // sp30 + f32 scaleZ; // sp2c + graphNode = sp54; + displayList = NULL; + displayListIter = NULL; + scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); + scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); + if (sp50 != 1) { + gTitleZoomCounter = 0; + } else if (sp50 == 1) { + graphNode->flags = (graphNode->flags & 0xFF) | 0x100; + scaleMat = alloc_display_list(sizeof(*scaleMat)); + displayList = alloc_display_list(4 * sizeof(*displayList)); + displayListIter = displayList; + if (gTitleZoomCounter >= 0 && gTitleZoomCounter < INTRO_STEPS_ZOOM_IN) { + scaleX = scaleTable1[gTitleZoomCounter * 3]; + scaleY = scaleTable1[gTitleZoomCounter * 3 + 1]; + scaleZ = scaleTable1[gTitleZoomCounter * 3 + 2]; + } else if (gTitleZoomCounter >= INTRO_STEPS_ZOOM_IN && gTitleZoomCounter < INTRO_STEPS_HOLD_1) { + scaleX = 1.0f; + scaleY = 1.0f; + scaleZ = 1.0f; + } else if (gTitleZoomCounter >= INTRO_STEPS_HOLD_1 + && gTitleZoomCounter < INTRO_STEPS_ZOOM_OUT) { + scaleX = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3]; + scaleY = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; + scaleZ = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; + } else { + scaleX = 0.0f; + scaleY = 0.0f; + scaleZ = 0.0f; + } + guScale(scaleMat, scaleX, scaleY, scaleZ); + gSPMatrix(displayListIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); + gSPDisplayList(displayListIter++, &intro_seg7_dl_0700B3A0); + gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); + gSPEndDisplayList(displayListIter); + gTitleZoomCounter++; + } + return displayList; +} + +Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { + struct GraphNode *graphNode = sp44; // sp3c + Gfx *displayList = NULL; // sp38 + Gfx *displayListIter = NULL; // sp34 + if (sp40 != 1) { + gTitleFadeCounter = 0; // D_801B985C + } else if (sp40 == 1) { + displayList = alloc_display_list(5 * sizeof(*displayList)); + displayListIter = displayList; + gSPDisplayList(displayListIter++, dl_proj_mtx_fullscreen); + gDPSetEnvColor(displayListIter++, 255, 255, 255, gTitleFadeCounter); + if (gTitleFadeCounter == 255) { + if (0) { + } + graphNode->flags = (graphNode->flags & 0xFF) | 0x100; + gDPSetRenderMode(displayListIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + } else { + graphNode->flags = (graphNode->flags & 0xFF) | 0x500; + gDPSetRenderMode(displayListIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); + if (0) { + } + } + gSPDisplayList(displayListIter++, &intro_seg7_dl_0700C6A0); + gSPEndDisplayList(displayListIter); + if (gTitleZoomCounter >= 0x13) { + gTitleFadeCounter += 0x1a; + if (gTitleFadeCounter >= 0x100) { + gTitleFadeCounter = 0xFF; + } + } + } + return displayList; +} + +Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { + Mtx *mtx; // sp5c + Gfx *displayList; // sp58 + Gfx *displayListIter; // sp54 + const u8 *const *vIntroBgTable; // sp50 + s32 i; // sp4c + mtx = alloc_display_list(sizeof(*mtx)); + displayList = alloc_display_list(36 * sizeof(*displayList)); + displayListIter = displayList; + vIntroBgTable = segmented_to_virtual(introBackgroundTextureType[backgroundTable[index]]); + guTranslate(mtx, introBackgroundOffsetX[index], introBackgroundOffsetY[index], 0.0f); + gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118); + for (i = 0; i < 4; ++i) { + gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, + G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) + gSPDisplayList(displayListIter++, introBackgroundDlRows[i]); + } + gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); + gSPEndDisplayList(displayListIter); + return displayList; +} + +Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context) { + struct GraphNodeMore *graphNode; // sp44 + s32 index; // sp40 + s8 *backgroundTable; // sp3c + Gfx *displayList; // sp38 + Gfx *displayListIter; // sp34 + s32 i; // sp30 + graphNode = (struct GraphNodeMore *) sp4c; + index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode + backgroundTable = introBackgroundTables[index]; + displayList = NULL; + displayListIter = NULL; + if (sp48 == 1) { + displayList = alloc_display_list(16 * sizeof(*displayList)); + displayListIter = displayList; + graphNode->node.flags = (graphNode->node.flags & 0xFF) | 0x100; + gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); + for (i = 0; i < 12; ++i) { + gSPDisplayList(displayListIter++, intro_backdrop_one_image(i, backgroundTable)); + } + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); + gSPEndDisplayList(displayListIter); + } + return displayList; +} + +Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { + struct GraphNode *graphNode; // sp3c + Gfx *displayList; // sp38 + Gfx *displayListIter; // sp34 + s32 j; // sp30 + s32 i; // sp2c + graphNode = sp44; + displayList = NULL; + displayListIter = NULL; + if (sp40 != 1) { + gGameOverFrameCounter = 0; + gGameOverTableIndex = -2; + for (i = 0; i < (s32) sizeof(gameOverBackgroundTable); ++i) { gameOverBackgroundTable[i] = INTRO_BACKGROUND_GAME_OVER; - } else { // draw - dl = alloc_display_list(16 * sizeof(*dl)); - dlIter = dl; - if (sGameOverTableIndex == -2) { - if (sGameOverFrameCounter == 180) { - sGameOverTableIndex++; - sGameOverFrameCounter = 0; + } + } else { + displayList = alloc_display_list(16 * sizeof(*displayList)); + displayListIter = displayList; + if (gGameOverTableIndex == -2) { + if (gGameOverFrameCounter == 180) { + gGameOverTableIndex++; + gGameOverFrameCounter = 0; } } else { // transition tile from "Game Over" to "Super Mario 64" - if (sGameOverTableIndex != 11 && !(sGameOverFrameCounter & 0x1)) { - // order of tiles that are flipped from "Game Over" to "Super Mario 64" - static s8 flipOrder[] = { 0, 1, 2, 3, 7, 11, 10, 9, 8, 4, 5, 6 }; - - sGameOverTableIndex++; - gameOverBackgroundTable[flipOrder[sGameOverTableIndex]] = + if (gGameOverTableIndex != 11 && !(gGameOverFrameCounter & 0x1)) { + gGameOverTableIndex++; + gameOverBackgroundTable[gameOverBackgroundFlipOrder[gGameOverTableIndex]] = INTRO_BACKGROUND_SUPER_MARIO; } } - if (sGameOverTableIndex != 11) { - sGameOverFrameCounter++; + if (gGameOverTableIndex != 11) { + gGameOverFrameCounter++; } - graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); - - // draw all the tiles - gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); - gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); - for (j = 0; j < ARRAY_COUNT(gameOverBackgroundTable); ++j) - gSPDisplayList(dlIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); - gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); - gSPEndDisplayList(dlIter); + graphNode->flags = (graphNode->flags & 0xFF) | 0x100; + gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); + for (j = 0; j < (s32) sizeof(gameOverBackgroundTable); ++j) { + gSPDisplayList(displayListIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); + } + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); + gSPEndDisplayList(displayListIter); } - return dl; + return displayList; } - -#ifdef VERSION_SH -extern Gfx title_screen_bg_dl_0A0065E8[]; -extern Gfx title_screen_bg_dl_0A006618[]; -extern Gfx title_screen_bg_dl_0A007548[]; - -//Data -s8 sFaceVisible[] = { - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -}; - -s8 sFaceToggleOrder[] = { - 0, 1, 2, 3, 4, 5, 6, 7, - 15, 23, 31, 39, 47, 46, 45, 44, - 43, 42, 41, 40, 32, 24, 16, 8, - 9, 10, 11, 12, 13, 14, 22, 30, - 38, 37, 36, 35, 34, 33, 25, 17, -}; - -s8 sFaceCounter = 0; - -void intro_gen_face_texrect(Gfx **dlIter) -{ - s32 x; - s32 y; - - for (y = 0; y < 6; y++) { - for (x = 0; x < 8; x++) { - if (sFaceVisible[y*8 + x] != 0) { - gSPTextureRectangle((*dlIter)++, (x * 40) << 2, (y * 40) << 2, (x * 40 + 39) << 2, (y * 40 + 39) << 2, 0, - 0, 0, 4 << 10, 1 << 10); - } - } - } -} - -Gfx *intro_draw_face(u16 *image, s32 imageW, s32 imageH) -{ - Gfx *dl; - Gfx *dlIter; - - dl = alloc_display_list(110 * sizeof(Gfx)); - - if (dl == NULL) { - return dl; - } else { - dlIter = dl; - } - - gSPDisplayList(dlIter++, title_screen_bg_dl_0A0065E8); - - gDPLoadTextureBlock(dlIter++, VIRTUAL_TO_PHYSICAL(image), G_IM_FMT_RGBA, G_IM_SIZ_16b, imageW, imageH, 0, G_TX_CLAMP | G_TX_NOMIRROR, G_TX_CLAMP | G_TX_NOMIRROR, 6, 6, G_TX_NOLOD, G_TX_NOLOD); - - intro_gen_face_texrect(&dlIter); - - gSPDisplayList(dlIter++, title_screen_bg_dl_0A006618); - - gSPEndDisplayList(dlIter++); - - return dl; -} - -u16 *intro_sample_frame_buffer(s32 imageW, s32 imageH, s32 sampleW, s32 sampleH) { - u16 *fb; - u16 *image; - s32 pixel; - f32 size; - f32 r, g, b; - s32 iy, ix, sy, sx; - - s32 xOffset = 120; - s32 yOffset = 80; - - fb = sFrameBuffers[frameBufferIndex]; - image = alloc_display_list(imageW * imageH * sizeof(u16)); - - if (image == NULL) { - return image; - } - - for (iy = 0; iy < imageH; iy++) { - for (ix = 0; ix < imageW; ix++) { - r = 0; - g = 0; - b = 0; - - for (sy = 0; sy < sampleH; sy++) { - for (sx = 0; sx < sampleW; sx++) { - u16 fbr, fbg, fbb; - f32 f1, f2, f3; - pixel = 320 * (sampleH * iy + sy + yOffset) + (sampleW * ix + xOffset) + sx; - - fbr = fb[pixel]; - fbg = fb[pixel]; - fbb = fb[pixel]; - - f1 = ((fbr >> 0xB) & 0x1F); - f2 = ((fbg >> 0x6) & 0x1F); - f3 = ((fbb >> 0x1) & 0x1F); - - r += f1; - g += f2; - b += f3; - } - } - - size = sampleW * sampleH; - image[imageH * iy + ix] = ((((u16) (r / size + 0.5) << 0xB) & 0xF800) & 0xffff) + - ((((u16) (g / size + 0.5) << 0x6) & 0x7C0) & 0xffff) + - ((((u16) (b / size + 0.5) << 0x1) & 0x3E) & 0xffff) + 1; - } - } - - return image; -} - -Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; - u16 *image; - Gfx *dl = NULL; - s32 i; - - if (state != 1) { - sFrameBuffers[0] = gFrameBuffer0; - sFrameBuffers[1] = gFrameBuffer1; - sFrameBuffers[2] = gFrameBuffer2; - - for (i = 0; i < 48; i++) { - sFaceVisible[i] = 0; - } - - } else if (state == 1) { - if (sFaceCounter == 0) { - if (gPlayer1Controller->buttonPressed & Z_TRIG) { - play_sound(SOUND_MENU_STAR_SOUND, gGlobalSoundSource); - sFaceVisible[0] ^= 1; - sFaceCounter++; - } - } else { - sFaceVisible[sFaceToggleOrder[sFaceCounter++]] ^= 1; - if (sFaceCounter >= 40) { - sFaceCounter = 0; - } - } - - // Draw while the first or last face is visible. - if (sFaceVisible[0] == 1 || sFaceVisible[17] == 1) { - image = intro_sample_frame_buffer(40, 40, 2, 2); - if (image != NULL) { - genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); - dl = intro_draw_face(image, 40, 40); - } - } - } - - return dl; -} - -Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context) { - struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; - Gfx *dlIter; - Gfx *dl; - s32 introContext; - s8 backgroundTileSix; - - if (state != 1) { - dl = NULL; - } else if (state == 1) { - genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); - introContext = genNode->parameter & 0xFF; - if (introContext == 0) { - backgroundTileSix = introBackgroundIndexTable[6]; - } else if (introContext == 1) { - backgroundTileSix = gameOverBackgroundTable[6]; - } - if (backgroundTileSix == INTRO_BACKGROUND_SUPER_MARIO) { - dl = alloc_display_list(3 * sizeof(*dl)); - if (dl != NULL) { - dlIter = dl; - gSPDisplayList(dlIter++, &title_screen_bg_dl_0A007548); - gSPEndDisplayList(dlIter); - } - } else { - dl = NULL; - } - } - return dl; -} - -#endif - diff --git a/src/menu/intro_geo.c.rej b/src/menu/intro_geo.c.rej new file mode 100644 index 00000000..922fe255 --- /dev/null +++ b/src/menu/intro_geo.c.rej @@ -0,0 +1,628 @@ +diff a/src/menu/intro_geo.c b/src/menu/intro_geo.c (rejected hunks) +@@ -7,9 +7,6 @@ + #include "sm64.h" + #include "textures.h" + #include "types.h" +-#include "buffers/framebuffers.h" +-#include "game/game_init.h" +-#include "audio/external.h" + #include "prevent_bss_reordering.h" + + // frame counts for the zoom in, hold, and zoom out of title model +@@ -28,149 +25,149 @@ struct GraphNodeMore { + }; + + // intro geo bss +-#ifdef VERSION_SH +-static u16 *sFrameBuffers[3]; +-#endif +-static s32 sGameOverFrameCounter; +-static s32 sGameOverTableIndex; +-static s16 sIntroFrameCounter; +-static s32 sTmCopyrightAlpha; ++s32 gGameOverFrameCounter; ++s32 gGameOverTableIndex; ++s16 gTitleZoomCounter; ++s32 gTitleFadeCounter; ++ ++// intro screen background display lists for each of four 80x20 textures ++const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, ++ title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; ++ ++// intro screen background texture X offsets ++float introBackgroundOffsetX[] = { ++ 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, 0.0, 80.0, 160.0, 240.0, ++}; ++ ++// intro screen background texture Y offsets ++float introBackgroundOffsetY[] = { ++ 160.0, 160.0, 160.0, 160.0, 80.0, 80.0, 80.0, 80.0, 0.0, 0.0, 0.0, 0.0, ++}; + +-/** +- * Geo callback to render the "Super Mario 64" logo on the title screen +- */ +-Gfx *geo_intro_super_mario_64_logo(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- Mtx *scaleMat; +- f32 *scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); +- f32 *scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); +- f32 scaleX; +- f32 scaleY; +- f32 scaleZ; ++// table that points to either the "Super Mario 64" or "Game Over" tables ++const u8 *const *introBackgroundTextureType[] = { mario_title_texture_table, game_over_texture_table }; + +- if (state != 1) { +- sIntroFrameCounter = 0; +- } else if (state == 1) { +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- scaleMat = alloc_display_list(sizeof(*scaleMat)); +- dl = alloc_display_list(4 * sizeof(*dl)); +- dlIter = dl; ++s8 introBackgroundIndexTable[] = { ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++ INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, ++}; ++ ++// only one table of indexes listed ++s8 *introBackgroundTables[] = { introBackgroundIndexTable }; ++ ++s8 gameOverBackgroundTable[] = { ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++ INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, ++}; + +- // determine scale based on the frame counter +- if (sIntroFrameCounter >= 0 && sIntroFrameCounter < INTRO_STEPS_ZOOM_IN) { +- // zooming in +- scaleX = scaleTable1[sIntroFrameCounter * 3]; +- scaleY = scaleTable1[sIntroFrameCounter * 3 + 1]; +- scaleZ = scaleTable1[sIntroFrameCounter * 3 + 2]; +- } else if (sIntroFrameCounter >= INTRO_STEPS_ZOOM_IN && sIntroFrameCounter < INTRO_STEPS_HOLD_1) { +- // holding ++// order of tiles that are flipped from "Game Over" to "Super Mario 64" ++s8 gameOverBackgroundFlipOrder[] = { 0x00, 0x01, 0x02, 0x03, 0x07, 0x0B, ++ 0x0a, 0x09, 0x08, 0x04, 0x05, 0x06 }; ++ ++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context) { ++ struct GraphNode *graphNode; // sp4c ++ Gfx *displayList; // sp48 ++ Gfx *displayListIter; // sp44 ++ Mtx *scaleMat; // sp40 ++ f32 *scaleTable1; // sp3c ++ f32 *scaleTable2; // sp38 ++ f32 scaleX; // sp34 ++ f32 scaleY; // sp30 ++ f32 scaleZ; // sp2c ++ graphNode = sp54; ++ displayList = NULL; ++ displayListIter = NULL; ++ scaleTable1 = segmented_to_virtual(intro_seg7_table_0700C790); ++ scaleTable2 = segmented_to_virtual(intro_seg7_table_0700C880); ++ if (sp50 != 1) { ++ gTitleZoomCounter = 0; ++ } else if (sp50 == 1) { ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ scaleMat = alloc_display_list(sizeof(*scaleMat)); ++ displayList = alloc_display_list(4 * sizeof(*displayList)); ++ displayListIter = displayList; ++ if (gTitleZoomCounter >= 0 && gTitleZoomCounter < INTRO_STEPS_ZOOM_IN) { ++ scaleX = scaleTable1[gTitleZoomCounter * 3]; ++ scaleY = scaleTable1[gTitleZoomCounter * 3 + 1]; ++ scaleZ = scaleTable1[gTitleZoomCounter * 3 + 2]; ++ } else if (gTitleZoomCounter >= INTRO_STEPS_ZOOM_IN && gTitleZoomCounter < INTRO_STEPS_HOLD_1) { + scaleX = 1.0f; + scaleY = 1.0f; + scaleZ = 1.0f; +- } else if (sIntroFrameCounter >= INTRO_STEPS_HOLD_1 && sIntroFrameCounter < INTRO_STEPS_ZOOM_OUT) { +- // zooming out +- scaleX = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3]; +- scaleY = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; +- scaleZ = scaleTable2[(sIntroFrameCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; ++ } else if (gTitleZoomCounter >= INTRO_STEPS_HOLD_1 ++ && gTitleZoomCounter < INTRO_STEPS_ZOOM_OUT) { ++ scaleX = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3]; ++ scaleY = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 1]; ++ scaleZ = scaleTable2[(gTitleZoomCounter - INTRO_STEPS_HOLD_1) * 3 + 2]; + } else { +- // disappeared + scaleX = 0.0f; + scaleY = 0.0f; + scaleZ = 0.0f; + } + guScale(scaleMat, scaleX, scaleY, scaleZ); +- +- gSPMatrix(dlIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); +- gSPDisplayList(dlIter++, &intro_seg7_dl_0700B3A0); // draw model +- gSPPopMatrix(dlIter++, G_MTX_MODELVIEW); +- gSPEndDisplayList(dlIter); +- +- sIntroFrameCounter++; ++ gSPMatrix(displayListIter++, scaleMat, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH); ++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700B3A0); ++ gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); ++ gSPEndDisplayList(displayListIter); ++ gTitleZoomCounter++; + } +- return dl; ++ return displayList; + } + +-/** +- * Geo callback to render TM and Copyright on the title screen +- */ +-Gfx *geo_intro_tm_copyright(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- +- if (state != 1) { // reset +- sTmCopyrightAlpha = 0; +- } else if (state == 1) { // draw +- dl = alloc_display_list(5 * sizeof(*dl)); +- dlIter = dl; +- gSPDisplayList(dlIter++, dl_proj_mtx_fullscreen); +- gDPSetEnvColor(dlIter++, 255, 255, 255, sTmCopyrightAlpha); +- switch (sTmCopyrightAlpha) { +- case 255: // opaque +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- gDPSetRenderMode(dlIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); +- break; +- default: // blend +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_TRANSPARENT << 8); +- gDPSetRenderMode(dlIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); +- break; ++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { ++ struct GraphNode *graphNode = sp44; // sp3c ++ Gfx *displayList = NULL; // sp38 ++ Gfx *displayListIter = NULL; // sp34 ++ if (sp40 != 1) { ++ gTitleFadeCounter = 0; // D_801B985C ++ } else if (sp40 == 1) { ++ displayList = alloc_display_list(5 * sizeof(*displayList)); ++ displayListIter = displayList; ++ gSPDisplayList(displayListIter++, dl_proj_mtx_fullscreen); ++ gDPSetEnvColor(displayListIter++, 255, 255, 255, gTitleFadeCounter); ++ if (gTitleFadeCounter == 255) { ++ if (0) { ++ } ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ gDPSetRenderMode(displayListIter++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); ++ } else { ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x500; ++ gDPSetRenderMode(displayListIter++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); ++ if (0) { ++ } + } +- gSPDisplayList(dlIter++, &intro_seg7_dl_0700C6A0); // draw model +- gSPEndDisplayList(dlIter); +- +- // Once the "Super Mario 64" logo has just about zoomed fully, fade in the "TM" and copyright text +- if (sIntroFrameCounter >= 19) { +- sTmCopyrightAlpha += 26; +- if (sTmCopyrightAlpha > 255) { +- sTmCopyrightAlpha = 255; ++ gSPDisplayList(displayListIter++, &intro_seg7_dl_0700C6A0); ++ gSPEndDisplayList(displayListIter); ++ if (gTitleZoomCounter >= 0x13) { ++ gTitleFadeCounter += 0x1a; ++ if (gTitleFadeCounter >= 0x100) { ++ gTitleFadeCounter = 0xFF; + } + } + } +- return dl; ++ return displayList; + } + +-/** +- * Generates a display list for a single background tile +- * +- * @param index which tile to render (value from 0 to 11) +- * @param backgroundTable array describing which image to use for each tile (0 denotes a "Super Mario 64" image, and 1 denotes a "Game Over" image) +- */ +-static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { +- // intro screen background display lists for each of four 80x20 textures +- static const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148, +- title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 }; +- +- // intro screen background texture X offsets +- static float xCoords[] = { +- 0, 80, 160, 240, +- 0, 80, 160, 240, +- 0, 80, 160, 240, +- }; +- +- // intro screen background texture Y offsets +- static float yCoords[] = { +- 160, 160, 160, 160, +- 80, 80, 80, 80, +- 0, 0, 0, 0, +- }; +- +- // table that points to either the "Super Mario 64" or "Game Over" tables +- static const u8 *const *textureTables[] = { mario_title_texture_table, game_over_texture_table }; +- +- Mtx *mtx = alloc_display_list(sizeof(*mtx)); +- Gfx *displayList = alloc_display_list(36 * sizeof(*displayList)); +- Gfx *displayListIter = displayList; +- const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[index]]); +- s32 i; +- +- guTranslate(mtx, xCoords[index], yCoords[index], 0.0f); ++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { ++ Mtx *mtx; // sp5c ++ Gfx *displayList; // sp58 ++ Gfx *displayListIter; // sp54 ++ const u8 *const *vIntroBgTable; // sp50 ++ s32 i; // sp4c ++ mtx = alloc_display_list(sizeof(*mtx)); ++ displayList = alloc_display_list(36 * sizeof(*displayList)); ++ displayListIter = displayList; ++ vIntroBgTable = segmented_to_virtual(introBackgroundTextureType[backgroundTable[index]]); ++ guTranslate(mtx, introBackgroundOffsetX[index], introBackgroundOffsetY[index], 0.0f); + gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); + gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118); + for (i = 0; i < 4; ++i) { +- gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, +- G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) ++ gDPLoadTextureBlock(displayListIter++, vIntroBgTable[i], G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, ++ G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD) + gSPDisplayList(displayListIter++, introBackgroundDlRows[i]); + } + gSPPopMatrix(displayListIter++, G_MTX_MODELVIEW); +@@ -178,291 +175,75 @@ static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) { + return displayList; + } + +-static s8 introBackgroundIndexTable[] = { +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +- INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, INTRO_BACKGROUND_SUPER_MARIO, +-}; +- +-// only one table of indexes listed +-static s8 *introBackgroundTables[] = { introBackgroundIndexTable }; +- +-/** +- * Geo callback to render the intro background tiles +- */ +-Gfx *geo_intro_regular_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeMore *graphNode = (struct GraphNodeMore *) node; +- s32 index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode (always ends up being 0) +- s8 *backgroundTable = introBackgroundTables[index]; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- s32 i; +- +- if (state == 1) { // draw +- dl = alloc_display_list(16 * sizeof(*dl)); +- dlIter = dl; +- graphNode->node.flags = (graphNode->node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); ++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context) { ++ struct GraphNodeMore *graphNode; // sp44 ++ s32 index; // sp40 ++ s8 *backgroundTable; // sp3c ++ Gfx *displayList; // sp38 ++ Gfx *displayListIter; // sp34 ++ s32 i; // sp30 ++ graphNode = (struct GraphNodeMore *) sp4c; ++ index = graphNode->unk18 & 0xff; // TODO: word at offset 0x18 of struct GraphNode ++ backgroundTable = introBackgroundTables[index]; ++ displayList = NULL; ++ displayListIter = NULL; ++ if (sp48 == 1) { ++ displayList = alloc_display_list(16 * sizeof(*displayList)); ++ displayListIter = displayList; ++ graphNode->node.flags = (graphNode->node.flags & 0xFF) | 0x100; ++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); + for (i = 0; i < 12; ++i) { +- gSPDisplayList(dlIter++, intro_backdrop_one_image(i, backgroundTable)); ++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(i, backgroundTable)); + } +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); +- gSPEndDisplayList(dlIter); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); ++ gSPEndDisplayList(displayListIter); + } +- return dl; ++ return displayList; + } + +-static s8 gameOverBackgroundTable[] = { +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +- INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, INTRO_BACKGROUND_GAME_OVER, +-}; +- +-/** +- * Geo callback to render the Game Over background tiles +- */ +-Gfx *geo_intro_gameover_backdrop(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNode *graphNode = node; +- Gfx *dl = NULL; +- Gfx *dlIter = NULL; +- s32 j; +- s32 i; +- +- if (state != 1) { // reset +- sGameOverFrameCounter = 0; +- sGameOverTableIndex = -2; +- for (i = 0; i < ARRAY_COUNT(gameOverBackgroundTable); ++i) ++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context) { ++ struct GraphNode *graphNode; // sp3c ++ Gfx *displayList; // sp38 ++ Gfx *displayListIter; // sp34 ++ s32 j; // sp30 ++ s32 i; // sp2c ++ graphNode = sp44; ++ displayList = NULL; ++ displayListIter = NULL; ++ if (sp40 != 1) { ++ gGameOverFrameCounter = 0; ++ gGameOverTableIndex = -2; ++ for (i = 0; i < (s32) sizeof(gameOverBackgroundTable); ++i) { + gameOverBackgroundTable[i] = INTRO_BACKGROUND_GAME_OVER; +- } else { // draw +- dl = alloc_display_list(16 * sizeof(*dl)); +- dlIter = dl; +- if (sGameOverTableIndex == -2) { +- if (sGameOverFrameCounter == 180) { +- sGameOverTableIndex++; +- sGameOverFrameCounter = 0; +- } +- } else { +- // transition tile from "Game Over" to "Super Mario 64" +- if (sGameOverTableIndex != 11 && !(sGameOverFrameCounter & 0x1)) { +- // order of tiles that are flipped from "Game Over" to "Super Mario 64" +- static s8 flipOrder[] = { 0, 1, 2, 3, 7, 11, 10, 9, 8, 4, 5, 6 }; +- +- sGameOverTableIndex++; +- gameOverBackgroundTable[flipOrder[sGameOverTableIndex]] = +- INTRO_BACKGROUND_SUPER_MARIO; +- } +- } +- if (sGameOverTableIndex != 11) { +- sGameOverFrameCounter++; +- } +- graphNode->flags = (graphNode->flags & 0xFF) | (LAYER_OPAQUE << 8); +- +- // draw all the tiles +- gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100); +- for (j = 0; j < ARRAY_COUNT(gameOverBackgroundTable); ++j) +- gSPDisplayList(dlIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190); +- gSPEndDisplayList(dlIter); +- } +- return dl; +-} +- +-#ifdef VERSION_SH +-extern Gfx title_screen_bg_dl_0A0065E8[]; +-extern Gfx title_screen_bg_dl_0A006618[]; +-extern Gfx title_screen_bg_dl_0A007548[]; +- +-//Data +-s8 sFaceVisible[] = { +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 0, 0, 0, 0, 1, 1, +- 1, 1, 0, 0, 0, 0, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, +-}; +- +-s8 sFaceToggleOrder[] = { +- 0, 1, 2, 3, 4, 5, 6, 7, +- 15, 23, 31, 39, 47, 46, 45, 44, +- 43, 42, 41, 40, 32, 24, 16, 8, +- 9, 10, 11, 12, 13, 14, 22, 30, +- 38, 37, 36, 35, 34, 33, 25, 17, +-}; +- +-s8 sFaceCounter = 0; +- +-void intro_gen_face_texrect(Gfx **dlIter) +-{ +- s32 x; +- s32 y; +- +- for (y = 0; y < 6; y++) { +- for (x = 0; x < 8; x++) { +- if (sFaceVisible[y*8 + x] != 0) { +- gSPTextureRectangle((*dlIter)++, (x * 40) << 2, (y * 40) << 2, (x * 40 + 39) << 2, (y * 40 + 39) << 2, 0, +- 0, 0, 4 << 10, 1 << 10); +- } + } +- } +-} +- +-Gfx *intro_draw_face(u16 *image, s32 imageW, s32 imageH) +-{ +- Gfx *dl; +- Gfx *dlIter; +- +- dl = alloc_display_list(110 * sizeof(Gfx)); +- +- if (dl == NULL) { +- return dl; + } else { +- dlIter = dl; +- } +- +- gSPDisplayList(dlIter++, title_screen_bg_dl_0A0065E8); +- +- gDPLoadTextureBlock(dlIter++, VIRTUAL_TO_PHYSICAL(image), G_IM_FMT_RGBA, G_IM_SIZ_16b, imageW, imageH, 0, G_TX_CLAMP | G_TX_NOMIRROR, G_TX_CLAMP | G_TX_NOMIRROR, 6, 6, G_TX_NOLOD, G_TX_NOLOD); +- +- intro_gen_face_texrect(&dlIter); +- +- gSPDisplayList(dlIter++, title_screen_bg_dl_0A006618); +- +- gSPEndDisplayList(dlIter++); +- +- return dl; +-} +- +-u16 *intro_sample_frame_buffer(s32 imageW, s32 imageH, s32 sampleW, s32 sampleH) { +- u16 *fb; +- u16 *image; +- s32 pixel; +- f32 size; +- f32 r, g, b; +- s32 iy, ix, sy, sx; +- +- s32 xOffset = 120; +- s32 yOffset = 80; +- +- fb = sFrameBuffers[frameBufferIndex]; +- image = alloc_display_list(imageW * imageH * sizeof(u16)); +- +- if (image == NULL) { +- return image; +- } +- +- for (iy = 0; iy < imageH; iy++) { +- for (ix = 0; ix < imageW; ix++) { +- r = 0; +- g = 0; +- b = 0; +- +- for (sy = 0; sy < sampleH; sy++) { +- for (sx = 0; sx < sampleW; sx++) { +- u16 fbr, fbg, fbb; +- f32 f1, f2, f3; +- pixel = 320 * (sampleH * iy + sy + yOffset) + (sampleW * ix + xOffset) + sx; +- +- fbr = fb[pixel]; +- fbg = fb[pixel]; +- fbb = fb[pixel]; +- +- f1 = ((fbr >> 0xB) & 0x1F); +- f2 = ((fbg >> 0x6) & 0x1F); +- f3 = ((fbb >> 0x1) & 0x1F); +- +- r += f1; +- g += f2; +- b += f3; +- } +- } +- +- size = sampleW * sampleH; +- image[imageH * iy + ix] = ((((u16) (r / size + 0.5) << 0xB) & 0xF800) & 0xffff) + +- ((((u16) (g / size + 0.5) << 0x6) & 0x7C0) & 0xffff) + +- ((((u16) (b / size + 0.5) << 0x1) & 0x3E) & 0xffff) + 1; +- } +- } +- +- return image; +-} +- +-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; +- u16 *image; +- Gfx *dl = NULL; +- s32 i; +- +- if (state != 1) { +- sFrameBuffers[0] = gFrameBuffer0; +- sFrameBuffers[1] = gFrameBuffer1; +- sFrameBuffers[2] = gFrameBuffer2; +- +- for (i = 0; i < 48; i++) { +- sFaceVisible[i] = 0; +- } +- +- } else if (state == 1) { +- if (sFaceCounter == 0) { +- if (gPlayer1Controller->buttonPressed & Z_TRIG) { +- play_sound(SOUND_MENU_STAR_SOUND, gGlobalSoundSource); +- sFaceVisible[0] ^= 1; +- sFaceCounter++; ++ displayList = alloc_display_list(16 * sizeof(*displayList)); ++ displayListIter = displayList; ++ if (gGameOverTableIndex == -2) { ++ if (gGameOverFrameCounter == 180) { ++ gGameOverTableIndex++; ++ gGameOverFrameCounter = 0; + } + } else { +- sFaceVisible[sFaceToggleOrder[sFaceCounter++]] ^= 1; +- if (sFaceCounter >= 40) { +- sFaceCounter = 0; +- } +- } +- +- // Draw while the first or last face is visible. +- if (sFaceVisible[0] == 1 || sFaceVisible[17] == 1) { +- image = intro_sample_frame_buffer(40, 40, 2, 2); +- if (image != NULL) { +- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- dl = intro_draw_face(image, 40, 40); ++ // transition tile from "Game Over" to "Super Mario 64" ++ if (gGameOverTableIndex != 11 && !(gGameOverFrameCounter & 0x1)) { ++ gGameOverTableIndex++; ++ gameOverBackgroundTable[gameOverBackgroundFlipOrder[gGameOverTableIndex]] = ++ INTRO_BACKGROUND_SUPER_MARIO; + } + } +- } +- +- return dl; +-} +- +-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context) { +- struct GraphNodeGenerated *genNode = (struct GraphNodeGenerated *)node; +- Gfx *dlIter; +- Gfx *dl; +- s32 introContext; +- s8 backgroundTileSix; +- +- if (state != 1) { +- dl = NULL; +- } else if (state == 1) { +- genNode->fnNode.node.flags = (genNode->fnNode.node.flags & 0xFF) | (LAYER_OPAQUE << 8); +- introContext = genNode->parameter & 0xFF; +- if (introContext == 0) { +- backgroundTileSix = introBackgroundIndexTable[6]; +- } else if (introContext == 1) { +- backgroundTileSix = gameOverBackgroundTable[6]; ++ if (gGameOverTableIndex != 11) { ++ gGameOverFrameCounter++; + } +- if (backgroundTileSix == INTRO_BACKGROUND_SUPER_MARIO) { +- dl = alloc_display_list(3 * sizeof(*dl)); +- if (dl != NULL) { +- dlIter = dl; +- gSPDisplayList(dlIter++, &title_screen_bg_dl_0A007548); +- gSPEndDisplayList(dlIter); +- } +- } else { +- dl = NULL; ++ graphNode->flags = (graphNode->flags & 0xFF) | 0x100; ++ gSPDisplayList(displayListIter++, &dl_proj_mtx_fullscreen); ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000100); ++ for (j = 0; j < (s32) sizeof(gameOverBackgroundTable); ++j) { ++ gSPDisplayList(displayListIter++, intro_backdrop_one_image(j, gameOverBackgroundTable)); + } ++ gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000190); ++ gSPEndDisplayList(displayListIter); + } +- return dl; ++ return displayList; + } +- +-#endif +- diff --git a/src/menu/intro_geo.h b/src/menu/intro_geo.h index bedafb67..6fa6c84f 100644 --- a/src/menu/intro_geo.h +++ b/src/menu/intro_geo.h @@ -5,16 +5,11 @@ #include #include "types.h" -#include "engine/graph_node.h" -Gfx *geo_intro_super_mario_64_logo(s32 sp50, struct GraphNode *sp54, UNUSED void *context); -Gfx *geo_intro_tm_copyright(s32 sp40, struct GraphNode *sp44, UNUSED void *context); -Gfx *geo_intro_regular_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); -Gfx *geo_intro_gameover_backdrop(s32 sp40, struct GraphNode *sp44, UNUSED void *context); - -#ifdef VERSION_SH -Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context); -Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context); -#endif +Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context); +Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable); +Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); +Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context); #endif // INTRO_GEO_H diff --git a/src/menu/intro_geo.h.rej b/src/menu/intro_geo.h.rej new file mode 100644 index 00000000..8cfc6214 --- /dev/null +++ b/src/menu/intro_geo.h.rej @@ -0,0 +1,23 @@ +diff a/src/menu/intro_geo.h b/src/menu/intro_geo.h (rejected hunks) +@@ -5,16 +5,11 @@ + #include + + #include "types.h" +-#include "engine/graph_node.h" + +-Gfx *geo_intro_super_mario_64_logo(s32 sp50, struct GraphNode *sp54, UNUSED void *context); +-Gfx *geo_intro_tm_copyright(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +-Gfx *geo_intro_regular_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); +-Gfx *geo_intro_gameover_backdrop(s32 sp40, struct GraphNode *sp44, UNUSED void *context); +- +-#ifdef VERSION_SH +-Gfx *geo_intro_face_easter_egg(s32 state, struct GraphNode *node, UNUSED void *context); +-Gfx *geo_intro_rumble_pak_graphic(s32 state, struct GraphNode *node, UNUSED void *context); +-#endif ++Gfx *geo_title_screen(s32 sp50, struct GraphNode *sp54, UNUSED void *context); ++Gfx *geo_fade_transition(s32 sp40, struct GraphNode *sp44, UNUSED void *context); ++Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable); ++Gfx *geo_intro_backdrop(s32 sp48, struct GraphNode *sp4c, UNUSED void *context); ++Gfx *geo_game_over_tile(s32 sp40, struct GraphNode *sp44, UNUSED void *context); + + #endif // INTRO_GEO_H diff --git a/src/menu/star_select.c b/src/menu/star_select.c index 025dbf24..69d9b66d 100644 --- a/src/menu/star_select.c +++ b/src/menu/star_select.c @@ -1,3 +1,4 @@ +#include "src/game/texscroll.h" #include #include "audio/external.h" @@ -434,7 +435,7 @@ s32 lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused } } - area_update_objects(); + area_update_objects(); scroll_textures(); sActSelectorMenuTimer++; return sLoadedActNum; } diff --git a/src/menu/star_select.c.rej b/src/menu/star_select.c.rej new file mode 100644 index 00000000..f39812b1 --- /dev/null +++ b/src/menu/star_select.c.rej @@ -0,0 +1,15 @@ +diff a/src/menu/star_select.c b/src/menu/star_select.c (rejected hunks) +@@ -1,3 +1,4 @@ ++#include "src/game/texscroll.h" + #include + + #include "audio/external.h" +@@ -434,7 +435,7 @@ s32 lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused + } + } + +- area_update_objects(); ++ area_update_objects(); scroll_textures(); + sActSelectorMenuTimer++; + return sLoadedActNum; + } diff --git a/text/us/courses.h b/text/us/courses.h index 34dc2543..e0e01701 100644 --- a/text/us/courses.h +++ b/text/us/courses.h @@ -1,6 +1,6 @@ COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMB BATTLEFIELD"), _("BIG BOB-OMB ON THE SUMMIT") , _("FOOTRACE WITH KOOPA THE QUICK") , _("SHOOT TO THE ISLAND IN THE SKY"), - _("FIND THE 8 RED COINS") , _("MARIO WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) + _("FIND THE 8 RED COINS") , _("SONIC WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) COURSE_ACTS(COURSE_WF, _(" 2 WHOMP'S FORTRESS"), _("CHIP OFF WHOMP'S BLOCK") , _("TO THE TOP OF THE FORTRESS") , _("SHOOT INTO THE WILD BLUE"), @@ -19,7 +19,7 @@ COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOO'S HAUNT"), _("SEEK THE 8 RED COINS") , _("BIG BOO'S BALCONY") , _("EYE TO EYE IN THE SECRET ROOM")) COURSE_ACTS(COURSE_HMC, _(" 6 HAZY MAZE CAVE"), - _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD MARIO CAN MOVE!"), + _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD SONIC CAN MOVE!"), _("NAVIGATING THE TOXIC MAZE") , _("A-MAZE-ING EMERGENCY EXIT") , _("WATCH FOR ROLLING ROCKS")) COURSE_ACTS(COURSE_LLL, _(" 7 LETHAL LAVA LAND"), @@ -65,7 +65,7 @@ SECRET_STAR(COURSE_PSS, _(" THE PRINCESS'S SECRET SLIDE")) SECRET_STAR(COURSE_COTMC, _(" CAVERN OF THE METAL CAP")) SECRET_STAR(COURSE_TOTWC, _(" TOWER OF THE WING CAP")) SECRET_STAR(COURSE_VCUTM, _(" VANISH CAP UNDER THE MOAT")) -SECRET_STAR(COURSE_WMOTR, _(" WING MARIO OVER THE RAINBOW")) +SECRET_STAR(COURSE_WMOTR, _(" WING SONIC OVER THE RAINBOW")) SECRET_STAR(COURSE_SA, _(" THE SECRET AQUARIUM")) SECRET_STAR(COURSE_CAKE_END, _("")) diff --git a/text/us/courses.h.rej b/text/us/courses.h.rej new file mode 100644 index 00000000..24e732ad --- /dev/null +++ b/text/us/courses.h.rej @@ -0,0 +1,27 @@ +diff a/text/us/courses.h b/text/us/courses.h (rejected hunks) +@@ -1,6 +1,6 @@ + COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMB BATTLEFIELD"), + _("BIG BOB-OMB ON THE SUMMIT") , _("FOOTRACE WITH KOOPA THE QUICK") , _("SHOOT TO THE ISLAND IN THE SKY"), +- _("FIND THE 8 RED COINS") , _("MARIO WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) ++ _("FIND THE 8 RED COINS") , _("SONIC WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) + + COURSE_ACTS(COURSE_WF, _(" 2 WHOMP'S FORTRESS"), + _("CHIP OFF WHOMP'S BLOCK") , _("TO THE TOP OF THE FORTRESS") , _("SHOOT INTO THE WILD BLUE"), +@@ -19,7 +19,7 @@ COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOO'S HAUNT"), + _("SEEK THE 8 RED COINS") , _("BIG BOO'S BALCONY") , _("EYE TO EYE IN THE SECRET ROOM")) + + COURSE_ACTS(COURSE_HMC, _(" 6 HAZY MAZE CAVE"), +- _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD MARIO CAN MOVE!"), ++ _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD SONIC CAN MOVE!"), + _("NAVIGATING THE TOXIC MAZE") , _("A-MAZE-ING EMERGENCY EXIT") , _("WATCH FOR ROLLING ROCKS")) + + COURSE_ACTS(COURSE_LLL, _(" 7 LETHAL LAVA LAND"), +@@ -65,7 +65,7 @@ SECRET_STAR(COURSE_PSS, _(" THE PRINCESS'S SECRET SLIDE")) + SECRET_STAR(COURSE_COTMC, _(" CAVERN OF THE METAL CAP")) + SECRET_STAR(COURSE_TOTWC, _(" TOWER OF THE WING CAP")) + SECRET_STAR(COURSE_VCUTM, _(" VANISH CAP UNDER THE MOAT")) +-SECRET_STAR(COURSE_WMOTR, _(" WING MARIO OVER THE RAINBOW")) ++SECRET_STAR(COURSE_WMOTR, _(" WING SONIC OVER THE RAINBOW")) + SECRET_STAR(COURSE_SA, _(" THE SECRET AQUARIUM")) + SECRET_STAR(COURSE_CAKE_END, _("")) + diff --git a/text/us/dialogs.h b/text/us/dialogs.h index 34a18b20..fa0c6c48 100644 --- a/text/us/dialogs.h +++ b/text/us/dialogs.h @@ -76,7 +76,7 @@ You can talk to us\n\ whenever you'd like to!")) DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ -Thank you, Mario! The Big\n\ +Thank you, Sonic! The Big\n\ Bob-omb is nothing but a\n\ big dud now! But the\n\ battle for the castle has\n\ @@ -103,7 +103,7 @@ cannons in this course for\n\ you to use. Bon Voyage!")) DEFINE_DIALOG(DIALOG_005, 1, 3, 30, 200, _("\ -Hey, Mario! Is it true\n\ +Hey, Sonic! Is it true\n\ that you beat the Big\n\ Bob-omb? Cool!\n\ You must be strong. And\n\ @@ -133,7 +133,7 @@ real.")) DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ Hufff...fff...pufff...\n\ Whoa! You...really...are...\n\ -fast! A human blur!\n\ +fast! A blue blur!\n\ Here you go--you've won\n\ it, fair and square!")) @@ -170,10 +170,10 @@ Ready?\n\ DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ You've stepped on the\n\ -Wing Cap Switch. Wearing\n\ -the Wing Cap, you can\n\ +Wing Shoe Switch. Wearing\n\ +the Wing Shoe, you can\n\ soar through the sky.\n\ -Now Wing Caps will pop\n\ +Now Wing Shoes will pop\n\ out of all the red blocks\n\ you find.\n\ \n\ @@ -183,10 +183,10 @@ Would you like to Save?\n\ DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ You've just stepped on\n\ -the Metal Cap Switch!\n\ -The Metal Cap makes\n\ -Mario invincible.\n\ -Now Metal Caps will\n\ +the Metal Shoe Switch!\n\ +The Metal Shoe makes\n\ +Sonic invincible.\n\ +Now Metal Shoes will\n\ pop out of all of the\n\ green blocks you find.\n\ \n\ @@ -196,10 +196,10 @@ Would you like to Save?\n\ DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ You've just stepped on\n\ -the Vanish Cap Switch.\n\ -The Vanish Cap makes\n\ -Mario disappear.\n\ -Now Vanish Caps will pop\n\ +the Vanish Shoe Switch.\n\ +The Vanish Shoe makes\n\ +Sonic disappear.\n\ +Now Vanish Shoes will pop\n\ from all of the blue\n\ blocks you find.\n\ \n\ @@ -209,14 +209,14 @@ Would you like to Save?\n\ DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ You've collected 100\n\ -coins! Mario gains more\n\ +coins! Sonic gains more\n\ power from the castle.\n\ Do you want to Save?\n\ //Yes////No")) DEFINE_DIALOG(DIALOG_014, 1, 4, 30, 200, _("\ Wow! Another Power Star!\n\ -Mario gains more courage\n\ +Sonic gains more courage\n\ from the power of the\n\ castle.\n\ Do you want to Save?\n\ @@ -254,7 +254,7 @@ escape my grasp...\n\ ...and you'll never take\n\ away my Power Star. I\n\ hereby challenge you,\n\ -Mario!\n\ +Sonic!\n\ If you want the Star I\n\ hold, you must prove\n\ yourself in battle.\n\ @@ -339,7 +339,7 @@ Bwa ha ha!")) DEFINE_DIALOG(DIALOG_030, 1, 6, 30, 200, _("\ Hello! The Lakitu Bros.,\n\ cutting in with a live\n\ -update on Mario's\n\ +update on Sonic's\n\ progress. He's about to\n\ learn a technique for\n\ sneaking up on enemies.\n\ @@ -370,19 +370,19 @@ Mach 1 Sprint shoes!\n\ Here, I guess I have to\n\ hand over this Star to\n\ the winner of the race.\n\ -Congrats, Mario!")) +Congrats, Sonic!")) DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ If you get the Wing Cap,\n\ you can fly! Put the cap\n\ -on, then do a Triple\n\ -Jump--jump three times\n\ -in a row--to take off.\n\ +on, then do a Homing\n\ +Attack--to take off.\n\ You can fly even higher\n\ if you blast out of a\n\ cannon wearing the\n\ Wing Cap!\n\ \n\ +\n\ Use the [C] Buttons to look\n\ around while flying, and\n\ press [Z] to land.")) @@ -397,7 +397,7 @@ jump and [B] to attack.\n\ Press [B] to read signs,\n\ too. Use the Control Stick\n\ in the center of the\n\ -controller to move Mario\n\ +controller to move Sonic\n\ around. Now, head for\n\ the castle.")) @@ -408,7 +408,7 @@ reporting live from just\n\ outside the Princess's\n\ castle.\n\ \n\ -Mario has just arrived\n\ +Sonic has just arrived\n\ on the scene, and we'll\n\ be filming the action live\n\ as he enters the castle\n\ @@ -442,7 +442,7 @@ There are four camera, or\n\ to look around using the\n\ Control Stick.\n\ \n\ -You'll usually see Mario\n\ +You'll usually see Sonic\n\ through Lakitu's camera.\n\ It is the camera\n\ recommended for normal\n\ @@ -450,13 +450,13 @@ play.\n\ You can change angles by\n\ pressing [C]>. If you press\n\ [R], the view switches to\n\ -Mario's camera, which\n\ +Sonic's camera, which\n\ is directly behind him.\n\ Press [R] again to return\n\ to Lakitu's camera. Press\n\ -[C]| to see Mario from\n\ +[C]| to see Sonic from\n\ afar, using either\n\ -Lakitu's or Mario's view.")) +Lakitu's or Sonic's view.")) DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ OBSERVATION PLATFORM\n\ @@ -465,8 +465,8 @@ around. Don't miss\n\ anything!\n\ \n\ Press [R] to switch to\n\ -Mario's camera. It\n\ -always follows Mario.\n\ +Sonic's camera. It\n\ +always follows Sonic.\n\ Press [R] again to switch\n\ to Lakitu's camera.\n\ Pause the game and\n\ @@ -534,7 +534,7 @@ edge if you move slowly.\n\ When you want to let go,\n\ either press [Z] or press\n\ the Control Stick in the\n\ -direction of Mario's back.\n\ +direction of Sonic's back.\n\ To climb up, press Up on\n\ the Control Stick. To\n\ scurry up quickly, press\n\ @@ -567,34 +567,31 @@ grab on.")) DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ Whew! I'm just about\n\ flapped out. You should\n\ -lay off the pasta, Mario!\n\ -That's it for now. Press\n\ -[A] to let go. Okay,\n\ -bye byyyyyyeeee!")) +lay off the chili dogs,\n\ +Sonic! That's it for now.\n\ +Press[A] to let go.\n\ +Okay, bye byyyyyyeeee!")) DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ You have to master three\n\ important jumping\n\ techniques.\n\ -First try the Triple Jump.\n\ \n\ -Run fast, then jump three\n\ -times, one, two, three.\n\ -If you time the jumps\n\ -right, you'll hop, skip,\n\ -then jump really high.\n\ -Next, go for distance\n\ -with the Long Jump. Run,\n\ -press [Z] to crouch then [A]\n\ -to jump really far.\n\ +First try the Bound Jump.\n\ +Jump, then press [Z]\n\ +and you will jump\n\ +really high on the spot.\n\ +Next, To do a Homing Attack\n\ +press [B] in the Air to\n\ +dash forward.\n\ \n\ To do the Wall Kick, press\n\ [A] to jump at a wall, then\n\ jump again when you hit\n\ the wall.\n\ \n\ -Got that? Triple Jump,\n\ -Long Jump, Wall Kick.\n\ +Got that? Bound Jump,\n\ +Homing Attack, Wall Kick.\n\ Practice, practice,\n\ practice. You don't stand\n\ a chance without them.")) @@ -683,7 +680,7 @@ Control Stick. To slow\n\ down, pull back.")) DEFINE_DIALOG(DIALOG_055, 1, 4, 30, 200, _("\ -Hey-ey, Mario, buddy,\n\ +Hey-ey, Sonic, buddy,\n\ howzit goin'? Step right\n\ up. You look like a fast\n\ sleddin' kind of guy.\n\ @@ -726,7 +723,7 @@ DEFINE_DIALOG(DIALOG_058, 1, 4, 30, 200, _("\ You found my precious,\n\ precious baby! Where\n\ have you been? How can\n\ -I ever thank you, Mario?\n\ +I ever thank you, Sonic?\n\ Oh, I do have this...\n\ ...Star. Here, take it\n\ with my eternal\n\ @@ -800,36 +797,30 @@ through secret walls, too.")) DEFINE_DIALOG(DIALOG_064, 1, 5, 30, 200, _("\ When you put on the Wing\n\ Cap that comes from a\n\ -red block, do the Triple\n\ -Jump to soar high into\n\ +red block, do the Homing\n\ +Attack to soar high into\n\ the sky.\n\ Use the Control Stick to\n\ -guide Mario. Pull back to\n\ +guide Sonic. Pull back to\n\ to fly up, press forward\n\ to nose down, and press [Z]\n\ to land.")) DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ Swimming Lessons!\n\ -Tap [A] to do the breast\n\ -stroke. If you time the\n\ -taps right, you'll swim\n\ -fast.\n\ -\n\ -Press and hold [A] to do a\n\ -slow, steady flutter kick.\n\ -Press Up on the Control\n\ -Stick to dive, and pull\n\ -back on the stick to head\n\ -for the surface.\n\ -To jump out of the water,\n\ -hold Down on the Control\n\ -Stick, then press [A].\n\ -Easy as pie, right?\n\ +Tap [A] repeatedly to\n\ +jump underwater multiple\n\ +times.\n\ \n\ \n\ -But remember:\n\ -Mario can't breathe under\n\ +You can also walk at the\n\ +seafloor but for you it\n\ +is better to run above\n\ +the surface.\n\ +\n\ +\n\ +And remember:\n\ +Sonic can't breathe under\n\ the water! Return to the\n\ surface for air when the\n\ Power Meter runs low.\n\ @@ -839,7 +830,7 @@ can't open doors that\n\ are underwater.")) DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ -Mario, it's Peach!\n\ +Sonic, it's Peach!\n\ Please be careful! Bowser\n\ is so wicked! He will try\n\ to burn you with his\n\ @@ -855,17 +846,17 @@ The faster you swing him,\n\ the farther he'll fly.\n\ \n\ Use the [C] Buttons to look\n\ -around, Mario. You have\n\ +around, Sonic. You have\n\ to throw Bowser into one\n\ of the bombs in the four\n\ corners.\n\ Aim well, then press [B]\n\ again to launch Bowser.\n\ -Good luck, Mario! Our\n\ +Good luck, Sonic! Our\n\ fate is in your hands.")) DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ -Tough luck, Mario!\n\ +Sonic, you?!\n\ Princess Toadstool isn't\n\ here...Gwa ha ha!! Go\n\ ahead--just try to grab\n\ @@ -882,7 +873,7 @@ into a pool of flames,\n\ you'll be hopping mad, but\n\ don't lose your cool.\n\ You can still control\n\ -Mario--just try to keep\n\ +Sonic--just try to keep\n\ calm!")) DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ @@ -968,7 +959,7 @@ hang down from it.\n\ To drop from the edge,\n\ either press the Control\n\ Stick in the direction of\n\ -Mario's back or press the\n\ +Sonic's back or press the\n\ [Z] Button.\n\ To get up onto the ledge,\n\ either press Up on the\n\ @@ -977,10 +968,10 @@ as soon as you grab the\n\ ledge to climb up quickly.")) DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ -Mario!! My castle is in\n\ +Sonic!! My castle is in\n\ great peril. I know that\n\ Bowser is the cause...and\n\ -I know that only you can\n\ +I know that you can\n\ stop him!\n\ The doors in the castle\n\ that have been sealed by\n\ @@ -998,9 +989,9 @@ one of the castle's Secret\n\ Stars!\n\ \n\ Find that Secret Star,\n\ -Mario! It will help you\n\ +Sonic! It will help you\n\ on your quest. Please,\n\ -Mario, you have to\n\ +Sonic, you have to\n\ help us!\n\ Retrieve all of the\n\ Power Stars in the castle\n\ @@ -1012,7 +1003,7 @@ DEFINE_DIALOG(DIALOG_076, 1, 6, 30, 200, _("\ Thanks to the power of\n\ the Stars, life is\n\ returning to the castle.\n\ -Please, Mario, you have\n\ +Please, Sonic, you have\n\ to give Bowser the boot!\n\ \n\ Here, let me tell you a\n\ @@ -1068,19 +1059,11 @@ with the depth they bring\n\ as they enter.")) DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ -Hold on to your hat! If\n\ -you lose it, you'll be\n\ -injured easily.\n\ -\n\ -If you do lose your Cap,\n\ -you'll have to find it in\n\ -the course where you\n\ -lost it.\n\ Oh, boy, it's not looking\n\ good for Peach. She's\n\ still trapped somewhere\n\ inside the walls.\n\ -Please, Mario, you have\n\ +Please, Sonic, you have\n\ to help her! Did you know\n\ that there are enemy\n\ worlds inside the walls?\n\ @@ -1095,7 +1078,7 @@ about that clock. As you\n\ jump inside, watch the\n\ position of the big hand.\n\ Oh, look what I found!\n\ -Here, Mario, catch!")) +Here, Sonic, catch!")) DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ Yeeoww! Unhand me,\n\ @@ -1167,7 +1150,7 @@ comfy ride.")) DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ Pestering me again, are\n\ -you, Mario? Can't you see\n\ +you, Sonic? Can't you see\n\ that I'm having a merry\n\ little time, making\n\ mischief with my minions?\n\ @@ -1176,7 +1159,7 @@ My troops in the walls\n\ need them! Bwa ha ha!")) DEFINE_DIALOG(DIALOG_093, 1, 5, 30, 200, _("\ -Mario! You again! Well\n\ +Sonic! You again! Well\n\ that's just fine--I've\n\ been looking for something\n\ to fry with my fire\n\ @@ -1233,12 +1216,16 @@ Come on in here...\n\ ...heh, heh, heh...")) // unused -DEFINE_DIALOG(DIALOG_099, 1, 5, 95, 200, _("\ -Eh he he...\n\ -You're mine, now, hee hee!\n\ -I'll pass right through\n\ -this wall. Can you do\n\ -that? Heh, heh, heh!")) +DEFINE_DIALOG(DIALOG_099, 1, 9, 95, 200, _("\ +You've collected\n\ +7 x 100 coin Stars!\n\ +Sonic can be Super Sonic!\n\ +When you have 50 coins\n\ +press [A] during a\n\ +Bound Jump to transform.\n\ +\n\ +Do you want to Save?\n\ +//Yes////No")) DEFINE_DIALOG(DIALOG_100, 1, 3, 95, 200, _("\ Ukkiki...Wakkiki...kee kee!\n\ @@ -1399,7 +1386,7 @@ Bowser by the tail.\n\ Methinks my troops could\n\ learn a lesson from you!\n\ Here is your Star, as I\n\ -promised, Mario.\n\ +promised, Sonic.\n\ \n\ If you want to see me\n\ again, select this Star\n\ @@ -1461,7 +1448,7 @@ Gwa ha ha ha!")) DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ Nooo! It can't be!\n\ You've really beaten me,\n\ -Mario?!! I gave those\n\ +Sonic?!! I gave those\n\ troops power, but now\n\ it's fading away!\n\ Arrgghh! I can see peace\n\ @@ -1554,7 +1541,7 @@ blocks you find will\n\ become solid.\n\ \n\ Try out the Wing Cap! Do\n\ -the Triple Jump to take\n\ +the Homing Attack to take\n\ off and press [Z] to land.\n\ \n\ \n\ @@ -1565,7 +1552,7 @@ just as you would when\n\ flying an airplane.")) DEFINE_DIALOG(DIALOG_132, 1, 4, 30, 200, _("\ -Whoa, Mario, pal, you\n\ +Whoa, Sonic, pal, you\n\ aren't trying to cheat,\n\ are you? Shortcuts aren't\n\ allowed.\n\ @@ -1647,7 +1634,7 @@ from them.")) DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ Wow! You've already\n\ recovered that many\n\ -Stars? Way to go, Mario!\n\ +Stars? Way to go, Sonic!\n\ I'll bet you'll have us out\n\ of here in no time!\n\ \n\ @@ -1676,7 +1663,7 @@ Pound the Ground as you\n\ land.")) DEFINE_DIALOG(DIALOG_137, 1, 6, 30, 200, _("\ -Thanks, Mario! The castle\n\ +Thanks, Sonic! The castle\n\ is recovering its energy\n\ as you retrieve Power\n\ Stars, and you've chased\n\ @@ -1723,7 +1710,7 @@ Fortress on Floor 1.\n\ Bowser's troops are still\n\ gaining power, so you\n\ can't give up. Save us,\n\ -Mario! Keep searching for\n\ +Sonic! Keep searching for\n\ Stars!")) DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ @@ -1814,7 +1801,7 @@ Cap.")) DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ Snowman Mountain ahead.\n\ Keep out! And don't try\n\ -the Triple Jump over the\n\ +the Bound Jump over the\n\ ice block shooter.\n\ \n\ \n\ @@ -1888,15 +1875,11 @@ bugging me! I think I'll\n\ blow it away!")) DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ -Hold on to your hat! If\n\ -you lose it, you'll be\n\ -easily injured. If you\n\ -lose it, look for it in the\n\ -course where you lost it.\n\ -Speaking of lost, the\n\ +Hey Sonic, the\n\ Princess is still stuck in\n\ the walls somewhere.\n\ -Please help, Mario!\n\ +Please help, Sonic!\n\ +\n\ \n\ Oh, you know that there\n\ are secret worlds in the\n\ @@ -1907,7 +1890,7 @@ DEFINE_DIALOG(DIALOG_155, 1, 6, 30, 200, _("\ Thanks to the power of\n\ the Stars, life is\n\ returning to the castle.\n\ -Please, Mario, you have\n\ +Please, Sonic, you have\n\ to give Bowser the boot!\n\ \n\ Here, let me tell you a\n\ @@ -1964,10 +1947,10 @@ Jump, run fast, press [Z],\n\ then jump.")) DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ -Press [B] while running\n\ -fast to do a Body Slide\n\ -attack. To stand while\n\ -sliding, press [A] or [B].")) +Press [Z] while running\n\ +fast to do a Spin\n\ +attack. To jump while\n\ +rolling, press [A] or [B].")) #ifdef VERSION_EU #define KEEP_ON_PLAYING ".." @@ -1981,14 +1964,14 @@ Enjoy!!!" #endif DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ -Mario!!!\n\ -It that really you???\n\ -It has been so long since\n\ -our last adventure!\n\ -They told me that I might\n\ -see you if I waited here,\n\ -but I'd just about given\n\ -up hope!\n\ +Sonic!!!\n\ +Is that really you???\n\ +I didn't expect you\n\ +to see here!\n\ +They told me that I would\n\ +see someone if I waited\n\ +here, but I'd just about\n\ +given up hope!\n\ Is it true? Have you\n\ really beaten Bowser? And\n\ restored the Stars to the\n\ @@ -1998,12 +1981,12 @@ I knew you could do it!\n\ Now I have a very special\n\ message for you.\n\ 『Thanks for playing Super\n\ -Mario 64! This is the\n\ -end of the game, but not\n\ -the end of the fun." \ +Mario 64 Sonic Edition\n\ +and for supporting\n\ +this mod." \ KEEP_ON_PLAYING "』\n\ \n\ -The Super Mario 64 Team")) +Thodds")) DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ No, no, no! Not you\n\ @@ -2022,7 +2005,7 @@ Owww! Let me go!")) DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ Noooo! You've really\n\ beaten me this time,\n\ -Mario! I can't stand\n\ +Sonic! I can't stand\n\ losing to you!\n\ \n\ My troops...worthless!\n\ @@ -2047,7 +2030,7 @@ smokin'!\n\ Buwaa ha ha!")) DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ -Mario! What's up, pal?\n\ +Sonic! What's up, pal?\n\ I haven't been on the\n\ slide lately, so I'm out\n\ of shape.\n\ diff --git a/text/us/dialogs.h.rej b/text/us/dialogs.h.rej new file mode 100644 index 00000000..1276c16e --- /dev/null +++ b/text/us/dialogs.h.rej @@ -0,0 +1,641 @@ +diff a/text/us/dialogs.h b/text/us/dialogs.h (rejected hunks) +@@ -76,7 +76,7 @@ You can talk to us\n\ + whenever you'd like to!")) + + DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +-Thank you, Mario! The Big\n\ ++Thank you, Sonic! The Big\n\ + Bob-omb is nothing but a\n\ + big dud now! But the\n\ + battle for the castle has\n\ +@@ -103,7 +103,7 @@ cannons in this course for\n\ + you to use. Bon Voyage!")) + + DEFINE_DIALOG(DIALOG_005, 1, 3, 30, 200, _("\ +-Hey, Mario! Is it true\n\ ++Hey, Sonic! Is it true\n\ + that you beat the Big\n\ + Bob-omb? Cool!\n\ + You must be strong. And\n\ +@@ -133,7 +133,7 @@ real.")) + DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ + Hufff...fff...pufff...\n\ + Whoa! You...really...are...\n\ +-fast! A human blur!\n\ ++fast! A blue blur!\n\ + Here you go--you've won\n\ + it, fair and square!")) + +@@ -170,10 +170,10 @@ Ready?\n\ + + DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ + You've stepped on the\n\ +-Wing Cap Switch. Wearing\n\ +-the Wing Cap, you can\n\ ++Wing Shoe Switch. Wearing\n\ ++the Wing Shoe, you can\n\ + soar through the sky.\n\ +-Now Wing Caps will pop\n\ ++Now Wing Shoes will pop\n\ + out of all the red blocks\n\ + you find.\n\ + \n\ +@@ -183,10 +183,10 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ + You've just stepped on\n\ +-the Metal Cap Switch!\n\ +-The Metal Cap makes\n\ +-Mario invincible.\n\ +-Now Metal Caps will\n\ ++the Metal Shoe Switch!\n\ ++The Metal Shoe makes\n\ ++Sonic invincible.\n\ ++Now Metal Shoes will\n\ + pop out of all of the\n\ + green blocks you find.\n\ + \n\ +@@ -196,10 +196,10 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ + You've just stepped on\n\ +-the Vanish Cap Switch.\n\ +-The Vanish Cap makes\n\ +-Mario disappear.\n\ +-Now Vanish Caps will pop\n\ ++the Vanish Shoe Switch.\n\ ++The Vanish Shoe makes\n\ ++Sonic disappear.\n\ ++Now Vanish Shoes will pop\n\ + from all of the blue\n\ + blocks you find.\n\ + \n\ +@@ -209,14 +209,14 @@ Would you like to Save?\n\ + + DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ + You've collected 100\n\ +-coins! Mario gains more\n\ ++coins! Sonic gains more\n\ + power from the castle.\n\ + Do you want to Save?\n\ + //Yes////No")) + + DEFINE_DIALOG(DIALOG_014, 1, 4, 30, 200, _("\ + Wow! Another Power Star!\n\ +-Mario gains more courage\n\ ++Sonic gains more courage\n\ + from the power of the\n\ + castle.\n\ + Do you want to Save?\n\ +@@ -254,7 +254,7 @@ escape my grasp...\n\ + ...and you'll never take\n\ + away my Power Star. I\n\ + hereby challenge you,\n\ +-Mario!\n\ ++Sonic!\n\ + If you want the Star I\n\ + hold, you must prove\n\ + yourself in battle.\n\ +@@ -339,7 +339,7 @@ Bwa ha ha!")) + DEFINE_DIALOG(DIALOG_030, 1, 6, 30, 200, _("\ + Hello! The Lakitu Bros.,\n\ + cutting in with a live\n\ +-update on Mario's\n\ ++update on Sonic's\n\ + progress. He's about to\n\ + learn a technique for\n\ + sneaking up on enemies.\n\ +@@ -370,19 +370,19 @@ Mach 1 Sprint shoes!\n\ + Here, I guess I have to\n\ + hand over this Star to\n\ + the winner of the race.\n\ +-Congrats, Mario!")) ++Congrats, Sonic!")) + + DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ + If you get the Wing Cap,\n\ + you can fly! Put the cap\n\ +-on, then do a Triple\n\ +-Jump--jump three times\n\ +-in a row--to take off.\n\ ++on, then do a Homing\n\ ++Attack--to take off.\n\ + You can fly even higher\n\ + if you blast out of a\n\ + cannon wearing the\n\ + Wing Cap!\n\ + \n\ ++\n\ + Use the [C] Buttons to look\n\ + around while flying, and\n\ + press [Z] to land.")) +@@ -397,7 +397,7 @@ jump and [B] to attack.\n\ + Press [B] to read signs,\n\ + too. Use the Control Stick\n\ + in the center of the\n\ +-controller to move Mario\n\ ++controller to move Sonic\n\ + around. Now, head for\n\ + the castle.")) + +@@ -408,7 +408,7 @@ reporting live from just\n\ + outside the Princess's\n\ + castle.\n\ + \n\ +-Mario has just arrived\n\ ++Sonic has just arrived\n\ + on the scene, and we'll\n\ + be filming the action live\n\ + as he enters the castle\n\ +@@ -442,7 +442,7 @@ There are four camera, or\n\ + to look around using the\n\ + Control Stick.\n\ + \n\ +-You'll usually see Mario\n\ ++You'll usually see Sonic\n\ + through Lakitu's camera.\n\ + It is the camera\n\ + recommended for normal\n\ +@@ -450,13 +450,13 @@ play.\n\ + You can change angles by\n\ + pressing [C]>. If you press\n\ + [R], the view switches to\n\ +-Mario's camera, which\n\ ++Sonic's camera, which\n\ + is directly behind him.\n\ + Press [R] again to return\n\ + to Lakitu's camera. Press\n\ +-[C]| to see Mario from\n\ ++[C]| to see Sonic from\n\ + afar, using either\n\ +-Lakitu's or Mario's view.")) ++Lakitu's or Sonic's view.")) + + DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ + OBSERVATION PLATFORM\n\ +@@ -465,8 +465,8 @@ around. Don't miss\n\ + anything!\n\ + \n\ + Press [R] to switch to\n\ +-Mario's camera. It\n\ +-always follows Mario.\n\ ++Sonic's camera. It\n\ ++always follows Sonic.\n\ + Press [R] again to switch\n\ + to Lakitu's camera.\n\ + Pause the game and\n\ +@@ -534,7 +534,7 @@ edge if you move slowly.\n\ + When you want to let go,\n\ + either press [Z] or press\n\ + the Control Stick in the\n\ +-direction of Mario's back.\n\ ++direction of Sonic's back.\n\ + To climb up, press Up on\n\ + the Control Stick. To\n\ + scurry up quickly, press\n\ +@@ -567,34 +567,31 @@ grab on.")) + DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ + Whew! I'm just about\n\ + flapped out. You should\n\ +-lay off the pasta, Mario!\n\ +-That's it for now. Press\n\ +-[A] to let go. Okay,\n\ +-bye byyyyyyeeee!")) ++lay off the chili dogs,\n\ ++Sonic! That's it for now.\n\ ++Press[A] to let go.\n\ ++Okay, bye byyyyyyeeee!")) + + DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ + You have to master three\n\ + important jumping\n\ + techniques.\n\ +-First try the Triple Jump.\n\ +-\n\ +-Run fast, then jump three\n\ +-times, one, two, three.\n\ +-If you time the jumps\n\ +-right, you'll hop, skip,\n\ +-then jump really high.\n\ +-Next, go for distance\n\ +-with the Long Jump. Run,\n\ +-press [Z] to crouch then [A]\n\ +-to jump really far.\n\ ++\n\ ++First try the Bound Jump.\n\ ++Jump, then press [Z]\n\ ++and you will jump\n\ ++really high on the spot.\n\ ++Next, To do a Homing Attack\n\ ++press [B] in the Air to\n\ ++dash forward.\n\ + \n\ + To do the Wall Kick, press\n\ + [A] to jump at a wall, then\n\ + jump again when you hit\n\ + the wall.\n\ + \n\ +-Got that? Triple Jump,\n\ +-Long Jump, Wall Kick.\n\ ++Got that? Bound Jump,\n\ ++Homing Attack, Wall Kick.\n\ + Practice, practice,\n\ + practice. You don't stand\n\ + a chance without them.")) +@@ -683,7 +680,7 @@ Control Stick. To slow\n\ + down, pull back.")) + + DEFINE_DIALOG(DIALOG_055, 1, 4, 30, 200, _("\ +-Hey-ey, Mario, buddy,\n\ ++Hey-ey, Sonic, buddy,\n\ + howzit goin'? Step right\n\ + up. You look like a fast\n\ + sleddin' kind of guy.\n\ +@@ -726,7 +723,7 @@ DEFINE_DIALOG(DIALOG_058, 1, 4, 30, 200, _("\ + You found my precious,\n\ + precious baby! Where\n\ + have you been? How can\n\ +-I ever thank you, Mario?\n\ ++I ever thank you, Sonic?\n\ + Oh, I do have this...\n\ + ...Star. Here, take it\n\ + with my eternal\n\ +@@ -800,36 +797,30 @@ through secret walls, too.")) + DEFINE_DIALOG(DIALOG_064, 1, 5, 30, 200, _("\ + When you put on the Wing\n\ + Cap that comes from a\n\ +-red block, do the Triple\n\ +-Jump to soar high into\n\ ++red block, do the Homing\n\ ++Attack to soar high into\n\ + the sky.\n\ + Use the Control Stick to\n\ +-guide Mario. Pull back to\n\ ++guide Sonic. Pull back to\n\ + to fly up, press forward\n\ + to nose down, and press [Z]\n\ + to land.")) + + DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ + Swimming Lessons!\n\ +-Tap [A] to do the breast\n\ +-stroke. If you time the\n\ +-taps right, you'll swim\n\ +-fast.\n\ +-\n\ +-Press and hold [A] to do a\n\ +-slow, steady flutter kick.\n\ +-Press Up on the Control\n\ +-Stick to dive, and pull\n\ +-back on the stick to head\n\ +-for the surface.\n\ +-To jump out of the water,\n\ +-hold Down on the Control\n\ +-Stick, then press [A].\n\ +-Easy as pie, right?\n\ +-\n\ +-\n\ +-But remember:\n\ +-Mario can't breathe under\n\ ++Tap [A] repeatedly to\n\ ++jump underwater multiple\n\ ++times.\n\ ++\n\ ++\n\ ++You can also walk at the\n\ ++seafloor but for you it\n\ ++is better to run above\n\ ++the surface.\n\ ++\n\ ++\n\ ++And remember:\n\ ++Sonic can't breathe under\n\ + the water! Return to the\n\ + surface for air when the\n\ + Power Meter runs low.\n\ +@@ -839,7 +830,7 @@ can't open doors that\n\ + are underwater.")) + + DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ +-Mario, it's Peach!\n\ ++Sonic, it's Peach!\n\ + Please be careful! Bowser\n\ + is so wicked! He will try\n\ + to burn you with his\n\ +@@ -855,17 +846,17 @@ The faster you swing him,\n\ + the farther he'll fly.\n\ + \n\ + Use the [C] Buttons to look\n\ +-around, Mario. You have\n\ ++around, Sonic. You have\n\ + to throw Bowser into one\n\ + of the bombs in the four\n\ + corners.\n\ + Aim well, then press [B]\n\ + again to launch Bowser.\n\ +-Good luck, Mario! Our\n\ ++Good luck, Sonic! Our\n\ + fate is in your hands.")) + + DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ +-Tough luck, Mario!\n\ ++Sonic, you?!\n\ + Princess Toadstool isn't\n\ + here...Gwa ha ha!! Go\n\ + ahead--just try to grab\n\ +@@ -882,7 +873,7 @@ into a pool of flames,\n\ + you'll be hopping mad, but\n\ + don't lose your cool.\n\ + You can still control\n\ +-Mario--just try to keep\n\ ++Sonic--just try to keep\n\ + calm!")) + + DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ +@@ -968,7 +959,7 @@ hang down from it.\n\ + To drop from the edge,\n\ + either press the Control\n\ + Stick in the direction of\n\ +-Mario's back or press the\n\ ++Sonic's back or press the\n\ + [Z] Button.\n\ + To get up onto the ledge,\n\ + either press Up on the\n\ +@@ -977,10 +968,10 @@ as soon as you grab the\n\ + ledge to climb up quickly.")) + + DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +-Mario!! My castle is in\n\ ++Sonic!! My castle is in\n\ + great peril. I know that\n\ + Bowser is the cause...and\n\ +-I know that only you can\n\ ++I know that you can\n\ + stop him!\n\ + The doors in the castle\n\ + that have been sealed by\n\ +@@ -998,9 +989,9 @@ one of the castle's Secret\n\ + Stars!\n\ + \n\ + Find that Secret Star,\n\ +-Mario! It will help you\n\ ++Sonic! It will help you\n\ + on your quest. Please,\n\ +-Mario, you have to\n\ ++Sonic, you have to\n\ + help us!\n\ + Retrieve all of the\n\ + Power Stars in the castle\n\ +@@ -1012,7 +1003,7 @@ DEFINE_DIALOG(DIALOG_076, 1, 6, 30, 200, _("\ + Thanks to the power of\n\ + the Stars, life is\n\ + returning to the castle.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to give Bowser the boot!\n\ + \n\ + Here, let me tell you a\n\ +@@ -1068,19 +1059,11 @@ with the depth they bring\n\ + as they enter.")) + + DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ +-Hold on to your hat! If\n\ +-you lose it, you'll be\n\ +-injured easily.\n\ +-\n\ +-If you do lose your Cap,\n\ +-you'll have to find it in\n\ +-the course where you\n\ +-lost it.\n\ + Oh, boy, it's not looking\n\ + good for Peach. She's\n\ + still trapped somewhere\n\ + inside the walls.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to help her! Did you know\n\ + that there are enemy\n\ + worlds inside the walls?\n\ +@@ -1095,7 +1078,7 @@ about that clock. As you\n\ + jump inside, watch the\n\ + position of the big hand.\n\ + Oh, look what I found!\n\ +-Here, Mario, catch!")) ++Here, Sonic, catch!")) + + DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ + Yeeoww! Unhand me,\n\ +@@ -1167,7 +1150,7 @@ comfy ride.")) + + DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ + Pestering me again, are\n\ +-you, Mario? Can't you see\n\ ++you, Sonic? Can't you see\n\ + that I'm having a merry\n\ + little time, making\n\ + mischief with my minions?\n\ +@@ -1176,7 +1159,7 @@ My troops in the walls\n\ + need them! Bwa ha ha!")) + + DEFINE_DIALOG(DIALOG_093, 1, 5, 30, 200, _("\ +-Mario! You again! Well\n\ ++Sonic! You again! Well\n\ + that's just fine--I've\n\ + been looking for something\n\ + to fry with my fire\n\ +@@ -1233,12 +1216,16 @@ Come on in here...\n\ + ...heh, heh, heh...")) + + // unused +-DEFINE_DIALOG(DIALOG_099, 1, 5, 95, 200, _("\ +-Eh he he...\n\ +-You're mine, now, hee hee!\n\ +-I'll pass right through\n\ +-this wall. Can you do\n\ +-that? Heh, heh, heh!")) ++DEFINE_DIALOG(DIALOG_099, 1, 9, 95, 200, _("\ ++You've collected\n\ ++7 x 100 coin Stars!\n\ ++Sonic can be Super Sonic!\n\ ++When you have 50 coins\n\ ++press [A] during a\n\ ++Bound Jump to transform.\n\ ++\n\ ++Do you want to Save?\n\ ++//Yes////No")) + + DEFINE_DIALOG(DIALOG_100, 1, 3, 95, 200, _("\ + Ukkiki...Wakkiki...kee kee!\n\ +@@ -1399,7 +1386,7 @@ Bowser by the tail.\n\ + Methinks my troops could\n\ + learn a lesson from you!\n\ + Here is your Star, as I\n\ +-promised, Mario.\n\ ++promised, Sonic.\n\ + \n\ + If you want to see me\n\ + again, select this Star\n\ +@@ -1461,7 +1448,7 @@ Gwa ha ha ha!")) + DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ + Nooo! It can't be!\n\ + You've really beaten me,\n\ +-Mario?!! I gave those\n\ ++Sonic?!! I gave those\n\ + troops power, but now\n\ + it's fading away!\n\ + Arrgghh! I can see peace\n\ +@@ -1554,7 +1541,7 @@ blocks you find will\n\ + become solid.\n\ + \n\ + Try out the Wing Cap! Do\n\ +-the Triple Jump to take\n\ ++the Homing Attack to take\n\ + off and press [Z] to land.\n\ + \n\ + \n\ +@@ -1565,7 +1552,7 @@ just as you would when\n\ + flying an airplane.")) + + DEFINE_DIALOG(DIALOG_132, 1, 4, 30, 200, _("\ +-Whoa, Mario, pal, you\n\ ++Whoa, Sonic, pal, you\n\ + aren't trying to cheat,\n\ + are you? Shortcuts aren't\n\ + allowed.\n\ +@@ -1647,7 +1634,7 @@ from them.")) + DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ + Wow! You've already\n\ + recovered that many\n\ +-Stars? Way to go, Mario!\n\ ++Stars? Way to go, Sonic!\n\ + I'll bet you'll have us out\n\ + of here in no time!\n\ + \n\ +@@ -1676,7 +1663,7 @@ Pound the Ground as you\n\ + land.")) + + DEFINE_DIALOG(DIALOG_137, 1, 6, 30, 200, _("\ +-Thanks, Mario! The castle\n\ ++Thanks, Sonic! The castle\n\ + is recovering its energy\n\ + as you retrieve Power\n\ + Stars, and you've chased\n\ +@@ -1723,7 +1710,7 @@ Fortress on Floor 1.\n\ + Bowser's troops are still\n\ + gaining power, so you\n\ + can't give up. Save us,\n\ +-Mario! Keep searching for\n\ ++Sonic! Keep searching for\n\ + Stars!")) + + DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +@@ -1814,7 +1801,7 @@ Cap.")) + DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ + Snowman Mountain ahead.\n\ + Keep out! And don't try\n\ +-the Triple Jump over the\n\ ++the Bound Jump over the\n\ + ice block shooter.\n\ + \n\ + \n\ +@@ -1888,15 +1875,11 @@ bugging me! I think I'll\n\ + blow it away!")) + + DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ +-Hold on to your hat! If\n\ +-you lose it, you'll be\n\ +-easily injured. If you\n\ +-lose it, look for it in the\n\ +-course where you lost it.\n\ +-Speaking of lost, the\n\ ++Hey Sonic, the\n\ + Princess is still stuck in\n\ + the walls somewhere.\n\ +-Please help, Mario!\n\ ++Please help, Sonic!\n\ ++\n\ + \n\ + Oh, you know that there\n\ + are secret worlds in the\n\ +@@ -1907,7 +1890,7 @@ DEFINE_DIALOG(DIALOG_155, 1, 6, 30, 200, _("\ + Thanks to the power of\n\ + the Stars, life is\n\ + returning to the castle.\n\ +-Please, Mario, you have\n\ ++Please, Sonic, you have\n\ + to give Bowser the boot!\n\ + \n\ + Here, let me tell you a\n\ +@@ -1964,10 +1947,10 @@ Jump, run fast, press [Z],\n\ + then jump.")) + + DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ +-Press [B] while running\n\ +-fast to do a Body Slide\n\ +-attack. To stand while\n\ +-sliding, press [A] or [B].")) ++Press [Z] while running\n\ ++fast to do a Spin\n\ ++attack. To jump while\n\ ++rolling, press [A] or [B].")) + + #ifdef VERSION_EU + #define KEEP_ON_PLAYING ".." +@@ -1981,14 +1964,14 @@ Enjoy!!!" + #endif + + DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ +-Mario!!!\n\ +-It that really you???\n\ +-It has been so long since\n\ +-our last adventure!\n\ +-They told me that I might\n\ +-see you if I waited here,\n\ +-but I'd just about given\n\ +-up hope!\n\ ++Sonic!!!\n\ ++Is that really you???\n\ ++I didn't expect you\n\ ++to see here!\n\ ++They told me that I would\n\ ++see someone if I waited\n\ ++here, but I'd just about\n\ ++given up hope!\n\ + Is it true? Have you\n\ + really beaten Bowser? And\n\ + restored the Stars to the\n\ +@@ -1998,12 +1981,12 @@ I knew you could do it!\n\ + Now I have a very special\n\ + message for you.\n\ + 『Thanks for playing Super\n\ +-Mario 64! This is the\n\ +-end of the game, but not\n\ +-the end of the fun." \ ++Mario 64 Sonic Edition\n\ ++and for supporting\n\ ++this mod." \ + KEEP_ON_PLAYING "』\n\ + \n\ +-The Super Mario 64 Team")) ++Thodds")) + + DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ + No, no, no! Not you\n\ +@@ -2022,7 +2005,7 @@ Owww! Let me go!")) + DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ + Noooo! You've really\n\ + beaten me this time,\n\ +-Mario! I can't stand\n\ ++Sonic! I can't stand\n\ + losing to you!\n\ + \n\ + My troops...worthless!\n\ +@@ -2047,7 +2030,7 @@ smokin'!\n\ + Buwaa ha ha!")) + + DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ +-Mario! What's up, pal?\n\ ++Sonic! What's up, pal?\n\ + I haven't been on the\n\ + slide lately, so I'm out\n\ + of shape.\n\ diff --git a/textures/intro_raw/mario_face_shine.ia8.png b/textures/intro_raw/mario_face_shine.ia8.png new file mode 100644 index 00000000..e6090a05 Binary files /dev/null and b/textures/intro_raw/mario_face_shine.ia8.png differ diff --git a/textures/segment2/font_graphics.05A00.ia4.png b/textures/segment2/font_graphics.05A00.ia4.png new file mode 100644 index 00000000..d880a380 Binary files /dev/null and b/textures/segment2/font_graphics.05A00.ia4.png differ diff --git a/textures/segment2/segment2.05A00.rgba16.png b/textures/segment2/segment2.05A00.rgba16.png new file mode 100644 index 00000000..fcd55375 Binary files /dev/null and b/textures/segment2/segment2.05A00.rgba16.png differ diff --git a/textures/segment2/segment2.10458.ia8.png b/textures/segment2/segment2.10458.ia8.png new file mode 100644 index 00000000..fe387bd2 Binary files /dev/null and b/textures/segment2/segment2.10458.ia8.png differ diff --git a/textures/sky/metal_hole.rgba16.png b/textures/sky/metal_hole.rgba16.png new file mode 100644 index 00000000..a4fb042d Binary files /dev/null and b/textures/sky/metal_hole.rgba16.png differ diff --git a/tools/patch_elf_32bit b/tools/patch_elf_32bit new file mode 100644 index 00000000..bccaefb3 Binary files /dev/null and b/tools/patch_elf_32bit differ